@yina-npm/openrouterx 0.4.21 → 0.4.22
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 +2 -1
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/routes-manifest.json +6 -0
- package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/user/page.js +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page.js +3 -3
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page.js +2 -2
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/api/auth/login/route.js +1 -1
- package/app/.next/server/app/api/auth/logout/route.js +1 -1
- package/app/.next/server/app/api/auth/me/route.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/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -0
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js.nft.json +1 -0
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route_client-reference-manifest.js +1 -0
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.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/hermes-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/cloud/auth/route.js +1 -1
- package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
- package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
- package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
- package/app/.next/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next/server/app/api/combos/route.js +1 -1
- package/app/.next/server/app/api/health/route.js +1 -1
- package/app/.next/server/app/api/init/route.js +1 -1
- package/app/.next/server/app/api/keys/[id]/route.js +1 -1
- package/app/.next/server/app/api/keys/route.js +1 -1
- package/app/.next/server/app/api/locale/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
- package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next/server/app/api/models/alias/route.js +1 -1
- package/app/.next/server/app/api/models/availability/route.js +1 -1
- package/app/.next/server/app/api/models/custom/route.js +1 -1
- package/app/.next/server/app/api/models/disabled/route.js +1 -1
- package/app/.next/server/app/api/models/route.js +1 -1
- package/app/.next/server/app/api/models/test/route.js +1 -1
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
- package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
- package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next/server/app/api/pricing/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
- package/app/.next/server/app/api/providers/route.js +1 -1
- package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/route.js +1 -1
- package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
- package/app/.next/server/app/api/settings/database/route.js +1 -1
- package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
- package/app/.next/server/app/api/settings/require-login/route.js +1 -1
- package/app/.next/server/app/api/settings/route.js +1 -1
- package/app/.next/server/app/api/shutdown/route.js +1 -1
- package/app/.next/server/app/api/tags/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next/server/app/api/translator/load/route.js +1 -1
- package/app/.next/server/app/api/translator/save/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/status/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
- package/app/.next/server/app/api/usage/chart/route.js +1 -1
- package/app/.next/server/app/api/usage/history/route.js +1 -1
- package/app/.next/server/app/api/usage/logs/route.js +1 -1
- package/app/.next/server/app/api/usage/providers/route.js +1 -1
- package/app/.next/server/app/api/usage/request-details/route.js +1 -1
- package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
- package/app/.next/server/app/api/usage/stats/route.js +1 -1
- package/app/.next/server/app/api/usage/stream/route.js +2 -2
- package/app/.next/server/app/api/users/[id]/route.js +1 -1
- package/app/.next/server/app/api/users/route.js +1 -1
- package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
- package/app/.next/server/app/api/v1/messages/route.js +1 -1
- package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
- package/app/.next/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next/server/app/api/v1/models/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next/server/app/api/v1/responses/route.js +1 -1
- package/app/.next/server/app/api/v1/route.js +1 -1
- package/app/.next/server/app/api/v1/search/route.js +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/api/version/update/route.js +1 -1
- package/app/.next/server/app/callback/page.js +2 -2
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/favicon.ico/route.js +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing/page.js +2 -2
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page.js +2 -2
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/app/.next/server/app/page.js +2 -2
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +2 -1
- package/app/.next/server/chunks/3913.js +1 -1
- package/app/.next/server/chunks/4122.js +1 -1
- package/app/.next/server/chunks/7595.js +1 -1
- package/app/.next/server/chunks/7937.js +1 -1
- package/app/.next/server/chunks/9547.js +17 -2
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +3 -3
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/static/5xyYjBoSvv2Kb5BwIi7pF/_buildManifest.js +1 -0
- package/app/.next/static/chunks/{1321-b84130cd27e8b78c.js → 1321-8d71ef3958ddd91f.js} +1 -1
- package/app/.next/static/chunks/{2336-5b3617dc05c223ff.js → 2336-9fd2cc8ed73b0db4.js} +21 -6
- package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-d1c369e2c3fb727b.js → page-e26f08039efe859c.js} +1 -1
- package/app/.next/static/chunks/app/_global-error/{page-d1c369e2c3fb727b.js → page-e26f08039efe859c.js} +1 -1
- package/app/.next/static/chunks/app/api/auth/login/{route-d1c369e2c3fb727b.js → route-e26f08039efe859c.js} +1 -1
- package/app/.next/static/chunks/app/api/auth/logout/{route-d1c369e2c3fb727b.js → route-e26f08039efe859c.js} +1 -1
- package/app/.next/static/chunks/app/api/auth/me/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/auth/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/combos/[id]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/combos/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/health/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/init/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/keys/[id]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/keys/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/locale/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/models/alias/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/models/availability/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/models/custom/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/models/disabled/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/models/test/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/pricing/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/client/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/test-batch/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/providers/validate/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/database/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/require-login/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/settings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/shutdown/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tags/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/load/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/save/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/send/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/translator/translate/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/disable/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/enable/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/status/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/api-keys/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/chart/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/history/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/logs/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/providers/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-details/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/request-logs/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stats/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/usage/stream/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/users/[id]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/users/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/api/chat/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/embeddings/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/images/generations/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/messages/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/info/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/responses/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/search/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/v1beta/models/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/version/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/api/version/update/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/manifest.webmanifest/route-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/app/page-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-e26f08039efe859c.js +1 -0
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-e26f08039efe859c.js +1 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next/static/2TCKT7FIN7PE7ZJ20oAeb/_buildManifest.js +0 -1
- package/app/.next/static/chunks/app/api/auth/me/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/auth/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/credentials/update/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/model/resolve/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/cloud/models/alias/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/combos/[id]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/combos/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/health/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/init/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/keys/[id]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/keys/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/locale/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/models/alias/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/models/availability/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/models/custom/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/models/disabled/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/models/test/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/cursor/import/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/import/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/pricing/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/provider-nodes/validate/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/client/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/suggested-models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/test-batch/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/providers/validate/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/settings/database/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/settings/proxy-test/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/settings/require-login/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/settings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/shutdown/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tags/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/translator/load/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/translator/save/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/translator/send/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/translator/translate/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/disable/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/enable/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/status/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/[connectionId]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/api-keys/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/chart/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/history/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/logs/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/providers/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-details/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/request-logs/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stats/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/usage/stream/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/users/[id]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/users/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/api/chat/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/speech/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/audio/voices/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/chat/completions/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/embeddings/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/images/generations/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/messages/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/[kind]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/info/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/compact/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/responses/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/search/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1/web/fetch/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/v1beta/models/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/version/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/api/version/update/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/manifest.webmanifest/route-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/app/page-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-d1c369e2c3fb727b.js +0 -1
- package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d1c369e2c3fb727b.js +0 -1
- /package/app/.next/static/{2TCKT7FIN7PE7ZJ20oAeb → 5xyYjBoSvv2Kb5BwIi7pF}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var a={};a.id=8460,a.ids=[8460],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1361:(a,b,c)=>{Promise.resolve().then(c.bind(c,57422))},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4232:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(71797),A=c(89125),B=c(86439),C=c(77068),D=c(27269),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["providers",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,44030)),"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,30508)),"/Users/bytedance/Documents/9router/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,32059)),"/Users/bytedance/Documents/9router/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/providers/page",pathname:"/dashboard/providers",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/providers/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let k,m=N.getVaryHeader(ag,al);b.setHeader("Vary",m);let o=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return N.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.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=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aV} ${U}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await o(e,k),{metadata:m}=l,{cacheControl:n,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==n?void 0:n.revalidate)===0&&!N.isDev&&!aD){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===N.isDev,m=c||b.writableEnded;try{let f;if(ap&&ah&&!g&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(f=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(f=v.FallbackMode.PRERENDER),f===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ap=!0),ap&&(f!==v.FallbackMode.NOT_FOUND||g)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&f!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&f===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!p||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,p,aD,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let o=ap||i||!aH?void 0:aH;if(aN&&!T&&p&&(aJ||ay)&&!k){let b=await p.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(o=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,p,aD,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:o,fallbackRouteParams:s,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}},D=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){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)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let p=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(p&&await p(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),q({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(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:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return k=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},D),void 0,!aY);await D(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11089:(a,b,c)=>{Promise.resolve().then(c.bind(c,44030))},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},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")},44030:(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 \"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57422:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>w});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(72738),j=c(12020),k=c(96919),l=c(2116),m=c.n(l),n=c(41371),o=c(37365);let p={available:{icon:"check_circle",color:"#22c55e",label:"Available"},cooldown:{icon:"schedule",color:"#f59e0b",label:"Cooldown"},unavailable:{icon:"error",color:"#ef4444",label:"Unavailable"},unknown:{icon:"help",color:"#6b7280",label:"Unknown"}};function q(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(null),l=(0,e.useRef)(null),m=(0,n.i)(),o=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/models/availability");if(a.ok){let c=await a.json();b(c)}}catch{}finally{f(!1)}},[]),q=async(a,b)=>{k(`${a}:${b}`);try{(await fetch("/api/models/availability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clearCooldown",provider:a,model:b})})).ok?(m.success(`Cooldown cleared for ${b}`),await o()):m.error("Failed to clear cooldown")}catch{m.error("Failed to clear cooldown")}finally{k(null)}};if(c)return null;let r=a?.models||[],s=0===(a?.unavailableCount||r.filter(a=>"available"!==a.status).length),t={};return r.forEach(a=>{if("available"===a.status)return;let b=a.provider||"unknown";t[b]||(t[b]=[]),t[b].push(a)}),(0,d.jsx)("div",{className:"relative",ref:l,children:g&&(0,d.jsxs)("div",{className:"absolute top-full right-0 mt-2 w-80 bg-surface border border-border rounded-xl shadow-2xl z-50 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-bg",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",style:{color:s?"#22c55e":"#f59e0b"},children:s?"verified":"warning"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Model Status"})]}),(0,d.jsx)("button",{onClick:o,className:"p-1 rounded-lg hover:bg-surface text-text-muted hover:text-text-main transition-colors",title:"Refresh",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"refresh"})})]}),(0,d.jsx)("div",{className:"px-4 py-3 max-h-60 overflow-y-auto",children:s?(0,d.jsx)("p",{className:"text-sm text-text-muted text-center py-2",children:"All models are responding normally."}):(0,d.jsx)("div",{className:"flex flex-col gap-2.5",children:Object.entries(t).map(([a,b])=>(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xs font-semibold text-text-main mb-1.5 capitalize",children:a}),(0,d.jsx)("div",{className:"flex flex-col gap-1",children:b.map(a=>{let b=p[a.status]||p.unknown,c=j===`${a.provider}:${a.model}`;return(0,d.jsxs)("div",{className:"flex items-center justify-between px-2.5 py-1.5 rounded-lg bg-surface/30",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] shrink-0",style:{color:b.color},children:b.icon}),(0,d.jsx)("span",{className:"font-mono text-xs text-text-main truncate",children:a.model})]}),"cooldown"===a.status&&(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",onClick:()=>q(a.provider,a.model),disabled:c,className:"text-[10px] px-1.5! py-0.5! ml-2",children:c?"...":"Clear"})]},`${a.provider}-${a.model}`)})})]},a))})})]})})}var r=c(45390);let s=[{value:"openai-compatible",label:"OpenAI Compatible"},{value:"anthropic-compatible",label:"Anthropic Compatible"}],t=[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}];function u({isOpen:a,onClose:b,onImported:c,notify:f}){let[g,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)({type:"openai-compatible",apiType:"chat",name:"",prefix:"",baseUrl:"",connectionName:"Imported Key",apiKey:"",modelId:""}),v=()=>{i(""),k(null),m(!1),o(""),q({type:"openai-compatible",apiType:"chat",name:"",prefix:"",baseUrl:"",connectionName:"Imported Key",apiKey:"",modelId:""}),b()},w=async()=>{if(p.name.trim()&&p.prefix.trim()&&p.baseUrl.trim()){m(!0);try{let a={name:p.name.trim(),prefix:p.prefix.trim(),baseUrl:p.baseUrl.trim(),type:p.type};"openai-compatible"===p.type&&(a.apiType=p.apiType);let b=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await b.json();if(!b.ok)throw Error(d.error||"Failed to create compatible provider");let e=null;if(p.apiKey.trim()){let a=await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:d.node.id,apiKey:p.apiKey.trim(),name:p.connectionName.trim()||"Imported Key",testStatus:"unknown"})}),b=await a.json();if(!a.ok)throw Error(b.error||"Compatible provider created, but API key import failed");e=b.connection}f.success("Compatible provider imported from cURL"),c?.({node:d.node,connection:e}),v()}catch(a){f.error(a.message||"Failed to import curl")}finally{m(!1)}}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Import Compatible Provider From cURL",onClose:v,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Paste cURL"}),(0,d.jsx)("textarea",{value:g,onChange:a=>i(a.target.value),placeholder:'curl --request POST --url https://api.example.com/v1/chat/completions --header \'Authorization: Bearer sk-xxx\' --header \'Content-Type: application/json\' --data \'{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}\'',className:"min-h-40 w-full rounded-lg border border-border bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Supports full endpoint URLs like `/v1/chat/completions`, `/responses`, or `/v1/messages`."}),(0,d.jsx)(h.$n,{onClick:()=>{try{let a=(0,r.Sq)(g);k(a),o(""),q({type:a.type,apiType:a.apiType||"chat",name:a.defaultName,prefix:a.defaultPrefix,baseUrl:a.baseUrl,connectionName:a.defaultConnectionName,apiKey:a.apiKey,modelId:a.modelId})}catch(a){k(null),o(a.message||"Failed to parse curl")}},variant:"secondary",className:"w-full sm:w-auto",children:"Parse cURL"})]}),n&&(0,d.jsx)("p",{className:"text-sm text-red-500",children:n})]}),j&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Detected"}),(0,d.jsx)(h.Ex,{variant:"default",children:"anthropic-compatible"===p.type?"Anthropic Compatible":"OpenAI Compatible"}),"openai-compatible"===p.type&&(0,d.jsx)(h.Ex,{variant:"default",children:"responses"===p.apiType?"Responses API":"Chat Completions"})]}),(0,d.jsx)(h.l6,{label:"Provider Type",value:p.type,options:s,onChange:a=>q(b=>({...b,type:a.target.value,apiType:"anthropic-compatible"===a.target.value?"chat":b.apiType}))}),"openai-compatible"===p.type&&(0,d.jsx)(h.l6,{label:"API Type",value:p.apiType,options:t,onChange:a=>q(b=>({...b,apiType:a.target.value}))}),(0,d.jsx)(h.pd,{label:"Provider Name",value:p.name,onChange:a=>q(b=>({...b,name:a.target.value})),placeholder:"Compatible Provider"}),(0,d.jsx)(h.pd,{label:"Prefix",value:p.prefix,onChange:a=>q(b=>({...b,prefix:a.target.value})),placeholder:"oc-example"}),(0,d.jsx)(h.pd,{label:"Base URL",value:p.baseUrl,onChange:a=>q(b=>({...b,baseUrl:a.target.value})),placeholder:"https://api.example.com/v1"}),(0,d.jsx)(h.pd,{label:"Connection Name",value:p.connectionName,onChange:a=>q(b=>({...b,connectionName:a.target.value})),placeholder:"Imported Key"}),(0,d.jsx)(h.pd,{label:"API Key",type:"password",value:p.apiKey,onChange:a=>q(b=>({...b,apiKey:a.target.value})),placeholder:"Bearer token from curl"}),(0,d.jsx)(h.pd,{label:"Detected Model",value:p.modelId,onChange:a=>q(b=>({...b,modelId:a.target.value})),placeholder:"Optional"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:w,fullWidth:!0,disabled:!j||!p.name.trim()||!p.prefix.trim()||!p.baseUrl.trim()||l,children:l?"Importing...":"Create Provider"}),(0,d.jsx)(h.$n,{onClick:v,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function v(a,b,c){let e=[];if(a>0&&e.push((0,d.jsxs)(h.Ex,{variant:"success",size:"sm",dot:!0,children:[a," Connected"]},"connected")),b>0){let a=c?`${b} Error (${c})`:`${b} Error`;e.push((0,d.jsx)(h.Ex,{variant:"error",size:"sm",dot:!0,children:a},"error"))}return 0===e.length?(0,d.jsx)("span",{className:"text-text-muted",children:"No connections"}):e}function w(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)([]),[g,i]=(0,e.useState)(!0),[l,m]=(0,e.useState)(!1),[p,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[v,w]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=(0,n.i)(),F=(0,o.C)(a=>a.query);(0,o.C)(a=>a.register),(0,o.C)(a=>a.unregister);let G=a=>!F.trim()||a.toLowerCase().includes(F.trim().toLowerCase()),H=(b,c)=>{let d=a.filter(a=>a.provider===b&&a.authType===c),e=a=>{let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"},f=d.filter(a=>{let b=e(a);return"active"===b||"success"===b}).length,g=d.filter(a=>{let b=e(a);return"error"===b||"expired"===b||"unavailable"===b}),h=g.length,i=d.length,j=i>0&&d.every(a=>!1===a.isActive),k=g.sort((a,b)=>new Date(b.lastErrorAt||0)-new Date(a.lastErrorAt||0))[0];return{connected:f,error:h,total:i,errorCode:k?function(a){if(!a)return null;let b=a.lastErrorType;if("runtime_error"===b)return"RUNTIME";if("upstream_auth_error"===b||"auth_missing"===b||"token_refresh_failed"===b||"token_expired"===b)return"AUTH";if("upstream_rate_limited"===b)return"429";if("upstream_unavailable"===b)return"5XX";if("network_error"===b)return"NET";let c=Number(a.errorCode);if(Number.isFinite(c)&&c>=400)return String(c);let d=function(a){if(!a)return null;let b=a.match(/\b([45]\d{2})\b/);return b?b[1]:"ERR"}(a.lastError);if("401"===d||"403"===d)return"AUTH";if(d&&"ERR"!==d)return d;let e=(a.lastError||"").toLowerCase();return e.includes("runtime")||e.includes("not runnable")||e.includes("not installed")?"RUNTIME":e.includes("invalid api key")||e.includes("token invalid")||e.includes("revoked")||e.includes("unauthorized")?"AUTH":"ERR"}(k):null,errorTime:k?.lastErrorAt?function(a){if(!a)return"";let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);return`${d}d ago`}(k.lastErrorAt):null,allDisabled:j}},I=async(c,d,e)=>{let f=a.filter(a=>a.provider===c&&a.authType===d);b(a=>a.map(a=>a.provider===c&&a.authType===d?{...a,isActive:e}:a)),await Promise.allSettled(f.map(a=>fetch(`/api/providers/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:e})})))},J=async(a,b=null)=>{if(!v){w("provider"===a?b:a),D(null);try{let c=await fetch("/api/providers/test-batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:a,providerId:b})}),d=await c.json();if(D(d),d.summary){let{passed:a,failed:b,total:c}=d.summary;0===b?E.success(`All ${c} tests passed`):E.warning(`${a}/${c} passed, ${b} failed`)}}catch(a){D({error:"Test request failed"}),E.error("Provider test failed")}finally{w(null)}}},K=c.filter(a=>"openai-compatible"===a.type).map(a=>({id:a.id,name:a.name||"OpenAI Compatible",color:"#10A37F",textIcon:"OC",apiType:a.apiType})).filter(a=>G(a.name)),L=c.filter(a=>"anthropic-compatible"===a.type).map(a=>({id:a.id,name:a.name||"Anthropic Compatible",color:"#D97757",textIcon:"AC"})).filter(a=>G(a.name)),M=Object.entries(j.zN).filter(([,a])=>G(a.name)),N=Object.entries(k.IS).filter(([,a])=>G(a.name)),O=Object.entries(k.nJ).filter(([,a])=>G(a.name)),P=Object.entries(j.fg).filter(([,a])=>(a.serviceKinds??["llm"]).includes("llm")&&G(a.name));if(g)return(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]});let Q=M.length>0||N.length>0||O.length>0||P.length>0||K.length>0||L.length>0;return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[!Q&&(0,d.jsxs)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] text-text-muted mb-2",children:"search_off"}),(0,d.jsx)("p",{className:"text-text-muted text-sm",children:"No providers match your search"})]}),M.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:"OAuth Providers"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsx)(q,{}),(0,d.jsxs)("button",{onClick:()=>J("oauth"),disabled:!!v,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"oauth"===v?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all OAuth connections","aria-label":"Test all OAuth connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"oauth"===v?" animate-spin":""}`,children:"play_arrow"}),"oauth"===v?"Testing...":"Test All"]})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:M.map(([a,b])=>(0,d.jsx)(x,{providerId:a,provider:b,stats:H(a,"oauth"),authType:"oauth",onToggle:b=>I(a,"oauth",b)},a))})]}),(N.length>0||O.length>0)&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:"Free Tier Providers"}),(0,d.jsxs)("button",{onClick:()=>J("free"),disabled:!!v,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"free"===v?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all Free connections","aria-label":"Test all Free provider connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"free"===v?" animate-spin":""}`,children:"play_arrow"}),"free"===v?"Testing...":"Test All"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:[N.map(([a,b])=>(0,d.jsx)(x,{providerId:a,provider:b,stats:H(a,"oauth"),authType:"free",onToggle:b=>I(a,"oauth",b)},a)),O.map(([a,b])=>(0,d.jsx)(y,{providerId:a,provider:b,stats:H(a,"apikey"),authType:"apikey",onToggle:b=>I(a,"apikey",b)},a))]})]}),P.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:["API Key Providers"," "]}),(0,d.jsxs)("button",{onClick:()=>J("apikey"),disabled:!!v,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"apikey"===v?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all API Key connections","aria-label":"Test all API Key connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"apikey"===v?" animate-spin":""}`,children:"play_arrow"}),"apikey"===v?"Testing...":"Test All"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:P.map(([a,b])=>(0,d.jsx)(y,{providerId:a,provider:b,stats:H(a,"apikey"),authType:"apikey",onToggle:b=>I(a,"apikey",b)},a))})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:["API Key Compatible Providers"," "]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto",children:[(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"upload",onClick:()=>t(!0),className:"w-full sm:w-auto",children:"Import cURL"}),(0,d.jsx)(h.$n,{size:"sm",icon:"add",onClick:()=>r(!0),className:"w-full sm:w-auto",children:"Add Anthropic Compatible"}),(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"add",onClick:()=>m(!0),className:"w-full !bg-white !text-black hover:!bg-gray-100 sm:w-auto",children:"Add OpenAI Compatible"})]})]}),0===K.length&&0===L.length?(0,d.jsxs)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] text-text-muted mb-2",children:"extension"}),(0,d.jsx)("p",{className:"text-text-muted text-sm",children:"No compatible providers added yet"}),(0,d.jsx)("p",{className:"text-text-muted text-xs mt-1",children:"Use the buttons above to add OpenAI or Anthropic compatible endpoints"})]}):(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:[...K,...L].map(a=>(0,d.jsx)(y,{providerId:a.id,provider:a,stats:H(a.id,"apikey"),authType:"compatible",onToggle:b=>I(a.id,"apikey",b)},a.id))})]}),(0,d.jsx)(z,{isOpen:l,onClose:()=>m(!1),onCreated:a=>{f(b=>[...b,a]),m(!1)}}),(0,d.jsx)(A,{isOpen:p,onClose:()=>r(!1),onCreated:a=>{f(b=>[...b,a]),r(!1)}}),(0,d.jsx)(u,{isOpen:s,onClose:()=>t(!1),notify:E,onImported:({node:a,connection:c})=>{f(b=>[...b,a]),c&&b(a=>[...a,c]),t(!1)}}),C&&(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-start justify-center px-3 pt-[6vh] sm:pt-[10vh]",onClick:()=>D(null),children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),(0,d.jsxs)("div",{className:"relative bg-surface border border-border rounded-xl w-full max-w-[600px] max-h-[86vh] sm:max-h-[80vh] overflow-y-auto shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"sticky top-0 z-10 flex items-center justify-between px-5 py-3 border-b border-border bg-surface/95 backdrop-blur-sm rounded-t-xl",children:[(0,d.jsx)("h3",{className:"font-semibold",children:"Test Results"}),(0,d.jsx)("button",{onClick:()=>D(null),className:"p-1 rounded-lg hover:bg-bg text-text-muted hover:text-text-main transition-colors","aria-label":"Close test results",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]}),(0,d.jsx)("div",{className:"p-5",children:(0,d.jsx)(B,{results:C})})]})]})]})}function x({providerId:a,provider:b,stats:c,authType:e,onToggle:f}){let{connected:g,error:j,errorCode:k,errorTime:l,allDisabled:n}=c,o=!!b.noAuth;return(0,d.jsx)(m(),{href:`/dashboard/providers/${a}`,className:"group min-w-0",children:(0,d.jsx)(h.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${n?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 shrink-0 rounded-lg flex items-center justify-center",style:{backgroundColor:`${b.color?.length>7?b.color:b.color+"15"}`},children:(0,d.jsx)(i.A,{src:`/providers/${b.id}.png`,alt:b.name,size:30,className:"object-contain rounded-lg max-w-[32px] max-h-[32px]",fallbackText:b.textIcon||b.id.slice(0,2).toUpperCase(),fallbackColor:b.color})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"truncate font-semibold",children:b.name}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 text-xs flex-wrap",children:n?(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):o?(0,d.jsx)(h.Ex,{variant:"success",size:"sm",dot:!0,children:"Ready"}):(0,d.jsxs)(d.Fragment,{children:[v(g,j,k),l&&(0,d.jsx)("span",{className:"text-text-muted",children:l})]})})]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c.total>0&&(0,d.jsx)("div",{className:"opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:a=>{a.preventDefault(),a.stopPropagation(),f(!!n)},children:(0,d.jsx)(h.lM,{size:"sm",checked:!n,onChange:()=>{},title:n?"Enable provider":"Disable provider"})})})]})})})}function y({providerId:a,provider:b,stats:c,authType:e,onToggle:f}){let{connected:g,error:j,errorCode:l,errorTime:n,allDisabled:o}=c,p=a.startsWith(k.JH),q=a.startsWith(k.DI);return(0,d.jsx)(m(),{href:`/dashboard/providers/${a}`,className:"group min-w-0",children:(0,d.jsx)(h.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${o?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 shrink-0 rounded-lg flex items-center justify-center",style:{backgroundColor:`${b.color?.length>7?b.color:b.color+"15"}`},children:(0,d.jsx)(i.A,{src:p?"responses"===b.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":q?"/providers/anthropic-m.png":`/providers/${b.id}.png`,alt:b.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:b.textIcon||b.id.slice(0,2).toUpperCase(),fallbackColor:b.color})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"truncate font-semibold",children:b.name}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 text-xs flex-wrap",children:o?(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):(0,d.jsxs)(d.Fragment,{children:[v(g,j,l),p&&(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:"responses"===b.apiType?"Responses":"Chat"}),q&&(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:"Messages"}),n&&(0,d.jsx)("span",{className:"text-text-muted",children:n})]})})]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c.total>0&&(0,d.jsx)("div",{className:"opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:a=>{a.preventDefault(),a.stopPropagation(),f(!!o)},children:(0,d.jsx)(h.lM,{size:"sm",checked:!o,onChange:()=>{},title:o?"Enable provider":"Disable provider"})})})]})})})}function z({isOpen:a,onClose:b,onCreated:c}){let[f,g]=(0,e.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=async()=>{if(f.name.trim()&&f.prefix.trim()&&f.baseUrl.trim()){j(!0);try{let a=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name,prefix:f.prefix,apiType:f.apiType,baseUrl:f.baseUrl,type:"openai-compatible"})}),b=await a.json();a.ok&&(c(b.node),g({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),l(""),r(null))}catch(a){console.log("Error creating OpenAI Compatible node:",a)}finally{j(!1)}}},t=async()=>{p(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:f.baseUrl,apiKey:k,type:"openai-compatible",modelId:m.trim()||void 0})}),b=await a.json();b.normalizedBaseUrl&&g(a=>({...a,baseUrl:b.normalizedBaseUrl,apiType:b.inferredApiType||a.apiType})),r(b)}catch{r({valid:!1,error:"Network error"})}finally{p(!1)}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Add OpenAI Compatible",onClose:b,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Name",value:f.name,onChange:a=>g({...f,name:a.target.value}),placeholder:"OpenAI Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,d.jsx)(h.pd,{label:"Prefix",value:f.prefix,onChange:a=>g({...f,prefix:a.target.value}),placeholder:"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,d.jsx)(h.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:f.apiType,onChange:a=>g({...f,apiType:a.target.value})}),(0,d.jsx)(h.pd,{label:"Base URL",value:f.baseUrl,onChange:a=>g({...f,baseUrl:a.target.value}),placeholder:"https://api.openai.com/v1",hint:"Use the base URL (ending in /v1) for your OpenAI-compatible API."}),(0,d.jsx)(h.pd,{label:"API Key (for Check)",type:"password",value:k,onChange:a=>l(a.target.value)}),(0,d.jsx)(h.pd,{label:"Model ID (optional)",value:m,onChange:a=>n(a.target.value),placeholder:"e.g. gpt-4, claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[(0,d.jsx)(h.$n,{onClick:t,disabled:!k||o||!f.baseUrl.trim(),variant:"secondary",className:"w-full sm:w-auto",children:o?"Checking...":"Check"}),(()=>{if(!q)return null;let{valid:a,error:b,method:c}=q;return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Valid"}),"chat"===c&&(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(h.Ex,{variant:"error",children:"Invalid"}),b&&(0,d.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,d.jsx)(h.$n,{onClick:s,fullWidth:!0,disabled:!f.name.trim()||!f.prefix.trim()||!f.baseUrl.trim()||i,children:i?"Creating...":"Create"}),(0,d.jsx)(h.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function A({isOpen:a,onClose:b,onCreated:c}){let[f,g]=(0,e.useState)({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=async()=>{if(f.name.trim()&&f.prefix.trim()&&f.baseUrl.trim()){j(!0);try{let a=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name,prefix:f.prefix,baseUrl:f.baseUrl,type:"anthropic-compatible"})}),b=await a.json();a.ok&&(c(b.node),g({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),l(""),r(null))}catch(a){console.log("Error creating Anthropic Compatible node:",a)}finally{j(!1)}}},t=async()=>{p(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:f.baseUrl,apiKey:k,type:"anthropic-compatible",modelId:m.trim()||void 0})}),b=await a.json();b.normalizedBaseUrl&&g(a=>({...a,baseUrl:b.normalizedBaseUrl})),r(b)}catch{r({valid:!1,error:"Network error"})}finally{p(!1)}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Add Anthropic Compatible",onClose:b,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Name",value:f.name,onChange:a=>g({...f,name:a.target.value}),placeholder:"Anthropic Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,d.jsx)(h.pd,{label:"Prefix",value:f.prefix,onChange:a=>g({...f,prefix:a.target.value}),placeholder:"ac-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,d.jsx)(h.pd,{label:"Base URL",value:f.baseUrl,onChange:a=>g({...f,baseUrl:a.target.value}),placeholder:"https://api.anthropic.com/v1",hint:"Use the base URL (ending in /v1) for your Anthropic-compatible API. The system will append /messages."}),(0,d.jsx)(h.pd,{label:"API Key (for Check)",type:"password",value:k,onChange:a=>l(a.target.value)}),(0,d.jsx)(h.pd,{label:"Model ID (optional)",value:m,onChange:a=>n(a.target.value),placeholder:"e.g. claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[(0,d.jsx)(h.$n,{onClick:t,disabled:!k||o||!f.baseUrl.trim(),variant:"secondary",className:"w-full sm:w-auto",children:o?"Checking...":"Check"}),(()=>{if(!q)return null;let{valid:a,error:b,method:c}=q;return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Valid"}),"chat"===c&&(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(h.Ex,{variant:"error",children:"Invalid"}),b&&(0,d.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,d.jsx)(h.$n,{onClick:s,fullWidth:!0,disabled:!f.name.trim()||!f.prefix.trim()||!f.baseUrl.trim()||i,children:i?"Creating...":"Create"}),(0,d.jsx)(h.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function B({results:a}){if(a.error&&!a.results)return(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-red-500 text-[32px] mb-2 block",children:"error"}),(0,d.jsx)("p",{className:"text-sm text-red-400",children:a.error})]});let{summary:b,mode:c}=a,e=a.results||[];return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[b&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs mb-1 sm:gap-3",children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[{oauth:"OAuth",free:"Free",apikey:"API Key",provider:"Provider",all:"All"}[c]||c," Test"]}),(0,d.jsxs)("span",{className:"px-2 py-0.5 rounded bg-emerald-500/15 text-emerald-400 font-medium",children:[b.passed," passed"]}),b.failed>0&&(0,d.jsxs)("span",{className:"px-2 py-0.5 rounded bg-red-500/15 text-red-400 font-medium",children:[b.failed," failed"]}),(0,d.jsxs)("span",{className:"text-text-muted sm:ml-auto",children:[b.total," tested"]})]}),e.map((a,b)=>(0,d.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 rounded-lg bg-black/[0.03] px-3 py-2 text-xs dark:bg-white/[0.03] sm:flex-nowrap",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[16px] ${a.valid?"text-emerald-500":"text-red-500"}`,children:a.valid?"check_circle":"error"}),(0,d.jsxs)("div",{className:"min-w-0 flex-[1_1_160px]",children:[(0,d.jsx)("span",{className:"block truncate font-medium sm:inline",children:a.connectionName}),(0,d.jsxs)("span",{className:"block truncate text-text-muted sm:ml-1.5 sm:inline",children:["(",a.provider,")"]})]}),void 0!==a.latencyMs&&(0,d.jsxs)("span",{className:"shrink-0 text-text-muted font-mono tabular-nums",children:[a.latencyMs,"ms"]}),(0,d.jsx)("span",{className:`shrink-0 text-[10px] uppercase font-bold px-1.5 py-0.5 rounded ${a.valid?"bg-emerald-500/15 text-emerald-400":"bg-red-500/15 text-red-400"}`,children:a.valid?"OK":a.diagnosis?.type||"ERROR"})]},a.connectionId||b)),0===e.length&&(0,d.jsx)("div",{className:"text-center py-4 text-text-muted text-sm",children:"No active connections found for this group."})]})}u.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onImported:g().func,notify:g().shape({success:g().func.isRequired,error:g().func.isRequired}).isRequired},x.propTypes={providerId:g().string.isRequired,provider:g().shape({id:g().string.isRequired,name:g().string.isRequired,color:g().string,textIcon:g().string}).isRequired,stats:g().shape({connected:g().number,error:g().number,errorCode:g().string,errorTime:g().string}).isRequired,authType:g().string,onToggle:g().func},y.propTypes={providerId:g().string.isRequired,provider:g().shape({id:g().string.isRequired,name:g().string.isRequired,color:g().string,textIcon:g().string,apiType:g().string}).isRequired,stats:g().shape({connected:g().number,error:g().number,errorCode:g().string,errorTime:g().string}).isRequired,authType:g().string,onToggle:g().func},z.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onCreated:g().func.isRequired},A.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onCreated:g().func.isRequired},B.propTypes={results:g().shape({mode:g().string,results:g().array,summary:g().shape({total:g().number,passed:g().number,failed:g().number}),error:g().string}).isRequired}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},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")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,8838,6184,5296,63,7861,5573,3913,9718,5681,8760,5627,6182,2506,3855,4122,412,6774],()=>b(b.s=4232));module.exports=c})();
|
|
1
|
+
(()=>{var a={};a.id=8460,a.ids=[8460],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1361:(a,b,c)=>{Promise.resolve().then(c.bind(c,57422))},1932:a=>{"use strict";a.exports=require("url")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11089:(a,b,c)=>{Promise.resolve().then(c.bind(c,44030))},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},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")},37162:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(7553),e=c(84006),f=c(67798),g=c(34775),h=c(99373),i=c(73461),j=c(1020),k=c(26349),l=c(54365),m=c(16023),n=c(63747),o=c(24235),p=c(23938),q=c(261),r=c(66758),s=c(77243),t=c(26713),u=c(37527),v=c(22820),w=c(88216),x=c(47929),y=c(79551),z=c(71797),A=c(89125),B=c(86439),C=c(77068),D=c(27269),E=c(61287),F=c(81494),G=c(70722),H=c(70753),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["providers",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,44030)),"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,30508)),"/Users/bytedance/Documents/9router/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,32059)),"/Users/bytedance/Documents/9router/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,95547,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,55091,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,45270,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,28193,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,70440))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/providers/page",pathname:"/dashboard/providers",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/providers/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(95726).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let k,m=N.getVaryHeader(ag,al);b.setHeader("Vary",m);let o=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return N.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.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=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),k&&k!==c&&(k.setAttribute("http.route",d),k.updateName(a))}else c.updateName(`${aV} ${U}`)})},p=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==p||p.resetRequestCache(),globalThis.__incrementalCache=p;let q=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:p,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await o(e,k),{metadata:m}=l,{cacheControl:n,headers:q={},fetchTags:r,fetchMetrics:s}=m;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==n?void 0:n.revalidate)===0&&!N.isDev&&!aD){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},r=async({hasResolved:c,previousCacheEntry:g,isRevalidating:i,span:j,forceStaticRender:k=!1})=>{let l=!1===N.isDev,m=c||b.writableEnded;try{let f;if(ap&&ah&&!g&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(f=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(f=v.FallbackMode.PRERENDER),f===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==g?void 0:g.isStale)===-1&&(ap=!0),ap&&(f!==v.FallbackMode.NOT_FOUND||g)&&(f=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&f!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&f===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>q({span:j,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!p||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,p,aD,!1,a=>q({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let o=ap||i||!aH?void 0:aH;if(aN&&!T&&p&&(aJ||ay)&&!k){let b=await p.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(o=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,p,aD,!1,a=>r({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return q({span:j,postponed:o,fallbackRouteParams:s,forceStaticRender:k})}catch(b){throw(null==g?void 0:g.isStale)&&await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}},D=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>r({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){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)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let p=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(p&&await p(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),q({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(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:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return k=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},D),void 0,!aY);await D(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},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")},44030:(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 \"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57422:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>w});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(72738),j=c(12020),k=c(96919),l=c(2116),m=c.n(l),n=c(41371),o=c(37365);let p={available:{icon:"check_circle",color:"#22c55e",label:"Available"},cooldown:{icon:"schedule",color:"#f59e0b",label:"Cooldown"},unavailable:{icon:"error",color:"#ef4444",label:"Unavailable"},unknown:{icon:"help",color:"#6b7280",label:"Unknown"}};function q(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(null),l=(0,e.useRef)(null),m=(0,n.i)(),o=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/models/availability");if(a.ok){let c=await a.json();b(c)}}catch{}finally{f(!1)}},[]),q=async(a,b)=>{k(`${a}:${b}`);try{(await fetch("/api/models/availability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clearCooldown",provider:a,model:b})})).ok?(m.success(`Cooldown cleared for ${b}`),await o()):m.error("Failed to clear cooldown")}catch{m.error("Failed to clear cooldown")}finally{k(null)}};if(c)return null;let r=a?.models||[],s=0===(a?.unavailableCount||r.filter(a=>"available"!==a.status).length),t={};return r.forEach(a=>{if("available"===a.status)return;let b=a.provider||"unknown";t[b]||(t[b]=[]),t[b].push(a)}),(0,d.jsx)("div",{className:"relative",ref:l,children:g&&(0,d.jsxs)("div",{className:"absolute top-full right-0 mt-2 w-80 bg-surface border border-border rounded-xl shadow-2xl z-50 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-bg",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",style:{color:s?"#22c55e":"#f59e0b"},children:s?"verified":"warning"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Model Status"})]}),(0,d.jsx)("button",{onClick:o,className:"p-1 rounded-lg hover:bg-surface text-text-muted hover:text-text-main transition-colors",title:"Refresh",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"refresh"})})]}),(0,d.jsx)("div",{className:"px-4 py-3 max-h-60 overflow-y-auto",children:s?(0,d.jsx)("p",{className:"text-sm text-text-muted text-center py-2",children:"All models are responding normally."}):(0,d.jsx)("div",{className:"flex flex-col gap-2.5",children:Object.entries(t).map(([a,b])=>(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xs font-semibold text-text-main mb-1.5 capitalize",children:a}),(0,d.jsx)("div",{className:"flex flex-col gap-1",children:b.map(a=>{let b=p[a.status]||p.unknown,c=j===`${a.provider}:${a.model}`;return(0,d.jsxs)("div",{className:"flex items-center justify-between px-2.5 py-1.5 rounded-lg bg-surface/30",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] shrink-0",style:{color:b.color},children:b.icon}),(0,d.jsx)("span",{className:"font-mono text-xs text-text-main truncate",children:a.model})]}),"cooldown"===a.status&&(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",onClick:()=>q(a.provider,a.model),disabled:c,className:"text-[10px] px-1.5! py-0.5! ml-2",children:c?"...":"Clear"})]},`${a.provider}-${a.model}`)})})]},a))})})]})})}var r=c(45390);let s=[{value:"openai-compatible",label:"OpenAI Compatible"},{value:"anthropic-compatible",label:"Anthropic Compatible"}],t=[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}];function u({isOpen:a,onClose:b,onImported:c,notify:f}){let[g,i]=(0,e.useState)(""),[j,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)({type:"openai-compatible",apiType:"chat",name:"",prefix:"",baseUrl:"",connectionName:"Imported Key",apiKey:"",modelId:""}),v=()=>{i(""),k(null),m(!1),o(""),q({type:"openai-compatible",apiType:"chat",name:"",prefix:"",baseUrl:"",connectionName:"Imported Key",apiKey:"",modelId:""}),b()},w=async()=>{if(p.name.trim()&&p.prefix.trim()&&p.baseUrl.trim()){m(!0);try{let a={name:p.name.trim(),prefix:p.prefix.trim(),baseUrl:p.baseUrl.trim(),type:p.type};"openai-compatible"===p.type&&(a.apiType=p.apiType);let b=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),d=await b.json();if(!b.ok)throw Error(d.error||"Failed to create compatible provider");let e=null;if(p.apiKey.trim()){let a=await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:d.node.id,apiKey:p.apiKey.trim(),name:p.connectionName.trim()||"Imported Key",testStatus:"unknown"})}),b=await a.json();if(!a.ok)throw Error(b.error||"Compatible provider created, but API key import failed");e=b.connection}f.success("Compatible provider imported from cURL"),c?.({node:d.node,connection:e}),v()}catch(a){f.error(a.message||"Failed to import curl")}finally{m(!1)}}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Import Compatible Provider From cURL",onClose:v,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main",children:"Paste cURL"}),(0,d.jsx)("textarea",{value:g,onChange:a=>i(a.target.value),placeholder:'curl --request POST --url https://api.example.com/v1/chat/completions --header \'Authorization: Bearer sk-xxx\' --header \'Content-Type: application/json\' --data \'{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}\'',className:"min-h-40 w-full rounded-lg border border-border bg-surface px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Supports full endpoint URLs like `/v1/chat/completions`, `/responses`, or `/v1/messages`."}),(0,d.jsx)(h.$n,{onClick:()=>{try{let a=(0,r.Sq)(g);k(a),o(""),q({type:a.type,apiType:a.apiType||"chat",name:a.defaultName,prefix:a.defaultPrefix,baseUrl:a.baseUrl,connectionName:a.defaultConnectionName,apiKey:a.apiKey,modelId:a.modelId})}catch(a){k(null),o(a.message||"Failed to parse curl")}},variant:"secondary",className:"w-full sm:w-auto",children:"Parse cURL"})]}),n&&(0,d.jsx)("p",{className:"text-sm text-red-500",children:n})]}),j&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Detected"}),(0,d.jsx)(h.Ex,{variant:"default",children:"anthropic-compatible"===p.type?"Anthropic Compatible":"OpenAI Compatible"}),"openai-compatible"===p.type&&(0,d.jsx)(h.Ex,{variant:"default",children:"responses"===p.apiType?"Responses API":"Chat Completions"})]}),(0,d.jsx)(h.l6,{label:"Provider Type",value:p.type,options:s,onChange:a=>q(b=>({...b,type:a.target.value,apiType:"anthropic-compatible"===a.target.value?"chat":b.apiType}))}),"openai-compatible"===p.type&&(0,d.jsx)(h.l6,{label:"API Type",value:p.apiType,options:t,onChange:a=>q(b=>({...b,apiType:a.target.value}))}),(0,d.jsx)(h.pd,{label:"Provider Name",value:p.name,onChange:a=>q(b=>({...b,name:a.target.value})),placeholder:"Compatible Provider"}),(0,d.jsx)(h.pd,{label:"Prefix",value:p.prefix,onChange:a=>q(b=>({...b,prefix:a.target.value})),placeholder:"oc-example"}),(0,d.jsx)(h.pd,{label:"Base URL",value:p.baseUrl,onChange:a=>q(b=>({...b,baseUrl:a.target.value})),placeholder:"https://api.example.com/v1"}),(0,d.jsx)(h.pd,{label:"Connection Name",value:p.connectionName,onChange:a=>q(b=>({...b,connectionName:a.target.value})),placeholder:"Imported Key"}),(0,d.jsx)(h.pd,{label:"API Key",type:"password",value:p.apiKey,onChange:a=>q(b=>({...b,apiKey:a.target.value})),placeholder:"Bearer token from curl"}),(0,d.jsx)(h.pd,{label:"Detected Model",value:p.modelId,onChange:a=>q(b=>({...b,modelId:a.target.value})),placeholder:"Optional"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:w,fullWidth:!0,disabled:!j||!p.name.trim()||!p.prefix.trim()||!p.baseUrl.trim()||l,children:l?"Importing...":"Create Provider"}),(0,d.jsx)(h.$n,{onClick:v,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function v(a,b,c){let e=[];if(a>0&&e.push((0,d.jsxs)(h.Ex,{variant:"success",size:"sm",dot:!0,children:[a," Connected"]},"connected")),b>0){let a=c?`${b} Error (${c})`:`${b} Error`;e.push((0,d.jsx)(h.Ex,{variant:"error",size:"sm",dot:!0,children:a},"error"))}return 0===e.length?(0,d.jsx)("span",{className:"text-text-muted",children:"No connections"}):e}function w(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)([]),[g,i]=(0,e.useState)(!0),[l,m]=(0,e.useState)(!1),[p,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[v,w]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=(0,n.i)(),F=(0,o.C)(a=>a.query);(0,o.C)(a=>a.register),(0,o.C)(a=>a.unregister);let G=a=>!F.trim()||a.toLowerCase().includes(F.trim().toLowerCase()),H=(b,c)=>{let d=a.filter(a=>a.provider===b&&a.authType===c),e=a=>{let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"},f=d.filter(a=>{let b=e(a);return"active"===b||"success"===b}).length,g=d.filter(a=>{let b=e(a);return"error"===b||"expired"===b||"unavailable"===b}),h=g.length,i=d.length,j=i>0&&d.every(a=>!1===a.isActive),k=g.sort((a,b)=>new Date(b.lastErrorAt||0)-new Date(a.lastErrorAt||0))[0];return{connected:f,error:h,total:i,errorCode:k?function(a){if(!a)return null;let b=a.lastErrorType;if("runtime_error"===b)return"RUNTIME";if("upstream_auth_error"===b||"auth_missing"===b||"token_refresh_failed"===b||"token_expired"===b)return"AUTH";if("upstream_rate_limited"===b)return"429";if("upstream_unavailable"===b)return"5XX";if("network_error"===b)return"NET";let c=Number(a.errorCode);if(Number.isFinite(c)&&c>=400)return String(c);let d=function(a){if(!a)return null;let b=a.match(/\b([45]\d{2})\b/);return b?b[1]:"ERR"}(a.lastError);if("401"===d||"403"===d)return"AUTH";if(d&&"ERR"!==d)return d;let e=(a.lastError||"").toLowerCase();return e.includes("runtime")||e.includes("not runnable")||e.includes("not installed")?"RUNTIME":e.includes("invalid api key")||e.includes("token invalid")||e.includes("revoked")||e.includes("unauthorized")?"AUTH":"ERR"}(k):null,errorTime:k?.lastErrorAt?function(a){if(!a)return"";let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);return`${d}d ago`}(k.lastErrorAt):null,allDisabled:j}},I=async(c,d,e)=>{let f=a.filter(a=>a.provider===c&&a.authType===d);b(a=>a.map(a=>a.provider===c&&a.authType===d?{...a,isActive:e}:a)),await Promise.allSettled(f.map(a=>fetch(`/api/providers/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:e})})))},J=async(a,b=null)=>{if(!v){w("provider"===a?b:a),D(null);try{let c=await fetch("/api/providers/test-batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:a,providerId:b})}),d=await c.json();if(D(d),d.summary){let{passed:a,failed:b,total:c}=d.summary;0===b?E.success(`All ${c} tests passed`):E.warning(`${a}/${c} passed, ${b} failed`)}}catch(a){D({error:"Test request failed"}),E.error("Provider test failed")}finally{w(null)}}},K=c.filter(a=>"openai-compatible"===a.type).map(a=>({id:a.id,name:a.name||"OpenAI Compatible",color:"#10A37F",textIcon:"OC",apiType:a.apiType})).filter(a=>G(a.name)),L=c.filter(a=>"anthropic-compatible"===a.type).map(a=>({id:a.id,name:a.name||"Anthropic Compatible",color:"#D97757",textIcon:"AC"})).filter(a=>G(a.name)),M=Object.entries(j.zN).filter(([,a])=>G(a.name)),N=Object.entries(k.IS).filter(([,a])=>G(a.name)),O=Object.entries(k.nJ).filter(([,a])=>G(a.name)),P=Object.entries(j.fg).filter(([,a])=>(a.serviceKinds??["llm"]).includes("llm")&&G(a.name));if(g)return(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]});let Q=M.length>0||N.length>0||O.length>0||P.length>0||K.length>0||L.length>0;return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[!Q&&(0,d.jsxs)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] text-text-muted mb-2",children:"search_off"}),(0,d.jsx)("p",{className:"text-text-muted text-sm",children:"No providers match your search"})]}),M.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:"OAuth Providers"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsx)(q,{}),(0,d.jsxs)("button",{onClick:()=>J("oauth"),disabled:!!v,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"oauth"===v?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all OAuth connections","aria-label":"Test all OAuth connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"oauth"===v?" animate-spin":""}`,children:"play_arrow"}),"oauth"===v?"Testing...":"Test All"]})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:M.map(([a,b])=>(0,d.jsx)(x,{providerId:a,provider:b,stats:H(a,"oauth"),authType:"oauth",onToggle:b=>I(a,"oauth",b)},a))})]}),(N.length>0||O.length>0)&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:"Free Tier Providers"}),(0,d.jsxs)("button",{onClick:()=>J("free"),disabled:!!v,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"free"===v?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all Free connections","aria-label":"Test all Free provider connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"free"===v?" animate-spin":""}`,children:"play_arrow"}),"free"===v?"Testing...":"Test All"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:[N.map(([a,b])=>(0,d.jsx)(x,{providerId:a,provider:b,stats:H(a,"oauth"),authType:"free",onToggle:b=>I(a,"oauth",b)},a)),O.map(([a,b])=>(0,d.jsx)(y,{providerId:a,provider:b,stats:H(a,"apikey"),authType:"apikey",onToggle:b=>I(a,"apikey",b)},a))]})]}),P.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:["API Key Providers"," "]}),(0,d.jsxs)("button",{onClick:()=>J("apikey"),disabled:!!v,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"apikey"===v?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all API Key connections","aria-label":"Test all API Key connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"apikey"===v?" animate-spin":""}`,children:"play_arrow"}),"apikey"===v?"Testing...":"Test All"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:P.map(([a,b])=>(0,d.jsx)(y,{providerId:a,provider:b,stats:H(a,"apikey"),authType:"apikey",onToggle:b=>I(a,"apikey",b)},a))})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:["API Key Compatible Providers"," "]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto",children:[(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"upload",onClick:()=>t(!0),className:"w-full sm:w-auto",children:"Import cURL"}),(0,d.jsx)(h.$n,{size:"sm",icon:"add",onClick:()=>r(!0),className:"w-full sm:w-auto",children:"Add Anthropic Compatible"}),(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"add",onClick:()=>m(!0),className:"w-full !bg-white !text-black hover:!bg-gray-100 sm:w-auto",children:"Add OpenAI Compatible"})]})]}),0===K.length&&0===L.length?(0,d.jsxs)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] text-text-muted mb-2",children:"extension"}),(0,d.jsx)("p",{className:"text-text-muted text-sm",children:"No compatible providers added yet"}),(0,d.jsx)("p",{className:"text-text-muted text-xs mt-1",children:"Use the buttons above to add OpenAI or Anthropic compatible endpoints"})]}):(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:[...K,...L].map(a=>(0,d.jsx)(y,{providerId:a.id,provider:a,stats:H(a.id,"apikey"),authType:"compatible",onToggle:b=>I(a.id,"apikey",b)},a.id))})]}),(0,d.jsx)(z,{isOpen:l,onClose:()=>m(!1),onCreated:a=>{f(b=>[...b,a]),m(!1)}}),(0,d.jsx)(A,{isOpen:p,onClose:()=>r(!1),onCreated:a=>{f(b=>[...b,a]),r(!1)}}),(0,d.jsx)(u,{isOpen:s,onClose:()=>t(!1),notify:E,onImported:({node:a,connection:c})=>{f(b=>[...b,a]),c&&b(a=>[...a,c]),t(!1)}}),C&&(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-start justify-center px-3 pt-[6vh] sm:pt-[10vh]",onClick:()=>D(null),children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),(0,d.jsxs)("div",{className:"relative bg-surface border border-border rounded-xl w-full max-w-[600px] max-h-[86vh] sm:max-h-[80vh] overflow-y-auto shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"sticky top-0 z-10 flex items-center justify-between px-5 py-3 border-b border-border bg-surface/95 backdrop-blur-sm rounded-t-xl",children:[(0,d.jsx)("h3",{className:"font-semibold",children:"Test Results"}),(0,d.jsx)("button",{onClick:()=>D(null),className:"p-1 rounded-lg hover:bg-bg text-text-muted hover:text-text-main transition-colors","aria-label":"Close test results",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]}),(0,d.jsx)("div",{className:"p-5",children:(0,d.jsx)(B,{results:C})})]})]})]})}function x({providerId:a,provider:b,stats:c,authType:e,onToggle:f}){let{connected:g,error:j,errorCode:k,errorTime:l,allDisabled:n}=c,o=!!b.noAuth;return(0,d.jsx)(m(),{href:`/dashboard/providers/${a}`,className:"group min-w-0",children:(0,d.jsx)(h.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${n?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 shrink-0 rounded-lg flex items-center justify-center",style:{backgroundColor:`${b.color?.length>7?b.color:b.color+"15"}`},children:(0,d.jsx)(i.A,{src:`/providers/${b.id}.png`,alt:b.name,size:30,className:"object-contain rounded-lg max-w-[32px] max-h-[32px]",fallbackText:b.textIcon||b.id.slice(0,2).toUpperCase(),fallbackColor:b.color})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"truncate font-semibold",children:b.name}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 text-xs flex-wrap",children:n?(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):o?(0,d.jsx)(h.Ex,{variant:"success",size:"sm",dot:!0,children:"Ready"}):(0,d.jsxs)(d.Fragment,{children:[v(g,j,k),l&&(0,d.jsx)("span",{className:"text-text-muted",children:l})]})})]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c.total>0&&(0,d.jsx)("div",{className:"opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:a=>{a.preventDefault(),a.stopPropagation(),f(!!n)},children:(0,d.jsx)(h.lM,{size:"sm",checked:!n,onChange:()=>{},title:n?"Enable provider":"Disable provider"})})})]})})})}function y({providerId:a,provider:b,stats:c,authType:e,onToggle:f}){let{connected:g,error:j,errorCode:l,errorTime:n,allDisabled:o}=c,p=a.startsWith(k.JH),q=a.startsWith(k.DI);return(0,d.jsx)(m(),{href:`/dashboard/providers/${a}`,className:"group min-w-0",children:(0,d.jsx)(h.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${o?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 shrink-0 rounded-lg flex items-center justify-center",style:{backgroundColor:`${b.color?.length>7?b.color:b.color+"15"}`},children:(0,d.jsx)(i.A,{src:p?"responses"===b.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":q?"/providers/anthropic-m.png":`/providers/${b.id}.png`,alt:b.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:b.textIcon||b.id.slice(0,2).toUpperCase(),fallbackColor:b.color})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"truncate font-semibold",children:b.name}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 text-xs flex-wrap",children:o?(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):(0,d.jsxs)(d.Fragment,{children:[v(g,j,l),p&&(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:"responses"===b.apiType?"Responses":"Chat"}),q&&(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:"Messages"}),n&&(0,d.jsx)("span",{className:"text-text-muted",children:n})]})})]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c.total>0&&(0,d.jsx)("div",{className:"opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:a=>{a.preventDefault(),a.stopPropagation(),f(!!o)},children:(0,d.jsx)(h.lM,{size:"sm",checked:!o,onChange:()=>{},title:o?"Enable provider":"Disable provider"})})})]})})})}function z({isOpen:a,onClose:b,onCreated:c}){let[f,g]=(0,e.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=async()=>{if(f.name.trim()&&f.prefix.trim()&&f.baseUrl.trim()){j(!0);try{let a=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name,prefix:f.prefix,apiType:f.apiType,baseUrl:f.baseUrl,type:"openai-compatible"})}),b=await a.json();a.ok&&(c(b.node),g({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),l(""),r(null))}catch(a){console.log("Error creating OpenAI Compatible node:",a)}finally{j(!1)}}},t=async()=>{p(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:f.baseUrl,apiKey:k,type:"openai-compatible",modelId:m.trim()||void 0})}),b=await a.json();b.normalizedBaseUrl&&g(a=>({...a,baseUrl:b.normalizedBaseUrl,apiType:b.inferredApiType||a.apiType})),r(b)}catch{r({valid:!1,error:"Network error"})}finally{p(!1)}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Add OpenAI Compatible",onClose:b,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Name",value:f.name,onChange:a=>g({...f,name:a.target.value}),placeholder:"OpenAI Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,d.jsx)(h.pd,{label:"Prefix",value:f.prefix,onChange:a=>g({...f,prefix:a.target.value}),placeholder:"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,d.jsx)(h.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:f.apiType,onChange:a=>g({...f,apiType:a.target.value})}),(0,d.jsx)(h.pd,{label:"Base URL",value:f.baseUrl,onChange:a=>g({...f,baseUrl:a.target.value}),placeholder:"https://api.openai.com/v1",hint:"Use the base URL (ending in /v1) for your OpenAI-compatible API."}),(0,d.jsx)(h.pd,{label:"API Key (for Check)",type:"password",value:k,onChange:a=>l(a.target.value)}),(0,d.jsx)(h.pd,{label:"Model ID (optional)",value:m,onChange:a=>n(a.target.value),placeholder:"e.g. gpt-4, claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[(0,d.jsx)(h.$n,{onClick:t,disabled:!k||o||!f.baseUrl.trim(),variant:"secondary",className:"w-full sm:w-auto",children:o?"Checking...":"Check"}),(()=>{if(!q)return null;let{valid:a,error:b,method:c}=q;return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Valid"}),"chat"===c&&(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(h.Ex,{variant:"error",children:"Invalid"}),b&&(0,d.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,d.jsx)(h.$n,{onClick:s,fullWidth:!0,disabled:!f.name.trim()||!f.prefix.trim()||!f.baseUrl.trim()||i,children:i?"Creating...":"Create"}),(0,d.jsx)(h.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function A({isOpen:a,onClose:b,onCreated:c}){let[f,g]=(0,e.useState)({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=async()=>{if(f.name.trim()&&f.prefix.trim()&&f.baseUrl.trim()){j(!0);try{let a=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name,prefix:f.prefix,baseUrl:f.baseUrl,type:"anthropic-compatible"})}),b=await a.json();a.ok&&(c(b.node),g({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),l(""),r(null))}catch(a){console.log("Error creating Anthropic Compatible node:",a)}finally{j(!1)}}},t=async()=>{p(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:f.baseUrl,apiKey:k,type:"anthropic-compatible",modelId:m.trim()||void 0})}),b=await a.json();b.normalizedBaseUrl&&g(a=>({...a,baseUrl:b.normalizedBaseUrl})),r(b)}catch{r({valid:!1,error:"Network error"})}finally{p(!1)}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Add Anthropic Compatible",onClose:b,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Name",value:f.name,onChange:a=>g({...f,name:a.target.value}),placeholder:"Anthropic Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,d.jsx)(h.pd,{label:"Prefix",value:f.prefix,onChange:a=>g({...f,prefix:a.target.value}),placeholder:"ac-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,d.jsx)(h.pd,{label:"Base URL",value:f.baseUrl,onChange:a=>g({...f,baseUrl:a.target.value}),placeholder:"https://api.anthropic.com/v1",hint:"Use the base URL (ending in /v1) for your Anthropic-compatible API. The system will append /messages."}),(0,d.jsx)(h.pd,{label:"API Key (for Check)",type:"password",value:k,onChange:a=>l(a.target.value)}),(0,d.jsx)(h.pd,{label:"Model ID (optional)",value:m,onChange:a=>n(a.target.value),placeholder:"e.g. claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[(0,d.jsx)(h.$n,{onClick:t,disabled:!k||o||!f.baseUrl.trim(),variant:"secondary",className:"w-full sm:w-auto",children:o?"Checking...":"Check"}),(()=>{if(!q)return null;let{valid:a,error:b,method:c}=q;return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Valid"}),"chat"===c&&(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(h.Ex,{variant:"error",children:"Invalid"}),b&&(0,d.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,d.jsx)(h.$n,{onClick:s,fullWidth:!0,disabled:!f.name.trim()||!f.prefix.trim()||!f.baseUrl.trim()||i,children:i?"Creating...":"Create"}),(0,d.jsx)(h.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function B({results:a}){if(a.error&&!a.results)return(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-red-500 text-[32px] mb-2 block",children:"error"}),(0,d.jsx)("p",{className:"text-sm text-red-400",children:a.error})]});let{summary:b,mode:c}=a,e=a.results||[];return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[b&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs mb-1 sm:gap-3",children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[{oauth:"OAuth",free:"Free",apikey:"API Key",provider:"Provider",all:"All"}[c]||c," Test"]}),(0,d.jsxs)("span",{className:"px-2 py-0.5 rounded bg-emerald-500/15 text-emerald-400 font-medium",children:[b.passed," passed"]}),b.failed>0&&(0,d.jsxs)("span",{className:"px-2 py-0.5 rounded bg-red-500/15 text-red-400 font-medium",children:[b.failed," failed"]}),(0,d.jsxs)("span",{className:"text-text-muted sm:ml-auto",children:[b.total," tested"]})]}),e.map((a,b)=>(0,d.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 rounded-lg bg-black/[0.03] px-3 py-2 text-xs dark:bg-white/[0.03] sm:flex-nowrap",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[16px] ${a.valid?"text-emerald-500":"text-red-500"}`,children:a.valid?"check_circle":"error"}),(0,d.jsxs)("div",{className:"min-w-0 flex-[1_1_160px]",children:[(0,d.jsx)("span",{className:"block truncate font-medium sm:inline",children:a.connectionName}),(0,d.jsxs)("span",{className:"block truncate text-text-muted sm:ml-1.5 sm:inline",children:["(",a.provider,")"]})]}),void 0!==a.latencyMs&&(0,d.jsxs)("span",{className:"shrink-0 text-text-muted font-mono tabular-nums",children:[a.latencyMs,"ms"]}),(0,d.jsx)("span",{className:`shrink-0 text-[10px] uppercase font-bold px-1.5 py-0.5 rounded ${a.valid?"bg-emerald-500/15 text-emerald-400":"bg-red-500/15 text-red-400"}`,children:a.valid?"OK":a.diagnosis?.type||"ERROR"})]},a.connectionId||b)),0===e.length&&(0,d.jsx)("div",{className:"text-center py-4 text-text-muted text-sm",children:"No active connections found for this group."})]})}u.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onImported:g().func,notify:g().shape({success:g().func.isRequired,error:g().func.isRequired}).isRequired},x.propTypes={providerId:g().string.isRequired,provider:g().shape({id:g().string.isRequired,name:g().string.isRequired,color:g().string,textIcon:g().string}).isRequired,stats:g().shape({connected:g().number,error:g().number,errorCode:g().string,errorTime:g().string}).isRequired,authType:g().string,onToggle:g().func},y.propTypes={providerId:g().string.isRequired,provider:g().shape({id:g().string.isRequired,name:g().string.isRequired,color:g().string,textIcon:g().string,apiType:g().string}).isRequired,stats:g().shape({connected:g().number,error:g().number,errorCode:g().string,errorTime:g().string}).isRequired,authType:g().string,onToggle:g().func},z.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onCreated:g().func.isRequired},A.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onCreated:g().func.isRequired},B.propTypes={results:g().shape({mode:g().string,results:g().array,summary:g().shape({total:g().number,passed:g().number,failed:g().number}),error:g().string}).isRequired}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},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")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,7502,8838,6184,5296,63,7861,5573,3913,9718,5681,8760,5627,6182,2506,3855,4122,412,6774],()=>b(b.s=37162));module.exports=c})();
|