@jheavenknows/bluerouter 5.3.24 → 5.3.26
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 +4 -4
- package/app/.next-cli-build/build-manifest.json +2 -2
- 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.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.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/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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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/auth/ldap/test/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.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.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.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.nft.json +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.nft.json +1 -1
- 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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js +18 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js +41 -39
- 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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
- package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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.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.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +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.nft.json +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/settings/route.js.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 +1 -1
- 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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +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.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +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.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.nft.json +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.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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.nft.json +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.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/analytics.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/analytics.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/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.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.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.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 +4 -4
- package/app/.next-cli-build/server/chunks/{408.js → 1184.js} +2 -2
- package/app/.next-cli-build/server/chunks/2155.js +1 -0
- package/app/.next-cli-build/server/chunks/2230.js +85 -0
- package/app/.next-cli-build/server/chunks/2731.js +40 -38
- package/app/.next-cli-build/server/chunks/3110.js +1 -1
- package/app/.next-cli-build/server/chunks/4746.js +1 -1
- package/app/.next-cli-build/server/chunks/476.js +33 -8
- package/app/.next-cli-build/server/chunks/564.js +1 -0
- 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 +1 -1
- package/app/.next-cli-build/server/chunks/7639.js +1 -1
- package/app/.next-cli-build/server/chunks/7753.js +1 -1
- package/app/.next-cli-build/server/chunks/{5434.js → 8360.js} +2 -2
- 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-ff687e704a46f900.js → 5263-47b5e335a4257dca.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/analytics/{page-591f058d4d7b311e.js → page-1c6939584c32152a.js} +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.18-to-5.3.19-5.3.19-20260817-185203 → upgrade-5.3.22-to-5.3.23-5.3.23-20260818-191234}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.17-to-5.3.18-5.3.18-20260817-182319 → upgrade-5.3.22-to-5.3.23-5.3.23-20260818-191235}/data.sqlite +0 -0
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.23-to-5.3.24-5.3.24-20260818-192629/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/6259.js +0 -1
- package/app/.next-cli-build/server/chunks/6270.js +0 -85
- /package/app/.next-cli-build/static/{jouAngBGixCqnr-VlBqPB → z7L4YXuejxGi4EEp-grnQ}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{jouAngBGixCqnr-VlBqPB → z7L4YXuejxGi4EEp-grnQ}/_ssgManifest.js +0 -0
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=6270,exports.ids=[6270,7753],exports.modules={51055:(a,b,c)=>{c.d(b,{ensureDashboardAnalyticsSnapshotScheduler:()=>ab});var d=c(75870),e=c(80408),f=c(689);let g="lower(trim(COALESCE(CAST(status AS TEXT), '')))",h=`(
|
|
2
|
-
${g} GLOB 'error*'
|
|
3
|
-
OR ${g} GLOB 'fail*'
|
|
4
|
-
OR ${g} GLOB 'failed*'
|
|
5
|
-
OR ${g} GLOB 'timeout*'
|
|
6
|
-
OR ${g} GLOB 'network*'
|
|
7
|
-
OR ${g} GLOB 'aborted*'
|
|
8
|
-
OR ${g} GLOB 'abort*'
|
|
9
|
-
OR ${g} GLOB 'rate_limited*'
|
|
10
|
-
OR ${g} GLOB 'provider_error*'
|
|
11
|
-
OR ${g} GLOB 'gateway_error*'
|
|
12
|
-
OR ${g} GLOB 'parse_error*'
|
|
13
|
-
OR ${g} GLOB 'model_error*'
|
|
14
|
-
)`,i=`(
|
|
15
|
-
(COALESCE(statusCode, 0) BETWEEN 200 AND 299 AND NOT ${h})
|
|
16
|
-
OR ${g} = ''
|
|
17
|
-
OR ${g} IN ('ok', 'success', 'succeeded', 'complete', 'completed', 'done', '200')
|
|
18
|
-
OR ${g} GLOB '2[0-9][0-9]*'
|
|
19
|
-
OR ${g} GLOB 'ok*'
|
|
20
|
-
OR ${g} GLOB 'success*'
|
|
21
|
-
OR ${g} GLOB 'succeeded*'
|
|
22
|
-
OR ${g} GLOB 'complete*'
|
|
23
|
-
OR ${g} GLOB 'completed*'
|
|
24
|
-
OR ${g} GLOB 'done*'
|
|
25
|
-
)`,j=`(
|
|
26
|
-
${g} IN ('pending', 'running', 'in_progress', 'queued', 'processing')
|
|
27
|
-
)`,k=`(NOT ${j})`,l="sum(completionTokens) / sum(latencyMs - ttftMs)";function m(a){return String(a??"").trim()}function n(a,b=0){let c=Number(a);return Number.isFinite(c)?c:b}function o(a={}){var b,c;let d=n(a.decodeSamples,0),e=n(a.decodeCompletionTokens,0),f=n(a.decodeMs,0);return{key:(b=a.provider,c=a.model,`${m(b)}\u001f${m(c)}`),provider:m(a.provider)||"unknown",model:m(a.model)||"unknown",decodeSamples:d,decodeCompletionTokens:e,decodeMs:f,decodeTokensPerSecond:f>0?e/(f/1e3):null}}function p(a={}){return{available:!1,formula:l,rule:"completionTokens > 0 && ttftMs > 0 && latencyMs > ttftMs",aggregation:"weighted: sum(tokens) / sum(decode time)",decodeSamples:0,decodeCompletionTokens:0,decodeMs:0,decodeTokensPerSecond:null,byModel:[],...a}}async function q({filters:a={},scope:b={}}={}){let c=await (0,f.d9)().catch(()=>null);if(!c)return p({error:"mysql_unavailable"});try{let d=function(a={},b={}){let c=[],d=[];if(!function(a,b,c={}){let d=function(a={}){let b=m(a.period);if("todayWorking"!==b&&"yesterdayWorking"!==b)return[];let c=new Date(a.startIso||"").getTime(),d=new Date(a.endIso||"").getTime();return Number.isFinite(c)&&Number.isFinite(d)&&!(d<=c)?[{startIso:new Date(c).toISOString(),endIso:new Date(Math.min(c+144e5,d)).toISOString()},{startIso:new Date(Math.min(c+189e5,d)).toISOString(),endIso:new Date(d).toISOString()}].filter(a=>new Date(a.endIso).getTime()>new Date(a.startIso).getTime()):[]}(c);if(d.length){for(let c of(a.push(`(${d.map(()=>"(timestamp >= ? AND timestamp < ?)").join(" OR ")})`),d))b.push(c.startIso,c.endIso);return}c.startIso&&(a.push("timestamp >= ?"),b.push(c.startIso)),c.endIso&&(a.push("timestamp < ?"),b.push(c.endIso))}(c,d,a),a.provider&&(c.push("provider = ?"),d.push(a.provider)),Array.isArray(a.providerIds)&&a.providerIds.length&&(c.push(`provider IN (${a.providerIds.map(()=>"?").join(", ")})`),d.push(...a.providerIds)),a.model&&(c.push("model = ?"),d.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),d.push(a.connectionId)),a.status&&(c.push("status = ?"),d.push(a.status)),a.endpoint&&(c.push("endpoint = ?"),d.push(a.endpoint)),a.clientIp&&(c.push("clientIpNormalized LIKE ?"),d.push(`%${a.clientIp}%`)),a.sourceTool){let b=`%${a.sourceTool}%`;c.push("(sourceTool LIKE ? OR sourceToolLabel LIKE ? OR sourceHost LIKE ?)"),d.push(b,b,b)}return a.sessionId&&(c.push("sessionId = ?"),d.push(a.sessionId)),!function(a,b,c){let d=m(c);if(!d)return;if(["local","local-no-key","no-key"].includes(d.toLowerCase()))return a.push("(apiKey IS NULL OR apiKey = '' OR apiKeyFingerprint = 'local-no-key')");let e=`%${d}%`;a.push("(apiKey = ? OR apiKeyId = ? OR apiKeyFingerprint = ? OR apiKeyFingerprint LIKE ? OR apiKeyName LIKE ? OR apiKeyOwner LIKE ?)"),b.push(d,d,d,e,e,e)}(c,d,a.apiKey),!function(a,b,c={}){if(c.ownedAnyUserOnly)return a.push("COALESCE(TRIM(apiKeyOwner), '') <> ''");let d=[...new Set((c.ownerCandidates||[]).map(a=>m(a).toLowerCase()).filter(Boolean))];if(c.userOwnedOnly){if(!d.length)return a.push("1 = 0");a.push(`lower(COALESCE(apiKeyOwner, '')) IN (${d.map(()=>"?").join(", ")})`),b.push(...d)}}(c,d,b),c.push(k),c.push(i),c.push("COALESCE(completionTokens, 0) > 0"),c.push("COALESCE(latencyMs, 0) > 0"),c.push("COALESCE(ttftMs, 0) > 0"),c.push("latencyMs > ttftMs"),{clause:`WHERE ${c.join(" AND ")}`,params:d}}(a,b),e=(await c.all(`SELECT
|
|
28
|
-
COALESCE(NULLIF(provider, ''), 'unknown') AS provider,
|
|
29
|
-
COALESCE(NULLIF(model, ''), 'unknown') AS model,
|
|
30
|
-
COUNT(*) AS decodeSamples,
|
|
31
|
-
COALESCE(SUM(completionTokens), 0) AS decodeCompletionTokens,
|
|
32
|
-
COALESCE(SUM(latencyMs - ttftMs), 0) AS decodeMs
|
|
33
|
-
FROM usageHistory
|
|
34
|
-
${d.clause}
|
|
35
|
-
GROUP BY COALESCE(NULLIF(provider, ''), 'unknown'), COALESCE(NULLIF(model, ''), 'unknown')`,d.params)||[]).map(o),f=e.reduce((a,b)=>a+b.decodeSamples,0),g=e.reduce((a,b)=>a+b.decodeCompletionTokens,0),h=e.reduce((a,b)=>a+b.decodeMs,0);return{available:!0,formula:l,rule:"completionTokens > 0 && ttftMs > 0 && latencyMs > ttftMs",aggregation:"weighted: sum(tokens) / sum(decode time)",decodeSamples:f,decodeCompletionTokens:g,decodeMs:h,decodeTokensPerSecond:h>0?g/(h/1e3):null,byModel:e}}catch(a){return console.error("[analytics] Failed to calculate standardized decode throughput:",a?.message||a),p({error:a?.message||String(a)})}finally{await c.close?.().catch(()=>{})}}var r=c(97753);let s="local",t="cloud",u="unknown",v=["openai-compatible-","anthropic-compatible-"];function w(a){return String(a??"").trim()}function x(a,b=u){let c=w(a).toLowerCase();return c===s?s:c===t?t:c===u?u:b}function y(a,b){return`${String(a||"").trim()}\u001f${String(b||"").trim()}`}function z(a=[]){let b={models:0,requests:0,promptTokens:0,completionTokens:0,totalTokens:0,cost:0,decodeSamples:0,decodeCompletionTokens:0,decodeMs:0,decodeTokensPerSecond:null,outputTokensPerSecond:null},c=0,d=0;for(let e of a){b.models+=1,b.requests+=Number(e.requests||0),b.promptTokens+=Number(e.promptTokens||0),b.completionTokens+=Number(e.completionTokens||0),b.totalTokens+=Number(e.totalTokens||0),b.cost+=Number(e.cost||0),b.decodeSamples+=Number(e.decodeSamples||0),b.decodeCompletionTokens+=Number(e.decodeCompletionTokens||0),b.decodeMs+=Number(e.decodeMs||0);let a=Number(e.samples||e.requests||0),f=Number(e.avgCompletionTokens||0),g=Number(e.outputTokensPerSecond||0),h=a>0&&f>0?a*f:Number(e.completionTokens||0);g>0&&h>0&&(c+=h,d+=h/g)}return b.decodeMs>0&&b.decodeCompletionTokens>0?(b.decodeTokensPerSecond=b.decodeCompletionTokens/(b.decodeMs/1e3),b.outputTokensPerSecond=b.decodeTokensPerSecond):d>0&&(b.outputTokensPerSecond=c/d),b}async function A(a={}){let[b,c]=await Promise.all([(0,e.b2)(a),(0,r.Fh)()]),d=await q({filters:{...b.filters||{},providerIds:a.providerIds||b.filters?.providerIds||[]},scope:{userOwnedOnly:!0===a.userOwnedOnly,ownedAnyUserOnly:!0===a.ownedAnyUserOnly,ownerCandidates:a.ownerCandidates||[]}});return function(a,b=[]){let c=new Map((b||[]).map(a=>[a.id,a])),d=new Map((a?.experience?.byModel||[]).map(a=>[y(a.provider,a.model),a])),e=new Map((a?.decodeThroughput?.byModel||[]).map(a=>[y(a.provider,a.model),a])),f=(a?.groups?.models||[]).map(a=>{let b=String(a.provider||"").trim(),f=c.get(b),g=function({snapshot:a,configured:b,providerId:c,endpoint:d,baseUrl:e}={}){let f,g=x(a,"");if(g)return g;let h=x(b,"");if(h)return h;let i=function(a,b=u){let c,d=w(a);if(!d)return b;try{c=new URL(d.includes("://")?d:`http://${d}`)}catch{return b}let e=w(c.hostname).replace(/^\[|\]$/g,"").toLowerCase();return e?"localhost"===e||"::1"===e||"0.0.0.0"===e||e.endsWith(".localhost")||e.endsWith(".local")||function(a){let b=a.split(".").map(a=>Number(a));if(4!==b.length||b.some(a=>!Number.isInteger(a)||a<0||a>255))return!1;let[c,d]=b;return 10===c||127===c||169===c&&254===d||172===c&&!!(d>=16)&&!!(d<=31)||192===c&&168===d}(e)?s:t:b}(e||d,"");return i?i:w(c)&&(f=w(c).toLowerCase(),!v.some(a=>f.startsWith(a)))?t:u}({configured:f?.deploymentType,providerId:b,baseUrl:f?.baseUrl}),h=y(b,a.model),i=d.get(h)||{},j=e.get(h)||{},k=j.decodeTokensPerSecond??i.decodeTokensPerSecond??null;return{...a,deploymentType:g,samples:Number(i.samples||0),avgLatencyMs:i.avgLatencyMs??null,p95LatencyMs:i.p95LatencyMs??null,p95TtftMs:i.p95TtftMs??null,avgPromptTokens:i.avgPromptTokens??a.avgPromptTokens??0,avgCompletionTokens:i.avgCompletionTokens??a.avgCompletionTokens??0,decodeSamples:Number(j.decodeSamples??i.decodeSamples??0),decodeCompletionTokens:Number(j.decodeCompletionTokens??i.decodeCompletionTokens??0),decodeMs:Number(j.decodeMs??i.decodeMs??0),decodeTokensPerSecond:k,outputTokensPerSecond:k??i.outputTokensPerSecond??null,slowRequestRate:i.slowRequestRate??null}}),g=f.filter(a=>"local"===a.deploymentType),h=f.filter(a=>"cloud"===a.deploymentType),i=f.filter(a=>"unknown"===a.deploymentType);return{...a,groups:{...a.groups||{},models:f,localModels:g,cloudModels:h,unknownModels:i},deploymentAnalytics:{local:z(g),cloud:z(h),unknown:z(i),classification:{source:"provider-deployment",version:2}},queryRangeLimitDays:null}}(function(a,b){if(!b?.available)return{...a,throughputCalculation:{available:!1,metric:"decodeTokensPerSecond",formula:b?.formula||"sum(completionTokens) / sum(latencyMs - ttftMs)",rule:b?.rule||"completionTokens > 0 && ttftMs > 0 && latencyMs > ttftMs",aggregation:b?.aggregation||"weighted: sum(tokens) / sum(decode time)",error:b?.error||""}};let c=new Map((b.byModel||[]).map(a=>[y(a.provider,a.model),a])),d=a?.experience||{},e=(d.byModel||[]).map(a=>{let b=c.get(y(a.provider,a.model));return{...a,e2eOutputTokensPerSecond:a.e2eOutputTokensPerSecond??a.outputTokensPerSecond??null,decodeSamples:Number(b?.decodeSamples||0),decodeCompletionTokens:Number(b?.decodeCompletionTokens||0),decodeMs:Number(b?.decodeMs||0),decodeTokensPerSecond:b?.decodeTokensPerSecond??null,outputTokensPerSecond:b?.decodeTokensPerSecond??null}});return{...a,experience:{...d,e2eOutputTokensPerSecond:d.e2eOutputTokensPerSecond??d.outputTokensPerSecond??null,decodeSamples:Number(b.decodeSamples||0),decodeCompletionTokens:Number(b.decodeCompletionTokens||0),decodeMs:Number(b.decodeMs||0),decodeTokensPerSecond:b.decodeTokensPerSecond??null,byModel:e},decodeThroughput:b,throughputCalculation:{available:!0,metric:"decodeTokensPerSecond",formula:b.formula,rule:b.rule,aggregation:b.aggregation}}}(b,d),c)}var B=c(41170);let C=new Set(["today","todayWorking","yesterday","yesterdayWorking","thisWeek","lastWeek","thisMonth","lastMonth"]),D=process.env.DASHBOARD_ANALYTICS_TIME_ZONE||"Asia/Saigon",E=!1;function F(a){return String(a).padStart(2,"0")}function G(a){return`${a.year}-${F(a.month)}-${F(a.day)}`}function H(a,b){let c=new Date(Date.UTC(a.year,a.month-1,a.day));return c.setUTCDate(c.getUTCDate()+b),{year:c.getUTCFullYear(),month:c.getUTCMonth()+1,day:c.getUTCDate()}}function I(a){let b=new Date(Date.UTC(a.year,a.month-1,a.day)).getUTCDay();return H(a,0===b?-6:1-b)}function J(a,b=new Date,c=D){let d=function(a=new Date,b=D){let c=new Intl.DateTimeFormat("en-CA",{timeZone:b,year:"numeric",month:"2-digit",day:"2-digit",weekday:"short"}).formatToParts(a),d={};for(let a of c)"literal"!==a.type&&(d[a.type]=a.value);return{year:Number(d.year),month:Number(d.month),day:Number(d.day),weekday:d.weekday}}(b,c);if("today"===a||"todayWorking"===a)return G(d);if("yesterday"===a||"yesterdayWorking"===a)return G(H(d,-1));if("thisWeek"===a)return G(I(d));if("lastWeek"===a)return G(H(I(d),-7));if("thisMonth"===a)return`${d.year}-${F(d.month)}-01`;if("lastMonth"===a){let a;return G(((a=new Date(Date.UTC(d.year,d.month-1,1))).setUTCMonth(a.getUTCMonth()-1),{year:a.getUTCFullYear(),month:a.getUTCMonth()+1,day:1}))}return G(d)}function K(a){return["yesterday","yesterdayWorking","lastWeek","lastMonth"].includes(a)}async function L(){let a=(0,B.I6)(await (0,B.L7)());return a.enabled&&"mysql"===a.type?a:null}async function M(){let a=await L();if(!a)return null;let b=await c.e(4790).then(c.t.bind(c,94790,19)),d=await b.createConnection({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,timezone:"+00:00",dateStrings:!0,connectTimeout:5e3});return await d.query("SET time_zone = '+00:00'"),d}async function N(a){E||(await a.query(`
|
|
36
|
-
CREATE TABLE IF NOT EXISTS dashboard_analytics_snapshots (
|
|
37
|
-
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
38
|
-
period_key VARCHAR(40) NOT NULL,
|
|
39
|
-
period_anchor DATE NOT NULL,
|
|
40
|
-
scope_type VARCHAR(40) NOT NULL,
|
|
41
|
-
scope_key VARCHAR(255) NOT NULL DEFAULT '*',
|
|
42
|
-
time_zone VARCHAR(80) NOT NULL,
|
|
43
|
-
payload_json JSON NOT NULL,
|
|
44
|
-
is_final TINYINT(1) NOT NULL DEFAULT 0,
|
|
45
|
-
computed_at DATETIME(3) NOT NULL,
|
|
46
|
-
source_max_timestamp DATETIME(3) NULL,
|
|
47
|
-
compute_duration_ms BIGINT NOT NULL DEFAULT 0,
|
|
48
|
-
schema_version INT NOT NULL DEFAULT 1,
|
|
49
|
-
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
|
|
50
|
-
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
51
|
-
UNIQUE KEY uq_dashboard_analytics_snapshot (period_key, period_anchor, scope_type, scope_key, schema_version),
|
|
52
|
-
INDEX idx_dashboard_analytics_snapshot_lookup (scope_type, scope_key, period_key, period_anchor),
|
|
53
|
-
INDEX idx_dashboard_analytics_snapshot_updated (updated_at)
|
|
54
|
-
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
55
|
-
`),await a.query(`
|
|
56
|
-
CREATE TABLE IF NOT EXISTS dashboard_analytics_snapshot_runs (
|
|
57
|
-
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
58
|
-
period_key VARCHAR(40) NOT NULL,
|
|
59
|
-
period_anchor DATE NOT NULL,
|
|
60
|
-
scope_type VARCHAR(40) NOT NULL,
|
|
61
|
-
scope_key VARCHAR(255) NOT NULL DEFAULT '*',
|
|
62
|
-
started_at DATETIME(3) NOT NULL,
|
|
63
|
-
finished_at DATETIME(3) NULL,
|
|
64
|
-
status VARCHAR(32) NOT NULL,
|
|
65
|
-
duration_ms BIGINT NOT NULL DEFAULT 0,
|
|
66
|
-
error_message TEXT NULL,
|
|
67
|
-
INDEX idx_dashboard_analytics_snapshot_runs_started (started_at),
|
|
68
|
-
INDEX idx_dashboard_analytics_snapshot_runs_period (period_key, period_anchor, scope_type, scope_key)
|
|
69
|
-
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
70
|
-
`),E=!0)}function O(a=new Date){return new Date(a).toISOString().replace("T"," ").replace("Z","")}async function P({period:a,scopeType:b,scopeKey:c="*",timeZone:d=D}){if(!C.has(a))return null;let e=await M();if(!e)return null;try{await N(e);let f=J(a,new Date,d),[g]=await e.query(`SELECT payload_json AS payloadJson, is_final AS isFinal, computed_at AS computedAt, updated_at AS updatedAt, compute_duration_ms AS computeDurationMs
|
|
71
|
-
FROM dashboard_analytics_snapshots
|
|
72
|
-
WHERE period_key = ? AND period_anchor = ? AND scope_type = ? AND scope_key = ? AND schema_version = ?
|
|
73
|
-
LIMIT 1`,[a,f,b,c,1]),h=g?.[0];if(!h)return null;return{payload:"string"==typeof h.payloadJson?JSON.parse(h.payloadJson):h.payloadJson,period:a,anchor:f,scopeType:b,scopeKey:c,timeZone:d,isFinal:1===h.isFinal||!0===h.isFinal,computedAt:h.computedAt,updatedAt:h.updatedAt,computeDurationMs:Number(h.computeDurationMs||0)}}finally{await e.end().catch(()=>{})}}async function Q({period:a,scopeType:b,scopeKey:c="*",timeZone:d=D,payload:e,isFinal:f=!1,computeDurationMs:g=0}){if(!C.has(a)||!e)return!1;let h=await M();if(!h)return!1;try{await N(h);let i=J(a,new Date,d),j=new Date,k=e?.overview?.lastSeen||e?.generatedAt||null;return await h.query(`INSERT INTO dashboard_analytics_snapshots
|
|
74
|
-
(period_key, period_anchor, scope_type, scope_key, time_zone, payload_json, is_final, computed_at, source_max_timestamp, compute_duration_ms, schema_version)
|
|
75
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
76
|
-
ON DUPLICATE KEY UPDATE
|
|
77
|
-
time_zone = VALUES(time_zone),
|
|
78
|
-
payload_json = IF(is_final = 1, payload_json, VALUES(payload_json)),
|
|
79
|
-
is_final = GREATEST(is_final, VALUES(is_final)),
|
|
80
|
-
computed_at = IF(is_final = 1, computed_at, VALUES(computed_at)),
|
|
81
|
-
source_max_timestamp = IF(is_final = 1, source_max_timestamp, VALUES(source_max_timestamp)),
|
|
82
|
-
compute_duration_ms = IF(is_final = 1, compute_duration_ms, VALUES(compute_duration_ms)),
|
|
83
|
-
updated_at = CURRENT_TIMESTAMP(3)`,[a,i,b,c,d,JSON.stringify(e),+!!f,O(j),k?O(k):null,Number(g||0),1]),!0}finally{await h.end().catch(()=>{})}}async function R(a,b){let c=await M();if(!c)return b();try{await N(c);let d=`bluerouter:analytics:${String(a??"").trim().slice(0,120)}`,[e]=await c.query("SELECT GET_LOCK(?, 0) AS acquired",[d]);if(1!==Number(e?.[0]?.acquired||0))return null;try{return await b()}finally{await c.query("SELECT RELEASE_LOCK(?)",[d]).catch(()=>{})}}finally{await c.end().catch(()=>{})}}async function S({period:a,scopeType:b,scopeKey:c="*",status:d,startedAt:e,finishedAt:f=new Date,errorMessage:g=""}){let h=await M();if(h)try{await N(h);let i=J(a,e,D);await h.query(`INSERT INTO dashboard_analytics_snapshot_runs
|
|
84
|
-
(period_key, period_anchor, scope_type, scope_key, started_at, finished_at, status, duration_ms, error_message)
|
|
85
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,[a,i,b,c,O(e),O(f),d,Math.max(0,f.getTime()-e.getTime()),g||null])}finally{await h.end().catch(()=>{})}}let T="__blueRouterDashboardAnalyticsSnapshotScheduler",U={today:9e5,todayWorking:9e5,thisWeek:36e5,thisMonth:36e5},V=["yesterday","yesterdayWorking","lastWeek","lastMonth"],W=["today","todayWorking","thisWeek","thisMonth"],X=[{scopeType:"all",scopeKey:"*",filters:{}},{scopeType:"owned_users",scopeKey:"*",filters:{ownedAnyUserOnly:!0}}];function Y(){return globalThis[T]||(globalThis[T]={timer:null,running:null,started:!1}),globalThis[T]}async function Z(){try{let a=(0,B.I6)(await (0,B.L7)());return!0===a.enabled&&"mysql"===a.type}catch{return!1}}async function $(a,b){let c=await P({period:a,scopeType:b.scopeType,scopeKey:b.scopeKey,timeZone:D}).catch(()=>null);if(K(a))return!c?.isFinal;if(!c)return!0;let d=function(a){if(!a)return null;if(a instanceof Date)return a;let b=String(a).trim(),c=new Date(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/.test(b)?`${b.replace(" ","T")}Z`:b);return Number.isNaN(c.getTime())?null:c}(c.computedAt);return!d||Date.now()-d.getTime()>=(U[a]||36e5)}async function _(a,b){if(!await $(a,b))return{skipped:!0};let c=J(a,new Date,D);return R(`${a}:${c}:${b.scopeType}:${b.scopeKey}`,async()=>{if(!await $(a,b))return{skipped:!0};let c=new Date;try{let d=await A({period:a,timeZone:D,...b.filters}),e=new Date;return await Q({period:a,scopeType:b.scopeType,scopeKey:b.scopeKey,timeZone:D,payload:d,isFinal:K(a),computeDurationMs:e.getTime()-c.getTime()}),await S({period:a,scopeType:b.scopeType,scopeKey:b.scopeKey,status:"success",startedAt:c,finishedAt:e}),{skipped:!1}}catch(e){let d=new Date;throw await S({period:a,scopeType:b.scopeType,scopeKey:b.scopeKey,status:"error",startedAt:c,finishedAt:d,errorMessage:e?.message||String(e)}).catch(()=>{}),e}})}async function aa(){let a=Y();return a.running||(a.running=(async()=>{if(!await (0,d.WR)()&&await Z())for(let a of[...V,...W])for(let b of X)try{await _(a,b)}catch(c){console.warn(`[dashboard-analytics-snapshot] ${a}/${b.scopeType} failed:`,c?.message||c)}})().finally(()=>{a.running=null})),a.running}function ab(){let a=Y();if(a.started)return;a.started=!0;let b=async()=>{try{await aa()}catch(a){console.warn("[dashboard-analytics-snapshot] scheduler failed:",a?.message||a)}finally{a.timer=setTimeout(b,3e5),a.timer.unref?.()}};a.timer=setTimeout(b,15e3),a.timer.unref?.()}},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)}},75870:(a,b,c)=>{c.d(b,{Jc:()=>r,Q1:()=>s,WR:()=>u,X_:()=>t});var d=c(77598),e=c.n(d),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(53859);let k=i().join(j.n,"cluster-config.json"),l=new Set(["standalone","master","slave"]),m="__blueRouterClusterConfigMutation",n={version:1,nodeId:"",role:"standalone",enabled:!1,masterUrl:"",syncToken:"",intervalMinutes:5,lastAttemptAt:null,lastSyncAt:null,lastSnapshotHash:"",lastError:"",lastResult:null,commandAck:null};function o(a={}){let b=l.has(a.role)?a.role:"standalone";return{...n,...a,version:1,nodeId:String(a.nodeId||"").trim()||e().randomUUID(),role:b,enabled:!0===a.enabled,masterUrl:function(a){let b=String(a||"").trim().replace(/\/+$/,"");if(!b)return"";let c=new URL(b);if(!["http:","https:"].includes(c.protocol))throw Error("Master URL must use http:// or https://");if(c.username||c.password)throw Error("Master URL must not contain credentials");return c.toString().replace(/\/+$/,"")}(a.masterUrl),syncToken:String(a.syncToken||"").trim(),intervalMinutes:Math.min(1440,Math.max(1,Number(a.intervalMinutes)||5))}}async function p(a){await g().mkdir(j.n,{recursive:!0});let b=`${k}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify(a,null,2),{mode:384}),await g().rename(b,k)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function q(a){let b=(globalThis[m]||Promise.resolve()).then(a,a);return globalThis[m]=b.catch(()=>{}),b}async function r({includeSecrets:a=!1}={}){let b={};try{b=JSON.parse(await g().readFile(k,"utf8"))}catch(a){a?.code!=="ENOENT"&&console.warn("[cluster] failed to read config:",a?.message||a)}let c=o(b);if(b.nodeId||await p(c),a)return c;let{syncToken:d,...e}=c;return{...e,hasSyncToken:!!c.syncToken}}async function s(a={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid cluster config payload");return q(async()=>{let b=await r({includeSecrets:!0}),c={};for(let b of["role","enabled","masterUrl","syncToken","intervalMinutes"])Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);let d=o({...b,...c});if("master"!==d.role||d.syncToken||(d.syncToken=e().randomBytes(32).toString("base64url")),d.enabled&&"slave"===d.role){if(!d.masterUrl)throw Error("Master URL is required for Standby mode");if(!d.syncToken)throw Error("Sync token is required for Standby mode")}return await p(d),d})}async function t(a={}){return q(async()=>{let b=await r({includeSecrets:!0}),c=o({...b,...a,nodeId:b.nodeId,role:b.role,enabled:b.enabled,masterUrl:b.masterUrl,syncToken:b.syncToken,intervalMinutes:b.intervalMinutes});return await p(c),c})}async function u(){return"slave"===(await r({includeSecrets:!0})).role}},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()}},97753:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,createProviderConnection:()=>d.iE,hr:()=>d.hr,updateProviderConnection:()=>d.updateProviderConnection});var d=c(70321)}};
|
|
File without changes
|
/package/app/.next-cli-build/static/{jouAngBGixCqnr-VlBqPB → z7L4YXuejxGi4EEp-grnQ}/_ssgManifest.js
RENAMED
|
File without changes
|