omniroute 1.4.9 → 1.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +36 -36
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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 +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_client-reference-manifest.js +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 +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +4 -4
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +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_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_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 +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- 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 +2 -2
- 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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
- package/app/.next/server/app/api/compliance/audit-log/route_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_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.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_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.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_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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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_client-reference-manifest.js +1 -1
- package/app/.next/server/app/docs/page.js +1 -1
- package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/forgot-password/page.js +1 -1
- package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login/page.js +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +36 -36
- package/app/.next/server/chunks/1259.js +1 -1
- package/app/.next/server/chunks/1960.js +1 -1
- package/app/.next/server/chunks/1990.js +1 -1
- package/app/.next/server/chunks/2180.js +3 -1
- package/app/.next/server/chunks/2910.js +3 -1
- package/app/.next/server/chunks/3498.js +5 -3
- package/app/.next/server/chunks/4488.js +3 -1
- package/app/.next/server/chunks/9824.js +2 -2
- package/app/.next/server/middleware.js +3 -1
- package/app/.next/server/pages/500.html +2 -2
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{5846-756d72eb0e01a60c.js → 5846-19c878280decbd16.js} +1 -1
- package/app/.next/static/chunks/{993-961f6e199b93539a.js → 993-e3050ebfd4f5032f.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-a50474b6ebdf468a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-012be9f38cda4c4a.js → page-ad885fdf9806e9a6.js} +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-08f3ed204d01b6a0.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-fbe1442b61df950a.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6b6d62c5872aee46.js +1 -0
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-b351778975cb8622.js +4 -0
- package/app/.next/static/chunks/app/forgot-password/page-a440e0c1675842bf.js +1 -0
- package/app/.next/static/chunks/app/login/page-164f6b6b41167c5a.js +1 -0
- package/app/.next/static/css/{a0c29bb208bb9dfe.css → e90887a86e63903f.css} +1 -1
- package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-3fcbbdb2221f0b0c.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/costs/page-f256689b8410bd74.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/limits/page-a5a48afa8c125ada.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-62c6fceede3a5549.js +0 -1
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-75c8b38a55e13042.js +0 -4
- package/app/.next/static/chunks/app/forgot-password/page-057ea91c6f140e0b.js +0 -1
- package/app/.next/static/chunks/app/login/page-c1d7bfab91a7877c.js +0 -1
- /package/app/.next/static/{oaQaCPrOo77oe3OAEMAe- → g7Mie-iq39oZ7ts610YtL}/_buildManifest.js +0 -0
- /package/app/.next/static/{oaQaCPrOo77oe3OAEMAe- → g7Mie-iq39oZ7ts610YtL}/_ssgManifest.js +0 -0
package/app/.next/BUILD_ID
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
g7Mie-iq39oZ7ts610YtL
|
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
"/api/cli-tools/backups/route": "/api/cli-tools/backups",
|
|
11
11
|
"/api/cli-tools/codex-profiles/route": "/api/cli-tools/codex-profiles",
|
|
12
12
|
"/api/cli-tools/guide-settings/[toolId]/route": "/api/cli-tools/guide-settings/[toolId]",
|
|
13
|
+
"/api/cloud/credentials/update/route": "/api/cloud/credentials/update",
|
|
13
14
|
"/api/cloud/auth/route": "/api/cloud/auth",
|
|
14
15
|
"/api/cloud/model/resolve/route": "/api/cloud/model/resolve",
|
|
15
16
|
"/api/cloud/models/alias/route": "/api/cloud/models/alias",
|
|
16
|
-
"/api/
|
|
17
|
+
"/api/combos/[id]/route": "/api/combos/[id]",
|
|
17
18
|
"/api/combos/metrics/route": "/api/combos/metrics",
|
|
18
19
|
"/api/combos/route": "/api/combos",
|
|
19
|
-
"/api/combos/[id]/route": "/api/combos/[id]",
|
|
20
20
|
"/api/compliance/audit-log/route": "/api/compliance/audit-log",
|
|
21
|
-
"/api/db-backups/export/route": "/api/db-backups/export",
|
|
22
21
|
"/api/db-backups/exportAll/route": "/api/db-backups/exportAll",
|
|
22
|
+
"/api/db-backups/export/route": "/api/db-backups/export",
|
|
23
23
|
"/api/db-backups/import/route": "/api/db-backups/import",
|
|
24
24
|
"/api/db-backups/route": "/api/db-backups",
|
|
25
25
|
"/api/evals/[suiteId]/route": "/api/evals/[suiteId]",
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"/api/fallback/chains/route": "/api/fallback/chains",
|
|
28
28
|
"/api/init/route": "/api/init",
|
|
29
29
|
"/api/keys/[id]/route": "/api/keys/[id]",
|
|
30
|
+
"/api/keys/route": "/api/keys",
|
|
30
31
|
"/api/logs/console/route": "/api/logs/console",
|
|
31
32
|
"/api/models/alias/route": "/api/models/alias",
|
|
32
33
|
"/api/models/availability/route": "/api/models/availability",
|
|
33
|
-
"/api/keys/route": "/api/keys",
|
|
34
34
|
"/api/models/catalog/route": "/api/models/catalog",
|
|
35
35
|
"/api/models/route": "/api/models",
|
|
36
36
|
"/api/monitoring/health/route": "/api/monitoring/health",
|
|
@@ -38,43 +38,43 @@
|
|
|
38
38
|
"/api/oauth/cursor/import/route": "/api/oauth/cursor/import",
|
|
39
39
|
"/api/oauth/kiro/auto-import/route": "/api/oauth/kiro/auto-import",
|
|
40
40
|
"/api/oauth/kiro/import/route": "/api/oauth/kiro/import",
|
|
41
|
-
"/api/policies/route": "/api/policies",
|
|
42
|
-
"/api/oauth/kiro/social-exchange/route": "/api/oauth/kiro/social-exchange",
|
|
43
41
|
"/api/oauth/kiro/social-authorize/route": "/api/oauth/kiro/social-authorize",
|
|
42
|
+
"/api/oauth/kiro/social-exchange/route": "/api/oauth/kiro/social-exchange",
|
|
43
|
+
"/api/policies/route": "/api/policies",
|
|
44
44
|
"/api/pricing/defaults/route": "/api/pricing/defaults",
|
|
45
45
|
"/api/pricing/models/route": "/api/pricing/models",
|
|
46
|
-
"/api/provider-metrics/route": "/api/provider-metrics",
|
|
47
46
|
"/api/pricing/route": "/api/pricing",
|
|
47
|
+
"/api/provider-metrics/route": "/api/provider-metrics",
|
|
48
48
|
"/api/provider-models/route": "/api/provider-models",
|
|
49
49
|
"/api/provider-nodes/[id]/route": "/api/provider-nodes/[id]",
|
|
50
50
|
"/api/provider-nodes/validate/route": "/api/provider-nodes/validate",
|
|
51
|
-
"/api/providers/[id]/route": "/api/providers/[id]",
|
|
52
51
|
"/api/providers/[id]/models/route": "/api/providers/[id]/models",
|
|
52
|
+
"/api/providers/[id]/route": "/api/providers/[id]",
|
|
53
53
|
"/api/providers/client/route": "/api/providers/client",
|
|
54
54
|
"/api/providers/route": "/api/providers",
|
|
55
55
|
"/api/providers/test-batch/route": "/api/providers/test-batch",
|
|
56
56
|
"/api/providers/validate/route": "/api/providers/validate",
|
|
57
|
-
"/api/rate-limits/route": "/api/rate-limits",
|
|
58
57
|
"/api/rate-limit/route": "/api/rate-limit",
|
|
59
|
-
"/api/
|
|
58
|
+
"/api/rate-limits/route": "/api/rate-limits",
|
|
60
59
|
"/api/resilience/route": "/api/resilience",
|
|
60
|
+
"/api/resilience/reset/route": "/api/resilience/reset",
|
|
61
61
|
"/api/restart/route": "/api/restart",
|
|
62
|
+
"/api/sessions/route": "/api/sessions",
|
|
62
63
|
"/api/settings/combo-defaults/route": "/api/settings/combo-defaults",
|
|
63
64
|
"/api/settings/ip-filter/route": "/api/settings/ip-filter",
|
|
64
|
-
"/api/sessions/route": "/api/sessions",
|
|
65
|
-
"/api/settings/require-login/route": "/api/settings/require-login",
|
|
66
65
|
"/api/settings/route": "/api/settings",
|
|
66
|
+
"/api/settings/require-login/route": "/api/settings/require-login",
|
|
67
67
|
"/api/settings/system-prompt/route": "/api/settings/system-prompt",
|
|
68
|
-
"/api/shutdown/route": "/api/shutdown",
|
|
69
68
|
"/api/settings/thinking-budget/route": "/api/settings/thinking-budget",
|
|
69
|
+
"/api/shutdown/route": "/api/shutdown",
|
|
70
70
|
"/api/storage/health/route": "/api/storage/health",
|
|
71
|
-
"/api/sync/initialize/route": "/api/sync/initialize",
|
|
72
71
|
"/api/sync/cloud/route": "/api/sync/cloud",
|
|
72
|
+
"/api/sync/initialize/route": "/api/sync/initialize",
|
|
73
73
|
"/api/tags/route": "/api/tags",
|
|
74
74
|
"/api/telemetry/summary/route": "/api/telemetry/summary",
|
|
75
75
|
"/api/token-health/route": "/api/token-health",
|
|
76
|
-
"/api/translator/history/route": "/api/translator/history",
|
|
77
76
|
"/api/translator/detect/route": "/api/translator/detect",
|
|
77
|
+
"/api/translator/history/route": "/api/translator/history",
|
|
78
78
|
"/api/translator/load/route": "/api/translator/load",
|
|
79
79
|
"/api/translator/save/route": "/api/translator/save",
|
|
80
80
|
"/api/translator/send/route": "/api/translator/send",
|
|
@@ -91,63 +91,63 @@
|
|
|
91
91
|
"/api/v1/audio/speech/route": "/api/v1/audio/speech",
|
|
92
92
|
"/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions",
|
|
93
93
|
"/api/v1/embeddings/route": "/api/v1/embeddings",
|
|
94
|
-
"/api/v1/images/generations/route": "/api/v1/images/generations",
|
|
95
94
|
"/api/v1/messages/count_tokens/route": "/api/v1/messages/count_tokens",
|
|
95
|
+
"/api/v1/images/generations/route": "/api/v1/images/generations",
|
|
96
96
|
"/api/v1/messages/route": "/api/v1/messages",
|
|
97
97
|
"/api/v1/models/route": "/api/v1/models",
|
|
98
98
|
"/api/v1/moderations/route": "/api/v1/moderations",
|
|
99
99
|
"/api/v1/providers/[provider]/chat/completions/route": "/api/v1/providers/[provider]/chat/completions",
|
|
100
|
-
"/api/v1/providers/[provider]/embeddings/route": "/api/v1/providers/[provider]/embeddings",
|
|
101
100
|
"/api/v1/providers/[provider]/images/generations/route": "/api/v1/providers/[provider]/images/generations",
|
|
102
|
-
"/api/v1/
|
|
101
|
+
"/api/v1/providers/[provider]/embeddings/route": "/api/v1/providers/[provider]/embeddings",
|
|
103
102
|
"/api/v1/responses/route": "/api/v1/responses",
|
|
104
|
-
"/api/
|
|
103
|
+
"/api/v1/rerank/route": "/api/v1/rerank",
|
|
105
104
|
"/api/v1/route": "/api/v1",
|
|
105
|
+
"/api/v1beta/models/[...path]/route": "/api/v1beta/models/[...path]",
|
|
106
106
|
"/api/v1beta/models/route": "/api/v1beta/models",
|
|
107
107
|
"/api/cli-tools/antigravity-mitm/route": "/api/cli-tools/antigravity-mitm",
|
|
108
108
|
"/api/cli-tools/claude-settings/route": "/api/cli-tools/claude-settings",
|
|
109
109
|
"/api/cli-tools/cline-settings/route": "/api/cli-tools/cline-settings",
|
|
110
110
|
"/api/cli-tools/droid-settings/route": "/api/cli-tools/droid-settings",
|
|
111
|
-
"/api/cli-tools/
|
|
111
|
+
"/api/cli-tools/codex-settings/route": "/api/cli-tools/codex-settings",
|
|
112
112
|
"/api/cli-tools/runtime/[toolId]/route": "/api/cli-tools/runtime/[toolId]",
|
|
113
|
-
"/api/cli-tools/
|
|
113
|
+
"/api/cli-tools/status/route": "/api/cli-tools/status",
|
|
114
|
+
"/api/cli-tools/kilo-settings/route": "/api/cli-tools/kilo-settings",
|
|
114
115
|
"/api/combos/test/route": "/api/combos/test",
|
|
115
|
-
"/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]",
|
|
116
|
-
"/api/cli-tools/codex-settings/route": "/api/cli-tools/codex-settings",
|
|
117
116
|
"/api/provider-nodes/route": "/api/provider-nodes",
|
|
118
|
-
"/api/
|
|
117
|
+
"/api/providers/[id]/test/route": "/api/providers/[id]/test",
|
|
118
|
+
"/api/cli-tools/openclaw-settings/route": "/api/cli-tools/openclaw-settings",
|
|
119
119
|
"/api/settings/proxy/test/route": "/api/settings/proxy/test",
|
|
120
120
|
"/api/usage/proxy-logs/route": "/api/usage/proxy-logs",
|
|
121
|
-
"/api/cli-tools/status/route": "/api/cli-tools/status",
|
|
122
121
|
"/api/v1/chat/completions/route": "/api/v1/chat/completions",
|
|
123
|
-
"/api/
|
|
122
|
+
"/api/settings/proxy/route": "/api/settings/proxy",
|
|
123
|
+
"/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]",
|
|
124
124
|
"/callback/page": "/callback",
|
|
125
|
-
"/landing/page": "/landing",
|
|
126
125
|
"/docs/page": "/docs",
|
|
127
|
-
"/forgot-password/page": "/forgot-password",
|
|
128
126
|
"/forbidden/page": "/forbidden",
|
|
127
|
+
"/forgot-password/page": "/forgot-password",
|
|
128
|
+
"/landing/page": "/landing",
|
|
129
129
|
"/login/page": "/login",
|
|
130
130
|
"/page": "/",
|
|
131
|
-
"/privacy/page": "/privacy",
|
|
132
131
|
"/terms/page": "/terms",
|
|
133
|
-
"/
|
|
132
|
+
"/privacy/page": "/privacy",
|
|
134
133
|
"/(dashboard)/dashboard/api-manager/page": "/dashboard/api-manager",
|
|
134
|
+
"/(dashboard)/dashboard/analytics/page": "/dashboard/analytics",
|
|
135
135
|
"/(dashboard)/dashboard/audit-log/page": "/dashboard/audit-log",
|
|
136
136
|
"/(dashboard)/dashboard/cli-tools/page": "/dashboard/cli-tools",
|
|
137
137
|
"/(dashboard)/dashboard/costs/page": "/dashboard/costs",
|
|
138
138
|
"/(dashboard)/dashboard/endpoint/page": "/dashboard/endpoint",
|
|
139
|
-
"/(dashboard)/dashboard/health/page": "/dashboard/health",
|
|
140
139
|
"/(dashboard)/dashboard/limits/page": "/dashboard/limits",
|
|
140
|
+
"/(dashboard)/dashboard/health/page": "/dashboard/health",
|
|
141
141
|
"/(dashboard)/dashboard/profile/page": "/dashboard/profile",
|
|
142
|
-
"/(dashboard)/dashboard/settings/page": "/dashboard/settings",
|
|
143
142
|
"/(dashboard)/dashboard/providers/new/page": "/dashboard/providers/new",
|
|
143
|
+
"/(dashboard)/dashboard/settings/page": "/dashboard/settings",
|
|
144
144
|
"/(dashboard)/dashboard/settings/pricing/page": "/dashboard/settings/pricing",
|
|
145
|
-
"/(dashboard)/dashboard/
|
|
145
|
+
"/(dashboard)/dashboard/translator/page": "/dashboard/translator",
|
|
146
146
|
"/(dashboard)/dashboard/page": "/dashboard",
|
|
147
|
+
"/(dashboard)/dashboard/logs/page": "/dashboard/logs",
|
|
147
148
|
"/(dashboard)/dashboard/onboarding/page": "/dashboard/onboarding",
|
|
148
|
-
"/(dashboard)/dashboard/translator/page": "/dashboard/translator",
|
|
149
|
-
"/(dashboard)/dashboard/combos/page": "/dashboard/combos",
|
|
150
|
-
"/(dashboard)/dashboard/providers/page": "/dashboard/providers",
|
|
151
149
|
"/(dashboard)/dashboard/usage/page": "/dashboard/usage",
|
|
150
|
+
"/(dashboard)/dashboard/providers/page": "/dashboard/providers",
|
|
151
|
+
"/(dashboard)/dashboard/combos/page": "/dashboard/combos",
|
|
152
152
|
"/(dashboard)/dashboard/providers/[id]/page": "/dashboard/providers/[id]"
|
|
153
153
|
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
],
|
|
5
5
|
"devFiles": [],
|
|
6
6
|
"lowPriorityFiles": [
|
|
7
|
-
"static/
|
|
8
|
-
"static/
|
|
7
|
+
"static/g7Mie-iq39oZ7ts610YtL/_buildManifest.js",
|
|
8
|
+
"static/g7Mie-iq39oZ7ts610YtL/_ssgManifest.js"
|
|
9
9
|
],
|
|
10
10
|
"rootMainFiles": [
|
|
11
11
|
"static/chunks/webpack-9837b0fbf7de0b62.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"dynamicRoutes": {},
|
|
30
30
|
"notFoundRoutes": [],
|
|
31
31
|
"preview": {
|
|
32
|
-
"previewModeId": "
|
|
33
|
-
"previewModeSigningKey": "
|
|
34
|
-
"previewModeEncryptionKey": "
|
|
32
|
+
"previewModeId": "cbaae43a1b282601fe6630e32441bf4c",
|
|
33
|
+
"previewModeSigningKey": "06fd35bb858e188eb16c27103d63635282586433892853458b62258e5093849b",
|
|
34
|
+
"previewModeEncryptionKey": "80329ffb3968d3b32a05c09c48efb289b65506833f311755151e5a92ebaaffe4"
|
|
35
35
|
}
|
|
36
36
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(()=>{var a={};a.id=8978,a.ids=[8978],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},22889:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.default,__next_app__:()=>L,handler:()=>N,routeModule:()=>M});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),u=c(26713),v=c(37527),w=c(22820),x=c(88216),y=c(47929),z=c(79551),A=c(89125),B=c(86439),C=c(77068),D=c(81227),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J={};for(let a in E)0>["default","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(J[a]=()=>E[a]);c.d(b,J);let K={children:["",{children:["(dashboard)",{children:["dashboard",{children:["analytics",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,97542)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/page.tsx"]}]},{loading:[()=>Promise.resolve().then(c.bind(c,96255)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/loading.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,6676)),"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/layout.tsx"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,76537)),"/home/runner/work/OmniRoute/OmniRoute/src/app/layout.tsx"],error:[()=>Promise.resolve().then(c.bind(c,64385)),"/home/runner/work/OmniRoute/OmniRoute/src/app/error.tsx"],"global-error":[()=>Promise.resolve().then(c.bind(c,81227)),"/home/runner/work/OmniRoute/OmniRoute/src/app/global-error.tsx"],"not-found":[()=>Promise.resolve().then(c.bind(c,8979)),"/home/runner/work/OmniRoute/OmniRoute/src/app/not-found.tsx"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,L={require:c,loadChunk:()=>Promise.resolve()},M=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/analytics/page",pathname:"/dashboard/analytics",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:K},distDir:".next",relativeProjectDir:""});async function N(a,b,d){var J;M.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let O=!!(0,h.getRequestMeta)(a,"minimalMode"),P="/(dashboard)/dashboard/analytics/page";"/index"===P&&(P="/");let Q=await M.prepare(a,b,{srcPage:P,multiZoneDraftMode:!1});if(!Q)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:R,query:S,params:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,parsedUrl:af,interceptionRoutePatterns:ag,deploymentId:ah}=Q,ai=(0,q.normalizeAppPath)(P),{isOnDemandRevalidate:aj}=Q,ak=ae.experimental.ppr&&!ae.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ab)?null:M.match(ab,_),al=!!_.routes[ab],am=a.headers["user-agent"]||"",an=(0,u.getBotType)(am),ao=(0,p.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ar=(0,r.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr);if(!(0,h.getRequestMeta)(a,"postponed")&&as&&"1"===a.headers[y.NEXT_RESUME_HEADER]&&"POST"===a.method){let b=[];for await(let c of a)b.push(c);let c=Buffer.concat(b).toString("utf8");(0,h.addRequestMeta)(a,"postponed",c)}let at=as&&(null==(J=_.routes[ai]??_.dynamicRoutes[ai])?void 0:J.renderingMode)==="PARTIALLY_STATIC",au=!1,av=!1,aw=at?(0,h.getRequestMeta)(a,"postponed"):void 0,ax=at&&aq&&!ap;O&&(ax=ax&&!!aw);let ay=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),az=(!ao||!at)&&(!am||(0,p.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots)),aA=!!((ak||al||_.routes[ai])&&!(ao&&at)),aB=at&&!0===ae.cacheComponents,aC=!0===M.isDev||!aA||"string"==typeof aw||(aB&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?ax&&!O:ax),aD=ao&&at,aE=null;aa||!aA||aC||ar||aw||ax||(aE=ab);let aF=aE;!aF&&M.isDev&&(aF=ab),M.isDev||aa||!aA||!aq||ax||(0,k.d)(a.headers);let aG={...E,tree:K,GlobalError:D.default,handler:N,routeModule:M,__next_app__:L};Y&&Z&&(0,o.setManifestsSingleton)({page:P,clientReferenceManifest:Z,serverActionsManifest:Y});let aH=a.method||"GET",aI=(0,g.getTracer)(),aJ=aI.getActiveScopeSpan(),aK=async()=>((null==ad?void 0:ad.render404)?await ad.render404(a,b,af,!1):b.end("This page could not be found"),null);try{let f=M.getVaryHeader(ab,ag);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return M.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aI.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aH} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aH} ${P}`)})},m=(0,h.getRequestMeta)(a,"incrementalCache"),o=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let l={query:S,params:T,page:ai,sharedContext:{buildId:R},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aG,Component:(0,j.T)(aG),params:T,routeModule:M,page:P,postponed:f,shouldWaitOnAllReady:aD,serveStreamingMetadata:az,supportsDynamicResponse:"string"==typeof f||aC,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,setCacheStatus:null==ad?void 0:ad.setCacheStatus,setIsrStatus:null==ad?void 0:ad.setIsrStatus,setReactDebugChannel:null==ad?void 0:ad.setReactDebugChannel,sendErrorsToBrowser:null==ad?void 0:ad.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),M.relativeProjectDir),isDraftMode:aa,botType:an,isOnDemandRevalidate:aj,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,images:ae.images,previewProps:_.preview,deploymentId:ah,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:m,cacheLifeProfiles:ae.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...au||av?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:au}:{},cacheComponents:!!ae.cacheComponents,experimental:{isRoutePPREnabled:at,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[],clientParamParsingOrigins:ae.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(ae.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>M.onRequestError(a,b,d,e,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:M.isDev}};au&&(l.renderOpts.nextExport=!0,l.renderOpts.supportsDynamicResponse=!1,l.renderOpts.isDebugDynamicAccesses=au),i&&(l.renderOpts.supportsDynamicResponse=!1);let n=await k(e,l),{metadata:o}=n,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=o;if(r&&(q[y.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aA&&(null==p?void 0:p.revalidate)===0&&!M.isDev&&!at){let a=o.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:n,headers:q,rscData:o.flightData,postponed:o.postponed,status:o.statusCode,segmentData:o.segmentData},cacheControl:p}},p=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===M.isDev,q=c||b.writableEnded;if(aj&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ak&&(k=(0,w.parseFallbackField)(ak.fallback)),k===w.FallbackMode.PRERENDER&&(0,u.isBot)(am)&&(!at||ao)&&(k=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(aj=!0),aj&&(k!==w.FallbackMode.NOT_FOUND||f)&&(k=w.FallbackMode.BLOCKING_STATIC_RENDER),!O&&k!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aF&&!q&&!aa&&U&&(l||!al)){if((l||ak)&&k===w.FallbackMode.NOT_FOUND){if(ae.experimental.adapterPath)return await aK();throw new B.NoFallbackError}if(at&&(ae.cacheComponents?!ax:!aq)){let b=l&&"string"==typeof(null==ak?void 0:ak.fallback)?ak.fallback:ai,c=l&&(null==ak?void 0:ak.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ak.fallbackRouteParams):av?(0,n.getFallbackRouteParams)(ai,M):null,f=await M.handleResponse({cacheKey:b,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:at,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:c,forceStaticRender:!1}),waitUntil:d.waitUntil,isMinimalMode:O});if(null===f)return null;if(f)return delete f.cacheControl,f}}let r=aj||g||!aw?void 0:aw;if(aB&&!O&&m&&ax&&!j){let b=await m.get(ab,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=M.getResponseCache(a);try{await b.revalidate(ab,m,at,!1,a=>p({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(au&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=l&&(null==ak?void 0:ak.fallbackRouteParams)&&(0,h.getRequestMeta)(a,"renderFallbackShell")?(0,n.createOpaqueFallbackRouteParams)(ak.fallbackRouteParams):av?(0,n.getFallbackRouteParams)(ai,M):null;return o({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},q=async c=>{var f,g,i,j,k;let l,m=await M.handleResponse({cacheKey:aE,responseGenerator:a=>p({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:aj,isRoutePPREnabled:at,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil,isMinimalMode:O});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),M.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!m){if(aE)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;aA&&!ax&&(!n||ap)&&(O||b.setHeader("x-nextjs-cache",aj?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(aw)l={revalidate:0,expire:void 0};else if(ax)l={revalidate:0,expire:void 0};else if(!M.isDev)if(aa)l={revalidate:0,expire:void 0};else if(aA){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof ay&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];O&&aA&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ay);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.EMPTY,cacheControl:m.cacheControl}))}let r=aB?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(q.headers){let a={...q.headers};for(let[c,d]of(O&&aA||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(O&&aA&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!q.status||aq&&at||(b.statusCode=q.status),!O&&q.status&&F.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),n&&!ax&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ae.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let w=q.html;if(!n||O||aq)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:w,cacheControl:m.cacheControl});if(au)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return w.push(B.readable),o({span:c,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!aJ)return await aI.withPropagatedContext(a.headers,()=>aI.trace(i.BaseServerSpan.handleRequest,{spanName:`${aH} ${P}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aH,"http.target":a.url}},q));await q(aJ)}catch(b){throw b instanceof B.NoFallbackError||await M.onRequestError(a,b,{routerKind:"App Router",routePath:P,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aA,isOnDemandRevalidate:aj})},!1,ad),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},62739:(a,b,c)=>{Promise.resolve().then(c.bind(c,97542))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66461:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(48249);function e(){return(0,d.jsxs)("div",{className:"space-y-6 animate-pulse p-6",children:[(0,d.jsx)("div",{className:"h-8 bg-gray-200 dark:bg-gray-700 rounded w-40"}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[1,2,3,4].map(a=>(0,d.jsx)("div",{className:"h-24 bg-gray-200 dark:bg-gray-700 rounded-lg"},a))}),(0,d.jsx)("div",{className:"h-64 bg-gray-200 dark:bg-gray-700 rounded-lg"})]})}},70374:(a,b,c)=>{Promise.resolve().then(c.bind(c,66461))},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},76806:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(29824),g=c(77360),h=c(35005);let i=[{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 j(){let a=(0,g.c)("usage"),[b,c]=(0,e.useState)([]),[j,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!0),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)({current:0,total:0}),[s,u]=(0,e.useState)({}),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),B=(0,h.i)();(0,e.useCallback)(async()=>{try{let a=await fetch("/api/evals");if(a.ok){let b=await a.json();c(Array.isArray(b)?b:b.suites||[])}}catch{}finally{n(!1)}},[]),(0,e.useCallback)(async()=>{try{let a=await fetch("/api/keys");if(!a.ok)return;let b=await a.json(),c=b?.keys?.[0]?.key||null;l(c)}catch{}},[]);let C=async a=>{try{let b={"Content-Type":"application/json"};j&&(b.Authorization=`Bearer ${j}`);let c=await fetch("/v1/chat/completions",{method:"POST",headers:b,body:JSON.stringify({model:a.model||"gpt-4o",messages:a.input?.messages||[],max_tokens:512,stream:!1})});if(!c.ok)return`[ERROR: HTTP ${c.status}]`;let d=await c.json();return d.choices?.[0]?.message?.content||"[No content returned]"}catch(a){return`[ERROR: ${a.message}]`}},D=async a=>{let b=a.cases||[];if(0===b.length)return void B.warning("No test cases defined for this suite");p(a.id),r({current:0,total:b.length});try{let c={};for(let a=0;a<b.length;a++){r({current:a+1,total:b.length});let d=await C(b[a]);c[b[a].id]=d}let d=await fetch("/api/evals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({suiteId:a.id,outputs:c})}),e=await d.json();if(u(b=>({...b,[a.id]:e})),e.summary){let{passed:b,failed:c,total:d}=e.summary;0===c?B.success(`All ${d} cases passed ✅`,`Eval: ${a.name}`):B.warning(`${b}/${d} passed, ${c} failed`,`Eval: ${a.name}`)}y(a.id)}catch{B.error("Eval run failed")}finally{p(null),r({current:0,total:0})}},E=b.filter(a=>!v||a.name?.toLowerCase().includes(v.toLowerCase())||a.id?.toLowerCase().includes(v.toLowerCase())),F=b.reduce((a,b)=>a+(b.cases?.length||b.caseCount||0),0),G=[...new Set(b.flatMap(a=>(a.cases||[]).map(a=>a.model)).filter(Boolean))];if(m)return(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted p-8 animate-pulse",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"science"}),"Loading eval suites..."]});if(0===b.length)return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(k,{}),(0,d.jsx)(f.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 H=[{key:"caseName",label:"Case"},{key:"status",label:"Status"},{key:"durationMs",label:"Latency"},{key:"details",label:"Details"}];return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(k,{}),(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Suites"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-violet-400",children:b.length})]}),(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Test Cases"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-sky-400",children:F})]}),(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Models"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-emerald-400",children:G.length})]}),(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Coverage"}),(0,d.jsxs)("div",{className:"text-2xl font-bold mt-1 text-amber-400",children:[i.length," strategies"]})]})]}),(0,d.jsxs)(f.Zp,{className:"p-0 overflow-hidden",children:[(0,d.jsxs)("button",{onClick:()=>A(!z),className:"w-full flex items-center justify-between px-6 py-4 hover:bg-surface/30 transition-colors text-left",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"help"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"How It Works"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Learn how evaluations validate your LLM responses"})]})]}),(0,d.jsx)("span",{className:`material-symbols-outlined text-text-muted transition-transform duration-200 ${z?"rotate-180":""}`,children:"expand_more"})]}),z&&(0,d.jsxs)("div",{className:"px-6 pb-6 border-t border-border/10",children:[(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4",children:[(0,d.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,d.jsx)("div",{className:"w-10 h-10 rounded-full bg-violet-500/20 flex items-center justify-center mb-3",children:(0,d.jsx)("span",{className:"text-lg font-bold text-violet-400",children:"1"})}),(0,d.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:a(">define</")}),(0,d.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,d.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,d.jsx)("div",{className:"w-10 h-10 rounded-full bg-sky-500/20 flex items-center justify-center mb-3",children:(0,d.jsx)("span",{className:"text-lg font-bold text-sky-400",children:"2"})}),(0,d.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:a(">run</")}),(0,d.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,d.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,d.jsx)("div",{className:"w-10 h-10 rounded-full bg-emerald-500/20 flex items-center justify-center mb-3",children:(0,d.jsx)("span",{className:"text-lg font-bold text-emerald-400",children:"3"})}),(0,d.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:a(">evaluate</")}),(0,d.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,d.jsxs)("div",{className:"mt-6",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide mb-3",children:"Evaluation Strategies"}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2",children:i.map(a=>(0,d.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg ${a.bg} border border-transparent`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] ${a.color}`,children:a.icon}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:`text-xs font-mono font-semibold ${a.color}`,children:a.name}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:a.description})]})]},a.name))})]}),G.length>0&&(0,d.jsxs)("div",{className:"mt-6",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide mb-3",children:"Models Under Test"}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:G.map(a=>(0,d.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:a},a))})]})]})]}),(0,d.jsxs)(f.Zp,{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-violet-500/10 text-violet-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"science"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:a("evalSuites")}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Click a suite to view test cases, then run to evaluate your LLM endpoints"})]})]}),(0,d.jsx)(f.Qn,{searchValue:v,onSearchChange:w,placeholder:"Search suites...",filters:[],activeFilters:{},onFilterChange:()=>{},children:null}),(0,d.jsx)("div",{className:"flex flex-col gap-3 mt-4",children:E.map(a=>{let b=s[a.id],c=o===a.id,e=x===a.id,g=a.cases?.length||a.caseCount||0,h=[...new Set((a.cases||[]).map(a=>a.model).filter(Boolean))];return(0,d.jsxs)("div",{className:"border border-border/30 rounded-lg overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-surface/30 transition-colors",onClick:()=>y(e?null:a.id),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:e?"expand_more":"chevron_right"}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-text-main",children:a.name||a.id}),b?.summary&&(0,d.jsxs)("span",{className:`px-2 py-0.5 rounded-full text-xs font-semibold ${100===b.summary.passRate?"bg-emerald-500/10 text-emerald-400":b.summary.passRate>=80?"bg-amber-500/10 text-amber-400":"bg-red-500/10 text-red-400"}`,children:[b.summary.passRate,"% pass"]})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[g," case",1!==g?"s":"",a.description&&(0,d.jsxs)("span",{className:"ml-1",children:["— ",a.description]})]}),h.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:h.map(a=>(0,d.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:a},a))})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[c&&q.total>0&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-24 h-1.5 bg-black/10 dark:bg-white/10 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-violet-500 rounded-full transition-all duration-300",style:{width:`${q.current/q.total*100}%`}})}),(0,d.jsxs)("span",{className:"text-xs text-text-muted font-mono tabular-nums",children:[q.current,"/",q.total]})]}),(0,d.jsx)(f.$n,{size:"sm",variant:"primary",onClick:b=>{b.stopPropagation(),D(a)},loading:c,disabled:c,children:c?`Running ${q.current}/${q.total}...`:"Run Eval"})]})]}),e&&(0,d.jsx)("div",{className:"border-t border-border/20 p-4",children:b?.results?(0,d.jsxs)(d.Fragment,{children:[b.summary&&(0,d.jsxs)("div",{className:"flex items-center gap-4 mb-4 p-3 rounded-lg bg-surface/30 border border-border/20",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:`text-lg font-bold ${100===b.summary.passRate?"text-emerald-400":b.summary.passRate>=80?"text-amber-400":"text-red-400"}`,children:[b.summary.passRate,"%"]}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"pass rate"})]}),(0,d.jsxs)("div",{className:"text-xs text-text-muted",children:[b.summary.passed," passed \xb7 ",b.summary.failed," ","failed \xb7 ",b.summary.total," total"]}),(0,d.jsx)("div",{className:"flex-1 h-2 bg-black/10 dark:bg-white/10 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${b.summary.passRate}%`,background:100===b.summary.passRate?"linear-gradient(90deg, #22c55e, #16a34a)":b.summary.passRate>=80?"linear-gradient(90deg, #f59e0b, #d97706)":"linear-gradient(90deg, #ef4444, #dc2626)"}})})]}),(0,d.jsx)(f.bQ,{columns:H,data:b.results.map((a,b)=>({...a,id:a.caseId||b})),renderCell:(a,b)=>{if("status"===b.key)return a.passed?(0,d.jsx)("span",{className:"text-emerald-400",children:"✅ Passed"}):(0,d.jsx)("span",{className:"text-red-400",children:"❌ Failed"});if("durationMs"===b.key)return(0,d.jsx)("span",{className:"text-text-muted text-xs font-mono",children:null!=a.durationMs?`${a.durationMs}ms`:"—"});if("details"===b.key){let b=a.details||{};return(0,d.jsx)("span",{className:"text-text-muted text-xs truncate max-w-[300px] block",children:String(b.searchTerm?`Contains: "${b.searchTerm}"`:b.pattern?`Regex: ${b.pattern}`:b.expected?`Expected: "${String(b.expected).slice(0,50)}"`:a.error||"—")})}return(0,d.jsx)("span",{className:"text-sm text-text-main",children:a[b.key]||"—"})},maxHeight:"400px",emptyMessage:"No results yet"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:"checklist"}),(0,d.jsxs)("span",{className:"text-xs text-text-muted font-medium",children:["Test Cases (",(a.cases||[]).length,")"]})]}),(0,d.jsx)(f.bQ,{columns:[{key:"name",label:"Case"},{key:"model",label:"Model"},{key:"strategy",label:"Strategy"},{key:"expected",label:"Expected"}],data:(a.cases||[]).map((a,b)=>({id:a.id||b,name:a.name,model:a.model||"—",strategy:a.expected?.strategy||"—",expected:a.expected?.value?String(a.expected.value).slice(0,80):"—"})),renderCell:(a,b)=>{if("strategy"===b.key){let b=i.find(b=>b.name===a.strategy);return(0,d.jsx)("span",{className:`text-xs font-mono font-semibold ${b?.color||"text-text-muted"}`,children:a.strategy})}return"model"===b.key?(0,d.jsx)("span",{className:"text-xs font-mono text-primary/80",children:a.model}):"expected"===b.key?(0,d.jsx)("span",{className:"text-text-muted text-xs font-mono truncate max-w-[300px] block",children:a.expected}):(0,d.jsx)("span",{className:"text-sm text-text-main",children:a[b.key]||"—"})},maxHeight:"400px",emptyMessage:"No test cases defined"}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-3 flex items-center gap-1.5",children:[(0,d.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.']})]})})]},a.id)})})]})]})}function k(){return(0,d.jsx)(f.Zp,{className:"p-0 overflow-hidden",children:(0,d.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,d.jsxs)("div",{className:"flex items-start gap-4",children:[(0,d.jsx)("div",{className:"p-3 rounded-xl bg-violet-500/10 text-violet-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px]",children:"science"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h2",{className:"text-xl font-bold text-text-main mb-1",children:t("modelEvals")}),(0,d.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,d.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mt-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-emerald-400",children:"verified"}),"Quality Validation"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-sky-400",children:"compare"}),"Model Comparison"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-400",children:"bug_report"}),"Regression Detection"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-violet-400",children:"speed"}),"Latency Benchmarks"]})]})]})]})})})}function l(){let[a,b]=(0,e.useState)("overview"),c=(0,g.c)("analytics"),h={overview:c("overviewDescription"),evals:c("evalsDescription")};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[28px]",children:"analytics"}),c("title")]}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:h[a]})]}),(0,d.jsx)(f.Iz,{options:[{value:"overview",label:c("overview")},{value:"evals",label:c("evals")}],value:a,onChange:b}),"overview"===a&&(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(f.Qv,{}),children:(0,d.jsx)(f.cn,{})}),"evals"===a&&(0,d.jsx)(j,{})]})}},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},78622:(a,b,c)=>{Promise.resolve().then(c.bind(c,96255))},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},96255:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/loading.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/loading.tsx","default")},97542:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/page.tsx","default")},99691:(a,b,c)=>{Promise.resolve().then(c.bind(c,76806))}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,595,5573,8020,3498,3994,4509,2910,3596,2901,4568,1259,9824,5248],()=>b(b.s=22889));module.exports=c})();
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:n,headers:q,rscData:o.flightData,postponed:o.postponed,status:o.statusCode,segmentData:o.segmentData},cacheControl:p}},p=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===M.isDev,q=c||b.writableEnded;if(aj&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ak&&(k=(0,w.parseFallbackField)(ak.fallback)),k===w.FallbackMode.PRERENDER&&(0,u.isBot)(am)&&(!at||ao)&&(k=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(aj=!0),aj&&(k!==w.FallbackMode.NOT_FOUND||f)&&(k=w.FallbackMode.BLOCKING_STATIC_RENDER),!O&&k!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aF&&!q&&!aa&&U&&(l||!al)){if((l||ak)&&k===w.FallbackMode.NOT_FOUND){if(ae.experimental.adapterPath)return await aK();throw new B.NoFallbackError}if(at&&(ae.cacheComponents?!ax:!aq)){let b=l&&"string"==typeof(null==ak?void 0:ak.fallback)?ak.fallback:ai,c=l&&(null==ak?void 0:ak.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ak.fallbackRouteParams):av?(0,n.getFallbackRouteParams)(ai,M):null,f=await M.handleResponse({cacheKey:b,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:at,responseGenerator:async()=>o({span:i,postponed:void 0,fallbackRouteParams:c,forceStaticRender:!1}),waitUntil:d.waitUntil,isMinimalMode:O});if(null===f)return null;if(f)return delete f.cacheControl,f}}let r=aj||g||!aw?void 0:aw;if(aB&&!O&&m&&ax&&!j){let b=await m.get(ab,{kind:v.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===v.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=M.getResponseCache(a);try{await b.revalidate(ab,m,at,!1,a=>p({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(au&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=l&&(null==ak?void 0:ak.fallbackRouteParams)&&(0,h.getRequestMeta)(a,"renderFallbackShell")?(0,n.createOpaqueFallbackRouteParams)(ak.fallbackRouteParams):av?(0,n.getFallbackRouteParams)(ai,M):null;return o({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},q=async c=>{var f,g,i,j,k;let l,m=await M.handleResponse({cacheKey:aE,responseGenerator:a=>p({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:aj,isRoutePPREnabled:at,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil,isMinimalMode:O});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),M.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!m){if(aE)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;aA&&!ax&&(!n||ap)&&(O||b.setHeader("x-nextjs-cache",aj?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=m;if(aw)l={revalidate:0,expire:void 0};else if(ax)l={revalidate:0,expire:void 0};else if(!M.isDev)if(aa)l={revalidate:0,expire:void 0};else if(aA){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof ay&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];O&&aA&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ay);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.EMPTY,cacheControl:m.cacheControl}))}let r=aB?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(q.headers){let a={...q.headers};for(let[c,d]of(O&&aA||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let u=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(O&&aA&&u&&"string"==typeof u&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,u),!q.status||aq&&at||(b.statusCode=q.status),!O&&q.status&&F.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),n&&!ax&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(ae.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${q.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:x.default.fromStatic(q.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let w=q.html;if(!n||O||aq)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:w,cacheControl:m.cacheControl});if(au)return w.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return w.push(B.readable),o({span:c,postponed:q.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:w,cacheControl:{revalidate:0,expire:void 0}})};if(!aJ)return await aI.withPropagatedContext(a.headers,()=>aI.trace(i.BaseServerSpan.handleRequest,{spanName:`${aH} ${P}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aH,"http.target":a.url}},q));await q(aJ)}catch(b){throw b instanceof B.NoFallbackError||await M.onRequestError(a,b,{routerKind:"App Router",routePath:P,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aA,isOnDemandRevalidate:aj})},!1,ad),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},62739:(a,b,c)=>{Promise.resolve().then(c.bind(c,97542))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66461:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(48249);function e(){return(0,d.jsxs)("div",{className:"space-y-6 animate-pulse p-6",children:[(0,d.jsx)("div",{className:"h-8 bg-gray-200 dark:bg-gray-700 rounded w-40"}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[1,2,3,4].map(a=>(0,d.jsx)("div",{className:"h-24 bg-gray-200 dark:bg-gray-700 rounded-lg"},a))}),(0,d.jsx)("div",{className:"h-64 bg-gray-200 dark:bg-gray-700 rounded-lg"})]})}},70374:(a,b,c)=>{Promise.resolve().then(c.bind(c,66461))},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},76806:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(29824),g=c(77360),h=c(35005);let i=[{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 j(){let a=(0,g.c)("usage"),[b,c]=(0,e.useState)([]),[j,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(!0),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)({current:0,total:0}),[s,u]=(0,e.useState)({}),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),B=(0,h.i)();(0,e.useCallback)(async()=>{try{let a=await fetch("/api/evals");if(a.ok){let b=await a.json();c(Array.isArray(b)?b:b.suites||[])}}catch{}finally{n(!1)}},[]),(0,e.useCallback)(async()=>{try{let a=await fetch("/api/keys");if(!a.ok)return;let b=await a.json(),c=b?.keys?.[0]?.key||null;l(c)}catch{}},[]);let C=async a=>{try{let b={"Content-Type":"application/json"};j&&(b.Authorization=`Bearer ${j}`);let c=await fetch("/v1/chat/completions",{method:"POST",headers:b,body:JSON.stringify({model:a.model||"gpt-4o",messages:a.input?.messages||[],max_tokens:512,stream:!1})});if(!c.ok)return`[ERROR: HTTP ${c.status}]`;let d=await c.json();return d.choices?.[0]?.message?.content||"[No content returned]"}catch(a){return`[ERROR: ${a.message}]`}},D=async a=>{let b=a.cases||[];if(0===b.length)return void B.warning("No test cases defined for this suite");p(a.id),r({current:0,total:b.length});try{let c={};for(let a=0;a<b.length;a++){r({current:a+1,total:b.length});let d=await C(b[a]);c[b[a].id]=d}let d=await fetch("/api/evals",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({suiteId:a.id,outputs:c})}),e=await d.json();if(u(b=>({...b,[a.id]:e})),e.summary){let{passed:b,failed:c,total:d}=e.summary;0===c?B.success(`All ${d} cases passed ✅`,`Eval: ${a.name}`):B.warning(`${b}/${d} passed, ${c} failed`,`Eval: ${a.name}`)}y(a.id)}catch{B.error("Eval run failed")}finally{p(null),r({current:0,total:0})}},E=b.filter(a=>!v||a.name?.toLowerCase().includes(v.toLowerCase())||a.id?.toLowerCase().includes(v.toLowerCase())),F=b.reduce((a,b)=>a+(b.cases?.length||b.caseCount||0),0),G=[...new Set(b.flatMap(a=>(a.cases||[]).map(a=>a.model)).filter(Boolean))];if(m)return(0,d.jsxs)("div",{className:"flex items-center gap-2 text-text-muted p-8 animate-pulse",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"science"}),"Loading eval suites..."]});if(0===b.length)return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(k,{}),(0,d.jsx)(f.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 H=[{key:"caseName",label:"Case"},{key:"status",label:"Status"},{key:"durationMs",label:"Latency"},{key:"details",label:"Details"}];return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(k,{}),(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:[(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Suites"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-violet-400",children:b.length})]}),(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Test Cases"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-sky-400",children:F})]}),(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Models"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-emerald-400",children:G.length})]}),(0,d.jsxs)(f.Zp,{className:"px-4 py-3 text-center",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted uppercase font-semibold tracking-wide",children:"Coverage"}),(0,d.jsxs)("div",{className:"text-2xl font-bold mt-1 text-amber-400",children:[i.length," strategies"]})]})]}),(0,d.jsxs)(f.Zp,{className:"p-0 overflow-hidden",children:[(0,d.jsxs)("button",{onClick:()=>A(!z),className:"w-full flex items-center justify-between px-6 py-4 hover:bg-surface/30 transition-colors text-left",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-primary/10 text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"help"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:"How It Works"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Learn how evaluations validate your LLM responses"})]})]}),(0,d.jsx)("span",{className:`material-symbols-outlined text-text-muted transition-transform duration-200 ${z?"rotate-180":""}`,children:"expand_more"})]}),z&&(0,d.jsxs)("div",{className:"px-6 pb-6 border-t border-border/10",children:[(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-4",children:[(0,d.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,d.jsx)("div",{className:"w-10 h-10 rounded-full bg-violet-500/20 flex items-center justify-center mb-3",children:(0,d.jsx)("span",{className:"text-lg font-bold text-violet-400",children:"1"})}),(0,d.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:a("define")}),(0,d.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,d.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,d.jsx)("div",{className:"w-10 h-10 rounded-full bg-sky-500/20 flex items-center justify-center mb-3",children:(0,d.jsx)("span",{className:"text-lg font-bold text-sky-400",children:"2"})}),(0,d.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:a("run")}),(0,d.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,d.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,d.jsx)("div",{className:"w-10 h-10 rounded-full bg-emerald-500/20 flex items-center justify-center mb-3",children:(0,d.jsx)("span",{className:"text-lg font-bold text-emerald-400",children:"3"})}),(0,d.jsx)("h4",{className:"text-sm font-semibold text-text-main mb-1",children:a("evaluate")}),(0,d.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,d.jsxs)("div",{className:"mt-6",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide mb-3",children:"Evaluation Strategies"}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2",children:i.map(a=>(0,d.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg ${a.bg} border border-transparent`,children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] ${a.color}`,children:a.icon}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:`text-xs font-mono font-semibold ${a.color}`,children:a.name}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:a.description})]})]},a.name))})]}),G.length>0&&(0,d.jsxs)("div",{className:"mt-6",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide mb-3",children:"Models Under Test"}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:G.map(a=>(0,d.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:a},a))})]})]})]}),(0,d.jsxs)(f.Zp,{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-violet-500/10 text-violet-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"science"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-lg font-semibold",children:a("evalSuites")}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Click a suite to view test cases, then run to evaluate your LLM endpoints"})]})]}),(0,d.jsx)(f.Qn,{searchValue:v,onSearchChange:w,placeholder:"Search suites...",filters:[],activeFilters:{},onFilterChange:()=>{},children:null}),(0,d.jsx)("div",{className:"flex flex-col gap-3 mt-4",children:E.map(a=>{let b=s[a.id],c=o===a.id,e=x===a.id,g=a.cases?.length||a.caseCount||0,h=[...new Set((a.cases||[]).map(a=>a.model).filter(Boolean))];return(0,d.jsxs)("div",{className:"border border-border/30 rounded-lg overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 cursor-pointer hover:bg-surface/30 transition-colors",onClick:()=>y(e?null:a.id),children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:e?"expand_more":"chevron_right"}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-text-main",children:a.name||a.id}),b?.summary&&(0,d.jsxs)("span",{className:`px-2 py-0.5 rounded-full text-xs font-semibold ${100===b.summary.passRate?"bg-emerald-500/10 text-emerald-400":b.summary.passRate>=80?"bg-amber-500/10 text-amber-400":"bg-red-500/10 text-red-400"}`,children:[b.summary.passRate,"% pass"]})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[g," case",1!==g?"s":"",a.description&&(0,d.jsxs)("span",{className:"ml-1",children:["— ",a.description]})]}),h.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1 mt-1",children:h.map(a=>(0,d.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:a},a))})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[c&&q.total>0&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-24 h-1.5 bg-black/10 dark:bg-white/10 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full bg-violet-500 rounded-full transition-all duration-300",style:{width:`${q.current/q.total*100}%`}})}),(0,d.jsxs)("span",{className:"text-xs text-text-muted font-mono tabular-nums",children:[q.current,"/",q.total]})]}),(0,d.jsx)(f.$n,{size:"sm",variant:"primary",onClick:b=>{b.stopPropagation(),D(a)},loading:c,disabled:c,children:c?`Running ${q.current}/${q.total}...`:"Run Eval"})]})]}),e&&(0,d.jsx)("div",{className:"border-t border-border/20 p-4",children:b?.results?(0,d.jsxs)(d.Fragment,{children:[b.summary&&(0,d.jsxs)("div",{className:"flex items-center gap-4 mb-4 p-3 rounded-lg bg-surface/30 border border-border/20",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsxs)("span",{className:`text-lg font-bold ${100===b.summary.passRate?"text-emerald-400":b.summary.passRate>=80?"text-amber-400":"text-red-400"}`,children:[b.summary.passRate,"%"]}),(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"pass rate"})]}),(0,d.jsxs)("div",{className:"text-xs text-text-muted",children:[b.summary.passed," passed \xb7 ",b.summary.failed," ","failed \xb7 ",b.summary.total," total"]}),(0,d.jsx)("div",{className:"flex-1 h-2 bg-black/10 dark:bg-white/10 rounded-full overflow-hidden",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${b.summary.passRate}%`,background:100===b.summary.passRate?"linear-gradient(90deg, #22c55e, #16a34a)":b.summary.passRate>=80?"linear-gradient(90deg, #f59e0b, #d97706)":"linear-gradient(90deg, #ef4444, #dc2626)"}})})]}),(0,d.jsx)(f.bQ,{columns:H,data:b.results.map((a,b)=>({...a,id:a.caseId||b})),renderCell:(a,b)=>{if("status"===b.key)return a.passed?(0,d.jsx)("span",{className:"text-emerald-400",children:"✅ Passed"}):(0,d.jsx)("span",{className:"text-red-400",children:"❌ Failed"});if("durationMs"===b.key)return(0,d.jsx)("span",{className:"text-text-muted text-xs font-mono",children:null!=a.durationMs?`${a.durationMs}ms`:"—"});if("details"===b.key){let b=a.details||{};return(0,d.jsx)("span",{className:"text-text-muted text-xs truncate max-w-[300px] block",children:String(b.searchTerm?`Contains: "${b.searchTerm}"`:b.pattern?`Regex: ${b.pattern}`:b.expected?`Expected: "${String(b.expected).slice(0,50)}"`:a.error||"—")})}return(0,d.jsx)("span",{className:"text-sm text-text-main",children:a[b.key]||"—"})},maxHeight:"400px",emptyMessage:"No results yet"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted",children:"checklist"}),(0,d.jsxs)("span",{className:"text-xs text-text-muted font-medium",children:["Test Cases (",(a.cases||[]).length,")"]})]}),(0,d.jsx)(f.bQ,{columns:[{key:"name",label:"Case"},{key:"model",label:"Model"},{key:"strategy",label:"Strategy"},{key:"expected",label:"Expected"}],data:(a.cases||[]).map((a,b)=>({id:a.id||b,name:a.name,model:a.model||"—",strategy:a.expected?.strategy||"—",expected:a.expected?.value?String(a.expected.value).slice(0,80):"—"})),renderCell:(a,b)=>{if("strategy"===b.key){let b=i.find(b=>b.name===a.strategy);return(0,d.jsx)("span",{className:`text-xs font-mono font-semibold ${b?.color||"text-text-muted"}`,children:a.strategy})}return"model"===b.key?(0,d.jsx)("span",{className:"text-xs font-mono text-primary/80",children:a.model}):"expected"===b.key?(0,d.jsx)("span",{className:"text-text-muted text-xs font-mono truncate max-w-[300px] block",children:a.expected}):(0,d.jsx)("span",{className:"text-sm text-text-main",children:a[b.key]||"—"})},maxHeight:"400px",emptyMessage:"No test cases defined"}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-3 flex items-center gap-1.5",children:[(0,d.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.']})]})})]},a.id)})})]})]})}function k(){return(0,d.jsx)(f.Zp,{className:"p-0 overflow-hidden",children:(0,d.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,d.jsxs)("div",{className:"flex items-start gap-4",children:[(0,d.jsx)("div",{className:"p-3 rounded-xl bg-violet-500/10 text-violet-500",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px]",children:"science"})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h2",{className:"text-xl font-bold text-text-main mb-1",children:t("modelEvals")}),(0,d.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,d.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mt-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-emerald-400",children:"verified"}),"Quality Validation"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-sky-400",children:"compare"}),"Model Comparison"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-amber-400",children:"bug_report"}),"Regression Detection"]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-violet-400",children:"speed"}),"Latency Benchmarks"]})]})]})]})})})}function l(){let[a,b]=(0,e.useState)("overview"),c=(0,g.c)("analytics"),h={overview:c("overviewDescription"),evals:c("evalsDescription")};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[28px]",children:"analytics"}),c("title")]}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:h[a]})]}),(0,d.jsx)(f.Iz,{options:[{value:"overview",label:c("overview")},{value:"evals",label:c("evals")}],value:a,onChange:b}),"overview"===a&&(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(f.Qv,{}),children:(0,d.jsx)(f.cn,{})}),"evals"===a&&(0,d.jsx)(j,{})]})}},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},78622:(a,b,c)=>{Promise.resolve().then(c.bind(c,96255))},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},96255:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/loading.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/loading.tsx","default")},97542:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/OmniRoute/OmniRoute/src/app/(dashboard)/dashboard/analytics/page.tsx","default")},99691:(a,b,c)=>{Promise.resolve().then(c.bind(c,76806))}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,595,5573,8020,3498,3994,4509,2910,3596,2901,4568,1259,9824,5248],()=>b(b.s=22889));module.exports=c})();
|