omniroute 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -26
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +37 -25
- package/app/.next/build-manifest.json +3 -3
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/routes-manifest.json +74 -0
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +3 -3
- package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +2 -2
- package/app/.next/server/app/_global-error.rsc +10 -9
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +10 -9
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +2 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +16 -12
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +16 -12
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +8 -4
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route.js +1 -0
- package/app/.next/server/app/api/cache/stats/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route.js +156 -0
- package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -0
- package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -0
- package/app/.next/server/app/api/evals/[suiteId]/route.js.nft.json +1 -0
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/evals/route.js +1 -0
- package/app/.next/server/app/api/evals/route.js.nft.json +1 -0
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/fallback/chains/route.js +1 -0
- package/app/.next/server/app/api/fallback/chains/route.js.nft.json +1 -0
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -0
- package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -0
- package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/models/catalog/route.js +156 -1
- package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
- package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/policies/route.js +1 -0
- package/app/.next/server/app/api/policies/route.js.nft.json +1 -0
- package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limit/route.js +2 -2
- package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/rate-limits/route.js +1 -1
- package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/reset/route.js +1 -0
- package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -0
- package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/resilience/route.js +156 -0
- package/app/.next/server/app/api/resilience/route.js.nft.json +1 -0
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/telemetry/summary/route.js +1 -0
- package/app/.next/server/app/api/telemetry/summary/route.js.nft.json +1 -0
- package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/token-health/route.js +156 -0
- package/app/.next/server/app/api/token-health/route.js.nft.json +1 -0
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/translator/detect/route.js +1 -1
- package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -156
- package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +2 -2
- package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js +1 -1
- package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/budget/route.js +1 -0
- package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -0
- package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -156
- package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -156
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js +2 -2
- package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +156 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/rerank/route.js +2 -2
- package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page.js.nft.json +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +17 -16
- package/app/.next/server/app/callback.segments/_full.segment.rsc +17 -16
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +16 -15
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +16 -15
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +18 -17
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +16 -15
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +16 -15
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/onboarding.html +1 -1
- package/app/.next/server/app/dashboard/onboarding.rsc +18 -17
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +15 -14
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +15 -14
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +18 -17
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +18 -17
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +18 -17
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.html +1 -1
- package/app/.next/server/app/dashboard/settings.rsc +18 -17
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.html +2 -2
- package/app/.next/server/app/dashboard/translator.rsc +15 -14
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +15 -14
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.html +2 -1
- package/app/.next/server/app/dashboard/usage.rsc +18 -17
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +18 -17
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/docs/page.js +2 -2
- package/app/.next/server/app/docs/page.js.nft.json +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs.html +1 -1
- package/app/.next/server/app/docs.rsc +21 -24
- package/app/.next/server/app/docs.segments/_full.segment.rsc +21 -24
- package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/docs.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +14 -13
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +14 -13
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page.js.nft.json +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +17 -16
- package/app/.next/server/app/landing.segments/_full.segment.rsc +17 -16
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page.js.nft.json +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +17 -16
- package/app/.next/server/app/login.segments/_full.segment.rsc +17 -16
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page.js.nft.json +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page.js +2 -2
- package/app/.next/server/app/privacy/page.js.nft.json +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy.html +1 -1
- package/app/.next/server/app/privacy.rsc +22 -23
- package/app/.next/server/app/privacy.segments/_full.segment.rsc +22 -23
- package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/privacy.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
- package/app/.next/server/app/terms/page.js +2 -2
- package/app/.next/server/app/terms/page.js.nft.json +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms.html +1 -1
- package/app/.next/server/app/terms.rsc +7 -7
- package/app/.next/server/app/terms.segments/_full.segment.rsc +7 -7
- package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/terms.segments/_index.segment.rsc +4 -3
- package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
- package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
- package/app/.next/server/app-paths-manifest.json +37 -25
- package/app/.next/server/chunks/1228.js +1 -0
- package/app/.next/server/chunks/1362.js +1 -1
- package/app/.next/server/chunks/152.js +1 -0
- package/app/.next/server/chunks/{3919.js → 1969.js} +1 -1
- package/app/.next/server/chunks/2399.js +1 -1
- package/app/.next/server/chunks/3676.js +1 -0
- package/app/.next/server/chunks/4004.js +1 -0
- package/app/.next/server/chunks/{6937.js → 4412.js} +2 -2
- package/app/.next/server/chunks/4755.js +15 -1
- package/app/.next/server/chunks/{7132.js → 4832.js} +2 -2
- package/app/.next/server/chunks/5040.js +1 -0
- package/app/.next/server/chunks/5267.js +1 -0
- package/app/.next/server/chunks/5640.js +1 -1
- package/app/.next/server/chunks/7271.js +1 -0
- package/app/.next/server/chunks/7615.js +1 -1
- package/app/.next/server/chunks/7968.js +1 -1
- package/app/.next/server/chunks/8020.js +13 -0
- package/app/.next/server/chunks/8108.js +1 -1
- package/app/.next/server/chunks/8259.js +1 -1
- package/app/.next/server/chunks/8400.js +1 -1
- package/app/.next/server/chunks/9328.js +156 -0
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +2 -2
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/HcUrNktdfL89Ss5F7FHxP/_buildManifest.js +1 -0
- package/app/.next/static/chunks/1525-213a0aff01eb1c70.js +21 -0
- package/app/.next/static/chunks/{7896-4e519429f67f381e.js → 7896-5591822b8348e380.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-28e46119138cf102.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-fc3451fe77f856f1.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-95b884cdbf859e56.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-7a0943932e7e5e51.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/layout-e84875e22efbf437.js +1 -0
- package/app/.next/static/chunks/app/_global-error/page-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/_not-found/page-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/auth/login/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/auth/logout/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cache/stats/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/combos/metrics/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/combos/test/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/compliance/audit-log/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/db-backups/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/evals/[suiteId]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/evals/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/fallback/chains/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/models/catalog/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/policies/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/defaults/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/models/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/provider-models/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limit/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/rate-limits/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/reset/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/resilience/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/restart/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/sessions/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/storage/health/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/sync/cloud/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/sync/initialize/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/telemetry/summary/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/token-health/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/translator/detect/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/translator/history/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/analytics/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/budget/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/call-logs/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/moderations/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/rerank/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/app/global-error-bbdc13af28c5aba1.js +1 -0
- package/app/.next/static/chunks/app/not-found-2ba4520c9df30430.js +1 -0
- package/app/.next/static/chunks/app/page-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/main-app-c9da11a8061df107.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-329f30be723f33ce.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-329f30be723f33ce.js +1 -0
- package/app/.next/static/css/2862d4067eab20b2.css +1 -0
- package/app/package.json +9 -5
- package/app/src/shared/utils/apiKey.js +5 -1
- package/bin/reset-password.mjs +116 -0
- package/package.json +9 -5
- package/app/.next/server/chunks/1483.js +0 -156
- package/app/.next/server/chunks/2116.js +0 -1
- package/app/.next/server/chunks/2250.js +0 -1
- package/app/.next/server/chunks/6194.js +0 -1
- package/app/.next/server/chunks/7471.js +0 -13
- package/app/.next/server/chunks/9188.js +0 -1
- package/app/.next/static/XnNWFvV2IXZ4xuX0F1Skg/_buildManifest.js +0 -1
- package/app/.next/static/chunks/1525-8aaae9ffdaa67144.js +0 -7
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-49caa7328acff82d.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-4140db5a52fc7323.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-70619a1bafdc9c4c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-9ee5997edb778414.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-0ee92d902ee7a39c.js +0 -1
- package/app/.next/static/chunks/app/_global-error/page-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/_not-found/page-a99a85b5268f1c54.js +0 -1
- package/app/.next/static/chunks/app/api/auth/login/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/auth/logout/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/backups/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/combos/metrics/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/combos/test/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/db-backups/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/models/catalog/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/defaults/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/models/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/provider-models/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limit/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/rate-limits/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/restart/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/sessions/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/combo-defaults/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/ip-filter/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy/test/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/system-prompt/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/settings/thinking-budget/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/storage/health/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/sync/cloud/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/sync/initialize/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/translator/detect/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/translator/history/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/analytics/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/call-logs/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/proxy-logs/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/moderations/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/rerank/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/app/page-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/main-app-fbc16f70c595b197.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-d91548a7b6ba5970.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-c452284fb77ecee0.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c452284fb77ecee0.js +0 -1
- package/app/.next/static/css/5309860f6e486620.css +0 -1
- /package/app/.next/static/{XnNWFvV2IXZ4xuX0F1Skg → HcUrNktdfL89Ss5F7FHxP}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=2791,a.ids=[2791],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2632:(a,b,c)=>{Promise.resolve().then(c.bind(c,43413))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28302:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>L,handler:()=>N,routeModule:()=>M});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(89125),A=c(86439),B=c(77068),C=c(95547),D=c.n(C),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J={};for(let a in E)0>["default","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(J[a]=()=>E[a]);c.d(b,J);let K={children:["",{children:["(dashboard)",{children:["dashboard",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,32215)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/settings/page.js"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,68010)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/layout.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,20651)),"/home/runner/work/OmniRoute/OmniRoute/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,L={require:c,loadChunk:()=>Promise.resolve()},M=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/settings/page",pathname:"/dashboard/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:K},distDir:".next",relativeProjectDir:""});async function N(a,b,d){var C;M.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let J=!!(0,h.getRequestMeta)(a,"minimalMode"),O="/(dashboard)/dashboard/settings/page";"/index"===O&&(O="/");let P=await M.prepare(a,b,{srcPage:O,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,parsedUrl:ae,interceptionRoutePatterns:af,deploymentId:ag}=P,ah=(0,q.normalizeAppPath)(O),{isOnDemandRevalidate:ai}=P,aj=ad.experimental.ppr&&!ad.cacheComponents&&(0,I.isInterceptionRouteAppPath)(aa)?null:M.match(aa,$),ak=!!$.routes[aa],al=a.headers["user-agent"]||"",am=(0,t.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],aq=(0,r.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr);if(!(0,h.getRequestMeta)(a,"postponed")&&ar&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let b=[];for await(let c of a)b.push(c);let c=Buffer.concat(b).toString("utf8");(0,h.addRequestMeta)(a,"postponed",c)}let as=ar&&(null==(C=$.routes[ah]??$.dynamicRoutes[ah])?void 0:C.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?(0,h.getRequestMeta)(a,"postponed"):void 0,aw=as&&ap&&!ao;J&&(aw=aw&&!!av);let ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=(!an||!as)&&(!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots)),az=!!((aj||ak||$.routes[ah])&&!(an&&as)),aA=as&&!0===ad.cacheComponents,aB=!0===M.isDev||!az||"string"==typeof av||(aA&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aw&&!J:aw),aC=an&&as,aD=null;_||!az||aB||aq||av||aw||(aD=aa);let aE=aD;!aE&&M.isDev&&(aE=aa),M.isDev||_||!az||!ap||aw||(0,k.d)(a.headers);let aF={...E,tree:K,GlobalError:D(),handler:N,routeModule:M,__next_app__:L};X&&Y&&(0,o.setManifestsSingleton)({page:O,clientReferenceManifest:Y,serverActionsManifest:X});let aG=a.method||"GET",aH=(0,g.getTracer)(),aI=aH.getActiveScopeSpan(),aJ=async()=>((null==ac?void 0:ac.render404)?await ac.render404(a,b,ae,!1):b.end("This page could not be found"),null);try{let f=M.getVaryHeader(aa,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return M.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aH.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aG} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aG} ${O}`)})},m=(0,h.getRequestMeta)(a,"incrementalCache"),o=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let l={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aF,Component:(0,j.T)(aF),params:S,routeModule:M,page:O,postponed:f,shouldWaitOnAllReady:aC,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||aB,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,setCacheStatus:null==ac?void 0:ac.setCacheStatus,setIsrStatus:null==ac?void 0:ac.setIsrStatus,setReactDebugChannel:null==ac?void 0:ac.setReactDebugChannel,sendErrorsToBrowser:null==ac?void 0:ac.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),M.relativeProjectDir),isDraftMode:_,botType:am,isOnDemandRevalidate:ai,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,images:ad.images,previewProps:$.preview,deploymentId:ag,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:m,cacheLifeProfiles:ad.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...at||au?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:at}:{},cacheComponents:!!ad.cacheComponents,experimental:{isRoutePPREnabled:as,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[],clientParamParsingOrigins:ad.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,B.parseMaxPostponedStateSize)(ad.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>M.onRequestError(a,b,d,e,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:M.isDev}};at&&(l.renderOpts.nextExport=!0,l.renderOpts.supportsDynamicResponse=!1,l.renderOpts.isDebugDynamicAccesses=at),i&&(l.renderOpts.supportsDynamicResponse=!1);let n=await k(e,l),{metadata:o}=n,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=o;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,az&&(null==p?void 0:p.revalidate)===0&&!M.isDev&&!as){let a=o.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:n,headers:q,rscData:o.flightData,postponed:o.postponed,status:o.statusCode,segmentData:o.segmentData},cacheControl:p}},p=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===M.isDev,q=c||b.writableEnded;if(ai&&ab&&!f&&!J)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(k=(0,v.parseFallbackField)(aj.fallback)),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(al)&&(!as||an)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!J&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aE&&!q&&!_&&T&&(l||!ak)){if((l||aj)&&k===v.FallbackMode.NOT_FOUND){if(ad.experimental.adapterPath)return await aJ();throw new A.NoFallbackError}if(as&&(ad.cacheComponents?!aw:!ap)){let b=l&&"string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:ah,c=l&&(null==aj?void 0:aj.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(aj.fallbackRouteParams):au?(0,n.getFallbackRouteParams)(ah,M):null,f=await M.handleResponse({cacheKey:b,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:as,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:c,forceStaticRender:!1}),waitUntil:d.waitUntil,isMinimalMode:J});if(null===f)return null;if(f)return delete f.cacheControl,f}}let r=ai||g||!av?void 0:av;if(aA&&!J&&m&&aw&&!j){let b=await m.get(aa,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=M.getResponseCache(a);try{await b.revalidate(aa,m,as,!1,a=>p({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(at&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=l&&(null==aj?void 0:aj.fallbackRouteParams)&&(0,h.getRequestMeta)(a,"renderFallbackShell")?(0,n.createOpaqueFallbackRouteParams)(aj.fallbackRouteParams):au?(0,n.getFallbackRouteParams)(ah,M):null;return o({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},q=async c=>{var f,g,i,j,k;let l,m=await M.handleResponse({cacheKey:aD,responseGenerator:a=>p({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil,isMinimalMode:J});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),M.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!m){if(aD)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;az&&!aw&&(!n||ao)&&(J||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(av)l={revalidate:0,expire:void 0};else if(aw)l={revalidate:0,expire:void 0};else if(!M.isDev)if(_)l={revalidate:0,expire:void 0};else if(az){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===u.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];J&&az&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aA?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(q.headers){let a={...q.headers};for(let[c,d]of(J&&az||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=q.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(J&&az&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!q.status||ap&&as||(b.statusCode=q.status),!J&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),n&&!aw&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ad.cacheComponents)return b.statusCode=404,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=q.html;if(!n||J||ap)return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:v,cacheControl:m.cacheControl});if(at)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let A=new TransformStream;return v.push(A.readable),o({span:c,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(A.writable)}).catch(a=>{A.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aI)return await aH.withPropagatedContext(a.headers,()=>aH.trace(i.BaseServerSpan.handleRequest,{spanName:`${aG} ${O}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aG,"http.target":a.url}},q));await q(aI)}catch(b){throw b instanceof A.NoFallbackError||await M.onRequestError(a,b,{routerKind:"App Router",routePath:O,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:az,isOnDemandRevalidate:ai})},!1,ac),b}}},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32215:(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 \"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/settings/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.")},"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/settings/page.js","default")},33873:a=>{"use strict";a.exports=require("path")},39080:(a,b,c)=>{Promise.resolve().then(c.bind(c,32215))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43413:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>C});var d=c(48249),e=c(67484),f=c(18486),g=c(83084),h=c(64755);function i(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)(!1),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)({type:"",message:""}),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)({type:"",message:""}),[t,u]=(0,e.useState)({driver:"sqlite",dbPath:"~/.omniroute/storage.sqlite",sizeBytes:0,retentionDays:90,lastBackupAt:null}),v=async()=>{f(!0);try{let a=await fetch("/api/db-backups"),c=await a.json();b(c.backups||[])}catch(a){console.error("Failed to fetch backups:",a)}finally{f(!1)}},w=async()=>{try{let a=await fetch("/api/storage/health");if(!a.ok)return;let b=await a.json();u(a=>({...a,...b}))}catch(a){console.error("Failed to fetch storage health:",a)}},x=async()=>{q(!0),s({type:"",message:""});try{let a=await fetch("/api/db-backups",{method:"PUT"}),b=await a.json();a.ok?(b.filename?s({type:"success",message:`Backup created: ${b.filename}`}):s({type:"info",message:b.message||"No changes since last backup"}),await w(),g&&await v()):s({type:"error",message:b.error||"Backup failed"})}catch{s({type:"error",message:"An error occurred"})}finally{q(!1)}},y=async a=>{m(a),k({type:"",message:""});try{let b=await fetch("/api/db-backups",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({backupId:a})}),c=await b.json();b.ok?(k({type:"success",message:`Restored! ${c.connectionCount} connections, ${c.nodeCount} nodes, ${c.comboCount} combos, ${c.apiKeyCount} API keys.`}),await v(),await w()):k({type:"error",message:c.error||"Restore failed"})}catch{k({type:"error",message:"An error occurred during restore"})}finally{m(null),o(null)}},z=a=>a&&0!==a?a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`:"0 B";return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-green-500/10 text-green-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"database"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"System & Storage"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"All data stored locally on your machine"})]}),(0,d.jsx)(h.Ex,{variant:"success",size:"sm",children:t.driver||"json"})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3 mb-4",children:[(0,d.jsxs)("div",{className:"p-3 rounded-lg bg-bg border border-border",children:[(0,d.jsx)("p",{className:"text-[11px] text-text-muted uppercase tracking-wide mb-1",children:"Database Path"}),(0,d.jsx)("p",{className:"text-sm font-mono text-text-main break-all",children:t.dbPath||"~/.omniroute/storage.sqlite"})]}),(0,d.jsxs)("div",{className:"p-3 rounded-lg bg-bg border border-border",children:[(0,d.jsx)("p",{className:"text-[11px] text-text-muted uppercase tracking-wide mb-1",children:"Database Size"}),(0,d.jsx)("p",{className:"text-sm font-mono text-text-main",children:z(t.sizeBytes)})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-bg border border-border mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-500","aria-hidden":"true",children:"schedule"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Last Backup"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:t.lastBackupAt?`${new Date(t.lastBackupAt).toLocaleString("pt-BR")} (${(a=>{if(!a)return null;let b=Math.floor((new Date-new Date(a))/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);return`${d}d ago`})(t.lastBackupAt)})`:"No backup yet"})]})]}),(0,d.jsxs)(h.$n,{variant:"outline",size:"sm",onClick:x,loading:p,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1","aria-hidden":"true",children:"backup"}),"Backup Now"]})]}),r.message&&(0,d.jsx)("div",{className:`p-3 rounded-lg mb-4 text-sm ${"success"===r.type?"bg-green-500/10 text-green-500 border border-green-500/20":"info"===r.type?"bg-blue-500/10 text-blue-500 border border-blue-500/20":"bg-red-500/10 text-red-500 border border-red-500/20"}`,role:"alert",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"success"===r.type?"check_circle":"info"===r.type?"info":"error"}),r.message]})}),(0,d.jsxs)("div",{className:"pt-3 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-amber-500","aria-hidden":"true",children:"restore"}),(0,d.jsx)("p",{className:"font-medium",children:"Backup & Restore"})]}),(0,d.jsx)(h.$n,{variant:"outline",size:"sm",onClick:()=>{i(!g),g||0!==a.length||v()},children:g?"Hide":"View Backups"})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-3",children:"Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation."}),j.message&&(0,d.jsx)("div",{className:`p-3 rounded-lg mb-3 text-sm ${"success"===j.type?"bg-green-500/10 text-green-500 border border-green-500/20":"bg-red-500/10 text-red-500 border border-red-500/20"}`,role:"alert",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"success"===j.type?"check_circle":"error"}),j.message]})}),g&&(0,d.jsx)("div",{className:"flex flex-col gap-2",children:c?(0,d.jsxs)("div",{className:"flex items-center justify-center py-6 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px] mr-2","aria-hidden":"true",children:"progress_activity"}),"Loading backups..."]}):0===a.length?(0,d.jsxs)("div",{className:"text-center py-6 text-text-muted text-sm",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] mb-2 block opacity-40","aria-hidden":"true",children:"folder_off"}),"No backups available yet. Backups will be created automatically when data changes."]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.length," backup(s) available"]}),(0,d.jsxs)("button",{onClick:v,className:"text-xs text-primary hover:underline flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"refresh"}),"Refresh"]})]}),a.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-border/50 hover:border-border transition-colors",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-500","aria-hidden":"true",children:"description"}),(0,d.jsx)("span",{className:"text-sm font-medium truncate",children:new Date(a.createdAt).toLocaleString("pt-BR")}),(0,d.jsx)(h.Ex,{variant:"pre-restore"===a.reason?"warning":"manual"===a.reason?"success":"default",size:"sm",children:a.reason})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 text-xs text-text-muted ml-6",children:[(0,d.jsxs)("span",{children:[a.connectionCount," connection(s)"]}),(0,d.jsx)("span",{children:"•"}),(0,d.jsx)("span",{children:z(a.size)})]})]}),(0,d.jsx)("div",{className:"flex items-center gap-2 ml-3",children:n===a.id?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"text-xs text-amber-500 font-medium",children:"Confirm?"}),(0,d.jsx)(h.$n,{variant:"primary",size:"sm",onClick:()=>y(a.id),loading:l===a.id,className:"!bg-amber-500 hover:!bg-amber-600",children:"Yes"}),(0,d.jsx)(h.$n,{variant:"outline",size:"sm",onClick:()=>o(null),children:"No"})]}):(0,d.jsxs)(h.$n,{variant:"outline",size:"sm",onClick:()=>o(a.id),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1","aria-hidden":"true",children:"restore"}),"Restore"]})})]},a.id))]})})]})]})}let j=[{value:"disabled",label:"Disabled",icon:"block"},{value:"blacklist",label:"Blacklist",icon:"do_not_disturb"},{value:"whitelist",label:"Whitelist",icon:"verified_user"},{value:"whitelist-priority",label:"WL Priority",icon:"priority_high"}];function k(){let[a,b]=(0,e.useState)({enabled:!1,mode:"blacklist",blacklist:[],whitelist:[],tempBans:[]}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(""),[k,l]=(0,e.useState)("blacklist"),m=async a=>{try{let c=await fetch("/api/settings/ip-filter",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});c.ok&&b(await c.json())}catch{}},n=()=>{g.trim()&&(m({["blacklist"===k?"addBlacklist":"addWhitelist"]:g.trim()}),i(""))},o=(a,b)=>{m({["blacklist"===b?"removeBlacklist":"removeWhitelist"]:a})},p=a.enabled?a.mode:"disabled";return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-red-500/10 text-red-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"security"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"IP Access Control"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Block or allow specific IP addresses"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-4 gap-2 mb-5",children:j.map(a=>(0,d.jsxs)("button",{onClick:()=>{var b;"disabled"===(b=a.value)?m({enabled:!1}):m({enabled:!0,mode:b})},disabled:c,className:`flex flex-col items-center gap-1.5 p-3 rounded-lg border text-center transition-all ${p===a.value?"border-red-500/50 bg-red-500/5 ring-1 ring-red-500/20":"border-border/50 hover:border-border hover:bg-surface/30"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${p===a.value?"text-red-400":"text-text-muted"}`,children:a.icon}),(0,d.jsx)("span",{className:`text-xs font-medium ${p===a.value?"text-red-400":"text-text-muted"}`,children:a.label})]},a.value))}),a.enabled&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex gap-2 items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(h.pd,{label:"Add IP Address",placeholder:"192.168.1.0/24 or 10.0.*.*",value:g,onChange:a=>i(a.target.value),onKeyDown:a=>"Enter"===a.key&&n()})}),(0,d.jsxs)("div",{className:"flex gap-1 pb-[2px]",children:[(0,d.jsx)(h.$n,{size:"sm",variant:"blacklist"===k?"danger":"secondary",onClick:()=>{l("blacklist"),g.trim()&&n()},children:"+ Block"}),(0,d.jsx)(h.$n,{size:"sm",variant:"whitelist"===k?"primary":"secondary",onClick:()=>{l("whitelist"),g.trim()&&n()},children:"+ Allow"})]})]}),a.blacklist.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider mb-2",children:["Blocked (",a.blacklist.length,")"]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.blacklist.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-xs font-mono bg-red-500/10 text-red-400 border border-red-500/20",children:[a,(0,d.jsx)("button",{onClick:()=>o(a,"blacklist"),className:"hover:text-red-300",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},a))})]}),a.whitelist.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider mb-2",children:["Allowed (",a.whitelist.length,")"]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.whitelist.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-xs font-mono bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[a,(0,d.jsx)("button",{onClick:()=>o(a,"whitelist"),className:"hover:text-emerald-300",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},a))})]}),a.tempBans.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider mb-2",children:["Temporary Bans (",a.tempBans.length,")"]}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:a.tempBans.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg bg-orange-500/5 border border-orange-500/20 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-orange-400",children:a.ip}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["— ",a.reason]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted tabular-nums",children:[Math.ceil(a.remainingMs/6e4),"m left"]}),(0,d.jsx)("button",{onClick:()=>m({removeBan:a.ip}),className:"text-text-muted hover:text-orange-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"delete"})})]})]},a.ip))})]})]})]})}function l(){let[a,b]=(0,e.useState)({requireLogin:!1,hasPassword:!1}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)({current:"",new:"",confirm:""}),[j,l]=(0,e.useState)({type:"",message:""}),[m,n]=(0,e.useState)(!1),o=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireLogin:a})})).ok&&b(b=>({...b,requireLogin:a}))}catch(a){console.error("Failed to update require login:",a)}},p=async a=>{if(a.preventDefault(),g.new!==g.confirm)return void l({type:"error",message:"Passwords do not match"});n(!0),l({type:"",message:""});try{let a=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:g.current,newPassword:g.new})}),b=await a.json();a.ok?(l({type:"success",message:"Password updated successfully"}),i({current:"",new:"",confirm:""})):l({type:"error",message:b.error||"Failed to update password"})}catch{l({type:"error",message:"An error occurred"})}finally{n(!1)}};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"shield"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Security"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require login"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"When ON, dashboard requires password. When OFF, access without login."})]}),(0,d.jsx)(h.lM,{checked:!0===a.requireLogin,onChange:()=>o(!a.requireLogin),disabled:c})]}),!0===a.requireLogin&&(0,d.jsxs)("form",{onSubmit:p,className:"flex flex-col gap-4 pt-4 border-t border-border/50",children:[a.hasPassword&&(0,d.jsx)(h.pd,{label:"Current Password",type:"password",placeholder:"Enter current password",value:g.current,onChange:a=>i({...g,current:a.target.value}),required:!0}),(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsx)(h.pd,{label:"New Password",type:"password",placeholder:"Enter new password",value:g.new,onChange:a=>i({...g,new:a.target.value}),required:!0}),(0,d.jsx)(h.pd,{label:"Confirm New Password",type:"password",placeholder:"Confirm new password",value:g.confirm,onChange:a=>i({...g,confirm:a.target.value}),required:!0})]}),j.message&&(0,d.jsx)("p",{className:`text-sm ${"error"===j.type?"text-red-500":"text-green-500"}`,children:j.message}),(0,d.jsx)("div",{className:"pt-2",children:(0,d.jsx)(h.$n,{type:"submit",variant:"primary",loading:m,children:a.hasPassword?"Update Password":"Set Password"})})]})]})]}),(0,d.jsx)(k,{})]})}let m=[{value:"fill-first",label:"Fill First",desc:"Use accounts in priority order",icon:"vertical_align_top"},{value:"round-robin",label:"Round Robin",desc:"Cycle through all accounts",icon:"loop"},{value:"p2c",label:"P2C",desc:"Pick 2 random, use the healthier one",icon:"balance"}];function n(){let[a,b]=(0,e.useState)({fallbackStrategy:"fill-first"}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)([]),[j,k]=(0,e.useState)(""),[l,n]=(0,e.useState)(""),o=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok&&b(b=>({...b,...a}))}catch(a){console.error("Failed to update settings:",a)}},p=async()=>{if(!j.trim()||!l.trim())return;let a=[...g,{pattern:j.trim(),target:l.trim()}];await o({wildcardAliases:a}),i(a),k(""),n("")},q=async a=>{let b=g.filter((b,c)=>c!==a);await o({wildcardAliases:b}),i(b)};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-blue-500/10 text-blue-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"route"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Routing Strategy"})]}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2 mb-4",children:m.map(b=>(0,d.jsxs)("button",{onClick:()=>o({fallbackStrategy:b.value}),disabled:c,className:`flex flex-col items-center gap-2 p-4 rounded-lg border text-center transition-all ${a.fallbackStrategy===b.value?"border-blue-500/50 bg-blue-500/5 ring-1 ring-blue-500/20":"border-border/50 hover:border-border hover:bg-surface/30"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[24px] ${a.fallbackStrategy===b.value?"text-blue-400":"text-text-muted"}`,children:b.icon}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-sm font-medium ${a.fallbackStrategy===b.value?"text-blue-400":""}`,children:b.label}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:b.desc})]})]},b.value))}),"round-robin"===a.fallbackStrategy&&(0,d.jsxs)("div",{className:"flex items-center justify-between pt-3 border-t border-border/30",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Sticky Limit"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Calls per account before switching"})]}),(0,d.jsx)(h.pd,{type:"number",min:"1",max:"10",value:a.stickyRoundRobinLimit||3,onChange:a=>o({stickyRoundRobinLimit:parseInt(a.target.value)}),disabled:c,className:"w-20 text-center"})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted italic pt-3 border-t border-border/30 mt-3",children:["round-robin"===a.fallbackStrategy&&`Distributing requests across accounts with ${a.stickyRoundRobinLimit||3} calls per account.`,"fill-first"===a.fallbackStrategy&&"Using accounts in priority order (Fill First).","p2c"===a.fallbackStrategy&&"Power of Two Choices: picks 2 random accounts and routes to the healthier one."]})]}),(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-purple-500/10 text-purple-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"alt_route"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Model Aliases"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Wildcard patterns to remap model names • Use * and ?"})]})]}),g.length>0&&(0,d.jsx)("div",{className:"flex flex-col gap-1.5 mb-4",children:g.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg bg-surface/30 border border-border/20",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,d.jsx)("span",{className:"font-mono text-purple-400",children:a.pattern}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"arrow_forward"}),(0,d.jsx)("span",{className:"font-mono text-text-main",children:a.target})]}),(0,d.jsx)("button",{onClick:()=>q(b),className:"text-text-muted hover:text-red-400 transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]},b))}),(0,d.jsxs)("div",{className:"flex gap-2 items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(h.pd,{label:"Pattern",placeholder:"claude-sonnet-*",value:j,onChange:a=>k(a.target.value)})}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(h.pd,{label:"Target Model",placeholder:"claude-sonnet-4-20250514",value:l,onChange:a=>n(a.target.value)})}),(0,d.jsx)(h.$n,{size:"sm",variant:"primary",onClick:p,className:"mb-[2px]",children:"+ Add"})]})]})]})}function o(){let[a,b]=(0,e.useState)({strategy:"priority",maxRetries:1,retryDelayMs:2e3,timeoutMs:12e4,healthCheckEnabled:!0,healthCheckTimeoutMs:3e3,maxComboDepth:3,trackMetrics:!0}),[c,g]=(0,e.useState)({}),[i,j]=(0,e.useState)(""),[k,l]=(0,e.useState)(!1),m=async()=>{l(!0);try{await fetch("/api/settings/combo-defaults",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboDefaults:a,providerOverrides:c})})}catch(a){console.error("Failed to save combo defaults:",a)}finally{l(!1)}},n=()=>{let a=i.trim().toLowerCase();a&&!c[a]&&(g(b=>({...b,[a]:{maxRetries:1,timeoutMs:12e4}})),j(""))};return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-amber-500/10 text-amber-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"tune"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Combo Defaults"}),(0,d.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:"Global combo configuration"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Default Strategy"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Applied to new combos without explicit strategy"})]}),(0,d.jsx)("div",{role:"tablist","aria-label":"Combo strategy",className:"inline-flex p-0.5 rounded-md bg-black/5 dark:bg-white/5",children:["priority","weighted","round-robin"].map(c=>(0,d.jsx)("button",{role:"tab","aria-selected":a.strategy===c,onClick:()=>b(a=>({...a,strategy:c})),className:(0,f.cn)("px-3 py-1 rounded text-xs font-medium transition-all capitalize",a.strategy===c?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:"round-robin"===c?"Round-Robin":c},c))})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-3 pt-3 border-t border-border/50",children:[{key:"maxRetries",label:"Max Retries",min:0,max:5},{key:"retryDelayMs",label:"Retry Delay (ms)",min:500,max:1e4,step:500},{key:"timeoutMs",label:"Timeout (ms)",min:5e3,max:3e5,step:5e3},{key:"maxComboDepth",label:"Max Nesting Depth",min:1,max:10}].map(({key:c,label:e,min:f,max:g,step:i})=>(0,d.jsx)(h.pd,{label:e,type:"number",min:f,max:g,step:i||1,value:a[c]??"",onChange:a=>b(b=>({...b,[c]:parseInt(a.target.value)||0})),className:"text-sm"},c))}),"round-robin"===a.strategy&&(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3 pt-3 border-t border-border/50",children:[(0,d.jsx)(h.pd,{label:"Concurrency / Model",type:"number",min:1,max:20,value:a.concurrencyPerModel??"",placeholder:"3",onChange:a=>b(b=>({...b,concurrencyPerModel:parseInt(a.target.value)||0})),className:"text-sm"}),(0,d.jsx)(h.pd,{label:"Queue Timeout (ms)",type:"number",min:1e3,max:12e4,step:1e3,value:a.queueTimeoutMs??"",placeholder:"30000",onChange:a=>b(b=>({...b,queueTimeoutMs:parseInt(a.target.value)||0})),className:"text-sm"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 pt-3 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Health Check"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Pre-check provider availability"})]}),(0,d.jsx)(h.lM,{checked:!1!==a.healthCheckEnabled,onChange:()=>b(a=>({...a,healthCheckEnabled:!a.healthCheckEnabled}))})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Track Metrics"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Record per-combo request metrics"})]}),(0,d.jsx)(h.lM,{checked:!1!==a.trackMetrics,onChange:()=>b(a=>({...a,trackMetrics:!a.trackMetrics}))})]})]}),(0,d.jsxs)("div",{className:"pt-3 border-t border-border/50",children:[(0,d.jsx)("p",{className:"font-medium text-sm mb-2",children:"Provider Overrides"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-3",children:"Override timeout and retries per provider. Provider settings override global defaults."}),Object.entries(c).map(([a,b])=>(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-2 p-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02]",children:[(0,d.jsx)("span",{className:"text-xs font-mono font-medium min-w-[80px]",children:a}),(0,d.jsx)(h.pd,{type:"number",min:"0",max:"5",value:b.maxRetries??1,onChange:b=>g(c=>({...c,[a]:{...c[a],maxRetries:parseInt(b.target.value)||0}})),className:"text-xs w-16","aria-label":`${a} max retries`}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"retries"}),(0,d.jsx)(h.pd,{type:"number",min:"5000",max:"300000",step:"5000",value:b.timeoutMs??12e4,onChange:b=>g(c=>({...c,[a]:{...c[a],timeoutMs:parseInt(b.target.value)||12e4}})),className:"text-xs w-24","aria-label":`${a} timeout ms`}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"ms"}),(0,d.jsx)("button",{onClick:()=>{g(b=>{let c={...b};return delete c[a],c})},className:"ml-auto text-red-400 hover:text-red-500 transition-colors","aria-label":`Remove ${a} override`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"close"})})]},a)),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,d.jsx)(h.pd,{type:"text",placeholder:"e.g. google, openai...",value:i,onChange:a=>j(a.target.value),onKeyDown:a=>"Enter"===a.key&&n(),className:"text-xs flex-1","aria-label":"New provider name"}),(0,d.jsx)(h.$n,{variant:"outline",size:"sm",onClick:n,disabled:!i.trim(),children:"Add"})]})]}),(0,d.jsx)("div",{className:"pt-3 border-t border-border/50",children:(0,d.jsx)(h.$n,{variant:"primary",size:"sm",onClick:m,loading:k,children:"Save Combo Defaults"})})]})]})}function p(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(null),g=async()=>{try{let a=await fetch("/api/settings/proxy?level=global");if(a.ok){let b=await a.json();f(b.proxy||null)}}catch{}};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Zp,{className:"p-0 overflow-hidden",children:(0,d.jsxs)("div",{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary","aria-hidden":"true",children:"vpn_lock"}),(0,d.jsx)("h2",{className:"text-lg font-bold",children:"Global Proxy"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this."}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[c?(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)("span",{className:"px-2.5 py-1 rounded text-xs font-bold uppercase bg-emerald-500/15 text-emerald-400 border border-emerald-500/30",children:[c.type,"://",c.host,":",c.port]})}):(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"No global proxy configured"}),(0,d.jsx)(h.$n,{size:"sm",variant:c?"secondary":"primary",icon:"settings",onClick:()=>{g(),b(!0)},children:c?"Edit":"Configure"})]})]})}),(0,d.jsx)(h.KN,{isOpen:a,onClose:()=>b(!1),level:"global",levelLabel:"Global",onSaved:g})]})}var q=c(49360);function r(){let{theme:a,setTheme:b,isDark:c}=(0,q.D)();return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-purple-500/10 text-purple-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"palette"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Appearance"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Dark Mode"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Switch between light and dark themes"})]}),(0,d.jsx)(h.lM,{checked:c,onChange:()=>b(c?"light":"dark")})]}),(0,d.jsx)("div",{className:"pt-4 border-t border-border",children:(0,d.jsx)("div",{role:"tablist","aria-label":"Theme selection",className:"inline-flex p-1 rounded-lg bg-black/5 dark:bg-white/5",children:["light","dark","system"].map(c=>(0,d.jsxs)("button",{role:"tab","aria-selected":a===c,onClick:()=>b(c),className:(0,f.cn)("flex items-center gap-2 px-4 py-2 rounded-md font-medium transition-all",a===c?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"light"===c?"light_mode":"dark"===c?"dark_mode":"contrast"}),(0,d.jsx)("span",{className:"capitalize",children:c})]},c))})})]})]})}let s=[{value:"passthrough",label:"Passthrough",desc:"No changes — client controls thinking budget",icon:"arrow_forward"},{value:"auto",label:"Auto",desc:"Strip all thinking config — let provider decide",icon:"auto_awesome"},{value:"custom",label:"Custom",desc:"Set a fixed token budget for all requests",icon:"tune"},{value:"adaptive",label:"Adaptive",desc:"Scale budget based on request complexity",icon:"trending_up"}],t=[{value:"none",label:"None (0 tokens)"},{value:"low",label:"Low (1K tokens)"},{value:"medium",label:"Medium (10K tokens)"},{value:"high",label:"High (128K tokens)"}];function u(){let[a,b]=(0,e.useState)({mode:"passthrough",customBudget:10240,effortLevel:"medium"}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(""),l=async c=>{let d={...a,...c};b(d),i(!0),k("");try{(await fetch("/api/settings/thinking-budget",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})).ok?(k("saved"),setTimeout(()=>k(""),2e3)):k("error")}catch{k("error")}finally{i(!1)}};return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-violet-500/10 text-violet-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"psychology"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Thinking Budget"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Control AI reasoning token usage across all requests"})]}),"saved"===j&&(0,d.jsxs)("span",{className:"ml-auto text-xs font-medium text-emerald-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"})," Saved"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-2 mb-5",children:s.map(b=>(0,d.jsxs)("button",{onClick:()=>l({mode:b.value}),disabled:c||g,className:`flex items-start gap-3 p-3 rounded-lg border text-left transition-all ${a.mode===b.value?"border-violet-500/50 bg-violet-500/5 ring-1 ring-violet-500/20":"border-border/50 hover:border-border hover:bg-surface/30"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] mt-0.5 ${a.mode===b.value?"text-violet-500":"text-text-muted"}`,children:b.icon}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:`text-sm font-medium ${a.mode===b.value?"text-violet-400":""}`,children:b.label}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5 leading-relaxed",children:b.desc})]})]},b.value))}),"custom"===a.mode&&(0,d.jsxs)("div",{className:"p-4 rounded-lg bg-surface/30 border border-border/30 mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Token Budget"}),(0,d.jsxs)("span",{className:"text-sm font-mono tabular-nums text-violet-400",children:[a.customBudget.toLocaleString()," tokens"]})]}),(0,d.jsx)("input",{type:"range",min:"0",max:"131072",step:"1024",value:a.customBudget,onChange:a=>l({customBudget:parseInt(a.target.value)}),className:"w-full accent-violet-500"}),(0,d.jsxs)("div",{className:"flex justify-between text-xs text-text-muted mt-1",children:[(0,d.jsx)("span",{children:"Off"}),(0,d.jsx)("span",{children:"1K"}),(0,d.jsx)("span",{children:"10K"}),(0,d.jsx)("span",{children:"64K"}),(0,d.jsx)("span",{children:"128K"})]})]}),"adaptive"===a.mode&&(0,d.jsxs)("div",{className:"p-4 rounded-lg bg-surface/30 border border-border/30",children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-3",children:"Base Effort Level"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-3",children:"Adaptive mode scales from this base level based on message count, tool usage, and prompt length."}),(0,d.jsx)("div",{className:"grid grid-cols-4 gap-2",children:t.map(b=>(0,d.jsx)("button",{onClick:()=>l({effortLevel:b.value}),disabled:c||g,className:`px-3 py-2 rounded-lg text-xs font-medium border transition-all ${a.effortLevel===b.value?"border-violet-500/50 bg-violet-500/10 text-violet-400":"border-border/50 text-text-muted hover:border-border"}`,children:b.value.charAt(0).toUpperCase()+b.value.slice(1)},b.value))})]})]})}function v(){let[a,b]=(0,e.useState)({enabled:!1,prompt:""}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(null),l=async c=>{let d={...a,...c};b(d),i("");try{(await fetch("/api/settings/system-prompt",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})).ok&&(i("saved"),setTimeout(()=>i(""),2e3))}catch{i("error")}};return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-amber-500/10 text-amber-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"edit_note"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Global System Prompt"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Injected into all requests at proxy level"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:["saved"===g&&(0,d.jsxs)("span",{className:"text-xs font-medium text-emerald-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"})," Saved"]}),(0,d.jsx)(h.lM,{checked:a.enabled,onChange:()=>l({enabled:!a.enabled}),disabled:c})]})]}),a.enabled&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("textarea",{value:a.prompt,onChange:a=>{var c;return c=a.target.value,void(b(a=>({...a,prompt:c})),j&&clearTimeout(j),k(setTimeout(()=>{l({prompt:c})},800)))},placeholder:"Enter system prompt to inject into all requests...",rows:5,className:"w-full px-4 py-3 rounded-lg border border-border/50 bg-surface/30 text-sm placeholder:text-text-muted/50 resize-y min-h-[120px] focus:outline-none focus:ring-1 focus:ring-amber-500/30 focus:border-amber-500/50 transition-colors",disabled:c}),(0,d.jsxs)("div",{className:"absolute bottom-2 right-3 text-xs text-text-muted/60 tabular-nums",children:[a.prompt.length," chars"]})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted/70 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"info"}),"This prompt is prepended to the system message of every request. Use for global instructions, safety guidelines, or response formatting rules. Send ",(0,d.jsx)("code",{className:"px-1 py-0.5 rounded bg-surface/50",children:"_skipSystemPrompt: true"})," in a request to bypass."]})]})]})}let w=["input","output","cached","reasoning","cache_creation"],x={input:"Input",output:"Output",cached:"Cached",reasoning:"Reasoning",cache_creation:"Cache Write"};function y(){let[a,b]=(0,e.useState)({}),[c,f]=(0,e.useState)({}),[g,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(new Set),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(new Set),v=(0,e.useMemo)(()=>Object.entries(a).map(([a,b])=>({alias:a,...b,pricedModels:c[a]?Object.keys(c[a]).length:0})).sort((a,b)=>b.modelCount-a.modelCount),[a,c]),w=(0,e.useMemo)(()=>{if(!r.trim())return v;let a=r.toLowerCase();return v.filter(b=>b.alias.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)||b.models.some(b=>b.id.toLowerCase().includes(a)||b.name.toLowerCase().includes(a)))},[v,r]),x=(0,e.useMemo)(()=>{let a=v.reduce((a,b)=>a+b.modelCount,0),b=Object.values(c).reduce((a,b)=>a+Object.keys(b).length,0);return{providers:v.length,totalModels:a,pricedCount:b}},[v,c]),y=(0,e.useCallback)(a=>{q(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),A=(0,e.useCallback)((a,b,c,d)=>{let e=parseFloat(d);isNaN(e)||e<0||(f(d=>{let f={...d};return f[a]||(f[a]={}),f[a][b]||(f[a][b]={input:0,output:0,cached:0,reasoning:0,cache_creation:0}),f[a][b]={...f[a][b],[c]:e},f}),u(b=>new Set(b).add(a)))},[]),B=(0,e.useCallback)(async a=>{k(!0),m("");try{let b=c[a]||{},d=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({[a]:b})});if(d.ok)m(`✅ ${a.toUpperCase()} saved`),u(b=>{let c=new Set(b);return c.delete(a),c}),setTimeout(()=>m(""),3e3);else{let a=await d.json();m(`❌ Error: ${a.error}`)}}catch(a){m(`❌ Save failed: ${a.message}`)}finally{k(!1)}},[c]),C=(0,e.useCallback)(async a=>{if(confirm(`Reset all pricing for ${a.toUpperCase()} to defaults?`))try{let b=await fetch(`/api/pricing?provider=${a}`,{method:"DELETE"});if(b.ok){let c=await b.json();f(c),m(`🔄 ${a.toUpperCase()} reset to defaults`),u(b=>{let c=new Set(b);return c.delete(a),c}),setTimeout(()=>m(""),3e3)}}catch(a){m(`❌ Reset failed: ${a.message}`)}},[]),D=(0,e.useCallback)(a=>{o(b=>b===a?null:a)},[]),E=(0,e.useMemo)(()=>n?w.filter(a=>a.alias===n):w,[w,n]);return g?(0,d.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,d.jsx)("div",{className:"text-text-muted animate-pulse",children:"Loading pricing data..."})}):(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-start justify-between flex-wrap gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-bold",children:"Model Pricing"}),(0,d.jsxs)("p",{className:"text-text-muted text-sm mt-1",children:["Configure cost rates per model • All rates in"," ",(0,d.jsx)("strong",{children:"$/1M tokens"})]})]}),(0,d.jsxs)("div",{className:"flex gap-3 text-sm",children:[(0,d.jsxs)("div",{className:"bg-bg-subtle rounded-lg px-3 py-2 text-center",children:[(0,d.jsx)("div",{className:"text-text-muted text-xs font-semibold",children:"Providers"}),(0,d.jsx)("div",{className:"text-lg font-bold",children:x.providers})]}),(0,d.jsxs)("div",{className:"bg-bg-subtle rounded-lg px-3 py-2 text-center",children:[(0,d.jsx)("div",{className:"text-text-muted text-xs font-semibold",children:"Registry"}),(0,d.jsx)("div",{className:"text-lg font-bold",children:x.totalModels})]}),(0,d.jsxs)("div",{className:"bg-bg-subtle rounded-lg px-3 py-2 text-center",children:[(0,d.jsx)("div",{className:"text-text-muted text-xs font-semibold",children:"Priced"}),(0,d.jsx)("div",{className:"text-lg font-bold text-success",children:x.pricedCount})]})]})]}),l&&(0,d.jsx)("div",{className:"px-3 py-2 rounded-lg bg-bg-subtle border border-border text-sm",children:l}),(0,d.jsxs)("div",{className:"flex gap-3 items-center flex-wrap",children:[(0,d.jsxs)("div",{className:"relative flex-1 min-w-[200px]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-3 top-1/2 -translate-y-1/2 text-text-muted text-lg",children:"search"}),(0,d.jsx)("input",{type:"text",placeholder:"Search providers or models...",value:r,onChange:a=>s(a.target.value),className:"w-full pl-10 pr-3 py-2 bg-bg-base border border-border rounded-lg focus:outline-none focus:border-primary text-sm"})]}),n&&(0,d.jsxs)("button",{onClick:()=>o(null),className:"px-3 py-2 text-xs bg-primary/10 text-primary border border-primary/20 rounded-lg hover:bg-primary/20 transition-colors flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"}),n.toUpperCase()," — Show All"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:v.map(a=>(0,d.jsxs)("button",{onClick:()=>D(a.alias),className:`px-2.5 py-1 rounded-md text-xs font-medium transition-all ${n===a.alias?"bg-primary text-white shadow-sm":t.has(a.alias)?"bg-yellow-500/15 text-yellow-400 border border-yellow-500/30":"bg-bg-subtle text-text-muted hover:bg-bg-hover border border-transparent"}`,children:[a.alias.toUpperCase()," ",(0,d.jsxs)("span",{className:"opacity-60",children:["(",a.modelCount,")"]})]},a.alias))}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[E.map(a=>(0,d.jsx)(z,{provider:a,pricingData:c[a.alias]||{},isExpanded:p.has(a.alias),isEdited:t.has(a.alias),onToggle:()=>y(a.alias),onPricingChange:(b,c,d)=>A(a.alias,b,c,d),onSave:()=>B(a.alias),onReset:()=>C(a.alias),saving:j},a.alias)),0===E.length&&(0,d.jsx)("div",{className:"text-center py-12 text-text-muted",children:"No providers match your search."})]}),(0,d.jsxs)(h.Zp,{className:"p-4 mt-2",children:[(0,d.jsxs)("h3",{className:"text-sm font-semibold mb-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm align-middle mr-1",children:"info"}),"How Pricing Works"]}),(0,d.jsxs)("div",{className:"text-xs text-text-muted space-y-1",children:[(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Input"}),": tokens sent to the model •"," ",(0,d.jsx)("strong",{children:"Output"}),": tokens generated •"," ",(0,d.jsx)("strong",{children:"Cached"}),": reused input (~50% of input rate) •"," ",(0,d.jsx)("strong",{children:"Reasoning"}),": thinking tokens (falls back to Output) •"," ",(0,d.jsx)("strong",{children:"Cache Write"}),": creating cache entries (falls back to Input)"]}),(0,d.jsx)("p",{children:"Cost = (input \xd7 input_rate) + (output \xd7 output_rate) + (cached \xd7 cached_rate) per million tokens."})]})]})]})}function z({provider:a,pricingData:b,isExpanded:c,isEdited:e,onToggle:f,onPricingChange:g,onSave:h,onReset:i,saving:j}){let k=Object.keys(b).length,l="oauth"===a.authType?"OAuth":"apikey"===a.authType?"API Key":a.authType;return(0,d.jsxs)("div",{className:`border rounded-lg overflow-hidden transition-colors ${e?"border-yellow-500/40 bg-yellow-500/5":"border-border"}`,children:[(0,d.jsxs)("button",{onClick:f,className:"w-full flex items-center justify-between px-4 py-3 hover:bg-bg-hover/50 transition-colors text-left",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-lg transition-transform ${c?"rotate-90":""}`,children:"chevron_right"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"font-semibold text-sm",children:a.id.charAt(0).toUpperCase()+a.id.slice(1)}),(0,d.jsxs)("span",{className:"text-text-muted text-xs ml-2",children:["(",a.alias.toUpperCase(),")"]})]}),(0,d.jsx)("span",{className:"px-1.5 py-0.5 bg-bg-subtle text-text-muted text-[10px] rounded uppercase font-semibold",children:l}),(0,d.jsx)("span",{className:"px-1.5 py-0.5 bg-bg-subtle text-text-muted text-[10px] rounded uppercase font-semibold",children:a.format})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsx)("span",{className:"text-yellow-500 text-xs font-medium",children:"unsaved"}),(0,d.jsxs)("span",{className:"text-text-muted text-xs",children:[k,"/",a.modelCount," priced"]}),(0,d.jsx)("div",{className:"w-16 h-1.5 bg-bg-subtle rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-primary rounded-full transition-all",style:{width:`${a.modelCount>0?Math.round(k/a.modelCount*100):0}%`}})})]})]}),c&&(0,d.jsxs)("div",{className:"border-t border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 bg-bg-subtle/50",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.modelCount," models •"," ",k," with pricing configured"]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),i()},className:"px-2.5 py-1 text-[11px] text-red-400 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",children:"Reset Defaults"}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),h()},disabled:j||!e,className:"px-2.5 py-1 text-[11px] bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-40",children:j?"Saving...":"Save Provider"})]})]}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{className:"text-[11px] text-text-muted uppercase bg-bg-subtle/30",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:"px-4 py-2 text-left font-semibold",children:"Model"}),w.map(a=>(0,d.jsx)("th",{className:"px-2 py-2 text-right font-semibold w-24",children:x[a]},a))]})}),(0,d.jsx)("tbody",{className:"divide-y divide-border/50",children:a.models.map(a=>(0,d.jsx)(A,{model:a,pricing:b[a.id],onPricingChange:(b,c)=>g(a.id,b,c)},a.id))})]})})]})]})}function A({model:a,pricing:b,onPricingChange:c}){let e=b&&Object.values(b).some(a=>a>0);return(0,d.jsxs)("tr",{className:"hover:bg-bg-hover/30 group",children:[(0,d.jsx)("td",{className:"px-4 py-1.5",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${e?"bg-success":"bg-text-muted/30"}`}),(0,d.jsx)("span",{className:"font-medium text-xs",children:a.name}),a.custom&&(0,d.jsx)("span",{className:"px-1 py-0.5 text-[8px] font-bold bg-blue-500/15 text-blue-400 border border-blue-500/20 rounded uppercase",children:"custom"}),(0,d.jsx)("span",{className:"text-text-muted text-[10px] opacity-0 group-hover:opacity-100 transition-opacity",children:a.id})]})}),w.map(a=>(0,d.jsx)("td",{className:"px-2 py-1.5",children:(0,d.jsx)("input",{type:"number",step:"0.01",min:"0",value:b?.[a]||0,onChange:b=>c(a,b.target.value),className:"w-full px-2 py-1 text-right text-xs bg-transparent border border-transparent hover:border-border focus:border-primary focus:bg-bg-base rounded transition-colors outline-none tabular-nums"})},a))]})}let B=[{id:"general",label:"General",icon:"settings"},{id:"ai",label:"AI",icon:"smart_toy"},{id:"security",label:"Security",icon:"shield"},{id:"routing",label:"Routing",icon:"route"},{id:"pricing",label:"Pricing",icon:"payments"},{id:"advanced",label:"Advanced",icon:"tune"}];function C(){let[a,b]=(0,e.useState)("general");return(0,d.jsx)("div",{className:"max-w-2xl mx-auto",children:(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)("div",{role:"tablist","aria-label":"Settings sections",className:"inline-flex items-center p-1 rounded-lg bg-black/5 dark:bg-white/5 self-start",children:B.map(c=>(0,d.jsxs)("button",{role:"tab","aria-selected":a===c.id,tabIndex:a===c.id?0:-1,onClick:()=>b(c.id),className:(0,f.cn)("flex items-center gap-2 px-4 py-2 rounded-md font-medium transition-all text-sm",a===c.id?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:c.icon}),(0,d.jsx)("span",{className:"hidden sm:inline",children:c.label})]},c.id))}),(0,d.jsxs)("div",{role:"tabpanel","aria-label":B.find(b=>b.id===a)?.label,children:["general"===a&&(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(i,{}),(0,d.jsx)(r,{})]})}),"ai"===a&&(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(u,{}),(0,d.jsx)(v,{})]}),"security"===a&&(0,d.jsx)(l,{}),"routing"===a&&(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(n,{}),(0,d.jsx)(o,{})]}),"pricing"===a&&(0,d.jsx)(y,{}),"advanced"===a&&(0,d.jsx)(p,{})]}),(0,d.jsxs)("div",{className:"text-center text-sm text-text-muted py-4",children:[(0,d.jsxs)("p",{children:[g.vQ.name," v",g.vQ.version]}),(0,d.jsx)("p",{className:"mt-1",children:"Local Mode — All data stored on your machine"})]})]})})}},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,595,7471,3919,2116,4822,867,8108,21,481,5640,9188,4755,2250],()=>b(b.s=28302));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=2791,a.ids=[2791],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2632:(a,b,c)=>{Promise.resolve().then(c.bind(c,13588))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13588:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>P});var d=c(48249),e=c(67484),f=c(18486),g=c(83084),h=c(64755);function i(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)(!1),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)({type:"",message:""}),[l,m]=(0,e.useState)(null),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)({type:"",message:""}),[t,u]=(0,e.useState)({driver:"sqlite",dbPath:"~/.omniroute/storage.sqlite",sizeBytes:0,retentionDays:90,lastBackupAt:null}),v=async()=>{f(!0);try{let a=await fetch("/api/db-backups"),c=await a.json();b(c.backups||[])}catch(a){console.error("Failed to fetch backups:",a)}finally{f(!1)}},w=async()=>{try{let a=await fetch("/api/storage/health");if(!a.ok)return;let b=await a.json();u(a=>({...a,...b}))}catch(a){console.error("Failed to fetch storage health:",a)}},x=async()=>{q(!0),s({type:"",message:""});try{let a=await fetch("/api/db-backups",{method:"PUT"}),b=await a.json();a.ok?(b.filename?s({type:"success",message:`Backup created: ${b.filename}`}):s({type:"info",message:b.message||"No changes since last backup"}),await w(),g&&await v()):s({type:"error",message:b.error||"Backup failed"})}catch{s({type:"error",message:"An error occurred"})}finally{q(!1)}},y=async a=>{m(a),k({type:"",message:""});try{let b=await fetch("/api/db-backups",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({backupId:a})}),c=await b.json();b.ok?(k({type:"success",message:`Restored! ${c.connectionCount} connections, ${c.nodeCount} nodes, ${c.comboCount} combos, ${c.apiKeyCount} API keys.`}),await v(),await w()):k({type:"error",message:c.error||"Restore failed"})}catch{k({type:"error",message:"An error occurred during restore"})}finally{m(null),o(null)}},z=a=>a&&0!==a?a<1024?`${a} B`:a<1048576?`${(a/1024).toFixed(1)} KB`:`${(a/1048576).toFixed(1)} MB`:"0 B";return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-green-500/10 text-green-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"database"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"System & Storage"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"All data stored locally on your machine"})]}),(0,d.jsx)(h.Ex,{variant:"success",size:"sm",children:t.driver||"json"})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3 mb-4",children:[(0,d.jsxs)("div",{className:"p-3 rounded-lg bg-bg border border-border",children:[(0,d.jsx)("p",{className:"text-[11px] text-text-muted uppercase tracking-wide mb-1",children:"Database Path"}),(0,d.jsx)("p",{className:"text-sm font-mono text-text-main break-all",children:t.dbPath||"~/.omniroute/storage.sqlite"})]}),(0,d.jsxs)("div",{className:"p-3 rounded-lg bg-bg border border-border",children:[(0,d.jsx)("p",{className:"text-[11px] text-text-muted uppercase tracking-wide mb-1",children:"Database Size"}),(0,d.jsx)("p",{className:"text-sm font-mono text-text-main",children:z(t.sizeBytes)})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-bg border border-border mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-500","aria-hidden":"true",children:"schedule"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Last Backup"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:t.lastBackupAt?`${new Date(t.lastBackupAt).toLocaleString("pt-BR")} (${(a=>{if(!a)return null;let b=Math.floor((new Date-new Date(a))/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);return`${d}d ago`})(t.lastBackupAt)})`:"No backup yet"})]})]}),(0,d.jsxs)(h.$n,{variant:"outline",size:"sm",onClick:x,loading:p,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1","aria-hidden":"true",children:"backup"}),"Backup Now"]})]}),r.message&&(0,d.jsx)("div",{className:`p-3 rounded-lg mb-4 text-sm ${"success"===r.type?"bg-green-500/10 text-green-500 border border-green-500/20":"info"===r.type?"bg-blue-500/10 text-blue-500 border border-blue-500/20":"bg-red-500/10 text-red-500 border border-red-500/20"}`,role:"alert",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"success"===r.type?"check_circle":"info"===r.type?"info":"error"}),r.message]})}),(0,d.jsxs)("div",{className:"pt-3 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-amber-500","aria-hidden":"true",children:"restore"}),(0,d.jsx)("p",{className:"font-medium",children:"Backup & Restore"})]}),(0,d.jsx)(h.$n,{variant:"outline",size:"sm",onClick:()=>{i(!g),g||0!==a.length||v()},children:g?"Hide":"View Backups"})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-3",children:"Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation."}),j.message&&(0,d.jsx)("div",{className:`p-3 rounded-lg mb-3 text-sm ${"success"===j.type?"bg-green-500/10 text-green-500 border border-green-500/20":"bg-red-500/10 text-red-500 border border-red-500/20"}`,role:"alert",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"success"===j.type?"check_circle":"error"}),j.message]})}),g&&(0,d.jsx)("div",{className:"flex flex-col gap-2",children:c?(0,d.jsxs)("div",{className:"flex items-center justify-center py-6 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px] mr-2","aria-hidden":"true",children:"progress_activity"}),"Loading backups..."]}):0===a.length?(0,d.jsxs)("div",{className:"text-center py-6 text-text-muted text-sm",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] mb-2 block opacity-40","aria-hidden":"true",children:"folder_off"}),"No backups available yet. Backups will be created automatically when data changes."]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.length," backup(s) available"]}),(0,d.jsxs)("button",{onClick:v,className:"text-xs text-primary hover:underline flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:"refresh"}),"Refresh"]})]}),a.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between p-3 rounded-lg bg-black/[0.02] dark:bg-white/[0.02] border border-border/50 hover:border-border transition-colors",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-500","aria-hidden":"true",children:"description"}),(0,d.jsx)("span",{className:"text-sm font-medium truncate",children:new Date(a.createdAt).toLocaleString("pt-BR")}),(0,d.jsx)(h.Ex,{variant:"pre-restore"===a.reason?"warning":"manual"===a.reason?"success":"default",size:"sm",children:a.reason})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 text-xs text-text-muted ml-6",children:[(0,d.jsxs)("span",{children:[a.connectionCount," connection(s)"]}),(0,d.jsx)("span",{children:"•"}),(0,d.jsx)("span",{children:z(a.size)})]})]}),(0,d.jsx)("div",{className:"flex items-center gap-2 ml-3",children:n===a.id?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"text-xs text-amber-500 font-medium",children:"Confirm?"}),(0,d.jsx)(h.$n,{variant:"primary",size:"sm",onClick:()=>y(a.id),loading:l===a.id,className:"!bg-amber-500 hover:!bg-amber-600",children:"Yes"}),(0,d.jsx)(h.$n,{variant:"outline",size:"sm",onClick:()=>o(null),children:"No"})]}):(0,d.jsxs)(h.$n,{variant:"outline",size:"sm",onClick:()=>o(a.id),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1","aria-hidden":"true",children:"restore"}),"Restore"]})})]},a.id))]})})]})]})}let j=[{value:"disabled",label:"Disabled",icon:"block"},{value:"blacklist",label:"Blacklist",icon:"do_not_disturb"},{value:"whitelist",label:"Whitelist",icon:"verified_user"},{value:"whitelist-priority",label:"WL Priority",icon:"priority_high"}];function k(){let[a,b]=(0,e.useState)({enabled:!1,mode:"blacklist",blacklist:[],whitelist:[],tempBans:[]}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(""),[k,l]=(0,e.useState)("blacklist"),m=async a=>{try{let c=await fetch("/api/settings/ip-filter",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});c.ok&&b(await c.json())}catch{}},n=()=>{g.trim()&&(m({["blacklist"===k?"addBlacklist":"addWhitelist"]:g.trim()}),i(""))},o=(a,b)=>{m({["blacklist"===b?"removeBlacklist":"removeWhitelist"]:a})},p=a.enabled?a.mode:"disabled";return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-red-500/10 text-red-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"security"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"IP Access Control"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Block or allow specific IP addresses"})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-4 gap-2 mb-5",children:j.map(a=>(0,d.jsxs)("button",{onClick:()=>{var b;"disabled"===(b=a.value)?m({enabled:!1}):m({enabled:!0,mode:b})},disabled:c,className:`flex flex-col items-center gap-1.5 p-3 rounded-lg border text-center transition-all ${p===a.value?"border-red-500/50 bg-red-500/5 ring-1 ring-red-500/20":"border-border/50 hover:border-border hover:bg-surface/30"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] ${p===a.value?"text-red-400":"text-text-muted"}`,children:a.icon}),(0,d.jsx)("span",{className:`text-xs font-medium ${p===a.value?"text-red-400":"text-text-muted"}`,children:a.label})]},a.value))}),a.enabled&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex gap-2 items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(h.pd,{label:"Add IP Address",placeholder:"192.168.1.0/24 or 10.0.*.*",value:g,onChange:a=>i(a.target.value),onKeyDown:a=>"Enter"===a.key&&n()})}),(0,d.jsxs)("div",{className:"flex gap-1 pb-[2px]",children:[(0,d.jsx)(h.$n,{size:"sm",variant:"blacklist"===k?"danger":"secondary",onClick:()=>{l("blacklist"),g.trim()&&n()},children:"+ Block"}),(0,d.jsx)(h.$n,{size:"sm",variant:"whitelist"===k?"primary":"secondary",onClick:()=>{l("whitelist"),g.trim()&&n()},children:"+ Allow"})]})]}),a.blacklist.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider mb-2",children:["Blocked (",a.blacklist.length,")"]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.blacklist.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-xs font-mono bg-red-500/10 text-red-400 border border-red-500/20",children:[a,(0,d.jsx)("button",{onClick:()=>o(a,"blacklist"),className:"hover:text-red-300",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},a))})]}),a.whitelist.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider mb-2",children:["Allowed (",a.whitelist.length,")"]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:a.whitelist.map(a=>(0,d.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md text-xs font-mono bg-emerald-500/10 text-emerald-400 border border-emerald-500/20",children:[a,(0,d.jsx)("button",{onClick:()=>o(a,"whitelist"),className:"hover:text-emerald-300",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]},a))})]}),a.tempBans.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("p",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider mb-2",children:["Temporary Bans (",a.tempBans.length,")"]}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:a.tempBans.map(a=>(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg bg-orange-500/5 border border-orange-500/20 text-sm",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-xs text-orange-400",children:a.ip}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["— ",a.reason]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted tabular-nums",children:[Math.ceil(a.remainingMs/6e4),"m left"]}),(0,d.jsx)("button",{onClick:()=>m({removeBan:a.ip}),className:"text-text-muted hover:text-orange-400",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"delete"})})]})]},a.ip))})]})]})]})}var l=c(87141);let m={closed:{icon:"check_circle",color:"#22c55e",label:"Closed"},"half-open":{icon:"pending",color:"#f59e0b",label:"Half-Open"},open:{icon:"error",color:"#ef4444",label:"Open"}};function n(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(null),j=(0,l.i)(),k=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/policies");if(a.ok){let c=await a.json();b(c)}}catch{}finally{f(!1)}},[]),n=async a=>{i(a);try{(await fetch("/api/policies",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"unlock",identifier:a})})).ok?(j.success(`Unlocked: ${a}`),await k()):j.error("Failed to unlock")}catch{j.error("Failed to unlock")}finally{i(null)}};if(c)return(0,d.jsx)(h.Zp,{className:"p-6 mt-6",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted animate-pulse",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"security"}),"Loading policies..."]})});let o=a?.circuitBreakers||[],p=a?.lockedIdentifiers||[];return o.some(a=>"closed"!==a.state)||p.length>0?(0,d.jsxs)(h.Zp,{className:"p-6 mt-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-red-500/10 text-red-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"gpp_maybe"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold text-text-main",children:"Policies & Circuit Breakers"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Active issues detected"})]})]}),(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",onClick:k,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"refresh"})})]}),o.filter(a=>"closed"!==a.state).length>0&&(0,d.jsxs)("div",{className:"mb-4",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-text-muted mb-2",children:"Circuit Breakers"}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:o.filter(a=>"closed"!==a.state).map((a,b)=>{let c=m[a.state]||m.open;return(0,d.jsx)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg bg-surface/30 border border-border/20",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",style:{color:c.color},children:c.icon}),(0,d.jsx)("span",{className:"text-sm text-text-main font-medium",children:a.name||a.provider||"Unknown"}),(0,d.jsx)("span",{className:"text-xs px-1.5 py-0.5 rounded-full",style:{backgroundColor:`${c.color}15`,color:c.color},children:c.label}),a.failures>0&&(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.failures," failures"]})]})},a.name||b)})})]}),p.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium text-text-muted mb-2",children:"Locked Identifiers"}),(0,d.jsx)("div",{className:"flex flex-col gap-1.5",children:p.map((a,b)=>{let c="string"==typeof a?a:a.identifier||a.id;return(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg bg-surface/30 border border-border/20",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-red-400",children:"lock"}),(0,d.jsx)("span",{className:"font-mono text-sm text-text-main",children:c}),"object"==typeof a&&a.lockedAt&&(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["since ",new Date(a.lockedAt).toLocaleString()]})]}),(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",onClick:()=>n(c),disabled:g===c,className:"text-xs",children:g===c?"Unlocking...":"Force Unlock"})]},c||b)})})]})]}):(0,d.jsx)(h.Zp,{className:"p-6 mt-6",children:(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-emerald-500/10 text-emerald-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"verified_user"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold text-text-main",children:"Policies & Circuit Breakers"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"All systems operational — no lockouts or tripped breakers"})]})]})})}function o(){let[a,b]=(0,e.useState)({requireLogin:!1,hasPassword:!1}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)({current:"",new:"",confirm:""}),[j,l]=(0,e.useState)({type:"",message:""}),[m,o]=(0,e.useState)(!1),p=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireLogin:a})})).ok&&b(b=>({...b,requireLogin:a}))}catch(a){console.error("Failed to update require login:",a)}},q=async a=>{if(a.preventDefault(),g.new!==g.confirm)return void l({type:"error",message:"Passwords do not match"});o(!0),l({type:"",message:""});try{let a=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:g.current,newPassword:g.new})}),b=await a.json();a.ok?(l({type:"success",message:"Password updated successfully"}),i({current:"",new:"",confirm:""})):l({type:"error",message:b.error||"Failed to update password"})}catch{l({type:"error",message:"An error occurred"})}finally{o(!1)}};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"shield"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Security"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require login"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"When ON, dashboard requires password. When OFF, access without login."})]}),(0,d.jsx)(h.lM,{checked:!0===a.requireLogin,onChange:()=>p(!a.requireLogin),disabled:c})]}),!0===a.requireLogin&&(0,d.jsxs)("form",{onSubmit:q,className:"flex flex-col gap-4 pt-4 border-t border-border/50",children:[a.hasPassword&&(0,d.jsx)(h.pd,{label:"Current Password",type:"password",placeholder:"Enter current password",value:g.current,onChange:a=>i({...g,current:a.target.value}),required:!0}),(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,d.jsx)(h.pd,{label:"New Password",type:"password",placeholder:"Enter new password",value:g.new,onChange:a=>i({...g,new:a.target.value}),required:!0}),(0,d.jsx)(h.pd,{label:"Confirm New Password",type:"password",placeholder:"Confirm new password",value:g.confirm,onChange:a=>i({...g,confirm:a.target.value}),required:!0})]}),j.message&&(0,d.jsx)("p",{className:`text-sm ${"error"===j.type?"text-red-500":"text-green-500"}`,children:j.message}),(0,d.jsx)("div",{className:"pt-2",children:(0,d.jsx)(h.$n,{type:"submit",variant:"primary",loading:m,children:a.hasPassword?"Update Password":"Set Password"})})]})]})]}),(0,d.jsx)(k,{}),(0,d.jsx)(n,{})]})}let p=["#6366f1","#22c55e","#f59e0b","#ef4444","#8b5cf6","#06b6d4","#ec4899","#14b8a6"];function q(){let[a,b]=(0,e.useState)({}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,q]=(0,e.useState)(!1),r=(0,l.i)(),s=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/fallback/chains");if(a.ok){let c=await a.json();b(c.chains||c||{})}}catch{}finally{f(!1)}},[]),t=async()=>{if(!j.trim()||!m.trim())return void r.warning("Please fill model name and providers");let a=m.split(",").map(a=>a.trim()).filter(Boolean).map((a,b)=>({provider:a,priority:b+1,enabled:!0}));if(0===a.length)return void r.warning("Add at least one provider");q(!0);try{(await fetch("/api/fallback/chains",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:j.trim(),chain:a})})).ok?(r.success(`Chain created for ${j.trim()}`),k(""),n(""),i(!1),await s()):r.error("Failed to create chain")}catch{r.error("Failed to create chain")}finally{q(!1)}},u=async a=>{if(confirm(`Delete fallback chain for "${a}"?`))try{(await fetch("/api/fallback/chains",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:a})})).ok?(r.success(`Chain deleted for ${a}`),await s()):r.error("Failed to delete chain")}catch{r.error("Failed to delete chain")}};if(c)return(0,d.jsx)(h.Zp,{className:"p-6 mt-6",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted animate-pulse",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"timeline"}),"Loading fallback chains..."]})});let v=Object.entries(a);return(0,d.jsxs)(h.Zp,{className:"mt-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4 p-6 pb-0",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-cyan-500/10 text-cyan-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"timeline"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Fallback Chains"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Define provider fallback order per model"})]}),(0,d.jsx)(h.$n,{size:"sm",variant:"primary",onClick:()=>i(!g),children:g?"Cancel":"+ Add Chain"})]}),g&&(0,d.jsxs)("div",{className:"mx-6 p-4 rounded-lg border border-border/30 bg-surface/20 mb-4",children:[(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mb-3",children:[(0,d.jsx)(h.pd,{label:"Model Name",placeholder:"claude-sonnet-4-20250514",value:j,onChange:a=>k(a.target.value)}),(0,d.jsx)(h.pd,{label:"Providers (comma-separated, in priority order)",placeholder:"anthropic, openai, gemini",value:m,onChange:a=>n(a.target.value)})]}),(0,d.jsx)(h.$n,{variant:"primary",size:"sm",onClick:t,loading:o,children:"Create Chain"})]}),(0,d.jsx)("div",{className:"px-6 pb-6",children:0===v.length?(0,d.jsx)(h.pp,{icon:"timeline",title:"No Fallback Chains",description:"Create a chain to define provider fallback order for a model."}):(0,d.jsx)("div",{className:"flex flex-col gap-2",children:v.map(([a,b])=>(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 rounded-lg border border-border/20 bg-surface/20 hover:bg-surface/40 transition-colors",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[(0,d.jsx)("span",{className:"font-mono text-sm text-text-main truncate max-w-[200px]",children:a}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"arrow_forward"}),(0,d.jsx)("div",{className:"flex gap-1.5 flex-wrap",children:(Array.isArray(b)?b:[]).map((a,b)=>(0,d.jsxs)("span",{className:"text-xs px-2 py-0.5 rounded-full font-medium",style:{backgroundColor:`${p[b%p.length]}20`,color:p[b%p.length],border:`1px solid ${p[b%p.length]}40`},children:[b+1,". ",a.provider]},`${a.provider}-${b}`))})]}),(0,d.jsx)("button",{onClick:()=>u(a),className:"text-text-muted hover:text-red-400 transition-colors ml-2",title:"Delete chain",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]},a))})})]})}let r=[{value:"fill-first",label:"Fill First",desc:"Use accounts in priority order",icon:"vertical_align_top"},{value:"round-robin",label:"Round Robin",desc:"Cycle through all accounts",icon:"loop"},{value:"p2c",label:"P2C",desc:"Pick 2 random, use the healthier one",icon:"balance"}];function s(){let[a,b]=(0,e.useState)({fallbackStrategy:"fill-first"}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)([]),[j,k]=(0,e.useState)(""),[l,m]=(0,e.useState)(""),n=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok&&b(b=>({...b,...a}))}catch(a){console.error("Failed to update settings:",a)}},o=async()=>{if(!j.trim()||!l.trim())return;let a=[...g,{pattern:j.trim(),target:l.trim()}];await n({wildcardAliases:a}),i(a),k(""),m("")},p=async a=>{let b=g.filter((b,c)=>c!==a);await n({wildcardAliases:b}),i(b)};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-blue-500/10 text-blue-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"route"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Routing Strategy"})]}),(0,d.jsx)("div",{className:"grid grid-cols-3 gap-2 mb-4",children:r.map(b=>(0,d.jsxs)("button",{onClick:()=>n({fallbackStrategy:b.value}),disabled:c,className:`flex flex-col items-center gap-2 p-4 rounded-lg border text-center transition-all ${a.fallbackStrategy===b.value?"border-blue-500/50 bg-blue-500/5 ring-1 ring-blue-500/20":"border-border/50 hover:border-border hover:bg-surface/30"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[24px] ${a.fallbackStrategy===b.value?"text-blue-400":"text-text-muted"}`,children:b.icon}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:`text-sm font-medium ${a.fallbackStrategy===b.value?"text-blue-400":""}`,children:b.label}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:b.desc})]})]},b.value))}),"round-robin"===a.fallbackStrategy&&(0,d.jsxs)("div",{className:"flex items-center justify-between pt-3 border-t border-border/30",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Sticky Limit"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Calls per account before switching"})]}),(0,d.jsx)(h.pd,{type:"number",min:"1",max:"10",value:a.stickyRoundRobinLimit||3,onChange:a=>n({stickyRoundRobinLimit:parseInt(a.target.value)}),disabled:c,className:"w-20 text-center"})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted italic pt-3 border-t border-border/30 mt-3",children:["round-robin"===a.fallbackStrategy&&`Distributing requests across accounts with ${a.stickyRoundRobinLimit||3} calls per account.`,"fill-first"===a.fallbackStrategy&&"Using accounts in priority order (Fill First).","p2c"===a.fallbackStrategy&&"Power of Two Choices: picks 2 random accounts and routes to the healthier one."]})]}),(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-purple-500/10 text-purple-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"alt_route"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Model Aliases"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Wildcard patterns to remap model names • Use * and ?"})]})]}),g.length>0&&(0,d.jsx)("div",{className:"flex flex-col gap-1.5 mb-4",children:g.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg bg-surface/30 border border-border/20",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 text-sm",children:[(0,d.jsx)("span",{className:"font-mono text-purple-400",children:a.pattern}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"arrow_forward"}),(0,d.jsx)("span",{className:"font-mono text-text-main",children:a.target})]}),(0,d.jsx)("button",{onClick:()=>p(b),className:"text-text-muted hover:text-red-400 transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]},b))}),(0,d.jsxs)("div",{className:"flex gap-2 items-end",children:[(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(h.pd,{label:"Pattern",placeholder:"claude-sonnet-*",value:j,onChange:a=>k(a.target.value)})}),(0,d.jsx)("div",{className:"flex-1",children:(0,d.jsx)(h.pd,{label:"Target Model",placeholder:"claude-sonnet-4-20250514",value:l,onChange:a=>m(a.target.value)})}),(0,d.jsx)(h.$n,{size:"sm",variant:"primary",onClick:o,className:"mb-[2px]",children:"+ Add"})]})]}),(0,d.jsx)(q,{})]})}function t(){let[a,b]=(0,e.useState)({strategy:"priority",maxRetries:1,retryDelayMs:2e3,timeoutMs:12e4,healthCheckEnabled:!0,healthCheckTimeoutMs:3e3,maxComboDepth:3,trackMetrics:!0}),[c,g]=(0,e.useState)({}),[i,j]=(0,e.useState)(""),[k,l]=(0,e.useState)(!1),m=async()=>{l(!0);try{await fetch("/api/settings/combo-defaults",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboDefaults:a,providerOverrides:c})})}catch(a){console.error("Failed to save combo defaults:",a)}finally{l(!1)}},n=()=>{let a=i.trim().toLowerCase();a&&!c[a]&&(g(b=>({...b,[a]:{maxRetries:1,timeoutMs:12e4}})),j(""))};return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-amber-500/10 text-amber-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"tune"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Combo Defaults"}),(0,d.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:"Global combo configuration"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Default Strategy"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Applied to new combos without explicit strategy"})]}),(0,d.jsx)("div",{role:"tablist","aria-label":"Combo strategy",className:"inline-flex p-0.5 rounded-md bg-black/5 dark:bg-white/5",children:["priority","weighted","round-robin"].map(c=>(0,d.jsx)("button",{role:"tab","aria-selected":a.strategy===c,onClick:()=>b(a=>({...a,strategy:c})),className:(0,f.cn)("px-3 py-1 rounded text-xs font-medium transition-all capitalize",a.strategy===c?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:"round-robin"===c?"Round-Robin":c},c))})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-3 pt-3 border-t border-border/50",children:[{key:"maxRetries",label:"Max Retries",min:0,max:5},{key:"retryDelayMs",label:"Retry Delay (ms)",min:500,max:1e4,step:500},{key:"timeoutMs",label:"Timeout (ms)",min:5e3,max:3e5,step:5e3},{key:"maxComboDepth",label:"Max Nesting Depth",min:1,max:10}].map(({key:c,label:e,min:f,max:g,step:i})=>(0,d.jsx)(h.pd,{label:e,type:"number",min:f,max:g,step:i||1,value:a[c]??"",onChange:a=>b(b=>({...b,[c]:parseInt(a.target.value)||0})),className:"text-sm"},c))}),"round-robin"===a.strategy&&(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3 pt-3 border-t border-border/50",children:[(0,d.jsx)(h.pd,{label:"Concurrency / Model",type:"number",min:1,max:20,value:a.concurrencyPerModel??"",placeholder:"3",onChange:a=>b(b=>({...b,concurrencyPerModel:parseInt(a.target.value)||0})),className:"text-sm"}),(0,d.jsx)(h.pd,{label:"Queue Timeout (ms)",type:"number",min:1e3,max:12e4,step:1e3,value:a.queueTimeoutMs??"",placeholder:"30000",onChange:a=>b(b=>({...b,queueTimeoutMs:parseInt(a.target.value)||0})),className:"text-sm"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 pt-3 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Health Check"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Pre-check provider availability"})]}),(0,d.jsx)(h.lM,{checked:!1!==a.healthCheckEnabled,onChange:()=>b(a=>({...a,healthCheckEnabled:!a.healthCheckEnabled}))})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Track Metrics"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Record per-combo request metrics"})]}),(0,d.jsx)(h.lM,{checked:!1!==a.trackMetrics,onChange:()=>b(a=>({...a,trackMetrics:!a.trackMetrics}))})]})]}),(0,d.jsxs)("div",{className:"pt-3 border-t border-border/50",children:[(0,d.jsx)("p",{className:"font-medium text-sm mb-2",children:"Provider Overrides"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-3",children:"Override timeout and retries per provider. Provider settings override global defaults."}),Object.entries(c).map(([a,b])=>(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-2 p-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02]",children:[(0,d.jsx)("span",{className:"text-xs font-mono font-medium min-w-[80px]",children:a}),(0,d.jsx)(h.pd,{type:"number",min:"0",max:"5",value:b.maxRetries??1,onChange:b=>g(c=>({...c,[a]:{...c[a],maxRetries:parseInt(b.target.value)||0}})),className:"text-xs w-16","aria-label":`${a} max retries`}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"retries"}),(0,d.jsx)(h.pd,{type:"number",min:"5000",max:"300000",step:"5000",value:b.timeoutMs??12e4,onChange:b=>g(c=>({...c,[a]:{...c[a],timeoutMs:parseInt(b.target.value)||12e4}})),className:"text-xs w-24","aria-label":`${a} timeout ms`}),(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"ms"}),(0,d.jsx)("button",{onClick:()=>{g(b=>{let c={...b};return delete c[a],c})},className:"ml-auto text-red-400 hover:text-red-500 transition-colors","aria-label":`Remove ${a} override`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]","aria-hidden":"true",children:"close"})})]},a)),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-2",children:[(0,d.jsx)(h.pd,{type:"text",placeholder:"e.g. google, openai...",value:i,onChange:a=>j(a.target.value),onKeyDown:a=>"Enter"===a.key&&n(),className:"text-xs flex-1","aria-label":"New provider name"}),(0,d.jsx)(h.$n,{variant:"outline",size:"sm",onClick:n,disabled:!i.trim(),children:"Add"})]})]}),(0,d.jsx)("div",{className:"pt-3 border-t border-border/50",children:(0,d.jsx)(h.$n,{variant:"primary",size:"sm",onClick:m,loading:k,children:"Save Combo Defaults"})})]})]})}function u(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(null),g=async()=>{try{let a=await fetch("/api/settings/proxy?level=global");if(a.ok){let b=await a.json();f(b.proxy||null)}}catch{}};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Zp,{className:"p-0 overflow-hidden",children:(0,d.jsxs)("div",{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary","aria-hidden":"true",children:"vpn_lock"}),(0,d.jsx)("h2",{className:"text-lg font-bold",children:"Global Proxy"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this."}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[c?(0,d.jsx)("div",{className:"flex items-center gap-2",children:(0,d.jsxs)("span",{className:"px-2.5 py-1 rounded text-xs font-bold uppercase bg-emerald-500/15 text-emerald-400 border border-emerald-500/30",children:[c.type,"://",c.host,":",c.port]})}):(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"No global proxy configured"}),(0,d.jsx)(h.$n,{size:"sm",variant:c?"secondary":"primary",icon:"settings",onClick:()=>{g(),b(!0)},children:c?"Edit":"Configure"})]})]})}),(0,d.jsx)(h.KN,{isOpen:a,onClose:()=>b(!1),level:"global",levelLabel:"Global",onSaved:g})]})}var v=c(49360);function w(){let{theme:a,setTheme:b,isDark:c}=(0,v.D)();return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-purple-500/10 text-purple-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"palette"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Appearance"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Dark Mode"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Switch between light and dark themes"})]}),(0,d.jsx)(h.lM,{checked:c,onChange:()=>b(c?"light":"dark")})]}),(0,d.jsx)("div",{className:"pt-4 border-t border-border",children:(0,d.jsx)("div",{role:"tablist","aria-label":"Theme selection",className:"inline-flex p-1 rounded-lg bg-black/5 dark:bg-white/5",children:["light","dark","system"].map(c=>(0,d.jsxs)("button",{role:"tab","aria-selected":a===c,onClick:()=>b(c),className:(0,f.cn)("flex items-center gap-2 px-4 py-2 rounded-md font-medium transition-all",a===c?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"light"===c?"light_mode":"dark"===c?"dark_mode":"contrast"}),(0,d.jsx)("span",{className:"capitalize",children:c})]},c))})})]})]})}let x=[{value:"passthrough",label:"Passthrough",desc:"No changes — client controls thinking budget",icon:"arrow_forward"},{value:"auto",label:"Auto",desc:"Strip all thinking config — let provider decide",icon:"auto_awesome"},{value:"custom",label:"Custom",desc:"Set a fixed token budget for all requests",icon:"tune"},{value:"adaptive",label:"Adaptive",desc:"Scale budget based on request complexity",icon:"trending_up"}],y=[{value:"none",label:"None (0 tokens)"},{value:"low",label:"Low (1K tokens)"},{value:"medium",label:"Medium (10K tokens)"},{value:"high",label:"High (128K tokens)"}];function z(){let[a,b]=(0,e.useState)({mode:"passthrough",customBudget:10240,effortLevel:"medium"}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(""),l=async c=>{let d={...a,...c};b(d),i(!0),k("");try{(await fetch("/api/settings/thinking-budget",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})).ok?(k("saved"),setTimeout(()=>k(""),2e3)):k("error")}catch{k("error")}finally{i(!1)}};return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-violet-500/10 text-violet-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"psychology"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Thinking Budget"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Control AI reasoning token usage across all requests"})]}),"saved"===j&&(0,d.jsxs)("span",{className:"ml-auto text-xs font-medium text-emerald-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"})," Saved"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-2 mb-5",children:x.map(b=>(0,d.jsxs)("button",{onClick:()=>l({mode:b.value}),disabled:c||g,className:`flex items-start gap-3 p-3 rounded-lg border text-left transition-all ${a.mode===b.value?"border-violet-500/50 bg-violet-500/5 ring-1 ring-violet-500/20":"border-border/50 hover:border-border hover:bg-surface/30"}`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[20px] mt-0.5 ${a.mode===b.value?"text-violet-500":"text-text-muted"}`,children:b.icon}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:`text-sm font-medium ${a.mode===b.value?"text-violet-400":""}`,children:b.label}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5 leading-relaxed",children:b.desc})]})]},b.value))}),"custom"===a.mode&&(0,d.jsxs)("div",{className:"p-4 rounded-lg bg-surface/30 border border-border/30 mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Token Budget"}),(0,d.jsxs)("span",{className:"text-sm font-mono tabular-nums text-violet-400",children:[a.customBudget.toLocaleString()," tokens"]})]}),(0,d.jsx)("input",{type:"range",min:"0",max:"131072",step:"1024",value:a.customBudget,onChange:a=>l({customBudget:parseInt(a.target.value)}),className:"w-full accent-violet-500"}),(0,d.jsxs)("div",{className:"flex justify-between text-xs text-text-muted mt-1",children:[(0,d.jsx)("span",{children:"Off"}),(0,d.jsx)("span",{children:"1K"}),(0,d.jsx)("span",{children:"10K"}),(0,d.jsx)("span",{children:"64K"}),(0,d.jsx)("span",{children:"128K"})]})]}),"adaptive"===a.mode&&(0,d.jsxs)("div",{className:"p-4 rounded-lg bg-surface/30 border border-border/30",children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-3",children:"Base Effort Level"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-3",children:"Adaptive mode scales from this base level based on message count, tool usage, and prompt length."}),(0,d.jsx)("div",{className:"grid grid-cols-4 gap-2",children:y.map(b=>(0,d.jsx)("button",{onClick:()=>l({effortLevel:b.value}),disabled:c||g,className:`px-3 py-2 rounded-lg text-xs font-medium border transition-all ${a.effortLevel===b.value?"border-violet-500/50 bg-violet-500/10 text-violet-400":"border-border/50 text-text-muted hover:border-border"}`,children:b.value.charAt(0).toUpperCase()+b.value.slice(1)},b.value))})]})]})}function A(){let[a,b]=(0,e.useState)({enabled:!1,prompt:""}),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(null),l=async c=>{let d={...a,...c};b(d),i("");try{(await fetch("/api/settings/system-prompt",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)})).ok&&(i("saved"),setTimeout(()=>i(""),2e3))}catch{i("error")}};return(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-5",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-amber-500/10 text-amber-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]","aria-hidden":"true",children:"edit_note"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:"Global System Prompt"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Injected into all requests at proxy level"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:["saved"===g&&(0,d.jsxs)("span",{className:"text-xs font-medium text-emerald-500 flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"})," Saved"]}),(0,d.jsx)(h.lM,{checked:a.enabled,onChange:()=>l({enabled:!a.enabled}),disabled:c})]})]}),a.enabled&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("textarea",{value:a.prompt,onChange:a=>{var c;return c=a.target.value,void(b(a=>({...a,prompt:c})),j&&clearTimeout(j),k(setTimeout(()=>{l({prompt:c})},800)))},placeholder:"Enter system prompt to inject into all requests...",rows:5,className:"w-full px-4 py-3 rounded-lg border border-border/50 bg-surface/30 text-sm placeholder:text-text-muted/50 resize-y min-h-[120px] focus:outline-none focus:ring-1 focus:ring-amber-500/30 focus:border-amber-500/50 transition-colors",disabled:c}),(0,d.jsxs)("div",{className:"absolute bottom-2 right-3 text-xs text-text-muted/60 tabular-nums",children:[a.prompt.length," chars"]})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted/70 flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"info"}),"This prompt is prepended to the system message of every request. Use for global instructions, safety guidelines, or response formatting rules. Send ",(0,d.jsx)("code",{className:"px-1 py-0.5 rounded bg-surface/50",children:"_skipSystemPrompt: true"})," in a request to bypass."]})]})]})}let B=["input","output","cached","reasoning","cache_creation"],C={input:"Input",output:"Output",cached:"Cached",reasoning:"Reasoning",cache_creation:"Cache Write"};function D(){let[a,b]=(0,e.useState)({}),[c,f]=(0,e.useState)({}),[g,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(null),[p,q]=(0,e.useState)(new Set),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(new Set),v=(0,e.useMemo)(()=>Object.entries(a).map(([a,b])=>({alias:a,...b,pricedModels:c[a]?Object.keys(c[a]).length:0})).sort((a,b)=>b.modelCount-a.modelCount),[a,c]),w=(0,e.useMemo)(()=>{if(!r.trim())return v;let a=r.toLowerCase();return v.filter(b=>b.alias.toLowerCase().includes(a)||b.id.toLowerCase().includes(a)||b.models.some(b=>b.id.toLowerCase().includes(a)||b.name.toLowerCase().includes(a)))},[v,r]),x=(0,e.useMemo)(()=>{let a=v.reduce((a,b)=>a+b.modelCount,0),b=Object.values(c).reduce((a,b)=>a+Object.keys(b).length,0);return{providers:v.length,totalModels:a,pricedCount:b}},[v,c]),y=(0,e.useCallback)(a=>{q(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),z=(0,e.useCallback)((a,b,c,d)=>{let e=parseFloat(d);isNaN(e)||e<0||(f(d=>{let f={...d};return f[a]||(f[a]={}),f[a][b]||(f[a][b]={input:0,output:0,cached:0,reasoning:0,cache_creation:0}),f[a][b]={...f[a][b],[c]:e},f}),u(b=>new Set(b).add(a)))},[]),A=(0,e.useCallback)(async a=>{k(!0),m("");try{let b=c[a]||{},d=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({[a]:b})});if(d.ok)m(`✅ ${a.toUpperCase()} saved`),u(b=>{let c=new Set(b);return c.delete(a),c}),setTimeout(()=>m(""),3e3);else{let a=await d.json();m(`❌ Error: ${a.error}`)}}catch(a){m(`❌ Save failed: ${a.message}`)}finally{k(!1)}},[c]),B=(0,e.useCallback)(async a=>{if(confirm(`Reset all pricing for ${a.toUpperCase()} to defaults?`))try{let b=await fetch(`/api/pricing?provider=${a}`,{method:"DELETE"});if(b.ok){let c=await b.json();f(c),m(`🔄 ${a.toUpperCase()} reset to defaults`),u(b=>{let c=new Set(b);return c.delete(a),c}),setTimeout(()=>m(""),3e3)}}catch(a){m(`❌ Reset failed: ${a.message}`)}},[]),C=(0,e.useCallback)(a=>{o(b=>b===a?null:a)},[]),D=(0,e.useMemo)(()=>n?w.filter(a=>a.alias===n):w,[w,n]);return g?(0,d.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,d.jsx)("div",{className:"text-text-muted animate-pulse",children:"Loading pricing data..."})}):(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-start justify-between flex-wrap gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-bold",children:"Model Pricing"}),(0,d.jsxs)("p",{className:"text-text-muted text-sm mt-1",children:["Configure cost rates per model • All rates in"," ",(0,d.jsx)("strong",{children:"$/1M tokens"})]})]}),(0,d.jsxs)("div",{className:"flex gap-3 text-sm",children:[(0,d.jsxs)("div",{className:"bg-bg-subtle rounded-lg px-3 py-2 text-center",children:[(0,d.jsx)("div",{className:"text-text-muted text-xs font-semibold",children:"Providers"}),(0,d.jsx)("div",{className:"text-lg font-bold",children:x.providers})]}),(0,d.jsxs)("div",{className:"bg-bg-subtle rounded-lg px-3 py-2 text-center",children:[(0,d.jsx)("div",{className:"text-text-muted text-xs font-semibold",children:"Registry"}),(0,d.jsx)("div",{className:"text-lg font-bold",children:x.totalModels})]}),(0,d.jsxs)("div",{className:"bg-bg-subtle rounded-lg px-3 py-2 text-center",children:[(0,d.jsx)("div",{className:"text-text-muted text-xs font-semibold",children:"Priced"}),(0,d.jsx)("div",{className:"text-lg font-bold text-success",children:x.pricedCount})]})]})]}),l&&(0,d.jsx)("div",{className:"px-3 py-2 rounded-lg bg-bg-subtle border border-border text-sm",children:l}),(0,d.jsxs)("div",{className:"flex gap-3 items-center flex-wrap",children:[(0,d.jsxs)("div",{className:"relative flex-1 min-w-[200px]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined absolute left-3 top-1/2 -translate-y-1/2 text-text-muted text-lg",children:"search"}),(0,d.jsx)("input",{type:"text",placeholder:"Search providers or models...",value:r,onChange:a=>s(a.target.value),className:"w-full pl-10 pr-3 py-2 bg-bg-base border border-border rounded-lg focus:outline-none focus:border-primary text-sm"})]}),n&&(0,d.jsxs)("button",{onClick:()=>o(null),className:"px-3 py-2 text-xs bg-primary/10 text-primary border border-primary/20 rounded-lg hover:bg-primary/20 transition-colors flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"}),n.toUpperCase()," — Show All"]})]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:v.map(a=>(0,d.jsxs)("button",{onClick:()=>C(a.alias),className:`px-2.5 py-1 rounded-md text-xs font-medium transition-all ${n===a.alias?"bg-primary text-white shadow-sm":t.has(a.alias)?"bg-yellow-500/15 text-yellow-400 border border-yellow-500/30":"bg-bg-subtle text-text-muted hover:bg-bg-hover border border-transparent"}`,children:[a.alias.toUpperCase()," ",(0,d.jsxs)("span",{className:"opacity-60",children:["(",a.modelCount,")"]})]},a.alias))}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[D.map(a=>(0,d.jsx)(E,{provider:a,pricingData:c[a.alias]||{},isExpanded:p.has(a.alias),isEdited:t.has(a.alias),onToggle:()=>y(a.alias),onPricingChange:(b,c,d)=>z(a.alias,b,c,d),onSave:()=>A(a.alias),onReset:()=>B(a.alias),saving:j},a.alias)),0===D.length&&(0,d.jsx)("div",{className:"text-center py-12 text-text-muted",children:"No providers match your search."})]}),(0,d.jsxs)(h.Zp,{className:"p-4 mt-2",children:[(0,d.jsxs)("h3",{className:"text-sm font-semibold mb-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm align-middle mr-1",children:"info"}),"How Pricing Works"]}),(0,d.jsxs)("div",{className:"text-xs text-text-muted space-y-1",children:[(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Input"}),": tokens sent to the model •"," ",(0,d.jsx)("strong",{children:"Output"}),": tokens generated •"," ",(0,d.jsx)("strong",{children:"Cached"}),": reused input (~50% of input rate) •"," ",(0,d.jsx)("strong",{children:"Reasoning"}),": thinking tokens (falls back to Output) •"," ",(0,d.jsx)("strong",{children:"Cache Write"}),": creating cache entries (falls back to Input)"]}),(0,d.jsx)("p",{children:"Cost = (input \xd7 input_rate) + (output \xd7 output_rate) + (cached \xd7 cached_rate) per million tokens."})]})]})]})}function E({provider:a,pricingData:b,isExpanded:c,isEdited:e,onToggle:f,onPricingChange:g,onSave:h,onReset:i,saving:j}){let k=Object.keys(b).length,l="oauth"===a.authType?"OAuth":"apikey"===a.authType?"API Key":a.authType;return(0,d.jsxs)("div",{className:`border rounded-lg overflow-hidden transition-colors ${e?"border-yellow-500/40 bg-yellow-500/5":"border-border"}`,children:[(0,d.jsxs)("button",{onClick:f,className:"w-full flex items-center justify-between px-4 py-3 hover:bg-bg-hover/50 transition-colors text-left",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-lg transition-transform ${c?"rotate-90":""}`,children:"chevron_right"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"font-semibold text-sm",children:a.id.charAt(0).toUpperCase()+a.id.slice(1)}),(0,d.jsxs)("span",{className:"text-text-muted text-xs ml-2",children:["(",a.alias.toUpperCase(),")"]})]}),(0,d.jsx)("span",{className:"px-1.5 py-0.5 bg-bg-subtle text-text-muted text-[10px] rounded uppercase font-semibold",children:l}),(0,d.jsx)("span",{className:"px-1.5 py-0.5 bg-bg-subtle text-text-muted text-[10px] rounded uppercase font-semibold",children:a.format})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsx)("span",{className:"text-yellow-500 text-xs font-medium",children:"unsaved"}),(0,d.jsxs)("span",{className:"text-text-muted text-xs",children:[k,"/",a.modelCount," priced"]}),(0,d.jsx)("div",{className:"w-16 h-1.5 bg-bg-subtle rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-primary rounded-full transition-all",style:{width:`${a.modelCount>0?Math.round(k/a.modelCount*100):0}%`}})})]})]}),c&&(0,d.jsxs)("div",{className:"border-t border-border",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 bg-bg-subtle/50",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.modelCount," models •"," ",k," with pricing configured"]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),i()},className:"px-2.5 py-1 text-[11px] text-red-400 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",children:"Reset Defaults"}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),h()},disabled:j||!e,className:"px-2.5 py-1 text-[11px] bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-40",children:j?"Saving...":"Save Provider"})]})]}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{className:"text-[11px] text-text-muted uppercase bg-bg-subtle/30",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:"px-4 py-2 text-left font-semibold",children:"Model"}),B.map(a=>(0,d.jsx)("th",{className:"px-2 py-2 text-right font-semibold w-24",children:C[a]},a))]})}),(0,d.jsx)("tbody",{className:"divide-y divide-border/50",children:a.models.map(a=>(0,d.jsx)(F,{model:a,pricing:b[a.id],onPricingChange:(b,c)=>g(a.id,b,c)},a.id))})]})})]})]})}function F({model:a,pricing:b,onPricingChange:c}){let e=b&&Object.values(b).some(a=>a>0);return(0,d.jsxs)("tr",{className:"hover:bg-bg-hover/30 group",children:[(0,d.jsx)("td",{className:"px-4 py-1.5",children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`w-1.5 h-1.5 rounded-full ${e?"bg-success":"bg-text-muted/30"}`}),(0,d.jsx)("span",{className:"font-medium text-xs",children:a.name}),a.custom&&(0,d.jsx)("span",{className:"px-1 py-0.5 text-[8px] font-bold bg-blue-500/15 text-blue-400 border border-blue-500/20 rounded uppercase",children:"custom"}),(0,d.jsx)("span",{className:"text-text-muted text-[10px] opacity-0 group-hover:opacity-100 transition-opacity",children:a.id})]})}),B.map(a=>(0,d.jsx)("td",{className:"px-2 py-1.5",children:(0,d.jsx)("input",{type:"number",step:"0.01",min:"0",value:b?.[a]||0,onChange:b=>c(a,b.target.value),className:"w-full px-2 py-1 text-right text-xs bg-transparent border border-transparent hover:border-border focus:border-primary focus:bg-bg-base rounded transition-colors outline-none tabular-nums"})},a))]})}let G=[{key:"timestamp",label:"Time"},{key:"action",label:"Action"},{key:"actor",label:"Actor"},{key:"details",label:"Details"}];function H(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(""),[j,k]=(0,e.useState)({}),[m,n]=(0,e.useState)({timestamp:!0,action:!0,actor:!0,details:!0});(0,l.i)();let o=[...new Set(a.map(a=>a.action).filter(Boolean))],p=[...new Set(a.map(a=>a.actor).filter(Boolean))],q=a.filter(a=>{if(g){let b=g.toLowerCase();if(!(a.action?.toLowerCase().includes(b)||a.actor?.toLowerCase().includes(b)||a.details&&JSON.stringify(a.details).toLowerCase().includes(b)))return!1}return(!j.action||a.action===j.action)&&(!j.actor||a.actor===j.actor)}),r=G.filter(a=>m[a.key]),s=(0,e.useCallback)(a=>{n(b=>({...b,[a]:!b[a]}))},[]),t=(0,e.useCallback)((a,b)=>{switch(b.key){case"timestamp":return(0,d.jsx)("span",{className:"font-mono text-xs text-text-muted whitespace-nowrap",children:a.timestamp?new Date(a.timestamp).toLocaleString():"—"});case"action":return(0,d.jsx)("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium bg-accent/10 text-accent",children:a.action||"—"});case"actor":return(0,d.jsx)("span",{className:"text-text-main",children:a.actor||"system"});case"details":return(0,d.jsx)("span",{className:"text-text-muted text-xs max-w-xs truncate block",children:a.details?JSON.stringify(a.details):"—"});default:return a[b.key]||"—"}},[]);return(0,d.jsxs)(h.Zp,{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("h3",{className:"text-lg font-semibold text-text-main flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"policy"}),"Audit Log"]}),(0,d.jsx)(h.tD,{columns:G,visible:m,onToggle:s})]}),(0,d.jsx)(h.Qn,{searchValue:g,onSearchChange:i,placeholder:"Search audit logs...",filters:[{key:"action",label:"Action",options:o},{key:"actor",label:"Actor",options:p}],activeFilters:j,onFilterChange:(a,b)=>k(c=>({...c,[a]:b}))}),(0,d.jsx)(h.bQ,{columns:r,data:q,renderCell:t,loading:c,maxHeight:"400px",emptyIcon:"\uD83D\uDCCB",emptyMessage:"No audit events found"})]})}function I(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!1),g=async()=>{f(!0);try{await fetch("/api/cache/stats",{method:"DELETE"}),fetch("/api/cache/stats").then(a=>a.json()).then(b).catch(()=>{})}finally{f(!1)}};return(0,d.jsxs)(h.Zp,{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("h3",{className:"text-lg font-semibold text-text-main flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"cached"}),"Prompt Cache"]}),(0,d.jsx)("button",{onClick:g,disabled:c,className:"px-3 py-1.5 text-xs rounded-lg bg-red-500/10 text-red-400 hover:bg-red-500/20 transition-colors disabled:opacity-50",children:c?"Flushing…":"Flush Cache"})]}),a?(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted",children:"Size"}),(0,d.jsxs)("p",{className:"font-mono text-lg text-text-main",children:[a.size,"/",a.maxSize]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted",children:"Hit Rate"}),(0,d.jsxs)("p",{className:"font-mono text-lg text-text-main",children:[a.hitRate?.toFixed(1)??0,"%"]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted",children:"Hits"}),(0,d.jsx)("p",{className:"font-mono text-text-main",children:a.hits??0})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-text-muted",children:"Evictions"}),(0,d.jsx)("p",{className:"font-mono text-text-main",children:a.evictions??0})]})]}):(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Loading cache stats…"})]})}let J={CLOSED:{bg:"bg-emerald-500/15",text:"text-emerald-400",border:"border-emerald-500/30",label:"CLOSED",icon:"check_circle"},OPEN:{bg:"bg-red-500/15",text:"text-red-400",border:"border-red-500/30",label:"OPEN",icon:"error"},HALF_OPEN:{bg:"bg-amber-500/15",text:"text-amber-400",border:"border-amber-500/30",label:"HALF-OPEN",icon:"warning"}};function K({breakers:a,onReset:b,loading:c}){let e=a.filter(a=>"CLOSED"!==a.state),f=a.length;return(0,d.jsx)(h.Zp,{className:"p-0 overflow-hidden",children:(0,d.jsxs)("div",{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary","aria-hidden":"true",children:"electrical_services"}),(0,d.jsx)("h2",{className:"text-lg font-bold",children:"Circuit Breakers"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted",children:e.length>0?`${e.length} tripped`:`${f} healthy`}),e.length>0&&(0,d.jsx)(h.$n,{size:"sm",variant:"danger",icon:"restart_alt",onClick:b,disabled:c,children:"Reset All"})]})]}),0===a.length?(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline."}):(0,d.jsx)("div",{className:"space-y-2",children:a.map(a=>{let b=J[a.state]||J.CLOSED;return(0,d.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg bg-black/5 dark:bg-white/5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-base ${b.text}`,"aria-hidden":"true",children:b.icon}),(0,d.jsx)("span",{className:"text-sm font-medium",children:a.name.replace("combo:","")})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[a.failureCount>0&&(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.failureCount," failure",1!==a.failureCount?"s":""]}),(0,d.jsx)("span",{className:`px-2 py-0.5 rounded text-xs font-bold uppercase ${b.bg} ${b.text} border ${b.border}`,children:b.label})]})]},a.name)})})]})})}function L({profiles:a,onSave:b,saving:c}){let[f,g]=(0,e.useState)(!1),[i,j]=(0,e.useState)(a),k=[{key:"transientCooldown",label:"Transient Cooldown",suffix:"ms"},{key:"rateLimitCooldown",label:"Rate Limit Cooldown",suffix:"ms"},{key:"maxBackoffLevel",label:"Max Backoff Level",suffix:""},{key:"circuitBreakerThreshold",label:"CB Threshold",suffix:" fails"},{key:"circuitBreakerReset",label:"CB Reset Time",suffix:"ms"}];return(0,d.jsx)(h.Zp,{className:"p-0 overflow-hidden",children:(0,d.jsxs)("div",{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary","aria-hidden":"true",children:"tune"}),(0,d.jsx)("h2",{className:"text-lg font-bold",children:"Provider Profiles"})]}),f?(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",onClick:()=>g(!1),children:"Cancel"}),(0,d.jsx)(h.$n,{size:"sm",variant:"primary",icon:"save",onClick:()=>{b(i),g(!1)},disabled:c,children:"Save"})]}):(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>g(!0),children:"Edit"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits."}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:["oauth","apikey"].map(b=>(0,d.jsxs)("div",{className:"rounded-lg bg-black/5 dark:bg-white/5 p-4",children:[(0,d.jsxs)("h3",{className:"text-sm font-bold uppercase tracking-wider mb-3 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base","aria-hidden":"true",children:"oauth"===b?"lock":"key"}),"oauth"===b?"OAuth Providers":"API Key Providers"]}),(0,d.jsx)("div",{className:"space-y-2",children:k.map(({key:c,label:e,suffix:g})=>(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted",children:e}),f?(0,d.jsx)("input",{type:"number",min:"0",value:i?.[b]?.[c]??0,onChange:a=>j({...i,[b]:{...i[b],[c]:Number(a.target.value)}}),className:"w-24 px-2 py-1 text-xs rounded bg-white/10 border border-white/20 text-right"}):(0,d.jsxs)("span",{className:"text-sm font-mono",children:[a?.[b]?.[c]??"—",g&&a?.[b]?.[c]!=null?g:""]})]},c))})]},b))})]})})}function M({rateLimitStatus:a,defaults:b}){var c;return(0,d.jsx)(h.Zp,{className:"p-0 overflow-hidden",children:(0,d.jsxs)("div",{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary","aria-hidden":"true",children:"speed"}),(0,d.jsx)("h2",{className:"text-lg font-bold",children:"Rate Limiting"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time."}),(0,d.jsxs)("div",{className:"rounded-lg bg-black/5 dark:bg-white/5 p-4 mb-4",children:[(0,d.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider mb-2 text-text-muted",children:"Default Safety Net"}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-lg font-bold",children:b?.requestsPerMinute??"—"}),(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"RPM"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-lg font-bold",children:(c=b?.minTimeBetweenRequests)&&!(c<=0)?c<1e3?`${c}ms`:c<6e4?`${(c/1e3).toFixed(1)}s`:`${(c/6e4).toFixed(1)}m`:"—"}),(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"Min Gap"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-lg font-bold",children:b?.concurrentRequests??"—"}),(0,d.jsx)("div",{className:"text-xs text-text-muted",children:"Max Concurrent"})]})]})]}),a&&a.length>0?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h3",{className:"text-xs font-bold uppercase tracking-wider text-text-muted",children:"Active Limiters"}),a.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg bg-black/5 dark:bg-white/5",children:[(0,d.jsx)("span",{className:"text-sm font-medium",children:a.provider||a.key}),(0,d.jsxs)("div",{className:"flex items-center gap-3 text-xs text-text-muted",children:[null!=a.reservoir&&(0,d.jsxs)("span",{children:["Reservoir: ",a.reservoir]}),null!=a.running&&(0,d.jsxs)("span",{children:["Running: ",a.running]}),null!=a.queued&&(0,d.jsxs)("span",{children:["Queued: ",a.queued]})]})]},b))]}):(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"No active rate limiters yet."})]})})}function N(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(null),l=(0,e.useCallback)(async()=>{try{f(!0);let a=await fetch("/api/resilience");if(!a.ok)throw Error(`Failed to load: ${a.status}`);let c=await a.json();b(c),k(null)}catch(a){k(a.message)}finally{f(!1)}},[]),m=async()=>{try{if(f(!0),!(await fetch("/api/resilience/reset",{method:"POST"})).ok)throw Error("Reset failed");await l()}catch(a){k(a.message)}finally{f(!1)}},n=async a=>{try{if(i(!0),!(await fetch("/api/resilience",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({profiles:a})})).ok)throw Error("Save failed");await l()}catch(a){k(a.message)}finally{i(!1)}};return c&&!a?(0,d.jsxs)("div",{className:"flex items-center justify-center py-12 text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin mr-2",children:"hourglass_empty"}),"Loading resilience status..."]}):j&&!a?(0,d.jsxs)(h.Zp,{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-red-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined",children:"error"}),(0,d.jsx)("span",{className:"text-sm",children:j})]}),(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"refresh",onClick:l,className:"mt-3",children:"Retry"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(K,{breakers:a?.circuitBreakers||[],onReset:m,loading:c}),(0,d.jsx)(L,{profiles:a?.profiles||{},onSave:n,saving:g}),(0,d.jsx)(M,{rateLimitStatus:a?.rateLimitStatus||[],defaults:a?.defaults||{}})]})}let O=[{id:"general",label:"General",icon:"settings"},{id:"ai",label:"AI",icon:"smart_toy"},{id:"security",label:"Security",icon:"shield"},{id:"routing",label:"Routing",icon:"route"},{id:"resilience",label:"Resilience",icon:"electrical_services"},{id:"pricing",label:"Pricing",icon:"payments"},{id:"advanced",label:"Advanced",icon:"tune"},{id:"compliance",label:"Compliance",icon:"policy"}];function P(){let[a,b]=(0,e.useState)("general");return(0,d.jsx)("div",{className:"max-w-2xl mx-auto",children:(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)("div",{role:"tablist","aria-label":"Settings sections",className:"inline-flex items-center p-1 rounded-lg bg-black/5 dark:bg-white/5 self-start",children:O.map(c=>(0,d.jsxs)("button",{role:"tab","aria-selected":a===c.id,tabIndex:a===c.id?0:-1,onClick:()=>b(c.id),className:(0,f.cn)("flex items-center gap-2 px-4 py-2 rounded-md font-medium transition-all text-sm",a===c.id?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]","aria-hidden":"true",children:c.icon}),(0,d.jsx)("span",{className:"hidden sm:inline",children:c.label})]},c.id))}),(0,d.jsxs)("div",{role:"tabpanel","aria-label":O.find(b=>b.id===a)?.label,children:["general"===a&&(0,d.jsx)(d.Fragment,{children:(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(i,{}),(0,d.jsx)(w,{})]})}),"ai"===a&&(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(z,{}),(0,d.jsx)(A,{})]}),"security"===a&&(0,d.jsx)(o,{}),"routing"===a&&(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(s,{}),(0,d.jsx)(t,{})]}),"pricing"===a&&(0,d.jsx)(D,{}),"resilience"===a&&(0,d.jsx)(N,{}),"advanced"===a&&(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(u,{}),(0,d.jsx)(I,{})]}),"compliance"===a&&(0,d.jsx)(H,{})]}),(0,d.jsxs)("div",{className:"text-center text-sm text-text-muted py-4",children:[(0,d.jsxs)("p",{children:[g.vQ.name," v",g.vQ.version]}),(0,d.jsx)("p",{className:"mt-1",children:"Local Mode — All data stored on your machine"})]})]})})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28302:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>C.default,__next_app__:()=>K,handler:()=>M,routeModule:()=>L});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(89125),A=c(86439),B=c(77068),C=c(56037),D=c(61287),E=c(81494),F=c(70722),G=c(70753),H=c(43954),I={};for(let a in D)0>["default","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(I[a]=()=>D[a]);c.d(b,I);let J={children:["",{children:["(dashboard)",{children:["dashboard",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,32215)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/settings/page.js"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,68010)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/layout.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,20651)),"/home/runner/work/OmniRoute/OmniRoute/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.bind(c,56037)),"/home/runner/work/OmniRoute/OmniRoute/src/app/global-error.js"],"not-found":[()=>Promise.resolve().then(c.bind(c,71569)),"/home/runner/work/OmniRoute/OmniRoute/src/app/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:void 0}}]}.children,K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/settings/page",pathname:"/dashboard/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:J},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var I;L.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let N=!!(0,h.getRequestMeta)(a,"minimalMode"),O="/(dashboard)/dashboard/settings/page";"/index"===O&&(O="/");let P=await L.prepare(a,b,{srcPage:O,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,parsedUrl:ae,interceptionRoutePatterns:af,deploymentId:ag}=P,ah=(0,q.normalizeAppPath)(O),{isOnDemandRevalidate:ai}=P,aj=ad.experimental.ppr&&!ad.cacheComponents&&(0,H.isInterceptionRouteAppPath)(aa)?null:L.match(aa,$),ak=!!$.routes[aa],al=a.headers["user-agent"]||"",am=(0,t.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],aq=(0,r.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr);if(!(0,h.getRequestMeta)(a,"postponed")&&ar&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let b=[];for await(let c of a)b.push(c);let c=Buffer.concat(b).toString("utf8");(0,h.addRequestMeta)(a,"postponed",c)}let as=ar&&(null==(I=$.routes[ah]??$.dynamicRoutes[ah])?void 0:I.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?(0,h.getRequestMeta)(a,"postponed"):void 0,aw=as&&ap&&!ao;N&&(aw=aw&&!!av);let ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=(!an||!as)&&(!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots)),az=!!((aj||ak||$.routes[ah])&&!(an&&as)),aA=as&&!0===ad.cacheComponents,aB=!0===L.isDev||!az||"string"==typeof av||(aA&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aw&&!N:aw),aC=an&&as,aD=null;_||!az||aB||aq||av||aw||(aD=aa);let aE=aD;!aE&&L.isDev&&(aE=aa),L.isDev||_||!az||!ap||aw||(0,k.d)(a.headers);let aF={...D,tree:J,GlobalError:C.default,handler:M,routeModule:L,__next_app__:K};X&&Y&&(0,o.setManifestsSingleton)({page:O,clientReferenceManifest:Y,serverActionsManifest:X});let aG=a.method||"GET",aH=(0,g.getTracer)(),aI=aH.getActiveScopeSpan(),aJ=async()=>((null==ac?void 0:ac.render404)?await ac.render404(a,b,ae,!1):b.end("This page could not be found"),null);try{let f=L.getVaryHeader(aa,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aH.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aG} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aG} ${O}`)})},m=(0,h.getRequestMeta)(a,"incrementalCache"),o=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let l={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aF,Component:(0,j.T)(aF),params:S,routeModule:L,page:O,postponed:f,shouldWaitOnAllReady:aC,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||aB,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,setCacheStatus:null==ac?void 0:ac.setCacheStatus,setIsrStatus:null==ac?void 0:ac.setIsrStatus,setReactDebugChannel:null==ac?void 0:ac.setReactDebugChannel,sendErrorsToBrowser:null==ac?void 0:ac.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:_,botType:am,isOnDemandRevalidate:ai,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,images:ad.images,previewProps:$.preview,deploymentId:ag,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:m,cacheLifeProfiles:ad.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...at||au?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:at}:{},cacheComponents:!!ad.cacheComponents,experimental:{isRoutePPREnabled:as,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[],clientParamParsingOrigins:ad.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,B.parseMaxPostponedStateSize)(ad.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>L.onRequestError(a,b,d,e,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}};at&&(l.renderOpts.nextExport=!0,l.renderOpts.supportsDynamicResponse=!1,l.renderOpts.isDebugDynamicAccesses=at),i&&(l.renderOpts.supportsDynamicResponse=!1);let n=await k(e,l),{metadata:o}=n,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=o;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,az&&(null==p?void 0:p.revalidate)===0&&!L.isDev&&!as){let a=o.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:n,headers:q,rscData:o.flightData,postponed:o.postponed,status:o.statusCode,segmentData:o.segmentData},cacheControl:p}},p=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===L.isDev,q=c||b.writableEnded;if(ai&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(k=(0,v.parseFallbackField)(aj.fallback)),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(al)&&(!as||an)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!N&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aE&&!q&&!_&&T&&(l||!ak)){if((l||aj)&&k===v.FallbackMode.NOT_FOUND){if(ad.experimental.adapterPath)return await aJ();throw new A.NoFallbackError}if(as&&(ad.cacheComponents?!aw:!ap)){let b=l&&"string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:ah,c=l&&(null==aj?void 0:aj.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(aj.fallbackRouteParams):au?(0,n.getFallbackRouteParams)(ah,L):null,f=await L.handleResponse({cacheKey:b,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:as,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:c,forceStaticRender:!1}),waitUntil:d.waitUntil,isMinimalMode:N});if(null===f)return null;if(f)return delete f.cacheControl,f}}let r=ai||g||!av?void 0:av;if(aA&&!N&&m&&aw&&!j){let b=await m.get(aa,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,G.scheduleOnNextTick)(async()=>{let b=L.getResponseCache(a);try{await b.revalidate(aa,m,as,!1,a=>p({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(at&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=l&&(null==aj?void 0:aj.fallbackRouteParams)&&(0,h.getRequestMeta)(a,"renderFallbackShell")?(0,n.createOpaqueFallbackRouteParams)(aj.fallbackRouteParams):au?(0,n.getFallbackRouteParams)(ah,L):null;return o({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},q=async c=>{var f,g,i,j,k;let l,m=await L.handleResponse({cacheKey:aD,responseGenerator:a=>p({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil,isMinimalMode:N});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!m){if(aD)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;az&&!aw&&(!n||ao)&&(N||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(av)l={revalidate:0,expire:void 0};else if(aw)l={revalidate:0,expire:void 0};else if(!L.isDev)if(_)l={revalidate:0,expire:void 0};else if(az){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===u.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];N&&az&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aA?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(q.headers){let a={...q.headers};for(let[c,d]of(N&&az||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=q.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(N&&az&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!q.status||ap&&as||(b.statusCode=q.status),!N&&q.status&&E.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),n&&!aw&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ad.cacheComponents)return b.statusCode=404,(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new F.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:w.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=q.html;if(!n||N||ap)return(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:v,cacheControl:m.cacheControl});if(at)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let A=new TransformStream;return v.push(A.readable),o({span:c,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(A.writable)}).catch(a=>{A.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,z.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aI)return await aH.withPropagatedContext(a.headers,()=>aH.trace(i.BaseServerSpan.handleRequest,{spanName:`${aG} ${O}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aG,"http.target":a.url}},q));await q(aI)}catch(b){throw b instanceof A.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:O,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:az,isOnDemandRevalidate:ai})},!1,ac),b}}},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32215:(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 \"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/settings/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.")},"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/settings/page.js","default")},33873:a=>{"use strict";a.exports=require("path")},39080:(a,b,c)=>{Promise.resolve().then(c.bind(c,32215))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,595,8020,1969,4822,867,8108,21,481,5640,3676,4755,152],()=>b(b.s=28302));module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../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/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../node_modules/next/dist/compiled/bytes/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/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.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/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/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/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/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/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.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-extensions/fast-set-immediate.external.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/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/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1362.js","../../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../../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/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../node_modules/next/dist/compiled/bytes/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/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.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/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/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/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/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/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.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-extensions/fast-set-immediate.external.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/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/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1362.js","../../../../chunks/152.js","../../../../chunks/1969.js","../../../../chunks/21.js","../../../../chunks/3676.js","../../../../chunks/4741.js","../../../../chunks/4755.js","../../../../chunks/481.js","../../../../chunks/4822.js","../../../../chunks/5640.js","../../../../chunks/595.js","../../../../chunks/6599.js","../../../../chunks/8020.js","../../../../chunks/8108.js","../../../../chunks/867.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
|