9router-proxy 0.6.19 → 0.6.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/.next-cli-build/BUILD_ID +1 -1
- package/app/.next-cli-build/app-path-routes-manifest.json +19 -19
- package/app/.next-cli-build/build-manifest.json +3 -3
- package/app/.next-cli-build/prerender-manifest.json +4 -4
- package/app/.next-cli-build/react-loadable-manifest.json +7 -7
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +6 -6
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +5 -5
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_global-error.html +1 -1
- package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
- package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/_not-found.html +1 -1
- package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js +1 -1
- package/app/.next-cli-build/server/app/api/combos/presets/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/login/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/overrides/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/providers/web-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/providers/web-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/netlify-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
- package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/claude-reset/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +3 -3
- package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/systemone/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
- package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page.js +1 -1
- package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/callback.html +1 -1
- package/app/.next-cli-build/server/app/callback.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js +1 -1
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login/page.js +1 -1
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js +1 -1
- package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app-paths-manifest.json +19 -19
- package/app/.next-cli-build/server/chunks/1260.js +1 -1
- package/app/.next-cli-build/server/chunks/1329.js +1 -1
- package/app/.next-cli-build/server/chunks/1350.js +1 -1
- package/app/.next-cli-build/server/chunks/1356.js +1 -1
- package/app/.next-cli-build/server/chunks/1679.js +1 -1
- package/app/.next-cli-build/server/chunks/1757.js +1 -1
- package/app/.next-cli-build/server/chunks/21.js +1 -1
- package/app/.next-cli-build/server/chunks/2327.js +1 -1
- package/app/.next-cli-build/server/chunks/2380.js +29 -0
- package/app/.next-cli-build/server/chunks/24.js +1 -1
- package/app/.next-cli-build/server/chunks/2822.js +1 -0
- package/app/.next-cli-build/server/chunks/3726.js +1 -1
- package/app/.next-cli-build/server/chunks/3943.js +1 -1
- package/app/.next-cli-build/server/chunks/412.js +1 -1
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4279.js +1 -1
- package/app/.next-cli-build/server/chunks/4882.js +1 -1
- package/app/.next-cli-build/server/chunks/4956.js +1 -1
- package/app/.next-cli-build/server/chunks/4957.js +1 -1
- package/app/.next-cli-build/server/chunks/5026.js +1 -1
- package/app/.next-cli-build/server/chunks/5081.js +3 -6
- package/app/.next-cli-build/server/chunks/5299.js +3 -3
- package/app/.next-cli-build/server/chunks/5308.js +1 -1
- package/app/.next-cli-build/server/chunks/5330.js +10 -10
- package/app/.next-cli-build/server/chunks/5615.js +2 -2
- package/app/.next-cli-build/server/chunks/6070.js +1 -1
- package/app/.next-cli-build/server/chunks/615.js +1 -1
- package/app/.next-cli-build/server/chunks/6171.js +1 -1
- package/app/.next-cli-build/server/chunks/6638.js +1 -1
- package/app/.next-cli-build/server/chunks/6763.js +1 -1
- package/app/.next-cli-build/server/chunks/6921.js +15 -11
- package/app/.next-cli-build/server/chunks/6983.js +1 -1
- package/app/.next-cli-build/server/chunks/7187.js +1 -1
- package/app/.next-cli-build/server/chunks/7220.js +1 -1
- package/app/.next-cli-build/server/chunks/7247.js +1 -1
- package/app/.next-cli-build/server/chunks/7716.js +1 -1
- package/app/.next-cli-build/server/chunks/778.js +1 -1
- package/app/.next-cli-build/server/chunks/7843.js +1 -1
- package/app/.next-cli-build/server/chunks/794.js +1 -1
- package/app/.next-cli-build/server/chunks/8238.js +1 -1
- package/app/.next-cli-build/server/chunks/8251.js +1 -1
- package/app/.next-cli-build/server/chunks/8271.js +1 -1
- package/app/.next-cli-build/server/chunks/8402.js +1 -1
- package/app/.next-cli-build/server/chunks/8623.js +3 -3
- package/app/.next-cli-build/server/chunks/8895.js +4 -4
- package/app/.next-cli-build/server/chunks/8920.js +1 -1
- package/app/.next-cli-build/server/chunks/9287.js +1 -0
- package/app/.next-cli-build/server/chunks/9289.js +1 -0
- package/app/.next-cli-build/server/chunks/9489.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js +1 -1
- package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
- package/app/.next-cli-build/server/middleware.js +1 -1
- package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
- package/app/.next-cli-build/server/pages/404.html +1 -1
- package/app/.next-cli-build/server/pages/500.html +1 -1
- package/app/.next-cli-build/server/preview-props.json +3 -3
- package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
- package/app/.next-cli-build/static/chunks/1321-fe52dc90990db91b.js +1 -0
- package/app/.next-cli-build/static/chunks/4285-8e8fd1dc26ade67d.js +1 -0
- package/app/.next-cli-build/static/chunks/{5497-11663c3e80a3cf5a.js → 5497-abf32427a085ebfc.js} +2 -2
- package/app/.next-cli-build/static/chunks/{761-c9086970fe03f4a1.js → 761-53a017633cce939e.js} +3 -3
- package/app/.next-cli-build/static/chunks/9233.e1c3403556983abd.js +69 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-48ac55fc1ff50baa.js +69 -0
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-3c63a3db19c1a67b.js +27 -0
- package/app/.next-cli-build/static/chunks/{webpack-6463d5fe66fbfc78.js → webpack-d230ecbd7bd706e6.js} +1 -1
- package/app/.next-cli-build/static/css/b58b1123edb3578f.css +1 -0
- package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +26 -13
- package/app/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +6 -3
- package/app/node_modules/@aws-sdk/core/package.json +3 -3
- package/app/node_modules/@aws-sdk/credential-provider-cognito-identity/package.json +3 -3
- package/app/node_modules/@aws-sdk/credential-provider-env/package.json +3 -3
- package/app/node_modules/@aws-sdk/credential-provider-http/package.json +4 -4
- package/app/node_modules/@aws-sdk/credential-provider-ini/package.json +10 -10
- package/app/node_modules/@aws-sdk/credential-provider-login/package.json +4 -4
- package/app/node_modules/@aws-sdk/credential-provider-node/package.json +8 -8
- package/app/node_modules/@aws-sdk/credential-provider-process/package.json +3 -3
- package/app/node_modules/@aws-sdk/credential-provider-sso/package.json +5 -5
- package/app/node_modules/@aws-sdk/credential-provider-web-identity/package.json +4 -4
- package/app/node_modules/@aws-sdk/credential-providers/package.json +13 -13
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
- package/app/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
- package/app/node_modules/@aws-sdk/nested-clients/package.json +5 -5
- package/app/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -1
- package/app/node_modules/@aws-sdk/token-providers/package.json +4 -4
- package/app/node_modules/@aws-sdk/xml-builder/package.json +1 -1
- package/app/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +13 -37
- package/app/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +44 -29
- package/app/node_modules/@smithy/core/package.json +1 -1
- package/app/node_modules/@smithy/node-http-handler/dist-cjs/index.js +48 -6
- package/app/node_modules/@smithy/node-http-handler/package.json +3 -3
- package/app/node_modules/baseline-browser-mapping/dist/index.cjs +1 -1
- package/app/node_modules/baseline-browser-mapping/package.json +1 -1
- package/app/node_modules/bowser/es5.js +14 -1
- package/app/node_modules/bowser/package.json +90 -31
- package/app/node_modules/sql.js/dist/sql-wasm.js +93 -92
- package/app/node_modules/sql.js/package.json +1 -1
- package/app/open-sse/lib/deepseek-pow-hash.js +114 -428
- package/app/package.json +1 -1
- package/app/public/providers/nace.png +0 -0
- package/app/src/mitm/server.js +38 -34
- package/package.json +1 -1
- package/app/.next-cli-build/server/chunks/4125.js +0 -1
- package/app/.next-cli-build/server/chunks/5840.js +0 -1
- package/app/.next-cli-build/server/chunks/6140.js +0 -1
- package/app/.next-cli-build/server/chunks/7732.js +0 -1
- package/app/.next-cli-build/server/chunks/8499.js +0 -23
- package/app/.next-cli-build/static/chunks/1321-d42a1c66e9cf1a99.js +0 -1
- package/app/.next-cli-build/static/chunks/4285-e97c3151f30199d8.js +0 -1
- package/app/.next-cli-build/static/chunks/9233.b5ad25d75f88baa7.js +0 -65
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-d61866af0fa7b54f.js +0 -69
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-44c9bfdcf25db09b.js +0 -27
- package/app/.next-cli-build/static/css/0a4c443a8a7225f7.css +0 -1
- /package/app/.next-cli-build/static/{MoWT_XpUp-bKSt7-wK19U → i1Kua3lBkcnBzhQ70lbQO}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{MoWT_XpUp-bKSt7-wK19U → i1Kua3lBkcnBzhQ70lbQO}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";exports.id=9489,exports.ids=[9489],exports.modules={428:(a,b,c)=>{c.d(b,{J:()=>i});var d=c(38775),e=c(95827),f=c(67828),g=c(83017),h=c(57874);async function i({body:a,models:b,routerModel:c=h.UH,log:j,timeoutMs:k=h.rc}){if(!Array.isArray(b)||b.length<=1)return null;let l="string"==typeof c&&c.trim()?c.trim():h.UH,m=(0,h.nn)(a);if(!m)return j?.debug?.("COMBO","smart-router: empty prompt state, skipping classification"),null;let n=(0,h.JE)(b);if(0===Object.keys(n).length)return null;try{let a,b,c=await (0,d.mA)(l);if(!c?.provider)return j?.warn?.("COMBO",`smart-router: unrecognized router model "${l}"`),null;let{provider:i,model:o}=c,p=await (0,e.c1)(i,new Set,o);if(!p||p.allRateLimited)return j?.warn?.("COMBO",`smart-router: no credentials available for router provider "${i}"`),null;let q=await (0,f.checkAndRefreshToken)(i,p),r=new AbortController,s=new Promise((b,c)=>{a=setTimeout(()=>{let a=Error(`System One router timed out after ${k}ms`);r.abort(a),c(a)},k)}),t=(0,g.l)({body:{model:o,state:m,questions:{route:{type:"choice",instructions:"Which of these configured models is the most appropriate for this request?",criteria:n}}},modelInfo:{provider:i,model:o},credentials:q,log:j,onRequestSuccess:()=>{},signal:r.signal});try{b=await Promise.race([t,s])}finally{clearTimeout(a)}if(!b?.success||!b.response)return j?.warn?.("COMBO",`smart-router: evaluation failed (${b?.status||"error"})`),null;let u=await b.response.json(),v=(0,h.Kn)(u);if(!v||!v.choice)return j?.warn?.("COMBO","smart-router: response missing valid route choice"),null;return v}catch(a){return j?.warn?.("COMBO",`smart-router: evaluation aborted (${a?.message||String(a)})`),null}}},3894:(a,b,c)=>{c.d(b,{F_:()=>g,Nc:()=>h,Qh:()=>t,Su:()=>q,ag:()=>o,kI:()=>p,rl:()=>u,sy:()=>s});var d=c(79646),e=c(33873),f=c.n(e);let g=["code","ml"],h={code:["tree-sitter","tree-sitter-language-pack"],ml:["torch","huggingface-hub"]},i="win32"===process.platform,j=i?"where":"which",k=i?[`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python313\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python312\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python311\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python310\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python313\\Scripts`]:["/usr/local/bin","/opt/homebrew/bin","/Library/Frameworks/Python.framework/Versions/3.13/bin","/Library/Frameworks/Python.framework/Versions/3.12/bin","/Library/Frameworks/Python.framework/Versions/3.11/bin","/Library/Frameworks/Python.framework/Versions/3.10/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],l=[...k,process.env.PATH||""].filter(Boolean).join(f().delimiter),m=["python3.13","python3.12","python3.11","python3.10","python3","python"],n=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]),o=process.env.HEADROOM_URL||"http://localhost:8787";function p(){try{let a=(0,d.execSync)(`${j} headroom`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:l}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function q(){let a=null;for(let b of function(){let a=[],b=p();if(b){let c=f().dirname(b);for(let b of i?["python.exe","python3.exe"]:["python3","python3.13","python"])a.push(f().join(c,b))}for(let b of k)if(b)for(let c of m)a.push(f().join(b,i?`${c}.exe`:c));return a.push(...m),a}())try{let c=(0,d.execSync)(`${b} --version`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:l}}).toString().trim().match(/(\d+)\.(\d+)/);if(!c)continue;let[e,f]=[parseInt(c[1],10),parseInt(c[2],10)];if(!(e>3||3===e&&f>=10))continue;a||(a=b);try{return(0,d.execFileSync)(b,["-m","pip","show","headroom-ai"],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:l}}),b}catch{}}catch{}return a}async function r(a){if(!a)return!1;let b=String(a).replace(/\/$/,"");try{return(await fetch(`${b}/health`,{signal:AbortSignal.timeout(1500)})).ok}catch{return!1}}function s(a){try{let b=new URL(a);return n.has(b.hostname)}catch{return!1}}async function t(a){let b=p(),c=q(),d=!!b,e=await r(a),f=s(a),g=d?u(c):{installed:!1,version:null,extras:{code:!1,ml:!1}};return{installed:d,path:b,running:e,python:c,localUrl:f,canStart:d&&f,version:g.version,extras:g.extras}}function u(a){let b=a||q();if(!b)return{installed:!1,version:null,extras:{code:!1,ml:!1}};try{let a=(0,d.execFileSync)(b,["-m","pip","list","--format=json","--disable-pip-version-check"],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:l}}).toString(),c=JSON.parse(a),e=new Set(c.map(a=>String(a.name||"").toLowerCase()));if(!e.has("headroom-ai"))return{installed:!1,version:null,extras:{code:!1,ml:!1}};let f=c.find(a=>a.name?.toLowerCase()==="headroom-ai")?.version||null,i={};for(let a of g)i[a]=h[a].some(a=>e.has(a));return{installed:!0,version:f,extras:i}}catch{return{installed:!1,version:null,extras:{code:!1,ml:!1}}}}},17603:(a,b,c)=>{c.d(b,{R8:()=>l,ar:()=>n,vB:()=>j});var d=c(24);let e=["vision","pdf","audioInput","videoInput"],f=new Set(e),g="oc/mimo-v2.6-flash-free",h=a=>"oc/mimo-v2.5-free"===a?g:a;function i(a,b){var c;let d=Array.isArray(c=b?.capacityAdapter?.[a])?{enabled:!0,roundRobin:!1,models:c.map(a=>h(a?.model||a)).filter(Boolean)}:c&&"object"==typeof c?{enabled:!1!==c.enabled,roundRobin:!!c.roundRobin,models:Array.isArray(c.models)?c.models.map(h).filter(Boolean):[]}:{enabled:!1,roundRobin:!1,models:[]};return d.enabled&&0===d.models.length?{...d,models:[g]}:d}function j(a,b){for(let c of[...a||[]].filter(a=>f.has(a))){let{enabled:a,models:d}=i(c,b);if(a&&0!==d.length)return function(a,b){let{enabled:c,roundRobin:d}=i(a,b);return c&&d?"round-robin":"fallback"}(c,b)}return"fallback"}function k(a,b){let c=a.indexOf("/"),e=c>0?a.slice(0,c):"",f=c>0?a.slice(c+1):a,g=(0,d.getCapabilitiesForModel)(e,f);return b.every(a=>!0===g[a])}function l(a,b,c){let d=[...b||[]].filter(a=>f.has(a));if(0===d.length||!Array.isArray(a)||0===a.length||a.some(a=>k(a,d)))return a;let g=(function(a){let b=new Set,c=[];for(let d of e){let{enabled:e,models:f}=i(d,a);if(e)for(let a of f)b.has(a)||(b.add(a),c.push(a))}return c})(c).filter(b=>!a.includes(b)&&k(b,d));return 0===g.length?a:[...g,...a]}function m(a){return"string"==typeof a?a.length:Array.isArray(a)?a.reduce((a,b)=>a+("string"==typeof b?.text?b.text.length:50),0):0}function n(a,b){let c=new Set(b);return 0===c.size?a:(b,e,...f)=>{if(c.has(e)){let a=e.indexOf("/"),c=a>0?e.slice(0,a):"",f=a>0?e.slice(a+1):e,{contextWindow:g}=(0,d.getCapabilitiesForModel)(c,f);b=function(a,b){let c=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":Array.isArray(a.contents)?"contents":null;if(!c)return a;let d=a[c];if(!d||0===d.length)return a;let e=a=>"system"===a||"developer"===a,f=d.filter(a=>e(a?.role)),g=d.filter(a=>!e(a?.role));if(0===g.length)return a;let h=a=>"assistant"===a||"model"===a,i=g.length-1;for(;i>=0&&!h(g[i]?.role);)i--;let j=g.slice(i+1),k=g.slice(0,i+1);if(0===k.length)return a;let l=a=>a.content??a.parts,n=.8*(b||2e5)*4,o=k.slice(0,6),p=f.concat(o,j).reduce((a,b)=>a+m(l(b)),0);for(;p>n&&o.length>0;)p-=m(l(o.pop()));return o.length===k.length?a:{...a,[c]:[...f,...o,...j]}}(b,g)}return a(b,e,...f)}}},46634:(a,b,c)=>{c.d(b,{Mo:()=>h,RG:()=>l,V:()=>i,Y8:()=>k,xl:()=>m});var d=c(1932),e=c(87155);let f=null,g=null;function h(){return f?{loaded:!0,version:f.version,loadedAt:f.loadedAt}:{loaded:!1}}async function i(){return f||g||(g=j().finally(()=>{g=null}))}async function j(){let a=(0,e.S1)();if(!a.installed){let a=Error("PXPIPE is not installed");throw a.code="NOT_INSTALLED",a}let b=`${(0,d.pathToFileURL)((0,e.CG)()).href}?v=${encodeURIComponent(a.version||"0")}`,c=await import(b);if("function"!=typeof c.transformAnthropicMessages)throw Error("installed pxpipe package does not export transformAnthropicMessages");return f={module:c,version:a.version,loadedAt:Date.now()}}function k(){let a=!!f;return f=null,a}async function l({autoLoad:a=!0}={}){try{if(!f&&!a)return null;let{module:b}=await i();return b.transformAnthropicMessages}catch{return null}}async function m(){let a=Date.now(),{module:b}=await i(),c=new TextEncoder().encode(JSON.stringify({model:"claude-fable-5",max_tokens:16,messages:[{role:"user",content:"ping"}]})),d=await b.transformAnthropicMessages({body:c,model:"claude-fable-5"});if(!d||"boolean"!=typeof d.applied||!(d.body instanceof Uint8Array))throw Error("transform returned an unexpected shape");return{ok:!0,reason:d.reason,durationMs:Date.now()-a}}},46945:(a,b,c)=>{c.d(b,{V:()=>e});let d=/\[1m\]$/i;function e(a){if("string"!=typeof a)return{model:a,contextMarker:null};let b=a.trim(),c=b.match(d);return c?{model:b.slice(0,-c[0].length),contextMarker:c[0].slice(1,-1).toLowerCase()}:{model:a,contextMarker:null}}},74388:(a,b,c)=>{c.d(b,{Az:()=>l,SP:()=>o,T0:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(87155);let i=g().join(h.XF,"events.jsonl"),j=g().join(h.XF,"events.jsonl.1");function k(a){try{e().existsSync(h.XF)||e().mkdirSync(h.XF,{recursive:!0});try{e().statSync(i).size>5242880&&e().renameSync(i,j)}catch{}e().appendFile(i,JSON.stringify({ts:Date.now(),...a})+"\n",()=>{})}catch{}}function l({sinceMs:a=null,limit:b=null}={}){let c=[];for(let b of[j,i])try{if(!e().existsSync(b))continue;for(let d of e().readFileSync(b,"utf8").split("\n"))if(d)try{let b=JSON.parse(d);if(a&&b.ts<a)continue;c.push(b)}catch{}}catch{}return c.sort((a,b)=>a.ts-b.ts),b?c.slice(-b):c}function m(){return{requests:0,compressed:0,bypassed:0,errors:0,tokensBeforeEst:0,tokensAfterEst:0,tokensSavedEst:0,savedPct:0,imagesGenerated:0,compressionTimeMs:0,avgCompressionMs:0}}function n(a,b){a.requests++,b.applied?(a.compressed++,a.tokensBeforeEst+=b.tokensBeforeEst||0,a.tokensAfterEst+=b.tokensAfterEst||0,a.tokensSavedEst+=b.tokensSavedEst||0,a.imagesGenerated+=b.imageCount||0,a.compressionTimeMs+=b.durationMs||0):"transform_error"===b.reason||"timeout"===b.reason?a.errors++:a.bypassed++}function o({timelineDays:a=30,recentLimit:b=100}={}){let c=l(),d=Date.now(),e=new Date(new Date(d).setHours(0,0,0,0)).getTime(),f={all:m(),today:m(),yesterday:m(),last7d:m(),last30d:m()},g=new Map;for(let b=a-1;b>=0;b--){let a=new Date(e-864e5*b);g.set(a.toISOString().slice(0,10),{date:a.toISOString().slice(0,10),tokensSavedEst:0,compressed:0,requests:0})}for(let a of c){n(f.all,a),a.ts>=e?n(f.today,a):a.ts>=e-864e5&&n(f.yesterday,a),a.ts>=d-6048e5&&n(f.last7d,a),a.ts>=d-2592e6&&n(f.last30d,a);let b=new Date(a.ts).toISOString().slice(0,10),c=g.get(b);c&&(c.requests++,a.applied&&(c.compressed++,c.tokensSavedEst+=a.tokensSavedEst||0))}for(let a of Object.values(f))a.savedPct=a.tokensBeforeEst>0?+(a.tokensSavedEst/a.tokensBeforeEst*100).toFixed(2):0,a.avgCompressionMs=a.compressed>0?Math.round(a.compressionTimeMs/a.compressed):0;return{windows:f,timeline:[...g.values()],recent:c.slice(-b).reverse()}}},79489:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>C});var e=c(48895),f=c(95827),g=c(45974),h=c(89718),i=c(38775),j=c(92500),k=c(3894),l=c(46634),m=c(74388),n=c(43659),o=c(48136),p=c(25308),q=c(17603),r=c(27349),s=c(41004),t=c(14170),u=c(80662),v=c(7803),w=c(67828),x=c(38160),y=c(46945),z=c(27811),A=c(428),B=a([e,j]);async function C(a,b=null){let c;try{c=await a.json()}catch{return v.warn("CHAT","Invalid JSON body"),(0,n.yj)(s.gx.BAD_REQUEST,"Invalid JSON body")}b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let{model:d,contextMarker:e}=(0,y.V)(c.model);e&&(c.model=d);let g=(0,u.bS)({headers:b?.headers,body:c}),j=g?.sessionId||null,k=a.headers.get("Authorization"),l=(0,f.Tr)(a);if(k&&l){let a=v.maskKey(l);v.debug("AUTH",`API Key: ${a}`)}else v.debug("AUTH","No API key provided (local mode)");let m=await (0,h.mt)();if(m.requireApiKey){if(!l)return v.warn("AUTH","Missing API key (requireApiKey=true)"),(0,n.yj)(s.gx.UNAUTHORIZED,"Missing API key");if(!await (0,f.kI)(l))return v.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,n.yj)(s.gx.UNAUTHORIZED,"Invalid API key")}if(!d)return v.warn("CHAT","Missing model"),(0,n.yj)(s.gx.BAD_REQUEST,"Missing model");let o=await (0,z.TM)(a),t=await (0,z.cI)(o,d);if(t)return t;let w=a?.headers?.get("user-agent")||"",x=(0,r.c)(c,d,w,!!m.ccFilterNaming);if(x)return x.response||x;let B=(0,p.t8)(c),E=await (0,i.d_)(d);if(E){let e=m.comboStrategies||{},f=e[d]?.fallbackStrategy||m.comboStrategy||"fallback",g=await (0,z.Ge)(o,(0,q.R8)(E,B,m),E),h=g.filter(a=>!E.includes(a));if("fusion"===f)return v.info("CHAT",`Combo "${d}" with ${E.length} models (strategy: fusion)`),(0,p.vt)({body:c,models:E,handleSingleModel:(c,d,e)=>{let f=b;if(e&&b){let{tools:a,tool_choice:c,...d}=b.body||{};f={...b,body:d}}return D(c,d,f,a,l)},log:v,comboName:d,judgeModel:e[d]?.judgeModel,tuning:e[d]?.fusionTuning});let i=m.comboStickyRoundRobinLimit,k=e[d]||{};return v.info("CHAT",`Combo "${d}" with ${g.length} models (strategy: ${f}, sticky: ${i})`),(0,p.Pr)({body:c,models:g,handleSingleModel:(0,q.ar)((c,d)=>D(c,d,b,a,l),h),log:v,comboName:d,comboStrategy:f,comboStickyLimit:i,sessionId:j,smartPolicy:k.smartPolicy||"smart",sessionSticky:!1!==k.sessionSticky,confidenceThreshold:"number"==typeof k.confidenceThreshold?k.confidenceThreshold:.8,resolveSmartChoice:"smart"===f?(a,b)=>(0,A.J)({body:a,models:b,routerModel:k.routerModel,log:v}):null})}let F=await (0,z.Ge)(o,(0,q.R8)([d],B,m),[d]);if(F.length>1){let e=F.filter(a=>a!==d);return v.info("CHAT",`Capacity adapter for [${[...B].join(",")}] on "${d}" → trying ${F.join(", ")}`),(0,p.Pr)({body:c,models:F,handleSingleModel:(0,q.ar)((c,d)=>D(c,d,b,a,l),e),log:v,comboName:d,comboStrategy:(0,q.vB)(B,m)})}return D(c,d,b,a,l,e?`${d.slice(d.indexOf("/")+1)}[${e}]`:null)}async function D(a,b,c=null,d=null,e=null,r=null){let y=await (0,i.mA)(b);if(!y.provider){let f=await (0,i.d_)(b);if(f){let g=await (0,h.mt)(),i=g.comboStrategies||{},j=i[b]?.fallbackStrategy||g.comboStrategy||"fallback",k=(0,p.t8)(a),l=await (0,z.TM)(d),m=await (0,z.Ge)(l,(0,q.R8)(f,k,g),f),n=m.filter(a=>!f.includes(a));if("fusion"===j)return v.info("CHAT",`Combo "${b}" with ${f.length} models (strategy: fusion)`),(0,p.vt)({body:a,models:f,handleSingleModel:(a,b,f)=>{let g=c;if(f&&c){let{tools:a,tool_choice:b,...d}=c.body||{};g={...c,body:d}}return D(a,b,g,d,e)},log:v,comboName:b,judgeModel:i[b]?.judgeModel,tuning:i[b]?.fusionTuning});let o=g.comboStickyRoundRobinLimit,r=i[b]||{},s=(0,u.bS)({headers:c?.headers,body:a}),t=s?.sessionId||null;return v.info("CHAT",`Combo "${b}" with ${m.length} models (strategy: ${j}, sticky: ${o})`),(0,p.Pr)({body:a,models:m,handleSingleModel:(0,q.ar)((a,b)=>D(a,b,c,d,e),n),log:v,comboName:b,comboStrategy:j,comboStickyLimit:o,sessionId:t,smartPolicy:r.smartPolicy||"smart",sessionSticky:!1!==r.sessionSticky,confidenceThreshold:"number"==typeof r.confidenceThreshold?r.confidenceThreshold:.8,resolveSmartChoice:"smart"===j?(a,b)=>(0,A.J)({body:a,models:b,routerModel:r.routerModel,log:v}):null})}return v.warn("CHAT","Invalid model format",{model:b}),(0,n.yj)(s.gx.BAD_REQUEST,"Invalid model format")}let{provider:B,model:C}=y;if(!(0,j.YI)(B))return v.warn("AUTH",`Unknown or removed provider: ${B}`),(0,n.yj)(s.gx.NOT_FOUND,`Unknown or removed provider: ${B}`);let E=d?.headers?.get("user-agent")||"",F=new Set,G=null,H=null,I=null;for(;;){let b=await (0,f.c1)(B,F,C,{requestedModel:r||C});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=G||b.lastError||"Unavailable",c=s.gx.SERVICE_UNAVAILABLE;return v.warn("CHAT",`[${B}/${C}] ${a} (${b.retryAfterHuman})`),(0,n.wO)(c,`[${B}/${C}] ${a}`,b.retryAfter,b.retryAfterHuman,I)}if(0===F.size)return v.warn("AUTH",`No active credentials for provider: ${B}`),(0,n.yj)(s.gx.NOT_FOUND,`No active credentials for provider: ${B}`);return v.warn("CHAT","No more accounts available",{provider:B}),(0,n.yj)(H||s.gx.SERVICE_UNAVAILABLE,G||"All accounts unavailable",I)}let i=await (0,w.checkAndRefreshToken)(B,b);if(("antigravity"===B||"gemini-cli"===B)&&!i.projectId){let a=await (0,x.eG)(b.connectionId,i.accessToken,B);a&&(i.projectId=a,(0,w.vN)(b.connectionId,{projectId:a}).catch(()=>{}))}let p=await (0,h.mt)(),q=(p.providerThinking||{})[B]||null,u=await (0,j.wk)({body:{...a,model:`${B}/${C}`},modelInfo:{provider:B,model:C},credentials:i,log:v,clientRawRequest:c,connectionId:b.connectionId,userAgent:E,apiKey:e,ccFilterNaming:!!p.ccFilterNaming,rtkEnabled:!!p.rtkEnabled,headroomEnabled:!!p.headroomEnabled,headroomUrl:p.headroomUrl||k.ag,headroomCompressUserMessages:!!p.headroomCompressUserMessages,headroomTimeoutMs:p.headroomTimeoutMs,cavemanEnabled:!!p.cavemanEnabled,cavemanLevel:p.cavemanLevel||"full",ponytailEnabled:!!p.ponytailEnabled,ponytailLevel:p.ponytailLevel||"full",customPromptEnabled:!!p.customPromptEnabled,customPrompt:p.customPrompt||"",pxpipeEnabled:!!p.pxpipeEnabled,pxpipeMinChars:p.pxpipeMinChars,pxpipeTimeoutMs:p.pxpipeTimeoutMs,pxpipeTransform:p.pxpipeEnabled?await (0,l.RG)():null,onPxpipeEvent:m.T0,providerThinking:q,providerOverrides:(p.providerOverrides||{})[B]||null,sourceFormatOverride:d?.url?(0,t.t)(new URL(d.url).pathname,a):null,onCredentialsRefreshed:async a=>{await (0,w.vN)(b.connectionId,{...a,existingProviderSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,f.Pt)(b.connectionId,b,C),(0,g.vO)(b.connectionId,C)}});if(u.success)return u.response;let y=null,z=u.resetsAtMs;if("antigravity"===B&&(409===u.status||429===u.status)&&(y=await (0,g.XJ)(b.connectionId,u.status,C,i.accessToken,b.providerSpecificData))&&(z=y),"antigravity"===B&&y||(await (0,f.vk)(b.connectionId,u.status,u.error,B,C,z)).shouldFallback){v.warn("FALLBACK",`⇄ ACC:${b.connectionName} UNAVAILABLE (${u.status}) → NEXT ACCOUNT`),F.add(b.connectionId),G=u.error,H=u.status,I=(0,o.d)(u.response?.headers);continue}return u.response}}[e,j]=B.then?(await B)():B,d()}catch(a){d(a)}})},83017:(a,b,c)=>{c.d(b,{l:()=>k});var d=c(43659),e=c(41004),f=c(49426),g=c(26070),h=c(57247),i=c(17373);let j=new Set(["opencode","opencode-zen"]);async function k({body:a,modelInfo:b,credentials:c,log:l,onRequestSuccess:m,signal:n}){let o,p,{provider:q,model:r}=b,s=(0,h.kt)(h.Xg[q]||q,r)||r,t=g.B$[q]?.systemoneConfig,u=function(a,b){let c=a?.trim();if(!c)return b?.baseUrl;if(!b?.path)return c;let d=c.replace(/\/+$/,""),e=b.path.replace(/\/+$/,"");if(d.endsWith(e))return d;let f=e.slice(0,e.lastIndexOf("/"));return f&&d.endsWith(f)?d+e.slice(f.length):d+e}(c?.providerSpecificData?.baseUrl,t);if(!u)return(0,d.A1)(e.gx.BAD_REQUEST,`Provider '${q}' does not support System One.`);if(u.includes("{accountId}")){let a=c?.providerSpecificData?.accountId;if(!a)return(0,d.A1)(e.gx.BAD_REQUEST,`Provider '${q}' requires accountId in providerSpecificData.`);u=u.replace("{accountId}",a)}if(u.includes("{model}")&&(u=u.replace(/\{model\}/g,s)),void 0===a.state||null===a.state)return(0,d.A1)(e.gx.BAD_REQUEST,"Missing required field: state");if(!a.questions||"object"!=typeof a.questions||Array.isArray(a.questions))return(0,d.A1)(e.gx.BAD_REQUEST,"Missing required field: questions");let v=c?.apiKey||c?.accessToken,w={"Content-Type":"application/json",...v?{Authorization:`Bearer ${v}`}:{},...t.headers||{},...j.has(q)?{"x-opencode-session":(0,i.f6)()}:{}},x={...a,model:s};l?.debug?.("SYSTEMONE",`${q.toUpperCase()} | ${r}`);try{o=await (0,f.S)(u,{method:"POST",headers:w,body:JSON.stringify(x),...n?{signal:n}:{}})}catch(b){let a=(0,d.lR)(b,q,r,e.gx.BAD_GATEWAY);return l?.debug?.("SYSTEMONE",`Fetch error: ${a}`),(0,d.A1)(e.gx.BAD_GATEWAY,a)}if(!o.ok){let{statusCode:a,message:b}=await (0,d.zL)(o),c=(0,d.lR)(Error(b),q,r,a);return l?.debug?.("SYSTEMONE",`Provider error: ${c}`),(0,d.A1)(a,c)}try{p=await o.json()}catch{return(0,d.A1)(e.gx.BAD_GATEWAY,`Invalid JSON response from ${q}`)}m&&await m();let y=p?.usage;return{success:!0,usage:y?{prompt_tokens:y.input_tokens||0,completion_tokens:y.output_tokens||0}:null,response:new Response(JSON.stringify(p),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},87155:(a,b,c)=>{c.d(b,{CG:()=>q,ED:()=>u,S1:()=>s,XF:()=>j,_g:()=>t,no:()=>r,sW:()=>w});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.n,"pxpipe"),k="pxpipe-proxy",l=g().join(j,"install.log"),m="win32"===process.platform,n=[...m?[`${process.env.ProgramFiles||""}\\nodejs`,`${process.env.APPDATA||""}\\npm`]:["/usr/local/bin","/opt/homebrew/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],process.env.PATH||""].filter(Boolean).join(g().delimiter),o=null;function p(){return g().join(j,"node_modules",k)}function q(){return g().join(p(),"dist","core","library.js")}function r(){try{let a=(0,h.execSync)(`${m?"where":"which"} npm`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:n}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function s(){try{let a=g().join(p(),"package.json");if(!e().existsSync(a)||!e().existsSync(q()))return{installed:!1,version:null,path:null};let b=JSON.parse(e().readFileSync(a,"utf8"));return{installed:!0,version:b.version||null,path:p()}}catch{return{installed:!1,version:null,path:null}}}function t(){return null!==o}function u(){return o||(o=v().finally(()=>{o=null}))}async function v(){let a=r();if(!a){let a=Error("npm not found on PATH — Node.js/npm is required to install PXPIPE");throw a.code="NPM_NOT_FOUND",a}e().existsSync(j)||e().mkdirSync(j,{recursive:!0});let b=g().join(j,"package.json");e().existsSync(b)||e().writeFileSync(b,JSON.stringify({name:"9router-pxpipe-host",private:!0},null,2));let c=e().openSync(l,"a");e().writeSync(c,`
|
|
1
|
+
"use strict";exports.id=9489,exports.ids=[9489],exports.modules={428:(a,b,c)=>{c.d(b,{J:()=>i});var d=c(38775),e=c(95827),f=c(67828),g=c(83017),h=c(57874);async function i({body:a,models:b,routerModel:c=h.UH,log:j,timeoutMs:k=h.rc}){if(!Array.isArray(b)||b.length<=1)return null;let l="string"==typeof c&&c.trim()?c.trim():h.UH,m=(0,h.nn)(a);if(!m)return j?.debug?.("COMBO","smart-router: empty prompt state, skipping classification"),null;let n=(0,h.JE)(b);if(0===Object.keys(n).length)return null;try{let a,b,c=await (0,d.mA)(l);if(!c?.provider)return j?.warn?.("COMBO",`smart-router: unrecognized router model "${l}"`),null;let{provider:i,model:o}=c,p=await (0,e.c1)(i,new Set,o);if(!p||p.allRateLimited)return j?.warn?.("COMBO",`smart-router: no credentials available for router provider "${i}"`),null;let q=await (0,f.checkAndRefreshToken)(i,p),r=new AbortController,s=new Promise((b,c)=>{a=setTimeout(()=>{let a=Error(`System One router timed out after ${k}ms`);r.abort(a),c(a)},k)}),t=(0,g.l)({body:{model:o,state:m,questions:{route:{type:"choice",instructions:"Which of these configured models is the most appropriate for this request?",criteria:n}}},modelInfo:{provider:i,model:o},credentials:q,log:j,onRequestSuccess:()=>{},signal:r.signal});try{b=await Promise.race([t,s])}finally{clearTimeout(a)}if(!b?.success||!b.response)return j?.warn?.("COMBO",`smart-router: evaluation failed (${b?.status||"error"})`),null;let u=await b.response.json(),v=(0,h.Kn)(u);if(!v||!v.choice)return j?.warn?.("COMBO","smart-router: response missing valid route choice"),null;return v}catch(a){return j?.warn?.("COMBO",`smart-router: evaluation aborted (${a?.message||String(a)})`),null}}},3894:(a,b,c)=>{c.d(b,{F_:()=>g,Nc:()=>h,Qh:()=>t,Su:()=>q,ag:()=>o,kI:()=>p,rl:()=>u,sy:()=>s});var d=c(79646),e=c(33873),f=c.n(e);let g=["code","ml"],h={code:["tree-sitter","tree-sitter-language-pack"],ml:["torch","huggingface-hub"]},i="win32"===process.platform,j=i?"where":"which",k=i?[`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python313\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python312\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python311\\Scripts`,`${process.env.LOCALAPPDATA||""}\\Programs\\Python\\Python310\\Scripts`,`${process.env.APPDATA||""}\\Python\\Python313\\Scripts`]:["/usr/local/bin","/opt/homebrew/bin","/Library/Frameworks/Python.framework/Versions/3.13/bin","/Library/Frameworks/Python.framework/Versions/3.12/bin","/Library/Frameworks/Python.framework/Versions/3.11/bin","/Library/Frameworks/Python.framework/Versions/3.10/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],l=[...k,process.env.PATH||""].filter(Boolean).join(f().delimiter),m=["python3.13","python3.12","python3.11","python3.10","python3","python"],n=new Set(["localhost","127.0.0.1","::1","[::1]","0.0.0.0"]),o=process.env.HEADROOM_URL||"http://localhost:8787";function p(){try{let a=(0,d.execSync)(`${j} headroom`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:l}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function q(){let a=null;for(let b of function(){let a=[],b=p();if(b){let c=f().dirname(b);for(let b of i?["python.exe","python3.exe"]:["python3","python3.13","python"])a.push(f().join(c,b))}for(let b of k)if(b)for(let c of m)a.push(f().join(b,i?`${c}.exe`:c));return a.push(...m),a}())try{let c=(0,d.execSync)(`${b} --version`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:l}}).toString().trim().match(/(\d+)\.(\d+)/);if(!c)continue;let[e,f]=[parseInt(c[1],10),parseInt(c[2],10)];if(!(e>3||3===e&&f>=10))continue;a||(a=b);try{return(0,d.execFileSync)(b,["-m","pip","show","headroom-ai"],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:l}}),b}catch{}}catch{}return a}async function r(a){if(!a)return!1;let b=String(a).replace(/\/$/,"");try{return(await fetch(`${b}/health`,{signal:AbortSignal.timeout(1500)})).ok}catch{return!1}}function s(a){try{let b=new URL(a);return n.has(b.hostname)}catch{return!1}}async function t(a){let b=p(),c=q(),d=!!b,e=await r(a),f=s(a),g=d?u(c):{installed:!1,version:null,extras:{code:!1,ml:!1}};return{installed:d,path:b,running:e,python:c,localUrl:f,canStart:d&&f,version:g.version,extras:g.extras}}function u(a){let b=a||q();if(!b)return{installed:!1,version:null,extras:{code:!1,ml:!1}};try{let a=(0,d.execFileSync)(b,["-m","pip","list","--format=json","--disable-pip-version-check"],{stdio:["ignore","pipe","ignore"],windowsHide:!0,timeout:8e3,env:{...process.env,PATH:l}}).toString(),c=JSON.parse(a),e=new Set(c.map(a=>String(a.name||"").toLowerCase()));if(!e.has("headroom-ai"))return{installed:!1,version:null,extras:{code:!1,ml:!1}};let f=c.find(a=>a.name?.toLowerCase()==="headroom-ai")?.version||null,i={};for(let a of g)i[a]=h[a].some(a=>e.has(a));return{installed:!0,version:f,extras:i}}catch{return{installed:!1,version:null,extras:{code:!1,ml:!1}}}}},17603:(a,b,c)=>{c.d(b,{R8:()=>l,ar:()=>n,vB:()=>j});var d=c(24);let e=["vision","pdf","audioInput","videoInput"],f=new Set(e),g="oc/mimo-v2.6-flash-free",h=a=>"oc/mimo-v2.5-free"===a?g:a;function i(a,b){var c;let d=Array.isArray(c=b?.capacityAdapter?.[a])?{enabled:!0,roundRobin:!1,models:c.map(a=>h(a?.model||a)).filter(Boolean)}:c&&"object"==typeof c?{enabled:!1!==c.enabled,roundRobin:!!c.roundRobin,models:Array.isArray(c.models)?c.models.map(h).filter(Boolean):[]}:{enabled:!1,roundRobin:!1,models:[]};return d.enabled&&0===d.models.length?{...d,models:[g]}:d}function j(a,b){for(let c of[...a||[]].filter(a=>f.has(a))){let{enabled:a,models:d}=i(c,b);if(a&&0!==d.length)return function(a,b){let{enabled:c,roundRobin:d}=i(a,b);return c&&d?"round-robin":"fallback"}(c,b)}return"fallback"}function k(a,b){let c=a.indexOf("/"),e=c>0?a.slice(0,c):"",f=c>0?a.slice(c+1):a,g=(0,d.getCapabilitiesForModel)(e,f);return b.every(a=>!0===g[a])}function l(a,b,c){let d=[...b||[]].filter(a=>f.has(a));if(0===d.length||!Array.isArray(a)||0===a.length||a.some(a=>k(a,d)))return a;let g=(function(a){let b=new Set,c=[];for(let d of e){let{enabled:e,models:f}=i(d,a);if(e)for(let a of f)b.has(a)||(b.add(a),c.push(a))}return c})(c).filter(b=>!a.includes(b)&&k(b,d));return 0===g.length?a:[...g,...a]}function m(a){return"string"==typeof a?a.length:Array.isArray(a)?a.reduce((a,b)=>a+("string"==typeof b?.text?b.text.length:50),0):0}function n(a,b){let c=new Set(b);return 0===c.size?a:(b,e,...f)=>{if(c.has(e)){let a=e.indexOf("/"),c=a>0?e.slice(0,a):"",f=a>0?e.slice(a+1):e,{contextWindow:g}=(0,d.getCapabilitiesForModel)(c,f);b=function(a,b){let c=Array.isArray(a.messages)?"messages":Array.isArray(a.input)?"input":Array.isArray(a.contents)?"contents":null;if(!c)return a;let d=a[c];if(!d||0===d.length)return a;let e=a=>"system"===a||"developer"===a,f=d.filter(a=>e(a?.role)),g=d.filter(a=>!e(a?.role));if(0===g.length)return a;let h=a=>"assistant"===a||"model"===a,i=g.length-1;for(;i>=0&&!h(g[i]?.role);)i--;let j=g.slice(i+1),k=g.slice(0,i+1);if(0===k.length)return a;let l=a=>a.content??a.parts,n=.8*(b||2e5)*4,o=k.slice(0,6),p=f.concat(o,j).reduce((a,b)=>a+m(l(b)),0);for(;p>n&&o.length>0;)p-=m(l(o.pop()));return o.length===k.length?a:{...a,[c]:[...f,...o,...j]}}(b,g)}return a(b,e,...f)}}},46634:(a,b,c)=>{c.d(b,{Mo:()=>h,RG:()=>l,V:()=>i,Y8:()=>k,xl:()=>m});var d=c(1932),e=c(87155);let f=null,g=null;function h(){return f?{loaded:!0,version:f.version,loadedAt:f.loadedAt}:{loaded:!1}}async function i(){return f||g||(g=j().finally(()=>{g=null}))}async function j(){let a=(0,e.S1)();if(!a.installed){let a=Error("PXPIPE is not installed");throw a.code="NOT_INSTALLED",a}let b=`${(0,d.pathToFileURL)((0,e.CG)()).href}?v=${encodeURIComponent(a.version||"0")}`,c=await import(b);if("function"!=typeof c.transformAnthropicMessages)throw Error("installed pxpipe package does not export transformAnthropicMessages");return f={module:c,version:a.version,loadedAt:Date.now()}}function k(){let a=!!f;return f=null,a}async function l({autoLoad:a=!0}={}){try{if(!f&&!a)return null;let{module:b}=await i();return b.transformAnthropicMessages}catch{return null}}async function m(){let a=Date.now(),{module:b}=await i(),c=new TextEncoder().encode(JSON.stringify({model:"claude-fable-5",max_tokens:16,messages:[{role:"user",content:"ping"}]})),d=await b.transformAnthropicMessages({body:c,model:"claude-fable-5"});if(!d||"boolean"!=typeof d.applied||!(d.body instanceof Uint8Array))throw Error("transform returned an unexpected shape");return{ok:!0,reason:d.reason,durationMs:Date.now()-a}}},46945:(a,b,c)=>{c.d(b,{V:()=>e});let d=/\[1m\]$/i;function e(a){if("string"!=typeof a)return{model:a,contextMarker:null};let b=a.trim(),c=b.match(d);return c?{model:b.slice(0,-c[0].length),contextMarker:c[0].slice(1,-1).toLowerCase()}:{model:a,contextMarker:null}}},74388:(a,b,c)=>{c.d(b,{Az:()=>l,SP:()=>o,T0:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(87155);let i=g().join(h.XF,"events.jsonl"),j=g().join(h.XF,"events.jsonl.1");function k(a){try{e().existsSync(h.XF)||e().mkdirSync(h.XF,{recursive:!0});try{e().statSync(i).size>5242880&&e().renameSync(i,j)}catch{}e().appendFile(i,JSON.stringify({ts:Date.now(),...a})+"\n",()=>{})}catch{}}function l({sinceMs:a=null,limit:b=null}={}){let c=[];for(let b of[j,i])try{if(!e().existsSync(b))continue;for(let d of e().readFileSync(b,"utf8").split("\n"))if(d)try{let b=JSON.parse(d);if(a&&b.ts<a)continue;c.push(b)}catch{}}catch{}return c.sort((a,b)=>a.ts-b.ts),b?c.slice(-b):c}function m(){return{requests:0,compressed:0,bypassed:0,errors:0,tokensBeforeEst:0,tokensAfterEst:0,tokensSavedEst:0,savedPct:0,imagesGenerated:0,compressionTimeMs:0,avgCompressionMs:0}}function n(a,b){a.requests++,b.applied?(a.compressed++,a.tokensBeforeEst+=b.tokensBeforeEst||0,a.tokensAfterEst+=b.tokensAfterEst||0,a.tokensSavedEst+=b.tokensSavedEst||0,a.imagesGenerated+=b.imageCount||0,a.compressionTimeMs+=b.durationMs||0):"transform_error"===b.reason||"timeout"===b.reason?a.errors++:a.bypassed++}function o({timelineDays:a=30,recentLimit:b=100}={}){let c=l(),d=Date.now(),e=new Date(new Date(d).setHours(0,0,0,0)).getTime(),f={all:m(),today:m(),yesterday:m(),last7d:m(),last30d:m()},g=new Map;for(let b=a-1;b>=0;b--){let a=new Date(e-864e5*b);g.set(a.toISOString().slice(0,10),{date:a.toISOString().slice(0,10),tokensSavedEst:0,compressed:0,requests:0})}for(let a of c){n(f.all,a),a.ts>=e?n(f.today,a):a.ts>=e-864e5&&n(f.yesterday,a),a.ts>=d-6048e5&&n(f.last7d,a),a.ts>=d-2592e6&&n(f.last30d,a);let b=new Date(a.ts).toISOString().slice(0,10),c=g.get(b);c&&(c.requests++,a.applied&&(c.compressed++,c.tokensSavedEst+=a.tokensSavedEst||0))}for(let a of Object.values(f))a.savedPct=a.tokensBeforeEst>0?+(a.tokensSavedEst/a.tokensBeforeEst*100).toFixed(2):0,a.avgCompressionMs=a.compressed>0?Math.round(a.compressionTimeMs/a.compressed):0;return{windows:f,timeline:[...g.values()],recent:c.slice(-b).reverse()}}},79489:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>C});var e=c(48895),f=c(95827),g=c(45974),h=c(89718),i=c(38775),j=c(92500),k=c(3894),l=c(46634),m=c(74388),n=c(43659),o=c(48136),p=c(25308),q=c(17603),r=c(27349),s=c(41004),t=c(14170),u=c(80662),v=c(7803),w=c(67828),x=c(38160),y=c(46945),z=c(27811),A=c(428),B=a([e,j]);async function C(a,b=null){let c;try{c=await a.json()}catch{return v.warn("CHAT","Invalid JSON body"),(0,n.yj)(s.gx.BAD_REQUEST,"Invalid JSON body")}b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let{model:d,contextMarker:e}=(0,y.V)(c.model);e&&(c.model=d);let g=(0,u.bS)({headers:b?.headers,body:c}),j=g?.sessionId||null,k=a.headers.get("Authorization"),l=(0,f.Tr)(a);if(k&&l){let a=v.maskKey(l);v.debug("AUTH",`API Key: ${a}`)}else v.debug("AUTH","No API key provided (local mode)");let m=await (0,h.mt)();if(m.requireApiKey){if(!l)return v.warn("AUTH","Missing API key (requireApiKey=true)"),(0,n.yj)(s.gx.UNAUTHORIZED,"Missing API key");if(!await (0,f.kI)(l))return v.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,n.yj)(s.gx.UNAUTHORIZED,"Invalid API key")}if(!d)return v.warn("CHAT","Missing model"),(0,n.yj)(s.gx.BAD_REQUEST,"Missing model");let o=await (0,z.TM)(a),t=await (0,z.cI)(o,d);if(t)return t;let w=a?.headers?.get("user-agent")||"",x=(0,r.c)(c,d,w,!!m.ccFilterNaming);if(x)return x.response||x;let B=(0,p.t8)(c),E=await (0,i.d_)(d);if(E){let e=m.comboStrategies||{},f=e[d]?.fallbackStrategy||m.comboStrategy||"fallback",g=await (0,z.Ge)(o,(0,q.R8)(E,B,m),E),h=g.filter(a=>!E.includes(a));if("fusion"===f)return v.info("CHAT",`Combo "${d}" with ${E.length} models (strategy: fusion)`),(0,p.vt)({body:c,models:E,handleSingleModel:(c,d,e)=>{let f=b;if(e&&b){let{tools:a,tool_choice:c,...d}=b.body||{};f={...b,body:d}}return D(c,d,f,a,l)},log:v,comboName:d,judgeModel:e[d]?.judgeModel,tuning:e[d]?.fusionTuning});let i=m.comboStickyRoundRobinLimit,k=e[d]||{};return v.info("CHAT",`Combo "${d}" with ${g.length} models (strategy: ${f}, sticky: ${i})`),(0,p.Pr)({body:c,models:g,handleSingleModel:(0,q.ar)((c,d)=>D(c,d,b,a,l),h),log:v,comboName:d,comboStrategy:f,comboStickyLimit:i,sessionId:j,smartPolicy:k.smartPolicy||"smart",sessionSticky:!1!==k.sessionSticky,confidenceThreshold:"number"==typeof k.confidenceThreshold?k.confidenceThreshold:.8,emptyTurnNotice:!0,resolveSmartChoice:"smart"===f?(a,b)=>(0,A.J)({body:a,models:b,routerModel:k.routerModel,log:v}):null})}let F=await (0,z.Ge)(o,(0,q.R8)([d],B,m),[d]);if(F.length>1){let e=F.filter(a=>a!==d);return v.info("CHAT",`Capacity adapter for [${[...B].join(",")}] on "${d}" → trying ${F.join(", ")}`),(0,p.Pr)({body:c,models:F,handleSingleModel:(0,q.ar)((c,d)=>D(c,d,b,a,l),e),log:v,comboName:d,comboStrategy:(0,q.vB)(B,m),emptyTurnNotice:!0})}return D(c,d,b,a,l,e?`${d.slice(d.indexOf("/")+1)}[${e}]`:null)}async function D(a,b,c=null,d=null,e=null,r=null){let y=await (0,i.mA)(b);if(!y.provider){let f=await (0,i.d_)(b);if(f){let g=await (0,h.mt)(),i=g.comboStrategies||{},j=i[b]?.fallbackStrategy||g.comboStrategy||"fallback",k=(0,p.t8)(a),l=await (0,z.TM)(d),m=await (0,z.Ge)(l,(0,q.R8)(f,k,g),f),n=m.filter(a=>!f.includes(a));if("fusion"===j)return v.info("CHAT",`Combo "${b}" with ${f.length} models (strategy: fusion)`),(0,p.vt)({body:a,models:f,handleSingleModel:(a,b,f)=>{let g=c;if(f&&c){let{tools:a,tool_choice:b,...d}=c.body||{};g={...c,body:d}}return D(a,b,g,d,e)},log:v,comboName:b,judgeModel:i[b]?.judgeModel,tuning:i[b]?.fusionTuning});let o=g.comboStickyRoundRobinLimit,r=i[b]||{},s=(0,u.bS)({headers:c?.headers,body:a}),t=s?.sessionId||null;return v.info("CHAT",`Combo "${b}" with ${m.length} models (strategy: ${j}, sticky: ${o})`),(0,p.Pr)({body:a,models:m,handleSingleModel:(0,q.ar)((a,b)=>D(a,b,c,d,e),n),log:v,comboName:b,comboStrategy:j,comboStickyLimit:o,sessionId:t,smartPolicy:r.smartPolicy||"smart",sessionSticky:!1!==r.sessionSticky,confidenceThreshold:"number"==typeof r.confidenceThreshold?r.confidenceThreshold:.8,emptyTurnNotice:!0,resolveSmartChoice:"smart"===j?(a,b)=>(0,A.J)({body:a,models:b,routerModel:r.routerModel,log:v}):null})}return v.warn("CHAT","Invalid model format",{model:b}),(0,n.yj)(s.gx.BAD_REQUEST,"Invalid model format")}let{provider:B,model:C}=y;if(!(0,j.YI)(B))return v.warn("AUTH",`Unknown or removed provider: ${B}`),(0,n.yj)(s.gx.NOT_FOUND,`Unknown or removed provider: ${B}`);let E=d?.headers?.get("user-agent")||"",F=new Set,G=null,H=null,I=null;for(;;){let b=await (0,f.c1)(B,F,C,{requestedModel:r||C});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=G||b.lastError||"Unavailable",c=s.gx.SERVICE_UNAVAILABLE;return v.warn("CHAT",`[${B}/${C}] ${a} (${b.retryAfterHuman})`),(0,n.wO)(c,`[${B}/${C}] ${a}`,b.retryAfter,b.retryAfterHuman,I)}if(0===F.size)return v.warn("AUTH",`No active credentials for provider: ${B}`),(0,n.yj)(s.gx.NOT_FOUND,`No active credentials for provider: ${B}`);return v.warn("CHAT","No more accounts available",{provider:B}),(0,n.yj)(H||s.gx.SERVICE_UNAVAILABLE,G||"All accounts unavailable",I)}let i=await (0,w.checkAndRefreshToken)(B,b);if(("antigravity"===B||"gemini-cli"===B)&&!i.projectId){let a=await (0,x.eG)(b.connectionId,i.accessToken,B);a&&(i.projectId=a,(0,w.vN)(b.connectionId,{projectId:a}).catch(()=>{}))}let p=await (0,h.mt)(),q=(p.providerThinking||{})[B]||null,u=await (0,j.wk)({body:{...a,model:`${B}/${C}`},modelInfo:{provider:B,model:C},credentials:i,log:v,clientRawRequest:c,connectionId:b.connectionId,userAgent:E,apiKey:e,ccFilterNaming:!!p.ccFilterNaming,rtkEnabled:!!p.rtkEnabled,headroomEnabled:!!p.headroomEnabled,headroomUrl:p.headroomUrl||k.ag,headroomCompressUserMessages:!!p.headroomCompressUserMessages,headroomTimeoutMs:p.headroomTimeoutMs,cavemanEnabled:!!p.cavemanEnabled,cavemanLevel:p.cavemanLevel||"full",ponytailEnabled:!!p.ponytailEnabled,ponytailLevel:p.ponytailLevel||"full",customPromptEnabled:!!p.customPromptEnabled,customPrompt:p.customPrompt||"",pxpipeEnabled:!!p.pxpipeEnabled,pxpipeMinChars:p.pxpipeMinChars,pxpipeTimeoutMs:p.pxpipeTimeoutMs,pxpipeTransform:p.pxpipeEnabled?await (0,l.RG)():null,onPxpipeEvent:m.T0,providerThinking:q,providerOverrides:(p.providerOverrides||{})[B]||null,sourceFormatOverride:d?.url?(0,t.t)(new URL(d.url).pathname,a):null,onCredentialsRefreshed:async a=>{await (0,w.vN)(b.connectionId,{...a,existingProviderSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,f.Pt)(b.connectionId,b,C),(0,g.vO)(b.connectionId,C)}});if(u.success)return u.response;let y=null,z=u.resetsAtMs;if("antigravity"===B&&(409===u.status||429===u.status)&&(y=await (0,g.XJ)(b.connectionId,u.status,C,i.accessToken,b.providerSpecificData))&&(z=y),"antigravity"===B&&y||(await (0,f.vk)(b.connectionId,u.status,u.error,B,C,z)).shouldFallback){v.warn("FALLBACK",`⇄ ACC:${b.connectionName} UNAVAILABLE (${u.status}) → NEXT ACCOUNT`),F.add(b.connectionId),G=u.error,H=u.status,I=(0,o.d)(u.response?.headers);continue}return u.response}}[e,j]=B.then?(await B)():B,d()}catch(a){d(a)}})},83017:(a,b,c)=>{c.d(b,{l:()=>k});var d=c(43659),e=c(41004),f=c(49426),g=c(26070),h=c(57247),i=c(17373);let j=new Set(["opencode","opencode-zen"]);async function k({body:a,modelInfo:b,credentials:c,log:l,onRequestSuccess:m,signal:n}){let o,p,{provider:q,model:r}=b,s=(0,h.kt)(h.Xg[q]||q,r)||r,t=g.B$[q]?.systemoneConfig,u=function(a,b){let c=a?.trim();if(!c)return b?.baseUrl;if(!b?.path)return c;let d=c.replace(/\/+$/,""),e=b.path.replace(/\/+$/,"");if(d.endsWith(e))return d;let f=e.slice(0,e.lastIndexOf("/"));return f&&d.endsWith(f)?d+e.slice(f.length):d+e}(c?.providerSpecificData?.baseUrl,t);if(!u)return(0,d.A1)(e.gx.BAD_REQUEST,`Provider '${q}' does not support System One.`);if(u.includes("{accountId}")){let a=c?.providerSpecificData?.accountId;if(!a)return(0,d.A1)(e.gx.BAD_REQUEST,`Provider '${q}' requires accountId in providerSpecificData.`);u=u.replace("{accountId}",a)}if(u.includes("{model}")&&(u=u.replace(/\{model\}/g,s)),void 0===a.state||null===a.state)return(0,d.A1)(e.gx.BAD_REQUEST,"Missing required field: state");if(!a.questions||"object"!=typeof a.questions||Array.isArray(a.questions))return(0,d.A1)(e.gx.BAD_REQUEST,"Missing required field: questions");let v=c?.apiKey||c?.accessToken,w={"Content-Type":"application/json",...v?{Authorization:`Bearer ${v}`}:{},...t.headers||{},...j.has(q)?{"x-opencode-session":(0,i.f6)()}:{}},x={...a,model:s};l?.debug?.("SYSTEMONE",`${q.toUpperCase()} | ${r}`);try{o=await (0,f.S)(u,{method:"POST",headers:w,body:JSON.stringify(x),...n?{signal:n}:{}})}catch(b){let a=(0,d.lR)(b,q,r,e.gx.BAD_GATEWAY);return l?.debug?.("SYSTEMONE",`Fetch error: ${a}`),(0,d.A1)(e.gx.BAD_GATEWAY,a)}if(!o.ok){let{statusCode:a,message:b}=await (0,d.zL)(o),c=(0,d.lR)(Error(b),q,r,a);return l?.debug?.("SYSTEMONE",`Provider error: ${c}`),(0,d.A1)(a,c)}try{p=await o.json()}catch{return(0,d.A1)(e.gx.BAD_GATEWAY,`Invalid JSON response from ${q}`)}m&&await m();let y=p?.usage;return{success:!0,usage:y?{prompt_tokens:y.input_tokens||0,completion_tokens:y.output_tokens||0}:null,response:new Response(JSON.stringify(p),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}},87155:(a,b,c)=>{c.d(b,{CG:()=>q,ED:()=>u,S1:()=>s,XF:()=>j,_g:()=>t,no:()=>r,sW:()=>w});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(79646),i=c(49120);let j=g().join(i.n,"pxpipe"),k="pxpipe-proxy",l=g().join(j,"install.log"),m="win32"===process.platform,n=[...m?[`${process.env.ProgramFiles||""}\\nodejs`,`${process.env.APPDATA||""}\\npm`]:["/usr/local/bin","/opt/homebrew/bin",`${process.env.HOME||""}/.local/bin`,"/usr/bin","/bin"],process.env.PATH||""].filter(Boolean).join(g().delimiter),o=null;function p(){return g().join(j,"node_modules",k)}function q(){return g().join(p(),"dist","core","library.js")}function r(){try{let a=(0,h.execSync)(`${m?"where":"which"} npm`,{stdio:["ignore","pipe","ignore"],windowsHide:!0,env:{...process.env,PATH:n}}).toString().trim();return a?a.split(/\r?\n/)[0].trim():null}catch{return null}}function s(){try{let a=g().join(p(),"package.json");if(!e().existsSync(a)||!e().existsSync(q()))return{installed:!1,version:null,path:null};let b=JSON.parse(e().readFileSync(a,"utf8"));return{installed:!0,version:b.version||null,path:p()}}catch{return{installed:!1,version:null,path:null}}}function t(){return null!==o}function u(){return o||(o=v().finally(()=>{o=null}))}async function v(){let a=r();if(!a){let a=Error("npm not found on PATH — Node.js/npm is required to install PXPIPE");throw a.code="NPM_NOT_FOUND",a}e().existsSync(j)||e().mkdirSync(j,{recursive:!0});let b=g().join(j,"package.json");e().existsSync(b)||e().writeFileSync(b,JSON.stringify({name:"9router-pxpipe-host",private:!0},null,2));let c=e().openSync(l,"a");e().writeSync(c,`
|
|
2
2
|
[${new Date().toISOString()}] npm install ${k}@latest
|
|
3
3
|
`),await new Promise((b,d)=>{let e=(0,h.spawn)(a,["install",`${k}@latest`,"--no-audit","--no-fund","--omit=dev"],{cwd:j,stdio:["ignore",c,c],windowsHide:!0,env:{...process.env,PATH:n}}),f=setTimeout(()=>{e.kill("SIGKILL"),d(Error("npm install timed out after 5 minutes — see install.log"))},3e5);e.once("error",a=>{clearTimeout(f),d(a)}),e.once("exit",a=>{clearTimeout(f),0===a?b():d(Error(`npm install exited with code ${a} — see install.log`))})}).finally(()=>e().closeSync(c));let d=s();if(!d.installed)throw Error("install finished but package is missing — see install.log");return d}function w(a=200){try{if(!e().existsSync(l))return"";return e().readFileSync(l,"utf8").split(/\r?\n/).filter(Boolean).slice(-a).join("\n")}catch{return""}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={21820:a=>{a.exports=require("os")},27172:(a,b,c)=>{async function d(){{let{initConsoleLogCapture:a}=await Promise.all([c.e(
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={21820:a=>{a.exports=require("os")},27172:(a,b,c)=>{async function d(){{let{initConsoleLogCapture:a}=await Promise.all([c.e(9287),c.e(8251)]).then(c.bind(c,18251));a();let{installCatalogSource:b}=await c.e(3726).then(c.bind(c,53726));await b();let{startModelCatalogSync:d}=await c.e(7716).then(c.bind(c,57716));d()}}c.r(b),c.d(b,{register:()=>d})},33873:a=>{a.exports=require("path")},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},94735:a=>{a.exports=require("events")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=27172);module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../package.json","chunks/1004.js","chunks/1133.js","chunks/1220.js","chunks/1260.js","chunks/1306.js","chunks/1329.js","chunks/1350.js","chunks/1356.js","chunks/1455.js","chunks/1679.js","chunks/1757.js","chunks/1813.js","chunks/1998.js","chunks/21.js","chunks/2214.js","chunks/2220.js","chunks/2327.js","chunks/2391.js","chunks/24.js","chunks/2409.js","chunks/241.js","chunks/2430.js","chunks/2578.js","chunks/2750.js","chunks/2760.js","chunks/2970.js","chunks/3016.js","chunks/3225.js","chunks/3256.js","chunks/341.js","chunks/3449.js","chunks/3459.js","chunks/3535.js","chunks/3546.js","chunks/3593.js","chunks/3726.js","chunks/3943.js","chunks/3966.js","chunks/4055.js","chunks/412.js","chunks/4123.js","chunks/
|
|
1
|
+
{"version":1,"files":["../package.json","chunks/1004.js","chunks/1133.js","chunks/1220.js","chunks/1260.js","chunks/1306.js","chunks/1329.js","chunks/1350.js","chunks/1356.js","chunks/1455.js","chunks/1679.js","chunks/1757.js","chunks/1813.js","chunks/1998.js","chunks/21.js","chunks/2214.js","chunks/2220.js","chunks/2327.js","chunks/2380.js","chunks/2391.js","chunks/24.js","chunks/2409.js","chunks/241.js","chunks/2430.js","chunks/2578.js","chunks/2750.js","chunks/2760.js","chunks/2822.js","chunks/2970.js","chunks/3016.js","chunks/3225.js","chunks/3256.js","chunks/341.js","chunks/3449.js","chunks/3459.js","chunks/3535.js","chunks/3546.js","chunks/3593.js","chunks/3726.js","chunks/3943.js","chunks/3966.js","chunks/4055.js","chunks/412.js","chunks/4123.js","chunks/4152.js","chunks/4190.js","chunks/4279.js","chunks/4293.js","chunks/4730.js","chunks/4739.js","chunks/4780.js","chunks/4882.js","chunks/4956.js","chunks/4957.js","chunks/5026.js","chunks/507.js","chunks/5081.js","chunks/5217.js","chunks/5258.js","chunks/5299.js","chunks/5308.js","chunks/5330.js","chunks/5573.js","chunks/5615.js","chunks/595.js","chunks/6070.js","chunks/614.js","chunks/615.js","chunks/6171.js","chunks/6457.js","chunks/6638.js","chunks/6708.js","chunks/6763.js","chunks/6777.js","chunks/6780.js","chunks/6844.js","chunks/6877.js","chunks/6921.js","chunks/698.js","chunks/6983.js","chunks/7066.js","chunks/7121.js","chunks/7187.js","chunks/7220.js","chunks/7247.js","chunks/7525.js","chunks/7557.js","chunks/7573.js","chunks/7716.js","chunks/7774.js","chunks/778.js","chunks/7801.js","chunks/7828.js","chunks/7843.js","chunks/7877.js","chunks/7913.js","chunks/794.js","chunks/7965.js","chunks/7995.js","chunks/8238.js","chunks/8251.js","chunks/8271.js","chunks/8292.js","chunks/8332.js","chunks/8402.js","chunks/8416.js","chunks/8520.js","chunks/8623.js","chunks/8895.js","chunks/8920.js","chunks/9055.js","chunks/9100.js","chunks/915.js","chunks/9287.js","chunks/9289.js","chunks/9310.js","chunks/9460.js","chunks/9489.js","chunks/9609.js","webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/i1Kua3lBkcnBzhQ70lbQO/_buildManifest.js","static/i1Kua3lBkcnBzhQ70lbQO/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-d230ecbd7bd706e6.js","static/chunks/4bd1b696-8cd12253b448cc13.js","static/chunks/3794-fba3f76785a3c234.js","static/chunks/main-app-6b83f9262ea4869d.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__REACT_LOADABLE_MANIFEST='{"app/(dashboard)/dashboard/translator/page.js -> @monaco-editor/react":{"id":28202,"files":["static/chunks/8202.69dace5daa86686d.js"]},"shared/components/ChangelogModal.js -> marked":{"id":9233,"files":["static/chunks/9233.
|
|
1
|
+
self.__REACT_LOADABLE_MANIFEST='{"app/(dashboard)/dashboard/translator/page.js -> @monaco-editor/react":{"id":28202,"files":["static/chunks/8202.69dace5daa86686d.js"]},"shared/components/ChangelogModal.js -> marked":{"id":9233,"files":["static/chunks/9233.e1c3403556983abd.js"]},"shared/components/UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/ProviderBarChart":{"id":82435,"files":["static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/4285-8e8fd1dc26ade67d.js","static/chunks/8569.df0d706176dc1f57.js","static/chunks/2435.1eeb203d028eb21f.js"]},"shared/components/UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/ProviderTopology":{"id":63521,"files":["static/css/e07f2bf4fa519943.css","static/chunks/1a258343.290297ea7c7f28c0.js","static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/6357.99dc54a064c984c0.js","static/chunks/3521.a9e2daf685420cc7.js"]},"shared/components/UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/TopModelsChart":{"id":65462,"files":["static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/4285-8e8fd1dc26ade67d.js","static/chunks/8569.df0d706176dc1f57.js","static/chunks/5462.fed9dc8f008b389c.js"]},"shared/components/UsageStats.js -> @/app/(dashboard)/dashboard/usage/components/UsageChart":{"id":10124,"files":["static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/4285-8e8fd1dc26ade67d.js","static/chunks/1649-772a31b7f3a65900.js","static/chunks/124.cdfe12e15f8991cc.js"]},"shared/components/layouts/DashboardLayout.js -> @/app/(dashboard)/dashboard/usage/components/ProviderBarChart":{"id":82435,"files":["static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/4285-8e8fd1dc26ade67d.js","static/chunks/8569.df0d706176dc1f57.js","static/chunks/2435.1eeb203d028eb21f.js"]},"shared/components/layouts/DashboardLayout.js -> @/app/(dashboard)/dashboard/usage/components/TopModelsChart":{"id":65462,"files":["static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/4285-8e8fd1dc26ade67d.js","static/chunks/8569.df0d706176dc1f57.js","static/chunks/5462.fed9dc8f008b389c.js"]},"shared/components/layouts/DashboardLayout.js -> @/app/(dashboard)/dashboard/usage/components/UsageChart":{"id":10124,"files":["static/chunks/3842-cc4f39fa50ab8b93.js","static/chunks/4285-8e8fd1dc26ade67d.js","static/chunks/1649-772a31b7f3a65900.js","static/chunks/124.cdfe12e15f8991cc.js"]},"shared/components/layouts/DashboardLayout.js -> @/shared/components/UsageStats":{"id":6808,"files":["static/chunks/6808-5b23c18782066012.js"]}}';
|
|
@@ -68,7 +68,7 @@ Ways to fix this:
|
|
|
68
68
|
- [stream] Wrap the component in \`<Suspense fallback={...}>\` so the hook value streams in after prerendering
|
|
69
69
|
- [block] Set \`export const instant = false\` to allow a blocking route
|
|
70
70
|
|
|
71
|
-
Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook`),this.digest=n}}function p(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===n}let q=new WeakMap;function r(a,b,c){return J(a,new m(b,c))}function s(a,b,c){return J(a,new m(b,c))}function t(a,b,c,d){return N(J(a,new m(b,c)),A.bind(null,d,c))}function u(a,b,c,d){let e=J(a,new m(b,c));return null===d?e:N(e,B.bind(null,d,c))}function v(a,b,c,d){return t(a,b,c,d)}function w(a,b,c){return s(a,b,c)}function x(a,b,c,d){let e=J(a,new m(b,c));return null===d?e:N(e,C.bind(null,d,c))}function y(){return{runtimeDataAccessed:(0,g.createPromiseWithResolvers)(),shouldAttemptStaticShell:!0,shouldAttemptStaticPrefetch:!0}}function z(a){a.runtimeDataAccessed.resolve(!1)}function A(a,b){D(a,1,b)}function B(a,b){D(a,2,b)}function C(a,b){D(a,3,b)}function D(a,b,c){if("prerender"===a.type){let{prerenderDataTracking:d,stagedRendering:e}=a;if(!d||!e)return;let{currentStage:g}=e;if(g===i.RenderStage.Before)return void console.error(new f.InvariantError("Unexpected trackRuntimeDataAccessed in the Before stage."));if(g>=i.RenderStage.NavigationStatic)return;let j=a.ensureStaticLevel??h.EnsureStaticLevel.None;switch(b){case 1:{let a=null;g<=i.RenderStage.ShellStatic&&j<h.EnsureStaticLevel.Shell&&(d.shouldAttemptStaticShell=!1,a??=i.RenderStage.ShellStatic,null==F||F(c,"shell")),g<=i.RenderStage.PrefetchStatic&&j<h.EnsureStaticLevel.Prefetch&&(d.shouldAttemptStaticPrefetch=!1,a??=i.RenderStage.PrefetchStatic,null==F||F(c,"prefetch")),null!==a&&E(d,e,a);break}case 3:if(a.isFallbackUpgradeable){j<h.EnsureStaticLevel.Prefetch&&(E(d,e,i.RenderStage.PrefetchStatic),null==G||G());break}case 2:g<=i.RenderStage.PrefetchStatic&&j<h.EnsureStaticLevel.Prefetch&&(d.shouldAttemptStaticPrefetch=!1,null==F||F(c,"prefetch"),E(d,e,i.RenderStage.PrefetchStatic))}}}function E(a,b,c){let{runtimeDataAccessed:d}=a;b.currentStage>=c?d.resolve(!0):b.onStage(c,d.resolve.bind(null,!0))}let F=process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA?(a,b)=>{let{route:c}=j.workAsyncStorage.getStore();console.log(`Route '${c}': deopting to a runtime ${b} because it used ${a}`)}:void 0,G=process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA?()=>{let{route:a}=j.workAsyncStorage.getStore();console.log(`Route '${a}': marking upgradeable fallback as runtime prefetchable`)}:void 0;function H(a,b){let{stagedRendering:c}=a;if(!c)return;let{currentStage:d}=c;if(d!==i.RenderStage.Dynamic&&d!==i.RenderStage.Abandoned){if(process.env.NEXT_PRIVATE_DEBUG_VALIDATION){let a=j.workAsyncStorage.getStore();console.log(`Route ${a.route}: Incompatible shell content: ${b}`)}a.hasIncompatibleShellContent=!0}}function I(a,b){return J(a,b)}function J(a,b){if(a.aborted)return Promise.reject(b);{let c=new Promise((c,d)=>{let e=d.bind(null,b),f=q.get(a);if(f)f.push(e);else{let b=[e];q.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return c.catch(K),c}}function K(){}function L(a,b){let c=a.then(()=>b);return c.catch(K),c}function M(a,b,c){return b.stagedRendering?b.stagedRendering.delayUntilStage(c,void 0,a):new Promise(b=>{setTimeout(()=>{b(a)},0)})}function N(a,b){return O.from(a,b)}class O extends Promise{#b;static get[Symbol.species](){return Promise}static from(a,b){let c=new O(a.then.bind(a));return c.#b=b,Promise.prototype.then.call(c,void 0,K),c}then(a,b){let c=this.#b;if(c)try{c()}catch(a){console.error(a)}return Promise.prototype.then.call(this,a,b)}constructor(...a){super(...a),this.#b=null}}let P={sessionData:i.RenderStage.ShellRuntime,staticUrlData:{prefetchApi:{static:i.RenderStage.PrefetchStatic_prefetchApi,runtime:i.RenderStage.PrefetchRuntime_prefetchApi},static:i.RenderStage.PrefetchStatic,runtime:i.RenderStage.PrefetchRuntime},runtimeUrlData:i.RenderStage.PrefetchRuntime};function Q(a){return a}},80670:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DecodeError:function(){return q},MiddlewareNotFoundError:function(){return u},MissingStaticPage:function(){return t},NormalizeError:function(){return r},PageNotFoundError:function(){return s},SP:function(){return o},ST:function(){return p},WEB_VITALS:function(){return e},execOnce:function(){return f},getDisplayName:function(){return k},getLocationOrigin:function(){return i},getURL:function(){return j},isAbsoluteUrl:function(){return h},isResSent:function(){return l},loadGetInitialProps:function(){return n},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return v}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=["CLS","FCP","INP","LCP","TTFB"];function f(a){let b,c=!1;return(...d)=>(c||(c=!0,b=a(...d)),b)}let g=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,h=a=>{let b=a.charCodeAt(0);return!!(b>=65&&b<=90||b>=97&&b<=122)&&g.test(a)};function i(){let{protocol:a,hostname:b,port:c}=window.location;return`${a}//${b}${c?":"+c:""}`}function j(){let{href:a}=window.location,b=i();return a.substring(b.length)}function k(a){return"string"==typeof a?a:a.displayName||a.name||"Unknown"}function l(a){return a.finished||a.headersSent}function m(a){let b=a.split("?");return b[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(b[1]?`?${b.slice(1).join("?")}`:"")}async function n(a,b){let c=b.res||b.ctx&&b.ctx.res;if(!a.getInitialProps)return b.ctx&&b.Component?{pageProps:await n(b.Component,b.ctx)}:{};let d=await a.getInitialProps(b);if(c&&l(c))return d;if(!d)throw Error(`"${k(a)}.getInitialProps()" should resolve to an object. But found "${d}" instead.`);return d}let o="u">typeof performance,p=o&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);class q extends Error{}class r extends Error{}class s extends Error{constructor(a){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${a}`}}class t extends Error{constructor(a,b){super(),this.message=`Failed to load static file for page: ${a} ${b}`}}class u extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(a){return JSON.stringify({message:a.message,stack:a.stack})}},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},82737:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getNextPathnameInfo",{enumerable:!0,get:function(){return g}});let d=c(28516),e=c(96664),f=c(93250);function g(a,b){let{basePath:c,i18n:g,trailingSlash:h}=b.nextConfig??{},i={pathname:a,trailingSlash:"/"!==a?a.endsWith("/"):h};c&&(0,f.pathHasPrefix)(i.pathname,c)&&(i.pathname=(0,e.removePathPrefix)(i.pathname,c),i.basePath=c);let j=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let a=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=a[0],j="index"!==a[1]?`/${a.slice(1).join("/")}`:"/",!0===b.parseData&&(i.pathname=j)}if(g){let a=b.i18nProvider?b.i18nProvider.analyze(i.pathname):(0,d.normalizeLocalePath)(i.pathname,g.locales);i.locale=a.detectedLocale,i.pathname=a.pathname??i.pathname,!a.detectedLocale&&i.buildId&&(a=b.i18nProvider?b.i18nProvider.analyze(j):(0,d.normalizeLocalePath)(j,g.locales)).detectedLocale&&(i.locale=a.detectedLocale)}return i}},83997:a=>{"use strict";a.exports=require("tty")},84573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(92729),g=c(99751),h=c(68802),i=c(38955),j=Symbol("internal request");class k extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},85292:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(90132))&&d.__esModule?d:{default:d},f=c(42776),g=c(32053),h=c(29294),i=c(67205),j=c(89218),k=c(3295),l=c(28704);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.isRequestClosed=!1,this.initialOnCloseError=null,this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause();try{b(()=>{for(let a of(this.isRequestClosed=!0,this.workUnitStores))a.phase="after"})}catch(a){this.initialOnCloseError={error:a}}}after(a,b){if(this.initialOnCloseError)throw new f.InvariantError("An onClose call failed, which means after() can't work correctly.",{cause:this.initialOnCloseError.error});if(this.workUnitStores.add(b),(0,g.isThenable)(a))this.addThenable(a);else if("function"==typeof a)this.addCallback(a,b);else throw Error("`after()`: Argument must be a promise or a function")}addThenable(a){this.waitUntil||n(),this.waitUntil(new Promise(b=>{a.then(()=>{b()},a=>{b(),this.reportTaskError("promise",a)})}))}addCallback(a,b){this.waitUntil||n();let c=k.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await k.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return this.isRequestClosed?await new Promise(a=>(0,l.scheduleImmediate)(a)):await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;let a=h.workAsyncStorage.getStore();if(!a)throw new f.InvariantError("Missing workStore in AfterContext.runCallbacks");return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}))}}}function n(){throw Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment.")}},85304:(a,b,c)=>{"use strict";c.d(b,{exportSettings:()=>k,getRawSetting:()=>j,getSettings:()=>i});var d=c(27122),e=c(33323);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,requireApiKey:!0,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:9router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,headroomTimeoutMs:3e3,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",customPromptEnabled:!1,customPrompt:"",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,providerOverrides:{}};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}let h=null;async function i(){return h||(h=function(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);if(b.capacityAdapter&&"object"==typeof b.capacityAdapter)for(let a of Object.keys(b.capacityAdapter)){let c=b.capacityAdapter[a];Array.isArray(c?.models)&&(c.models=c.models.map(a=>"oc/mimo-v2.5-free"===a?"oc/mimo-v2.6-flash-free":a))}return b}(await g())),{...h}}async function j(a){let b=await g();return b?b[a]:void 0}async function k(){return await g()}},85503:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`);c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Error("Catch-all must be the last part of the URL.");let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`);if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Error(`Segment names may not start or end with extra brackets ('${e}').`);if(e.startsWith("."))throw Error(`Segment names may not start with erroneous periods ('${e}').`);function f(a,c){if(null!==a&&a!==c)throw Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`);b.forEach(a=>{if(a===c)throw Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`);if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`)}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`);f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`);f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Error(`Optional route parameters are not yet supported ("${a[0]}").`);f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return f(d).map(b=>a[c[b]])}},86013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15971),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},88026:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t={AppRenderSpan:function(){return C},AppRouteRouteHandlersSpan:function(){return G},AppRouteRouteModuleSpan:function(){return H},BaseServerSpan:function(){return v},DevBundlerServiceSpan:function(){return D},InstrumentationSpan:function(){return x},LoadComponentsSpan:function(){return w},LogSpanAllowList:function(){return N},MiddlewareSpan:function(){return K},NextNodeServerSpan:function(){return z},NextServerSpan:function(){return y},NextSpan:function(){return L},NextVanillaSpanAllowlist:function(){return M},NodeSpan:function(){return F},RenderSpan:function(){return B},ResolveMetadataSpan:function(){return J},RouteModuleSpan:function(){return I},RouterSpan:function(){return E},StartServerSpan:function(){return A}};for(var u in t)Object.defineProperty(b,u,{enumerable:!0,get:t[u]});var v=((c=v||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),w=((d=w||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d.loadRouteModule="LoadComponents.loadRouteModule",d),x=((e=x||{}).loadModule="Instrumentation.loadModule",e.register="Instrumentation.register",e),y=((f=y||{}).getRequestHandler="NextServer.getRequestHandler",f.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",f.getServer="NextServer.getServer",f.getServerRequestHandler="NextServer.getServerRequestHandler",f.createServer="createServer.createServer",f),z=((g=z||{}).compression="NextNodeServer.compression",g.getBuildId="NextNodeServer.getBuildId",g.createComponentTree="NextNodeServer.createComponentTree",g.clientComponentLoading="NextNodeServer.clientComponentLoading",g.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",g.generateStaticRoutes="NextNodeServer.generateStaticRoutes",g.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",g.generatePublicRoutes="NextNodeServer.generatePublicRoutes",g.generateImageRoutes="NextNodeServer.generateImageRoutes.route",g.sendRenderResult="NextNodeServer.sendRenderResult",g.proxyRequest="NextNodeServer.proxyRequest",g.runApi="NextNodeServer.runApi",g.render="NextNodeServer.render",g.renderHTML="NextNodeServer.renderHTML",g.imageOptimizer="NextNodeServer.imageOptimizer",g.getPagePath="NextNodeServer.getPagePath",g.getRoutesManifest="NextNodeServer.getRoutesManifest",g.findPageComponents="NextNodeServer.findPageComponents",g.getFontManifest="NextNodeServer.getFontManifest",g.getServerComponentManifest="NextNodeServer.getServerComponentManifest",g.getRequestHandler="NextNodeServer.getRequestHandler",g.renderToHTML="NextNodeServer.renderToHTML",g.renderError="NextNodeServer.renderError",g.renderErrorToHTML="NextNodeServer.renderErrorToHTML",g.render404="NextNodeServer.render404",g.startResponse="NextNodeServer.startResponse",g.route="route",g.onProxyReq="onProxyReq",g.apiResolver="apiResolver",g.internalFetch="internalFetch",g),A=((h=A||{}).startServer="startServer.startServer",h),B=((i=B||{}).getServerSideProps="Render.getServerSideProps",i.getStaticProps="Render.getStaticProps",i.renderToString="Render.renderToString",i.renderDocument="Render.renderDocument",i.createBodyResult="Render.createBodyResult",i),C=((j=C||{}).renderToString="AppRender.renderToString",j.renderToReadableStream="AppRender.renderToReadableStream",j.getBodyResult="AppRender.getBodyResult",j.fetch="AppRender.fetch",j.waitShellReady="AppRender.waitShellReady",j.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",j.instantInsights="AppRender.instantInsights",j.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",j.instantInsightsRunValidation="AppRender.instantInsights.runValidation",j),D=((k=D||{}).ensurePage="DevBundlerService.ensurePage",k),E=((l=E||{}).executeRoute="Router.executeRoute",l),F=((m=F||{}).runHandler="Node.runHandler",m),G=((n=G||{}).runHandler="AppRouteRouteHandlers.runHandler",n),H=((o=H||{}).loadUserland="AppRouteRouteModule.loadUserland",o),I=((p=I||{}).prepare="RouteModule.prepare",p.loadManifests="RouteModule.loadManifests",p),J=((q=J||{}).generateMetadata="ResolveMetadata.generateMetadata",q.generateViewport="ResolveMetadata.generateViewport",q),K=((r=K||{}).execute="Middleware.execute",r),L=((s=L||{}).request="Next.request",s);let M=new Set(["Middleware.execute","Next.request","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","LoadComponents.loadRouteModule","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","AppRouteRouteModule.loadUserland","RouteModule.prepare","Instrumentation.loadModule","Instrumentation.register","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),N=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},88266:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return l}});let e=c(33803),f=c(72394),g=(d=c(40694))&&d.__esModule?d:{default:d},h=c(96100),i=c(36820),j=c(90925),k=c(94143);class l{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;static #c=this.seedReads=new Map;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?l.memoryCache?l.debug&&console.log("FileSystemCache: memory store already initialized"):(l.debug&&console.log("FileSystemCache: using memory store for fetch cache"),l.memoryCache=(0,k.getMemoryCache)(a.maxMemoryCacheSize)):l.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}getSeedReadState(a){return l.seedReads.get(`${this.serverDistDir}:${a}`)}beginSeedRead(a){let b=`${this.serverDistDir}:${a}`,c=l.seedReads.get(b);return c||(c={readers:0,version:0},l.seedReads.set(b,c)),c.readers++,{stateKey:b,state:c,version:c.version}}finishSeedRead(a,b){b.readers--,0!==b.readers||b.promotion||l.seedReads.delete(a)}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,l.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=i.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),i.tagsManifest.set(d,e)}else i.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,g,j,k,m,n,o,p,q,r,s,t;let u,[v,w]=a,{kind:x}=w,y=v,z=null==(b=l.memoryCache)?void 0:b.get(v),A=null==(c=this.getSeedReadState(v))?void 0:c.promotion;!z&&A&&(await A,z=null==(m=l.memoryCache)?void 0:m.get(v)),l.debug&&(x===f.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",v,w.tags,x,!!z):console.log("FileSystemCache: get",v,x,!!z));let B=x===f.IncrementalCacheKind.PAGES||x===f.IncrementalCacheKind.APP_PAGE||x===f.IncrementalCacheKind.APP_ROUTE;if(!z&&B&&v.startsWith(`/${e.ROUTE_CACHE_DIRECTORY}/`)&&1){let a=this.getFilePath(x===f.IncrementalCacheKind.APP_ROUTE?`${v}.body`:`${v}.html`,x);if(!this.fs.existsSync(a)){let a=v.indexOf("/$/");if(-1!==a){let b=v.slice(a+2),c=this.getFilePath(`${b}${h.NEXT_META_SUFFIX}`,x);try{let a=JSON.parse(this.fs.readFileSync(c,"utf8")),d=v.indexOf("/$/"),g=a.routeCache?(0,e.getRouteCacheKey)("/",a.routeCache.owner):void 0;(null==(n=a.routeCache)?void 0:n.key)===v&&(a.routeCache.isFallback===!!w.isFallback||x===f.IncrementalCacheKind.APP_PAGE&&w.isRoutePPREnabled&&null!=a.postponed)&&(null==g?void 0:g.slice(0,g.indexOf("/$/")))===v.slice(0,d)&&(y=b,u=this.beginSeedRead(v))}catch{}}}}if(!z)try{if(x===f.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${y}.body`,f.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,h.NEXT_META_SUFFIX),"utf8"));z={lastModified:d.routeCacheLastModified??c.getTime(),value:{kind:f.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status},cacheControl:d.cacheControl}}else{let a=this.getFilePath(x===f.IncrementalCacheKind.FETCH?y:`${y}.html`,x),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(x===f.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:e}=w;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(z={lastModified:g,value:h},(null==(o=z.value)?void 0:o.kind)===f.CachedRouteKind.FETCH){let b=null==(p=z.value)?void 0:p.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(l.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(v,z.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:e}))}}else if(x===f.IncrementalCacheKind.APP_PAGE){let d,e,g=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,h.NEXT_META_SUFFIX),"utf8"));if(null==g?void 0:g.segmentPaths){let a=new Map;d=a;let b=y+h.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(g.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+h.RSC_SEGMENT_SUFFIX,f.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}w.isFallback||w.isRoutePPREnabled&&(null==g?void 0:g.postponed)!=null||(e=await this.fs.readFile(this.getFilePath(`${y}${h.RSC_SUFFIX}`,f.IncrementalCacheKind.APP_PAGE))),z={lastModified:g.routeCacheLastModified??c.getTime(),value:{kind:f.CachedRouteKind.APP_PAGE,html:b,rscData:e,postponed:null==g?void 0:g.postponed,headers:null==g?void 0:g.headers,status:null==g?void 0:g.status,segmentData:d},cacheControl:null==g?void 0:g.cacheControl}}else if(x===f.IncrementalCacheKind.PAGES){let d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,h.NEXT_META_SUFFIX),"utf8")),e={};w.isFallback||(e=JSON.parse(await this.fs.readFile(this.getFilePath(`${y}${h.NEXT_DATA_SUFFIX}`,f.IncrementalCacheKind.PAGES),"utf8"))),z={lastModified:d.routeCacheLastModified??c.getTime(),value:{kind:f.CachedRouteKind.PAGES,html:b,pageData:e,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status}}}else throw Error(`Invariant: Unexpected route kind ${x} in file system cache.`)}z&&!u&&(null==(q=l.memoryCache)||q.set(v,z))}catch{return u&&this.finishSeedRead(u.stateKey,u.state),null}if((null==z||null==(d=z.value)?void 0:d.kind)===f.CachedRouteKind.APP_PAGE||(null==z||null==(g=z.value)?void 0:g.kind)===f.CachedRouteKind.APP_ROUTE||(null==z||null==(j=z.value)?void 0:j.kind)===f.CachedRouteKind.PAGES){let a=null==(r=z.value.headers)?void 0:r[h.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,i.areTagsExpired)(b,z.lastModified))return l.debug&&console.log("FileSystemCache: expired tags",b),u&&this.finishSeedRead(u.stateKey,u.state),null}}else if((null==z||null==(k=z.value)?void 0:k.kind)===f.CachedRouteKind.FETCH){let a=w.kind===f.IncrementalCacheKind.FETCH?[...w.tags||[],...w.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return l.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,i.areTagsExpired)(a,z.lastModified))return l.debug&&console.log("FileSystemCache: expired tags",a),null}if(u&&z){let{stateKey:a,state:b,version:c}=u;try{b.version===c&&(await this.promoteSeed(v,y,z,w,a,b,c),b.version!==c||(null==(s=l.memoryCache)?void 0:s.get(v))||null==(t=l.memoryCache)||t.set(v,z))}finally{this.finishSeedRead(a,b)}}return z??null}async promoteSeed(a,b,c,d,e,i,k){let m=this.fs.writeFileAtomic;if(!this.flushToDisk||!m||!c.value)return;if(i.promotion)return void await i.promotion;let n=(async()=>{let e=c.value;if(!e||i.version!==k||e.kind!==f.CachedRouteKind.PAGES&&e.kind!==f.CachedRouteKind.APP_PAGE&&e.kind!==f.CachedRouteKind.APP_ROUTE)return;let l=d.kind,n=this.getFilePath(e.kind===f.CachedRouteKind.APP_ROUTE?`${a}.body`:`${a}.html`,l);if(this.fs.existsSync(n))return;let o=this.getFilePath(e.kind===f.CachedRouteKind.APP_ROUTE?`${b}.body`:`${b}.html`,l),p=o.replace(e.kind===f.CachedRouteKind.APP_ROUTE?/\.body$/:/\.html$/,h.NEXT_META_SUFFIX),q=JSON.parse(await this.fs.readFile(p,"utf8"));q.routeCacheLastModified=c.lastModified;let r=[];e.kind!==f.CachedRouteKind.PAGES||d.isFallback?e.kind===f.CachedRouteKind.APP_PAGE&&(d.isFallback||d.isRoutePPREnabled&&null!=q.postponed||r.push({path:this.getFilePath(`${a}${h.RSC_SUFFIX}`,l),data:await this.fs.readFile(this.getFilePath(`${b}${h.RSC_SUFFIX}`,l))}),r.push(...await Promise.all((q.segmentPaths??[]).map(async c=>({path:this.getFilePath(a+h.RSC_SEGMENTS_DIR_SUFFIX+c+h.RSC_SEGMENT_SUFFIX,l),data:await this.fs.readFile(this.getFilePath(b+h.RSC_SEGMENTS_DIR_SUFFIX+c+h.RSC_SEGMENT_SUFFIX,l))}))))):r.push({path:this.getFilePath(`${a}${h.NEXT_DATA_SUFFIX}`,l),data:await this.fs.readFile(this.getFilePath(`${b}${h.NEXT_DATA_SUFFIX}`,l))});let s=new j.MultiFileWriter(this.fs);for(let a of r)s.append(a.path,a.data);if(await s.wait(),i.version!==k)return;let t=n.replace(e.kind===f.CachedRouteKind.APP_ROUTE?/\.body$/:/\.html$/,h.NEXT_META_SUFFIX);await this.fs.mkdir(g.default.dirname(t)),await this.fs.writeFile(t,JSON.stringify(q)),i.version!==k||this.fs.existsSync(n)||await m.call(this.fs,n,await this.fs.readFile(o))})();i.promotion=n.catch(a=>{l.debug&&console.log("FileSystemCache: failed to promote build seed",a)});try{await i.promotion}finally{i.promotion&&(i.promotion=void 0),0===i.readers&&l.seedReads.delete(e)}}async set(a,b,c){var d;let e=c.fetchCache?void 0:c.cacheControl,g=this.getSeedReadState(a);if(g&&g.version++,null==(d=l.memoryCache)||d.set(a,{value:b,lastModified:Date.now(),cacheControl:e}),l.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;await (null==g?void 0:g.promotion);let i=new j.MultiFileWriter(this.fs);if(b.kind===f.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,f.IncrementalCacheKind.APP_ROUTE);i.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0,cacheControl:e};i.append(c.replace(/\.body$/,h.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===f.CachedRouteKind.PAGES||b.kind===f.CachedRouteKind.APP_PAGE){let d=b.kind===f.CachedRouteKind.APP_PAGE,g=this.getFilePath(`${a}.html`,d?f.IncrementalCacheKind.APP_PAGE:f.IncrementalCacheKind.PAGES);if(i.append(g,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||i.append(this.getFilePath(`${a}${d?h.RSC_SUFFIX:h.NEXT_DATA_SUFFIX}`,d?f.IncrementalCacheKind.APP_PAGE:f.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===f.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=g.replace(/\.html$/,h.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+h.RSC_SEGMENT_SUFFIX;i.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0,cacheControl:e};i.append(g.replace(/\.html$/,h.NEXT_META_SUFFIX),JSON.stringify(c))}else{let a={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};i.append(g.replace(/\.html$/,h.NEXT_META_SUFFIX),JSON.stringify(a))}}else if(b.kind===f.CachedRouteKind.FETCH){let d=this.getFilePath(a,f.IncrementalCacheKind.FETCH);i.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await i.wait()}getFilePath(a,b){let c;switch(b){case f.IncrementalCacheKind.FETCH:c=g.default.join(this.serverDistDir,"..","cache","fetch-cache");break;case f.IncrementalCacheKind.PAGES:c=g.default.join(this.serverDistDir,"pages");break;case f.IncrementalCacheKind.IMAGE:case f.IncrementalCacheKind.APP_PAGE:case f.IncrementalCacheKind.APP_ROUTE:c=g.default.join(this.serverDistDir,"app");break;default:throw Error(`Unexpected file path kind: ${b}`)}(b===f.IncrementalCacheKind.PAGES||b===f.IncrementalCacheKind.APP_PAGE||b===f.IncrementalCacheKind.APP_ROUTE)&&a.startsWith(`/${e.ROUTE_CACHE_DIRECTORY}/`)&&(c=g.default.join(this.serverDistDir,"."));let d=g.default.join(c,a);if(!(d.startsWith(c+g.default.sep)||d===c))throw Error(`Invalid file path: ${d}`);return d}}},88450:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(61544),g=c(99751),h=c(84573),i=c(42097),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Error("Invariant: Unsupported NextRequest type")}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},88764:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>bp,handler:()=>bo});var e={};c.r(e),c.d(e,{config:()=>bh,default:()=>bg}),require("next/dist/build/adapter/setup-node-env.external");var f=c(32648),g=c(76309),h=c(88771),i=c(62940),j=c(27122),k=c(85304);c(46789),c(19217),c(56840),c(95160);var l=c(17343),m=c(71509);(0,m.U)("modelAliases"),(0,m.U)("customModels"),(0,m.U)("mitmAlias"),c(36241);var n=c(94735);c(91117),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new n.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitTimers,global._statsEmitter;var o=c(33323);let p=null,q=0;async function r(){if(p&&Date.now()-q<5e3)return p;try{let{getSettings:a,getRawSetting:b}=await Promise.resolve().then(c.bind(c,85304)),d=await a(),e=process.env.ENABLE_REQUEST_LOGS;if(void 0!==e)return p={enabled:"true"===e.toLowerCase(),maxRecords:d.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:d.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:d.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(d.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},q=Date.now(),p;let f=await b("enableObservability");p={enabled:"boolean"==typeof f?f:void 0!==process.env.OBSERVABILITY_ENABLED&&!/^(false|0|no|off)$/i.test(process.env.OBSERVABILITY_ENABLED),maxRecords:d.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:d.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:d.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(d.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{p={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return q=Date.now(),p}let s=[],t=null,u=!1;function v(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function w(){if(!u&&0!==s.length){u=!0;try{for(;s.length>0;){let a=s.splice(0,s.length),b=await (0,j.c)(),c=await r(),d=a.map(a=>{a.id||(a.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(a.model)),a.timestamp||(a.timestamp=new Date().toISOString()),a.request?.headers&&(a.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(a.request.headers));let b={id:a.id,provider:a.provider||null,model:a.model||null,connectionId:a.connectionId||null,timestamp:a.timestamp,status:a.status||null,latency:a.latency||{},tokens:a.tokens||{},request:v(a.request,c.maxJsonSize),providerRequest:v(a.providerRequest,c.maxJsonSize),providerResponse:v(a.providerResponse,c.maxJsonSize),response:v(a.response,c.maxJsonSize),pxpipe:a.pxpipe||void 0};return[b.id,b.timestamp,b.provider,b.model,b.connectionId,b.status,(0,o.s)(b)]});b.transaction(()=>{for(let a of d)b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",a);let a=b.get("SELECT COUNT(*) as c FROM requestDetails");a&&a.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[a.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{u=!1}}}let x=async()=>{t&&(clearTimeout(t),t=null),s.length>0&&await w()};process.off("beforeExit",x),process.off("SIGINT",x),process.off("SIGTERM",x),process.off("exit",x),process.on("beforeExit",x),process.on("SIGINT",x),process.on("SIGTERM",x),process.on("exit",x);var y=c(2886),z=c(73024),A=c.n(z),B=c(76760),C=c.n(B),D=c(77598),E=c.n(D),F=c(72045);let G=C().join(F.n,"machine-id"),H=C().join(F.n,"auth"),I=C().join(H,"cli-secret"),J=null,K=null;async function L(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(J)return J;try{if(J=A().readFileSync(G,"utf8").trim())return J}catch{}try{J=(0,y.machineIdSync)()}catch{J=E().randomUUID()}try{A().mkdirSync(F.n,{recursive:!0}),A().writeFileSync(G,J,{mode:384})}catch{}return J}(),d="9r-cli-auth"===b?function(){if(K)return K;try{if(K=A().readFileSync(I,"utf8").trim())return K}catch{}K=E().randomBytes(32).toString("hex");try{A().mkdirSync(H,{recursive:!0}),A().writeFileSync(I,K,{mode:384})}catch{}return K}():"";return E().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}class M extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(a,b){super(a,b),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class N extends M{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class O extends M{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class P extends M{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class Q extends M{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class R extends M{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class S extends M{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class T extends M{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(a="signature verification failed",b){super(a,b)}}let U=[["verify"],["sign"]];function V(a){let b={name:"HMAC",hash:`SHA-${a}`};return{kty:["oct"],secret:!0,subtle:b,signing:b,usages:U}}function W(a,b){let c={name:b?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${a}`};return{kty:["RSA"],subtle:c,signing:b?{...c,saltLength:b}:c,usages:U,minRsaBits:2048}}function X(a,b){return{kty:["EC"],crv:a,subtle:{name:"ECDSA",namedCurve:a},signing:{name:"ECDSA",hash:`SHA-${b}`},usages:U}}function Y(){let a={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:a,signing:a,usages:U}}function Z(a){let b={name:`ML-DSA-${a}`};return{kty:["AKP"],subtle:b,signing:b,usages:U}}let $=function(a){let b={__proto__:null};for(let c in a)b[c]={...a[c],alg:c};return b}({HS256:V(256),HS384:V(384),HS512:V(512),RS256:W(256),RS384:W(384),RS512:W(512),PS256:W(256,32),PS384:W(384,48),PS512:W(512,64),ES256:X("P-256",256),ES384:X("P-384",384),ES512:X("P-521",512),EdDSA:Y(),Ed25519:Y(),"ML-DSA-44":Z(44),"ML-DSA-65":Z(65),"ML-DSA-87":Z(87)}),_=new TextEncoder,aa=new TextDecoder,ab=new TextDecoder("utf-8",{fatal:!0}),ac=/[^\x00-\x7f]/;function ad(a){if("string"==typeof a&&a.length>=128){if(ac.test(a))throw TypeError("non-ASCII string encountered in encode()");return _.encode(a)}let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);if(d>127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}function ae(a){try{return function(a,b=!1){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(a,{alphabet:b?"base64url":"base64"});if(b){if(a.includes("+")||a.includes("/"))throw TypeError("Invalid base64url");a=a.replace(/-/g,"+").replace(/_/g,"/")}let c=atob(a),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d}("string"==typeof a?a:aa.decode(a),!0)}catch(a){throw TypeError("The input to be decoded is not correctly encoded.",{cause:a})}}function af(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||null===Object.getPrototypeOf(b)}function ag(a,b,c){try{return ae(a)}catch(a){throw new c(`Failed to base64url decode the ${b}`,{cause:a})}}let ah={__proto__:null,b64:!0};async function ai(a,b,c){let e,f,{alg:g,secret:h}=a,i="decrypt"===c||"sign"===c;if(h&&b instanceof Uint8Array)return b;if(af(b)){if("string"!=typeof(e=function(a){let b={__proto__:null,...a};if(void 0!==b.ext&&"boolean"!=typeof b.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==b.key_ops){let a=b.key_ops,c=Array.isArray(a)?[...a]:void 0;if(!c||c.some(a=>"string"!=typeof a)||new Set(c).size!==c.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');b.key_ops=c}return b}(b)).kty)throw am(g,b,h);if(!(h?"oct"===e.kty&&"string"==typeof e.k:"oct"!==e.kty&&(i?"AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d:void 0===e.d&&void 0===e.priv)))throw TypeError(h?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${i?"private":"public"} JWK`);if(((a,b,c)=>{let{alg:d}=a;if(void 0!==b.use){let a="sign"===c||"verify"===c?"sig":"enc";if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==d)throw TypeError(`Invalid key for this operation, its "alg" must be "${d}" when present`);if(Array.isArray(b.key_ops)){let d="encrypt"===c||"decrypt"===c?a.ops?.[+("encrypt"!==c)]:c;if(d&&!b.key_ops.includes(d))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}})(a,e,c),"oct"===e.kty)return ae(e.k);if(!Object.isFrozen(b)){let{key_ops:a}=b;Array.isArray(a)&&Object.freeze(a),Object.freeze(b)}}else{if(!al(b))throw am(g,b,h);let a=h?"secret":i?"private":"public";if(b.type!==a&&(h||["secret","public","private"].includes(b.type)))throw TypeError(`${b[Symbol.toStringTag]} instances must be of type "${a}" for the ${g} algorithm`);if(ak(b))return b;if("secret"===(f=b).type)return f.export()}let j=(d||=new WeakMap).get(b);if(j?.[g])return j[g];if(j||d.set(b,j={}),f&&"function"==typeof f.toCryptoKey){let b="public"===f.type,c=aj[f.asymmetricKeyDetails?.namedCurve],d=a.resolve?.({crv:c,asymmetricKeyType:f.asymmetricKeyType})??a.subtle;return j[g]=f.toCryptoKey(d,b,a.usages[+!b])}return(e??=f.export({format:"jwk"})).alg=g,j[g]=await ao(a,e)}let aj={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"},ak=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}},al=a=>ak(a)||a?.[Symbol.toStringTag]==="KeyObject";function am(a,b,c){let d=["CryptoKey","KeyObject","JSON Web Key"];return c&&d.push("Uint8Array"),TypeError(function(a,b,...c){if(c.length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a}(`Key for the ${a} algorithm must be `,b,...d))}let an=(a,b="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);async function ao(a,b,c){if(!a.kty.includes(b.kty))throw new Q('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let d=a.resolve?.({kty:b.kty,crv:b.crv})??a.subtle,e=!!(b.d||b.priv),f={...b,ext:c??b.ext};return"AKP"!==f.kty&&delete f.alg,delete f.use,crypto.subtle.importKey("jwk",f,d,f.ext??!e,b.key_ops??a.usages[+!!e])}async function ap(a,b,c,d=!1){return a instanceof Uint8Array&&(a=await crypto.subtle.importKey("raw",a,b,d,[c])),function(a,b,c){let d=a.algorithm;if(d.name!==b.name)throw an(b.name);if(b.hash&&d.hash?.name!==b.hash)throw an(b.hash,"algorithm.hash");if(b.namedCurve&&d.namedCurve!==b.namedCurve)throw an(b.namedCurve,"algorithm.namedCurve");if(void 0!==b.length&&d.length!==b.length)throw an(b.length,"algorithm.length");if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(a,b,c),a}function aq(a){try{return ad(a)}catch(a){throw new R("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function ar(a,b,c,d,e){let{protected:f,header:g,payload:h}=a,i=e??(void 0===f?{}:function(a,b,c){let d;try{d=JSON.parse(ab.decode(ae(a)))}catch(a){throw new b(c,{cause:a})}if(!af(d))throw new b(c);return d}(f,R,"JWS Protected Header is invalid"));if(!function(...a){let b=new Set;for(let c of a)if(c)for(let a of Object.keys(c)){if(b.has(a))return!1;b.add(a)}return!0}(i,g))throw new R("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let j={...i,...g},k=function(a,b){if(b.includes("b64")){let b=a.b64;if("boolean"!=typeof b)throw new R('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return b}return!0}(i,function(a,b,c,d,e){if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return[];if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let f=void 0===c?b:{__proto__:null,...c,...b};for(let b of d.crit){if(!(b in f))throw new Q(`Extension Header Parameter "${b}" is not recognized`);if(!Object.hasOwn(e,b)||void 0===e[b])throw new a(`Extension Header Parameter "${b}" is missing`);if(f[b]&&(!Object.hasOwn(d,b)||void 0===d[b]))throw new a(`Extension Header Parameter "${b}" MUST be integrity protected`)}return d.crit}(R,ah,b[1],i,j)),{alg:l}=j;if("string"!=typeof l||!l)throw new R('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(l))throw new P('"alg" (Algorithm) Header Parameter value not allowed');if(k){if("string"!=typeof h)throw new R("JWS Payload must be a string")}else if("string"!=typeof h&&!(h instanceof Uint8Array))throw new R("JWS Payload must be a string or an Uint8Array instance");let m=k||"string"!=typeof h?h:d(h),n=!1;"function"==typeof c&&(c=await c(i,a),n=!0);let o=function(a){let b="string"==typeof a?$[a]:void 0;if(!b)throw new Q(`alg ${a} is not supported either by JOSE or your javascript runtime`);return b}(l),p=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==f?ad(f):new Uint8Array,ad("."),"string"==typeof m?b[2]??=function(a,b,c){try{return ad(a)}catch(a){throw new c(`The ${b} is not a valid base64url string`,{cause:a})}}(m,"payload",R):m),q=ag(a.signature,"signature",R),r=await ai(o,c,"verify"),s=await ap(r,o.subtle,"verify");o.minRsaBits&&function(a,b){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}(o.alg,s);let t=!1;try{t=await crypto.subtle.verify(o.signing,s,q,p)}catch(a){throw new T(void 0,{cause:a})}if(!t)throw new T;let u={payload:"string"==typeof m?ag(m,"payload",R):m};return void 0!==f&&(u.protectedHeader=i),void 0!==g&&(u.unprotectedHeader=g),n?[{...u,key:r},k]:[u,k]}async function as(a,b,c){if(a instanceof Uint8Array&&(a=aa.decode(a)),"string"!=typeof a)throw new R("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new R("Invalid Compact JWS");return ar({payload:e,protected:d,signature:f},b,c,aq)}let at={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},au=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,av="check_failed";function aw(){throw TypeError("Invalid time period format")}function ax(a){"string"!=typeof a&&aw();let b=au.exec(a);(!b||b[4]&&b[1])&&aw();let c=Math.round(parseFloat(b[2])*at[b[3][0].toLowerCase()]);return Number.isFinite(c)||aw(),"-"===b[1]||"ago"===b[4]?-c:c}function ay(a,b){if(!Number.isFinite(b))throw TypeError(`Invalid ${a} input`);return b}let az=a=>{let b=a.toLowerCase();return a.includes("/")?b:`application/${b}`};function aA(a,b,c=!1){let d=a[b];if(!(void 0===d&&!c)){if("number"!=typeof d)throw new N(`"${b}" claim must be a number`,a,b,"invalid");return d}}function aB(a,b){throw new N(`unexpected "${b}" claim value`,a,b,av)}async function aC(a,b,c){let[d,e]=await as(a,[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`);return void 0===b?void 0:new Set(b)}("algorithms",c.algorithms),c?.crit],b);if(!e)throw new S("JWTs MUST NOT use unencoded payload");let f=function(a,b,c={}){let d,e,f;try{d=JSON.parse(ab.decode(b))}catch(a){throw new S("JWT Claims Set must be a top-level JSON object",{cause:a})}if(!af(d))throw new S("JWT Claims Set must be a top-level JSON object");let{typ:g}=c;if(void 0!==g&&("string"!=typeof a.typ||az(a.typ)!==az(g)))throw new N('unexpected "typ" JWT header value',d,"typ",av);let{requiredClaims:h=[],issuer:i,subject:j,audience:k,maxTokenAge:l}=c,m=[...h];for(let a of(void 0!==l&&m.push("iat"),void 0!==k&&m.push("aud"),void 0!==j&&m.push("sub"),void 0!==i&&m.push("iss"),new Set(m.reverse())))if(!Object.hasOwn(d,a))throw new N(`missing required "${a}" claim`,d,a,"missing");void 0===i||(Array.isArray(i)?i:[i]).includes(d.iss)||aB(d,"iss"),void 0!==j&&d.sub!==j&&aB(d,"sub"),void 0===k||(e=d.aud,f="string"==typeof k?[k]:k,"string"==typeof e?f.includes(e):!!Array.isArray(e)&&f.some(a=>e.includes(a)))||aB(d,"aud");let{clockTolerance:n}=c,o=0;if("string"==typeof n)o=ax(n);else if(void 0!==n){if("number"!=typeof n)throw TypeError("Invalid clockTolerance option type");o=n}ay("clockTolerance option",o);let{currentDate:p}=c,q=ay("currentDate option",Math.floor((void 0===p?new Date:p).getTime()/1e3)),r=aA(d,"iat",void 0!==l),s=aA(d,"nbf");if(void 0!==s&&s>q+o)throw new N('"nbf" claim timestamp check failed',d,"nbf",av);let t=aA(d,"exp");if(void 0!==t&&t<=q-o)throw new O('"exp" claim timestamp check failed',d,"exp",av);if(void 0!==l){let a=q-r;if(a-o>ay("maxTokenAge option","number"==typeof l?l:ax(l)))throw new O('"iat" claim timestamp check failed (too far in the past)',d,"iat",av);if(a<-o)throw new N('"iat" claim timestamp check failed (it should be in the past)',d,"iat",av)}return d}(d.protectedHeader,d.payload,c);return{...d,payload:f}}c(55511);"function"==typeof setImmediate||"object"==typeof scheduler&&"function"==typeof scheduler.postTask&&scheduler.postTask.bind(scheduler);let aD=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=C().join(F.n,"jwt-secret");try{return A().readFileSync(a,"utf8").trim()}catch{}A().mkdirSync(F.n,{recursive:!0});let b=E().randomBytes(32).toString("hex");return A().writeFileSync(a,b,{mode:384}),b}());async function aE(a){if(!a)return!1;try{return await aC(a,aD),!0}catch{return!1}}let aF=null;async function aG(){return aF||(aF=await L("9r-cli-auth")),aF}async function aH(a){let b=a.headers.get("x-9r-cli-token");return!!b&&b===await aG()}let aI=["/api/health","/api/init","/api/locale","/api/auth/login","/api/auth/logout","/api/auth/status","/api/auth/oidc","/api/auth/saml","/api/version","/api/settings/require-login"],aJ=["/v1","/v1beta","/api/v1","/api/v1beta","/codex","/responses"],aK=["/api/shutdown","/api/settings/database","/api/version/shutdown","/api/version/update","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import"],aL=["/api/cli-tools/cowork-settings","/api/cli-tools/antigravity-mitm","/api/mcp/","/api/tunnel/tailscale-install","/api/tunnel/tailscale-enable","/api/tunnel/tailscale-disable","/api/tunnel/tailscale-check","/api/tunnel/enable","/api/tunnel/disable","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/auth/reset-password","/api/headroom/start","/api/headroom/stop","/api/headroom/proxy"],aM=new Set(["localhost","127.0.0.1","::1"]);function aN(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),aM.has(b)}function aO(a){let b;if(a.headers.get("x-9r-via-proxy")||!((b=process.env.NINEROUTER_PEER_TOKEN)&&a.headers.get("x-9r-peer-token")===b&&aN(a.headers.get("x-9r-real-ip"))))return!1;let c=a.headers.get("origin");if(c)try{if(!aN(new URL(c).hostname))return!1}catch{return!1}return!0}function aP(a){return aJ.some(b=>a===b||a.startsWith(`${b}/`))}async function aQ(a){let b=function(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");if(c)return c;let d=a.headers.get("x-goog-api-key");return d||a.nextUrl.searchParams?.get("key")||null}(a);return!!b&&await (0,l.validateApiKey)(b)}async function aR(a){return!!(aO(a)||await aH(a))||await aQ(a)}async function aS(a){return!!(await aH(a)||aO(a)&&await aV(a))}async function aT(a){let b=a.cookies.get("auth_token")?.value;return await aE(b)}async function aU(){try{return await (0,k.getSettings)()}catch{return null}}async function aV(a){if(await aT(a))return!0;let b=await aU();return!!b&&!1===b.requireLogin}async function aW(a){let{pathname:b}=a.nextUrl;if(aL.some(a=>b.startsWith(a))&&!await aS(a))return i.NextResponse.json({error:"Local only: CLI token required"},{status:403});if(aK.some(a=>b.startsWith(a)))return await aH(a)||await aT(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aP(b))return await aR(a)?i.NextResponse.next():i.NextResponse.json({error:"API key required for remote API access"},{status:401});if(b.startsWith("/api/"))return aP(b)||aI.some(a=>b===a||b.startsWith(`${a}/`))||await aH(a)||await aV(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0;try{let c=await aU();if(c&&(b=!1!==c.requireLogin,!0!==c.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),d=c.tunnelUrl?new URL(c.tunnelUrl).hostname.toLowerCase():"",e=c.tailscaleUrl?new URL(c.tailscaleUrl).hostname.toLowerCase():"";if(d&&b===d||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b)return i.NextResponse.next();let c=a.cookies.get("auth_token")?.value;return c&&await aE(c)?i.NextResponse.next():i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}let aX="account.xiaomi.com",aY="9r_mimo_login",aZ=["/_next/","/api/","/dashboard","/v1/","/v1beta/","/login","/landing","/__mimo_login/","/i18n/","/icons/","/providers/"],a$=new Set(["/favicon.svg","/favicon.ico","/file.svg","/globe.svg","/next.svg","/vercel.svg","/window.svg","/sw.js","/robots.txt","/manifest.webmanifest"]),a_={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},a0=/^(passToken|userId|cUserId|serviceToken|.*_serviceToken|.*_ph|.*_slh|deviceId)$/;function a1(a,b){let c,d,e,f=new Headers(a.headers);return f.append("Set-Cookie",`${aY}=${(c=[...b.jar.values()].map(a=>[a.name,a.value,a.domain,a.path]),(e=JSON.stringify({...d={s:b.state,r:b.region,t:b.createdAt,p:b.proxyUrl||""},j:c})).length>2800&&(e=JSON.stringify({...d,j:c.filter(([a])=>a0.test(a))})),`v2.${function(a){let b=new TextEncoder().encode(a),c="";for(let a of b)c+=String.fromCharCode(a);return btoa(c).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}(e)}`)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=900`),new Response(a.body,{status:a.status,statusText:a.statusText,headers:f})}function a2(a,b){let c=String(a||"").replace(/^\./,"").toLowerCase(),d=String(b||"").toLowerCase();return d===c||d.endsWith("."+c)}function a3(a){let b=b=>{for(let c of a.jar.values())if(c.name===b&&a2(c.domain,aX))return c.value;return null},c=b("passToken");return c&&"EXPIRED"!==c?{passToken:c,userId:b("userId"),cUserId:b("cUserId")}:null}function a4(a){let b=[a],c=a;for(let a=0;a<3;a++)b.push(c=encodeURIComponent(c));return b}function a5(a,b,c,d=null){if(!a)return a;let e=String(a),f=`${c}/__mimo_login/mimo`,g=[...new Set(Object.values(a_))],h="toProxy"===b?g:[f],i="toProxy"===b?f:d||g[0];for(let a of h){let b=[a,a.replace("https://","http://"),a.replace(/^https?:/,""),a.replaceAll("/","\\/"),a.replace("https://","http://").replaceAll("/","\\/")],c=[i,i.replace("https://","http://"),i,i.replaceAll("/","\\/"),i.replaceAll("/","\\/")];for(let a=0;a<b.length;a++){let d=a4(b[a]),f=a4(c[a]);for(let a=0;a<d.length;a++)e=e.split(d[a]).join(f[a])}}if("toProxy"===b){let a=a4(c);for(let b of["https://account.xiaomi.com","http://account.xiaomi.com","//account.xiaomi.com"]){let c=a4(b);for(let b=0;b<c.length;b++)e=e.split(c[b]).join(a[b])}}else{let a=a4("https://account.xiaomi.com"),b=a4("https:\\/\\/account.xiaomi.com"),d=a4(c),f=a4(c.replace(/^https?:/,"")),g=a4(c.replaceAll("/","\\/"));for(let c=0;c<d.length;c++)e=(e=(e=e.split(d[c]).join(a[c])).split(f[c]).join(a[c])).split(g[c]).join(b[c])}return e}function a6(a,b,c=null){return a5(a,"toUpstream",b,c)}let a7=null,a8=null;async function a9(a,b,d){a8||(a8=c.e(2220).then(c.t.bind(c,32220,23)).then(a=>a.SocksProxyAgent||a.default?.SocksProxyAgent||a.default).catch(a=>(console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] socks-proxy-agent unavailable:`,a?.message||a),null)));let e=await a8;if(!e)throw Error("socks agent unavailable");let f=new URL(a),g="http:"===f.protocol?await Promise.resolve().then(c.t.bind(c,37067,23)):await Promise.resolve().then(c.t.bind(c,44708,23)),h=g.default??g,{Readable:i}=await Promise.resolve().then(c.t.bind(c,57075,23)),j={},k=b?.headers;if(k instanceof Headers)for(let[a,b]of k)j[a]=b;else k&&(j={...k});let l=b?.body;l&&"string"!=typeof l&&!Buffer.isBuffer(l)&&(l=Buffer.from(l)),l&&(j["content-length"]=String(Buffer.byteLength(l)));let m=new e(d);return new Promise((a,c)=>{let d=h.request(f,{method:b?.method||"GET",agent:m,headers:j,timeout:2e4},b=>{let c=new Headers;for(let[a,d]of Object.entries(b.headers||{}))Array.isArray(d)?d.forEach(b=>c.append(a,String(b))):null!=d&&c.set(a,String(d));a(new Response(i.toWeb(b),{status:b.statusCode||200,headers:c}))}),e=b?.signal;e&&(e.aborted?d.destroy(Error("aborted")):e.addEventListener("abort",()=>d.destroy(Error("aborted")),{once:!0})),d.on("timeout",()=>d.destroy(Error("socks fetch timeout"))),d.on("error",c),l&&d.write(l),d.end()})}async function ba(a,b,d=null){if(!d)return fetch(a,b);try{if(/^socks/i.test(d))return await a9(a,b,d);a7||(a7=c.e(7557).then(c.bind(c,67557)).then(a=>a.proxyAwareFetch).catch(a=>(console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] proxyAwareFetch unavailable (runtime?), direct only:`,a?.message||a),null)));let e=await a7;if(e)return await e(a,b,{enabled:!0,url:d})}catch(a){console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] proxied fetch failed, falling back to direct:`,a?.message||a)}return fetch(a,b)}async function bb(a,b,c,d){let e=new Headers(c.headers);return d&&e.set("Cookie",d),ba(b,{...c,headers:e,redirect:"manual",signal:AbortSignal.timeout(2e4)},a?.proxyUrl||null)}let bc=new Set(["host","cookie","connection","content-length","transfer-encoding","keep-alive","upgrade","expect","proxy-connection","authorization","proxy-authorization"]);async function bd(a,b,c){let d=new URL(b.url);d.searchParams.delete("__9r_sess");let e=a6(new URL(d.pathname+d.search,`https://${aX}`).toString(),c,a.upstreamBase),f={};for(let[a,c]of b.headers)bc.has(a.toLowerCase())||(f[a]=c);let g=f.origin||f.Origin||null;delete f.origin,delete f.Origin,g&&(f.Origin=`https://${aX}`);let h=(a=>{if(!a)return null;try{let b=new URL(a);if(b.origin===c)return b.protocol="https:",b.host=aX,b.toString();if(b.hostname===aX)return b.toString();return null}catch{return null}})(f.referer||f.Referer);f.Referer=h?a6(h,c,a.upstreamBase):`https://${aX}/fe/service/login`,delete f.referer;let i={method:b.method||"GET",headers:f};if("GET"!==i.method&&"HEAD"!==i.method){let d=Buffer.from(await b.arrayBuffer()),e=String(f["Content-Type"]||f["content-type"]||"");if(d.length&&/urlencoded|json|text/i.test(e)){let b=d.toString("utf8"),e=a5(b,"toUpstream",c,a.upstreamBase);e!==b?(d=Buffer.from(e,"utf8"),f["Content-Length"]=String(d.length)):/__mimo_login|localhost/.test(b)&&console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] body STILL local, not matchable: ${b.slice(0,200)}`)}i.body=d}let j=e,k=null,l=function(a,b){let c=new URL(b),d=[];for(let b of a.jar.values())a2(b.domain,c.hostname)&&(c.pathname||"/").startsWith(b.path)&&d.push(`${b.name}=${b.value}`);return d.join("; ")}(a,j)||b.headers.get("cookie")||"";for(let b=0;b<8;b++){var m,n=k=await bb(a,j,0===b?i:{...i,body:void 0},l),o=j;for(let b of n.headers.getSetCookie?.()||[]){let c=function(a,b){if(!a)return null;let c=a.split(";"),d=/^([^=]+)=([\s\S]*)$/.exec(c[0].trim());if(!d)return null;let e=d[1].trim(),f=(d[2]||"").trim(),g=new URL(b),h={name:e,value:f,domain:g.hostname,path:(g.pathname||"/").replace(/[^/]*$/,"")||"/"},i="EXPIRED"===f;for(let a=1;a<c.length;a++){let b=c[a].trim(),d=b.indexOf("="),e=(d>=0?b.slice(0,d):b).trim().toLowerCase(),f=d>=0?b.slice(d+1).trim():"";if("domain"===e&&f)h.domain=f.replace(/^\./,"");else if("path"===e&&f)h.path=f;else if("expires"===e)if(/expired/i.test(f))i=!0;else{let a=Date.parse(f);!Number.isNaN(a)&&a<=Date.now()&&(i=!0)}else"max-age"===e&&0>=Number(f)&&(i=!0)}return{cookie:h,expired:i}}(b,o);if(!c)continue;let d=(m=c.cookie,`${m.name}|${m.domain}|${m.path}`);c.expired||!c.cookie.value?a.jar.delete(d):a.jar.set(d,c.cookie)}let d=k.headers.get("location");if(k.status>=300&&k.status<400&&d){let a=new URL(d,j);if(a.hostname===aX){j=a.toString();continue}if(/mimo-server-(cn|sgp)\.xiaomimimo\.com/.test(a.hostname)){let b=a5(a.toString(),"toProxy",c);return new Response(null,{status:k.status,headers:{Location:b,"Cache-Control":"no-store"}})}return new Response(null,{status:k.status,headers:{Location:d}})}break}return function(a,b,c="",d=""){let e=new Headers;for(let b of["content-type","cache-control","etag","last-modified","date"]){let c=a.headers.get(b);c&&e.set(b,c)}e.delete("x-frame-options"),e.delete("content-security-policy"),e.delete("content-security-policy-report-only"),e.set("Cache-Control","no-store");let f=a.headers.get("content-type")||"";return/text\/|javascript|json/.test(f)?a.text().then(g=>{let h=/json/.test(f)?g.replaceAll("\\/","/"):g;if(/^\/(pass|sts)/.test(c)||a.status>=400){let b=h.match(/"code"\s*:\s*(-?\d+)/);(b&&"0"!==b[1]||a.status>=400)&&console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] upstream ${c} http=${a.status} code=${b?b[1]:"?"} | url=${d.slice(0,180)} | ${h.replace(/\s+/g," ").slice(0,160)}`)}return new Response(a5(h,"toProxy",b),{status:a.status,headers:e})}):new Response(a.body,{status:a.status,headers:e})}(k,c,d.pathname,j)}async function be(a,b,c){let d,e,f;return(f=`sts-nav url=${b.slice(0,160)} origin=${c} | ${d=a3(a),e=[...a.jar.keys()].map(a=>a.split("|")[0]).join(","),`passToken=${d?"Y":"N"} jar=[${e.slice(0,160)}]`}`,console.log(`${new Date().toISOString().slice(11,23)} [mimo-login][takeover] ${f}`),a3(a))?(a.status="done",bf("登录成功 ✅",["账号会话已捕获,可以关闭此窗口。","回到 9router 弹窗继续。"],!0)):bf("登录未完成",["未检测到有效会话,请重试。"])}function bf(a,b,c=!1){return new Response(`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${a}</title>
|
|
71
|
+
Learn more: https://nextjs.org/docs/messages/blocking-prerender-client-hook`),this.digest=n}}function p(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===n}let q=new WeakMap;function r(a,b,c){return J(a,new m(b,c))}function s(a,b,c){return J(a,new m(b,c))}function t(a,b,c,d){return N(J(a,new m(b,c)),A.bind(null,d,c))}function u(a,b,c,d){let e=J(a,new m(b,c));return null===d?e:N(e,B.bind(null,d,c))}function v(a,b,c,d){return t(a,b,c,d)}function w(a,b,c){return s(a,b,c)}function x(a,b,c,d){let e=J(a,new m(b,c));return null===d?e:N(e,C.bind(null,d,c))}function y(){return{runtimeDataAccessed:(0,g.createPromiseWithResolvers)(),shouldAttemptStaticShell:!0,shouldAttemptStaticPrefetch:!0}}function z(a){a.runtimeDataAccessed.resolve(!1)}function A(a,b){D(a,1,b)}function B(a,b){D(a,2,b)}function C(a,b){D(a,3,b)}function D(a,b,c){if("prerender"===a.type){let{prerenderDataTracking:d,stagedRendering:e}=a;if(!d||!e)return;let{currentStage:g}=e;if(g===i.RenderStage.Before)return void console.error(new f.InvariantError("Unexpected trackRuntimeDataAccessed in the Before stage."));if(g>=i.RenderStage.NavigationStatic)return;let j=a.ensureStaticLevel??h.EnsureStaticLevel.None;switch(b){case 1:{let a=null;g<=i.RenderStage.ShellStatic&&j<h.EnsureStaticLevel.Shell&&(d.shouldAttemptStaticShell=!1,a??=i.RenderStage.ShellStatic,null==F||F(c,"shell")),g<=i.RenderStage.PrefetchStatic&&j<h.EnsureStaticLevel.Prefetch&&(d.shouldAttemptStaticPrefetch=!1,a??=i.RenderStage.PrefetchStatic,null==F||F(c,"prefetch")),null!==a&&E(d,e,a);break}case 3:if(a.isFallbackUpgradeable){j<h.EnsureStaticLevel.Prefetch&&(E(d,e,i.RenderStage.PrefetchStatic),null==G||G());break}case 2:g<=i.RenderStage.PrefetchStatic&&j<h.EnsureStaticLevel.Prefetch&&(d.shouldAttemptStaticPrefetch=!1,null==F||F(c,"prefetch"),E(d,e,i.RenderStage.PrefetchStatic))}}}function E(a,b,c){let{runtimeDataAccessed:d}=a;b.currentStage>=c?d.resolve(!0):b.onStage(c,d.resolve.bind(null,!0))}let F=process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA?(a,b)=>{let{route:c}=j.workAsyncStorage.getStore();console.log(`Route '${c}': deopting to a runtime ${b} because it used ${a}`)}:void 0,G=process.env.NEXT_PRIVATE_DEBUG_RUNTIME_DATA?()=>{let{route:a}=j.workAsyncStorage.getStore();console.log(`Route '${a}': marking upgradeable fallback as runtime prefetchable`)}:void 0;function H(a,b){let{stagedRendering:c}=a;if(!c)return;let{currentStage:d}=c;if(d!==i.RenderStage.Dynamic&&d!==i.RenderStage.Abandoned){if(process.env.NEXT_PRIVATE_DEBUG_VALIDATION){let a=j.workAsyncStorage.getStore();console.log(`Route ${a.route}: Incompatible shell content: ${b}`)}a.hasIncompatibleShellContent=!0}}function I(a,b){return J(a,b)}function J(a,b){if(a.aborted)return Promise.reject(b);{let c=new Promise((c,d)=>{let e=d.bind(null,b),f=q.get(a);if(f)f.push(e);else{let b=[e];q.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a<b.length;a++)b[a]()},{once:!0})}});return c.catch(K),c}}function K(){}function L(a,b){let c=a.then(()=>b);return c.catch(K),c}function M(a,b,c){return b.stagedRendering?b.stagedRendering.delayUntilStage(c,void 0,a):new Promise(b=>{setTimeout(()=>{b(a)},0)})}function N(a,b){return O.from(a,b)}class O extends Promise{#b;static get[Symbol.species](){return Promise}static from(a,b){let c=new O(a.then.bind(a));return c.#b=b,Promise.prototype.then.call(c,void 0,K),c}then(a,b){let c=this.#b;if(c)try{c()}catch(a){console.error(a)}return Promise.prototype.then.call(this,a,b)}constructor(...a){super(...a),this.#b=null}}let P={sessionData:i.RenderStage.ShellRuntime,staticUrlData:{prefetchApi:{static:i.RenderStage.PrefetchStatic_prefetchApi,runtime:i.RenderStage.PrefetchRuntime_prefetchApi},static:i.RenderStage.PrefetchStatic,runtime:i.RenderStage.PrefetchRuntime},runtimeUrlData:i.RenderStage.PrefetchRuntime};function Q(a){return a}},80670:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DecodeError:function(){return q},MiddlewareNotFoundError:function(){return u},MissingStaticPage:function(){return t},NormalizeError:function(){return r},PageNotFoundError:function(){return s},SP:function(){return o},ST:function(){return p},WEB_VITALS:function(){return e},execOnce:function(){return f},getDisplayName:function(){return k},getLocationOrigin:function(){return i},getURL:function(){return j},isAbsoluteUrl:function(){return h},isResSent:function(){return l},loadGetInitialProps:function(){return n},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return v}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=["CLS","FCP","INP","LCP","TTFB"];function f(a){let b,c=!1;return(...d)=>(c||(c=!0,b=a(...d)),b)}let g=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,h=a=>{let b=a.charCodeAt(0);return!!(b>=65&&b<=90||b>=97&&b<=122)&&g.test(a)};function i(){let{protocol:a,hostname:b,port:c}=window.location;return`${a}//${b}${c?":"+c:""}`}function j(){let{href:a}=window.location,b=i();return a.substring(b.length)}function k(a){return"string"==typeof a?a:a.displayName||a.name||"Unknown"}function l(a){return a.finished||a.headersSent}function m(a){let b=a.split("?");return b[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(b[1]?`?${b.slice(1).join("?")}`:"")}async function n(a,b){let c=b.res||b.ctx&&b.ctx.res;if(!a.getInitialProps)return b.ctx&&b.Component?{pageProps:await n(b.Component,b.ctx)}:{};let d=await a.getInitialProps(b);if(c&&l(c))return d;if(!d)throw Error(`"${k(a)}.getInitialProps()" should resolve to an object. But found "${d}" instead.`);return d}let o="u">typeof performance,p=o&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);class q extends Error{}class r extends Error{}class s extends Error{constructor(a){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${a}`}}class t extends Error{constructor(a,b){super(),this.message=`Failed to load static file for page: ${a} ${b}`}}class u extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(a){return JSON.stringify({message:a.message,stack:a.stack})}},81630:a=>{"use strict";a.exports=require("http")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},82737:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getNextPathnameInfo",{enumerable:!0,get:function(){return g}});let d=c(28516),e=c(96664),f=c(93250);function g(a,b){let{basePath:c,i18n:g,trailingSlash:h}=b.nextConfig??{},i={pathname:a,trailingSlash:"/"!==a?a.endsWith("/"):h};c&&(0,f.pathHasPrefix)(i.pathname,c)&&(i.pathname=(0,e.removePathPrefix)(i.pathname,c),i.basePath=c);let j=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let a=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=a[0],j="index"!==a[1]?`/${a.slice(1).join("/")}`:"/",!0===b.parseData&&(i.pathname=j)}if(g){let a=b.i18nProvider?b.i18nProvider.analyze(i.pathname):(0,d.normalizeLocalePath)(i.pathname,g.locales);i.locale=a.detectedLocale,i.pathname=a.pathname??i.pathname,!a.detectedLocale&&i.buildId&&(a=b.i18nProvider?b.i18nProvider.analyze(j):(0,d.normalizeLocalePath)(j,g.locales)).detectedLocale&&(i.locale=a.detectedLocale)}return i}},83997:a=>{"use strict";a.exports=require("tty")},84573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(92729),g=c(99751),h=c(68802),i=c(38955),j=Symbol("internal request");class k extends Request{constructor(a,b={}){let c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);let d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},85292:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(90132))&&d.__esModule?d:{default:d},f=c(42776),g=c(32053),h=c(29294),i=c(67205),j=c(89218),k=c(3295),l=c(28704);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.isRequestClosed=!1,this.initialOnCloseError=null,this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause();try{b(()=>{for(let a of(this.isRequestClosed=!0,this.workUnitStores))a.phase="after"})}catch(a){this.initialOnCloseError={error:a}}}after(a,b){if(this.initialOnCloseError)throw new f.InvariantError("An onClose call failed, which means after() can't work correctly.",{cause:this.initialOnCloseError.error});if(this.workUnitStores.add(b),(0,g.isThenable)(a))this.addThenable(a);else if("function"==typeof a)this.addCallback(a,b);else throw Error("`after()`: Argument must be a promise or a function")}addThenable(a){this.waitUntil||n(),this.waitUntil(new Promise(b=>{a.then(()=>{b()},a=>{b(),this.reportTaskError("promise",a)})}))}addCallback(a,b){this.waitUntil||n();let c=k.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await k.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return this.isRequestClosed?await new Promise(a=>(0,l.scheduleImmediate)(a)):await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;let a=h.workAsyncStorage.getStore();if(!a)throw new f.InvariantError("Missing workStore in AfterContext.runCallbacks");return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}))}}}function n(){throw Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment.")}},85304:(a,b,c)=>{"use strict";c.d(b,{exportSettings:()=>k,getRawSetting:()=>j,getSettings:()=>i});var d=c(27122),e=c(33323);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},quotaVisibility:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},capacityAdapter:{vision:{enabled:!0,roundRobin:!1,models:[]},pdf:{enabled:!1,roundRobin:!1,models:[]},audioInput:{enabled:!0,roundRobin:!1,models:[]},videoInput:{enabled:!1,roundRobin:!1,models:[]}},requireLogin:!0,requireApiKey:!0,tunnelDashboardAccess:!0,authMode:"password",ssoType:"oidc",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",samlEntryPoint:"",samlIssuer:"urn:9router:sp",samlCert:"",samlLoginLabel:"Sign in with SAML SSO",samlAttributeEmail:"email",samlAttributeName:"name",enableObservability:!1,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,headroomTimeoutMs:3e3,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",customPromptEnabled:!1,customPrompt:"",pxpipeEnabled:!1,pxpipeAutoInstall:!0,pxpipeMinChars:25e3,pxpipeTimeoutMs:15e3,providerOverrides:{}};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}let h=null;async function i(){return h||(h=function(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);if(b.capacityAdapter&&"object"==typeof b.capacityAdapter)for(let a of Object.keys(b.capacityAdapter)){let c=b.capacityAdapter[a];Array.isArray(c?.models)&&(c.models=c.models.map(a=>"oc/mimo-v2.5-free"===a?"oc/mimo-v2.6-flash-free":a))}return b}(await g())),{...h}}async function j(a){let b=await g();return b?b[a]:void 0}async function k(){return await g()}},85503:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`);c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Error("Catch-all must be the last part of the URL.");let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`);if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Error(`Segment names may not start or end with extra brackets ('${e}').`);if(e.startsWith("."))throw Error(`Segment names may not start with erroneous periods ('${e}').`);function f(a,c){if(null!==a&&a!==c)throw Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`);b.forEach(a=>{if(a===c)throw Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`);if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`)}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`);f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`);f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Error(`Optional route parameters are not yet supported ("${a[0]}").`);f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;e<a.length;e++){let f=b(a[e]);c[f]=e,d[e]=f}return f(d).map(b=>a[c[b]])}},86013:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15971),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86948:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(62192),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},87997:a=>{"use strict";a.exports=require("node:timers")},88026:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t={AppRenderSpan:function(){return C},AppRouteRouteHandlersSpan:function(){return G},AppRouteRouteModuleSpan:function(){return H},BaseServerSpan:function(){return v},DevBundlerServiceSpan:function(){return D},InstrumentationSpan:function(){return x},LoadComponentsSpan:function(){return w},LogSpanAllowList:function(){return N},MiddlewareSpan:function(){return K},NextNodeServerSpan:function(){return z},NextServerSpan:function(){return y},NextSpan:function(){return L},NextVanillaSpanAllowlist:function(){return M},NodeSpan:function(){return F},RenderSpan:function(){return B},ResolveMetadataSpan:function(){return J},RouteModuleSpan:function(){return I},RouterSpan:function(){return E},StartServerSpan:function(){return A}};for(var u in t)Object.defineProperty(b,u,{enumerable:!0,get:t[u]});var v=((c=v||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),w=((d=w||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d.loadRouteModule="LoadComponents.loadRouteModule",d),x=((e=x||{}).loadModule="Instrumentation.loadModule",e.register="Instrumentation.register",e),y=((f=y||{}).getRequestHandler="NextServer.getRequestHandler",f.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",f.getServer="NextServer.getServer",f.getServerRequestHandler="NextServer.getServerRequestHandler",f.createServer="createServer.createServer",f),z=((g=z||{}).compression="NextNodeServer.compression",g.getBuildId="NextNodeServer.getBuildId",g.createComponentTree="NextNodeServer.createComponentTree",g.clientComponentLoading="NextNodeServer.clientComponentLoading",g.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",g.generateStaticRoutes="NextNodeServer.generateStaticRoutes",g.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",g.generatePublicRoutes="NextNodeServer.generatePublicRoutes",g.generateImageRoutes="NextNodeServer.generateImageRoutes.route",g.sendRenderResult="NextNodeServer.sendRenderResult",g.proxyRequest="NextNodeServer.proxyRequest",g.runApi="NextNodeServer.runApi",g.render="NextNodeServer.render",g.renderHTML="NextNodeServer.renderHTML",g.imageOptimizer="NextNodeServer.imageOptimizer",g.getPagePath="NextNodeServer.getPagePath",g.getRoutesManifest="NextNodeServer.getRoutesManifest",g.findPageComponents="NextNodeServer.findPageComponents",g.getFontManifest="NextNodeServer.getFontManifest",g.getServerComponentManifest="NextNodeServer.getServerComponentManifest",g.getRequestHandler="NextNodeServer.getRequestHandler",g.renderToHTML="NextNodeServer.renderToHTML",g.renderError="NextNodeServer.renderError",g.renderErrorToHTML="NextNodeServer.renderErrorToHTML",g.render404="NextNodeServer.render404",g.startResponse="NextNodeServer.startResponse",g.route="route",g.onProxyReq="onProxyReq",g.apiResolver="apiResolver",g.internalFetch="internalFetch",g),A=((h=A||{}).startServer="startServer.startServer",h),B=((i=B||{}).getServerSideProps="Render.getServerSideProps",i.getStaticProps="Render.getStaticProps",i.renderToString="Render.renderToString",i.renderDocument="Render.renderDocument",i.createBodyResult="Render.createBodyResult",i),C=((j=C||{}).renderToString="AppRender.renderToString",j.renderToReadableStream="AppRender.renderToReadableStream",j.getBodyResult="AppRender.getBodyResult",j.fetch="AppRender.fetch",j.waitShellReady="AppRender.waitShellReady",j.renderToNodeFizzStream="AppRender.renderToNodeFizzStream",j.instantInsights="AppRender.instantInsights",j.instantInsightsPrepareValidation="AppRender.instantInsights.prepareValidation",j.instantInsightsRunValidation="AppRender.instantInsights.runValidation",j),D=((k=D||{}).ensurePage="DevBundlerService.ensurePage",k),E=((l=E||{}).executeRoute="Router.executeRoute",l),F=((m=F||{}).runHandler="Node.runHandler",m),G=((n=G||{}).runHandler="AppRouteRouteHandlers.runHandler",n),H=((o=H||{}).loadUserland="AppRouteRouteModule.loadUserland",o),I=((p=I||{}).prepare="RouteModule.prepare",p.loadManifests="RouteModule.loadManifests",p),J=((q=J||{}).generateMetadata="ResolveMetadata.generateMetadata",q.generateViewport="ResolveMetadata.generateViewport",q),K=((r=K||{}).execute="Middleware.execute",r),L=((s=L||{}).request="Next.request",s);let M=new Set(["Middleware.execute","Next.request","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","LoadComponents.loadRouteModule","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","AppRouteRouteModule.loadUserland","RouteModule.prepare","Instrumentation.loadModule","Instrumentation.register","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),N=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},88266:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return l}});let e=c(33803),f=c(72394),g=(d=c(40694))&&d.__esModule?d:{default:d},h=c(96100),i=c(36820),j=c(90925),k=c(94143);class l{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;static #c=this.seedReads=new Map;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?l.memoryCache?l.debug&&console.log("FileSystemCache: memory store already initialized"):(l.debug&&console.log("FileSystemCache: using memory store for fetch cache"),l.memoryCache=(0,k.getMemoryCache)(a.maxMemoryCacheSize)):l.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}getSeedReadState(a){return l.seedReads.get(`${this.serverDistDir}:${a}`)}beginSeedRead(a){let b=`${this.serverDistDir}:${a}`,c=l.seedReads.get(b);return c||(c={readers:0,version:0},l.seedReads.set(b,c)),c.readers++,{stateKey:b,state:c,version:c.version}}finishSeedRead(a,b){b.readers--,0!==b.readers||b.promotion||l.seedReads.delete(a)}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,l.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=i.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),i.tagsManifest.set(d,e)}else i.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,g,j,k,m,n,o,p,q,r,s,t;let u,[v,w]=a,{kind:x}=w,y=v,z=null==(b=l.memoryCache)?void 0:b.get(v),A=null==(c=this.getSeedReadState(v))?void 0:c.promotion;!z&&A&&(await A,z=null==(m=l.memoryCache)?void 0:m.get(v)),l.debug&&(x===f.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",v,w.tags,x,!!z):console.log("FileSystemCache: get",v,x,!!z));let B=x===f.IncrementalCacheKind.PAGES||x===f.IncrementalCacheKind.APP_PAGE||x===f.IncrementalCacheKind.APP_ROUTE;if(!z&&B&&v.startsWith(`/${e.ROUTE_CACHE_DIRECTORY}/`)&&1){let a=this.getFilePath(x===f.IncrementalCacheKind.APP_ROUTE?`${v}.body`:`${v}.html`,x);if(!this.fs.existsSync(a)){let a=v.indexOf("/$/");if(-1!==a){let b=v.slice(a+2),c=this.getFilePath(`${b}${h.NEXT_META_SUFFIX}`,x);try{let a=JSON.parse(this.fs.readFileSync(c,"utf8")),d=v.indexOf("/$/"),g=a.routeCache?(0,e.getRouteCacheKey)("/",a.routeCache.owner):void 0;(null==(n=a.routeCache)?void 0:n.key)===v&&(a.routeCache.isFallback===!!w.isFallback||x===f.IncrementalCacheKind.APP_PAGE&&w.isRoutePPREnabled&&null!=a.postponed)&&(null==g?void 0:g.slice(0,g.indexOf("/$/")))===v.slice(0,d)&&(y=b,u=this.beginSeedRead(v))}catch{}}}}if(!z)try{if(x===f.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${y}.body`,f.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,h.NEXT_META_SUFFIX),"utf8"));z={lastModified:d.routeCacheLastModified??c.getTime(),value:{kind:f.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status},cacheControl:d.cacheControl}}else{let a=this.getFilePath(x===f.IncrementalCacheKind.FETCH?y:`${y}.html`,x),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(x===f.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:e}=w;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(z={lastModified:g,value:h},(null==(o=z.value)?void 0:o.kind)===f.CachedRouteKind.FETCH){let b=null==(p=z.value)?void 0:p.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(l.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(v,z.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:e}))}}else if(x===f.IncrementalCacheKind.APP_PAGE){let d,e,g=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,h.NEXT_META_SUFFIX),"utf8"));if(null==g?void 0:g.segmentPaths){let a=new Map;d=a;let b=y+h.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(g.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+h.RSC_SEGMENT_SUFFIX,f.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}w.isFallback||w.isRoutePPREnabled&&(null==g?void 0:g.postponed)!=null||(e=await this.fs.readFile(this.getFilePath(`${y}${h.RSC_SUFFIX}`,f.IncrementalCacheKind.APP_PAGE))),z={lastModified:g.routeCacheLastModified??c.getTime(),value:{kind:f.CachedRouteKind.APP_PAGE,html:b,rscData:e,postponed:null==g?void 0:g.postponed,headers:null==g?void 0:g.headers,status:null==g?void 0:g.status,segmentData:d},cacheControl:null==g?void 0:g.cacheControl}}else if(x===f.IncrementalCacheKind.PAGES){let d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,h.NEXT_META_SUFFIX),"utf8")),e={};w.isFallback||(e=JSON.parse(await this.fs.readFile(this.getFilePath(`${y}${h.NEXT_DATA_SUFFIX}`,f.IncrementalCacheKind.PAGES),"utf8"))),z={lastModified:d.routeCacheLastModified??c.getTime(),value:{kind:f.CachedRouteKind.PAGES,html:b,pageData:e,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status}}}else throw Error(`Invariant: Unexpected route kind ${x} in file system cache.`)}z&&!u&&(null==(q=l.memoryCache)||q.set(v,z))}catch{return u&&this.finishSeedRead(u.stateKey,u.state),null}if((null==z||null==(d=z.value)?void 0:d.kind)===f.CachedRouteKind.APP_PAGE||(null==z||null==(g=z.value)?void 0:g.kind)===f.CachedRouteKind.APP_ROUTE||(null==z||null==(j=z.value)?void 0:j.kind)===f.CachedRouteKind.PAGES){let a=null==(r=z.value.headers)?void 0:r[h.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,i.areTagsExpired)(b,z.lastModified))return l.debug&&console.log("FileSystemCache: expired tags",b),u&&this.finishSeedRead(u.stateKey,u.state),null}}else if((null==z||null==(k=z.value)?void 0:k.kind)===f.CachedRouteKind.FETCH){let a=w.kind===f.IncrementalCacheKind.FETCH?[...w.tags||[],...w.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return l.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,i.areTagsExpired)(a,z.lastModified))return l.debug&&console.log("FileSystemCache: expired tags",a),null}if(u&&z){let{stateKey:a,state:b,version:c}=u;try{b.version===c&&(await this.promoteSeed(v,y,z,w,a,b,c),b.version!==c||(null==(s=l.memoryCache)?void 0:s.get(v))||null==(t=l.memoryCache)||t.set(v,z))}finally{this.finishSeedRead(a,b)}}return z??null}async promoteSeed(a,b,c,d,e,i,k){let m=this.fs.writeFileAtomic;if(!this.flushToDisk||!m||!c.value)return;if(i.promotion)return void await i.promotion;let n=(async()=>{let e=c.value;if(!e||i.version!==k||e.kind!==f.CachedRouteKind.PAGES&&e.kind!==f.CachedRouteKind.APP_PAGE&&e.kind!==f.CachedRouteKind.APP_ROUTE)return;let l=d.kind,n=this.getFilePath(e.kind===f.CachedRouteKind.APP_ROUTE?`${a}.body`:`${a}.html`,l);if(this.fs.existsSync(n))return;let o=this.getFilePath(e.kind===f.CachedRouteKind.APP_ROUTE?`${b}.body`:`${b}.html`,l),p=o.replace(e.kind===f.CachedRouteKind.APP_ROUTE?/\.body$/:/\.html$/,h.NEXT_META_SUFFIX),q=JSON.parse(await this.fs.readFile(p,"utf8"));q.routeCacheLastModified=c.lastModified;let r=[];e.kind!==f.CachedRouteKind.PAGES||d.isFallback?e.kind===f.CachedRouteKind.APP_PAGE&&(d.isFallback||d.isRoutePPREnabled&&null!=q.postponed||r.push({path:this.getFilePath(`${a}${h.RSC_SUFFIX}`,l),data:await this.fs.readFile(this.getFilePath(`${b}${h.RSC_SUFFIX}`,l))}),r.push(...await Promise.all((q.segmentPaths??[]).map(async c=>({path:this.getFilePath(a+h.RSC_SEGMENTS_DIR_SUFFIX+c+h.RSC_SEGMENT_SUFFIX,l),data:await this.fs.readFile(this.getFilePath(b+h.RSC_SEGMENTS_DIR_SUFFIX+c+h.RSC_SEGMENT_SUFFIX,l))}))))):r.push({path:this.getFilePath(`${a}${h.NEXT_DATA_SUFFIX}`,l),data:await this.fs.readFile(this.getFilePath(`${b}${h.NEXT_DATA_SUFFIX}`,l))});let s=new j.MultiFileWriter(this.fs);for(let a of r)s.append(a.path,a.data);if(await s.wait(),i.version!==k)return;let t=n.replace(e.kind===f.CachedRouteKind.APP_ROUTE?/\.body$/:/\.html$/,h.NEXT_META_SUFFIX);await this.fs.mkdir(g.default.dirname(t)),await this.fs.writeFile(t,JSON.stringify(q)),i.version!==k||this.fs.existsSync(n)||await m.call(this.fs,n,await this.fs.readFile(o))})();i.promotion=n.catch(a=>{l.debug&&console.log("FileSystemCache: failed to promote build seed",a)});try{await i.promotion}finally{i.promotion&&(i.promotion=void 0),0===i.readers&&l.seedReads.delete(e)}}async set(a,b,c){var d;let e=c.fetchCache?void 0:c.cacheControl,g=this.getSeedReadState(a);if(g&&g.version++,null==(d=l.memoryCache)||d.set(a,{value:b,lastModified:Date.now(),cacheControl:e}),l.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;await (null==g?void 0:g.promotion);let i=new j.MultiFileWriter(this.fs);if(b.kind===f.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,f.IncrementalCacheKind.APP_ROUTE);i.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0,cacheControl:e};i.append(c.replace(/\.body$/,h.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===f.CachedRouteKind.PAGES||b.kind===f.CachedRouteKind.APP_PAGE){let d=b.kind===f.CachedRouteKind.APP_PAGE,g=this.getFilePath(`${a}.html`,d?f.IncrementalCacheKind.APP_PAGE:f.IncrementalCacheKind.PAGES);if(i.append(g,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||i.append(this.getFilePath(`${a}${d?h.RSC_SUFFIX:h.NEXT_DATA_SUFFIX}`,d?f.IncrementalCacheKind.APP_PAGE:f.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===f.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=g.replace(/\.html$/,h.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+h.RSC_SEGMENT_SUFFIX;i.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0,cacheControl:e};i.append(g.replace(/\.html$/,h.NEXT_META_SUFFIX),JSON.stringify(c))}else{let a={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};i.append(g.replace(/\.html$/,h.NEXT_META_SUFFIX),JSON.stringify(a))}}else if(b.kind===f.CachedRouteKind.FETCH){let d=this.getFilePath(a,f.IncrementalCacheKind.FETCH);i.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await i.wait()}getFilePath(a,b){let c;switch(b){case f.IncrementalCacheKind.FETCH:c=g.default.join(this.serverDistDir,"..","cache","fetch-cache");break;case f.IncrementalCacheKind.PAGES:c=g.default.join(this.serverDistDir,"pages");break;case f.IncrementalCacheKind.IMAGE:case f.IncrementalCacheKind.APP_PAGE:case f.IncrementalCacheKind.APP_ROUTE:c=g.default.join(this.serverDistDir,"app");break;default:throw Error(`Unexpected file path kind: ${b}`)}(b===f.IncrementalCacheKind.PAGES||b===f.IncrementalCacheKind.APP_PAGE||b===f.IncrementalCacheKind.APP_ROUTE)&&a.startsWith(`/${e.ROUTE_CACHE_DIRECTORY}/`)&&(c=g.default.join(this.serverDistDir,"."));let d=g.default.join(c,a);if(!(d.startsWith(c+g.default.sep)||d===c))throw Error(`Invalid file path: ${d}`);return d}}},88450:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(61544),g=c(99751),h=c(84573),i=c(42097),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Error("Invariant: Unsupported NextRequest type")}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},88764:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>bp,handler:()=>bo});var e={};c.r(e),c.d(e,{config:()=>bh,default:()=>bg}),require("next/dist/build/adapter/setup-node-env.external");var f=c(32648),g=c(76309),h=c(88771),i=c(62940),j=c(27122),k=c(85304);c(46789),c(19217),c(56840),c(95160);var l=c(17343),m=c(71509);(0,m.U)("modelAliases"),(0,m.U)("customModels"),(0,m.U)("mitmAlias"),c(36241);var n=c(94735);c(91117),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new n.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._statsEmitTimers||(global._statsEmitTimers={pending:null,update:null}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitTimers,global._statsEmitter;var o=c(33323);let p=null,q=0;async function r(){if(p&&Date.now()-q<5e3)return p;try{let{getSettings:a,getRawSetting:b}=await Promise.resolve().then(c.bind(c,85304)),d=await a(),e=process.env.ENABLE_REQUEST_LOGS;if(void 0!==e)return p={enabled:"true"===e.toLowerCase(),maxRecords:d.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:d.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:d.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(d.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))},q=Date.now(),p;let f=await b("enableObservability");p={enabled:"boolean"==typeof f?f:void 0!==process.env.OBSERVABILITY_ENABLED&&!/^(false|0|no|off)$/i.test(process.env.OBSERVABILITY_ENABLED),maxRecords:d.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:d.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:d.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(d.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{p={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return q=Date.now(),p}let s=[],t=null,u=!1;function v(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function w(){if(!u&&0!==s.length){u=!0;try{for(;s.length>0;){let a=s.splice(0,s.length),b=await (0,j.c)(),c=await r(),d=a.map(a=>{a.id||(a.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(a.model)),a.timestamp||(a.timestamp=new Date().toISOString()),a.request?.headers&&(a.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(a.request.headers));let b={id:a.id,provider:a.provider||null,model:a.model||null,connectionId:a.connectionId||null,timestamp:a.timestamp,status:a.status||null,latency:a.latency||{},tokens:a.tokens||{},request:v(a.request,c.maxJsonSize),providerRequest:v(a.providerRequest,c.maxJsonSize),providerResponse:v(a.providerResponse,c.maxJsonSize),response:v(a.response,c.maxJsonSize),pxpipe:a.pxpipe||void 0};return[b.id,b.timestamp,b.provider,b.model,b.connectionId,b.status,(0,o.s)(b)]});b.transaction(()=>{for(let a of d)b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",a);let a=b.get("SELECT COUNT(*) as c FROM requestDetails");a&&a.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[a.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{u=!1}}}let x=async()=>{t&&(clearTimeout(t),t=null),s.length>0&&await w()};process.off("beforeExit",x),process.off("SIGINT",x),process.off("SIGTERM",x),process.off("exit",x),process.on("beforeExit",x),process.on("SIGINT",x),process.on("SIGTERM",x),process.on("exit",x);var y=c(2886),z=c(73024),A=c.n(z),B=c(76760),C=c.n(B),D=c(77598),E=c.n(D),F=c(72045);let G=C().join(F.n,"machine-id"),H=C().join(F.n,"auth"),I=C().join(H,"cli-secret"),J=null,K=null;async function L(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(J)return J;try{if(J=A().readFileSync(G,"utf8").trim())return J}catch{}try{J=(0,y.machineIdSync)()}catch{J=E().randomUUID()}try{A().mkdirSync(F.n,{recursive:!0}),A().writeFileSync(G,J,{mode:384})}catch{}return J}(),d="9r-cli-auth"===b?function(){if(K)return K;try{if(K=A().readFileSync(I,"utf8").trim())return K}catch{}K=E().randomBytes(32).toString("hex");try{A().mkdirSync(H,{recursive:!0}),A().writeFileSync(I,K,{mode:384})}catch{}return K}():"";return E().createHash("sha256").update(c+b+d).digest("hex").substring(0,16)}class M extends Error{static code="ERR_JOSE_GENERIC";code="ERR_JOSE_GENERIC";constructor(a,b){super(a,b),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}}class N extends M{static code="ERR_JWT_CLAIM_VALIDATION_FAILED";code="ERR_JWT_CLAIM_VALIDATION_FAILED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class O extends M{static code="ERR_JWT_EXPIRED";code="ERR_JWT_EXPIRED";claim;reason;payload;constructor(a,b,c="unspecified",d="unspecified"){super(a,{cause:{claim:c,reason:d,payload:b}}),this.claim=c,this.reason=d,this.payload=b}}class P extends M{static code="ERR_JOSE_ALG_NOT_ALLOWED";code="ERR_JOSE_ALG_NOT_ALLOWED"}class Q extends M{static code="ERR_JOSE_NOT_SUPPORTED";code="ERR_JOSE_NOT_SUPPORTED"}class R extends M{static code="ERR_JWS_INVALID";code="ERR_JWS_INVALID"}class S extends M{static code="ERR_JWT_INVALID";code="ERR_JWT_INVALID"}class T extends M{static code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";code="ERR_JWS_SIGNATURE_VERIFICATION_FAILED";constructor(a="signature verification failed",b){super(a,b)}}let U=[["verify"],["sign"]];function V(a){let b={name:"HMAC",hash:`SHA-${a}`};return{kty:["oct"],secret:!0,subtle:b,signing:b,usages:U}}function W(a,b){let c={name:b?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:`SHA-${a}`};return{kty:["RSA"],subtle:c,signing:b?{...c,saltLength:b}:c,usages:U,minRsaBits:2048}}function X(a,b){return{kty:["EC"],crv:a,subtle:{name:"ECDSA",namedCurve:a},signing:{name:"ECDSA",hash:`SHA-${b}`},usages:U}}function Y(){let a={name:"Ed25519"};return{kty:["OKP"],crv:"Ed25519",subtle:a,signing:a,usages:U}}function Z(a){let b={name:`ML-DSA-${a}`};return{kty:["AKP"],subtle:b,signing:b,usages:U}}let $=function(a){let b={__proto__:null};for(let c in a)b[c]={...a[c],alg:c};return b}({HS256:V(256),HS384:V(384),HS512:V(512),RS256:W(256),RS384:W(384),RS512:W(512),PS256:W(256,32),PS384:W(384,48),PS512:W(512,64),ES256:X("P-256",256),ES384:X("P-384",384),ES512:X("P-521",512),EdDSA:Y(),Ed25519:Y(),"ML-DSA-44":Z(44),"ML-DSA-65":Z(65),"ML-DSA-87":Z(87)}),_=new TextEncoder,aa=new TextDecoder,ab=new TextDecoder("utf-8",{fatal:!0}),ac=/[^\x00-\x7f]/;function ad(a){if("string"==typeof a&&a.length>=128){if(ac.test(a))throw TypeError("non-ASCII string encountered in encode()");return _.encode(a)}let b=new Uint8Array(a.length);for(let c=0;c<a.length;c++){let d=a.charCodeAt(c);if(d>127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}function ae(a){try{return function(a,b=!1){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(a,{alphabet:b?"base64url":"base64"});if(b){if(a.includes("+")||a.includes("/"))throw TypeError("Invalid base64url");a=a.replace(/-/g,"+").replace(/_/g,"/")}let c=atob(a),d=new Uint8Array(c.length);for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d}("string"==typeof a?a:aa.decode(a),!0)}catch(a){throw TypeError("The input to be decoded is not correctly encoded.",{cause:a})}}function af(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;let b=Object.getPrototypeOf(a);return null===b||null===Object.getPrototypeOf(b)}function ag(a,b,c){try{return ae(a)}catch(a){throw new c(`Failed to base64url decode the ${b}`,{cause:a})}}let ah={__proto__:null,b64:!0};async function ai(a,b,c){let e,f,{alg:g,secret:h}=a,i="decrypt"===c||"sign"===c;if(h&&b instanceof Uint8Array)return b;if(af(b)){if("string"!=typeof(e=function(a){let b={__proto__:null,...a};if(void 0!==b.ext&&"boolean"!=typeof b.ext)throw TypeError('"ext" (Extractable) Parameter must be a boolean');if(void 0!==b.key_ops){let a=b.key_ops,c=Array.isArray(a)?[...a]:void 0;if(!c||c.some(a=>"string"!=typeof a)||new Set(c).size!==c.length)throw TypeError('"key_ops" (Key Operations) Parameter must be an array of unique strings');b.key_ops=c}return b}(b)).kty)throw am(g,b,h);if(!(h?"oct"===e.kty&&"string"==typeof e.k:"oct"!==e.kty&&(i?"AKP"===e.kty&&"string"==typeof e.priv||"string"==typeof e.d:void 0===e.d&&void 0===e.priv)))throw TypeError(h?'JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present':`JSON Web Key for this operation must be a ${i?"private":"public"} JWK`);if(((a,b,c)=>{let{alg:d}=a;if(void 0!==b.use){let a="sign"===c||"verify"===c?"sig":"enc";if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==d)throw TypeError(`Invalid key for this operation, its "alg" must be "${d}" when present`);if(Array.isArray(b.key_ops)){let d="encrypt"===c||"decrypt"===c?a.ops?.[+("encrypt"!==c)]:c;if(d&&!b.key_ops.includes(d))throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}})(a,e,c),"oct"===e.kty)return ae(e.k);if(!Object.isFrozen(b)){let{key_ops:a}=b;Array.isArray(a)&&Object.freeze(a),Object.freeze(b)}}else{if(!al(b))throw am(g,b,h);let a=h?"secret":i?"private":"public";if(b.type!==a&&(h||["secret","public","private"].includes(b.type)))throw TypeError(`${b[Symbol.toStringTag]} instances must be of type "${a}" for the ${g} algorithm`);if(ak(b))return b;if("secret"===(f=b).type)return f.export()}let j=(d||=new WeakMap).get(b);if(j?.[g])return j[g];if(j||d.set(b,j={}),f&&"function"==typeof f.toCryptoKey){let b="public"===f.type,c=aj[f.asymmetricKeyDetails?.namedCurve],d=a.resolve?.({crv:c,asymmetricKeyType:f.asymmetricKeyType})??a.subtle;return j[g]=f.toCryptoKey(d,b,a.usages[+!b])}return(e??=f.export({format:"jwk"})).alg=g,j[g]=await ao(a,e)}let aj={__proto__:null,prime256v1:"P-256",secp384r1:"P-384",secp521r1:"P-521"},ak=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}},al=a=>ak(a)||a?.[Symbol.toStringTag]==="KeyObject";function am(a,b,c){let d=["CryptoKey","KeyObject","JSON Web Key"];return c&&d.push("Uint8Array"),TypeError(function(a,b,...c){if(c.length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a}(`Key for the ${a} algorithm must be `,b,...d))}let an=(a,b="algorithm.name")=>TypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);async function ao(a,b,c){if(!a.kty.includes(b.kty))throw new Q('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');let d=a.resolve?.({kty:b.kty,crv:b.crv})??a.subtle,e=!!(b.d||b.priv),f={...b,ext:c??b.ext};return"AKP"!==f.kty&&delete f.alg,delete f.use,crypto.subtle.importKey("jwk",f,d,f.ext??!e,b.key_ops??a.usages[+!!e])}async function ap(a,b,c,d=!1){return a instanceof Uint8Array&&(a=await crypto.subtle.importKey("raw",a,b,d,[c])),function(a,b,c){let d=a.algorithm;if(d.name!==b.name)throw an(b.name);if(b.hash&&d.hash?.name!==b.hash)throw an(b.hash,"algorithm.hash");if(b.namedCurve&&d.namedCurve!==b.namedCurve)throw an(b.namedCurve,"algorithm.namedCurve");if(void 0!==b.length&&d.length!==b.length)throw an(b.length,"algorithm.length");if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(a,b,c),a}function aq(a){try{return ad(a)}catch(a){throw new R("JWS Compact Serialization payload must use only ASCII characters",{cause:a})}}async function ar(a,b,c,d,e){let{protected:f,header:g,payload:h}=a,i=e??(void 0===f?{}:function(a,b,c){let d;try{d=JSON.parse(ab.decode(ae(a)))}catch(a){throw new b(c,{cause:a})}if(!af(d))throw new b(c);return d}(f,R,"JWS Protected Header is invalid"));if(!function(...a){let b=new Set;for(let c of a)if(c)for(let a of Object.keys(c)){if(b.has(a))return!1;b.add(a)}return!0}(i,g))throw new R("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let j={...i,...g},k=function(a,b){if(b.includes("b64")){let b=a.b64;if("boolean"!=typeof b)throw new R('The "b64" (base64url-encode payload) Header Parameter must be a boolean');return b}return!0}(i,function(a,b,c,d,e){if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return[];if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');let f=void 0===c?b:{__proto__:null,...c,...b};for(let b of d.crit){if(!(b in f))throw new Q(`Extension Header Parameter "${b}" is not recognized`);if(!Object.hasOwn(e,b)||void 0===e[b])throw new a(`Extension Header Parameter "${b}" is missing`);if(f[b]&&(!Object.hasOwn(d,b)||void 0===d[b]))throw new a(`Extension Header Parameter "${b}" MUST be integrity protected`)}return d.crit}(R,ah,b[1],i,j)),{alg:l}=j;if("string"!=typeof l||!l)throw new R('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(l))throw new P('"alg" (Algorithm) Header Parameter value not allowed');if(k){if("string"!=typeof h)throw new R("JWS Payload must be a string")}else if("string"!=typeof h&&!(h instanceof Uint8Array))throw new R("JWS Payload must be a string or an Uint8Array instance");let m=k||"string"!=typeof h?h:d(h),n=!1;"function"==typeof c&&(c=await c(i,a),n=!0);let o=function(a){let b="string"==typeof a?$[a]:void 0;if(!b)throw new Q(`alg ${a} is not supported either by JOSE or your javascript runtime`);return b}(l),p=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==f?ad(f):new Uint8Array,ad("."),"string"==typeof m?b[2]??=function(a,b,c){try{return ad(a)}catch(a){throw new c(`The ${b} is not a valid base64url string`,{cause:a})}}(m,"payload",R):m),q=ag(a.signature,"signature",R),r=await ai(o,c,"verify"),s=await ap(r,o.subtle,"verify");o.minRsaBits&&function(a,b){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}(o.alg,s);let t=!1;try{t=await crypto.subtle.verify(o.signing,s,q,p)}catch(a){throw new T(void 0,{cause:a})}if(!t)throw new T;let u={payload:"string"==typeof m?ag(m,"payload",R):m};return void 0!==f&&(u.protectedHeader=i),void 0!==g&&(u.unprotectedHeader=g),n?[{...u,key:r},k]:[u,k]}async function as(a,b,c){if(a instanceof Uint8Array&&(a=aa.decode(a)),"string"!=typeof a)throw new R("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new R("Invalid Compact JWS");return ar({payload:e,protected:d,signature:f},b,c,aq)}let at={s:1,m:60,h:3600,d:86400,w:604800,y:0x1e187e0},au=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i,av="check_failed";function aw(){throw TypeError("Invalid time period format")}function ax(a){"string"!=typeof a&&aw();let b=au.exec(a);(!b||b[4]&&b[1])&&aw();let c=Math.round(parseFloat(b[2])*at[b[3][0].toLowerCase()]);return Number.isFinite(c)||aw(),"-"===b[1]||"ago"===b[4]?-c:c}function ay(a,b){if(!Number.isFinite(b))throw TypeError(`Invalid ${a} input`);return b}let az=a=>{let b=a.toLowerCase();return a.includes("/")?b:`application/${b}`};function aA(a,b,c=!1){let d=a[b];if(!(void 0===d&&!c)){if("number"!=typeof d)throw new N(`"${b}" claim must be a number`,a,b,"invalid");return d}}function aB(a,b){throw new N(`unexpected "${b}" claim value`,a,b,av)}async function aC(a,b,c){let[d,e]=await as(a,[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`);return void 0===b?void 0:new Set(b)}("algorithms",c.algorithms),c?.crit],b);if(!e)throw new S("JWTs MUST NOT use unencoded payload");let f=function(a,b,c={}){let d,e,f;try{d=JSON.parse(ab.decode(b))}catch(a){throw new S("JWT Claims Set must be a top-level JSON object",{cause:a})}if(!af(d))throw new S("JWT Claims Set must be a top-level JSON object");let{typ:g}=c;if(void 0!==g&&("string"!=typeof a.typ||az(a.typ)!==az(g)))throw new N('unexpected "typ" JWT header value',d,"typ",av);let{requiredClaims:h=[],issuer:i,subject:j,audience:k,maxTokenAge:l}=c,m=[...h];for(let a of(void 0!==l&&m.push("iat"),void 0!==k&&m.push("aud"),void 0!==j&&m.push("sub"),void 0!==i&&m.push("iss"),new Set(m.reverse())))if(!Object.hasOwn(d,a))throw new N(`missing required "${a}" claim`,d,a,"missing");void 0===i||(Array.isArray(i)?i:[i]).includes(d.iss)||aB(d,"iss"),void 0!==j&&d.sub!==j&&aB(d,"sub"),void 0===k||(e=d.aud,f="string"==typeof k?[k]:k,"string"==typeof e?f.includes(e):!!Array.isArray(e)&&f.some(a=>e.includes(a)))||aB(d,"aud");let{clockTolerance:n}=c,o=0;if("string"==typeof n)o=ax(n);else if(void 0!==n){if("number"!=typeof n)throw TypeError("Invalid clockTolerance option type");o=n}ay("clockTolerance option",o);let{currentDate:p}=c,q=ay("currentDate option",Math.floor((void 0===p?new Date:p).getTime()/1e3)),r=aA(d,"iat",void 0!==l),s=aA(d,"nbf");if(void 0!==s&&s>q+o)throw new N('"nbf" claim timestamp check failed',d,"nbf",av);let t=aA(d,"exp");if(void 0!==t&&t<=q-o)throw new O('"exp" claim timestamp check failed',d,"exp",av);if(void 0!==l){let a=q-r;if(a-o>ay("maxTokenAge option","number"==typeof l?l:ax(l)))throw new O('"iat" claim timestamp check failed (too far in the past)',d,"iat",av);if(a<-o)throw new N('"iat" claim timestamp check failed (it should be in the past)',d,"iat",av)}return d}(d.protectedHeader,d.payload,c);return{...d,payload:f}}c(55511);"function"==typeof setImmediate||"object"==typeof scheduler&&"function"==typeof scheduler.postTask&&scheduler.postTask.bind(scheduler);let aD=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=C().join(F.n,"jwt-secret");try{return A().readFileSync(a,"utf8").trim()}catch{}A().mkdirSync(F.n,{recursive:!0});let b=E().randomBytes(32).toString("hex");return A().writeFileSync(a,b,{mode:384}),b}());async function aE(a){if(!a)return!1;try{return await aC(a,aD),!0}catch{return!1}}let aF=null;async function aG(){return aF||(aF=await L("9r-cli-auth")),aF}async function aH(a){let b=a.headers.get("x-9r-cli-token");return!!b&&b===await aG()}let aI=["/api/health","/api/init","/api/locale","/api/auth/login","/api/auth/logout","/api/auth/status","/api/auth/oidc","/api/auth/saml","/api/version","/api/settings/require-login"],aJ=["/v1","/v1beta","/api/v1","/api/v1beta","/codex","/responses"],aK=["/api/shutdown","/api/settings/database","/api/version/shutdown","/api/version/update","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/minimax-code/lease","/api/oauth/minimax-code-global/lease"],aL=["/api/cli-tools/cowork-settings","/api/cli-tools/antigravity-mitm","/api/mcp/","/api/tunnel/tailscale-install","/api/tunnel/tailscale-enable","/api/tunnel/tailscale-disable","/api/tunnel/tailscale-check","/api/tunnel/enable","/api/tunnel/disable","/api/oauth/cursor/auto-import","/api/oauth/kiro/auto-import","/api/oauth/zed/auto-import","/api/oauth/minimax-code/lease","/api/oauth/minimax-code-global/lease","/api/auth/reset-password","/api/headroom/start","/api/headroom/stop","/api/headroom/proxy"],aM=new Set(["localhost","127.0.0.1","::1"]);function aN(a){if(!a)return!1;let b=String(a).trim().toLowerCase();if(b.startsWith("[")){let a=b.indexOf("]");if(-1===a)return!1;b=b.slice(1,a)}else -1!==b.indexOf(":")&&b.indexOf(":")===b.lastIndexOf(":")&&(b=b.slice(0,b.indexOf(":")));return b.startsWith("::ffff:")&&(b=b.slice(7)),aM.has(b)}function aO(a){let b;if(a.headers.get("x-9r-via-proxy")||!((b=process.env.NINEROUTER_PEER_TOKEN)&&a.headers.get("x-9r-peer-token")===b&&aN(a.headers.get("x-9r-real-ip"))))return!1;let c=a.headers.get("origin");if(c)try{if(!aN(new URL(c).hostname))return!1}catch{return!1}return!0}function aP(a){return aJ.some(b=>a===b||a.startsWith(`${b}/`))}async function aQ(a){let b=function(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");if(c)return c;let d=a.headers.get("x-goog-api-key");return d||a.nextUrl.searchParams?.get("key")||null}(a);return!!b&&await (0,l.validateApiKey)(b)}async function aR(a){return!!(aO(a)||await aH(a))||await aQ(a)}async function aS(a){return!!(await aH(a)||aO(a)&&await aV(a))}async function aT(a){let b=a.cookies.get("auth_token")?.value;return await aE(b)}async function aU(){try{return await (0,k.getSettings)()}catch{return null}}async function aV(a){if(await aT(a))return!0;let b=await aU();return!!b&&!1===b.requireLogin}async function aW(a){let{pathname:b}=a.nextUrl;if(aL.some(a=>b.startsWith(a))&&!await aS(a))return i.NextResponse.json({error:"Local only: CLI token required"},{status:403});if(aK.some(a=>b.startsWith(a)))return await aH(a)||await aT(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aP(b))return await aR(a)?i.NextResponse.next():i.NextResponse.json({error:"API key required for remote API access"},{status:401});if(b.startsWith("/api/"))return aP(b)||aI.some(a=>b===a||b.startsWith(`${a}/`))||await aH(a)||await aV(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0;try{let c=await aU();if(c&&(b=!1!==c.requireLogin,!0!==c.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),d=c.tunnelUrl?new URL(c.tunnelUrl).hostname.toLowerCase():"",e=c.tailscaleUrl?new URL(c.tailscaleUrl).hostname.toLowerCase():"";if(d&&b===d||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b)return i.NextResponse.next();let c=a.cookies.get("auth_token")?.value;return c&&await aE(c)?i.NextResponse.next():i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}let aX="account.xiaomi.com",aY="9r_mimo_login",aZ=["/_next/","/api/","/dashboard","/v1/","/v1beta/","/login","/landing","/__mimo_login/","/i18n/","/icons/","/providers/"],a$=new Set(["/favicon.svg","/favicon.ico","/file.svg","/globe.svg","/next.svg","/vercel.svg","/window.svg","/sw.js","/robots.txt","/manifest.webmanifest"]),a_={cn:"https://mimo-server-cn.xiaomimimo.com",sgp:"https://mimo-server-sgp.xiaomimimo.com",ams:"https://mimo-server-ams.xiaomimimo.com",ru:"https://mimo-server-ru.xiaomimimo.com",in:"https://mimo-server-in.xiaomimimo.com"},a0=/^(passToken|userId|cUserId|serviceToken|.*_serviceToken|.*_ph|.*_slh|deviceId)$/;function a1(a,b){let c,d,e,f=new Headers(a.headers);return f.append("Set-Cookie",`${aY}=${(c=[...b.jar.values()].map(a=>[a.name,a.value,a.domain,a.path]),(e=JSON.stringify({...d={s:b.state,r:b.region,t:b.createdAt,p:b.proxyUrl||""},j:c})).length>2800&&(e=JSON.stringify({...d,j:c.filter(([a])=>a0.test(a))})),`v2.${function(a){let b=new TextEncoder().encode(a),c="";for(let a of b)c+=String.fromCharCode(a);return btoa(c).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}(e)}`)}; Path=/; HttpOnly; SameSite=Lax; Max-Age=900`),new Response(a.body,{status:a.status,statusText:a.statusText,headers:f})}function a2(a,b){let c=String(a||"").replace(/^\./,"").toLowerCase(),d=String(b||"").toLowerCase();return d===c||d.endsWith("."+c)}function a3(a){let b=b=>{for(let c of a.jar.values())if(c.name===b&&a2(c.domain,aX))return c.value;return null},c=b("passToken");return c&&"EXPIRED"!==c?{passToken:c,userId:b("userId"),cUserId:b("cUserId")}:null}function a4(a){let b=[a],c=a;for(let a=0;a<3;a++)b.push(c=encodeURIComponent(c));return b}function a5(a,b,c,d=null){if(!a)return a;let e=String(a),f=`${c}/__mimo_login/mimo`,g=[...new Set(Object.values(a_))],h="toProxy"===b?g:[f],i="toProxy"===b?f:d||g[0];for(let a of h){let b=[a,a.replace("https://","http://"),a.replace(/^https?:/,""),a.replaceAll("/","\\/"),a.replace("https://","http://").replaceAll("/","\\/")],c=[i,i.replace("https://","http://"),i,i.replaceAll("/","\\/"),i.replaceAll("/","\\/")];for(let a=0;a<b.length;a++){let d=a4(b[a]),f=a4(c[a]);for(let a=0;a<d.length;a++)e=e.split(d[a]).join(f[a])}}if("toProxy"===b){let a=a4(c);for(let b of["https://account.xiaomi.com","http://account.xiaomi.com","//account.xiaomi.com"]){let c=a4(b);for(let b=0;b<c.length;b++)e=e.split(c[b]).join(a[b])}}else{let a=a4("https://account.xiaomi.com"),b=a4("https:\\/\\/account.xiaomi.com"),d=a4(c),f=a4(c.replace(/^https?:/,"")),g=a4(c.replaceAll("/","\\/"));for(let c=0;c<d.length;c++)e=(e=(e=e.split(d[c]).join(a[c])).split(f[c]).join(a[c])).split(g[c]).join(b[c])}return e}function a6(a,b,c=null){return a5(a,"toUpstream",b,c)}let a7=null,a8=null;async function a9(a,b,d){a8||(a8=c.e(2220).then(c.t.bind(c,32220,23)).then(a=>a.SocksProxyAgent||a.default?.SocksProxyAgent||a.default).catch(a=>(console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] socks-proxy-agent unavailable:`,a?.message||a),null)));let e=await a8;if(!e)throw Error("socks agent unavailable");let f=new URL(a),g="http:"===f.protocol?await Promise.resolve().then(c.t.bind(c,37067,23)):await Promise.resolve().then(c.t.bind(c,44708,23)),h=g.default??g,{Readable:i}=await Promise.resolve().then(c.t.bind(c,57075,23)),j={},k=b?.headers;if(k instanceof Headers)for(let[a,b]of k)j[a]=b;else k&&(j={...k});let l=b?.body;l&&"string"!=typeof l&&!Buffer.isBuffer(l)&&(l=Buffer.from(l)),l&&(j["content-length"]=String(Buffer.byteLength(l)));let m=new e(d);return new Promise((a,c)=>{let d=h.request(f,{method:b?.method||"GET",agent:m,headers:j,timeout:2e4},b=>{let c=new Headers;for(let[a,d]of Object.entries(b.headers||{}))Array.isArray(d)?d.forEach(b=>c.append(a,String(b))):null!=d&&c.set(a,String(d));a(new Response(i.toWeb(b),{status:b.statusCode||200,headers:c}))}),e=b?.signal;e&&(e.aborted?d.destroy(Error("aborted")):e.addEventListener("abort",()=>d.destroy(Error("aborted")),{once:!0})),d.on("timeout",()=>d.destroy(Error("socks fetch timeout"))),d.on("error",c),l&&d.write(l),d.end()})}async function ba(a,b,d=null){if(!d)return fetch(a,b);try{if(/^socks/i.test(d))return await a9(a,b,d);a7||(a7=c.e(7557).then(c.bind(c,67557)).then(a=>a.proxyAwareFetch).catch(a=>(console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] proxyAwareFetch unavailable (runtime?), direct only:`,a?.message||a),null)));let e=await a7;if(e)return await e(a,b,{enabled:!0,url:d})}catch(a){console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] proxied fetch failed, falling back to direct:`,a?.message||a)}return fetch(a,b)}async function bb(a,b,c,d){let e=new Headers(c.headers);return d&&e.set("Cookie",d),ba(b,{...c,headers:e,redirect:"manual",signal:AbortSignal.timeout(2e4)},a?.proxyUrl||null)}let bc=new Set(["host","cookie","connection","content-length","transfer-encoding","keep-alive","upgrade","expect","proxy-connection","authorization","proxy-authorization"]);async function bd(a,b,c){let d=new URL(b.url);d.searchParams.delete("__9r_sess");let e=a6(new URL(d.pathname+d.search,`https://${aX}`).toString(),c,a.upstreamBase),f={};for(let[a,c]of b.headers)bc.has(a.toLowerCase())||(f[a]=c);let g=f.origin||f.Origin||null;delete f.origin,delete f.Origin,g&&(f.Origin=`https://${aX}`);let h=(a=>{if(!a)return null;try{let b=new URL(a);if(b.origin===c)return b.protocol="https:",b.host=aX,b.toString();if(b.hostname===aX)return b.toString();return null}catch{return null}})(f.referer||f.Referer);f.Referer=h?a6(h,c,a.upstreamBase):`https://${aX}/fe/service/login`,delete f.referer;let i={method:b.method||"GET",headers:f};if("GET"!==i.method&&"HEAD"!==i.method){let d=Buffer.from(await b.arrayBuffer()),e=String(f["Content-Type"]||f["content-type"]||"");if(d.length&&/urlencoded|json|text/i.test(e)){let b=d.toString("utf8"),e=a5(b,"toUpstream",c,a.upstreamBase);e!==b?(d=Buffer.from(e,"utf8"),f["Content-Length"]=String(d.length)):/__mimo_login|localhost/.test(b)&&console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] body STILL local, not matchable: ${b.slice(0,200)}`)}i.body=d}let j=e,k=null,l=function(a,b){let c=new URL(b),d=[];for(let b of a.jar.values())a2(b.domain,c.hostname)&&(c.pathname||"/").startsWith(b.path)&&d.push(`${b.name}=${b.value}`);return d.join("; ")}(a,j)||b.headers.get("cookie")||"";for(let b=0;b<8;b++){var m,n=k=await bb(a,j,0===b?i:{...i,body:void 0},l),o=j;for(let b of n.headers.getSetCookie?.()||[]){let c=function(a,b){if(!a)return null;let c=a.split(";"),d=/^([^=]+)=([\s\S]*)$/.exec(c[0].trim());if(!d)return null;let e=d[1].trim(),f=(d[2]||"").trim(),g=new URL(b),h={name:e,value:f,domain:g.hostname,path:(g.pathname||"/").replace(/[^/]*$/,"")||"/"},i="EXPIRED"===f;for(let a=1;a<c.length;a++){let b=c[a].trim(),d=b.indexOf("="),e=(d>=0?b.slice(0,d):b).trim().toLowerCase(),f=d>=0?b.slice(d+1).trim():"";if("domain"===e&&f)h.domain=f.replace(/^\./,"");else if("path"===e&&f)h.path=f;else if("expires"===e)if(/expired/i.test(f))i=!0;else{let a=Date.parse(f);!Number.isNaN(a)&&a<=Date.now()&&(i=!0)}else"max-age"===e&&0>=Number(f)&&(i=!0)}return{cookie:h,expired:i}}(b,o);if(!c)continue;let d=(m=c.cookie,`${m.name}|${m.domain}|${m.path}`);c.expired||!c.cookie.value?a.jar.delete(d):a.jar.set(d,c.cookie)}let d=k.headers.get("location");if(k.status>=300&&k.status<400&&d){let a=new URL(d,j);if(a.hostname===aX){j=a.toString();continue}if(/mimo-server-(cn|sgp)\.xiaomimimo\.com/.test(a.hostname)){let b=a5(a.toString(),"toProxy",c);return new Response(null,{status:k.status,headers:{Location:b,"Cache-Control":"no-store"}})}return new Response(null,{status:k.status,headers:{Location:d}})}break}return function(a,b,c="",d=""){let e=new Headers;for(let b of["content-type","cache-control","etag","last-modified","date"]){let c=a.headers.get(b);c&&e.set(b,c)}e.delete("x-frame-options"),e.delete("content-security-policy"),e.delete("content-security-policy-report-only"),e.set("Cache-Control","no-store");let f=a.headers.get("content-type")||"";return/text\/|javascript|json/.test(f)?a.text().then(g=>{let h=/json/.test(f)?g.replaceAll("\\/","/"):g;if(/^\/(pass|sts)/.test(c)||a.status>=400){let b=h.match(/"code"\s*:\s*(-?\d+)/);(b&&"0"!==b[1]||a.status>=400)&&console.log(`${new Date().toISOString().slice(11,23)} [mimo-login] upstream ${c} http=${a.status} code=${b?b[1]:"?"} | url=${d.slice(0,180)} | ${h.replace(/\s+/g," ").slice(0,160)}`)}return new Response(a5(h,"toProxy",b),{status:a.status,headers:e})}):new Response(a.body,{status:a.status,headers:e})}(k,c,d.pathname,j)}async function be(a,b,c){let d,e,f;return(f=`sts-nav url=${b.slice(0,160)} origin=${c} | ${d=a3(a),e=[...a.jar.keys()].map(a=>a.split("|")[0]).join(","),`passToken=${d?"Y":"N"} jar=[${e.slice(0,160)}]`}`,console.log(`${new Date().toISOString().slice(11,23)} [mimo-login][takeover] ${f}`),a3(a))?(a.status="done",bf("登录成功 ✅",["账号会话已捕获,可以关闭此窗口。","回到 9router 弹窗继续。"],!0)):bf("登录未完成",["未检测到有效会话,请重试。"])}function bf(a,b,c=!1){return new Response(`<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><title>${a}</title>
|
|
72
72
|
<style>body{font-family:system-ui,sans-serif;display:flex;align-items:center;justify-content:center;height:100vh;margin:0;background:#111;color:#eee}
|
|
73
73
|
.card{padding:2rem 2.5rem;border-radius:12px;background:#1b1b1f;text-align:center;max-width:420px}
|
|
74
74
|
h1{font-size:1.1rem;margin:.2rem 0 .6rem}p{opacity:.8;font-size:.9rem;line-height:1.6}</style></head>
|