@jheavenknows/bluerouter 5.3.50 → 5.3.52
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 +6 -6
- package/app/.next-cli-build/build-manifest.json +2 -2
- 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 +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/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 +1 -1
- 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 +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/(dashboard)/dashboard/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.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 +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- 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 +31 -8
- 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 +2 -2
- 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 +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/!KGRhc2hib2FyZCk/dashboard/audit-proxy/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- 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 +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- 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 +6 -6
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +1 -1
- 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 +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
- 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 +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
- 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 +6 -6
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
- 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 +6 -6
- package/app/.next-cli-build/server/chunks/{4746.js → 1350.js} +2 -2
- package/app/.next-cli-build/server/chunks/1876.js +1 -0
- package/app/.next-cli-build/server/chunks/{6064.js → 1900.js} +1 -1
- package/app/.next-cli-build/server/chunks/2664.js +1 -1
- package/app/.next-cli-build/server/chunks/2731.js +1 -1
- package/app/.next-cli-build/server/chunks/2999.js +1 -0
- package/app/.next-cli-build/server/chunks/3031.js +1 -1
- package/app/.next-cli-build/server/chunks/3484.js +1 -1
- package/app/.next-cli-build/server/chunks/3958.js +61 -0
- package/app/.next-cli-build/server/chunks/3960.js +1 -0
- package/app/.next-cli-build/server/chunks/4123.js +1 -1
- package/app/.next-cli-build/server/chunks/4459.js +9 -0
- package/app/.next-cli-build/server/chunks/4696.js +1 -1
- package/app/.next-cli-build/server/chunks/4755.js +1 -0
- package/app/.next-cli-build/server/chunks/476.js +3 -3
- package/app/.next-cli-build/server/chunks/4790.js +2 -2
- package/app/.next-cli-build/server/chunks/5210.js +1 -1
- package/app/.next-cli-build/server/chunks/5623.js +1 -0
- package/app/.next-cli-build/server/chunks/564.js +1 -1
- package/app/.next-cli-build/server/chunks/5901.js +1 -1
- 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/6118.js +1 -1
- 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/689.js +186 -2
- package/app/.next-cli-build/server/chunks/6992.js +1 -1
- package/app/.next-cli-build/server/chunks/7242.js +1 -1
- package/app/.next-cli-build/server/chunks/{402.js → 7638.js} +8 -8
- package/app/.next-cli-build/server/chunks/7639.js +1 -1
- package/app/.next-cli-build/server/chunks/{6936.js → 7700.js} +4 -4
- package/app/.next-cli-build/server/chunks/7895.js +1 -0
- package/app/.next-cli-build/server/chunks/814.js +2 -2
- package/app/.next-cli-build/server/chunks/8141.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/8360.js +1 -1
- package/app/.next-cli-build/server/chunks/9483.js +1 -1
- 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/static/chunks/{5263-ba5573cd6d8845c1.js → 5263-35c73f0b817c46e3.js} +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.45-to-5.3.46-5.3.46-20260822-140303 → upgrade-5.3.48-to-5.3.49-5.3.49-20260822-180559}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.46-to-5.3.47-5.3.47-20260822-172255 → upgrade-5.3.48-to-5.3.49-5.3.49-20260822-180600}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.49-to-5.3.50-5.3.50-20260822-195035/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/chunks/2507.js +0 -1
- package/app/.next-cli-build/server/chunks/2944.js +0 -1
- package/app/.next-cli-build/server/chunks/5206.js +0 -1
- package/app/.next-cli-build/server/chunks/5915.js +0 -1
- package/app/.next-cli-build/server/chunks/607.js +0 -9
- package/app/.next-cli-build/server/chunks/8347.js +0 -1
- /package/app/.next-cli-build/static/{IErI5BiuJofosyvmiJjCR → cL_-1gM7FlzGO8vClv9AE}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{IErI5BiuJofosyvmiJjCR → cL_-1gM7FlzGO8vClv9AE}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
exports.id=2999,exports.ids=[1998,2999,4755],exports.modules={19225:(a,b,c)=>{"use strict";a.exports=c(44870)},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}},38709:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>h,Md:()=>i});var d=c(90737),e=c(38113),f=c(39609);let g=`${d.Nr}/models`;function h(a,b={}){let c={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":d.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-version":d.uG,"x-grok-client-identifier":d.rK,"x-grok-client-mode":"headless"},e=b?.email,f=b?.userId||b?.principalId;return e&&(c["x-email"]=e),f&&(c["x-userid"]=f),c}async function i(a,b={}){let{fetchFn:c=f.proxyAwareFetch,log:j=console,proxyOptions:k=null,onCredentialsRefreshed:l}=b,m=a?.accessToken;if(!m)return{models:[],warning:"Grok CLI access token is missing."};let n=b=>c(g,{method:"GET",headers:h(b,a?.providerSpecificData)},k);try{let b=await n(m);if((401===b.status||403===b.status)&&a?.refreshToken){let c=await (0,e.f)(a,j,k);if(c?.accessToken){m=c.accessToken;try{await l?.(c)}catch(a){j?.warn?.("Grok CLI credential persistence failed",a)}b=await n(m)}}if(!b.ok){let a=await b.text().catch(()=>"");return{models:[],warning:`Grok CLI model discovery failed (${b.status})${a?`: ${a.slice(0,160)}`:""}`}}let c=function(a){let b,c=new Set,e=[];for(let[f,g]of(b=Array.isArray(a)?a:a?.data??a?.models??a?.results??[],Array.isArray(b)?b.map(a=>[null,a]):b&&"object"==typeof b?Object.entries(b):[])){let a="string"==typeof g?{id:g}:g;if(!a||"object"!=typeof a||Array.isArray(a))continue;let b=String(a.id??a.model_id??a.modelId??a.model??a.slug??f??a.name??"").trim();if(!b||c.has(b))continue;c.add(b);let h={...a,id:b,name:a.display_name??a.displayName??a.name??b,targetFormat:"openai-responses"},i=Number(a.context_length??a.contextLength??a.context_window??a.contextWindow),j=Number(a.max_output_tokens??a.maxOutputTokens);Number.isFinite(i)&&i>0&&(h.contextLength=i),Number.isFinite(j)&&j>0&&(h.maxOutputTokens=j),b===d.to&&(h.contextLength||=5e5,h.maxOutputTokens||=64e3),e.push(h)}return e}(await b.json());return c.length?{models:c}:{models:[],warning:"Grok CLI returned no selectable models."}}catch(a){return{models:[],warning:`Grok CLI model discovery failed: ${a.message}`}}}},39326:(a,b,c)=>{"use strict";c.d(b,{B:()=>g});var d=c(71998);let e=new Set(["vercel","cloudflare","deno"]);function f(a){return null==a?"":String(a).trim()}async function g(a={}){try{let b=f(a?.proxyPoolId),c="__none__"===b?"":b,g=function(a={}){let b=a?.connectionProxyEnabled===!0,c=f(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:f(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=f(a?.proxyUrl),g=f(a?.noProxy);if(a&&!0===a.isActive&&b){if(e.has(a.type))return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:g,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:g,strictProxy:!0===a.strictProxy}}}if(g.connectionProxyEnabled&&g.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...g};return{source:"none",proxyPoolId:c||null,proxyPool:null,...g}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},46266:(a,b,c)=>{"use strict";c.d(b,{m:()=>X});var d=c(75924),e=c(39609);let f={international:"https://api.z.ai/api/monitor/usage/quota/limit",china:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"},g={minimax:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"],"minimax-cn":["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]},h={quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token",clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",userAgent:(0,d.A9)()},i="2023-06-01";async function j(a,b=null){let{provider:c,accessToken:d,apiKey:e,providerSpecificData:f}=a;switch(c){case"github":return await l(d,f,b);case"gemini-cli":return await n(d,f,b);case"antigravity":return await p(d,f,b);case"claude":return await r(d,b);case"codex":return await w(d,b);case"kiro":return await x(d,f,b);case"qwen":return await y(d,f);case"iflow":return await z(d);case"ollama":return await A(d);case"glm":case"glm-cn":return await B(e,c,b);case"minimax":case"minimax-cn":return await H(e,c,b);default:return{message:`Usage API not implemented for ${c}`}}}function k(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}async function l(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,e.proxyAwareFetch)("https://api.github.com/copilot_internal/user",{headers:{Authorization:`token ${a}`,Accept:"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"GitHubCopilotChat/0.26.7","Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}},c);if(!b.ok){let a=await b.text();throw Error(`GitHub API error: ${a}`)}let d=await b.json();if(d.quota_snapshots){let a=d.quota_snapshots,b=k(d.quota_reset_date);return{plan:d.copilot_plan,resetDate:d.quota_reset_date,quotas:{chat:{...m(a.chat),resetAt:b},completions:{...m(a.completions),resetAt:b},premium_interactions:{...m(a.premium_interactions),resetAt:b}}}}if(d.monthly_quotas||d.limited_user_quotas){let a=d.monthly_quotas||{},b=d.limited_user_quotas||{},c=k(d.limited_user_reset_date);return{plan:d.copilot_plan||d.access_type_sku,resetDate:d.limited_user_reset_date,quotas:{chat:{used:b.chat||0,total:a.chat||0,unlimited:!1,resetAt:c},completions:{used:b.completions||0,total:a.completions||0,unlimited:!1,resetAt:c}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(a){throw Error(`Failed to fetch GitHub usage: ${a.message}`)}}function m(a){return a?{used:a.entitlement-a.remaining,total:a.entitlement,remaining:a.remaining,unlimited:a.unlimited||!1}:{used:0,total:0,unlimited:!0}}async function n(a,b,c=null){if(!a)return{plan:"Free",message:"Gemini CLI access token not available."};try{let d,f=b?.projectId||null,g="Free";if(!f){let b=await o(a,c);f=b?.cloudaicompanionProject||null,g=b?.currentTier?.name||g}if(!f)return{plan:g,message:"Gemini CLI project ID not available."};let h=new AbortController,i=setTimeout(()=>h.abort(),1e4);try{d=await (0,e.proxyAwareFetch)("https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:f}),signal:h.signal},c)}finally{clearTimeout(i)}if(!d.ok)return{plan:g,message:`Gemini CLI quota error (${d.status}).`};let j=await d.json(),l={};if(Array.isArray(j.buckets))for(let a of j.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=Number(a.remainingFraction)||0,c=Math.round(1e3*b),d=Math.max(0,1e3-c);l[a.modelId]={used:d,total:1e3,resetAt:k(a.resetTime),remainingPercentage:100*b,unlimited:!1}}return{plan:g,quotas:l}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function o(a,b=null){let c=new AbortController,f=setTimeout(()=>c.abort(),1e4);try{let f=await (0,e.proxyAwareFetch)("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:d.Cn}),signal:c.signal},b);if(!f.ok)return null;return await f.json()}catch{return null}finally{clearTimeout(f)}}async function p(a,b,c=null){try{let b,d=await q(a,c),f=d?.cloudaicompanionProject||null,g=new AbortController,i=setTimeout(()=>g.abort(),1e4);try{b=await (0,e.proxyAwareFetch)(h.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":h.userAgent,"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":"1.107.0","x-request-source":"local"},body:JSON.stringify({...f?{project:f}:{}}),signal:g.signal},c)}finally{clearTimeout(i)}if(403===b.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===b.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!b.ok)throw Error(`Antigravity API error: ${b.status}`);let j=await b.json(),l={};if(j.models){let a=["gemini-3.7-flash","gemini-3.6-flash-high","gemini-3.6-flash-medium","gemini-3.6-flash-low","gemini-3-flash-agent","gemini-3.5-flash-medium","gemini-3.5-flash-low","gemini-pro-agent","gemini-3.1-pro-low","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3-flash"];for(let[b,c]of Object.entries(j.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let d=c.quotaInfo.remainingFraction||0,e=100*d,f=Math.round(1e3*d),g=1e3-f;l[b]={used:g,total:1e3,resetAt:k(c.quotaInfo.resetTime),remainingPercentage:e,unlimited:!1,displayName:c.displayName||b}}}return{plan:d?.currentTier?.name||"Unknown",quotas:l,subscriptionInfo:d}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function q(a,b=null){let c=new AbortController,f=setTimeout(()=>c.abort(),1e4);try{let f=await (0,e.proxyAwareFetch)(h.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":h.userAgent,"Content-Type":"application/json","x-request-source":"local"},body:JSON.stringify({metadata:d.Cn,mode:1}),signal:c.signal},b);if(!f.ok)return null;return await f.json()}catch(a){return console.error("[Antigravity Subscription] Error:",a.message),null}finally{clearTimeout(f)}}async function r(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://api.anthropic.com/api/oauth/usage",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":i}},b);if(c.ok){let a=await c.json(),b={},d=a=>a&&"object"==typeof a&&"number"==typeof a.utilization,e=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:k(a.resets_at),unlimited:!1}},f={fable_5:"Fable 5",fable:"Fable 5",sonnet_5:"Sonnet 5",sonnet:"Sonnet",opus:"Opus",haiku:"Haiku"},g=a=>f[a]||a.replace(/_/g," ");d(a.five_hour)&&(b["session (5h)"]=e(a.five_hour)),d(a.seven_day)&&(b["weekly (7d)"]=e(a.seven_day));let h=new Set;for(let[c,f]of Object.entries(a))if(c.startsWith("seven_day_")&&"seven_day"!==c&&d(f)){let a=c.replace("seven_day_","");h.add(a),b[`weekly ${g(a)} (7d)`]=e(f)}return h.has("fable_5")||h.has("fable")||(b["weekly Fable 5 (7d)"]={used:0,total:100,remaining:100,remainingPercentage:100,resetAt:null,unlimited:!1}),{plan:"Claude Code",extraUsage:a.extra_usage??null,quotas:b}}return console.warn(`[Claude Usage] OAuth endpoint returned ${c.status}, falling back to legacy`),await s(a,b)}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}async function s(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://api.anthropic.com/v1/settings",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":i}},b);if(c.ok){let d=await c.json();if(d.organization_id){let c=await (0,e.proxyAwareFetch)("https://api.anthropic.com/v1/organizations/{org_id}/usage".replace("{org_id}",d.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":i}},b);if(c.ok){let a=await c.json();return{plan:d.plan||"Unknown",organization:d.organization_name,quotas:a}}}return{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}function t(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function u(a){let b=Math.max(0,Math.min(100,function(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:k(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function v(a,b,c){let d=t(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=u(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=u(f),g=!0),g}async function w(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://chatgpt.com/backend-api/wham/usage",{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Codex connected. Usage API temporarily unavailable (${c.status}).`};let d=await c.json(),f=d.rate_limit||d.rate_limits||d.rate_limits_by_limit_id?.codex||{},g=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(d),h={};return v(h,"",f),v(h,"review",g),{plan:d.plan_type||d.summary?.plan||"unknown",limitReached:t(f)?.limit_reached||!1,reviewLimitReached:t(g)?.limit_reached||!1,quotas:h}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function x(a,b,c=null){let d=b?.profileArn||"arn:aws:codewhisperer:us-east-1:638616132270:profile/AAAACCCCXXXX",f=b?.authMethod||"builder-id",g=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),h=!1,i=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,e.proxyAwareFetch)(`https://codewhisperer.us-east-1.amazonaws.com/getUsageLimits?${g.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","x-amz-user-agent":"aws-sdk-js/1.0.0 KiroIDE","user-agent":"aws-sdk-js/1.0.0 KiroIDE"}},c)},{name:"codewhisperer-post",run:async()=>(0,e.proxyAwareFetch)("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:d,resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",profileArn:d,resourceType:"AGENTIC_REQUEST"});return(0,e.proxyAwareFetch)(`https://q.us-east-1.amazonaws.com/getUsageLimits?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(h=!0),i.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},d=k(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",e=a.currentUsageWithPrecision||0,f=a.usageLimitWithPrecision||0;if(c[b]={used:e,total:f,remaining:f-e,resetAt:d,unlimited:!1},a.freeTrialInfo){let e=a.freeTrialInfo.currentUsageWithPrecision||0,f=a.freeTrialInfo.usageLimitWithPrecision||0;c[`${b}_freetrial`]={used:e,total:f,remaining:f-e,resetAt:k(a.freeTrialInfo.freeTrialExpiry||d),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){i.push(`${b.name}:${a.message}`)}return h&&"idc"===f?{message:"Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",quotas:{}}:h&&("google"===f||"github"===f)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:h?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:i.length>0?`Unable to fetch Kiro usage right now. (${i[i.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}async function y(a,b){try{if(!b?.resourceUrl)return{message:"Qwen connected. No resource URL available."};return{message:"Qwen connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch Qwen usage."}}}async function z(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function A(a,b){try{return{plan:b?.plan||"Free",message:"Ollama Cloud uses a free tier with light usage limits (resets every 5h & 7d). For detailed usage tracking, visit ollama.com/settings/keys.",quotas:[]}}catch(a){return{message:"Unable to fetch Ollama Cloud usage."}}}async function B(a,b,c=null){if(!a)return{message:"GLM API key not available."};let d=f["glm-cn"===b?"china":"international"];try{let b=await (0,e.proxyAwareFetch)(d,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(!b.ok){if(401===b.status)return{message:"GLM API key invalid or expired."};return{message:`GLM quota API error (${b.status}).`}}let f=await b.json(),g=f?.data&&"object"==typeof f.data?f.data:{},h=Array.isArray(g.limits)?g.limits:[],i={};for(let a of h){if(!a||"TOKENS_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,d=Math.max(0,100-b);i.session={used:b,total:100,remaining:d,remainingPercentage:d,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let j="string"==typeof g.level?g.level:"";return{plan:j?j.charAt(0).toUpperCase()+j.slice(1).toLowerCase():"Unknown",quotas:i}}catch(a){return{message:`GLM error: ${a.message}`}}}function C(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function D(a){return Math.max(0,Number(C(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function E(a){return Math.max(0,Number(C(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function F(a){return D(a)>0||E(a)>0}function G(a,b,c,d,e,f,g,h){var i;let j,l,m,n=d(c);if(n<=0)return;let o=Math.max(0,Number(C(c,e,f))||0);a[b]=(i=function(a,b,c,d,e,f){let g=Number(C(a,c,d))||0;return g>0?new Date(b+g).toISOString():k(C(a,e,f))}(c,...g),j=Math.max(0,n),l=h?Math.max(j-o,0):Math.min(Math.max(0,o),j),m=Math.max(j-l,0),{used:l,total:j,remaining:m,remainingPercentage:j>0?Math.max(0,Math.min(100,m/j*100)):0,resetAt:i,unlimited:!1})}async function H(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let d=g[b]||[],f="";for(let b=0;b<d.length;b+=1){let g=d[b],h=b<d.length-1;try{let b=await (0,e.proxyAwareFetch)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),d=await b.text(),i={};if(d)try{i=JSON.parse(d)}catch{i={}}let j=(i?.base_resp??i?.baseResp)||{},k=Number(j.status_code??j.statusCode)||0,l=String(j.status_msg??j.statusMsg??"").trim(),m=`${l} ${d}`.trim(),n=/token plan|coding plan|invalid api key|invalid key|unauthorized|inactive/i;if(401===b.status||403===b.status||1004===k||n.test(m))return{message:"MiniMax API key invalid or inactive. Use an active Token/Coding Plan key."};if(!b.ok){if(f=`MiniMax usage endpoint error (${b.status})`,(404===b.status||405===b.status||b.status>=500)&&h)continue;return{message:`MiniMax connected. ${f}`}}if(0!==k)return{message:`MiniMax connected. ${l||"Upstream quota API error"}`};let o=i?.model_remains??i?.modelRemains,p=(Array.isArray(o)?o:[]).filter(F);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={};for(let a of p){let b=function(a){let b=String(C(a,"model_name","modelName")||"").trim();return b?b.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()).replace(/\bTo\b/g,"to").replace(/\bTts\b/g,"TTS").replace(/\bHd\b/g,"HD"):"MiniMax"}(a);G(s,`${b} (5h)`,a,D,"current_interval_usage_count","currentIntervalUsageCount",[q,"remains_time","remainsTime","end_time","endTime"],r),G(s,`${b} (7d)`,a,E,"current_weekly_usage_count","currentWeeklyUsageCount",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}var I=c(90737),J=c(38709);function K(a,b=0){if(!Buffer.isBuffer(a)||b<0||a.length-b<5)return null;let c=a[b];if(0!==c&&1!==c&&128!==c&&129!==c)return null;let d=b+5,e=a.readUInt32BE(b+1);return e>a.length-d?null:{flag:c,payloadStart:d,payloadLength:e}}function L(a,b){let c=0n,d=0n,e=b;for(;;){if(e>=a.length)return null;let b=a[e];if(c|=BigInt(127&b)<<d,e+=1,(128&b)==0)break;if((d+=7n)>70n)return null}return{value:Number(c),next:e}}function M(a){let b=new Map,c=0;for(;c<a.length;){let d=function(a,b){let c=L(a,b);if(!c)return null;let d=c.value>>>3,e=7&c.value;if(!d)return null;if(0===e){let b=L(a,c.next);return b?{fieldNumber:d,field:{wireType:e,value:b.value},next:b.next}:null}if(2===e){let b=L(a,c.next);return!b||b.value<0||b.next+b.value>a.length?null:{fieldNumber:d,field:{wireType:e,bytes:a.subarray(b.next,b.next+b.value)},next:b.next+b.value}}let f=1===e?8:4*(5===e);return!f||c.next+f>a.length?null:{fieldNumber:d,field:{wireType:e,bytes:a.subarray(c.next,c.next+f)},next:c.next+f}}(a,c);if(!d)return null;b.set(d.fieldNumber,d.field),c=d.next}return b}let N=`${I.Nr}/billing?format=credits`,O=`${I.Nr}/user?include=subscription`,P=Buffer.from([0,0,0,0,0]);function Q(a,b=NaN){a&&"object"==typeof a&&!Array.isArray(a)&&"val"in a&&(a=a.val);let c=Number(a);return Number.isFinite(c)?c:b}function R(a,b){let c=a?.subscriptionTier??a?.subscription_tier??a?.subscription?.tier??b?.subscriptionTier??b?.subscription_tier;return"string"==typeof c?c.trim():""}function S(a,b,c=null){let d=Math.max(0,Q(b,0)),e=Math.max(0,Q(a,0));return d<=0?{used:e,total:0,remainingPercentage:0,resetAt:c,unlimited:!1}:{used:e,total:d,remainingPercentage:Math.max(0,(d-e)/d*100),resetAt:c,unlimited:!1}}async function T(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/grpc-web+proto","X-Grpc-Web":"1",Accept:"application/grpc-web+proto"},body:P},b);if(!c?.ok)return null;let d=await c.arrayBuffer().catch(()=>null);if(!d)return null;return function(a){if(!Buffer.isBuffer(a)||0===a.length)return null;try{let b=K(a,0)?function(a){let b=0;for(;b<a.length;){let c=K(a,b);if(!c)break;let d=c.payloadStart+c.payloadLength;if((128&c.flag)==0)return a.subarray(c.payloadStart,d);b=d}return null}(a):a;if(!b)return null;let c=M(b),d=c?.get(1);if(!d||2!==d.wireType)return null;let e=M(d.bytes);if(!e)return null;let f=e.get(1),g=0;if(f?.wireType===5)g=f.bytes.readFloatLE(0);else if(f?.wireType===1)g=f.bytes.readDoubleLE(0);else if(f)return null;if(!Number.isFinite(g)||g<0)return null;return{percentUsed:Math.min(100,100*g),resetAt:function(a){if(!a||2!==a.wireType)return null;let b=M(a.bytes);if(!b)return null;let c=b.get(1),d=b.get(2),e=c?.wireType===0?c.value:0,f=new Date(1e3*e+Math.round((d?.wireType===0?d.value:0)/1e6));return Number.isNaN(f.getTime())?null:f.toISOString()}(e.get(5))}}catch{return null}}(Buffer.from(d))}catch{return null}}async function U(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let d=(0,J.Ab)(a,b||{}),[f,g]=await Promise.all([(0,e.proxyAwareFetch)(N,{method:"GET",headers:d},c),(0,e.proxyAwareFetch)(O,{method:"GET",headers:d},c).catch(()=>null)]);if(401===f.status||403===f.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!f.ok){let a=await f.text().catch(()=>"");return{message:`Grok CLI billing API error (${f.status})${a?`: ${a.slice(0,200)}`:""}`}}let h=await f.json().catch(()=>null);if(!h||"object"!=typeof h)return{message:"Grok CLI billing response was not JSON."};let i=function(a,b=null,c=""){let d=a&&"object"==typeof a?a:{},e=d.config&&"object"==typeof d.config&&!Array.isArray(d.config)?d.config:d,f=function(a){if(!a)return null;try{let b="string"==typeof a&&/^\d+$/.test(a)?Number(a):a;if("number"==typeof b)return new Date(b<1e12?1e3*b:b).toISOString();return new Date(a).toISOString()}catch{return null}}(e.billingPeriodEnd??e.billing_period_end??e.currentPeriod?.end??e.resetAt??e.resetsAt??e.periodEnd??d.billingPeriodEnd??d.billing_period_end??d.resetAt??d.resetsAt??d.periodEnd),g={},h=R(b,e),i=!!h&&!/^(free|none|null)$/i.test(h),j=Q(e.monthlyLimit??e.monthly_limit??d.monthlyLimit??d.monthly_limit),k=Q(e.includedUsed??e.included_used??d.includedUsed??d.included_used),l=Q(e.totalUsed??e.total_used??d.totalUsed??d.total_used);j>0&&(g["Monthly included"]=S(Number.isFinite(k)?k:Number.isFinite(l)?l:0,j,f));let m=Q(e.onDemandCap??d.onDemandCap),n=Q(e.onDemandUsed??d.onDemandUsed);m>0?g["On-demand"]=S(Number.isFinite(n)?n:0,m,f):!i&&0===m&&Number.isFinite(n)&&(g["On-demand"]={used:1,total:1,remainingPercentage:0,resetAt:f,unlimited:!1});let o=Q(e.prepaidBalance??d.prepaidBalance);o>0&&(g.Prepaid={used:0,total:o,remainingPercentage:100,resetAt:null,unlimited:!1});let p=Q(e.creditUsagePercent??e.credit_usage_percent??d.creditUsagePercent??d.credit_usage_percent);return Number.isFinite(p)&&p>=0&&(g["Weekly SuperGrok"]=S(Math.min(100,p),100,f)),{plan:function(a,b,c){let d=function(a){try{return({0:"Free",1:"SuperGrok",2:"X Basic",3:"X Premium",4:"X Premium Plus",5:"SuperGrok Heavy",6:"SuperGrok Lite"})[JSON.parse(Buffer.from(a.split(".")[1],"base64url")).tier]||""}catch{return""}}(c);if(d)return d;let e=R(a,b);return e?e.replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()):a?.hasGrokCodeAccess===!0?"Grok Code":"Grok Build"}(b,e,c),quotas:g,subscriptionAccess:i}}(h,g?.ok?await g.json().catch(()=>null):null,a);if(!i.quotas["Weekly SuperGrok"]&&i.subscriptionAccess){let b=await T(a,c);b&&Number.isFinite(b.percentUsed)&&(i.quotas["Weekly SuperGrok"]=S(Math.round(Math.max(0,Math.min(100,b.percentUsed))),100,b.resetAt||null))}return 0===Object.keys(i.quotas).length?{plan:i.plan,message:i.subscriptionAccess?"Subscription access is active; Grok does not expose a numeric included quota.":"Grok Build has no numeric quota available for this account."}:{plan:i.plan,quotas:i.quotas}}function V(a){return String(a||"").trim().toLowerCase()}async function W(a,b,c){if(!a?.accessToken)return b;let f=b?.subscriptionInfo?.cloudaicompanionProject||a?.providerSpecificData?.projectId||null;try{var g;let h,i,j=await (0,e.proxyAwareFetch)("https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",{method:"POST",headers:{Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,d.A9)(),"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":"1.107.0","x-request-source":"local"},body:JSON.stringify(f?{project:f}:{})},c);if(!j.ok)return b;let k=await j.json(),l=(g=k?.models,h=Object.entries(g||{}).filter(([,a])=>!a?.isInternal&&a?.quotaInfo),i="gemini 3.7 flash",h.find(([,a])=>V(a?.displayName)===i)||h.find(([,a])=>{let b=V(a?.displayName);return b.startsWith(i)&&b.includes("high")})||h.find(([,a])=>V(a?.displayName).startsWith(i))||h.find(([a])=>{let b=V(a);return b.includes("gemini")&&b.includes("3.7")&&b.includes("flash")})||null);if(!l)return b;let[,m]=l,n=Number(m.quotaInfo?.remainingFraction)||0,o=Math.round(1e3*n);return{...b,quotas:{...b?.quotas||{},"gemini-3.7-flash":{used:1e3-o,total:1e3,resetAt:function(a){if(!a)return null;try{if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a&&/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}catch{return null}}(m.quotaInfo?.resetTime),remainingPercentage:100*n,unlimited:!1,displayName:"Gemini 3.7 Flash"}}}}catch(a){return console.warn("[Antigravity Usage] Unable to merge Gemini 3.7 Flash quota:",a.message),b}}async function X(a,b=null){if(a?.provider==="grok-cli")return await U(a.accessToken,a.providerSpecificData,b);let c=await j(a,b);return a?.provider!=="antigravity"?c:await W(a,c,b)}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},71998:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,nv:()=>d.nv,o5:()=>d.o5,op:()=>d.op,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.updateProviderConnection,uv:()=>d.uv,yg:()=>d.yg});var d=c(89718)},78335:()=>{},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},96487:()=>{}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=3031,exports.ids=[3031],exports.modules={23248:(a,b,c)=>{c.d(b,{ensureClusterSyncService:()=>t});var d=c(77598),e=c.n(d),f=c(48161),g=c.n(f),h=c(70321);function i(a){return null==a?"":String(a).trim()}var j=c(43913),k=c(79709),l=c(75870);let m="__blueRouterClusterSync";function n(){return globalThis[m]||(globalThis[m]={timer:null,running:null,started:!1,heartbeatSucceeded:!1}),globalThis[m]}async function o(a=null){var b,c;let d=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==d.role)throw Error("Node is not in Standby mode");if(!d.masterUrl)throw Error("Master URL is not configured");if(!d.syncToken)throw Error("Sync token is not configured");let f=await fetch((b=d.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/snapshot`),{headers:{Authorization:`Bearer ${d.syncToken}`,"X-BlueRouter-Node-Id":d.nodeId},cache:"no-store",signal:AbortSignal.timeout(12e4)});if(!f.ok)throw Error((await f.json().catch(()=>({}))).error||`Master returned HTTP ${f.status}`);if((Number(f.headers.get("content-length"))||0)>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let g=await f.text();if(Buffer.byteLength(g,"utf8")>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let h=JSON.parse(g);if(!h||"object"!=typeof h||!h.manifest||!h.payload)throw Error("Invalid cluster snapshot response");if(c=h.payload,e().createHash("sha256").update(JSON.stringify(c)).digest("hex")!==h.manifest.sha256)throw Error("Cluster snapshot checksum mismatch");if(2!==Number(h.payload?.backup?.formatVersion))throw Error("Unsupported cluster backup format");if(Number(h.manifest.schemaVersion)!==(0,j.q)())throw Error(`Schema version mismatch: Master=${h.manifest.schemaVersion}, Standby=${(0,j.q)()}`);return h}async function p({force:a=!1,allowDisabled:b=!1}={}){let c=n();return c.running||(c.running=(async()=>{let c=await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role||!c.enabled&&!b)throw Error("Standby sync is not enabled");let d=new Date().toISOString();await (0,l.X_)({lastAttemptAt:d});try{let b=await o(c);if(!a&&b.manifest.sha256===c.lastSnapshotHash){let a={status:"unchanged",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastError:"",lastResult:a}),a}let d=await (0,h.K1)(b.payload,{returnExport:!1});try{!function({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let d=i(b),e=i(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let f="1"===process.env.NINE_ROUTER_PROXY_MANAGED,g=!1;f&&(d||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),e||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),d&&(process.env.HTTP_PROXY=d,process.env.HTTPS_PROXY=d,process.env.ALL_PROXY=d,process.env.NINE_ROUTER_PROXY_URL=d,g=!0),e&&(process.env.NO_PROXY=e,process.env.NINE_ROUTER_NO_PROXY=e,g=!0),g?process.env.NINE_ROUTER_PROXY_MANAGED="1":f&&delete process.env.NINE_ROUTER_PROXY_MANAGED}(await (0,h.mt)())}catch(a){console.warn("[cluster] failed to apply restored outbound proxy settings:",a?.message||a)}let e={status:"synced",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt,serverCount:d.resourceMonitorServerCount||0,historyCount:d.resourceMonitorHistoryCount||0,brandingAssetCount:d.brandingAssetCount||0};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastSnapshotHash:b.manifest.sha256,lastError:"",lastResult:e}),e}catch(a){throw await (0,l.X_)({lastError:a?.message||"Cluster sync failed",lastResult:{status:"error"}}),a}})().finally(()=>{c.running=null})),c.running}async function q(a){if(!a?.id||!a?.type)return;let b="ok",c="Command completed";try{if("sync_now"===a.type){let a=await p({force:!0,allowDisabled:!0});c=`Sync completed: ${a.status}`}else if("pause_sync"===a.type)await (0,l.Q1)({enabled:!1}),c="Scheduled sync paused";else if("resume_sync"===a.type)await (0,l.Q1)({enabled:!0}),c="Scheduled sync resumed";else throw Error(`Unsupported Master command: ${a.type}`)}catch(a){b="error",c=a?.message||"Command failed"}await (0,l.X_)({commandAck:{id:a.id,status:b,message:c,completedAt:new Date().toISOString()}})}async function r(a=null){var b;let c=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role)return{skipped:!0};if(!c.masterUrl||!c.syncToken)throw Error("Master URL and sync token are required for heartbeat");let d=await fetch((b=c.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/heartbeat`),{method:"POST",headers:{Authorization:`Bearer ${c.syncToken}`,"Content-Type":"application/json"},body:JSON.stringify({nodeId:c.nodeId,hostname:g().hostname(),appVersion:(0,k.s)(),schemaVersion:(0,j.q)(),syncEnabled:c.enabled,intervalMinutes:c.intervalMinutes,lastAttemptAt:c.lastAttemptAt,lastSyncAt:c.lastSyncAt,lastSnapshotHash:c.lastSnapshotHash,lastError:c.lastError,commandAck:c.commandAck}),cache:"no-store",signal:AbortSignal.timeout(15e3)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||`Master heartbeat returned HTTP ${d.status}`);return c.commandAck&&e.ackAccepted&&await (0,l.X_)({commandAck:null}),e.command&&await q(e.command),e}async function s(){let a=n();try{let b=await (0,l.Jc)({includeSecrets:!0});if("slave"===b.role){let c=!a.heartbeatSucceeded,d=await r(b).then(b=>(a.heartbeatSucceeded=!0,b),b=>(a.heartbeatSucceeded=!1,console.warn("[cluster] heartbeat failed:",b?.message||b),null)),e=await (0,l.Jc)({includeSecrets:!0});if(!e.enabled)return;let f=Date.parse(e.lastAttemptAt||"")||0,g=60*e.intervalMinutes*1e3,h=d&&c&&d.command?.type!=="sync_now";(h||Date.now()-f>=g)&&await p({force:!!h}).catch(a=>{console.warn("[cluster] scheduled sync failed:",a?.message||a)})}else a.heartbeatSucceeded=!1}finally{a.timer=setTimeout(s,3e4),a.timer.unref?.()}}function t(){let a=n();a.started||(a.started=!0,a.timer=setTimeout(s,5e3),a.timer.unref?.())}},34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
|
|
1
|
+
"use strict";exports.id=3031,exports.ids=[3031,3960],exports.modules={23248:(a,b,c)=>{c.d(b,{ensureClusterSyncService:()=>t});var d=c(77598),e=c.n(d),f=c(48161),g=c.n(f),h=c(70321);function i(a){return null==a?"":String(a).trim()}var j=c(43913),k=c(79709),l=c(75870);let m="__blueRouterClusterSync";function n(){return globalThis[m]||(globalThis[m]={timer:null,running:null,started:!1,heartbeatSucceeded:!1}),globalThis[m]}async function o(a=null){var b,c;let d=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==d.role)throw Error("Node is not in Standby mode");if(!d.masterUrl)throw Error("Master URL is not configured");if(!d.syncToken)throw Error("Sync token is not configured");let f=await fetch((b=d.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/snapshot`),{headers:{Authorization:`Bearer ${d.syncToken}`,"X-BlueRouter-Node-Id":d.nodeId},cache:"no-store",signal:AbortSignal.timeout(12e4)});if(!f.ok)throw Error((await f.json().catch(()=>({}))).error||`Master returned HTTP ${f.status}`);if((Number(f.headers.get("content-length"))||0)>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let g=await f.text();if(Buffer.byteLength(g,"utf8")>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let h=JSON.parse(g);if(!h||"object"!=typeof h||!h.manifest||!h.payload)throw Error("Invalid cluster snapshot response");if(c=h.payload,e().createHash("sha256").update(JSON.stringify(c)).digest("hex")!==h.manifest.sha256)throw Error("Cluster snapshot checksum mismatch");if(2!==Number(h.payload?.backup?.formatVersion))throw Error("Unsupported cluster backup format");if(Number(h.manifest.schemaVersion)!==(0,j.q)())throw Error(`Schema version mismatch: Master=${h.manifest.schemaVersion}, Standby=${(0,j.q)()}`);return h}async function p({force:a=!1,allowDisabled:b=!1}={}){let c=n();return c.running||(c.running=(async()=>{let c=await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role||!c.enabled&&!b)throw Error("Standby sync is not enabled");let d=new Date().toISOString();await (0,l.X_)({lastAttemptAt:d});try{let b=await o(c);if(!a&&b.manifest.sha256===c.lastSnapshotHash){let a={status:"unchanged",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastError:"",lastResult:a}),a}let d=await (0,h.K1)(b.payload,{returnExport:!1});try{!function({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let d=i(b),e=i(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let f="1"===process.env.NINE_ROUTER_PROXY_MANAGED,g=!1;f&&(d||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),e||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),d&&(process.env.HTTP_PROXY=d,process.env.HTTPS_PROXY=d,process.env.ALL_PROXY=d,process.env.NINE_ROUTER_PROXY_URL=d,g=!0),e&&(process.env.NO_PROXY=e,process.env.NINE_ROUTER_NO_PROXY=e,g=!0),g?process.env.NINE_ROUTER_PROXY_MANAGED="1":f&&delete process.env.NINE_ROUTER_PROXY_MANAGED}(await (0,h.mt)())}catch(a){console.warn("[cluster] failed to apply restored outbound proxy settings:",a?.message||a)}let e={status:"synced",snapshotHash:b.manifest.sha256,masterCreatedAt:b.manifest.createdAt,serverCount:d.resourceMonitorServerCount||0,historyCount:d.resourceMonitorHistoryCount||0,brandingAssetCount:d.brandingAssetCount||0};return await (0,l.X_)({lastSyncAt:new Date().toISOString(),lastSnapshotHash:b.manifest.sha256,lastError:"",lastResult:e}),e}catch(a){throw await (0,l.X_)({lastError:a?.message||"Cluster sync failed",lastResult:{status:"error"}}),a}})().finally(()=>{c.running=null})),c.running}async function q(a){if(!a?.id||!a?.type)return;let b="ok",c="Command completed";try{if("sync_now"===a.type){let a=await p({force:!0,allowDisabled:!0});c=`Sync completed: ${a.status}`}else if("pause_sync"===a.type)await (0,l.Q1)({enabled:!1}),c="Scheduled sync paused";else if("resume_sync"===a.type)await (0,l.Q1)({enabled:!0}),c="Scheduled sync resumed";else throw Error(`Unsupported Master command: ${a.type}`)}catch(a){b="error",c=a?.message||"Command failed"}await (0,l.X_)({commandAck:{id:a.id,status:b,message:c,completedAt:new Date().toISOString()}})}async function r(a=null){var b;let c=a||await (0,l.Jc)({includeSecrets:!0});if("slave"!==c.role)return{skipped:!0};if(!c.masterUrl||!c.syncToken)throw Error("Master URL and sync token are required for heartbeat");let d=await fetch((b=c.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/heartbeat`),{method:"POST",headers:{Authorization:`Bearer ${c.syncToken}`,"Content-Type":"application/json"},body:JSON.stringify({nodeId:c.nodeId,hostname:g().hostname(),appVersion:(0,k.s)(),schemaVersion:(0,j.q)(),syncEnabled:c.enabled,intervalMinutes:c.intervalMinutes,lastAttemptAt:c.lastAttemptAt,lastSyncAt:c.lastSyncAt,lastSnapshotHash:c.lastSnapshotHash,lastError:c.lastError,commandAck:c.commandAck}),cache:"no-store",signal:AbortSignal.timeout(15e3)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||`Master heartbeat returned HTTP ${d.status}`);return c.commandAck&&e.ackAccepted&&await (0,l.X_)({commandAck:null}),e.command&&await q(e.command),e}async function s(){let a=n();try{let b=await (0,l.Jc)({includeSecrets:!0});if("slave"===b.role){let c=!a.heartbeatSucceeded,d=await r(b).then(b=>(a.heartbeatSucceeded=!0,b),b=>(a.heartbeatSucceeded=!1,console.warn("[cluster] heartbeat failed:",b?.message||b),null)),e=await (0,l.Jc)({includeSecrets:!0});if(!e.enabled)return;let f=Date.parse(e.lastAttemptAt||"")||0,g=60*e.intervalMinutes*1e3,h=d&&c&&d.command?.type!=="sync_now";(h||Date.now()-f>=g)&&await p({force:!!h}).catch(a=>{console.warn("[cluster] scheduled sync failed:",a?.message||a)})}else a.heartbeatSucceeded=!1}finally{a.timer=setTimeout(s,3e4),a.timer.unref?.()}}function t(){let a=n();a.started||(a.started=!0,a.timer=setTimeout(s,5e3),a.timer.unref?.())}},34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
|
|
2
2
|
PRAGMA journal_mode = WAL;
|
|
3
3
|
PRAGMA synchronous = NORMAL;
|
|
4
4
|
PRAGMA temp_store = MEMORY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3484,exports.ids=[3484],exports.modules={27099:(a,b,c)=>{function d(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}c.d(b,{MI:()=>d}),c(70321)},59274:(a,b,c)=>{c.r(b),c.d(b,{pruneStaleAllowedModels:()=>F});var d=c(70321),e=c(24081),f=c(50743),g=c(27099),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(55511),m=c.n(l),n=c(21820),o=c.n(n);let p=process.env.DATA_DIR||process.env.BLUEROUTER_DATA_DIR||k().join(o().homedir(),".bluerouter");k().join(p,"ollama-model-memory.json");let q=["minRamFreeMb","minVramFreeMb","loadedRamFreeMb","loadedVramFreeMb","safetyMarginMb"];function r(a,b=0){let c=Number(a);return Number.isFinite(c)&&c>=0?c:b}function s(a={},b={}){let c={};if(!a||"object"!=typeof a||Array.isArray(a))return c;for(let[d,e]of Object.entries(a)){let a=String(d||"").trim();if(!a||!e||"object"!=typeof e||Array.isArray(e))continue;let f=function(a,{partial:b=!1,preserveEnabled:c=!1}={}){let d={};for(let c of q)if(b){var e;null!=(e=a?.[c])&&""!==String(e).trim()&&(d[c]=r(a[c],0))}else d[c]=r(a?.[c],0);let f=String(a?.notes||"").trim();return f&&(d.notes=f),c&&a&&Object.prototype.hasOwnProperty.call(a,"enabled")&&(d.enabled=!1!==a.enabled),d}(e,b),g=q.some(a=>Object.prototype.hasOwnProperty.call(f,a)),h=b.preserveEnabled&&Object.prototype.hasOwnProperty.call(f,"enabled");(g||f.notes||h)&&(c[a]=f)}return c}let t=process.env.DATA_DIR||process.env.BLUEROUTER_DATA_DIR||k().join(o().homedir(),".bluerouter"),u=k().join(t,"ollama-nodes.json");async function v(){await i().mkdir(t,{recursive:!0});try{await i().access(u)}catch{await i().writeFile(u,JSON.stringify({nodes:[]},null,2))}}async function w(){await v();try{let a=await i().readFile(u,"utf8"),b=JSON.parse(a||"{}");return{nodes:Array.isArray(b.nodes)?b.nodes:[]}}catch{return{nodes:[]}}}function x(){return new Date().toISOString()}function y(a){return Array.isArray(a)?[...new Set(a.map(a=>Number(a)).filter(a=>Number.isFinite(a)&&a>0))]:[...new Set(String(a||"11434").split(/[\s,;]+/).map(a=>Number(a.trim())).filter(a=>Number.isFinite(a)&&a>0))]}function z(a,b={}){if(!a)return b;if("object"==typeof a&&!Array.isArray(a))return a;try{let c=JSON.parse(String(a));return c&&"object"==typeof c&&!Array.isArray(c)?c:b}catch{return b}}function A(a,b=[]){if(!a||"object"!=typeof a)return a||null;let c=function(a=[]){let b=y(a);return b.length?new Set(b.map(Number)):null}(b);if(!c)return a;let d={...a};return Array.isArray(d.instances)&&(d.instances=d.instances.filter(a=>{let b=Number(a?.port);return Number.isFinite(b)&&c.has(b)})),Array.isArray(d.reservations)&&(d.reservations=d.reservations.filter(a=>{if(!a?.port)return!0;let b=Number(a.port);return Number.isFinite(b)&&c.has(b)})),d}async function B(){return(await w()).nodes.map(a=>{var b;return(b=function(a={},b={}){let c=String(a.host??b.host??"").trim(),d=Number(a.agentPort??b.agentPort??19999)||19999,e=y(a.ollamaPorts??b.ollamaPorts??[11434]),f=s(z(a.modelMemoryRequirements??b.modelMemoryRequirements,b.modelMemoryRequirements||{}),{partial:!0,preserveEnabled:!0}),g=b.id||a.id||m().randomUUID(),h=String(a.agentToken??b.agentToken??m().randomBytes(24).toString("hex")).trim(),i=function(a,b,c={}){let d=new Map((Array.isArray(c.instances)?c.instances:[]).map(a=>[Number(a.port),a])),e=new Map((Array.isArray(a)?a:[]).map(a=>[Number(a.port),a]));return b.map(a=>(function(a={},b={}){var c;let d=Number(a.port??b.port??11434)||11434;return{id:String(a.id??b.id??`ollama-${d}`).trim()||`ollama-${d}`,name:String(a.name??b.name??`Ollama :${d}`).trim()||`Ollama :${d}`,port:d,enabled:a.enabled??b.enabled??!0,gpuMode:["auto","cpu","specific","all"].includes(a.gpuMode??b.gpuMode)?a.gpuMode??b.gpuMode:"auto",gpuIndices:Array.isArray(c=a.gpuIndices??b.gpuIndices??[])?[...new Set(c.map(a=>Number(a)).filter(a=>Number.isInteger(a)&&a>=0))]:[...new Set(String(c||"").split(/[\s,;]+/).map(a=>Number(a)).filter(a=>Number.isInteger(a)&&a>=0))],allowMultiGpuSplit:a.allowMultiGpuSplit??b.allowMultiGpuSplit??!1,tags:Array.isArray(a.tags??b.tags)?(a.tags??b.tags).map(a=>String(a).trim()).filter(Boolean):[],modelMemoryRequirements:s(z(a.modelMemoryRequirements??b.modelMemoryRequirements,b.modelMemoryRequirements||{}),{partial:!0,preserveEnabled:!0})}})(e.get(Number(a))||{},d.get(Number(a))||{port:a}))}(a.instances??b.instances,e.length?e:[11434],b),j=A(b.lastStatus||null,e),k=A(b.lastEvaluation||null,e);return{id:g,name:String(a.name??b.name??c??"Ollama Node").trim()||c||"Ollama Node",host:c,sshPort:Number(a.sshPort??b.sshPort??22)||22,sshUser:String(a.sshUser??b.sshUser??"root").trim()||"root",useSudo:a.useSudo??b.useSudo??!1,agentPort:d,agentToken:h,ollamaPorts:e.length?e:[11434],instances:i,refreshIntervalMs:Math.max(5e3,Number(a.refreshIntervalMs??b.refreshIntervalMs??15e3)||15e3),enabled:a.enabled??b.enabled??!0,ufwAllowFrom:String(a.ufwAllowFrom??b.ufwAllowFrom??"").trim(),useGlobalModelMemory:a.useGlobalModelMemory??b.useGlobalModelMemory??!0,modelMemoryRequirements:f,notes:String(a.notes??b.notes??"").trim(),lastStatus:j,lastEvaluation:k,lastStatusAt:b.lastStatusAt||null,lastError:b.lastError||null,lastInstallAt:b.lastInstallAt||null,lastInstallOk:b.lastInstallOk||!1,lastInstallLog:b.lastInstallLog||"",createdAt:b.createdAt||x(),updatedAt:x()}}(a,a))?{...b,sshPassword:void 0,sudoPassword:void 0}:null})}let C=/^auto(\/|$)/;async function D(a){return!function(a=[]){return a.some(a=>"ollama-local"===String(a?.provider||"").toLowerCase()&&!1!==a.isActive)}(a)&&0===(await B().catch(()=>[])||[]).length}async function E(){let a=new Set;for(let b of await (0,d.Uv)().catch(()=>[])||[]){let c=String(b?.exposedModel||b?.model||b?.name||b?.id||"").trim();c&&!c.includes("/")&&a.add(c)}return a}async function F(){await (0,d.PX)({limit:1});let a=await (0,d.getProviderConnections)({includePersonal:!0}).catch(()=>[])||[],b=await E(),c=await D(a||[]),h=await (0,e.c)(),i=0,j=0,k=0,l=new Set;h.transaction(()=>{for(let a of h.all("SELECT id, allowedModels FROM apiKeys")){i+=1;let d=(0,g.MI)((0,f.q)(a.allowedModels,[]));if(0===d.length){k+=1;continue}let e=d.filter(a=>{let d=(!!(a.includes("/")||C.test(a))||!!b.has(a))&&!(c&&/^ollama-local\//i.test(a));return d||l.add(a),d});if(e.length===d.length)continue;let m=h.run("UPDATE apiKeys SET allowedModels = ? WHERE id = ?",[(0,f.s)(e),a.id]);j+=Number(m?.changes??0)}});let m=[...l].sort();return m.length>0&&console.log(`[ApiKeyModelPrune] Pruned ${m.length} stale model(s) from ${j} API key(s): ${m.join(", ")}`),{scanned:i,updated:j,legacyFullAccessSkipped:k,removedModels:m,prunedLocalModels:c}}},63960:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(82009);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},82009:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}}};
|
|
1
|
+
"use strict";exports.id=3484,exports.ids=[3484,3960],exports.modules={27099:(a,b,c)=>{function d(a){return Array.isArray(a)?[...new Set(a.map(a=>String(a||"").trim()).filter(Boolean))]:[]}c.d(b,{MI:()=>d}),c(70321)},59274:(a,b,c)=>{c.r(b),c.d(b,{pruneStaleAllowedModels:()=>F});var d=c(70321),e=c(24081),f=c(50743),g=c(27099),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(55511),m=c.n(l),n=c(21820),o=c.n(n);let p=process.env.DATA_DIR||process.env.BLUEROUTER_DATA_DIR||k().join(o().homedir(),".bluerouter");k().join(p,"ollama-model-memory.json");let q=["minRamFreeMb","minVramFreeMb","loadedRamFreeMb","loadedVramFreeMb","safetyMarginMb"];function r(a,b=0){let c=Number(a);return Number.isFinite(c)&&c>=0?c:b}function s(a={},b={}){let c={};if(!a||"object"!=typeof a||Array.isArray(a))return c;for(let[d,e]of Object.entries(a)){let a=String(d||"").trim();if(!a||!e||"object"!=typeof e||Array.isArray(e))continue;let f=function(a,{partial:b=!1,preserveEnabled:c=!1}={}){let d={};for(let c of q)if(b){var e;null!=(e=a?.[c])&&""!==String(e).trim()&&(d[c]=r(a[c],0))}else d[c]=r(a?.[c],0);let f=String(a?.notes||"").trim();return f&&(d.notes=f),c&&a&&Object.prototype.hasOwnProperty.call(a,"enabled")&&(d.enabled=!1!==a.enabled),d}(e,b),g=q.some(a=>Object.prototype.hasOwnProperty.call(f,a)),h=b.preserveEnabled&&Object.prototype.hasOwnProperty.call(f,"enabled");(g||f.notes||h)&&(c[a]=f)}return c}let t=process.env.DATA_DIR||process.env.BLUEROUTER_DATA_DIR||k().join(o().homedir(),".bluerouter"),u=k().join(t,"ollama-nodes.json");async function v(){await i().mkdir(t,{recursive:!0});try{await i().access(u)}catch{await i().writeFile(u,JSON.stringify({nodes:[]},null,2))}}async function w(){await v();try{let a=await i().readFile(u,"utf8"),b=JSON.parse(a||"{}");return{nodes:Array.isArray(b.nodes)?b.nodes:[]}}catch{return{nodes:[]}}}function x(){return new Date().toISOString()}function y(a){return Array.isArray(a)?[...new Set(a.map(a=>Number(a)).filter(a=>Number.isFinite(a)&&a>0))]:[...new Set(String(a||"11434").split(/[\s,;]+/).map(a=>Number(a.trim())).filter(a=>Number.isFinite(a)&&a>0))]}function z(a,b={}){if(!a)return b;if("object"==typeof a&&!Array.isArray(a))return a;try{let c=JSON.parse(String(a));return c&&"object"==typeof c&&!Array.isArray(c)?c:b}catch{return b}}function A(a,b=[]){if(!a||"object"!=typeof a)return a||null;let c=function(a=[]){let b=y(a);return b.length?new Set(b.map(Number)):null}(b);if(!c)return a;let d={...a};return Array.isArray(d.instances)&&(d.instances=d.instances.filter(a=>{let b=Number(a?.port);return Number.isFinite(b)&&c.has(b)})),Array.isArray(d.reservations)&&(d.reservations=d.reservations.filter(a=>{if(!a?.port)return!0;let b=Number(a.port);return Number.isFinite(b)&&c.has(b)})),d}async function B(){return(await w()).nodes.map(a=>{var b;return(b=function(a={},b={}){let c=String(a.host??b.host??"").trim(),d=Number(a.agentPort??b.agentPort??19999)||19999,e=y(a.ollamaPorts??b.ollamaPorts??[11434]),f=s(z(a.modelMemoryRequirements??b.modelMemoryRequirements,b.modelMemoryRequirements||{}),{partial:!0,preserveEnabled:!0}),g=b.id||a.id||m().randomUUID(),h=String(a.agentToken??b.agentToken??m().randomBytes(24).toString("hex")).trim(),i=function(a,b,c={}){let d=new Map((Array.isArray(c.instances)?c.instances:[]).map(a=>[Number(a.port),a])),e=new Map((Array.isArray(a)?a:[]).map(a=>[Number(a.port),a]));return b.map(a=>(function(a={},b={}){var c;let d=Number(a.port??b.port??11434)||11434;return{id:String(a.id??b.id??`ollama-${d}`).trim()||`ollama-${d}`,name:String(a.name??b.name??`Ollama :${d}`).trim()||`Ollama :${d}`,port:d,enabled:a.enabled??b.enabled??!0,gpuMode:["auto","cpu","specific","all"].includes(a.gpuMode??b.gpuMode)?a.gpuMode??b.gpuMode:"auto",gpuIndices:Array.isArray(c=a.gpuIndices??b.gpuIndices??[])?[...new Set(c.map(a=>Number(a)).filter(a=>Number.isInteger(a)&&a>=0))]:[...new Set(String(c||"").split(/[\s,;]+/).map(a=>Number(a)).filter(a=>Number.isInteger(a)&&a>=0))],allowMultiGpuSplit:a.allowMultiGpuSplit??b.allowMultiGpuSplit??!1,tags:Array.isArray(a.tags??b.tags)?(a.tags??b.tags).map(a=>String(a).trim()).filter(Boolean):[],modelMemoryRequirements:s(z(a.modelMemoryRequirements??b.modelMemoryRequirements,b.modelMemoryRequirements||{}),{partial:!0,preserveEnabled:!0})}})(e.get(Number(a))||{},d.get(Number(a))||{port:a}))}(a.instances??b.instances,e.length?e:[11434],b),j=A(b.lastStatus||null,e),k=A(b.lastEvaluation||null,e);return{id:g,name:String(a.name??b.name??c??"Ollama Node").trim()||c||"Ollama Node",host:c,sshPort:Number(a.sshPort??b.sshPort??22)||22,sshUser:String(a.sshUser??b.sshUser??"root").trim()||"root",useSudo:a.useSudo??b.useSudo??!1,agentPort:d,agentToken:h,ollamaPorts:e.length?e:[11434],instances:i,refreshIntervalMs:Math.max(5e3,Number(a.refreshIntervalMs??b.refreshIntervalMs??15e3)||15e3),enabled:a.enabled??b.enabled??!0,ufwAllowFrom:String(a.ufwAllowFrom??b.ufwAllowFrom??"").trim(),useGlobalModelMemory:a.useGlobalModelMemory??b.useGlobalModelMemory??!0,modelMemoryRequirements:f,notes:String(a.notes??b.notes??"").trim(),lastStatus:j,lastEvaluation:k,lastStatusAt:b.lastStatusAt||null,lastError:b.lastError||null,lastInstallAt:b.lastInstallAt||null,lastInstallOk:b.lastInstallOk||!1,lastInstallLog:b.lastInstallLog||"",createdAt:b.createdAt||x(),updatedAt:x()}}(a,a))?{...b,sshPassword:void 0,sudoPassword:void 0}:null})}let C=/^auto(\/|$)/;async function D(a){return!function(a=[]){return a.some(a=>"ollama-local"===String(a?.provider||"").toLowerCase()&&!1!==a.isActive)}(a)&&0===(await B().catch(()=>[])||[]).length}async function E(){let a=new Set;for(let b of await (0,d.Uv)().catch(()=>[])||[]){let c=String(b?.exposedModel||b?.model||b?.name||b?.id||"").trim();c&&!c.includes("/")&&a.add(c)}return a}async function F(){await (0,d.PX)({limit:1});let a=await (0,d.getProviderConnections)({includePersonal:!0}).catch(()=>[])||[],b=await E(),c=await D(a||[]),h=await (0,e.c)(),i=0,j=0,k=0,l=new Set;h.transaction(()=>{for(let a of h.all("SELECT id, allowedModels FROM apiKeys")){i+=1;let d=(0,g.MI)((0,f.q)(a.allowedModels,[]));if(0===d.length){k+=1;continue}let e=d.filter(a=>{let d=(!!(a.includes("/")||C.test(a))||!!b.has(a))&&!(c&&/^ollama-local\//i.test(a));return d||l.add(a),d});if(e.length===d.length)continue;let m=h.run("UPDATE apiKeys SET allowedModels = ? WHERE id = ?",[(0,f.s)(e),a.id]);j+=Number(m?.changes??0)}});let m=[...l].sort();return m.length>0&&console.log(`[ApiKeyModelPrune] Pruned ${m.length} stale model(s) from ${j} API key(s): ${m.join(", ")}`),{scanned:i,updated:j,legacyFullAccessSkipped:k,removedModels:m,prunedLocalModels:c}}},63960:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(82009);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},82009:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}}};
|