@jheavenknows/bluerouter 5.3.83 → 5.3.85
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 +6 -5
- 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/ai-power-index/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js.nft.json +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page.js.nft.json +1 -1
- 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/logs/console/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js.nft.json +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js.nft.json +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js.nft.json +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js.nft.json +1 -1
- 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/routing-topology/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_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/_not-found/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/me/route.js +1 -0
- package/app/.next-cli-build/server/app/api/audit-proxy/me/route.js.nft.json +1 -0
- package/app/.next-cli-build/server/app/api/audit-proxy/me/route_client-reference-manifest.js +1 -0
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js +2 -71
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js +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/auth/view-mode/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/view-mode/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-model-profiles/cloud-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
- 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/ai-power-index/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/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/routing-topology/config/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/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/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/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/locale/route.js.nft.json +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 +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +2 -2
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js +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 +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/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/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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]/move/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/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/personal-cloud-providers/shares/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
- 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/openai-compatible/manage/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/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 +1 -1
- 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 +2 -2
- 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/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/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/logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js +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/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[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/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/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/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.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 +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
- 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 +8 -8
- 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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.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 +8 -8
- 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/_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 +7 -7
- 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/_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 +8 -8
- 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/_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 +8 -8
- 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/_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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +8 -8
- 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/logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/logs.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/logs.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/logs.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 +8 -8
- 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/_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 +8 -8
- 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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/personal.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/personal.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/personal.segments/!KGRhc2hib2FyZCk/dashboard/personal/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/personal.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/personal.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 +8 -8
- 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/_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 +7 -7
- 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/_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 +7 -7
- 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/_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 +8 -8
- 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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/stt.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/stt.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/!KGRhc2hib2FyZCk/dashboard/providers/stt/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/tts.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/tts.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/!KGRhc2hib2FyZCk/dashboard/providers/tts/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/tts.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 +8 -8
- 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/_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 +8 -8
- 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/_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 +9 -9
- 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/_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 +7 -7
- 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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.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.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
- 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/_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 +8 -8
- 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/_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 +8 -8
- 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/_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 +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- 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/favicon.ico/route.js.nft.json +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 +6 -6
- package/app/.next-cli-build/server/app/index.segments/_full.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 +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +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/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +6 -5
- package/app/.next-cli-build/server/chunks/2731.js +2 -2
- package/app/.next-cli-build/server/chunks/3399.js +1 -1
- package/app/.next-cli-build/server/chunks/3433.js +3 -3
- package/app/.next-cli-build/server/chunks/3958.js +10 -10
- package/app/.next-cli-build/server/chunks/4432.js +1 -0
- package/app/.next-cli-build/server/chunks/4696.js +1 -1
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/5210.js +4 -4
- package/app/.next-cli-build/server/chunks/5530.js +18 -0
- package/app/.next-cli-build/server/chunks/607.js +1 -1
- package/app/.next-cli-build/server/chunks/6328.js +1 -1
- package/app/.next-cli-build/server/chunks/6684.js +1 -1
- package/app/.next-cli-build/server/chunks/6811.js +1 -1
- package/app/.next-cli-build/server/chunks/689.js +3 -3
- package/app/.next-cli-build/server/chunks/6977.js +1 -1
- package/app/.next-cli-build/server/chunks/6992.js +1 -1
- package/app/.next-cli-build/server/chunks/7007.js +2 -0
- package/app/.next-cli-build/server/chunks/7812.js +1 -1
- package/app/.next-cli-build/server/chunks/8352.js +1 -1
- package/app/.next-cli-build/server/chunks/8640.js +1 -1
- package/app/.next-cli-build/server/chunks/9083.js +69 -0
- package/app/.next-cli-build/server/functions-config-manifest.json +1 -0
- package/app/.next-cli-build/server/middleware-build-manifest.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/IIFO5RGYvaU0aOO82Ud1_/_buildManifest.js +1 -0
- package/app/.next-cli-build/static/chunks/{5263-5c710b449bb8ea9b.js → 5263-138eecf0d19758fe.js} +1 -1
- package/app/.next-cli-build/static/chunks/{5497-ba85afce54af9f8f.js → 5497-a78a755c8aa4623d.js} +3 -3
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/analytics/{page-c8ad699d35b93c2d.js → page-ceed626d3c451d99.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-92c59be230ac596e.js +21 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/local-ai-report/{page-0f3e7963fc09b58f.js → page-560eded56e8ad020.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/_global-error/page-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/audit-proxy/ca/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/audit-proxy/me/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/audit-proxy/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/auth/view-mode/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/[asset]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/branding/upload/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-model-profiles/cloud-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-model-profiles/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/qwen-settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/config/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/heartbeat/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/command/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/snapshot/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/sync/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/cluster/test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/combos/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/ai-power-index/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/ai-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/analyze/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/local-ai-report/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/routing-topology/config/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/routing-topology/live/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/routing-topology/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/dashboard/token-saver/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/health/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/init/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/caveman-test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/keys/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/locale/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/device-code/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/poll/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/api-key-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/import-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/move/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/usage/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/client/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/monitor/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/permissions/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/routing/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/shares/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/visibility/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/catalog/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/recalculate/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-health/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/openai-compatible/manage/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/[id]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/ai-models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/analyze/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/history/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/settings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tags/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/restart/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/app/page-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-341e13c0c7617e2b.js +1 -0
- package/app/.next-cli-build/static/css/{f21569c5199f3f94.css → 5ea18070d2325887.css} +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.78-to-5.3.79-5.3.79-20260823-174256 → upgrade-5.3.81-to-5.3.82-5.3.82-20260823-201609}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.77-to-5.3.78-5.3.78-20260823-172736 → upgrade-5.3.82-to-5.3.83-5.3.83-20260823-202359}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.83-to-5.3.84-5.3.84-20260823-203807/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
- package/app/package.json +4 -1
- package/package.json +2 -2
- package/app/.next-cli-build/server/chunks/3767.js +0 -18
- package/app/.next-cli-build/static/3m5XOO0ryP3m4X7stX7qm/_buildManifest.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-992f9910d3c75785.js +0 -21
- package/app/.next-cli-build/static/chunks/app/_global-error/page-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/audit-proxy/ca/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/audit-proxy/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/login/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/status/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/auth/view-mode/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/[asset]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/branding/upload/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-model-profiles/cloud-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-model-profiles/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cli-tools/qwen-settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/config/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/heartbeat/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/command/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/peers/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/snapshot/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/sync/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/cluster/test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/combos/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/ai-power-index/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/ai-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/analyze/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/local-ai-report/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/routing-topology/config/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/routing-topology/live/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/routing-topology/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/dashboard/token-saver/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/health/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/init/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/caveman-test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/keys/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/locale/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/alias/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/availability/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/custom/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/models/test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/device-code/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/poll/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/api-key-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/import-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/move/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/usage/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/client/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/monitor/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/permissions/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/routing/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/shares/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/visibility/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/catalog/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/recalculate/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/pricing/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-health/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/openai-compatible/manage/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/client/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/[id]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/ai-models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/analyze/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/history/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/resource-monitor/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/database/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/settings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/shutdown/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tags/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/load/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/save/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/send/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/history/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/search/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/restart/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/api/version/update/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/app/page-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-a48c4c9356e97886.js +0 -1
- package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-a48c4c9356e97886.js +0 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
- /package/app/.next-cli-build/static/{3m5XOO0ryP3m4X7stX7qm → IIFO5RGYvaU0aOO82Ud1_}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var a={};a.id=3471,a.ids=[3471],a.modules={10:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(5735),e=c(24429),f=c.n(e);function g({children:a}){return(0,d.jsx)("div",{className:f().profileLayout,children:a})}},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")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},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")},20503:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},21820:a=>{"use strict";a.exports=require("os")},22484:()=>{},24429:a=>{a.exports={profileLayout:"layout_profileLayout__IGvnc"}},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")},38522:a=>{"use strict";a.exports=require("node:zlib")},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")},43014:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},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")},54105:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>x,handler:()=>z,routeModule:()=>y});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.bind(c,10))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v={children:["",{children:["(dashboard)",{children:["dashboard",{children:["profile",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,50047))),"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\page.js"]}]},{layout:[t,"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\layout.js"],"global-error":[u,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"D:\\bluerouter\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"D:\\bluerouter\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,w=(0,e.H)({tree:v,page:"/(dashboard)/dashboard/profile/page",pathname:"/dashboard/profile",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),x=w.__next_app__,y=w.routeModule,z=w.handler},55511:a=>{"use strict";a.exports=require("crypto")},58868:()=>{},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")},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")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79428:a=>{"use strict";a.exports=require("buffer")},79748:a=>{"use strict";a.exports=require("fs/promises")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89768:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},91645:a=>{"use strict";a.exports=require("net")},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},94735:a=>{"use strict";a.exports=require("events")},97759:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>v});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,payloadRotationScheduleTime:"21:00",payloadRotationMaxRuntimeMinutes:60,payloadRotationIntervalHours:24,payloadRotationBatchSize:500,payloadRotationMaxBatches:20},i=[{value:60,label:"1 hour"},{value:120,label:"2 hours"},{value:180,label:"3 hours"},{value:240,label:"4 hours"},{value:360,label:"6 hours"},{value:480,label:"8 hours"},{value:720,label:"12 hours"},{value:0,label:"Until finished"}];function j({label:a,value:b,onChange:c,type:e="text",placeholder:f="",disabled:g=!1,min:h,max:i,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:i,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 k({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 l(){let[a,b]=(0,e.useState)(h),[c,f]=(0,e.useState)(!1),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),r=a=>b(b=>({...b,...a})),s=async()=>{f(!0),o(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){o(a.message||"Failed to load config")}finally{f(!1)}},t=async()=>{f(!0),o(null),m(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||{}}),m("Saved")}catch(a){o(a.message||"Failed to save config")}finally{f(!1)}},u=async(b,c={})=>{if(!c.confirm||window.confirm("Delete all prompt_logs rows and their payloads older than the retention cutoff? Both the rows in prompt_logs (previews, model/provider/token metadata) and the referenced payloads will be removed. This cannot be undone.")){f(!0),o(null),m(null),b.includes("payload-rotation")&&q(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.text(),f={};try{f=e?JSON.parse(e):{}}catch{let a=e.replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim().slice(0,200),b=504===d.status?"Manual rotation exceeded the request timeout. Use automatic rotation for long-running cleanup.":`HTTP ${d.status}: ${a||d.statusText||"non-JSON response"}`;throw Error(b)}if(!d.ok)throw Error(f.error||`HTTP ${d.status}`);b.includes("payload-rotation")&&q(f),m(f.message||f.init?.message||"OK")}catch(a){o(a.message||"Action failed")}finally{f(!1)}}},v="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;r({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"})]})]})}),v&&(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,d.jsx)(j,{label:"Host",value:a.host,placeholder:"127.0.0.1",onChange:a=>r({host:a}),disabled:c}),(0,d.jsx)(j,{label:"Port",value:a.port,placeholder:"postgres"===a.type?"5432":"3306",onChange:a=>r({port:a}),disabled:c}),(0,d.jsx)(j,{label:"Database",value:a.database,placeholder:"bluerouter_logs",onChange:a=>r({database:a}),disabled:c}),(0,d.jsx)(j,{label:"Username",value:a.username,placeholder:"bluerouter",onChange:a=>r({username:a}),disabled:c}),(0,d.jsx)(j,{label:"Password",type:"password",value:a.password,placeholder:"Leave as ******** to keep existing password",onChange:a=>r({password:a}),disabled:c}),(0,d.jsxs)("div",{className:"flex flex-col justify-end gap-2",children:[(0,d.jsx)(k,{label:"Use SSL",checked:a.ssl,onChange:a=>r({ssl:a}),disabled:c}),(0,d.jsx)(k,{label:"Create database if missing",checked:a.createDatabase,onChange:a=>r({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)(k,{label:"Save request/response to local files",checked:a.fileLoggingEnabled,onChange:a=>r({fileLoggingEnabled:a}),disabled:c}),(0,d.jsx)(k,{label:"Save request/response to Prompt Log Database",checked:a.enabled,onChange:a=>r({enabled:a}),disabled:c}),(0,d.jsx)(k,{label:"Log client request JSON",checked:a.logClientRequest,onChange:a=>r({logClientRequest:a}),disabled:c}),(0,d.jsx)(k,{label:"Log normalized/source request JSON",checked:a.logSourceRequest,onChange:a=>r({logSourceRequest:a}),disabled:c}),(0,d.jsx)(k,{label:"Log target/provider request JSON",checked:a.logTargetRequest,onChange:a=>r({logTargetRequest:a}),disabled:c}),(0,d.jsx)(k,{label:"Log provider response JSON",checked:a.logProviderResponse,onChange:a=>r({logProviderResponse:a}),disabled:c}),(0,d.jsx)(k,{label:"Log errors",checked:a.logErrors,onChange:a=>r({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:"Prompt log rotation"}),(0,d.jsxs)("div",{className:"mt-1 text-xs text-text-muted",children:["Deletes ",(0,d.jsx)("code",{children:"prompt_logs"})," rows AND their referenced payloads older than the retention cutoff. After a full run, only logs from the last N days remain — analytics/metadata for older rows are removed as well."]})]}),(0,d.jsx)(k,{label:"Enable automatic rotation",checked:a.payloadRotationEnabled,onChange:a=>r({payloadRotationEnabled:a}),disabled:c}),(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsx)(j,{label:"Keep logs for (days)",type:"number",min:1,max:3650,step:1,value:String(a.payloadRetentionDays||60),onChange:a=>r({payloadRetentionDays:Number(a)||60}),disabled:c}),(0,d.jsx)(j,{label:"Daily start time (Vietnam, UTC+7)",type:"time",step:60,value:String(a.payloadRotationScheduleTime||"21:00"),onChange:a=>r({payloadRotationScheduleTime:a||"21:00"}),disabled:c}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Maximum automatic run time"}),(0,d.jsx)("select",{value:String(Number(a.payloadRotationMaxRuntimeMinutes??60)),disabled:c,onChange:a=>r({payloadRotationMaxRuntimeMinutes:Number(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",children:i.map(a=>(0,d.jsx)("option",{value:String(a.value),children:a.label},a.value))})]}),(0,d.jsx)(j,{label:"Prompt-log rows per transaction",type:"number",min:50,max:5e3,step:50,value:String(a.payloadRotationBatchSize||500),onChange:a=>r({payloadRotationBatchSize:Number(a)||500}),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:["Automatic rotation runs once per day at the selected Vietnam time. It deletes expired ",(0,d.jsx)("code",{children:"prompt_logs"})," in small transactions and checks the run-time budget between cleanup passes. If the budget is reached, remaining rows continue at the next daily run. Choose ",(0,d.jsx)("strong",{children:"Until finished"})," to keep running until no expired rows remain. On MySQL, orphan ",(0,d.jsx)("code",{children:"prompt_log_payloads"})," rows are reaped as part of the cleanup."]}),(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:["Deletion is permanent: previews, model/provider/token metadata, and analytics for older rows go away too. Freed space stays inside InnoDB — ",(0,d.jsx)("code",{children:"OPTIMIZE TABLE"})," is needed to shrink the .ibd file (only during a maintenance window, with enough free disk)."]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>u("preview-payload-rotation"),loading:c,children:"Preview expired logs"}),(0,d.jsx)(g.$n,{size:"sm",variant:"danger",onClick:()=>u("run-payload-rotation",{confirm:!0}),loading:c,children:"Delete expired logs now"})]}),p&&(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:p.cutoff?new Date(p.cutoff).toLocaleString():"-"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===p.promptLogRowsUpdated?"Prompt-log rows past retention:":"Prompt-log rows deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(p.promptLogRowsUpdated??p.promptLogRows??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===p.payloadRowsDeleted?"Payload rows to delete:":"Payload rows deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(p.payloadRowsDeleted??p.payloadRowsPastRetention??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===p.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]}`}(p.payloadBytesDeleted??p.payloadBytesPastRetention??p.referencedPayloadBytes)})]}),p.hasMore?(0,d.jsx)("div",{className:"md:col-span-2 lg:col-span-4 text-amber-600",children:"More expired rows remain. Automatic rotation will continue them at the next scheduled run."}):null]}),(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:"Save to apply the automatic schedule immediately. Preview uses the values currently shown. Manual deletion is a bounded maintenance pass; use automatic rotation for multi-hour cleanup."})]}),v&&(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"}),"."]}),l&&(0,d.jsx)("div",{className:"rounded-lg border border-green-500/30 bg-green-500/10 p-2 text-xs text-green-600",children:l}),n&&(0,d.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 p-2 text-xs text-red-500",children:n}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:s,loading:c,children:"Reload"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>u("test"),loading:c,children:"Test connection"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>u("init"),loading:c,children:"Initialize schema"}),(0,d.jsx)(g.$n,{size:"sm",onClick:t,loading:c,children:"Save"}),(0,d.jsx)(g.$n,{size:"sm",variant:"success",onClick:()=>u("save-and-init"),loading:c,children:"Save & initialize"})]})]})})}let m="(|(sAMAccountName={{username}})(userPrincipalName={{username}})(mail={{username}}))",n="image/svg+xml,image/png,image/webp,image/jpeg,image/gif",o=`${n},image/x-icon,image/vnd.microsoft.icon,.ico`;function p({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 q({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 r({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 s(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 t(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 u({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 v(){let[a,b]=(0,e.useState)({}),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)({current:"",new:"",confirm:""}),[j,k]=(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:m,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||m,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 k({type:"error",message:"Passwords do not match"});w(!0),k({type:"",message:""});try{await ay({currentPassword:h.current,newPassword:h.new}),k({type:"success",message:"Password updated successfully"}),i({current:"",new:"",confirm:""})}catch(a){k({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)(q,{icon:"view_sidebar",title:"Sidebar tools",desc:"Show or hide advanced dashboard tools to keep the sidebar clean.",children:[(0,d.jsx)(u,{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)(p,{status:ac})]}),(0,d.jsxs)(q,{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:n,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:o,className:"hidden",onChange:aM})]})]})]}),(0,d.jsxs)("form",{onSubmit:aN,className:"space-y-3",children:[(0,d.jsx)(r,{label:"Site title",hint:"Shown in browser tab and login page. Leave blank for default.",children:(0,d.jsx)(s,{value:af,onChange:a=>ag(a.target.value),placeholder:"AI Router Gateway"})}),(0,d.jsx)(r,{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)(s,{value:ah,onChange:a=>ai(a.target.value),placeholder:"Fujinet"})}),(0,d.jsx)(r,{label:"Description",hint:"Used for browser metadata.",children:(0,d.jsx)(t,{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)(p,{status:al})]}),(0,d.jsx)(q,{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)(r,{label:"Local username",children:(0,d.jsx)(s,{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)(p,{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)(r,{label:"Current password",children:(0,d.jsx)(s,{type:"password",value:h.current,onChange:a=>i({...h,current:a.target.value}),required:!0})}),(0,d.jsx)(r,{label:"New password",children:(0,d.jsx)(s,{type:"password",value:h.new,onChange:a=>i({...h,new:a.target.value}),required:!0})}),(0,d.jsx)(r,{label:"Confirm password",children:(0,d.jsx)(s,{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)(p,{status:j})]})]})}),(0,d.jsx)("div",{id:"request-logging",className:"scroll-mt-6",children:(0,d.jsx)(l,{})}),(0,d.jsxs)(q,{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)(p,{status:z})]}),(0,d.jsx)(q,{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)(r,{label:"LDAP URL",children:(0,d.jsx)(s,{value:G.ldapUrl,onChange:a=>aE("ldapUrl",a.target.value),placeholder:"ldap://dc01.company.local:389"})}),(0,d.jsx)(r,{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)(s,{value:G.ldapUserBaseDn,onChange:a=>aE("ldapUserBaseDn",a.target.value),placeholder:"OU=Users,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(r,{label:"LDAP Bind DN",children:(0,d.jsx)(s,{value:G.ldapBindDn,onChange:a=>aE("ldapBindDn",a.target.value),placeholder:"CN=svc-bluerouter,OU=Service Accounts,DC=company,DC=local"})}),(0,d.jsx)(r,{label:"LDAP Bind Password",children:(0,d.jsx)(s,{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)(r,{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)(s,{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)(r,{label:"LDAP Admin Group DN",hint:"Members of this group get full admin dashboard access.",children:(0,d.jsx)(s,{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)(r,{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)(s,{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)(r,{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)(s,{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)(r,{label:"User search filter",hint:"Use {{username}} placeholder.",children:(0,d.jsx)(s,{value:G.ldapUserSearchFilter,onChange:a=>aE("ldapUserSearchFilter",a.target.value)})}),(0,d.jsx)(r,{label:"Login group mode",hint:"Nested groups uses AD matching rule 1.2.840.113556.1.4.1941.",children:(0,d.jsx)(u,{title:"Nested group membership",desc:"Recommended for Active Directory nested groups.",checked:G.ldapNestedGroups,onChange:a=>aE("ldapNestedGroups",a)})}),(0,d.jsx)(r,{label:"Username attribute",children:(0,d.jsx)(s,{value:G.ldapUserNameAttribute,onChange:a=>aE("ldapUserNameAttribute",a.target.value)})}),(0,d.jsx)(r,{label:"Display attribute",children:(0,d.jsx)(s,{value:G.ldapUserDisplayAttribute,onChange:a=>aE("ldapUserDisplayAttribute",a.target.value)})}),(0,d.jsx)(r,{label:"Email attribute",children:(0,d.jsx)(s,{value:G.ldapUserEmailAttribute,onChange:a=>aE("ldapUserEmailAttribute",a.target.value)})}),(0,d.jsx)(r,{label:"Connect timeout ms",children:(0,d.jsx)(s,{type:"number",value:G.ldapConnectTimeoutMs,onChange:a=>aE("ldapConnectTimeoutMs",a.target.value)})})]}),(0,d.jsx)(u,{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)(s,{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)(p,{status:I})]})}),(0,d.jsxs)(q,{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)(r,{label:"Issuer URL",children:(0,d.jsx)(s,{value:U.oidcIssuerUrl,onChange:a=>V({...U,oidcIssuerUrl:a.target.value})})}),(0,d.jsx)(r,{label:"Client ID",children:(0,d.jsx)(s,{value:U.oidcClientId,onChange:a=>V({...U,oidcClientId:a.target.value})})}),(0,d.jsx)(r,{label:"Client Secret",children:(0,d.jsx)(s,{type:"password",value:W,onChange:a=>X(a.target.value),placeholder:a.oidcConfigured?"Saved — leave blank to keep":"Client secret"})}),(0,d.jsx)(r,{label:"Scopes",children:(0,d.jsx)(s,{value:U.oidcScopes,onChange:a=>V({...U,oidcScopes:a.target.value})})}),(0,d.jsx)(r,{label:"Login label",children:(0,d.jsx)(s,{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)(p,{status:Y})]})]})]})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2430,8316,8946,402,5681,4404,6064,6328,8640],()=>b(b.s=54105));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=3471,a.ids=[3471],a.modules={10:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(5735),e=c(24429),f=c.n(e);function g({children:a}){return(0,d.jsx)("div",{className:f().profileLayout,children:a})}},1624:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>x,handler:()=>z,routeModule:()=>y});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.bind(c,10))),u=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),v={children:["",{children:["(dashboard)",{children:["dashboard",{children:["profile",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,50047))),"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\page.js"]}]},{layout:[t,"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\profile\\layout.js"],"global-error":[u,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"D:\\bluerouter\\src\\app\\(dashboard)\\layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"D:\\bluerouter\\src\\app\\layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await (0,d.p)(()=>Promise.resolve().then(c.bind(c,70440)))()).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,w=(0,e.H)({tree:v,page:"/(dashboard)/dashboard/profile/page",pathname:"/dashboard/profile",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),x=w.__next_app__,y=w.routeModule,z=w.handler},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")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},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")},20503:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},21820:a=>{"use strict";a.exports=require("os")},22484:()=>{},24429:a=>{a.exports={profileLayout:"layout_profileLayout__IGvnc"}},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")},38522:a=>{"use strict";a.exports=require("node:zlib")},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")},43014:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},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")},58868:()=>{},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")},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")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},79428:a=>{"use strict";a.exports=require("buffer")},79748:a=>{"use strict";a.exports=require("fs/promises")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89768:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},91645:a=>{"use strict";a.exports=require("net")},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},94735:a=>{"use strict";a.exports=require("events")},97759:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>v});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,payloadRotationScheduleTime:"21:00",payloadRotationMaxRuntimeMinutes:60,payloadRotationIntervalHours:24,payloadRotationBatchSize:500,payloadRotationMaxBatches:20},i=[{value:60,label:"1 hour"},{value:120,label:"2 hours"},{value:180,label:"3 hours"},{value:240,label:"4 hours"},{value:360,label:"6 hours"},{value:480,label:"8 hours"},{value:720,label:"12 hours"},{value:0,label:"Until finished"}];function j({label:a,value:b,onChange:c,type:e="text",placeholder:f="",disabled:g=!1,min:h,max:i,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:i,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 k({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 l(){let[a,b]=(0,e.useState)(h),[c,f]=(0,e.useState)(!1),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(null),r=a=>b(b=>({...b,...a})),s=async()=>{f(!0),o(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){o(a.message||"Failed to load config")}finally{f(!1)}},t=async()=>{f(!0),o(null),m(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||{}}),m("Saved")}catch(a){o(a.message||"Failed to save config")}finally{f(!1)}},u=async(b,c={})=>{if(!c.confirm||window.confirm("Delete all prompt_logs rows and their payloads older than the retention cutoff? Both the rows in prompt_logs (previews, model/provider/token metadata) and the referenced payloads will be removed. This cannot be undone.")){f(!0),o(null),m(null),b.includes("payload-rotation")&&q(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.text(),f={};try{f=e?JSON.parse(e):{}}catch{let a=e.replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim().slice(0,200),b=504===d.status?"Manual rotation exceeded the request timeout. Use automatic rotation for long-running cleanup.":`HTTP ${d.status}: ${a||d.statusText||"non-JSON response"}`;throw Error(b)}if(!d.ok)throw Error(f.error||`HTTP ${d.status}`);b.includes("payload-rotation")&&q(f),m(f.message||f.init?.message||"OK")}catch(a){o(a.message||"Action failed")}finally{f(!1)}}},v="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;r({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"})]})]})}),v&&(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,d.jsx)(j,{label:"Host",value:a.host,placeholder:"127.0.0.1",onChange:a=>r({host:a}),disabled:c}),(0,d.jsx)(j,{label:"Port",value:a.port,placeholder:"postgres"===a.type?"5432":"3306",onChange:a=>r({port:a}),disabled:c}),(0,d.jsx)(j,{label:"Database",value:a.database,placeholder:"bluerouter_logs",onChange:a=>r({database:a}),disabled:c}),(0,d.jsx)(j,{label:"Username",value:a.username,placeholder:"bluerouter",onChange:a=>r({username:a}),disabled:c}),(0,d.jsx)(j,{label:"Password",type:"password",value:a.password,placeholder:"Leave as ******** to keep existing password",onChange:a=>r({password:a}),disabled:c}),(0,d.jsxs)("div",{className:"flex flex-col justify-end gap-2",children:[(0,d.jsx)(k,{label:"Use SSL",checked:a.ssl,onChange:a=>r({ssl:a}),disabled:c}),(0,d.jsx)(k,{label:"Create database if missing",checked:a.createDatabase,onChange:a=>r({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)(k,{label:"Save request/response to local files",checked:a.fileLoggingEnabled,onChange:a=>r({fileLoggingEnabled:a}),disabled:c}),(0,d.jsx)(k,{label:"Save request/response to Prompt Log Database",checked:a.enabled,onChange:a=>r({enabled:a}),disabled:c}),(0,d.jsx)(k,{label:"Log client request JSON",checked:a.logClientRequest,onChange:a=>r({logClientRequest:a}),disabled:c}),(0,d.jsx)(k,{label:"Log normalized/source request JSON",checked:a.logSourceRequest,onChange:a=>r({logSourceRequest:a}),disabled:c}),(0,d.jsx)(k,{label:"Log target/provider request JSON",checked:a.logTargetRequest,onChange:a=>r({logTargetRequest:a}),disabled:c}),(0,d.jsx)(k,{label:"Log provider response JSON",checked:a.logProviderResponse,onChange:a=>r({logProviderResponse:a}),disabled:c}),(0,d.jsx)(k,{label:"Log errors",checked:a.logErrors,onChange:a=>r({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:"Prompt log rotation"}),(0,d.jsxs)("div",{className:"mt-1 text-xs text-text-muted",children:["Deletes ",(0,d.jsx)("code",{children:"prompt_logs"})," rows AND their referenced payloads older than the retention cutoff. After a full run, only logs from the last N days remain — analytics/metadata for older rows are removed as well."]})]}),(0,d.jsx)(k,{label:"Enable automatic rotation",checked:a.payloadRotationEnabled,onChange:a=>r({payloadRotationEnabled:a}),disabled:c}),(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsx)(j,{label:"Keep logs for (days)",type:"number",min:1,max:3650,step:1,value:String(a.payloadRetentionDays||60),onChange:a=>r({payloadRetentionDays:Number(a)||60}),disabled:c}),(0,d.jsx)(j,{label:"Daily start time (Vietnam, UTC+7)",type:"time",step:60,value:String(a.payloadRotationScheduleTime||"21:00"),onChange:a=>r({payloadRotationScheduleTime:a||"21:00"}),disabled:c}),(0,d.jsxs)("label",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Maximum automatic run time"}),(0,d.jsx)("select",{value:String(Number(a.payloadRotationMaxRuntimeMinutes??60)),disabled:c,onChange:a=>r({payloadRotationMaxRuntimeMinutes:Number(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",children:i.map(a=>(0,d.jsx)("option",{value:String(a.value),children:a.label},a.value))})]}),(0,d.jsx)(j,{label:"Prompt-log rows per transaction",type:"number",min:50,max:5e3,step:50,value:String(a.payloadRotationBatchSize||500),onChange:a=>r({payloadRotationBatchSize:Number(a)||500}),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:["Automatic rotation runs once per day at the selected Vietnam time. It deletes expired ",(0,d.jsx)("code",{children:"prompt_logs"})," in small transactions and checks the run-time budget between cleanup passes. If the budget is reached, remaining rows continue at the next daily run. Choose ",(0,d.jsx)("strong",{children:"Until finished"})," to keep running until no expired rows remain. On MySQL, orphan ",(0,d.jsx)("code",{children:"prompt_log_payloads"})," rows are reaped as part of the cleanup."]}),(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:["Deletion is permanent: previews, model/provider/token metadata, and analytics for older rows go away too. Freed space stays inside InnoDB — ",(0,d.jsx)("code",{children:"OPTIMIZE TABLE"})," is needed to shrink the .ibd file (only during a maintenance window, with enough free disk)."]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>u("preview-payload-rotation"),loading:c,children:"Preview expired logs"}),(0,d.jsx)(g.$n,{size:"sm",variant:"danger",onClick:()=>u("run-payload-rotation",{confirm:!0}),loading:c,children:"Delete expired logs now"})]}),p&&(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:p.cutoff?new Date(p.cutoff).toLocaleString():"-"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===p.promptLogRowsUpdated?"Prompt-log rows past retention:":"Prompt-log rows deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(p.promptLogRowsUpdated??p.promptLogRows??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===p.payloadRowsDeleted?"Payload rows to delete:":"Payload rows deleted:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:Number(p.payloadRowsDeleted??p.payloadRowsPastRetention??0).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:void 0===p.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]}`}(p.payloadBytesDeleted??p.payloadBytesPastRetention??p.referencedPayloadBytes)})]}),p.hasMore?(0,d.jsx)("div",{className:"md:col-span-2 lg:col-span-4 text-amber-600",children:"More expired rows remain. Automatic rotation will continue them at the next scheduled run."}):null]}),(0,d.jsx)("div",{className:"text-[11px] text-text-muted",children:"Save to apply the automatic schedule immediately. Preview uses the values currently shown. Manual deletion is a bounded maintenance pass; use automatic rotation for multi-hour cleanup."})]}),v&&(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"}),"."]}),l&&(0,d.jsx)("div",{className:"rounded-lg border border-green-500/30 bg-green-500/10 p-2 text-xs text-green-600",children:l}),n&&(0,d.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 p-2 text-xs text-red-500",children:n}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:s,loading:c,children:"Reload"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>u("test"),loading:c,children:"Test connection"}),(0,d.jsx)(g.$n,{size:"sm",variant:"secondary",onClick:()=>u("init"),loading:c,children:"Initialize schema"}),(0,d.jsx)(g.$n,{size:"sm",onClick:t,loading:c,children:"Save"}),(0,d.jsx)(g.$n,{size:"sm",variant:"success",onClick:()=>u("save-and-init"),loading:c,children:"Save & initialize"})]})]})})}let m="(|(sAMAccountName={{username}})(userPrincipalName={{username}})(mail={{username}}))",n="image/svg+xml,image/png,image/webp,image/jpeg,image/gif",o=`${n},image/x-icon,image/vnd.microsoft.icon,.ico`;function p({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 q({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 r({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 s(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 t(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 u({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 v(){let[a,b]=(0,e.useState)({}),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)({current:"",new:"",confirm:""}),[j,k]=(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:m,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||m,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 k({type:"error",message:"Passwords do not match"});w(!0),k({type:"",message:""});try{await ay({currentPassword:h.current,newPassword:h.new}),k({type:"success",message:"Password updated successfully"}),i({current:"",new:"",confirm:""})}catch(a){k({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)(q,{icon:"view_sidebar",title:"Sidebar tools",desc:"Show or hide advanced dashboard tools to keep the sidebar clean.",children:[(0,d.jsx)(u,{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)(p,{status:ac})]}),(0,d.jsxs)(q,{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:n,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:o,className:"hidden",onChange:aM})]})]})]}),(0,d.jsxs)("form",{onSubmit:aN,className:"space-y-3",children:[(0,d.jsx)(r,{label:"Site title",hint:"Shown in browser tab and login page. Leave blank for default.",children:(0,d.jsx)(s,{value:af,onChange:a=>ag(a.target.value),placeholder:"AI Router Gateway"})}),(0,d.jsx)(r,{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)(s,{value:ah,onChange:a=>ai(a.target.value),placeholder:"Fujinet"})}),(0,d.jsx)(r,{label:"Description",hint:"Used for browser metadata.",children:(0,d.jsx)(t,{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)(p,{status:al})]}),(0,d.jsx)(q,{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)(r,{label:"Local username",children:(0,d.jsx)(s,{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)(p,{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)(r,{label:"Current password",children:(0,d.jsx)(s,{type:"password",value:h.current,onChange:a=>i({...h,current:a.target.value}),required:!0})}),(0,d.jsx)(r,{label:"New password",children:(0,d.jsx)(s,{type:"password",value:h.new,onChange:a=>i({...h,new:a.target.value}),required:!0})}),(0,d.jsx)(r,{label:"Confirm password",children:(0,d.jsx)(s,{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)(p,{status:j})]})]})}),(0,d.jsx)("div",{id:"request-logging",className:"scroll-mt-6",children:(0,d.jsx)(l,{})}),(0,d.jsxs)(q,{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)(p,{status:z})]}),(0,d.jsx)(q,{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)(r,{label:"LDAP URL",children:(0,d.jsx)(s,{value:G.ldapUrl,onChange:a=>aE("ldapUrl",a.target.value),placeholder:"ldap://dc01.company.local:389"})}),(0,d.jsx)(r,{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)(s,{value:G.ldapUserBaseDn,onChange:a=>aE("ldapUserBaseDn",a.target.value),placeholder:"OU=Users,OU=xxx,DC=xx,DC=vn"})}),(0,d.jsx)(r,{label:"LDAP Bind DN",children:(0,d.jsx)(s,{value:G.ldapBindDn,onChange:a=>aE("ldapBindDn",a.target.value),placeholder:"CN=svc-bluerouter,OU=Service Accounts,DC=company,DC=local"})}),(0,d.jsx)(r,{label:"LDAP Bind Password",children:(0,d.jsx)(s,{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)(r,{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)(s,{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)(r,{label:"LDAP Admin Group DN",hint:"Members of this group get full admin dashboard access.",children:(0,d.jsx)(s,{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)(r,{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)(s,{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)(r,{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)(s,{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)(r,{label:"User search filter",hint:"Use {{username}} placeholder.",children:(0,d.jsx)(s,{value:G.ldapUserSearchFilter,onChange:a=>aE("ldapUserSearchFilter",a.target.value)})}),(0,d.jsx)(r,{label:"Login group mode",hint:"Nested groups uses AD matching rule 1.2.840.113556.1.4.1941.",children:(0,d.jsx)(u,{title:"Nested group membership",desc:"Recommended for Active Directory nested groups.",checked:G.ldapNestedGroups,onChange:a=>aE("ldapNestedGroups",a)})}),(0,d.jsx)(r,{label:"Username attribute",children:(0,d.jsx)(s,{value:G.ldapUserNameAttribute,onChange:a=>aE("ldapUserNameAttribute",a.target.value)})}),(0,d.jsx)(r,{label:"Display attribute",children:(0,d.jsx)(s,{value:G.ldapUserDisplayAttribute,onChange:a=>aE("ldapUserDisplayAttribute",a.target.value)})}),(0,d.jsx)(r,{label:"Email attribute",children:(0,d.jsx)(s,{value:G.ldapUserEmailAttribute,onChange:a=>aE("ldapUserEmailAttribute",a.target.value)})}),(0,d.jsx)(r,{label:"Connect timeout ms",children:(0,d.jsx)(s,{type:"number",value:G.ldapConnectTimeoutMs,onChange:a=>aE("ldapConnectTimeoutMs",a.target.value)})})]}),(0,d.jsx)(u,{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)(s,{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)(p,{status:I})]})}),(0,d.jsxs)(q,{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)(r,{label:"Issuer URL",children:(0,d.jsx)(s,{value:U.oidcIssuerUrl,onChange:a=>V({...U,oidcIssuerUrl:a.target.value})})}),(0,d.jsx)(r,{label:"Client ID",children:(0,d.jsx)(s,{value:U.oidcClientId,onChange:a=>V({...U,oidcClientId:a.target.value})})}),(0,d.jsx)(r,{label:"Client Secret",children:(0,d.jsx)(s,{type:"password",value:W,onChange:a=>X(a.target.value),placeholder:a.oidcConfigured?"Saved — leave blank to keep":"Client secret"})}),(0,d.jsx)(r,{label:"Scopes",children:(0,d.jsx)(s,{value:U.oidcScopes,onChange:a=>V({...U,oidcScopes:a.target.value})})}),(0,d.jsx)(r,{label:"Login label",children:(0,d.jsx)(s,{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)(p,{status:Y})]})]})]})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,2430,8316,8946,402,5681,4404,6064,6328,8640],()=>b(b.s=1624));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/pg-cloudflare/dist/empty.js","../../../../../../node_modules/pg-cloudflare/dist/index.js","../../../../../../node_modules/pg-cloudflare/package.json","../../../../../../node_modules/pg-connection-string/index.js","../../../../../../node_modules/pg-connection-string/package.json","../../../../../../node_modules/pg-int8/index.js","../../../../../../node_modules/pg-int8/package.json","../../../../../../node_modules/pg-pool/index.js","../../../../../../node_modules/pg-pool/package.json","../../../../../../node_modules/pg-protocol/dist/buffer-reader.js","../../../../../../node_modules/pg-protocol/dist/buffer-writer.js","../../../../../../node_modules/pg-protocol/dist/index.js","../../../../../../node_modules/pg-protocol/dist/messages.js","../../../../../../node_modules/pg-protocol/dist/parser.js","../../../../../../node_modules/pg-protocol/dist/serializer.js","../../../../../../node_modules/pg-protocol/package.json","../../../../../../node_modules/pg-types/index.js","../../../../../../node_modules/pg-types/lib/arrayParser.js","../../../../../../node_modules/pg-types/lib/binaryParsers.js","../../../../../../node_modules/pg-types/lib/builtins.js","../../../../../../node_modules/pg-types/lib/textParsers.js","../../../../../../node_modules/pg-types/package.json","../../../../../../node_modules/pg/esm/index.mjs","../../../../../../node_modules/pg/lib/client.js","../../../../../../node_modules/pg/lib/connection-parameters.js","../../../../../../node_modules/pg/lib/connection.js","../../../../../../node_modules/pg/lib/crypto/cert-signatures.js","../../../../../../node_modules/pg/lib/crypto/sasl.js","../../../../../../node_modules/pg/lib/crypto/utils.js","../../../../../../node_modules/pg/lib/defaults.js","../../../../../../node_modules/pg/lib/index.js","../../../../../../node_modules/pg/lib/native/client.js","../../../../../../node_modules/pg/lib/native/index.js","../../../../../../node_modules/pg/lib/native/query.js","../../../../../../node_modules/pg/lib/query.js","../../../../../../node_modules/pg/lib/result.js","../../../../../../node_modules/pg/lib/stream.js","../../../../../../node_modules/pg/lib/type-overrides.js","../../../../../../node_modules/pg/lib/utils.js","../../../../../../node_modules/pg/package.json","../../../../../../node_modules/pgpass/lib/helper.js","../../../../../../node_modules/pgpass/lib/index.js","../../../../../../node_modules/pgpass/package.json","../../../../../../node_modules/postgres-array/index.js","../../../../../../node_modules/postgres-array/package.json","../../../../../../node_modules/postgres-bytea/index.js","../../../../../../node_modules/postgres-bytea/package.json","../../../../../../node_modules/postgres-date/index.js","../../../../../../node_modules/postgres-date/package.json","../../../../../../node_modules/postgres-interval/index.js","../../../../../../node_modules/postgres-interval/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/split2/index.js","../../../../../../node_modules/split2/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/xtend/mutable.js","../../../../../../node_modules/xtend/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1002.js","../../../../chunks/1455.js","../../../../chunks/181.js","../../../../chunks/1817.js","../../../../chunks/1998.js","../../../../chunks/2155.js","../../../../chunks/2242.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2506.js","../../../../chunks/2507.js","../../../../chunks/2512.js","../../../../chunks/2556.js","../../../../chunks/2566.js","../../../../chunks/2611.js","../../../../chunks/2650.js","../../../../chunks/2664.js","../../../../chunks/2731.js","../../../../chunks/2891.js","../../../../chunks/2944.js","../../../../chunks/3104.js","../../../../chunks/318.js","../../../../chunks/3399.js","../../../../chunks/3433.js","../../../../chunks/3593.js","../../../../chunks/3609.js","../../../../chunks/3696.js","../../../../chunks/3738.js","../../../../chunks/3767.js","../../../../chunks/3801.js","../../../../chunks/3824.js","../../../../chunks/3958.js","../../../../chunks/3960.js","../../../../chunks/4013.js","../../../../chunks/4017.js","../../../../chunks/402.js","../../../../chunks/4123.js","../../../../chunks/4177.js","../../../../chunks/4298.js","../../../../chunks/4315.js","../../../../chunks/4350.js","../../../../chunks/436.js","../../../../chunks/4404.js","../../../../chunks/4433.js","../../../../chunks/4632.js","../../../../chunks/4696.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4746.js","../../../../chunks/4778.js","../../../../chunks/4780.js","../../../../chunks/4790.js","../../../../chunks/4803.js","../../../../chunks/507.js","../../../../chunks/5206.js","../../../../chunks/5210.js","../../../../chunks/5213.js","../../../../chunks/5258.js","../../../../chunks/5312.js","../../../../chunks/541.js","../../../../chunks/5424.js","../../../../chunks/5433.js","../../../../chunks/5573.js","../../../../chunks/5592.js","../../../../chunks/5681.js","../../../../chunks/5852.js","../../../../chunks/5901.js","../../../../chunks/5915.js","../../../../chunks/595.js","../../../../chunks/6053.js","../../../../chunks/6064.js","../../../../chunks/607.js","../../../../chunks/6103.js","../../../../chunks/6108.js","../../../../chunks/6118.js","../../../../chunks/6182.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6404.js","../../../../chunks/6492.js","../../../../chunks/6684.js","../../../../chunks/6811.js","../../../../chunks/6844.js","../../../../chunks/689.js","../../../../chunks/6936.js","../../../../chunks/6956.js","../../../../chunks/6977.js","../../../../chunks/6979.js","../../../../chunks/698.js","../../../../chunks/6992.js","../../../../chunks/7126.js","../../../../chunks/7242.js","../../../../chunks/7341.js","../../../../chunks/7464.js","../../../../chunks/7669.js","../../../../chunks/7707.js","../../../../chunks/7753.js","../../../../chunks/7774.js","../../../../chunks/7812.js","../../../../chunks/7828.js","../../../../chunks/7965.js","../../../../chunks/7986.js","../../../../chunks/8023.js","../../../../chunks/8049.js","../../../../chunks/8062.js","../../../../chunks/8099.js","../../../../chunks/8255.js","../../../../chunks/8316.js","../../../../chunks/8347.js","../../../../chunks/8352.js","../../../../chunks/8360.js","../../../../chunks/8469.js","../../../../chunks/8491.js","../../../../chunks/8520.js","../../../../chunks/8590.js","../../../../chunks/8640.js","../../../../chunks/8895.js","../../../../chunks/8946.js","../../../../chunks/9.js","../../../../chunks/9012.js","../../../../chunks/9483.js","../../../../chunks/9489.js","../../../../chunks/9609.js","../../../../chunks/9868.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/pg-cloudflare/dist/empty.js","../../../../../../node_modules/pg-cloudflare/dist/index.js","../../../../../../node_modules/pg-cloudflare/package.json","../../../../../../node_modules/pg-connection-string/index.js","../../../../../../node_modules/pg-connection-string/package.json","../../../../../../node_modules/pg-int8/index.js","../../../../../../node_modules/pg-int8/package.json","../../../../../../node_modules/pg-pool/index.js","../../../../../../node_modules/pg-pool/package.json","../../../../../../node_modules/pg-protocol/dist/buffer-reader.js","../../../../../../node_modules/pg-protocol/dist/buffer-writer.js","../../../../../../node_modules/pg-protocol/dist/index.js","../../../../../../node_modules/pg-protocol/dist/messages.js","../../../../../../node_modules/pg-protocol/dist/parser.js","../../../../../../node_modules/pg-protocol/dist/serializer.js","../../../../../../node_modules/pg-protocol/package.json","../../../../../../node_modules/pg-types/index.js","../../../../../../node_modules/pg-types/lib/arrayParser.js","../../../../../../node_modules/pg-types/lib/binaryParsers.js","../../../../../../node_modules/pg-types/lib/builtins.js","../../../../../../node_modules/pg-types/lib/textParsers.js","../../../../../../node_modules/pg-types/package.json","../../../../../../node_modules/pg/esm/index.mjs","../../../../../../node_modules/pg/lib/client.js","../../../../../../node_modules/pg/lib/connection-parameters.js","../../../../../../node_modules/pg/lib/connection.js","../../../../../../node_modules/pg/lib/crypto/cert-signatures.js","../../../../../../node_modules/pg/lib/crypto/sasl.js","../../../../../../node_modules/pg/lib/crypto/utils.js","../../../../../../node_modules/pg/lib/defaults.js","../../../../../../node_modules/pg/lib/index.js","../../../../../../node_modules/pg/lib/native/client.js","../../../../../../node_modules/pg/lib/native/index.js","../../../../../../node_modules/pg/lib/native/query.js","../../../../../../node_modules/pg/lib/query.js","../../../../../../node_modules/pg/lib/result.js","../../../../../../node_modules/pg/lib/stream.js","../../../../../../node_modules/pg/lib/type-overrides.js","../../../../../../node_modules/pg/lib/utils.js","../../../../../../node_modules/pg/package.json","../../../../../../node_modules/pgpass/lib/helper.js","../../../../../../node_modules/pgpass/lib/index.js","../../../../../../node_modules/pgpass/package.json","../../../../../../node_modules/postgres-array/index.js","../../../../../../node_modules/postgres-array/package.json","../../../../../../node_modules/postgres-bytea/index.js","../../../../../../node_modules/postgres-bytea/package.json","../../../../../../node_modules/postgres-date/index.js","../../../../../../node_modules/postgres-date/package.json","../../../../../../node_modules/postgres-interval/index.js","../../../../../../node_modules/postgres-interval/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/split2/index.js","../../../../../../node_modules/split2/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../node_modules/xtend/mutable.js","../../../../../../node_modules/xtend/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1002.js","../../../../chunks/1455.js","../../../../chunks/181.js","../../../../chunks/1817.js","../../../../chunks/1998.js","../../../../chunks/2155.js","../../../../chunks/2242.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2506.js","../../../../chunks/2507.js","../../../../chunks/2512.js","../../../../chunks/2556.js","../../../../chunks/2566.js","../../../../chunks/2611.js","../../../../chunks/2650.js","../../../../chunks/2664.js","../../../../chunks/2731.js","../../../../chunks/2891.js","../../../../chunks/2944.js","../../../../chunks/3104.js","../../../../chunks/318.js","../../../../chunks/3399.js","../../../../chunks/3433.js","../../../../chunks/3593.js","../../../../chunks/3609.js","../../../../chunks/3696.js","../../../../chunks/3738.js","../../../../chunks/3801.js","../../../../chunks/3824.js","../../../../chunks/3958.js","../../../../chunks/3960.js","../../../../chunks/4013.js","../../../../chunks/4017.js","../../../../chunks/402.js","../../../../chunks/4123.js","../../../../chunks/4177.js","../../../../chunks/4298.js","../../../../chunks/4315.js","../../../../chunks/4350.js","../../../../chunks/436.js","../../../../chunks/4404.js","../../../../chunks/4432.js","../../../../chunks/4433.js","../../../../chunks/4632.js","../../../../chunks/4696.js","../../../../chunks/4739.js","../../../../chunks/4741.js","../../../../chunks/4746.js","../../../../chunks/4778.js","../../../../chunks/4780.js","../../../../chunks/4790.js","../../../../chunks/4803.js","../../../../chunks/507.js","../../../../chunks/5206.js","../../../../chunks/5210.js","../../../../chunks/5213.js","../../../../chunks/5258.js","../../../../chunks/5312.js","../../../../chunks/541.js","../../../../chunks/5424.js","../../../../chunks/5433.js","../../../../chunks/5530.js","../../../../chunks/5573.js","../../../../chunks/5592.js","../../../../chunks/5681.js","../../../../chunks/5852.js","../../../../chunks/5901.js","../../../../chunks/5915.js","../../../../chunks/595.js","../../../../chunks/6053.js","../../../../chunks/6064.js","../../../../chunks/607.js","../../../../chunks/6103.js","../../../../chunks/6108.js","../../../../chunks/6118.js","../../../../chunks/6182.js","../../../../chunks/6252.js","../../../../chunks/6328.js","../../../../chunks/6404.js","../../../../chunks/6492.js","../../../../chunks/6684.js","../../../../chunks/6811.js","../../../../chunks/6844.js","../../../../chunks/689.js","../../../../chunks/6936.js","../../../../chunks/6956.js","../../../../chunks/6977.js","../../../../chunks/6979.js","../../../../chunks/698.js","../../../../chunks/6992.js","../../../../chunks/7007.js","../../../../chunks/7126.js","../../../../chunks/7242.js","../../../../chunks/7341.js","../../../../chunks/7464.js","../../../../chunks/7669.js","../../../../chunks/7707.js","../../../../chunks/7753.js","../../../../chunks/7774.js","../../../../chunks/7812.js","../../../../chunks/7828.js","../../../../chunks/7965.js","../../../../chunks/7986.js","../../../../chunks/8023.js","../../../../chunks/8049.js","../../../../chunks/8062.js","../../../../chunks/8099.js","../../../../chunks/8255.js","../../../../chunks/8316.js","../../../../chunks/8347.js","../../../../chunks/8352.js","../../../../chunks/8360.js","../../../../chunks/8469.js","../../../../chunks/8491.js","../../../../chunks/8520.js","../../../../chunks/8590.js","../../../../chunks/8640.js","../../../../chunks/8895.js","../../../../chunks/8946.js","../../../../chunks/9.js","../../../../chunks/9012.js","../../../../chunks/9083.js","../../../../chunks/9483.js","../../../../chunks/9489.js","../../../../chunks/9609.js","../../../../chunks/9868.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|