omniroute 1.4.5 → 1.4.9
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 +90 -8
- package/README.pt-BR.md +1 -0
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +26 -26
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -676
- package/app/.next/required-server-files.json +4 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +4 -4
- 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 +1 -1
- 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/costs/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/costs/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/health/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/logs/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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +3 -3
- 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 +1 -1
- 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 +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 +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- 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 +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +1 -1
- 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/api/auth/login/route.js +1 -1
- 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/auth/status/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- 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/cli-tools/status/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/status/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.js.nft.json +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.js.nft.json +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route.js +1 -1
- package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/logs/console/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_client-reference-manifest.js +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/monitoring/health/route.js +1 -1
- package/app/.next/server/app/api/monitoring/health/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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
- 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-metrics/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_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_client-reference-manifest.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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
- 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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/token-health/route_client-reference-manifest.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_client-reference-manifest.js +1 -1
- 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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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_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 -1
- 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 -1
- 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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/v1/moderations/route.js +1 -1
- 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 +1 -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 +1 -1
- 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/docs/page.js +1 -1
- 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/forbidden/page.js +2 -2
- package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page.js +2 -2
- package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page.js +1 -1
- 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/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/page.js +1 -1
- 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 +1 -1
- 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/terms/page.js +1 -1
- 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-paths-manifest.json +26 -26
- package/app/.next/server/chunks/1259.js +2 -0
- package/app/.next/server/chunks/1960.js +1 -0
- package/app/.next/server/chunks/1990.js +1 -0
- package/app/.next/server/chunks/2767.js +2 -2
- package/app/.next/server/chunks/2901.js +2 -2
- package/app/.next/server/chunks/3447.js +1 -1
- package/app/.next/server/chunks/3498.js +39 -0
- package/app/.next/server/chunks/3596.js +1 -1
- package/app/.next/server/chunks/3699.js +1 -1
- package/app/.next/server/chunks/{1079.js → 3875.js} +3 -1
- package/app/.next/server/chunks/4509.js +1 -0
- package/app/.next/server/chunks/5248.js +1 -1
- package/app/.next/server/chunks/5573.js +1 -1
- package/app/.next/server/chunks/7544.js +1 -1
- package/app/.next/server/chunks/7669.js +1 -3
- package/app/.next/server/chunks/8020.js +1 -1
- package/app/.next/server/chunks/9340.js +1 -0
- package/app/.next/server/chunks/9342.js +1 -1
- package/app/.next/server/chunks/9824.js +3 -3
- package/app/.next/server/instrumentation.js +1 -1
- package/app/.next/server/middleware.js +1 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/pages-manifest.json +0 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/3418-66271bd83bd2e66a.js +3 -0
- package/app/.next/static/chunks/5846-756d72eb0e01a60c.js +2 -0
- package/app/.next/static/chunks/{1149-fefe7f95f0e9842f.js → 6458-085536744d592424.js} +1 -1
- package/app/.next/static/chunks/993-961f6e199b93539a.js +21 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-3fcbbdb2221f0b0c.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-d806e4f28c15636a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-27bc511cf3930e1e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-918d5f38d5cdbbc2.js → page-012be9f38cda4c4a.js} +4 -4
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-ede2315b6918315e.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-f256689b8410bd74.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-6e4f3ca7ac9778be.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-8725f1a181e558a3.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-a5a48afa8c125ada.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-6ee69634597daee0.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-931fa0c45dca76c9.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-04bc41f9e9de17ef.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-62c6fceede3a5549.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-2dc2a865e90681dd.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-ac85ce5066cd9044.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-88cac9e6f2fbe335.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-77158451270c1852.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-75c8b38a55e13042.js +4 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-51a813eac9d71eed.js → page-f0809c7842e4f5b4.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/layout-b23c2c5427e04dcf.js +1 -0
- package/app/.next/static/chunks/app/callback/page-e439cd5a287000d8.js +1 -0
- package/app/.next/static/chunks/app/forbidden/page-4a39fedc08aaaf55.js +1 -0
- package/app/.next/static/chunks/app/forgot-password/page-057ea91c6f140e0b.js +1 -0
- package/app/.next/static/chunks/app/layout-108592eafb959363.js +1 -0
- package/app/.next/static/chunks/app/login/page-c1d7bfab91a7877c.js +1 -0
- package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/app/package.json +2 -1
- package/app/server.js +1 -1
- package/package.json +2 -1
- package/app/.next/server/app/_not-found.html +0 -1
- package/app/.next/server/app/_not-found.meta +0 -16
- package/app/.next/server/app/_not-found.rsc +0 -23
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +0 -23
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -4
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/callback.html +0 -1
- package/app/.next/server/app/callback.meta +0 -15
- package/app/.next/server/app/callback.rsc +0 -24
- package/app/.next/server/app/callback.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/callback.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/callback.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/callback.segments/callback.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/analytics.html +0 -2
- package/app/.next/server/app/dashboard/analytics.meta +0 -17
- package/app/.next/server/app/dashboard/analytics.rsc +0 -26
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +0 -26
- package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/api-manager.html +0 -1
- package/app/.next/server/app/dashboard/api-manager.meta +0 -17
- package/app/.next/server/app/dashboard/api-manager.rsc +0 -22
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/api-manager.segments/_full.segment.rsc +0 -22
- package/app/.next/server/app/dashboard/api-manager.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/api-manager.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/api-manager.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/audit-log.html +0 -1
- package/app/.next/server/app/dashboard/audit-log.meta +0 -17
- package/app/.next/server/app/dashboard/audit-log.rsc +0 -25
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/audit-log.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/audit-log.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/audit-log.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/audit-log.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/cli-tools.html +0 -1
- package/app/.next/server/app/dashboard/cli-tools.meta +0 -17
- package/app/.next/server/app/dashboard/cli-tools.rsc +0 -23
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +0 -23
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/combos.html +0 -1
- package/app/.next/server/app/dashboard/combos.meta +0 -17
- package/app/.next/server/app/dashboard/combos.rsc +0 -25
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/costs.html +0 -1
- package/app/.next/server/app/dashboard/costs.meta +0 -17
- package/app/.next/server/app/dashboard/costs.rsc +0 -25
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/endpoint.html +0 -1
- package/app/.next/server/app/dashboard/endpoint.meta +0 -17
- package/app/.next/server/app/dashboard/endpoint.rsc +0 -23
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +0 -23
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/health.html +0 -1
- package/app/.next/server/app/dashboard/health.meta +0 -17
- package/app/.next/server/app/dashboard/health.rsc +0 -25
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/limits.html +0 -2
- package/app/.next/server/app/dashboard/limits.meta +0 -17
- package/app/.next/server/app/dashboard/limits.rsc +0 -25
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/logs.html +0 -1
- package/app/.next/server/app/dashboard/logs.meta +0 -17
- package/app/.next/server/app/dashboard/logs.rsc +0 -25
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/logs.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/logs.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/logs.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/logs.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/onboarding.html +0 -1
- package/app/.next/server/app/dashboard/onboarding.meta +0 -17
- package/app/.next/server/app/dashboard/onboarding.rsc +0 -25
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/profile.html +0 -1
- package/app/.next/server/app/dashboard/profile.meta +0 -19
- package/app/.next/server/app/dashboard/profile.rsc +0 -22
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +0 -22
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers/new.html +0 -2
- package/app/.next/server/app/dashboard/providers/new.meta +0 -18
- package/app/.next/server/app/dashboard/providers/new.rsc +0 -27
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers.html +0 -2
- package/app/.next/server/app/dashboard/providers.meta +0 -17
- package/app/.next/server/app/dashboard/providers.rsc +0 -27
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings/pricing.html +0 -2
- package/app/.next/server/app/dashboard/settings/pricing.meta +0 -18
- package/app/.next/server/app/dashboard/settings/pricing.rsc +0 -27
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings.html +0 -1
- package/app/.next/server/app/dashboard/settings.meta +0 -17
- package/app/.next/server/app/dashboard/settings.rsc +0 -27
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +0 -27
- package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/translator.html +0 -19
- package/app/.next/server/app/dashboard/translator.meta +0 -17
- package/app/.next/server/app/dashboard/translator.rsc +0 -22
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +0 -22
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/usage.html +0 -1
- package/app/.next/server/app/dashboard/usage.meta +0 -17
- package/app/.next/server/app/dashboard/usage.rsc +0 -25
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -4
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -5
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +0 -25
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/docs.html +0 -1
- package/app/.next/server/app/docs.meta +0 -15
- package/app/.next/server/app/docs.rsc +0 -88
- package/app/.next/server/app/docs.segments/_full.segment.rsc +0 -88
- package/app/.next/server/app/docs.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/docs.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/docs.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +0 -67
- package/app/.next/server/app/docs.segments/docs.segment.rsc +0 -4
- package/app/.next/server/app/forbidden.html +0 -1
- package/app/.next/server/app/forbidden.meta +0 -15
- package/app/.next/server/app/forbidden.rsc +0 -24
- package/app/.next/server/app/forbidden.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/forbidden.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/forbidden.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +0 -4
- package/app/.next/server/app/forgot-password.html +0 -1
- package/app/.next/server/app/forgot-password.meta +0 -15
- package/app/.next/server/app/forgot-password.rsc +0 -24
- package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +0 -4
- package/app/.next/server/app/index.html +0 -1
- package/app/.next/server/app/index.meta +0 -16
- package/app/.next/server/app/index.rsc +0 -21
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -6
- package/app/.next/server/app/index.segments/_full.segment.rsc +0 -21
- package/app/.next/server/app/index.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/index.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/index.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/landing.html +0 -1
- package/app/.next/server/app/landing.meta +0 -15
- package/app/.next/server/app/landing.rsc +0 -24
- package/app/.next/server/app/landing.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/landing.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/landing.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/landing.segments/landing.segment.rsc +0 -4
- package/app/.next/server/app/login.html +0 -1
- package/app/.next/server/app/login.meta +0 -15
- package/app/.next/server/app/login.rsc +0 -24
- package/app/.next/server/app/login.segments/_full.segment.rsc +0 -24
- package/app/.next/server/app/login.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/login.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/login.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +0 -9
- package/app/.next/server/app/login.segments/login.segment.rsc +0 -4
- package/app/.next/server/app/privacy.html +0 -1
- package/app/.next/server/app/privacy.meta +0 -15
- package/app/.next/server/app/privacy.rsc +0 -28
- package/app/.next/server/app/privacy.segments/_full.segment.rsc +0 -28
- package/app/.next/server/app/privacy.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/privacy.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/privacy.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +0 -11
- package/app/.next/server/app/privacy.segments/privacy.segment.rsc +0 -4
- package/app/.next/server/app/terms.html +0 -1
- package/app/.next/server/app/terms.meta +0 -15
- package/app/.next/server/app/terms.rsc +0 -29
- package/app/.next/server/app/terms.segments/_full.segment.rsc +0 -29
- package/app/.next/server/app/terms.segments/_head.segment.rsc +0 -6
- package/app/.next/server/app/terms.segments/_index.segment.rsc +0 -10
- package/app/.next/server/app/terms.segments/_tree.segment.rsc +0 -5
- package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +0 -7
- package/app/.next/server/app/terms.segments/terms.segment.rsc +0 -4
- package/app/.next/server/chunks/2760.js +0 -1
- package/app/.next/server/chunks/438.js +0 -1
- package/app/.next/server/chunks/9723.js +0 -37
- package/app/.next/server/chunks/9979.js +0 -2
- package/app/.next/server/pages/404.html +0 -1
- package/app/.next/static/chunks/5846-8a4d88e4bc5e07f6.js +0 -2
- package/app/.next/static/chunks/993-4cb24412f8681dc9.js +0 -21
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-f8b57e41a1b6fce6.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-10e24238da560d00.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/audit-log/page-c37f849e39b1bf02.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-f017a1a13b450ed3.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-9495b294cfe54d73.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-90f0a2f2cfc02a76.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-58ea3e55f475ea7b.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-2a3cd7fd5ca34713.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-88e667cb7ae99420.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/onboarding/page-19072ecdea202e4e.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/page-d2651dc387e7fdfd.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-56e8174ce9caec1b.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-200bed170f9ee2b0.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-7fec684a49291104.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-06d076294b449efb.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-1b3f14c99d3edf09.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-775e1506821cac94.js +0 -4
- package/app/.next/static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js +0 -1
- package/app/.next/static/chunks/app/callback/page-5c58a06902dd94ed.js +0 -1
- package/app/.next/static/chunks/app/forbidden/page-86b6392f80a3ff69.js +0 -1
- package/app/.next/static/chunks/app/forgot-password/page-373672767bb0aae4.js +0 -1
- package/app/.next/static/chunks/app/layout-3375493e8f9133db.js +0 -1
- package/app/.next/static/chunks/app/login/page-ca4dde4376ccd169.js +0 -1
- /package/app/.next/static/{5wRmzcux4mm_n3yTB8RLl → oaQaCPrOo77oe3OAEMAe-}/_buildManifest.js +0 -0
- /package/app/.next/static/{5wRmzcux4mm_n3yTB8RLl → oaQaCPrOo77oe3OAEMAe-}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8978],{53701:(e,s,a)=>{"use strict";a.r(s),a.d(s,{default:()=>o});var l=a(95155),n=a(12115),r=a(40993),i=a(50910),c=a(67671);let d=[{name:"contains",label:"Contains",icon:"search",color:"text-sky-400",bg:"bg-sky-500/10",description:"Checks if the response contains a specific text (case-insensitive)"},{name:"exact",label:"Exact Match",icon:"check_circle",color:"text-emerald-400",bg:"bg-emerald-500/10",description:"Response must be an exact character-for-character match"},{name:"regex",label:"Regex Pattern",icon:"code",color:"text-amber-400",bg:"bg-amber-500/10",description:"Matches response against a regular expression pattern"},{name:"custom",label:"Custom Function",icon:"tune",color:"text-violet-400",bg:"bg-violet-500/10",description:"Uses a custom function for advanced evaluation logic"}];function x(){let e=(0,i.c)("usage"),[s,a]=(0,n.useState)([]),[x,o]=(0,n.useState)(null),[p,u]=(0,n.useState)(!0),[h,g]=(0,n.useState)(null),[f,b]=(0,n.useState)({current:0,total:0}),[j,v]=(0,n.useState)({}),[N,y]=(0,n.useState)(""),[k,w]=(0,n.useState)(null),[C,S]=(0,n.useState)(!1),R=(0,c.i)(),$=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/evals");if(e.ok){let s=await e.json();a(Array.isArray(s)?s:s.suites||[])}}catch{}finally{u(!1)}},[]),E=(0,n.useCallback)(async()=>{try{let e=await fetch("/api/keys");if(!e.ok)return;let s=await e.json(),a=s?.keys?.[0]?.key||null;o(a)}catch{}},[]);(0,n.useEffect)(()=>{$(),E()},[$,E]);let L=async e=>{try{let s={"Content-Type":"application/json"};x&&(s.Authorization=`Bearer ${x}`);let a=await fetch("/v1/chat/completions",{method:"POST",headers:s,body:JSON.stringify({model:e.model||"gpt-4o",messages:e.input?.messages||[],max_tokens:512,stream:!1})});if(!a.ok)return`[ERROR: HTTP ${a.status}]`;let l=await a.json();return l.choices?.[0]?.message?.content||"[No content returned]"}catch(e){return`[ERROR: ${e.message}]`}},M=async e=>{let s=e.cases||[];if(0===s.length)return void R.warning("No test cases defined for this suite");g(e.id),b({current:0,total:s.length});try{let a={};for(let e=0;e<s.length;e++){b({current:e+1,total:s.length});let l=await L(s[e]);a[s[e].id]=l}let l=await fetch("/api/evals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({suiteId:e.id,outputs:a})}),n=await l.json();if(v(s=>({...s,[e.id]:n})),n.summary){let{passed:s,failed:a,total:l}=n.summary;0===a?R.success(`All ${l} cases passed ✅`,`Eval: ${e.name}`):R.warning(`${s}/${l} passed, ${a} failed`,`Eval: ${e.name}`)}w(e.id)}catch{R.error("Eval run failed")}finally{g(null),b({current:0,total:0})}},T=s.filter(e=>!N||e.name?.toLowerCase().includes(N.toLowerCase())||e.id?.toLowerCase().includes(N.toLowerCase())),_=s.reduce((e,s)=>e+(s.cases?.length||s.caseCount||0),0),O=[...new Set(s.flatMap(e=>(e.cases||[]).map(e=>e.model)).filter(Boolean))];if(p)return(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted p-8 animate-pulse",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"science"}),"Loading eval suites..."]});if(0===s.length)return(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,l.jsx)(m,{}),(0,l.jsx)(r.pp,{icon:"science",title:"No Eval Suites Found",description:"Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions."})]});let P=[{key:"caseName",label:"Case"},{key:"status",label:"Status"},{key:"durationMs",label:"Latency"},{key:"details",label:"Details"}];return(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,l.jsx)(m,{}),(0,l.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[(0,l.jsxs)(r.Zp,{className:"px-4 py-3 text-center",children:[(0,l.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Suites"}),(0,l.jsx)("div",{className:"text-2xl font-bold mt-1 text-violet-400",children:s.length})]}),(0,l.jsxs)(r.Zp,{className:"px-4 py-3 text-center",children:[(0,l.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Test Cases"}),(0,l.jsx)("div",{className:"text-2xl font-bold mt-1 text-sky-400",children:_})]}),(0,l.jsxs)(r.Zp,{className:"px-4 py-3 text-center",children:[(0,l.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Models"}),(0,l.jsx)("div",{className:"text-2xl font-bold mt-1 text-emerald-400",children:O.length})]}),(0,l.jsxs)(r.Zp,{className:"px-4 py-3 text-center",children:[(0,l.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Coverage"}),(0,l.jsxs)("div",{className:"text-2xl font-bold mt-1 text-amber-400",children:[d.length," strategies"]})]})]}),(0,l.jsxs)(r.Zp,{className:"p-0 overflow-hidden",children:[(0,l.jsxs)("button",{onClick:()=>S(!C),className:"w-full flex items-center justify-between px-6 py-4 hover:bg-surface/30 transition-colors text-left",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"p-2 rounded-lg bg-primary/10 text-primary",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"help"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"How It Works"}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Learn how evaluations validate your LLM responses"})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted transition-transform duration-200 ${C?"rotate-180":""}`,children:"expand_more"})]}),C&&(0,l.jsxs)("div",{className:"px-6 pb-6 border-t border-border/10",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4",children:[(0,l.jsxs)("div",{className:"flex flex-col items-center text-center p-4 rounded-lg bg-violet-500/5 border border-violet-500/10",children:[(0,l.jsx)("div",{className:"w-10 h-10 rounded-full bg-violet-500/20 flex items-center justify-center mb-3",children:(0,l.jsx)("span",{className:"text-lg font-bold text-violet-400",children:"1"})}),(0,l.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:e(">define</")}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match."})]}),(0,l.jsxs)("div",{className:"flex flex-col items-center text-center p-4 rounded-lg bg-sky-500/5 border border-sky-500/10",children:[(0,l.jsx)("div",{className:"w-10 h-10 rounded-full bg-sky-500/20 flex items-center justify-center mb-3",children:(0,l.jsx)("span",{className:"text-lg font-bold text-sky-400",children:"2"})}),(0,l.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:e(">run</")}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request."})]}),(0,l.jsxs)("div",{className:"flex flex-col items-center text-center p-4 rounded-lg bg-emerald-500/5 border border-emerald-500/10",children:[(0,l.jsx)("div",{className:"w-10 h-10 rounded-full bg-emerald-500/20 flex items-center justify-center mb-3",children:(0,l.jsx)("span",{className:"text-lg font-bold text-emerald-400",children:"3"})}),(0,l.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:e(">evaluate</")}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback."})]})]}),(0,l.jsxs)("div",{className:"mt-6",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide mb-3",children:"Evaluation Strategies"}),(0,l.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2",children:d.map(e=>(0,l.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg ${e.bg} border border-transparent`,children:[(0,l.jsx)("span",{className:`material-symbols-outlined text-[18px] ${e.color}`,children:e.icon}),(0,l.jsxs)("div",{children:[(0,l.jsx)("span",{className:`text-xs font-mono font-semibold ${e.color}`,children:e.name}),(0,l.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:e.description})]})]},e.name))})]}),O.length>0&&(0,l.jsxs)("div",{className:"mt-6",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide mb-3",children:"Models Under Test"}),(0,l.jsx)("div",{className:"flex flex-wrap gap-2",children:O.map(e=>(0,l.jsx)("span",{className:"px-3 py-1.5 rounded-full text-xs font-mono font-medium bg-primary/10 text-primary border border-primary/20",children:e},e))})]})]})]}),(0,l.jsxs)(r.Zp,{className:"p-6",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,l.jsx)("div",{className:"p-2 rounded-lg bg-violet-500/10 text-violet-500",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"science"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-lg font-semibold",children:e("evalSuites")}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Click a suite to view test cases, then run to evaluate your LLM endpoints"})]})]}),(0,l.jsx)(r.Qn,{searchValue:N,onSearchChange:y,placeholder:"Search suites...",filters:[],activeFilters:{},onFilterChange:()=>{},children:null}),(0,l.jsx)("div",{className:"flex flex-col gap-3 mt-4",children:T.map(e=>{let s=j[e.id],a=h===e.id,n=k===e.id,i=e.cases?.length||e.caseCount||0,c=[...new Set((e.cases||[]).map(e=>e.model).filter(Boolean))];return(0,l.jsxs)("div",{className:"border border-border/30 rounded-lg overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-surface/30 transition-colors",onClick:()=>w(n?null:e.id),children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:n?"expand_more":"chevron_right"}),(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("p",{className:"text-sm font-medium text-text-main",children:e.name||e.id}),s?.summary&&(0,l.jsxs)("span",{className:`px-2 py-0.5 rounded-full text-xs font-semibold ${100===s.summary.passRate?"bg-emerald-500/10 text-emerald-400":s.summary.passRate>=80?"bg-amber-500/10 text-amber-400":"bg-red-500/10 text-red-400"}`,children:[s.summary.passRate,"% pass"]})]}),(0,l.jsxs)("p",{className:"text-xs text-text-muted",children:[i," case",1!==i?"s":"",e.description&&(0,l.jsxs)("span",{className:"ml-1",children:["— ",e.description]})]}),c.length>0&&(0,l.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:c.map(e=>(0,l.jsx)("span",{className:"px-1.5 py-0.5 rounded text-[10px] font-mono text-text-muted bg-black/5 dark:bg-white/5",children:e},e))})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[a&&f.total>0&&(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("div",{className:"w-24 h-1.5 bg-black/10 dark:bg-white/10 rounded-full overflow-hidden",children:(0,l.jsx)("div",{className:"h-full bg-violet-500 rounded-full transition-all duration-300",style:{width:`${f.current/f.total*100}%`}})}),(0,l.jsxs)("span",{className:"text-xs text-text-muted font-mono tabular-nums",children:[f.current,"/",f.total]})]}),(0,l.jsx)(r.$n,{size:"sm",variant:"primary",onClick:s=>{s.stopPropagation(),M(e)},loading:a,disabled:a,children:a?`Running ${f.current}/${f.total}...`:"Run Eval"})]})]}),n&&(0,l.jsx)("div",{className:"border-t border-border/20 p-4",children:s?.results?(0,l.jsxs)(l.Fragment,{children:[s.summary&&(0,l.jsxs)("div",{className:"flex items-center gap-4 mb-4 p-3 rounded-lg bg-surface/30 border border-border/20",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)("span",{className:`text-lg font-bold ${100===s.summary.passRate?"text-emerald-400":s.summary.passRate>=80?"text-amber-400":"text-red-400"}`,children:[s.summary.passRate,"%"]}),(0,l.jsx)("span",{className:"text-xs text-text-muted",children:"pass rate"})]}),(0,l.jsxs)("div",{className:"text-xs text-text-muted",children:[s.summary.passed," passed \xb7 ",s.summary.failed," ","failed \xb7 ",s.summary.total," total"]}),(0,l.jsx)("div",{className:"flex-1 h-2 bg-black/10 dark:bg-white/10 rounded-full overflow-hidden",children:(0,l.jsx)("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${s.summary.passRate}%`,background:100===s.summary.passRate?"linear-gradient(90deg, #22c55e, #16a34a)":s.summary.passRate>=80?"linear-gradient(90deg, #f59e0b, #d97706)":"linear-gradient(90deg, #ef4444, #dc2626)"}})})]}),(0,l.jsx)(r.bQ,{columns:P,data:s.results.map((e,s)=>({...e,id:e.caseId||s})),renderCell:(e,s)=>{if("status"===s.key)return e.passed?(0,l.jsx)("span",{className:"text-emerald-400",children:"✅ Passed"}):(0,l.jsx)("span",{className:"text-red-400",children:"❌ Failed"});if("durationMs"===s.key)return(0,l.jsx)("span",{className:"text-text-muted text-xs font-mono",children:null!=e.durationMs?`${e.durationMs}ms`:"—"});if("details"===s.key){let s=e.details||{};return(0,l.jsx)("span",{className:"text-text-muted text-xs truncate max-w-[300px] block",children:String(s.searchTerm?`Contains: "${s.searchTerm}"`:s.pattern?`Regex: ${s.pattern}`:s.expected?`Expected: "${String(s.expected).slice(0,50)}"`:e.error||"—")})}return(0,l.jsx)("span",{className:"text-sm text-text-main",children:e[s.key]||"—"})},maxHeight:"400px",emptyMessage:"No results yet"})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:"checklist"}),(0,l.jsxs)("span",{className:"text-xs text-text-muted font-medium",children:["Test Cases (",(e.cases||[]).length,")"]})]}),(0,l.jsx)(r.bQ,{columns:[{key:"name",label:"Case"},{key:"model",label:"Model"},{key:"strategy",label:"Strategy"},{key:"expected",label:"Expected"}],data:(e.cases||[]).map((e,s)=>({id:e.id||s,name:e.name,model:e.model||"—",strategy:e.expected?.strategy||"—",expected:e.expected?.value?String(e.expected.value).slice(0,80):"—"})),renderCell:(e,s)=>{if("strategy"===s.key){let s=d.find(s=>s.name===e.strategy);return(0,l.jsx)("span",{className:`text-xs font-mono font-semibold ${s?.color||"text-text-muted"}`,children:e.strategy})}return"model"===s.key?(0,l.jsx)("span",{className:"text-xs font-mono text-primary/80",children:e.model}):"expected"===s.key?(0,l.jsx)("span",{className:"text-text-muted text-xs font-mono truncate max-w-[300px] block",children:e.expected}):(0,l.jsx)("span",{className:"text-sm text-text-main",children:e[s.key]||"—"})},maxHeight:"400px",emptyMessage:"No test cases defined"}),(0,l.jsxs)("p",{className:"text-xs text-text-muted mt-3 flex items-center gap-1.5",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"info"}),'Click "Run Eval" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.']})]})})]},e.id)})})]})]})}function m(){return(0,l.jsx)(r.Zp,{className:"p-0 overflow-hidden",children:(0,l.jsx)("div",{className:"p-6",style:{background:"linear-gradient(135deg, rgba(139, 92, 246, 0.05) 0%, rgba(59, 130, 246, 0.05) 50%, rgba(16, 185, 129, 0.05) 100%)"},children:(0,l.jsxs)("div",{className:"flex items-start gap-4",children:[(0,l.jsx)("div",{className:"p-3 rounded-xl bg-violet-500/10 text-violet-500",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[28px]",children:"science"})}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("h2",{className:"text-xl font-bold text-text-main mb-1",children:t("modelEvals")}),(0,l.jsx)("p",{className:"text-sm text-text-muted leading-relaxed max-w-2xl",children:"Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers."}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mt-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px] text-emerald-400",children:"verified"}),"Quality Validation"]}),(0,l.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px] text-sky-400",children:"compare"}),"Model Comparison"]}),(0,l.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-400",children:"bug_report"}),"Regression Detection"]}),(0,l.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px] text-violet-400",children:"speed"}),"Latency Benchmarks"]})]})]})]})})})}function o(){let[e,s]=(0,n.useState)("overview"),a=(0,i.c)("analytics"),c={overview:a("overviewDescription"),evals:a("evalsDescription")};return(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-primary text-[28px]",children:"analytics"}),a("title")]}),(0,l.jsx)("p",{className:"text-sm text-text-muted mt-1",children:c[e]})]}),(0,l.jsx)(r.Iz,{options:[{value:"overview",label:a("overview")},{value:"evals",label:a("evals")}],value:e,onChange:s}),"overview"===e&&(0,l.jsx)(n.Suspense,{fallback:(0,l.jsx)(r.Qv,{}),children:(0,l.jsx)(r.cn,{})}),"evals"===e&&(0,l.jsx)(x,{})]})}},69589:(e,s,a)=>{Promise.resolve().then(a.bind(a,53701))}},e=>{e.O(0,[3418,8500,9751,782,6458,5846,993,8441,3794,7358],()=>e(e.s=69589)),_N_E=e.O()}]);
|
package/app/.next/static/chunks/app/(dashboard)/dashboard/api-manager/page-d806e4f28c15636a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2888],{42712:(e,t,s)=>{"use strict";s.d(t,{default:()=>c});var l=s(95155),a=s(12115),r=s(40993),i=s(30949),n=s(50910);function c(){let e=(0,n.c)("apiManager"),t=(0,n.c)("common"),[s,c]=(0,a.useState)([]),[o,x]=(0,a.useState)([]),[m,h]=(0,a.useState)(!0),[p,u]=(0,a.useState)(!1),[g,j]=(0,a.useState)(""),[b,y]=(0,a.useState)(null),[f,N]=(0,a.useState)(null),[v,k]=(0,a.useState)(!1),[w,C]=(0,a.useState)(""),[S,_]=(0,a.useState)(null),[$,M]=(0,a.useState)(!1),[A,D]=(0,a.useState)({}),{copied:E,copy:K}=(0,i.C)();(0,a.useEffect)(()=>{O(),F()},[]);let F=async()=>{try{let e=await fetch("/v1/models");if(e.ok){let t=await e.json();x(t.data||[])}}catch(e){console.log("Error fetching models:",e)}},O=async()=>{try{let e=await fetch("/api/keys");if(e.ok){let t=await e.json();c(t.keys||[]),T(t.keys||[])}}catch(e){console.log("Error fetching keys:",e)}finally{h(!1)}},T=async e=>{if(0!==e.length)try{let t=await fetch("/api/usage/call-logs?limit=1000");if(!t.ok)return;let s=await t.json(),l={};for(let t of e){let e=(s||[]).filter(e=>e.apiKeyId===t.id||e.apiKeyName===t.name);l[t.id]={totalRequests:e.length,lastUsed:e.length>0?e.sort((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime())[0]?.timestamp:null}}D(l)}catch(e){console.log("Error fetching usage stats:",e)}},P=(0,a.useCallback)(()=>_(null),[]),R=async()=>{let e=g.replace(/[<>]/g,"").replace(/"/g,"").replace(/'/g,"").trim().slice(0,100),t=e&&e.trim()?e.length>100?{valid:!1,error:"Key name must be 100 characters or less"}:/^[a-zA-Z0-9_\-\s]+$/.test(e)?{valid:!0}:{valid:!1,error:"Key name can only contain letters, numbers, spaces, hyphens, and underscores"}:{valid:!1,error:"Key name is required"};if(!t.valid)return void _(t.error||"Invalid key name");M(!0),P();try{let t=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e})}),s=await t.json();t.ok?(y(s.key),await O(),j(""),u(!1)):_(s.error||"Failed to create key")}catch(e){console.error("Error creating key:",e),_("Failed to create key. Please try again.")}finally{M(!1)}},Z=async t=>{if(!t||"string"!=typeof t||!/^[a-zA-Z0-9_-]+$/.test(t))return void _("Invalid key ID");if(confirm(e("deleteConfirm"))){M(!0),P();try{let e=await fetch(`/api/keys/${encodeURIComponent(t)}`,{method:"DELETE"});if(e.ok)c(e=>e.filter(e=>e.id!==t));else{let t=await e.json();_(t.error||"Failed to delete key")}}catch(e){console.error("Error deleting key:",e),_("Failed to delete key. Please try again.")}finally{M(!1)}}},z=e=>{e&&e.id&&(N(e),k(!0))},I=async e=>{if(!f||!f.id)return;if(!Array.isArray(e))return void _("Invalid models selection");if(e.length>500)return void _("Cannot select more than 500 models");let t=e.filter(e=>"string"==typeof e&&e.length>0&&e.length<200);M(!0),P();try{let e=await fetch(`/api/keys/${encodeURIComponent(f.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({allowedModels:t})});if(e.ok)await O(),k(!1),N(null);else{let t=await e.json();_(t.error||"Failed to update permissions")}}catch(e){console.error("Error updating permissions:",e),_("Failed to update permissions. Please try again.")}finally{M(!1)}},L=function(e,t){let[s,l]=(0,a.useState)(e);return(0,a.useEffect)(()=>{let t=setTimeout(()=>l(e),150);return()=>clearTimeout(t)},[e,150]),s}(w,0),q=(0,a.useMemo)(()=>{let e={};for(let t of o){let s=t.owned_by||"unknown";e[s]||(e[s]=[]),e[s].push(t)}return Object.entries(e).sort((e,t)=>e[0].localeCompare(t[0]))},[o]),U=(0,a.useMemo)(()=>{if(!L.trim())return q;let e=L.toLowerCase();return q.map(([t,s])=>[t,s.filter(s=>s.id.toLowerCase().includes(e)||t.toLowerCase().includes(e))]).filter(([,e])=>e.length>0)},[q,L]);return m?(0,l.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,l.jsx)(r.Qv,{}),(0,l.jsx)(r.Qv,{})]}):(0,l.jsxs)("div",{className:"flex flex-col gap-8",children:[S&&(0,l.jsxs)("div",{className:"flex items-center gap-3 p-4 bg-red-500/10 border border-red-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-red-500",children:"error"}),(0,l.jsx)("p",{className:"text-sm text-red-700 dark:text-red-300 flex-1",children:S}),(0,l.jsx)("button",{onClick:P,className:"text-red-500 hover:text-red-700 transition-colors",children:(0,l.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),s.length>0&&(0,l.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[(0,l.jsx)(r.Zp,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"flex items-center justify-center size-9 rounded-lg bg-primary/10",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-primary text-lg",children:"vpn_key"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-2xl font-bold",children:s.length}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:e("totalKeys")})]})]})}),(0,l.jsx)(r.Zp,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"flex items-center justify-center size-9 rounded-lg bg-amber-500/10",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-amber-500 text-lg",children:"lock"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-2xl font-bold",children:s.filter(e=>Array.isArray(e.allowedModels)&&e.allowedModels.length>0).length}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:e("restricted")})]})]})}),(0,l.jsx)(r.Zp,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"flex items-center justify-center size-9 rounded-lg bg-blue-500/10",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-blue-500 text-lg",children:"bar_chart"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-2xl font-bold",children:Object.values(A).reduce((e,t)=>e+t.totalRequests,0)}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:e("totalRequests")})]})]})}),(0,l.jsx)(r.Zp,{className:"p-4",children:(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"flex items-center justify-center size-9 rounded-lg bg-emerald-500/10",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-emerald-500 text-lg",children:"model_training"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-2xl font-bold",children:o.length}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:e("modelsAvailable")})]})]})})]}),(0,l.jsx)(r.Zp,{children:(0,l.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h2",{className:"text-lg font-semibold",children:e("keyManagement")}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:e("keyManagementDesc")})]}),(0,l.jsx)(r.$n,{icon:"add",onClick:()=>u(!0),children:e("createKey")})]})}),(0,l.jsxs)(r.Zp,{children:[(0,l.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"flex items-center justify-center size-10 rounded-lg bg-amber-500/10 shrink-0",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-xl text-amber-500",children:"vpn_key"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"font-semibold",children:e("registeredKeys")}),(0,l.jsxs)("p",{className:"text-xs text-text-muted",children:[s.length," ",1===s.length?e("keyRegistered",{count:s.length}):e("keysRegistered",{count:s.length})]})]})]})}),(0,l.jsx)("p",{className:"text-sm text-text-muted mb-4",children:e("keysSecurityNote")}),0===s.length?(0,l.jsxs)("div",{className:"text-center py-12 border border-dashed border-border rounded-lg",children:[(0,l.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,l.jsx)("p",{className:"text-text-main font-medium mb-2",children:e("noKeys")}),(0,l.jsx)("p",{className:"text-sm text-text-muted mb-4",children:e("noKeysDesc")}),(0,l.jsx)(r.$n,{icon:"add",onClick:()=>u(!0),children:e("createFirstKey")})]}):(0,l.jsxs)("div",{className:"flex flex-col border border-border rounded-lg overflow-hidden",children:[(0,l.jsxs)("div",{className:"grid grid-cols-12 gap-4 px-4 py-3 bg-surface/50 border-b border-border text-xs font-semibold text-text-muted uppercase tracking-wider",children:[(0,l.jsx)("div",{className:"col-span-2",children:e("name")}),(0,l.jsx)("div",{className:"col-span-3",children:e("key")}),(0,l.jsx)("div",{className:"col-span-2",children:e("permissions")}),(0,l.jsx)("div",{className:"col-span-2",children:e("usage")}),(0,l.jsx)("div",{className:"col-span-1",children:e("created")}),(0,l.jsx)("div",{className:"col-span-2 text-right",children:e("actions")})]}),s.map(t=>{let s=A[t.id],a=Array.isArray(t.allowedModels)&&t.allowedModels.length>0;return(0,l.jsxs)("div",{className:"grid grid-cols-12 gap-4 px-4 py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 hover:bg-surface/30 transition-colors group",children:[(0,l.jsxs)("div",{className:"col-span-2 flex items-center gap-2",children:[(0,l.jsx)("span",{className:`material-symbols-outlined text-sm ${a?"text-amber-500":"text-emerald-500"}`,children:a?"lock":"lock_open"}),(0,l.jsx)("span",{className:"text-sm font-medium truncate",title:t.name,children:t.name})]}),(0,l.jsxs)("div",{className:"col-span-3 flex items-center gap-1.5",children:[(0,l.jsx)("code",{className:"text-sm text-text-muted font-mono truncate",children:t.key}),(0,l.jsx)("button",{onClick:()=>K(t.key,t.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all shrink-0",title:"Copy masked key",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:E===t.id?"check":"content_copy"})})]}),(0,l.jsx)("div",{className:"col-span-2 flex items-center",children:a?(0,l.jsxs)("button",{onClick:()=>z(t),className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-amber-500/10 text-amber-600 dark:text-amber-400 text-xs font-medium hover:bg-amber-500/20 transition-colors",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"lock"}),t.allowedModels.length," ",1===t.allowedModels.length?"model":"models"]}):(0,l.jsxs)("button",{onClick:()=>z(t),className:"flex items-center gap-1.5 px-2 py-1 rounded-md bg-green-500/10 text-green-600 dark:text-green-400 text-xs font-medium hover:bg-green-500/20 transition-colors",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"lock_open"}),e("allModels")]})}),(0,l.jsxs)("div",{className:"col-span-2 flex flex-col justify-center",children:[(0,l.jsxs)("span",{className:"text-sm font-medium tabular-nums",children:[s?.totalRequests??0," ",(0,l.jsx)("span",{className:"text-text-muted font-normal text-xs",children:e("reqs")})]}),s?.lastUsed?(0,l.jsxs)("span",{className:"text-[10px] text-text-muted",children:["Last: ",new Date(s.lastUsed).toLocaleDateString()]}):(0,l.jsx)("span",{className:"text-[10px] text-text-muted italic",children:e("neverUsed")})]}),(0,l.jsx)("div",{className:"col-span-1 flex items-center text-sm text-text-muted",children:new Date(t.createdAt).toLocaleDateString()}),(0,l.jsxs)("div",{className:"col-span-2 flex items-center justify-end gap-1",children:[(0,l.jsx)("button",{onClick:()=>z(t),className:"p-2 hover:bg-primary/10 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",title:"Edit permissions",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tune"})}),(0,l.jsx)("button",{onClick:()=>Z(t.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-0 group-hover:opacity-100 transition-all",title:"Delete key",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},t.id)})]})]}),(0,l.jsx)(r.Zp,{children:(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("div",{className:"flex items-center justify-center size-10 rounded-lg bg-blue-500/10 shrink-0",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-xl text-blue-500",children:"lightbulb"})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"font-semibold mb-2",children:e("usageTips")}),(0,l.jsxs)("ul",{className:"text-sm text-text-muted space-y-1.5",children:[(0,l.jsxs)("li",{className:"flex items-start gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-xs text-primary mt-1",children:"check"}),(0,l.jsx)("span",{children:e("tipAuth")})]}),(0,l.jsxs)("li",{className:"flex items-start gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-xs text-primary mt-1",children:"check"}),(0,l.jsx)("span",{children:e("tipSecure")})]}),(0,l.jsxs)("li",{className:"flex items-start gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-xs text-primary mt-1",children:"check"}),(0,l.jsx)("span",{children:e("tipSeparate")})]}),(0,l.jsxs)("li",{className:"flex items-start gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-xs text-primary mt-1",children:"check"}),(0,l.jsx)("span",{children:e("tipRestrict")})]})]})]})]})}),(0,l.jsx)(r.aF,{isOpen:p,title:e("createKey"),onClose:()=>{u(!1),j("")},children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("label",{className:"text-sm font-medium text-text-main mb-1.5 block",children:e("keyName")}),(0,l.jsx)(r.pd,{value:g,onChange:e=>j(e.target.value),placeholder:e("keyNamePlaceholder"),autoFocus:!0}),(0,l.jsx)("p",{className:"text-xs text-text-muted mt-1.5",children:e("keyNameDesc")})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(r.$n,{onClick:()=>{u(!1),j("")},variant:"ghost",fullWidth:!0,children:t("cancel")}),(0,l.jsx)(r.$n,{onClick:R,fullWidth:!0,disabled:!g.trim(),children:e("createKey")})]})]})}),(0,l.jsx)(r.aF,{isOpen:!!b,title:e("keyCreated"),onClose:()=>y(null),children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-lg p-4",children:(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200 font-medium mb-1",children:e("keyCreatedSuccess")}),(0,l.jsx)("p",{className:"text-sm text-green-700 dark:text-green-300",children:e("keyCreatedNote")})]})]})}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(r.pd,{value:b||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,l.jsx)(r.$n,{variant:"secondary",icon:"created_key"===E?"check":"content_copy",onClick:()=>K(b,"created_key"),children:t("created_key"===E?"copied":"copy")})]}),(0,l.jsx)(r.$n,{onClick:()=>y(null),fullWidth:!0,children:"Done"})]})}),f&&(0,l.jsx)(d,{isOpen:v,onClose:()=>{k(!1),N(null)},apiKey:f,modelsByProvider:U,allModels:o,searchModel:w,onSearchChange:C,onSave:I},f.id)]})}let d=(0,a.memo)(function({isOpen:e,onClose:t,apiKey:s,modelsByProvider:i,allModels:c,searchModel:d,onSearchChange:o,onSave:x}){let m=(0,n.c)("apiManager"),h=(0,n.c)("common"),p=Array.isArray(s?.allowedModels)?s.allowedModels:[],[u,g]=(0,a.useState)(p),[j,b]=(0,a.useState)(0===p.length),[y,f]=(0,a.useState)(()=>p.length>0?new Set(i.map(([e])=>e)):new Set),N=(0,a.useCallback)(e=>{j||g(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[j]),v=(0,a.useCallback)((e,t)=>{if(j)return;let s=t.map(e=>e.id);g(e=>s.every(t=>e.includes(t))?e.filter(e=>!s.includes(e)):[...new Set([...e,...s])])},[j]),k=(0,a.useCallback)(()=>{b(!0),g([])},[]),w=(0,a.useCallback)(()=>{b(!1),f(new Set(i.map(([e])=>e)))},[i]),C=(0,a.useCallback)(e=>{f(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),S=(0,a.useCallback)(()=>{g(c.map(e=>e.id))},[c]),_=(0,a.useCallback)(()=>{g([])},[]),$=(0,a.useCallback)(()=>{x(j?[]:u)},[x,j,u]);(0,a.useCallback)(()=>{o("")},[o]);let M=u.length,A=c.length;return(0,l.jsx)(r.aF,{isOpen:!!t&&e,title:m("permissionsTitle",{name:s?.name||""}),onClose:t,children:(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex gap-2 p-1 bg-surface rounded-lg",children:[(0,l.jsxs)("button",{onClick:k,className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-md text-sm font-medium transition-all ${j?"bg-primary text-white":"text-text-muted hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"lock_open"}),m("allowAll")]}),(0,l.jsxs)("button",{onClick:w,className:`flex-1 flex items-center justify-center gap-2 px-3 py-2 rounded-md text-sm font-medium transition-all ${!j?"bg-primary text-white":"text-text-muted hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"lock"}),m("restrict")]})]}),(0,l.jsxs)("div",{className:`flex items-start gap-2 p-3 rounded-lg ${j?"bg-green-500/10 border border-green-500/30":"bg-amber-500/10 border border-amber-500/30"}`,children:[(0,l.jsx)("span",{className:`material-symbols-outlined text-[18px] ${j?"text-green-500":"text-amber-500"}`,children:j?"info":"warning"}),(0,l.jsx)("p",{className:`text-xs ${j?"text-green-700 dark:text-green-300":"text-amber-700 dark:text-amber-300"}`,children:j?m("allowAllDesc"):m("restrictDesc",{selectedCount:M,totalModels:A})})]}),!j&&M>0&&(0,l.jsxs)("div",{className:"flex flex-col gap-1.5 p-2 bg-primary/5 rounded-lg border border-primary/20",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsx)("span",{className:"text-xs font-medium text-primary",children:m("selectedCount",{count:M})}),(0,l.jsxs)("div",{className:"flex gap-1",children:[(0,l.jsx)("button",{onClick:S,className:"text-[10px] text-primary hover:bg-primary/10 px-1.5 py-0.5 rounded transition-colors",children:h("all")}),(0,l.jsx)("button",{onClick:_,className:"text-[10px] text-red-500 hover:bg-red-500/10 px-1.5 py-0.5 rounded transition-colors",children:m("clear")})]})]}),(0,l.jsx)("div",{className:"flex flex-wrap gap-1 max-h-16 overflow-y-auto content-start",children:u.map(e=>(0,l.jsxs)("span",{className:"inline-flex items-center gap-0.5 px-1.5 py-0.5 bg-white dark:bg-surface text-text-main text-[10px] rounded border border-border",children:[(0,l.jsx)("span",{className:"font-mono truncate max-w-[120px]",title:e,children:e}),(0,l.jsx)("button",{onClick:()=>N(e),className:"text-text-muted hover:text-red-500 transition-colors",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},e))})]}),!j&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsx)(r.pd,{value:d,onChange:e=>o(e.target.value),placeholder:m("searchModels"),icon:"search"}),d&&(0,l.jsx)("button",{onClick:()=>o(""),className:"absolute right-3 top-1/2 -translate-y-1/2 text-text-muted hover:text-text-main",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]}),(0,l.jsx)("div",{className:"max-h-[280px] overflow-y-auto border border-border rounded-lg divide-y divide-border",children:0===i.length?(0,l.jsxs)("div",{className:"flex flex-col items-center justify-center py-6 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-2xl mb-1",children:"search_off"}),(0,l.jsx)("p",{className:"text-xs",children:m("noModelsFound")})]}):i.map(([e,t])=>{let s=u.filter(e=>t.some(t=>t.id===e)).length,a=t.every(e=>u.includes(e.id)),r=s>0&&!a;return(0,l.jsxs)("div",{className:"group",children:[(0,l.jsxs)("button",{onClick:()=>C(e),className:"w-full flex items-center gap-2 px-3 py-2 hover:bg-surface/50 transition-colors text-left",children:[(0,l.jsx)("span",{className:`material-symbols-outlined text-base transition-transform duration-200 ${y.has(e)?"rotate-90":""}`,children:"chevron_right"}),(0,l.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(0,l.jsx)("div",{className:"relative flex items-center cursor-pointer shrink-0",onClick:s=>{s.stopPropagation(),v(e,t)},children:(0,l.jsxs)("div",{className:`w-4 h-4 rounded border-2 transition-colors flex items-center justify-center ${a?"bg-primary border-primary":r?"bg-primary/20 border-primary":"border-border hover:border-primary/50"}`,children:[a&&(0,l.jsx)("span",{className:"material-symbols-outlined text-white text-[12px]",children:"check"}),r&&!a&&(0,l.jsx)("span",{className:"material-symbols-outlined text-primary text-[12px]",children:"remove"})]})}),(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main truncate",children:e}),(0,l.jsx)("span",{className:"text-[10px] text-text-muted bg-surface px-1 py-0.5 rounded shrink-0",children:t.length})]}),s>0&&(0,l.jsx)("span",{className:"text-[10px] font-medium text-primary bg-primary/10 px-1.5 py-0.5 rounded-full shrink-0",children:s})]}),y.has(e)&&(0,l.jsx)("div",{className:"px-3 pb-2 pl-9",children:(0,l.jsx)("div",{className:"flex flex-wrap gap-1",children:t.map(e=>{let t=u.includes(e.id);return(0,l.jsx)("button",{onClick:()=>N(e.id),className:`inline-flex items-center gap-1 px-2 py-1 rounded-full text-[10px] font-mono transition-all ${t?"bg-primary text-white":"bg-surface border border-border text-text-muted hover:border-primary/50 hover:text-text-main"}`,title:e.id,children:e.id},e.id)})})})]},e)})})]}),(0,l.jsxs)("div",{className:"flex gap-2",children:[(0,l.jsx)(r.$n,{onClick:$,fullWidth:!0,children:m("savePermissions")}),(0,l.jsx)(r.$n,{onClick:t,variant:"ghost",fullWidth:!0,children:h("cancel")})]})]})})})},57018:(e,t,s)=>{Promise.resolve().then(s.bind(s,42712))}},e=>{e.O(0,[3418,8500,9751,782,6458,5846,993,8441,3794,7358],()=>e(e.s=57018)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6782],{29698:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var o=r(95155),a=r(12115),l=r(50910);function s(){let e=(0,l.c)("auditLog"),t=(0,l.c)("common"),[r,s]=(0,a.useState)([]),[c,d]=(0,a.useState)(!0),[n,i]=(0,a.useState)(null),[x,u]=(0,a.useState)(""),[m,b]=(0,a.useState)(""),[p,h]=(0,a.useState)(0),[v,g]=(0,a.useState)(!1),f=(0,a.useCallback)(async()=>{d(!0),i(null);try{let e=new URLSearchParams;x&&e.set("action",x),m&&e.set("actor",m),e.set("limit",String(26)),e.set("offset",String(p));let t=await fetch(`/api/compliance/audit-log?${e.toString()}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();g(r.length>25),s(r.slice(0,25))}catch(e){i(e.message||"Failed to fetch audit log")}finally{d(!1)}},[x,m,p]);(0,a.useEffect)(()=>{f()},[f]);let y=()=>{h(0),f()};return(0,o.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"text-2xl font-bold text-[var(--color-text-main)]",children:e("title")}),(0,o.jsx)("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:e("description")})]}),(0,o.jsx)("button",{onClick:f,disabled:c,"aria-label":"Refresh audit log",className:"px-4 py-2 rounded-lg text-sm font-medium bg-[var(--color-surface)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] transition-colors disabled:opacity-50",children:t(c?"loading":"refresh")})]}),(0,o.jsxs)("div",{className:"flex flex-wrap gap-3 p-4 rounded-xl bg-[var(--color-surface)] border border-[var(--color-border)]",role:"search","aria-label":"Filter audit log entries",children:[(0,o.jsx)("input",{type:"text",placeholder:e("filterByAction"),value:x,onChange:e=>u(e.target.value),onKeyDown:e=>"Enter"===e.key&&y(),"aria-label":"Filter by action type",className:"flex-1 min-w-[180px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]"}),(0,o.jsx)("input",{type:"text",placeholder:e("filterByActor"),value:m,onChange:e=>b(e.target.value),onKeyDown:e=>"Enter"===e.key&&y(),"aria-label":"Filter by actor",className:"flex-1 min-w-[180px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]"}),(0,o.jsx)("button",{onClick:y,className:"px-4 py-2 rounded-lg text-sm font-medium bg-[var(--color-accent)] text-white hover:bg-[var(--color-accent-hover)] transition-colors focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]",children:t("search")})]}),n&&(0,o.jsx)("div",{className:"p-4 rounded-lg bg-red-500/10 border border-red-500/30 text-red-400 text-sm",role:"alert",children:n}),(0,o.jsx)("div",{className:"overflow-x-auto rounded-xl border border-[var(--color-border)]",children:(0,o.jsxs)("table",{className:"w-full text-sm",role:"table","aria-label":"Audit log entries",children:[(0,o.jsx)("thead",{children:(0,o.jsxs)("tr",{className:"bg-[var(--color-bg-alt)] border-b border-[var(--color-border)]",children:[(0,o.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:e("timestamp")}),(0,o.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:e("action")}),(0,o.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:e("actor")}),(0,o.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:e("target")}),(0,o.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:t("details")}),(0,o.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:e("ipAddress")})]})}),(0,o.jsx)("tbody",{children:0!==r.length||c?r.map(e=>{var t;return(0,o.jsxs)("tr",{className:"border-b border-[var(--color-border)] hover:bg-[var(--color-bg-alt)] transition-colors",children:[(0,o.jsx)("td",{className:"px-4 py-3 whitespace-nowrap text-[var(--color-text-muted)] font-mono text-xs",children:(e=>{try{return new Date(e).toLocaleString()}catch{return e}})(e.timestamp)}),(0,o.jsx)("td",{className:"px-4 py-3",children:(0,o.jsx)("span",{className:`inline-block px-2 py-0.5 rounded-md text-xs font-medium border ${(t=e.action).includes("delete")||t.includes("remove")?"bg-red-500/15 text-red-400 border-red-500/20":t.includes("create")||t.includes("add")?"bg-green-500/15 text-green-400 border-green-500/20":t.includes("update")||t.includes("change")?"bg-blue-500/15 text-blue-400 border-blue-500/20":t.includes("login")||t.includes("auth")?"bg-purple-500/15 text-purple-400 border-purple-500/20":"bg-gray-500/15 text-gray-400 border-gray-500/20"}`,children:e.action})}),(0,o.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-main)]",children:e.actor}),(0,o.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] max-w-[200px] truncate",children:e.target||"—"}),(0,o.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] max-w-[300px] truncate font-mono text-xs",children:e.details?JSON.stringify(e.details):"—"}),(0,o.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] font-mono text-xs whitespace-nowrap",children:e.ip_address||"—"})]},e.id)}):(0,o.jsx)("tr",{children:(0,o.jsx)("td",{colSpan:6,className:"px-4 py-8 text-center text-[var(--color-text-muted)]",children:e("noEntries")})})})]})}),(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsx)("p",{className:"text-xs text-[var(--color-text-muted)]",children:e("showing",{count:r.length,offset:p})}),(0,o.jsxs)("div",{className:"flex gap-2",children:[(0,o.jsxs)("button",{onClick:()=>h(Math.max(0,p-25)),disabled:0===p,className:"px-3 py-1.5 rounded-lg text-xs font-medium bg-[var(--color-surface)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] disabled:opacity-30 transition-colors",children:["← ",e("previous")]}),(0,o.jsxs)("button",{onClick:()=>h(p+25),disabled:!v,className:"px-3 py-1.5 rounded-lg text-xs font-medium bg-[var(--color-surface)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] disabled:opacity-30 transition-colors",children:[t("next")," →"]})]})]})]})}},50910:(e,t,r)=>{"use strict";r.d(t,{c:()=>l});var o=r(33418);function a(e,t){return(...e)=>{try{return t(...e)}catch{throw Error(void 0)}}}let l=a(0,o.c3);a(0,o.kc)},61265:(e,t,r)=>{Promise.resolve().then(r.bind(r,29698))}},e=>{e.O(0,[3418,8441,3794,7358],()=>e(e.s=61265)),_N_E=e.O()}]);
|