@jheavenknows/bluerouter 5.3.55 → 5.3.56
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 +12 -12
- package/app/.next-cli-build/build-manifest.json +2 -2
- package/app/.next-cli-build/prerender-manifest.json +0 -28
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
- 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 +2 -2
- 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/model-profiles/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/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/cluster/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/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/local-ai-report/page.js +2 -2
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
- 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 +2 -2
- 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/personalcloudprovider/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/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/prompt-logs/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
- 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/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/resource-monitor/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/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 +2 -2
- 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 +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js +1 -18
- package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js +14 -31
- package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
- 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 +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 +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 +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/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/auth/view-mode/route.js +1 -1
- package/app/.next-cli-build/server/app/api/auth/view-mode/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/[asset]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/branding/upload/route.js +1 -1
- package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
- 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/autostart/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +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.nft.json +1 -1
- 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/codex-settings/route.js.nft.json +1 -1
- 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.nft.json +1 -1
- 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/deepseek-tui-settings/route.js.nft.json +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/hermes-settings/route.js.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/config/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js +2 -2
- package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/sync/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/cluster/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/[id]/route.js +2 -2
- 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/route.js +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/dashboard/ai-power-index/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/combos/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js +2 -2
- package/app/.next-cli-build/server/app/api/dashboard/token-saver/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]/caveman-test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/[id]/route.js +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 +2 -2
- 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 +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 +2 -2
- 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 +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 +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js +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 +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/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 +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/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 +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/device-code/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +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/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/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/personal-cloud-providers/[id]/api-key-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js +1 -1
- package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js +2 -2
- package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js +1 -1
- package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/pricing/route.js +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-health/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-health/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/openai-compatible/manage/route.js +1 -1
- package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/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]/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.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/proxy-pools/[id]/route.js +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 +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 +2 -2
- 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 +2 -2
- 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/route.js +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 +2 -2
- 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/resource-monitor/[id]/route.js +3 -3
- package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js +2 -2
- package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js +2 -2
- package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/route.js +3 -3
- package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js +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 +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 +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 +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 +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 +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 +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 +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/tunnel/tailscale-login/route.js +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/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 +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 +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/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 +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 +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 +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 +2 -2
- 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.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 +1 -1
- 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/[kind]/route.js +1 -1
- package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +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/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/restart/route.js.nft.json +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 +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
- 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/model-profiles.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.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 +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- 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 +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
- 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 +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- 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 +6 -6
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- 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 +6 -6
- 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 +7 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
- 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 +7 -7
- 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 +12 -12
- package/app/.next-cli-build/server/chunks/{7250.js → 1002.js} +1 -1
- package/app/.next-cli-build/server/chunks/2430.js +3 -3
- package/app/.next-cli-build/server/chunks/2507.js +1 -0
- package/app/.next-cli-build/server/chunks/2512.js +1 -0
- package/app/.next-cli-build/server/chunks/2944.js +1 -0
- package/app/.next-cli-build/server/chunks/3609.js +3 -0
- package/app/.next-cli-build/server/chunks/3738.js +1 -0
- package/app/.next-cli-build/server/chunks/3767.js +18 -0
- package/app/.next-cli-build/server/chunks/3958.js +14 -14
- package/app/.next-cli-build/server/chunks/{7638.js → 402.js} +8 -8
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4696.js +1 -1
- package/app/.next-cli-build/server/chunks/{1350.js → 4746.js} +2 -2
- package/app/.next-cli-build/server/chunks/5206.js +1 -0
- package/app/.next-cli-build/server/chunks/5424.js +1 -0
- package/app/.next-cli-build/server/chunks/5915.js +1 -0
- package/app/.next-cli-build/server/chunks/595.js +1 -1
- package/app/.next-cli-build/server/chunks/6053.js +1 -1
- package/app/.next-cli-build/server/chunks/{1900.js → 6064.js} +1 -1
- package/app/.next-cli-build/server/chunks/607.js +9 -0
- package/app/.next-cli-build/server/chunks/6328.js +1 -1
- package/app/.next-cli-build/server/chunks/6811.js +1 -1
- package/app/.next-cli-build/server/chunks/{7700.js → 6936.js} +4 -4
- package/app/.next-cli-build/server/chunks/6992.js +1 -1
- package/app/.next-cli-build/server/chunks/7639.js +1 -1
- package/app/.next-cli-build/server/chunks/7812.js +1 -1
- package/app/.next-cli-build/server/chunks/8099.js +1 -0
- package/app/.next-cli-build/server/chunks/8255.js +1 -1
- package/app/.next-cli-build/server/chunks/8316.js +1 -1
- package/app/.next-cli-build/server/chunks/8347.js +1 -0
- package/app/.next-cli-build/server/instrumentation.js +1 -1
- package/app/.next-cli-build/server/middleware-build-manifest.js +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/prefetch-hints.json +0 -24
- package/app/.next-cli-build/static/chunks/{5263-b67e8f4e90def189.js → 5263-880816cfad5dc39b.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-6ed8392f835a28e2.js +1 -0
- package/app/.next-cli-build/static/css/b14ac663d252f431.css +1 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.49-to-5.3.50-5.3.50-20260822-195035 → upgrade-5.3.53-to-5.3.54-5.3.54-20260822-220829}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
- package/app/package.json +1 -1
- package/package.json +1 -1
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.html +0 -1
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.meta +0 -36
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.rsc +0 -26
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/!KGRhc2hib2FyZCk/dashboard/audit-proxy/__PAGE__.segment.rsc +0 -33
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_full.segment.rsc +0 -26
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_tree.segment.rsc +0 -4
- package/app/.next-cli-build/server/chunks/1220.js +0 -3
- package/app/.next-cli-build/server/chunks/1876.js +0 -1
- package/app/.next-cli-build/server/chunks/2999.js +0 -1
- package/app/.next-cli-build/server/chunks/4459.js +0 -9
- package/app/.next-cli-build/server/chunks/4755.js +0 -1
- package/app/.next-cli-build/server/chunks/5623.js +0 -1
- package/app/.next-cli-build/server/chunks/7895.js +0 -1
- package/app/.next-cli-build/server/chunks/8141.js +0 -1
- package/app/.next-cli-build/server/chunks/9413.js +0 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-1668bdee838e50b6.js +0 -1
- package/app/.next-cli-build/static/css/1a3f62f10f5e4a32.css +0 -1
- /package/app/.next-cli-build/static/{dLYAsA1TrvO8gjZu0jVds → mhAZYh2CjtLe7IjwW4JJm}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{dLYAsA1TrvO8gjZu0jVds → mhAZYh2CjtLe7IjwW4JJm}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=7895,exports.ids=[7895],exports.modules={11893:(a,b,c)=>{"use strict";c.d(b,{Fg:()=>D,Gc:()=>A,OF:()=>y,OI:()=>s,ZL:()=>B,h6:()=>E,kb:()=>C});let d={maxInFlightPerTarget:Number(process.env.PROVIDER_HEALTH_MAX_IN_FLIGHT||2),failureThreshold:Number(process.env.PROVIDER_HEALTH_FAILURE_THRESHOLD||2),recoverySuccessThreshold:Number(process.env.PROVIDER_HEALTH_RECOVERY_SUCCESSES||2),degradedLatencyMs:Number(process.env.PROVIDER_HEALTH_DEGRADED_LATENCY_MS||15e3),baseCooldownMs:Number(process.env.PROVIDER_HEALTH_BASE_COOLDOWN_MS||3e4),maxCooldownMs:Number(process.env.PROVIDER_HEALTH_MAX_COOLDOWN_MS||3e5)},e=new Map,f=new Map,g=0;function h(){return Date.now()}function i(a){return String(a||"").trim()}function j(a,b){let c=Number(a);return Number.isFinite(c)&&c>0?c:b}function k(a){return"string"==typeof a?a:a&&"object"==typeof a&&(a.model||a.value||a.id)||""}function l(a){return a&&"object"==typeof a?i(a.connectionId||a.connection_id||a.accountId):""}function m(a){return"string"==typeof a?a:a&&"object"==typeof a?i(a.label||a.displayName||a.name||k(a)):""}function n(a){let b=a?.tags||a?.labels||a?.routingTags||[];return Array.isArray(b)?b.map(a=>i(a)).filter(Boolean):"string"==typeof b?b.split(/[\n,;\s]+/).map(a=>i(a)).filter(Boolean):b&&"object"==typeof b?Object.entries(b).filter(([,a])=>!1!==a&&null!=a).map(([a,b])=>!0===b?i(a):`${i(a)}:${i(b)}`).filter(Boolean):[]}function o(a){let b=k(a),c=l(a);return b?c?`${c}::${b}`:b:""}function p(a={}){return i(a.endpoint||a.baseUrl||a.baseURL||a.base_url||a.providerUrl||a.provider_url||a.url)}function q(a={}){let b=o(a),c=h();return{key:b,state:"available",circuit:"closed",mode:"passive-runtime",connectionId:l(a),provider:i(a.provider),providerLabel:i(a.providerLabel||a.accountName||a.account_name||a.label),label:m(a),model:k(a),endpoint:p(a),tags:n(a),lastCheckedAt:0,lastRequestAt:0,lastOkAt:0,lastFailAt:0,latencyMs:0,avgLatencyMs:0,consecutiveFailures:0,consecutiveSuccesses:0,failures:0,successes:0,inFlight:0,halfOpenInFlight:0,cooldownUntil:0,cooldownMs:d.baseCooldownMs,modelAvailable:!0,lastError:"",updatedAt:c}}function r(a){let b=o(a);if(!b)return null;g||(g=h());let c=function(a,b={}){let c={...a||q(b)};return c.connectionId=c.connectionId||l(b),c.provider=i(b.provider)||c.provider,c.providerLabel=i(b.providerLabel||b.accountName||b.account_name||b.label)||c.providerLabel,c.label=m(b)||c.label,c.model=k(b)||c.model,c.endpoint=p(b)||c.endpoint,c.tags=n(b).length?n(b):c.tags||[],c.mode="passive-runtime",c.updatedAt=h(),c}(e.get(b),a);return e.set(b,c),f.set(b,{...f.get(b)||{},...a,key:b}),c}function s(a=[]){for(let b of a||[])r(b)}function t(){let a=h();for(let b of e.values())"open"===b.circuit&&b.cooldownUntil&&b.cooldownUntil<=a&&(b.circuit="half_open",b.halfOpenInFlight=0,b.updatedAt=a,e.set(b.key,b))}function u(a){return a?.circuit==="open"&&a.cooldownUntil>h()}function v(a){return a?.circuit==="half_open"&&(a.halfOpenInFlight||0)>0}function w(a){let b=Number(a?.maxInFlight||a?.maxInFlightPerTarget);return Number.isFinite(b)&&b>0?b:j(d.maxInFlightPerTarget,2)}function x(a){let b=o(a),c=b&&e.get(b)||q(a),d=w(a);if(u(c))return 9e3;if(v(c))return 8e3;if((c.inFlight||0)>=d)return 7e3;let f=500;return"half_open"===c.circuit&&(f-=50),"healthy"===c.state&&(f-=300),("unknown"===c.state||"available"===c.state)&&(f-=20),"degraded"===c.state&&(f+=300),"overloaded"===c.state&&(f+=700),("down"===c.state||"model_unavailable"===c.state)&&(f+=1200),f+=Math.min(c.avgLatencyMs||c.latencyMs||0,3e4)/100+150*(c.inFlight||0)+400*(c.consecutiveFailures||0)}function y(a=[],b="",c={}){let d=function(a,b={}){let c=b?.[a]||b?.[String(a||"").split("/").pop()]||[];return Array.isArray(c)?c.map(a=>i(a)).filter(Boolean):"string"==typeof c?c.split(/[\n,;]+/).map(a=>i(a)).filter(Boolean):[]}(b,c);if(!d.length)return[...a||[]];let e=d.map(a=>a.toLowerCase());return(a||[]).filter(a=>{let b=n(a).map(a=>a.toLowerCase());return e.every(a=>b.includes(a))})}function z(a=[]){let b=[],c=[];for(let d of a){let a=e.get(o(d))||null,f=w(d);a&&(u(a)||v(a)||(a.inFlight||0)>=f||"model_unavailable"===a.state)?c.push(d):b.push(d)}return{usable:b,skipped:c}}function A(a=[],b={}){t();let c=[...a||[]];if(b.modelTagRules){let a=y(c,b.model,b.modelTagRules);a.length&&(c=a)}if(c.length<=1)return c;let{usable:d,skipped:e}=z(c);if(b.preserveOrder)return d.length?b.includeSkippedAtEnd?[...d,...e]:d:b.includeSkippedAtEnd?e:[];let f=d.sort((a,b)=>x(a)-x(b)),g=e.sort((a,b)=>x(a)-x(b));return f.length?b.includeSkippedAtEnd?[...f,...g]:f:b.includeSkippedAtEnd?g:[]}function B(a=[],b={}){t();let c=[...a||[]];if(b.modelTagRules){let a=y(c,b.model,b.modelTagRules);a.length&&(c=a)}if(c.length<=1)return c;let{usable:d,skipped:e}=z(c),f=d.sort((a,b)=>x(a)-x(b)),g=e.sort((a,b)=>x(a)-x(b));if(!f.length)return g;if(f.length<=2)return[...f,...g];let h=Math.floor(Math.random()*f.length),i=Math.floor(Math.random()*(f.length-1));return i>=h&&(i+=1),[...[f[h],f[i]].sort((a,b)=>x(a)-x(b)),...f.filter((a,b)=>b!==h&&b!==i),...g]}function C(a){t();let b=r(a);if(!b)return{skipped:!1,end:()=>{}};let c=w(a);if(u(b))return{skipped:!0,reason:"circuit_open",state:b};if(v(b))return{skipped:!0,reason:"half_open_probe_busy",state:b};if((b.inFlight||0)>=c)return{skipped:!0,reason:"in_flight_full",state:b};b.inFlight=(b.inFlight||0)+1,b.lastRequestAt=h(),"half_open"===b.circuit&&(b.halfOpenInFlight=(b.halfOpenInFlight||0)+1),b.updatedAt=h(),e.set(b.key,b);let d=!1;return{skipped:!1,state:b,end:()=>{if(d)return;d=!0;let a=e.get(b.key);a&&(a.inFlight=Math.max(0,(a.inFlight||0)-1),"half_open"===a.circuit&&(a.halfOpenInFlight=Math.max(0,(a.halfOpenInFlight||0)-1)),a.updatedAt=h(),e.set(a.key,a))}}}function D(a,b=null){let c;if(function(a={}){let b=Number(a?.status||a?.statusCode||0);return!!(a?.healthFailed||a?.forceFailure||a?.error||a?.exception||a?.timeout||b>=400)}(a))return E(a,function(a={}){let b=Number(a?.status||a?.statusCode||0);return a?.error?a.error:a?.exception?a.exception:a?.timeout?{message:"timeout",code:"TIMEOUT"}:b>=400?{status:b,message:a?.statusText||"request_failed"}:{message:"request_failed"}}(a));let f=r(a);if(!f)return null;let g=h();Number.isFinite(c=Number(b))&&!(c<0)&&(f.latencyMs=c,f.avgLatencyMs=f.avgLatencyMs?Math.round(.8*f.avgLatencyMs+.2*c):c),f.successes=(f.successes||0)+1,f.consecutiveSuccesses=(f.consecutiveSuccesses||0)+1,f.consecutiveFailures=0,f.lastOkAt=g,f.lastRequestAt=g,f.lastError="",f.modelAvailable=!0,f.updatedAt=g;let i=j(d.recoverySuccessThreshold,2);return"open"===f.circuit||"half_open"===f.circuit?f.consecutiveSuccesses>=i?(f.circuit="closed",f.state="healthy",f.cooldownUntil=0,f.cooldownMs=d.baseCooldownMs):(f.circuit="half_open",f.state="recovering",f.cooldownUntil=0):(f.circuit="closed",f.state="healthy",f.cooldownUntil=0),e.set(f.key,f),f}function E(a,b){let c,f,g=r(a);if(!g)return null;let i=h(),k=(c=String(b?.message||b||"").toLowerCase(),[400,406,409,413,415,422].includes(f=Number(b?.status||b?.statusCode||b))?{ignored:!0,error:c||String(f)}:404===f||c.includes("model_not_found")||c.includes("model not found")?{state:"model_unavailable",cooldownMs:d.maxCooldownMs,error:"model_not_found"}:408===f||429===f||502===f||503===f||504===f||c.includes("timeout")||c.includes("busy")||c.includes("overload")||c.includes("queue")?{state:"overloaded",cooldownMs:d.baseCooldownMs,error:c||String(f||"overloaded")}:c.includes("econnrefused")||c.includes("enotfound")||c.includes("ehostunreach")||c.includes("fetch failed")||c.includes("network")?{state:"down",cooldownMs:d.baseCooldownMs,error:c||"network_error"}:f>=500?{state:"down",cooldownMs:d.baseCooldownMs,error:c||String(f)}:{state:"degraded",cooldownMs:d.baseCooldownMs,error:c||String(f||"provider_error")});if(k.ignored)return g;g.failures=(g.failures||0)+1,g.consecutiveFailures=(g.consecutiveFailures||0)+1,g.consecutiveSuccesses=0,g.lastFailAt=i,g.lastRequestAt=i,g.lastError=k.error||String(b?.message||b||"request_failed"),g.updatedAt=i,g.modelAvailable="model_unavailable"!==k.state;let l=j(d.failureThreshold,2);return g.consecutiveFailures>=l?(g.state=k.state,g.circuit="open",g.cooldownMs=Math.min(Math.max(k.cooldownMs||d.baseCooldownMs,g.cooldownMs||d.baseCooldownMs),d.maxCooldownMs),g.cooldownUntil=i+g.cooldownMs):(g.state="degraded",g.circuit="closed",g.cooldownUntil=0),e.set(g.key,g),g}},35024:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>i,Yg:()=>k,xq:()=>h});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},g="https://api.kimi.com/coding/v1/messages",h={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...f},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex_cli_rs","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},"vercel-ai-gateway":{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:g,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alims-intl":{baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:g,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",responsesUrl:"https://api.x.ai/v1/responses",format:"openai",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"},"xiaomi-tokenplan":{baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1/chat/completions",format:"openai"},agentrouter:{baseUrl:"https://agentrouter.org/v1/messages",format:"claude",headers:{...f}},aimlapi:{baseUrl:"https://api.aimlapi.com/v1/chat/completions",format:"openai"},novita:{baseUrl:"https://api.novita.ai/v3/openai/chat/completions",format:"openai"},modal:{baseUrl:"https://api.modal.com/v1/chat/completions",format:"openai"},reka:{baseUrl:"https://api.reka.ai/v1/chat/completions",format:"openai"},nlpcloud:{baseUrl:"https://api.nlpcloud.io/v1/gpu/chatbot",format:"openai"},bazaarlink:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",format:"openai"},completions:{baseUrl:"https://completions.me/api/v1/chat/completions",format:"openai"},enally:{baseUrl:"https://ai.enally.in/v1/chat/completions",format:"openai",authHeader:"x-api-key"},freetheai:{baseUrl:"https://api.freetheai.xyz/v1/chat/completions",format:"openai"},llm7:{baseUrl:"https://api.llm7.io/v1/chat/completions",format:"openai"},lepton:{baseUrl:"https://api.lepton.ai/api/v1/chat/completions",format:"openai"},kluster:{baseUrl:"https://api.kluster.ai/v1/chat/completions",format:"openai"},ai21:{baseUrl:"https://api.ai21.com/studio/v1/chat/completions",format:"openai"},"inference-net":{baseUrl:"https://api.inference.net/v1/chat/completions",format:"openai"},predibase:{baseUrl:"https://serving.app.predibase.com/v1/chat/completions",format:"openai"},bytez:{baseUrl:"https://api.bytez.com/models/v2",format:"openai"},morph:{baseUrl:"https://api.morphllm.com/v1/chat/completions",format:"openai"},longcat:{baseUrl:"https://api.longcat.chat/openai/v1/chat/completions",format:"openai"},puter:{baseUrl:"https://api.puter.com/puterai/openai/v1/chat/completions",format:"openai"},uncloseai:{baseUrl:"https://hermes.ai.unturf.com/v1/chat/completions",format:"openai",noAuth:!0},scaleway:{baseUrl:"https://api.scaleway.ai/v1/chat/completions",format:"openai"},deepinfra:{baseUrl:"https://api.deepinfra.com/v1/openai/chat/completions",format:"openai"},sambanova:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",format:"openai"},nscale:{baseUrl:"https://inference.api.nscale.com/v1/chat/completions",format:"openai"},baseten:{baseUrl:"https://inference.baseten.co/v1/chat/completions",format:"openai"},publicai:{baseUrl:"https://api.publicai.co/v1/chat/completions",format:"openai"},"nous-research":{baseUrl:"https://inference-api.nousresearch.com/v1/chat/completions",format:"openai"},glhf:{baseUrl:"https://glhf.chat/api/openai/v1/chat/completions",format:"openai"},blackbox:{baseUrl:"https://api.blackbox.ai/chat/completions",format:"openai"}};function i(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let j={sgp:"https://token-plan-sgp.xiaomimimo.com/v1",cn:"https://token-plan-cn.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"};function k(a){return j[a?.providerSpecificData?.region]||j.sgp}},75137:(a,b,c)=>{"use strict";function d(a={},b){let c=String(b||"").toLowerCase();for(let[b,d]of Object.entries(a||{}))if(String(b).toLowerCase()===c)return String((Array.isArray(d)?d[0]||"":d||"")||"");return""}function e({body:a,headers:b={},scope:c="global",fallbackToClientIp:f=!0}){if("client_ip"!==c&&"client_session"!==c)return null;let g=function(a={}){return String(d(a,"x-9r-client-ip")||d(a,"x-forwarded-for")||d(a,"x-real-ip")||d(a,"cf-connecting-ip")||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1")}(b),h=function(a={}){return d(a,"x-9r-source-tool")||d(a,"originator")||d(a,"copilot-integration-id")||""}(b),i="client_session"===c?String(function(a,b={}){return d(b,"x-client-session-id")||d(b,"session_id")||d(b,"session-id")||d(b,"x-session-id")||d(b,"x-interaction-id")||d(b,"conversation_id")||d(b,"conversation-id")||d(b,"x-conversation-id")||a?.conversationId||a?.conversation_id||a?.sessionId||a?.session_id||a?.metadata?.conversationId||a?.metadata?.conversation_id||a?.metadata?.sessionId||a?.metadata?.session_id||a?.conversationState?.conversationId||a?.conversationState?.sessionId||a?.conversationState?.currentConversationId||""}(a,b)||""):"";return"client_session"===c&&i?{key:[h||"tool",g||"unknown-ip",i].join("::"),label:i,scope:c,sourceTool:h,clientIp:g,sessionId:i}:"client_session"===c&&!1===f?null:g?{key:[h||"tool",g].join("::"),label:g,scope:"client_ip",sourceTool:h,clientIp:g,sessionId:""}:null}c.d(b,{ek:()=>e})},78335:()=>{},80238:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Pt:()=>C,Tr:()=>D,c1:()=>A,kI:()=>E,vk:()=>B});var e=c(89718),f=c(57023),g=c(39326),h=c(12557),i=c(3662),j=c(75681),k=c(34778),l=c(75137),m=c(11893),n=c(7803),o=a([k]);k=(o.then?(await o)():o)[0];let F=Promise.resolve(),G=new Map,H=0,I={claude:"Claude Code",codex:"OpenAI Codex",antigravity:"Antigravity"};function p(a=""){return String(a||"").trim().toLowerCase()}function q(a={}){return a?.scope==="personal"||a?.visibility==="private"||!!a?.ownerUser}function r(a=""){return String(a||"").trim()}function s(a={}){return r(a.routeApiKeyId||a.data?.routeApiKeyId)}function t(a,b){let c=I[a]||a;return{personalAccountRequired:!0,lastErrorCode:403,lastError:`Personal ${c} account is required for ${b}. Please connect it in /dashboard/personalcloudprovider.`}}function u(a){return"client_ip"===a||"client_session"===a?a:"global"}async function v(a,b={}){a?.id&&"noauth"!==a.id&&await (0,e.updateProviderConnection)(a.id,{lastUsedAt:new Date().toISOString(),...b})}function w(a,b,c){return{id:a.id,connectionId:a.id,provider:b,providerLabel:a.displayName||a.name||a.email||b,label:a.displayName||a.name||a.email||a.id,model:c||"__all",endpoint:function(a={}){let b=a.providerSpecificData||{};return a.endpoint||a.baseUrl||a.baseURL||a.base_url||b.endpoint||b.baseUrl||b.baseURL||b.base_url||b.providerUrl||b.provider_url||b.url||""}(a),tags:function(a={}){let b=a.tags||a.labels||a.providerSpecificData?.tags||a.providerSpecificData?.labels||a.providerSpecificData?.routingTags||[];return Array.isArray(b)?b.filter(Boolean).map(String):"string"==typeof b?b.split(/[;,\s]+/).filter(Boolean):b&&"object"==typeof b?Object.entries(b).filter(([,a])=>!1!==a&&null!=a).map(([a,b])=>!0===b?a:`${a}:${b}`):[]}(a),providerSpecificData:a.providerSpecificData||{},maxInFlight:a.providerSpecificData?.maxInFlight||a.maxInFlight,_connection:a}}async function x(a,b){let c,d=(c=Number.parseInt(b,10),Number.isFinite(c)&&c>0?c:1),e=[...a].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],f=e?.consecutiveUseCount||0;if(e&&e.lastUsedAt&&f<d)return await v(e,{consecutiveUseCount:(e.consecutiveUseCount||0)+1}),e;let g=[...a].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0];return await v(g,{consecutiveUseCount:1}),g}async function y({providerId:a,availableConnections:b,stickyLimit:c,stickyScope:d,stickyTtlMinutes:e,stickyContext:f,stickyRebindOnFailure:g,stickyRebindFailureThreshold:h,ownerUser:i=""}){let j,k=u(d),l=function(a,b,c,d=""){let e=u(b);return"global"!==e&&c?.key?`${a}::${d||"system"}::${e}::${c.key}`:null}(a,k,f,i);if(!l)return x(b,c);let m=Date.now();if(!(m-H<6e4))for(let[a,b]of(H=m,G.entries()))(!b?.expiresAt||b.expiresAt<=m)&&G.delete(a);let o=Date.now(),p=6e4*(j=Number.parseInt(e,10),!Number.isFinite(j)||j<=0?120:Math.min(j,10080)),q=G.get(l);if(q&&q.expiresAt>o){let d,e=b.find(a=>a.id===q.connectionId);if(e)return G.set(l,{...q,failureCount:0,lastUsedAt:o,expiresAt:o+p}),await v(e),e;let f=await x(b,c),i=(q.failureCount||0)+1,j=(d=Number.parseInt(h,10),Number.isFinite(d)&&d>0?Math.min(d,50):3);return!1!==g&&i>=j&&f?.id?(G.set(l,{...q,connectionId:f.id,reboundAt:o,reboundReason:"assigned-account-unavailable",failureCount:0,lastUsedAt:o,expiresAt:o+p}),n.warn("AUTH",`${a} | sticky account unavailable ${i} time(s), rebound sticky session to ${f.id?.slice?.(0,8)||f.id}`)):(G.set(l,{...q,failureCount:i,lastFallbackConnectionId:f?.id||null,lastFallbackAt:o,lastUsedAt:o,expiresAt:o+p}),n.warn("AUTH",`${a} | sticky account unavailable, temporary fallback ${i}/${j}`)),f}q&&G.delete(l);let r=await x(b,c);return G.set(l,{connectionId:r.id,stickyScope:k,stickyKey:f.key,sessionId:f.sessionId||null,clientIp:f.clientIp||null,sourceTool:f.sourceTool||null,failureCount:0,createdAt:o,lastUsedAt:o,expiresAt:o+p}),r}async function z({providerId:a,availableConnections:b,model:c,strategy:d,providerOverride:e}){let f=b.map(b=>w(b,a,c));(0,m.OI)(f);let g=e.modelTagRules||e.modelTags||e.tagRules||{},h=e.requiredTags||e.tags||[];if(f=(0,m.OF)(f,c,g),h?.length){let a=h.map(a=>String(a).toLowerCase());f=f.filter(b=>b.tags.map(a=>String(a).toLowerCase()).every(a=>!0)&&a.every(a=>b.tags.map(a=>String(a).toLowerCase()).includes(a)))}f.length||(f=b.map(b=>w(b,a,c)));let i=("p2c"===d||"power-of-two"===d||"power_of_two"===d?(0,m.ZL)(f,{model:c,modelTagRules:g,includeSkippedAtEnd:!0}):(0,m.Gc)(f,{model:c,modelTagRules:g,includeSkippedAtEnd:!0}))[0],j=b.find(a=>a.id===i?.connectionId)||b[0];return await v(j,{consecutiveUseCount:1}),j}async function A(a,b=null,c=null,d={}){let i,m=b instanceof Set?b:b?new Set([b]):new Set,o=d?.preferredConnectionId||null,u=F;F=new Promise(a=>{i=a});try{var v;let b,i;await u;let w=(0,j.rs)(a);if(j.IS[w]?.noAuth){let a=((await (0,e.mt)()).providerStrategies||{})[w]||{},b=await (0,g.B)({proxyPoolId:a.proxyPoolId||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl,connectionNoProxy:b.connectionNoProxy,connectionProxyPoolId:b.proxyPoolId||null,vercelRelayUrl:b.vercelRelayUrl||""}}}let x=p(d?.ownerUser||""),A=r(d?.apiKeyId||""),B=Object.prototype.hasOwnProperty.call(I,w),C=x&&B,D=d?.allowSystemFallback===!0,E=o?await (0,e.Mc)(o):null,F=E&&function(a={},b=""){return(0,j.rs)(a?.provider)===b}(E,w),G=F&&q(E),H=F&&function(a={}){return!q(a)}(E),J=x?await (0,e.getProviderConnections)({provider:w,scope:"personal",ownerUser:x}):[],K=J.filter(a=>!1!==a.isActive),L=[];if(H?L=!1===E.isActive?[]:[E]:G||(L=await (0,e.getProviderConnections)({provider:w,isActive:!0,scope:"system"})),F)if(G){let c=p(E.ownerUser);if(!x||!c||c!==x)return n.warn("AUTH",`${a} | pinned personal connection ${o} is not owned by ${x||"(missing api key owner)"}`),t(w,x||"(missing api key owner)");b=!1===E.isActive?[]:[E]}else b=L;else if(B)if(K.length>0)b=K;else{if(!D)return n.warn("AUTH",`${a} | no personal OAuth account for ${x||"(missing api key owner)"}; system fallback disabled`),t(w,x||"(missing api key owner)");b=L}else b=L;let M=new Set;if(b=(b||[]).filter(a=>!(!a?.id||M.has(a.id))&&(M.add(a.id),!0)),B&&0===b.length&&0===L.length&&0===K.length)return n.warn("AUTH",`${a} | no personal or system OAuth account available for ${x||"(missing api key owner)"}`),t(w,x||"(missing api key owner)");let N=b.length;if(v=b=b.filter(a=>{let b;return!(b=s(a))||!!A&&b===A}),b=A&&Array.isArray(v)&&!(v.length<2)&&v.some(a=>s(a)===A)?[...v].sort((a,b)=>{let c=+(s(a)!==A),d=+(s(b)!==A);return c!==d?c-d:(a.priority||999)-(b.priority||999)}):v,N!==b.length&&n.debug("AUTH",`${a} | API key route binding filter: ${N} -> ${b.length}, apiKeyId=${A||"none"}`),n.debug("AUTH",`${a} | total connections: ${b.length} (${K.length}/${J.length} personal, ${L.length} system, pinned=${o||"none"}), excludeIds: ${m.size>0?[...m].join(","):"none"}, model: ${c||"any"}`),0===b.length)return n.warn("AUTH",`No credentials for ${a}`),null;let O=await (0,e.mt)(),P=b.filter(a=>!(m.has(a.id)||(0,h.Bl)(a,c))),Q=(0,f.VA)(P,{settings:O,providerId:w,model:c}),R=Q.available,S=Q.blocked;if(n.debug("AUTH",`${a} | available: ${R.length}/${b.length}`),b.forEach(a=>{let b=m.has(a.id),d=(0,h.Bl)(a,c);if(b||d){let e=(0,h.kJ)(a);n.debug("AUTH",` -> ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===R.length){if(void 0!==P&&void 0!==S&&P.length>0&&S.length>0){let a=(0,f.JZ)(w,P,S);return n.warn("AUTH",a.lastError),a}let d=b.filter(a=>(0,h.Bl)(a,c)),e=d.map(a=>(0,h.kJ)(a)).filter(Boolean).sort()[0]||null;if(e){let f=d[0];return n.warn("AUTH",`${a} | all ${b.length} accounts locked for ${c||"all"} (${(0,h.Qo)(e)}) | lastError=${f?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:e,retryAfterHuman:(0,h.Qo)(e),lastError:f?.lastError||null,lastErrorCode:f?.errorCode||null}}return n.warn("AUTH",`${a} | all ${b.length} accounts unavailable`),null}let T=(O.providerStrategies||{})[w]||{},U=C&&b.some(q)?(0,k.Z$)(O,x,w):null,V=U?{...T,...U}:T,W=V.fallbackStrategy||V.strategy||O.fallbackStrategy||"fill-first";if(U&&n.debug("AUTH",`${a} | personal routing override for ${x}: strategy=${W}`),o&&(i=R.find(a=>a.id===o))&&n.info("AUTH",`${a} | pinned to ${i.id?.slice(0,8)} (${i.name||i.email||"unnamed"})`),i);else if(["least-latency","least_latency","p2c","power-of-two","power_of_two"].includes(W))i=await z({providerId:w,availableConnections:R,model:c,strategy:W,providerOverride:V}),n.info("AUTH",`${a} | ${W} selected ${i.id?.slice(0,8)} (${i.name||i.email||"unnamed"})`);else if("round-robin"===W){let a=V.stickyRoundRobinLimit||O.stickyRoundRobinLimit||3,b=V.stickyScope||O.providerRoundRobinStickyScope||"global",c=V.stickyTtlMinutes||O.providerRoundRobinStickyTtlMinutes||120,e=void 0!==V.stickyFallbackToClientIp?V.stickyFallbackToClientIp:!1!==O.providerStickyFallbackToClientIp,f=void 0!==V.stickyRebindOnFailure?V.stickyRebindOnFailure:!1!==O.providerStickyRebindOnFailure,g=V.stickyRebindFailureThreshold||O.providerStickyRebindFailureThreshold||3,h=(0,l.ek)({body:d?.body||null,headers:d?.headers||{},scope:b,fallbackToClientIp:e});i=await y({providerId:w,availableConnections:R,stickyLimit:a,stickyScope:b,stickyTtlMinutes:c,stickyContext:h,stickyRebindOnFailure:f,stickyRebindFailureThreshold:g,ownerUser:x})}else i=R[0];let X=await (0,g.B)(i.providerSpecificData||{});return{authType:i.authType,apiKey:i.apiKey,accessToken:i.accessToken,refreshToken:i.refreshToken,projectId:i.projectId,connectionName:i.displayName||i.name||i.email||i.id,copilotToken:i.providerSpecificData?.copilotToken,providerSpecificData:{...i.providerSpecificData||{},connectionProxyEnabled:X.connectionProxyEnabled,connectionProxyUrl:X.connectionProxyUrl,connectionNoProxy:X.connectionNoProxy,connectionProxyPoolId:X.proxyPoolId||null,vercelRelayUrl:X.vercelRelayUrl||""},connectionId:i.id,rtkEnabled:i.rtkEnabled,testStatus:i.testStatus,lastError:i.lastError,_connection:i}}finally{i&&i()}}async function B(a,b,c,d=null,f=null,g=null){let j,k,l;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let m=(await (0,e.getProviderConnections)({provider:d})).find(b=>b.id===a),o=m?.backoffLevel||0;if(g&&g>Date.now()?(j=!0,k=Math.min(g-Date.now(),i.fh),l=0):{shouldFallback:j,cooldownMs:k,newBackoffLevel:l}=(0,h.hk)(b,c,o),!j)return{shouldFallback:!1,cooldownMs:0};let p="string"==typeof c?c.slice(0,100):"Provider error",q=(0,h.S5)(f,k);await (0,e.updateProviderConnection)(a,{...q,testStatus:"unavailable",lastError:p,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:l??o});let r=Object.keys(q)[0],s=m?.displayName||m?.name||m?.email||a.slice(0,8);return n.warn("AUTH",`${s} locked ${r} for ${Math.round(k/1e3)}s [${b}]`),d&&b&&p&&console.error(`X ${d} [${b}]: ${p}`),{shouldFallback:!0,cooldownMs:k}}async function C(a,b,c=null){if(!a||"noauth"===a)return;let d=b._connection||b,f=Date.now(),g=Object.keys(d).filter(a=>a.startsWith("modelLock_"));if(!d.testStatus&&!d.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=d[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==d.testStatus&&!d.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=d[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,e.updateProviderConnection)(a,j)}function D(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function E(a){return!!a&&await (0,e.ek)(a)}d()}catch(a){d(a)}})},96487:()=>{}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
exports.id=8141,exports.ids=[8141],exports.modules={78335:()=>{},92825:(a,b,c)=>{"use strict";c.d(b,{CO:()=>z,Qx:()=>C,cf:()=>D,ih:()=>B,sU:()=>E,uj:()=>A});var d=c(25060);let e="(|(sAMAccountName={{username}})(userPrincipalName={{username}})(mail={{username}}))",f=["dn","cn","displayName","mail","sAMAccountName","userPrincipalName","distinguishedName","memberOf"],g="1.2.840.113556.1.4.1941";function h(a){return String(a||"").trim()}function i(a){return Array.isArray(a)?a.map(a=>h(a)).filter(Boolean):String(a||"").split(/[,\n]/).map(a=>h(a)).filter(Boolean)}function j(a){return[...new Set(a.filter(Boolean))]}function k(a){return String(a||"").trim().toLowerCase()}function l(a){return String(a||"").replace(/[\\*()\u0000]/g,a=>{switch(a){case"\\":return"\\5c";case"*":return"\\2a";case"(":return"\\28";case")":return"\\29";case"\0":return"\\00";default:return a}})}function m(a={}){let b=h(a.ldapUserBaseDn||a.ldapBaseDn);return{enabled:!0===a.ldapEnabled,url:h(a.ldapUrl),bindDn:h(a.ldapBindDn),bindPassword:a.ldapBindPassword||"",baseDn:b,userBaseDn:b,userSearchFilter:h(a.ldapUserSearchFilter)||e,userNameAttribute:h(a.ldapUserNameAttribute)||"sAMAccountName",userDisplayAttribute:h(a.ldapUserDisplayAttribute)||"displayName",userEmailAttribute:h(a.ldapUserEmailAttribute)||"mail",allowedUsers:i(a.ldapAllowedUsers),allowAnyUser:!0===a.ldapAllowAnyUser,loginAllowedGroupDn:h(a.ldapLoginAllowedGroupDn),adminGroupDn:h(a.ldapAdminGroupDn),monitorAdminGroupDn:h(a.ldapMonitorAdminGroupDn),aiGatewaysMonitorsGroupDn:h(a.ldapAiGatewaysMonitorsGroupDn),nestedGroups:!1!==a.ldapNestedGroups,tlsRejectUnauthorized:function(a,b=!1){return null==a||""===a?b:!0===a||"true"===a}(a.ldapTlsRejectUnauthorized,!0),connectTimeoutMs:Number(a.ldapConnectTimeoutMs||8e3)}}function n(a,{requirePassword:b=!0}={}){if(!a.enabled)throw Error("LDAP login is disabled.");if(!a.url)throw Error("LDAP URL is required.");if(!a.userBaseDn)throw Error("LDAP User Base DN is required.");if(!a.bindDn)throw Error("LDAP Bind DN is required.");if(b&&!a.bindPassword)throw Error("LDAP Bind password is required.")}async function o(a,b){let c=new d.Kj({url:a.url,timeout:a.connectTimeoutMs,connectTimeout:a.connectTimeoutMs,tlsOptions:{rejectUnauthorized:!1!==a.tlsRejectUnauthorized}});try{return await c.bind(a.bindDn,a.bindPassword||""),await b(c)}finally{try{await c.unbind()}catch{}}}function p(a,b){let c=a?.[b];return Array.isArray(c)?c[0]||"":c||""}function q(a,b){let c=a?.[b];return Array.isArray(c)?c.map(String).filter(Boolean):c?[String(c)]:[]}function r(a,b){let c=b.userNameAttribute||"sAMAccountName",d=b.userDisplayAttribute||"displayName",e=b.userEmailAttribute||"mail",f=p(a,c)||p(a,"sAMAccountName")||p(a,"userPrincipalName")||p(a,"mail")||a.dn;return{dn:a.dn,username:f,displayName:p(a,d)||p(a,"displayName")||p(a,"cn")||f,email:p(a,e)||p(a,"mail")||p(a,"userPrincipalName")||"",userPrincipalName:p(a,"userPrincipalName")||"",sAMAccountName:p(a,"sAMAccountName")||"",memberOf:q(a,"memberOf")}}function s(a,b={}){let c=a.allowedUsers.map(k).filter(Boolean);return 0!==c.length&&(function(a={}){return[a.username,a.email,a.displayName,a.userPrincipalName,a.sAMAccountName,a.dn].map(k).filter(Boolean)})(b).some(a=>c.includes(a))}async function t(a,b,c){var d;let g,i,k=(d=b.userSearchFilter,g=h(d)||e,i=l(c),g.replaceAll("{{username}}",i).replaceAll("{username}",i));return(await a.search(b.userBaseDn,{scope:"sub",filter:k,sizeLimit:1,attributes:j([...f,b.userNameAttribute,b.userDisplayAttribute,b.userEmailAttribute])})).searchEntries[0]||null}async function u(a,b,c,d){if(!b.nestedGroups)return!1;try{let e=`(&(distinguishedName=${l(c)})(memberOf:${g}:=${l(d)}))`;return(await a.search(b.userBaseDn,{scope:"sub",filter:e,sizeLimit:1,attributes:["dn"]})).searchEntries.length>0}catch{return!1}}async function v(a,b){try{let c=(await a.search(b,{scope:"base",filter:"(objectClass=*)",sizeLimit:1,attributes:["member","uniqueMember"]})).searchEntries[0]||{};return j([...q(c,"member"),...q(c,"uniqueMember")])}catch{return[]}}async function w(a,b,c,d){let e=h(d);if(!e)return!1;let f=h(c?.dn);return!!f&&(!!(q(c,"memberOf").map(k).includes(k(e))||await u(a,b,f,e))||(await v(a,e)).map(k).includes(k(f)))}async function x(a,b,c,d){let e=b.userNameAttribute||"sAMAccountName",h=b.userDisplayAttribute||"displayName",i=b.userEmailAttribute||"mail",k=String(c||"").trim(),m=l(k||"*"),n=k?`(|(${e}=*${m}*)(${h}=*${m}*)(${i}=*${m}*)(userPrincipalName=*${m}*)(sAMAccountName=*${m}*))`:"(|(sAMAccountName=*)(userPrincipalName=*)(mail=*))",o=b.nestedGroups?`(memberOf:${g}:=${l(d)})`:`(memberOf=${l(d)})`,p=`(&(&(objectCategory=person)(objectClass=user)(!(objectClass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))${n}${o})`;return(await a.search(b.userBaseDn,{scope:"sub",filter:p,sizeLimit:100,attributes:j([...f,e,h,i])})).searchEntries.map(a=>r(a,b))}async function y(a,b,c,d){let e=await v(a,d),g=[];for(let d of e.slice(0,200))try{let e=(await a.search(d,{scope:"base",filter:"(objectClass=*)",sizeLimit:1,attributes:j([...f,b.userNameAttribute,b.userDisplayAttribute,b.userEmailAttribute])})).searchEntries[0];if(e?.dn){let a=r(e,b);(function(a,b){let c=k(b);return!c||[a.username,a.displayName,a.email,a.userPrincipalName,a.sAMAccountName,a.dn].map(k).some(a=>a.includes(c))})(a,c)&&g.push(a)}}catch{}return g}function z(a={}){let b=m(a);return!!(b.enabled&&b.url&&b.bindDn&&b.bindPassword&&b.userBaseDn)}function A(a={}){let b=m(a);return{ldapEnabled:b.enabled,ldapUrl:b.url,ldapBindDn:b.bindDn,ldapBaseDn:b.userBaseDn,ldapUserBaseDn:b.userBaseDn,ldapUserSearchFilter:b.userSearchFilter,ldapUserNameAttribute:b.userNameAttribute,ldapUserDisplayAttribute:b.userDisplayAttribute,ldapUserEmailAttribute:b.userEmailAttribute,ldapLoginAllowedGroupDn:b.loginAllowedGroupDn,ldapAdminGroupDn:b.adminGroupDn,ldapMonitorAdminGroupDn:b.monitorAdminGroupDn,ldapAiGatewaysMonitorsGroupDn:b.aiGatewaysMonitorsGroupDn,ldapNestedGroups:b.nestedGroups,ldapAllowedUsers:b.allowedUsers,ldapAllowAnyUser:b.allowAnyUser,ldapTlsRejectUnauthorized:b.tlsRejectUnauthorized,ldapConnectTimeoutMs:b.connectTimeoutMs,ldapHasBindPassword:!!a.ldapBindPassword,ldapConfigured:z(a)}}function B(a={}){let b={};for(let c of["ldapUrl","ldapBindDn","ldapBaseDn","ldapUserBaseDn","ldapUserSearchFilter","ldapUserNameAttribute","ldapUserDisplayAttribute","ldapUserEmailAttribute","ldapLoginAllowedGroupDn","ldapAdminGroupDn","ldapMonitorAdminGroupDn","ldapAiGatewaysMonitorsGroupDn"])Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=h(a[c]));if(Object.prototype.hasOwnProperty.call(b,"ldapUserBaseDn")&&(b.ldapBaseDn=b.ldapUserBaseDn),Object.prototype.hasOwnProperty.call(a,"ldapEnabled")&&(b.ldapEnabled=!0===a.ldapEnabled),Object.prototype.hasOwnProperty.call(a,"ldapBindPassword")){let c=String(a.ldapBindPassword||"");c&&(b.ldapBindPassword=c)}if(Object.prototype.hasOwnProperty.call(a,"ldapClearBindPassword")&&!0===a.ldapClearBindPassword&&(b.ldapBindPassword=""),Object.prototype.hasOwnProperty.call(a,"ldapAllowedUsers")&&(b.ldapAllowedUsers=i(a.ldapAllowedUsers)),Object.prototype.hasOwnProperty.call(a,"ldapAllowAnyUser")&&(b.ldapAllowAnyUser=!0===a.ldapAllowAnyUser),Object.prototype.hasOwnProperty.call(a,"ldapNestedGroups")&&(b.ldapNestedGroups=!1!==a.ldapNestedGroups),Object.prototype.hasOwnProperty.call(a,"ldapTlsRejectUnauthorized")&&(b.ldapTlsRejectUnauthorized=!1!==a.ldapTlsRejectUnauthorized),Object.prototype.hasOwnProperty.call(a,"ldapConnectTimeoutMs")){let c=Number(a.ldapConnectTimeoutMs);b.ldapConnectTimeoutMs=Number.isFinite(c)&&c>0?Math.min(c,3e4):8e3}return b}async function C(a={}){let b=m(a);return n(b),await o(b,async a=>{let c=await a.search(b.userBaseDn,{scope:"sub",filter:"(objectClass=*)",sizeLimit:1,attributes:["dn"]}),d=!0,e=!0,f=!0,g=!0;return b.loginAllowedGroupDn&&(d=(await v(a,b.loginAllowedGroupDn)).length>=0),b.adminGroupDn&&(e=(await v(a,b.adminGroupDn)).length>=0),b.monitorAdminGroupDn&&(f=(await v(a,b.monitorAdminGroupDn)).length>=0),b.aiGatewaysMonitorsGroupDn&&(g=(await v(a,b.aiGatewaysMonitorsGroupDn)).length>=0),{ok:!0,message:`LDAP bind and user base search OK. Found ${c.searchEntries.length} object(s).${b.loginAllowedGroupDn?" Login group DN is readable.":""}${b.adminGroupDn?" Admin group DN is readable.":""}${b.monitorAdminGroupDn?" Monitor admin group DN is readable.":""}${b.aiGatewaysMonitorsGroupDn?" AI Gateways monitors group DN is readable.":""}`,loginGroupOk:d,adminGroupOk:e,monitorAdminGroupOk:f,aiGatewaysMonitorsGroupOk:g}})}async function D(a={},b=""){let c=m(a);return n(c),await o(c,async a=>{if(c.loginAllowedGroupDn){let d=await x(a,c,b,c.loginAllowedGroupDn).catch(()=>[]);return d.length>0?d:await y(a,c,b,c.loginAllowedGroupDn)}let d=c.userNameAttribute||"sAMAccountName",e=c.userDisplayAttribute||"displayName",g=c.userEmailAttribute||"mail",h=String(b||"").trim(),i=l(h||"*"),k=h?`(|(${d}=*${i}*)(${e}=*${i}*)(${g}=*${i}*)(userPrincipalName=*${i}*)(sAMAccountName=*${i}*))`:"(|(sAMAccountName=*)(userPrincipalName=*)(mail=*))",m=`(&(&(objectCategory=person)(objectClass=user)(!(objectClass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))${k})`;return(await a.search(c.userBaseDn,{scope:"sub",filter:m,sizeLimit:100,attributes:j([...f,d,e,g])})).searchEntries.map(a=>r(a,c))})}async function E(a={},b,c){let e=m(a);n(e);let f=h(b),g=String(c||"");if(!f)throw Error("LDAP username is required.");if(!g)throw Error("LDAP password is required.");return await o(e,async a=>{let b=await t(a,e,f);if(!b?.dn)throw Error("LDAP user was not found.");let c=new d.Kj({url:e.url,timeout:e.connectTimeoutMs,connectTimeout:e.connectTimeoutMs,tlsOptions:{rejectUnauthorized:!1!==e.tlsRejectUnauthorized}});try{await c.bind(b.dn,g)}finally{try{await c.unbind()}catch{}}let h=r(b,e),i=e.loginAllowedGroupDn;if(i){if(!await w(a,e,b,i))throw Error("This LDAP user is not a member of the allowed login group.")}else if(!e.allowAnyUser&&e.allowedUsers.length>0&&!s(e,h))throw Error("This LDAP user is not allowed to access the dashboard.");let j=!!e.adminGroupDn&&await w(a,e,b,e.adminGroupDn),k=s(e,h),l=j||k,m=!l&&!!e.monitorAdminGroupDn&&await w(a,e,b,e.monitorAdminGroupDn),n=!l&&!m&&!!e.aiGatewaysMonitorsGroupDn&&await w(a,e,b,e.aiGatewaysMonitorsGroupDn);return{...h,isLoginAllowed:!0,isAdmin:l,isMonitorAdmin:m,isAiGatewaysMonitor:n,adminSource:j?"ldap-admin-group":k?"manual-admin-list":"none",monitorAdminSource:m?"ldap-monitor-admin-group":"none",aiGatewaysMonitorSource:n?"ldap-ai-gateways-monitors-group":"none"}})}},96487:()=>{}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=9413,exports.ids=[9413],exports.modules={4088:(a,b,c)=>{c.d(b,{$4:()=>f,$L:()=>g,W_:()=>h,mO:()=>e});var d=c(42889);function e(a){if(!a)return"-";try{let b="string"==typeof a?new Date(a):a,c=new Date,d=b-c;if(d<=0)return"-";let e=Math.ceil(d/6e4);if(e<60)return`${e}m`;let f=Math.floor(e/60),g=e%60;if(f<24)return`${f}h ${g}m`;let h=Math.floor(f/24);return`${h}d ${f%24}h ${g}m`}catch(a){return"-"}}function f(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function g(a){return a?.remaining!==void 0?Math.max(0,Math.round(a.remaining)):a?.remainingPercentage!==void 0?Math.round(a.remainingPercentage):f(a?.used,a?.total)}function h(a,b){if(!b||"object"!=typeof b)return[];let c=[];try{switch(a.toLowerCase()){case"github":default:b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"antigravity":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"codex":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,remaining:b.remaining,resetAt:b.resetAt||null})});break;case"kiro":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"claude":b.message?c.push({name:"error",used:0,total:0,resetAt:null,message:b.message}):b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,remaining:b.remaining,remainingPercentage:b.remainingPercentage,resetAt:b.resetAt||null})}),c.some(a=>/fable/i.test(a.name))||c.push({name:"weekly Fable 5 (7d)",used:0,total:100,remaining:100,remainingPercentage:100,resetAt:null})}}catch(b){return console.error(`Error parsing quota data for ${a}:`,b),[]}let e=(0,d.KC)(a);if(e.length>0){let a=new Map(e.map((a,b)=>[a.id,b]));c.sort((b,c)=>{let d=b.modelKey||b.name,e=c.modelKey||c.name;return(a.get(d)??999)-(a.get(e)??999)})}return c}},29413:(a,b,c)=>{c.d(b,{A:()=>g});var d=c(48249),e=c(67484),f=c(4088);function g({quotas:a=[],compact:b=!1,sortMode:c="default",showSortLabel:h=!1}){let[i,j]=(0,e.useState)(1),k=(0,e.useMemo)(()=>a.map((a,b)=>({...a,index:b,remaining:(0,f.$L)(a)})),[a]),l=(0,e.useMemo)(()=>"remaining-asc"===c?[...k].sort((a,b)=>a.remaining-b.remaining||a.name.localeCompare(b.name)):"remaining-desc"===c?[...k].sort((a,b)=>b.remaining-a.remaining||a.name.localeCompare(b.name)):k,[k,c]),m=Math.max(1,Math.ceil(l.length/10));if(!a||0===a.length)return null;let n=l.slice((i-1)*10,10*i),o=0===l.length?0:(i-1)*10+1,p=Math.min(10*i,l.length),q=b?"py-1 px-1.5":"py-2 px-3",r=b?"text-[11px]":"text-sm",s=b?"text-[11px]":"text-sm",t=b?"text-[10px] leading-tight":"text-xs";return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("div",{className:"text-[10px] text-text-muted",children:[l.length," quota",l.length>1?"s":""]}),h&&(0,d.jsx)("div",{className:"rounded-md border border-black/10 bg-black/[0.02] px-2 py-1 text-[10px] text-text-muted dark:border-white/10 dark:bg-white/[0.03]",children:"Sorted by account remaining"})]}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsx)("table",{className:"w-full table-fixed text-left",children:(0,d.jsx)("tbody",{children:n.map(a=>{var c;let e=(c=a.remaining)>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:c>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},g=(0,f.mO)(a.resetAt),h=function(a){if(!a)return null;try{let b=new Date(a),c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()),e=new Date(d);e.setDate(e.getDate()+1);let f="";f=b>=d&&b<e?"Today":b>=e&&b<new Date(e.getTime()+864e5)?"Tomorrow":b.toLocaleDateString("en-US",{month:"short",day:"numeric"});let g=b.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${f}, ${g}`}catch{return null}}(a.resetAt);return(0,d.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,d.jsx)("td",{className:`${q} w-[30%]`,children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-[10px] shrink-0",children:e.emoji}),(0,d.jsx)("span",{className:`${r} font-medium text-text-primary truncate`,children:a.name})]})}),(0,d.jsx)("td",{className:`${q} w-[45%]`,children:(0,d.jsxs)("div",{className:b?"space-y-1":"space-y-1.5",children:[(0,d.jsx)("div",{className:`${b?"h-1":"h-1.5"} rounded-full overflow-hidden border ${e.bgLight} ${0===a.remaining?"border-black/10 dark:border-white/10":"border-transparent"}`,children:(0,d.jsx)("div",{className:`h-full transition-all duration-300 ${e.bg}`,style:{width:`${Math.min(a.remaining,100)}%`}})}),(0,d.jsxs)("div",{className:`flex items-center justify-between ${b?"text-[10px]":"text-xs"}`,children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[a.used.toLocaleString()," / ",a.total>0?a.total.toLocaleString():"∞"]}),(0,d.jsxs)("span",{className:`font-medium ${e.text}`,children:[a.remaining,"%"]})]})]})}),(0,d.jsx)("td",{className:`${q} w-[25%]`,children:"-"!==g||h?b?(0,d.jsx)("div",{className:`${s} text-text-primary font-medium truncate`,title:h||"",children:"-"!==g?`in ${g}`:h}):(0,d.jsxs)("div",{className:"space-y-0.5",children:["-"!==g&&(0,d.jsxs)("div",{className:`${s} text-text-primary font-medium`,children:["in ",g]}),h&&(0,d.jsx)("div",{className:`${t} text-text-muted`,children:h})]}):(0,d.jsx)("div",{className:`${s} text-text-muted italic`,children:"N/A"})})]},`${a.name}-${a.index}`)})})})}),m>1&&(0,d.jsxs)("div",{className:"rounded-md border border-black/10 bg-black/[0.02] px-2 py-1.5 dark:border-white/10 dark:bg-white/[0.03]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 text-[10px] text-text-muted",children:[(0,d.jsxs)("span",{children:["Showing ",o,"-",p," of ",l.length]}),(0,d.jsxs)("span",{children:["Page ",i," / ",m]})]}),(0,d.jsxs)("div",{className:"mt-1.5 flex items-center justify-end gap-1",children:[(0,d.jsx)("button",{type:"button",onClick:()=>j(a=>Math.max(1,a-1)),disabled:1===i,className:"flex h-6 items-center rounded-md border border-black/10 px-2 text-[10px] text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Prev"}),(0,d.jsx)("button",{type:"button",onClick:()=>j(a=>Math.min(m,a+1)),disabled:i===m,className:"flex h-6 items-center rounded-md border border-black/10 px-2 text-[10px] text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Next"})]})]})]})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5236],{31874:(e,t,s)=>{"use strict";s.d(t,{default:()=>p});var r=s(95155),a=s(12115),d=s(98500),n=s.n(d);let i=["api.anthropic.com","*.anthropic.com","claude.ai","*.claude.ai"],l=["api.openai.com","*.openai.com","chatgpt.com","*.chatgpt.com"];function o({ok:e,children:t}){return(0,r.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium ${e?"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400":"border-border bg-surface text-text-muted"}`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:e?"check_circle":"radio_button_unchecked"}),t]})}function c({label:e,hint:t,children:s}){return(0,r.jsxs)("label",{className:"grid gap-1.5",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-text-main",children:e}),s,t?(0,r.jsx)("span",{className:"text-[11px] leading-4 text-text-muted",children:t}):null]})}function x({label:e,description:t,checked:s,onChange:a,disabled:d=!1}){return(0,r.jsxs)("label",{className:"flex items-start justify-between gap-4 rounded-xl border border-border bg-background/50 p-3",children:[(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"block text-sm font-semibold text-text-main",children:e}),(0,r.jsx)("span",{className:"mt-0.5 block text-xs leading-5 text-text-muted",children:t})]}),(0,r.jsx)("input",{type:"checkbox",checked:s,onChange:e=>a(e.target.checked),disabled:d,className:"mt-1 h-4 w-4 accent-[var(--color-primary)]"})]})}function m({title:e,subtitle:t,command:s,copyKey:a,copied:d,onCopy:n,recommended:i=!1}){return(0,r.jsxs)("div",{className:`rounded-xl border bg-background p-3 ${i?"border-green-500/30":"border-border"}`,children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-text-main",children:e}),i?(0,r.jsx)("span",{className:"rounded-full bg-green-500/10 px-2 py-0.5 text-[10px] font-semibold text-green-600 dark:text-green-400",children:"Recommended"}):null]}),t?(0,r.jsx)("div",{className:"mt-0.5 text-[10px] leading-4 text-text-muted",children:t}):null]}),(0,r.jsx)("button",{onClick:()=>n(a,s),className:"shrink-0 text-xs font-medium text-primary",children:d===a?"Copied":"Copy"})]}),(0,r.jsx)("pre",{className:"mt-2 overflow-x-auto whitespace-pre-wrap break-all rounded-lg bg-surface px-3 py-2 text-[11px] leading-5 text-text-muted",children:s})]})}function p(){let[e,t]=(0,a.useState)(null),[s,d]=(0,a.useState)(null),[p,u]=(0,a.useState)(""),[b,h]=(0,a.useState)(""),[g,y]=(0,a.useState)(""),[f,j]=(0,a.useState)(null),[N,v]=(0,a.useState)(""),w=(0,a.useCallback)(async(e=!0)=>{try{let r=await fetch("/api/audit-proxy?limit=50",{cache:"no-store"}),a=await r.json();if(!r.ok)throw Error(a.error||"Cannot load Audit Proxy");t(a),e&&s||d(a.config)}catch(e){h(e.message||"Cannot load Audit Proxy")}},[s]);(0,a.useEffect)(()=>{w(!1);let e=setInterval(()=>w(!0),5e3);return()=>clearInterval(e)},[]);let C=e?.status||{},k=C.rootCA||{},P=!0===C.running,S=(0,a.useMemo)(()=>String(s?.clientProxyHost||"").trim()||"<bluerouter-host>",[s?.clientProxyHost]),T=s?`http://${S}:${s.port}`:"",A=(e,t)=>d(s=>({...s,[e]:t})),I=(s?.allowedHosts||[]).join("\n"),E=async(e,t={})=>{u(e),h(""),y("");try{let s=await fetch("/api/audit-proxy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...t})}),r=await s.json().catch(()=>({}));if(!s.ok)throw Error(r.error||`${e} failed`);return"test"===e?(j(r.test),y(`Simulation passed ${r.test.passed}/${r.test.total} checks.`)):y("clear-logs"===e?"Audit log cleared.":`Audit Proxy ${e} completed.`),await w("restart"!==e&&"start"!==e),r}catch(t){return h(t.message||`${e} failed`),null}finally{u("")}},R=async()=>{u("save"),h(""),y("");try{let e=await fetch("/api/audit-proxy",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:s})}),t=await e.json();if(!e.ok)throw Error(t.error||"Save failed");d(t.config),y("Configuration saved."),await w(!0)}catch(e){h(e.message||"Save failed")}finally{u("")}},O=async()=>{u("save-client-host"),h(""),y("");try{let e=await fetch("/api/audit-proxy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"save-client-host",clientProxyHost:s?.clientProxyHost||""})}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Failed to save Client proxy host");d(e=>({...e,clientProxyHost:t.config?.clientProxyHost||""})),y("Client proxy host saved."),await w(!0)}catch(e){h(e.message||"Failed to save Client proxy host")}finally{u("")}},_=async()=>{u("ca"),h("");try{let e=await fetch("/api/audit-proxy/ca",{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t.error||"CA generation failed");y("Root CA is ready."),await w(!0)}catch(e){h(e.message||"CA generation failed")}finally{u("")}},H=e=>{A("allowedHosts",[...new Set([...s?.allowedHosts||[],...e])])},$=async(e,t)=>{try{await navigator.clipboard.writeText(t),v(e),setTimeout(()=>v(""),1500)}catch{h("Clipboard access failed.")}};if(!s)return(0,r.jsx)("div",{className:"rounded-xl border border-border bg-surface p-5 text-sm text-text-muted",children:"Loading Enterprise AI Audit Proxy…"});let L=Math.round(Number(s.captureLimitBytes||0)/1024/1024*10)/10,D=["0.0.0.0","::"].includes(s.bindHost),B="C:\\BlueRouter\\bluerouter-audit-root-ca.crt",X="$HOME/.bluerouter/bluerouter-audit-root-ca.crt",q=`cmd.exe /d /c 'set "HTTP_PROXY=${T}"&&set "HTTPS_PROXY=${T}"&&set "NODE_EXTRA_CA_CERTS=${B}"&&claude'`,F=`cmd.exe /d /c 'set "HTTP_PROXY=${T}"&&set "HTTPS_PROXY=${T}"&&set "CODEX_CA_CERTIFICATE=${B}"&&codex'`,U=`env HTTP_PROXY='${T}' HTTPS_PROXY='${T}' NODE_EXTRA_CA_CERTS="${X}" claude`,M=`env HTTP_PROXY='${T}' HTTPS_PROXY='${T}' CODEX_CA_CERTIFICATE="${X}" codex`;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-2xl border border-primary/20 bg-primary/5 p-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary",children:"policy"}),(0,r.jsx)("h1",{className:"text-lg font-bold text-text-main",children:"Enterprise AI Audit Proxy"}),(0,r.jsx)(o,{ok:P,children:P?"Running":"Stopped"}),(0,r.jsx)(o,{ok:k.certExists,children:"Root CA"}),(0,r.jsx)(o,{ok:s.verifyUpstreamTls,children:"Verified upstream TLS"})]}),(0,r.jsx)("p",{className:"mt-2 max-w-4xl text-sm leading-6 text-text-muted",children:"Explicit HTTP CONNECT proxy for official Claude Code / Codex traffic. BlueRouter inspects approved hosts, preserves the provider/model/auth on the wire, and redacts credentials before persistence."})]}),(0,r.jsxs)(n(),{href:"/dashboard/mitm",className:"inline-flex items-center gap-1 text-xs font-medium text-primary hover:underline",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_back"})," AI Traffic Gateway"]})]}),b?(0,r.jsx)("div",{className:"rounded-xl border border-red-500/30 bg-red-500/10 px-4 py-3 text-sm text-red-600 dark:text-red-400",children:b}):null,g?(0,r.jsx)("div",{className:"rounded-xl border border-green-500/30 bg-green-500/10 px-4 py-3 text-sm text-green-600 dark:text-green-400",children:g}):null,D?(0,r.jsxs)("div",{className:"rounded-xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm text-amber-700 dark:text-amber-300",children:[(0,r.jsx)("strong",{children:"LAN listener enabled."})," Restrict port ",s.port," with firewall/VLAN policy. This version has no shared proxy credential, so it must not be exposed to the public Internet."]}):null,(0,r.jsxs)("div",{className:"grid gap-4 xl:grid-cols-[1.25fr_0.75fr]",children:[(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsxs)("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Proxy configuration"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"All server-side setup is managed here. No proxy daemon CLI is required."})]}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:()=>H(i),disabled:P,className:"rounded-lg border border-border px-3 py-1.5 text-xs text-text-main hover:bg-background disabled:opacity-50",children:"+ Anthropic preset"}),(0,r.jsx)("button",{onClick:()=>H(l),disabled:P,className:"rounded-lg border border-border px-3 py-1.5 text-xs text-text-main hover:bg-background disabled:opacity-50",children:"+ OpenAI preset"})]})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsx)(c,{label:"Bind address",hint:"127.0.0.1 = local only. Use 0.0.0.0 or a LAN IP when other workstations connect.",children:(0,r.jsx)("input",{value:s.bindHost,onChange:e=>A("bindHost",e.target.value),disabled:P,className:"rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsx)(c,{label:"Proxy port",hint:"Default 3128; no root/admin privilege is required on this port.",children:(0,r.jsx)("input",{type:"number",min:"1",max:"65535",value:s.port,onChange:e=>A("port",Number(e.target.value)),disabled:P,className:"rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsx)(c,{label:"Client proxy host",hint:"Enter the hostname/IP manually. This value is saved persistently and can be changed while the proxy is running; it does not change the listener.",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("input",{value:s.clientProxyHost||"",onChange:e=>A("clientProxyHost",e.target.value),placeholder:"172.16.6.8 or proxy.example.local",className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary"}),(0,r.jsx)("button",{type:"button",onClick:O,disabled:!!p,className:"shrink-0 rounded-lg border border-primary/30 bg-primary/10 px-3 py-2 text-xs font-semibold text-primary disabled:opacity-50",children:"save-client-host"===p?"Saving…":"Save host"})]})}),(0,r.jsx)(c,{label:"Capture limit / request",hint:"Bodies are streamed immediately; only this bounded prefix is retained for audit.",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:"0",max:"16",step:"0.5",value:L,onChange:e=>A("captureLimitBytes",Math.round(1024*Number(e.target.value)*1024)),disabled:P||!s.captureBodies,className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"}),(0,r.jsx)("span",{className:"text-xs text-text-muted",children:"MB"})]})})]}),(0,r.jsxs)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[(0,r.jsx)(x,{label:"Pass through non-audited hosts",description:"Unknown CONNECT hosts are blind TCP tunnels. Their TLS is not inspected.",checked:s.passthroughUnknown,onChange:e=>A("passthroughUnknown",e),disabled:P}),(0,r.jsx)(x,{label:"Capture request/response bodies",description:"Credentials are still redacted. Disable to retain metadata only.",checked:s.captureBodies,onChange:e=>A("captureBodies",e),disabled:P})]}),(0,r.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-[1fr_180px]",children:[(0,r.jsx)(c,{label:"TLS inspection allowlist",hint:"One hostname/wildcard per line. Only these hosts are decrypted and audited.",children:(0,r.jsx)("textarea",{rows:9,value:I,onChange:e=>A("allowedHosts",e.target.value.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)),disabled:P,className:"rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsxs)("div",{className:"grid content-start gap-4",children:[(0,r.jsx)(c,{label:"Retention",hint:"Expired entries are pruned from the local JSONL audit store.",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:"1",max:"365",value:s.retentionDays,onChange:e=>A("retentionDays",Number(e.target.value)),disabled:P,className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"}),(0,r.jsx)("span",{className:"text-xs text-text-muted",children:"days"})]})}),(0,r.jsxs)("div",{className:"rounded-xl border border-green-500/20 bg-green-500/5 p-3 text-xs leading-5 text-text-muted",children:[(0,r.jsx)("div",{className:"font-semibold text-green-600 dark:text-green-400",children:"Upstream TLS verification: enforced"}),"Provider certificates are always verified. The GUI cannot disable this safety control."]})]})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:R,disabled:!!p||P,className:"rounded-lg bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:"save"===p?"Saving…":"Save"}),P?(0,r.jsx)("button",{onClick:()=>E("stop"),disabled:!!p,className:"rounded-lg border border-red-500/30 bg-red-500/10 px-4 py-2 text-sm font-semibold text-red-500 disabled:opacity-50",children:"stop"===p?"Stopping…":"Stop Proxy"}):(0,r.jsx)("button",{onClick:()=>E("start",{config:s}),disabled:!!p,className:"rounded-lg border border-green-500/30 bg-green-500/10 px-4 py-2 text-sm font-semibold text-green-600 disabled:opacity-50",children:"start"===p?"Starting…":"Start Proxy"}),(0,r.jsx)("button",{onClick:()=>E("restart",{config:s}),disabled:!!p,className:"rounded-lg border border-border px-4 py-2 text-sm font-semibold text-text-main hover:bg-background disabled:opacity-50",children:"restart"===p?"Restarting…":"Save & Restart"}),(0,r.jsx)("button",{onClick:()=>E("test"),disabled:!!p,className:"rounded-lg border border-primary/30 bg-primary/10 px-4 py-2 text-sm font-semibold text-primary disabled:opacity-50",children:"test"===p?"Testing…":"Run Simulated Test"})]})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Root CA"}),(0,r.jsx)("p",{className:"mt-1 text-xs leading-5 text-text-muted",children:"Uses the same BlueRouter Root CA/dynamic leaf certificate engine as AI Traffic Gateway. The private key is never downloadable from this page."}),(0,r.jsxs)("div",{className:"mt-3 grid gap-2 text-xs",children:[(0,r.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Status"}),(0,r.jsx)("span",{className:"font-medium text-text-main",children:k.certExists?"Ready":"Not generated"})]}),k.subject?(0,r.jsxs)("div",{className:"grid gap-1",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Subject"}),(0,r.jsx)("span",{className:"break-all font-mono text-[11px] text-text-main",children:k.subject})]}):null,k.fingerprint?(0,r.jsxs)("div",{className:"grid gap-1",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Public key fingerprint"}),(0,r.jsx)("span",{className:"break-all font-mono text-[11px] text-text-main",children:k.fingerprint})]}):null,k.notAfter?(0,r.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Expires"}),(0,r.jsx)("span",{className:"text-text-main",children:new Date(k.notAfter).toLocaleString()})]}):null]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:_,disabled:!!p||P,className:"rounded-lg border border-border px-3 py-2 text-xs font-semibold text-text-main hover:bg-background disabled:opacity-50",children:k.certExists?"Validate / Reuse CA":"Generate CA"}),(0,r.jsx)("a",{href:"/api/audit-proxy/ca?download=cert",className:`rounded-lg border border-primary/30 bg-primary/10 px-3 py-2 text-xs font-semibold text-primary ${!k.certExists?"pointer-events-none opacity-50":""}`,children:"Download Root CA"}),(0,r.jsx)(n(),{href:"/dashboard/mitm",className:"rounded-lg border border-border px-3 py-2 text-xs font-semibold text-text-main hover:bg-background",children:"Advanced CA management"})]})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Client deployment values"}),(0,r.jsxs)("p",{className:"mt-1 text-xs leading-5 text-text-muted",children:["Use the process-scoped launcher below. It does ",(0,r.jsx)("strong",{children:"not"})," use setx, does not change Windows/System proxy, and does not affect browsers or unrelated applications. Proxy variables disappear when the CLI exits."]}),(0,r.jsxs)("div",{className:"mt-3 rounded-xl border border-primary/20 bg-primary/5 p-3 text-xs leading-5 text-text-muted",children:[(0,r.jsx)("div",{className:"font-semibold text-primary",children:"Before first use"}),"Download the Root CA and save it as ",(0,r.jsx)("code",{className:"rounded bg-background px-1 py-0.5",children:B})," on Windows, or ",(0,r.jsx)("code",{className:"rounded bg-background px-1 py-0.5",children:X})," on Linux/macOS."]}),(0,r.jsxs)("div",{className:"mt-3 grid gap-3",children:[(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-text-main",children:"Proxy URL"}),(0,r.jsx)("button",{onClick:()=>$("url",T),className:"text-xs text-primary",children:"url"===N?"Copied":"Copy"})]}),(0,r.jsx)("code",{className:"mt-1 block break-all text-xs text-text-muted",children:T})]}),(0,r.jsx)(m,{title:"Claude Code \xb7 Windows PowerShell",subtitle:"Paste directly into PowerShell. Proxy env exists only inside the child process.",command:q,copyKey:"claude-ps",copied:N,onCopy:$,recommended:!0}),(0,r.jsx)(m,{title:"Codex \xb7 Windows PowerShell",subtitle:"Paste directly into PowerShell. No persistent user/system environment changes.",command:F,copyKey:"codex-ps",copied:N,onCopy:$,recommended:!0}),(0,r.jsxs)("details",{className:"rounded-xl border border-border bg-background p-3",children:[(0,r.jsx)("summary",{className:"cursor-pointer text-xs font-semibold text-text-main",children:"Linux / macOS process-scoped commands"}),(0,r.jsxs)("div",{className:"mt-3 grid gap-3",children:[(0,r.jsx)(m,{title:"Claude Code \xb7 Bash/zsh",command:U,copyKey:"claude-bash",copied:N,onCopy:$}),(0,r.jsx)(m,{title:"Codex \xb7 Bash/zsh",command:M,copyKey:"codex-bash",copied:N,onCopy:$})]})]})]})]})]})]}),f?(0,r.jsxs)("section",{className:`rounded-2xl border p-4 ${f.ok?"border-green-500/30 bg-green-500/5":"border-red-500/30 bg-red-500/5"}`,children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Simulated end-to-end test"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Local throwaway TLS endpoints; no Anthropic/OpenAI credential or external API call is used."})]}),(0,r.jsxs)(o,{ok:f.ok,children:[f.passed,"/",f.total," passed \xb7 ",f.durationMs," ms"]})]}),(0,r.jsx)("div",{className:"mt-3 grid gap-2 md:grid-cols-2 xl:grid-cols-3",children:f.checks?.map(e=>(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-border/70 bg-background/60 px-3 py-2 text-xs",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[16px] ${e.ok?"text-green-500":"text-red-500"}`,children:e.ok?"check_circle":"error"}),(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"font-medium text-text-main",children:e.name}),e.detail?(0,r.jsx)("span",{className:"mt-0.5 block text-text-muted",children:e.detail}):null]})]},e.name))})]}):null,(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Recent audit requests"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Credentials are redacted before JSONL persistence. Request/response capture is bounded by the configured limit."})]}),(0,r.jsx)("button",{onClick:()=>E("clear-logs"),disabled:!!p,className:"rounded-lg border border-border px-3 py-1.5 text-xs text-text-muted hover:bg-background disabled:opacity-50",children:"Clear logs"})]}),(0,r.jsx)("div",{className:"mt-3 overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full min-w-[900px] text-left text-xs",children:[(0,r.jsx)("thead",{className:"border-b border-border text-text-muted",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Time"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Client"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Provider"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Host"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Model"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Request"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Status"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Latency"})]})}),(0,r.jsxs)("tbody",{children:[(e?.events||[]).map(e=>(0,r.jsxs)("tr",{className:"border-b border-border/60 align-top text-text-main",children:[(0,r.jsx)("td",{className:"whitespace-nowrap px-2 py-2 text-text-muted",children:new Date(e.timestamp).toLocaleTimeString()}),(0,r.jsx)("td",{className:"px-2 py-2 font-mono text-[11px]",children:e.client?.ip||"-"}),(0,r.jsx)("td",{className:"px-2 py-2",children:e.provider||"-"}),(0,r.jsx)("td",{className:"px-2 py-2 font-mono text-[11px]",children:e.host||"-"}),(0,r.jsx)("td",{className:"px-2 py-2",children:e.model||"-"}),(0,r.jsx)("td",{className:"max-w-[280px] px-2 py-2",children:(0,r.jsxs)("details",{children:[(0,r.jsxs)("summary",{className:"cursor-pointer truncate",children:[e.method," ",e.path]}),(0,r.jsx)("pre",{className:"mt-2 max-h-64 overflow-auto whitespace-pre-wrap rounded-lg bg-background p-2 text-[10px] leading-4 text-text-muted",children:JSON.stringify({request:e.request,response:e.response,error:e.error},null,2)})]})}),(0,r.jsx)("td",{className:"px-2 py-2",children:e.status||"ERR"}),(0,r.jsxs)("td",{className:"whitespace-nowrap px-2 py-2",children:[e.durationMs??"-"," ms"]})]},e.id)),e?.events?.length?null:(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:"8",className:"px-2 py-8 text-center text-text-muted",children:"No audited requests yet."})})]})]})})]})]})}},46439:(e,t,s)=>{"use strict";s.d(t,{default:()=>d});var r=s(95155),a=s(12115);function d(){let[e,t]=(0,a.useState)(null),[s,d]=(0,a.useState)(!1),[n,i]=(0,a.useState)(!1),[l,o]=(0,a.useState)(""),[c,x]=(0,a.useState)(!1),[m,p]=(0,a.useState)(""),[u,b]=(0,a.useState)(""),h=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/audit-proxy?limit=1",{cache:"no-store"}),s=await e.json();if(!e.ok)throw Error(s.error||"Cannot load Audit Proxy IP filter");t(s.config),d(s.status?.running===!0),i(s.config?.clientIpFilterEnabled===!0),o((s.config?.allowedClientIps||[]).join("\n"))}catch(e){p(e.message||"Cannot load Audit Proxy IP filter")}},[]);(0,a.useEffect)(()=>{h()},[h]);let g=(0,a.useMemo)(()=>l.split(/\r?\n/).map(e=>e.trim()).filter(Boolean),[l]),y=async()=>{if(e){if(n&&0===g.length)return void p("Add at least one client IP or CIDR before enabling the filter.");x(!0),p(""),b("");try{let s=await fetch("/api/audit-proxy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"save-ip-filter",enabled:n,allowedClientIps:g})}),r=await s.json().catch(()=>({}));if(!s.ok)throw Error(r.error||"Failed to save client IP filter");b(r.restarted?"Client IP filter saved and Audit Proxy restarted.":"Client IP filter saved."),t(r.config||e),d(r.status?.running===!0),i(r.config?.clientIpFilterEnabled===!0),o((r.config?.allowedClientIps||[]).join("\n"))}catch(e){p(e.message||"Failed to save client IP filter")}finally{x(!1)}}};return e?(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary",children:"shield_lock"}),(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Client IP filter"}),(0,r.jsx)("span",{className:`rounded-full px-2 py-0.5 text-[10px] font-semibold ${n?"bg-green-500/10 text-green-600 dark:text-green-400":"bg-surface text-text-muted"}`,children:n?"ENABLED":"DISABLED"})]}),(0,r.jsxs)("p",{className:"mt-1 max-w-4xl text-xs leading-5 text-text-muted",children:["Restrict TCP access to the Audit Proxy itself. Only client IPs/CIDRs below can use port ",e.port,". The decision uses the socket peer IP; X-Forwarded-For and other HTTP headers are ignored."]})]}),(0,r.jsxs)("label",{className:"flex shrink-0 items-center gap-2 text-sm font-medium text-text-main",children:[(0,r.jsx)("input",{type:"checkbox",checked:n,onChange:e=>i(e.target.checked),className:"h-4 w-4 accent-[var(--color-primary)]"}),"Enable IP filter"]})]}),m?(0,r.jsx)("div",{className:"mt-3 rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-600 dark:text-red-400",children:m}):null,u?(0,r.jsx)("div",{className:"mt-3 rounded-lg border border-green-500/30 bg-green-500/10 px-3 py-2 text-xs text-green-600 dark:text-green-400",children:u}):null,(0,r.jsxs)("div",{className:"mt-4 grid gap-4 lg:grid-cols-[1fr_320px]",children:[(0,r.jsxs)("label",{className:"grid gap-1.5",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Allowed client IPs / CIDRs"}),(0,r.jsx)("textarea",{rows:6,value:l,onChange:e=>o(e.target.value),placeholder:"172.16.253.3\n172.16.253.0/24\n10.20.30.15\n2001:db8::/64",className:"rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary"}),(0,r.jsx)("span",{className:"text-[11px] leading-4 text-text-muted",children:"One IPv4, IPv6, or CIDR per line. IPv4-mapped IPv6 addresses are normalized automatically."})]}),(0,r.jsxs)("div",{className:"grid content-start gap-3",children:[(0,r.jsxs)("div",{className:"rounded-xl border border-primary/20 bg-primary/5 p-3 text-xs leading-5 text-text-muted",children:[(0,r.jsx)("div",{className:"font-semibold text-primary",children:"Security behavior"}),(0,r.jsx)("div",{className:"mt-1",children:"Allowed IP → proxy works normally."}),(0,r.jsx)("div",{children:"Other IP → TCP connection is immediately closed before CONNECT/HTTP parsing."}),(0,r.jsx)("div",{children:"Empty list + enabled → configuration is rejected."})]}),(0,r.jsx)("button",{type:"button",onClick:y,disabled:c,className:"rounded-lg bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:c?"Saving…":s?"Save & Restart Proxy":"Save IP Filter"}),s?(0,r.jsxs)("div",{className:"text-[11px] leading-4 text-text-muted",children:["Proxy is running, so applying this security policy requires a short restart of port ",e.port,"."]}):null]})]})]}):null}},55506:(e,t,s)=>{Promise.resolve().then(s.bind(s,46439)),Promise.resolve().then(s.bind(s,31874))}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=55506)),_N_E=e.O()}]);
|