@jheavenknows/bluerouter 5.2.75 → 5.2.76
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 +14 -14
- 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.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/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 +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/api/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/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 +1 -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.nft.json +1 -1
- 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.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/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/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]/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/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 +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/analytics.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
- package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
- package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
- package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/dashboard.html +1 -1
- package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
- package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/index.html +1 -1
- package/app/.next-cli-build/server/app/index.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/landing.html +1 -1
- package/app/.next-cli-build/server/app/landing.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
- package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next-cli-build/server/app/login.html +1 -1
- package/app/.next-cli-build/server/app/login.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
- package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
- package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/app/.next-cli-build/server/app/page.js.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 +14 -14
- 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 +22 -0
- package/app/.next-cli-build/server/chunks/6328.js +1 -1
- package/app/.next-cli-build/server/chunks/6759.js +1 -1
- package/app/.next-cli-build/server/chunks/6811.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-0ac1408290747753.js → 5263-62337efb0197fd74.js} +1 -1
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ai-power-index/page-c99acc66362623bf.js +1 -0
- package/app/.next-cli-build/static/css/{a7c1302aadbfedcd.css → 515412bc5cdf9cc2.css} +1 -1
- package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.2.70-to-5.2.71-5.2.71-20260813-203814 → upgrade-5.2.74-to-5.2.75-5.2.75-20260813-235656}/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/891.js +0 -127
- package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ai-power-index/page-4e443c83025832cc.js +0 -1
- /package/app/.next-cli-build/static/{U0zlVcrlvBzgDH14fUMMn → qc2lGHeMapgHQOxZfnBPh}/_buildManifest.js +0 -0
- /package/app/.next-cli-build/static/{U0zlVcrlvBzgDH14fUMMn → qc2lGHeMapgHQOxZfnBPh}/_ssgManifest.js +0 -0
|
Binary file
|
|
Binary file
|
package/app/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=891,exports.ids=[891],exports.modules={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()}},88540:(a,b,c)=>{c.d(b,{ensureAiPowerIndexScheduler:()=>J});var d=c(689);let e="__blueRouterAiPowerIndexFirstSeen",f="lower(trim(COALESCE(CAST(status AS CHAR), '')))",g=`${f} IN ('pending', 'running', 'in_progress', 'queued', 'processing')`,h="NULLIF(COALESCE(statusCode, 0), 0)",i=`CASE
|
|
2
|
-
WHEN ${h} BETWEEN 200 AND 299 THEN 'success'
|
|
3
|
-
WHEN ${h} IS NOT NULL THEN
|
|
4
|
-
CASE
|
|
5
|
-
WHEN ${h} IN (401, 403, 408, 425, 429) OR ${h} >= 500 THEN 'neutral'
|
|
6
|
-
WHEN ${h} BETWEEN 400 AND 499 THEN 'failure'
|
|
7
|
-
ELSE 'neutral'
|
|
8
|
-
END
|
|
9
|
-
WHEN ${f} IN ('ok', 'success', 'succeeded', 'complete', 'completed', 'done', '200')
|
|
10
|
-
OR ${f} REGEXP '^(ok|success|succeeded|complete|completed|done|2[0-9][0-9])' THEN 'success'
|
|
11
|
-
WHEN ${f} REGEXP '^(invalid|bad_request|unprocessable|validation|client_error|fail|failed)(\\b|[[:space:]_-]|$)' THEN 'failure'
|
|
12
|
-
ELSE 'neutral'
|
|
13
|
-
END`;function j(a){return String(a||"").trim()}function k(a){let b=Number(a);return Number.isFinite(b)?b:0}function l(a,b=1){let c=10**b;return Math.round(k(a)*c)/c}function m(a,b=0,c=1){return Math.max(b,Math.min(c,k(a)))}function n(a,b){let c=new Date(Date.UTC(a,b,26)),d=new Date(Date.UTC(a,b+1,26)),e=new Date(Date.UTC(a,b+1,25)),f=new Date(c.getTime()-252e5).toISOString(),g=new Date(d.getTime()-252e5).toISOString();return{id:`${c.getUTCFullYear()}-${String(c.getUTCMonth()+1).padStart(2,"0")}-${String(c.getUTCDate()).padStart(2,"0")}`,label:`26/${String(c.getUTCMonth()+1).padStart(2,"0")}/${c.getUTCFullYear()} – 25/${String(e.getUTCMonth()+1).padStart(2,"0")}/${e.getUTCFullYear()}`,startIso:f,endIso:new Date(new Date(g).getTime()-1).toISOString(),endExclusiveIso:g}}function o(a=new Date,b=12){let c=function(a=new Date){let b=new Date(a.getTime()+252e5);return{year:b.getUTCFullYear(),month:b.getUTCMonth(),day:b.getUTCDate()}}(a),d=c.day>=26?c.month:c.month-1;return Array.from({length:b},(a,b)=>n(c.year,d-b))}function p(a,b,c){let d=Math.log1p(Math.max(1,k(b)));return c*m(Math.log1p(Math.max(0,k(a)))/d)}function q(a){if(a instanceof Date)return a;let b=j(a);return new Date(/^\d{4}-\d{2}-\d{2}[ T]\d{2}:\d{2}:\d{2}(?:\.\d+)?$/.test(b)?`${b.replace(" ","T")}Z`:a)}function r(a){return Math.floor((q(a).getTime()+252e5)/864e5)}function s(a){let b=new Date(864e5*a).getUTCDay();return 0!==b&&6!==b}function t(a,b){let c=new Date(a),d=new Date(b);if(!Number.isFinite(c.getTime())||!Number.isFinite(d.getTime())||d<=c)return{workdays:0,weeks:0};let e=r(c),f=r(new Date(d.getTime()-1)),g=0,h=new Set;for(let a=e;a<=f;a+=1)s(a)&&(g+=1,h.add(Math.floor((a+3)/7)));return{workdays:g,weeks:h.size}}async function u(a,b,c=[],d=""){let e=function(a,b=[],c=""){let d=[...new Set((b||[]).map(a=>j(a).toLowerCase()).filter(Boolean))],e=d.length?`AND lower(trim(apiKeyOwner)) IN (${d.map(()=>"?").join(", ")})`:"",f=c||a.endExclusiveIso;return{params:[a.startIso,f,...d],sql:`WITH ranked_events AS (
|
|
14
|
-
SELECT
|
|
15
|
-
id,
|
|
16
|
-
lower(trim(apiKeyOwner)) AS ownerUser,
|
|
17
|
-
timestamp,
|
|
18
|
-
provider,
|
|
19
|
-
model,
|
|
20
|
-
requestId,
|
|
21
|
-
sessionId,
|
|
22
|
-
sourceTool,
|
|
23
|
-
statusCode,
|
|
24
|
-
status,
|
|
25
|
-
COALESCE(displayTotalInputTokens, 0) AS inputTokens,
|
|
26
|
-
COALESCE(displayNewInputTokens, 0) AS newInputTokens,
|
|
27
|
-
COALESCE(displayCachedInputTokens, 0) AS cachedInputTokens,
|
|
28
|
-
COALESCE(completionTokens, 0) AS outputTokens,
|
|
29
|
-
COALESCE(cost, 0) AS cost,
|
|
30
|
-
ROW_NUMBER() OVER (
|
|
31
|
-
PARTITION BY lower(trim(apiKeyOwner)), COALESCE(NULLIF(trim(requestId), ''), CONCAT('row:', id))
|
|
32
|
-
ORDER BY timestamp DESC, id DESC
|
|
33
|
-
) AS logicalRank
|
|
34
|
-
FROM usageHistory
|
|
35
|
-
WHERE timestamp >= ? AND timestamp < ?
|
|
36
|
-
AND apiKeyOwner IS NOT NULL AND trim(apiKeyOwner) <> ''
|
|
37
|
-
AND NOT (${g})
|
|
38
|
-
${e}
|
|
39
|
-
), logical_events AS (
|
|
40
|
-
SELECT * FROM ranked_events WHERE logicalRank = 1
|
|
41
|
-
)`}}(b,c,d),f="DATE(DATE_ADD(timestamp, INTERVAL 7 HOUR))",h=await a.all(`${e.sql}
|
|
42
|
-
SELECT
|
|
43
|
-
ownerUser,
|
|
44
|
-
COUNT(*) AS requests,
|
|
45
|
-
SUM(CASE WHEN ${i} = 'success' THEN 1 ELSE 0 END) AS success,
|
|
46
|
-
SUM(CASE WHEN ${i} = 'failure' THEN 1 ELSE 0 END) AS actionableFailures,
|
|
47
|
-
SUM(CASE WHEN ${i} IN ('success', 'failure') THEN 1 ELSE 0 END) AS knownOutcomes,
|
|
48
|
-
SUM(CASE WHEN ${i} = 'neutral' THEN 1 ELSE 0 END) AS neutralOutcomes,
|
|
49
|
-
COALESCE(SUM(inputTokens), 0) AS inputTokens,
|
|
50
|
-
COALESCE(SUM(newInputTokens), 0) AS newInputTokens,
|
|
51
|
-
COALESCE(SUM(cachedInputTokens), 0) AS cachedInputTokens,
|
|
52
|
-
COALESCE(SUM(outputTokens), 0) AS outputTokens,
|
|
53
|
-
COALESCE(SUM(cost), 0) AS totalCost,
|
|
54
|
-
SUM(CASE WHEN inputTokens + outputTokens > 0 THEN 1 ELSE 0 END) AS tokenObservedRequests,
|
|
55
|
-
SUM(CASE WHEN sessionId IS NOT NULL AND trim(sessionId) <> '' THEN 1 ELSE 0 END) AS explicitSessionRequests,
|
|
56
|
-
SUM(CASE WHEN sourceTool IS NOT NULL AND trim(sourceTool) <> '' AND lower(trim(sourceTool)) NOT IN ('unknown', 'n/a', 'none', 'null') THEN 1 ELSE 0 END) AS sourceToolKnownRequests,
|
|
57
|
-
COUNT(DISTINCT ${f}) AS calendarActiveDays,
|
|
58
|
-
COUNT(DISTINCT CASE WHEN WEEKDAY(${f}) < 5 THEN ${f} END) AS activeDays,
|
|
59
|
-
COUNT(DISTINCT CASE WHEN WEEKDAY(${f}) < 5 THEN YEARWEEK(${f}, 3) END) AS activeWeeks,
|
|
60
|
-
COUNT(DISTINCT COALESCE(NULLIF(trim(provider), ''), 'unknown')) AS providerCount,
|
|
61
|
-
MIN(timestamp) AS firstSeenInWindow,
|
|
62
|
-
MAX(timestamp) AS lastSeen
|
|
63
|
-
FROM logical_events
|
|
64
|
-
GROUP BY ownerUser`,e.params),l=await a.all(`${e.sql}, ranked_depth AS (
|
|
65
|
-
SELECT
|
|
66
|
-
ownerUser,
|
|
67
|
-
inputTokens,
|
|
68
|
-
outputTokens,
|
|
69
|
-
ROW_NUMBER() OVER (PARTITION BY ownerUser ORDER BY inputTokens) AS inputRank,
|
|
70
|
-
ROW_NUMBER() OVER (PARTITION BY ownerUser ORDER BY outputTokens) AS outputRank,
|
|
71
|
-
COUNT(*) OVER (PARTITION BY ownerUser) AS sampleCount
|
|
72
|
-
FROM logical_events
|
|
73
|
-
)
|
|
74
|
-
SELECT
|
|
75
|
-
ownerUser,
|
|
76
|
-
MIN(CASE WHEN inputRank >= CEIL(sampleCount * 0.75) THEN inputTokens END) AS p75InputTokens,
|
|
77
|
-
MIN(CASE WHEN outputRank >= CEIL(sampleCount * 0.75) THEN outputTokens END) AS p75OutputTokens
|
|
78
|
-
FROM ranked_depth
|
|
79
|
-
GROUP BY ownerUser`,e.params),m=await a.all(`${e.sql}
|
|
80
|
-
SELECT ownerUser, sourceTool AS value, COUNT(*) AS itemCount
|
|
81
|
-
FROM logical_events
|
|
82
|
-
WHERE sourceTool IS NOT NULL AND trim(sourceTool) <> '' AND lower(trim(sourceTool)) NOT IN ('unknown', 'n/a', 'none', 'null')
|
|
83
|
-
GROUP BY ownerUser, sourceTool`,e.params),n=await a.all(`${e.sql}, ordered_events AS (
|
|
84
|
-
SELECT
|
|
85
|
-
*,
|
|
86
|
-
LAG(timestamp) OVER (PARTITION BY ownerUser ORDER BY timestamp, id) AS previousTimestamp,
|
|
87
|
-
LAG(NULLIF(trim(sessionId), '')) OVER (PARTITION BY ownerUser ORDER BY timestamp, id) AS previousSessionId
|
|
88
|
-
FROM logical_events
|
|
89
|
-
), sessionized_events AS (
|
|
90
|
-
SELECT
|
|
91
|
-
*,
|
|
92
|
-
CASE
|
|
93
|
-
WHEN NULLIF(trim(sessionId), '') IS NOT NULL THEN CONCAT('explicit:', trim(sessionId))
|
|
94
|
-
ELSE CONCAT(
|
|
95
|
-
'inferred:',
|
|
96
|
-
SUM(
|
|
97
|
-
CASE
|
|
98
|
-
WHEN previousTimestamp IS NULL
|
|
99
|
-
OR previousSessionId IS NOT NULL
|
|
100
|
-
OR TIMESTAMPDIFF(MINUTE, previousTimestamp, timestamp) >= 30
|
|
101
|
-
THEN 1 ELSE 0
|
|
102
|
-
END
|
|
103
|
-
) OVER (
|
|
104
|
-
PARTITION BY ownerUser
|
|
105
|
-
ORDER BY timestamp, id
|
|
106
|
-
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
|
|
107
|
-
)
|
|
108
|
-
)
|
|
109
|
-
END AS inferredSessionId
|
|
110
|
-
FROM ordered_events
|
|
111
|
-
), session_turns AS (
|
|
112
|
-
SELECT ownerUser, inferredSessionId, COUNT(*) AS inferredHumanTurns
|
|
113
|
-
FROM sessionized_events
|
|
114
|
-
GROUP BY ownerUser, inferredSessionId
|
|
115
|
-
)
|
|
116
|
-
SELECT
|
|
117
|
-
ownerUser,
|
|
118
|
-
COUNT(*) AS sessionCount,
|
|
119
|
-
SUM(CASE WHEN inferredHumanTurns >= 2 THEN 1 ELSE 0 END) AS multiTurnSessions,
|
|
120
|
-
SUM(GREATEST(inferredHumanTurns - 1, 0)) AS iterativeTurns,
|
|
121
|
-
AVG(inferredHumanTurns) AS avgTurnsPerSession,
|
|
122
|
-
MAX(inferredHumanTurns) AS maxTurnsPerSession
|
|
123
|
-
FROM session_turns
|
|
124
|
-
GROUP BY ownerUser`,e.params),o=new Map(l.map(a=>[j(a.ownerUser),a])),p=new Map(n.map(a=>[j(a.ownerUser),a])),q=new Map;for(let a of m){let b=j(a.ownerUser);q.has(b)||q.set(b,[]),q.get(b).push({value:a.value,count:k(a.itemCount)})}return h.map(a=>{let b=j(a.ownerUser),c=o.get(b)||{},d=p.get(b)||{};return{...a,p75InputTokens:k(c.p75InputTokens),p75OutputTokens:k(c.p75OutputTokens),sessionCount:k(d.sessionCount),multiTurnSessions:k(d.multiTurnSessions),iterativeTurns:k(d.iterativeTurns),avgTurnsPerSession:k(d.avgTurnsPerSession),maxTurnsPerSession:k(d.maxTurnsPerSession),sourceToolDistribution:q.get(b)||[]}})}async function v(a){let b=globalThis[e];if(b?.map instanceof Map&&Date.now()-b.at<9e5)return b.map;let c=new Map((await a.all(`SELECT lower(trim(apiKeyOwner)) AS ownerUser, MIN(timestamp) AS firstSeen
|
|
125
|
-
FROM usageHistory
|
|
126
|
-
WHERE apiKeyOwner IS NOT NULL AND trim(apiKeyOwner) <> ''
|
|
127
|
-
GROUP BY lower(trim(apiKeyOwner))`,[])).map(a=>[j(a.ownerUser),a.firstSeen]));return globalThis[e]={at:Date.now(),map:c},c}function w(a,{cycle:b,effectiveEndIso:c,elapsedWorkdays:d,firstSeenByOwner:e}){let f=j(a.ownerUser),g=k(a.requests),h=k(a.success),i=k(a.actionableFailures),n=k(a.knownOutcomes),o=k(a.neutralOutcomes),r=k(a.inputTokens),s=k(a.newInputTokens),u=k(a.cachedInputTokens),v=k(a.outputTokens),x=k(a.totalCost),y=k(a.activeDays),z=k(a.activeWeeks),A=k(a.calendarActiveDays),B=k(a.p75InputTokens),C=k(a.p75OutputTokens),D=k(a.sessionCount),E=k(a.multiTurnSessions),F=k(a.iterativeTurns),G=k(a.avgTurnsPerSession),H=k(a.maxTurnsPerSession),I=q(e.get(f)||a.firstSeenInWindow||b.startIso),J=t(I>new Date(b.startIso)?I.toISOString():b.startIso,c),K=J.workdays>0?y/J.workdays:0,L=J.weeks>0?z/J.weeks:0,M=18*m(K/.65)+12*m(L/.8),N=D?E/D:0,O=D?F/D:0,P=15*m(N/.6)+10*m(O/2.5),Q=p(B,4e3,9),R=r>0?m(u/r):0,S=Q+(r>0?3+3*m(R/.5):0),T=function(a,b,c=1.96){let d=k(b);if(d<=0)return 0;let e=m(k(a)/d),f=c*c,g=c*Math.sqrt((e*(1-e)+f/(4*d))/d);return m((e+f/(2*d)-g)/(1+f/d))}(h,n),U=5+Math.min(1,n/20)*(10*m((T-.7)/.28)-5),V=function(a=[],b){let c=new Map;for(let b of a){let a=function(a){let b=j(a).toLowerCase();return!b||["unknown","n/a","none","null"].includes(b)?"":/(cursor|windsurf|vscode|visual studio|jetbrains|intellij|pycharm|webstorm|kiro|cline|roo|continue|copilot)/.test(b)?"IDE":/(claude.?code|codex|gemini.?cli|aider|terminal|shell|command.?line|\bcli\b)/.test(b)?"CLI":/(chatgpt|web.?chat|chat|browser)/.test(b)?"Chat":/(api|sdk|curl|postman|automation|workflow|webhook|n8n|bot|service)/.test(b)?"API / Automation":"Other integration"}(b.value);a&&c.set(a,(c.get(a)||0)+k(b.count))}let d=[...c.values()].reduce((a,b)=>a+b,0),e=c.get("API / Automation")||0,f=[...c.entries()].filter(([,a])=>a>=3&&b>0&&a/b>=.05),g=f.reduce((a,[,b])=>a+b,0);return g?{effectiveCount:Math.exp(f.reduce((a,[,b])=>{let c=b/g;return a-c*Math.log(c)},0)),significantCount:f.length,values:f.map(([a,b])=>({value:a,count:b})),knownRequests:d,automationRequests:e}:{effectiveCount:0,significantCount:0,values:[],knownRequests:d,automationRequests:e}}(a.sourceToolDistribution,g),W=V.knownRequests>0?12+p(Math.max(V.effectiveCount-1,0),2,8):0,X=l(M+P+S+U+W),Y=g?m(k(a.sourceToolKnownRequests)/g):0,Z=g?m(n/g):0,$=g?m(k(a.tokenObservedRequests)/g):0,_=g?m(k(a.explicitSessionRequests)/g):0,aa=l(100*(.4*Y+.3*Z+.3*$),0),ab=l(.75*(100*(.4*m(y/5)+.3*m(D/8)+.3*m(n/20)))+.25*aa,0),ac=d<3||y<2||D<3||$<.25||ab<40,ad=!ac&&d>=5&&y>=3&&D>=5&&aa>=50&&ab>=60,ae=g?V.automationRequests/g:0;return{ownerUser:f,requests:g,success:h,actionableFailures:i,knownOutcomes:n,neutralOutcomes:o,errors:i,successRate:n?h/n:0,inputTokens:r,newInputTokens:s,cachedInputTokens:u,outputTokens:v,totalTokens:r+v,totalCost:l(x,4),avgInputTokens:l(g?r/g:0,0),avgOutputTokens:l(g?v/g:0,0),p75InputTokens:l(B,0),p75OutputTokens:l(C,0),activeDays:y,activeWeeks:z,calendarActiveDays:A,eligibleWorkdays:J.workdays,eligibleWeeks:J.weeks,activeDayRate:l(K,3),activeWeekRate:l(L,3),sessionCount:D,multiTurnSessions:E,multiTurnSessionRate:l(N,3),iterativeTurns:F,iterativeTurnsPerSession:l(O,2),avgTurnsPerSession:l(G,2),maxTurnsPerSession:H,inferredHumanTurns:g,sourceToolCount:V.significantCount,effectiveToolCategories:l(V.effectiveCount,2),providerCount:k(a.providerCount),automationIntensity:l(ae,4),cacheReuseRate:l(R,4),coverage:aa,coverageDetail:{sourceTool:l(100*Y,0),outcome:l(100*Z,0),token:l(100*$,0),explicitSession:l(100*_,0)},confidence:ab,evidenceStatus:ad?"ranked":ac?"insufficient":"provisional",rankEligible:ad,lastSeen:a.lastSeen||"",coreScore:X,dimensions:{habit:l(M),iterativeCollaboration:l(P),contextCost:l(S),reliability:l(U),workflowIntegration:l(W)}}}async function x({cycleId:a="",ownerCandidates:b=[],viewerScope:c="all"}={}){let e=o(),f=e.find(b=>b.id===a)||e[0],g=function(a){let[b,c]=a.id.split("-").map(Number);return n(b,c-2)}(f),h=[...new Set(b.map(a=>j(a).toLowerCase()).filter(Boolean))],i=function(a,b=new Date){let c=new Date(a.startIso),d=new Date(a.endExclusiveIso);return b<=c?c.toISOString():(b<d?b:d).toISOString()}(f),m=t(f.startIso,i).workdays,p=function(a,b){let c=Math.max(0,Math.floor(k(b)));if(c<=0)return a.startIso;let d=r(a.startIso),e=r(new Date(new Date(a.endExclusiveIso).getTime()-1)),f=0;for(let a=d;a<=e;a+=1)if(s(a)&&(f+=1)>=c)return new Date((a+1)*864e5-252e5).toISOString();return a.endExclusiveIso}(g,m),q=await (0,d.d9)();try{let a,b,d,j,k,n=await v(q),o=await u(q,f,h,i),r=m>0?await u(q,g,h,p):[],s=new Map(r.map(a=>{let b=w(a,{cycle:g,effectiveEndIso:p,elapsedWorkdays:m,firstSeenByOwner:n});return[b.ownerUser,b]})),t=o.map(a=>{let b=w(a,{cycle:f,effectiveEndIso:i,elapsedWorkdays:m,firstSeenByOwner:n}),c=s.get(b.ownerUser),d=b.coreScore,e=c?l(d-c.coreScore):null;return{...b,score:d,level:function(a,b="ranked"){return"insufficient"===b?{id:"insufficient",label:"Insufficient"}:"provisional"===b?{id:"provisional",label:"Provisional"}:a>=80?{id:"leader",label:"AI Leader"}:a>=65?{id:"advanced",label:"Advanced"}:a>=50?{id:"proficient",label:"Proficient"}:a>=30?{id:"developing",label:"Developing"}:{id:"starter",label:"Starter"}}(d,b.evidenceStatus),previousScore:c?l(c.coreScore):null,scoreChange:e,trend:e}}),x=function(a=[]){let b=a=>a.sort((a,b)=>b.score-a.score||b.confidence-a.confidence||a.ownerUser.localeCompare(b.ownerUser)),c=b(a.filter(a=>"ranked"===a.evidenceStatus)).map((a,b)=>({...a,rank:b+1})),d=b(a.filter(a=>"provisional"===a.evidenceStatus)).map(a=>({...a,rank:null}));return[...c,...d,...b(a.filter(a=>"insufficient"===a.evidenceStatus)).map(a=>({...a,rank:null}))]}(t);return{generatedAt:new Date().toISOString(),viewerScope:c,cycle:f,previousCycle:g,comparisonWindow:{elapsedWorkdays:m,previousEndIso:p},cycles:e,summary:(a=x.filter(a=>"insufficient"!==a.evidenceStatus),b=x.reduce((a,b)=>a+b.requests,0),d=x.reduce((a,b)=>a+b.totalTokens,0),j=x.reduce((a,b)=>a+b.success,0),k=x.reduce((a,b)=>a+b.knownOutcomes,0),{users:x.length,rankedUsers:x.filter(a=>"ranked"===a.evidenceStatus).length,provisionalUsers:x.filter(a=>"provisional"===a.evidenceStatus).length,insufficientUsers:x.filter(a=>"insufficient"===a.evidenceStatus).length,averageScore:a.length?l(a.reduce((a,b)=>a+b.score,0)/a.length):0,totalRequests:b,totalTokens:d,successRate:k?j/k:0,activeUsers:x.filter(a=>a.activeDays>=3).length}),rows:x,methodology:{version:"3.1",name:"AI Effective Use Index",note:"Đo c\xe1ch người d\xf9ng đưa AI v\xe0o th\xf3i quen l\xe0m việc, cộng t\xe1c lặp, sử dụng context/cost hợp l\xfd, độ tin cậy v\xe0 t\xedch hợp workflow. Volume request/token kh\xf4ng trực tiếp cộng điểm.",deduplication:"Một logical request được t\xednh một lần theo requestId; nếu thiếu requestId th\xec mỗi usage row được xem l\xe0 một request ri\xeang.",sessionization:"Mỗi logical request l\xe0 một inferredHumanTurn. Ưu ti\xean sessionId do client cung cấp; nếu thiếu th\xec suy ra session mới sau 30 ph\xfat kh\xf4ng hoạt động.",rankingEligibility:"Trạng th\xe1i Ranked cần chu kỳ đ\xe3 qua \xedt nhất 5 ng\xe0y l\xe0m việc, >=3 ng\xe0y hoạt động, >=5 session, coverage >=50% v\xe0 confidence >=60%. Provisional c\xf3 t\xedn hiệu nhưng chưa đủ điều kiện rank; Insufficient l\xe0 evidence qu\xe1 \xedt để diễn giải ổn định.",coverage:"Coverage phản \xe1nh độ đầy đủ của sourceTool (40%), outcome (30%) v\xe0 token telemetry (30%). Explicit session coverage được hiển thị ri\xeang v\xec v3.1 c\xf3 fallback inferred session.",targets:{inputContextTarget:4e3,inferredSessionGapMinutes:30},dimensions:[{id:"habit",label:"Habit",weight:30,detail:"18 điểm theo tỷ lệ ng\xe0y l\xe0m việc c\xf3 d\xf9ng AI v\xe0 12 điểm theo tỷ lệ tuần c\xf3 hoạt động. Kh\xf4ng d\xf9ng số request/token để cộng điểm."},{id:"iterativeCollaboration",label:"Iterative Collaboration",weight:25,detail:"15 điểm theo tỷ lệ session c\xf3 từ 2 inferredHumanTurn v\xe0 10 điểm theo số turn lặp th\xeam trung b\xecnh mỗi session."},{id:"contextCost",label:"Context / Cost Discipline",weight:15,detail:"9 điểm theo P75 input context (log-normalized tới 4K) v\xe0 6 điểm cho context reuse; kh\xf4ng so raw $ giữa model/provider để tr\xe1nh thi\xean lệch gi\xe1."},{id:"reliability",label:"Reliability",weight:10,detail:"D\xf9ng Wilson lower bound tr\xean outcome c\xf3 thể quy tr\xe1ch nhiệm, với evidence blending về mức trung t\xednh khi mẫu c\xf2n nhỏ. 401/403/408/425/429/5xx v\xe0 unknown l\xe0 neutral."},{id:"workflowIntegration",label:"Workflow Integration",weight:20,detail:"12 điểm khi c\xf3 source tool/workflow nhận diện được v\xe0 tối đa 8 điểm cho breadth giữa c\xe1c workflow category c\xf3 \xfd nghĩa. Model diversity kh\xf4ng c\xf2n cộng điểm."}],outsideScore:["Adoption volume (logical requests/tokens)","Trend so với c\xf9ng số ng\xe0y l\xe0m việc của chu kỳ trước","Automation Intensity","Coverage","Confidence"]}}}finally{await q?.close?.().catch(()=>{})}}let y="__blueRouterAiEffectiveUseFairSnapshots";function z(a){let b=Number(a);return Number.isFinite(b)?b:0}function A(a,b=0,c=1){return Math.max(b,Math.min(c,z(a)))}function B(a,b=1){let c=10**b;return Math.round(z(a)*c)/c}function C(a,b,c=.9){return b*Math.pow(A(a),c)}function D(a,b,c){return c*(1-Math.exp(-Math.max(0,z(a))/Math.max(1e-4,b)))}async function E(a={}){let b,c,d,e,f,g=await x(a),h=z(g.comparisonWindow?.elapsedWorkdays),i=function(a=[]){let b=a=>[...a].sort((a,b)=>z(b.score)-z(a.score)||z(b.confidence)-z(a.confidence)||z(b.activeDays)-z(a.activeDays)||String(a.ownerUser||"").localeCompare(String(b.ownerUser||"")));return[...b(a.filter(a=>"ranked"===a.evidenceStatus)).map((a,b)=>({...a,rank:b+1})),...b(a.filter(a=>"provisional"===a.evidenceStatus)).map(a=>({...a,rank:null})),...b(a.filter(a=>"insufficient"===a.evidenceStatus)).map(a=>({...a,rank:null}))]}((g.rows||[]).map(a=>{let b,c,d,e,f,g,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W;return b=z(a.requests),c=z(a.activeDays),d=z(a.activeWeeks),e=A(a.activeDayRate),f=A(a.activeWeekRate),g=z(a.sessionCount),i=A(a.multiTurnSessionRate),j=Math.max(0,z(a.iterativeTurnsPerSession)),k=Math.max(0,z(a.p75InputTokens)),l=Math.max(0,z(a.inputTokens)),m=Math.max(0,z(a.newInputTokens)),n=Math.max(0,z(a.cachedInputTokens)),o=z(a.knownOutcomes),p=z(a.success),q=z(a.sourceToolCount),r=Math.max(0,z(a.effectiveToolCategories)),s=A(z(a.coverageDetail?.token)/100),t=A(z(a.coverageDetail?.outcome)/100),u=A(z(a.coverageDetail?.sourceTool)/100),v=C(e,18,.9)+C(f,7,.9),w=C(i,15,.9)+D(j,2.5,10),x=l>0?A(m/l):0,E=(y=s>=.5)&&n>0&&l>0,F=y?D(k*x,3e3,12):0,G=l>0?A(n/l):0,H=E?8*Math.sqrt(G):0,K=A(((J=(I=t>=.5&&o>=5)?(p+19)/(o+20):.95)-.7)/.3),L=I?20*Math.pow(K,1.5):0,N=(M=u>=.5&&q>0)?D(Math.max(r-1,0),1.5,10):0,P=Object.values(O={habit:25,iterativeCollaboration:25*(g>0),contextFresh:12*!!y,cacheReuse:8*!!E,reliability:20*!!I,workflowIntegration:10*!!M}).reduce((a,b)=>a+b,0),Q=v+w+F+H+L+N,R=P>0?B(100*Q/P):0,S=B(100*P/100,0),T=B(100*(.3*A(b/30)+.25*A(c/5)+.2*A(g/8)+.25*A(S/100)),0),W=(V=!(U=h<3||b<10||c<2||g<3||S<60||T<45)&&h>=8&&b>=30&&c>=5&&d>=2&&g>=5&&S>=80&&T>=70)?"ranked":U?"insufficient":"provisional",{...a,score:R,coreScore:R,level:function(a,b="ranked"){return"insufficient"===b?{id:"insufficient",label:"Insufficient"}:"provisional"===b?{id:"provisional",label:"Provisional"}:a>=80?{id:"leader",label:"AI Leader"}:a>=65?{id:"advanced",label:"Advanced"}:a>=50?{id:"proficient",label:"Proficient"}:a>=30?{id:"developing",label:"Developing"}:{id:"starter",label:"Starter"}}(R,W),rank:null,rankEligible:V,evidenceStatus:W,coverage:S,confidence:T,previousScore:null,scoreChange:null,trend:null,cacheReuseRate:B(G,4),posteriorSuccessRate:B(J,4),availableWeight:P,dimensionAvailability:{habit:25,iterativeCollaboration:O.iterativeCollaboration,contextCost:O.contextFresh+O.cacheReuse,reliability:O.reliability,workflowIntegration:O.workflowIntegration},dimensions:{habit:B(v),iterativeCollaboration:B(w),contextCost:B(F+H),reliability:B(L),workflowIntegration:B(N)}}}));return{...g,generatedAt:new Date().toISOString(),rows:i,summary:(b=i.filter(a=>"insufficient"!==a.evidenceStatus),c=i.reduce((a,b)=>a+z(b.requests),0),d=i.reduce((a,b)=>a+z(b.totalTokens),0),e=i.reduce((a,b)=>a+z(b.success),0),f=i.reduce((a,b)=>a+z(b.knownOutcomes),0),{users:i.length,rankedUsers:i.filter(a=>"ranked"===a.evidenceStatus).length,provisionalUsers:i.filter(a=>"provisional"===a.evidenceStatus).length,insufficientUsers:i.filter(a=>"insufficient"===a.evidenceStatus).length,averageScore:b.length?B(b.reduce((a,b)=>a+z(b.score),0)/b.length):0,totalRequests:c,totalTokens:d,successRate:f?e/f:0,activeUsers:i.filter(a=>z(a.activeDays)>=3).length}),methodology:function(a={}){return{...a,version:"3.1-fair",name:"AI Effective Use Index",note:"Fairness calibration: giữ độ ph\xe2n giải tr\xean to\xe0n dải h\xe0nh vi, giảm vai tr\xf2 Workflow v\xe0 kh\xf4ng phạt missing telemetry như điểm 0. Request/token volume vẫn kh\xf4ng trực tiếp cộng điểm.",rankingEligibility:"Ranked cần >=8 ng\xe0y l\xe0m việc đ\xe3 tr\xf4i qua, >=30 logical request, >=5 ng\xe0y hoạt động, >=2 tuần hoạt động, >=5 session, coverage >=80% v\xe0 confidence >=70%. Coverage 60-79% hoặc evidence chưa đủ sẽ l\xe0 Provisional; dưới ngưỡng evidence tối thiểu l\xe0 Insufficient.",coverage:"Score được chuẩn h\xf3a tr\xean availableWeight. Habit/Iteration d\xf9ng telemetry nền; Context cần token coverage; Reliability cần outcome coverage; Workflow cần source-tool coverage. Missing telemetry bị loại khỏi mẫu số thay v\xec bị t\xednh 0 điểm.",dimensions:[{id:"habit",label:"Habit",weight:25,detail:"18 điểm active-day rate + 7 điểm active-week rate bằng power curve li\xean tục. Chỉ đạt tối đa khi tỷ lệ thực sự tiến tới 100%, kh\xf4ng c\xf2n ngưỡng 65%/80% ăn full sớm."},{id:"iterativeCollaboration",label:"Iterative Collaboration",weight:25,detail:"15 điểm theo multi-turn session rate tr\xean to\xe0n dải 0-100%; 10 điểm theo iterative turns/session bằng đường cong tiệm cận, n\xean 2.5 v\xe0 5 turns vẫn kh\xe1c nhau nhưng kh\xf4ng thưởng v\xf4 hạn."},{id:"contextCost",label:"Context / Cost Discipline",weight:20,detail:"Tối đa 12 điểm fresh-context estimate v\xe0 8 điểm cache reuse. Fresh context loại phần cache khỏi P75 để tr\xe1nh thưởng cache hai lần. Cache component chỉ tham gia khi cache thực sự quan s\xe1t được."},{id:"reliability",label:"Reliability",weight:20,detail:"Bayesian-stabilized success rate với prior nhẹ 95%/20 observations; chỉ actionable outcomes tham gia. Infrastructure/provider failures tiếp tục l\xe0 neutral."},{id:"workflowIntegration",label:"Workflow Integration",weight:10,detail:"Chỉ c\xf2n tối đa 10 điểm v\xe0 kh\xf4ng c\xf3 điểm nền chỉ v\xec sourceTool tồn tại. Model/provider diversity kh\xf4ng cộng điểm; breadth tăng theo đường cong tiệm cận."}],outsideScore:["Adoption volume (logical requests/tokens)","Trend/Momentum","Automation Intensity","Coverage","Confidence"],fairness:"Nếu hai user thực sự giống nhau tr\xean c\xe1c h\xe0nh vi đo được th\xec score giống nhau l\xe0 đ\xfang. Bản calibration n\xe0y chỉ ngăn việc clamp sớm l\xe0m mất c\xe1c kh\xe1c biệt thật v\xe0 ngăn Workflow trở th\xe0nh biến quyết định duy nhất."}}(g.methodology)}}async function F(){let a=(globalThis[y]||(globalThis[y]={snapshots:new Map,running:null,status:"warming",lastError:"",lastRefreshAt:""}),globalThis[y]);return a.running||(a.status=a.snapshots.size?"refreshing":"warming",a.running=(async()=>{let b=o(),c=new Map;for(let a of b){let b=await E({cycleId:a.id,ownerCandidates:[],viewerScope:"all"});c.set(a.id,{...b,status:"ready"})}return a.snapshots=c,a.status="ready",a.lastError="",a.lastRefreshAt=new Date().toISOString(),c})().catch(b=>{throw a.status=a.snapshots.size?"stale":"error",a.lastError=b?.message||String(b),b}).finally(()=>{a.running=null})),a.running}let G="__blueRouterAiPowerIndexScheduler";function H(){return globalThis[G]||(globalThis[G]={started:!1,timer:null}),globalThis[G]}async function I(){try{console.log("[ai-power-index] Starting background snapshot refresh..."),await F(),console.log("[ai-power-index] Background snapshot refresh completed.")}catch(a){console.warn("[ai-power-index] Background snapshot refresh failed:",a?.message||a)}finally{let a,b;a=H(),a.timer=setTimeout(I,Math.max(1e3,(b=function(a=new Date){let b=new Date(a.getTime()+252e5);return new Date(Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate(),12>b.getUTCHours()?12:24,0,0,0)-252e5)}()).getTime()-Date.now())),a.timer.unref?.(),console.log(`[ai-power-index] Next background refresh: ${b.toISOString()} (Asia/Saigon 00:00/12:00)`)}}function J(){let a=H();a.started||(a.started=!0,a.timer=setTimeout(I,2e3),a.timer.unref?.())}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7077],{40077:(e,t,s)=>{"use strict";s.d(t,{default:()=>p});var r=s(95155),a=s(12115);let n=e=>new Intl.NumberFormat("vi-VN").format(Number(e||0)),i=e=>new Intl.NumberFormat("vi-VN",{notation:"compact",maximumFractionDigits:1}).format(Number(e||0)),l=e=>`${(100*Number(e||0)).toFixed(1)}%`,d=e=>`${Number(e||0).toFixed(0)}%`;function o({score:e,small:t=!1}){let s=Math.max(0,Math.min(100,Number(e||0))),a=s>=80?"#10b981":s>=65?"#3b82f6":s>=50?"#8b5cf6":s>=30?"#f59e0b":"#94a3b8";return(0,r.jsx)("div",{className:"grid shrink-0 place-items-center rounded-full",style:{width:t?48:112,height:t?48:112,background:`conic-gradient(${a} ${3.6*s}deg, color-mix(in srgb, ${a} 12%, transparent) 0deg)`},children:(0,r.jsx)("div",{className:`grid place-items-center rounded-full bg-surface ${t?"h-9 w-9":"h-[92px] w-[92px]"}`,children:(0,r.jsx)("span",{className:`${t?"text-xs":"text-3xl"} font-black text-text-main`,children:s.toFixed(+!t)})})})}function c({icon:e,label:t,value:s,hint:a}){return(0,r.jsx)("div",{className:"rounded-2xl border border-border bg-background p-5 shadow-sm",children:(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wide text-text-muted",children:t}),(0,r.jsx)("div",{className:"mt-2 text-2xl font-bold text-text-main",children:s}),(0,r.jsx)("div",{className:"mt-2 text-xs text-text-muted",children:a})]}),(0,r.jsx)("span",{className:"material-symbols-outlined rounded-xl bg-primary/10 p-2 text-primary",children:e})]})})}function x({value:e}){if(null==e)return(0,r.jsx)("span",{className:"text-xs text-text-muted",children:"Chưa c\xf3 kỳ so s\xe1nh"});let t=Number(e)>=0;return(0,r.jsxs)("span",{className:`inline-flex items-center gap-0.5 rounded-full px-2 py-1 text-xs font-semibold ${t?"bg-emerald-500/10 text-emerald-600 dark:text-emerald-300":"bg-red-500/10 text-red-600 dark:text-red-300"}`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:t?"arrow_upward":"arrow_downward"}),Math.abs(Number(e)).toFixed(1)]})}function m({row:e,compact:t=!1}){if(e?.evidenceStatus==="ranked")return t?(0,r.jsxs)("span",{children:["Hạng #",e.rank]}):(0,r.jsxs)("span",{className:"font-semibold text-text-main",children:["Hạng #",e.rank," to\xe0n hệ thống"]});let s=e?.evidenceStatus==="insufficient";return(0,r.jsx)("span",{className:`rounded-full px-2 py-1 text-xs font-semibold ${s?"bg-amber-500/10 text-amber-700 dark:text-amber-300":"bg-slate-500/10 text-text-muted"}`,children:s?"Insufficient":"Provisional"})}let u={habit:"bg-emerald-500",iterativeCollaboration:"bg-violet-500",contextCost:"bg-blue-500",reliability:"bg-cyan-500",workflowIntegration:"bg-amber-500"};function h({row:e,dimensions:t,onClose:s}){if(!e)return null;let a=[["Logical requests (ngo\xe0i score)",n(e.requests)],["Ng\xe0y l\xe0m việc c\xf3 d\xf9ng",n(e.activeDays)],["Tuần c\xf3 hoạt động",n(e.activeWeeks)],["Inferred sessions",n(e.sessionCount)],["Multi-turn sessions",n(e.multiTurnSessions)],["Avg inferredHumanTurn/session",Number(e.avgTurnsPerSession||0).toFixed(2)],["P75 input/request",n(e.p75InputTokens)],["Cached input tokens",n(e.cachedInputTokens)],["Workflow categories đ\xe1ng kể",n(e.sourceToolCount)],["Automation intensity",l(e.automationIntensity)],["Known outcomes",n(e.knownOutcomes)],["Actionable failures",n(e.actionableFailures)],["Coverage",d(e.coverage)],["Confidence",d(e.confidence)]];return(0,r.jsx)("div",{className:"fixed inset-0 z-[100] flex justify-end bg-slate-950/65 backdrop-blur-[2px]",onMouseDown:s,children:(0,r.jsxs)("aside",{role:"dialog","aria-modal":"true","aria-label":`Chi tiết AI Effective Use Index của ${e.ownerUser}`,className:"h-full w-full overflow-y-auto border-l border-border bg-surface shadow-[-24px_0_60px_rgba(2,6,23,0.28)] sm:w-[min(92vw,680px)]",onMouseDown:e=>e.stopPropagation(),children:[(0,r.jsxs)("header",{className:"sticky top-0 z-10 flex items-start justify-between gap-4 border-b border-border bg-surface px-5 py-4 shadow-sm sm:px-6",children:[(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:"Chi tiết người d\xf9ng"}),(0,r.jsx)("h2",{className:"mt-1 truncate text-xl font-bold text-text-main",title:e.ownerUser,children:e.ownerUser})]}),(0,r.jsx)("button",{type:"button",onClick:s,"aria-label":"Đ\xf3ng",className:"grid h-10 w-10 shrink-0 place-items-center rounded-xl border border-border bg-bg text-text-muted transition hover:border-primary/40 hover:text-text-main",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"close"})})]}),(0,r.jsxs)("div",{className:"space-y-5 p-4 sm:p-6",children:[(0,r.jsxs)("section",{className:"grid gap-5 rounded-2xl border border-border bg-bg-alt p-5 sm:grid-cols-[auto_1fr] sm:items-center",children:[(0,r.jsx)(o,{score:e.score}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xl font-bold text-text-main",children:[(0,r.jsx)("span",{children:e.level?.label}),"ranked"!==e.evidenceStatus?(0,r.jsx)(m,{row:e}):null]}),(0,r.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2 text-sm text-text-muted",children:["ranked"===e.evidenceStatus?(0,r.jsx)(m,{row:e}):(0,r.jsx)("span",{children:"Chưa đủ evidence để xếp hạng ch\xednh thức"}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsxs)("span",{children:["Coverage ",d(e.coverage)]}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsxs)("span",{children:["Confidence ",d(e.confidence)]})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(x,{value:e.scoreChange})})]})]}),(0,r.jsxs)("section",{className:"space-y-4 rounded-2xl border border-border bg-bg p-5",children:[(0,r.jsx)("h3",{className:"font-bold text-text-main",children:"Cấu phần điểm v3.1"}),t.map(t=>{let s=Math.min(100,Number(e.dimensions?.[t.id]||0)/t.weight*100);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"mb-1.5 flex justify-between gap-3 text-xs",children:[(0,r.jsx)("span",{className:"font-medium text-text-main",children:t.label}),(0,r.jsxs)("span",{className:"tabular-nums text-text-muted",children:[Number(e.dimensions?.[t.id]||0).toFixed(1)," / ",t.weight]})]}),(0,r.jsx)("div",{className:"h-2.5 overflow-hidden rounded-full bg-surface-3",children:(0,r.jsx)("div",{className:`h-full rounded-full ${u[t.id]||"bg-primary"}`,style:{width:`${s}%`}})})]},t.id)})]}),(0,r.jsx)("section",{className:"grid gap-3 text-sm sm:grid-cols-2",children:a.map(([e,t])=>(0,r.jsxs)("div",{className:"min-w-0 rounded-xl border border-border bg-bg p-3.5",children:[(0,r.jsx)("div",{className:"text-xs text-text-muted",children:e}),(0,r.jsx)("div",{className:"mt-1 truncate font-bold tabular-nums text-text-main",title:String(t),children:t})]},e))})]})]})})}function b({row:e,viewerUserId:t,dimensions:s,onOpen:a}){return e?(0,r.jsxs)("section",{className:"overflow-hidden rounded-2xl border border-primary/20 bg-gradient-to-br from-primary/10 via-background to-violet-500/5 shadow-sm",children:[(0,r.jsxs)("div",{className:"grid gap-6 p-5 lg:grid-cols-[auto_1fr_auto] lg:items-center",children:[(0,r.jsx)(o,{score:e.score}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:"AI Effective Use Index của bạn"}),(0,r.jsx)("h2",{className:"mt-1 break-all text-xl font-black text-text-main",children:e.ownerUser}),(0,r.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-sm text-text-muted",children:[(0,r.jsx)("span",{children:e.level?.label}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsx)(m,{row:e,compact:!0}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsxs)("span",{children:["Coverage ",d(e.coverage)]}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsxs)("span",{children:["Confidence ",d(e.confidence)]}),(0,r.jsx)(x,{value:e.scoreChange})]}),"ranked"!==e.evidenceStatus?(0,r.jsx)("p",{className:"mt-2 text-xs text-text-muted",children:"Score l\xe0 t\xedn hiệu tham khảo; chỉ trạng th\xe1i Ranked mới tham gia leaderboard ch\xednh thức."}):null,(0,r.jsxs)("div",{className:"mt-4 grid max-w-2xl grid-cols-2 gap-2 sm:grid-cols-4",children:[(0,r.jsxs)("div",{className:"rounded-xl bg-background/80 p-3",children:[(0,r.jsx)("div",{className:"text-xs text-text-muted",children:"Requests \xb7 ngo\xe0i score"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:n(e.requests)})]}),(0,r.jsxs)("div",{className:"rounded-xl bg-background/80 p-3",children:[(0,r.jsx)("div",{className:"text-xs text-text-muted",children:"Inferred sessions"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:n(e.sessionCount)})]}),(0,r.jsxs)("div",{className:"rounded-xl bg-background/80 p-3",children:[(0,r.jsx)("div",{className:"text-xs text-text-muted",children:"Ng\xe0y l\xe0m việc"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:n(e.activeDays)})]}),(0,r.jsxs)("div",{className:"rounded-xl bg-background/80 p-3",children:[(0,r.jsx)("div",{className:"text-xs text-text-muted",children:"Automation intensity"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:l(e.automationIntensity)})]})]})]}),(0,r.jsxs)("button",{type:"button",onClick:a,className:"inline-flex items-center justify-center gap-2 rounded-xl border border-primary/30 bg-background px-4 py-2.5 text-sm font-semibold text-primary hover:bg-primary/5",children:["Xem chi tiết",(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_forward"})]})]}),(0,r.jsx)("div",{className:"grid gap-2 border-t border-primary/10 bg-background/50 p-4 sm:grid-cols-2 lg:grid-cols-5",children:s.map(t=>(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 rounded-lg px-2 py-1 text-xs",children:[(0,r.jsx)("span",{className:"text-text-muted",children:t.label}),(0,r.jsxs)("span",{className:"font-bold text-text-main",children:[Number(e.dimensions?.[t.id]||0).toFixed(1),"/",t.weight]})]},t.id))})]}):(0,r.jsx)("section",{className:"rounded-2xl border border-border bg-gradient-to-r from-primary/5 to-background p-5",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined rounded-xl bg-primary/10 p-2 text-primary",children:"person"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-bold text-text-main",children:"AI Effective Use Index của bạn"}),(0,r.jsxs)("p",{className:"mt-1 text-sm text-text-muted",children:["Chưa t\xecm thấy dữ liệu gắn với ",(0,r.jsx)("b",{children:t||"t\xe0i khoản hiện tại"})," trong chu kỳ n\xe0y."]})]})]})})}function p(){let[e,t]=(0,a.useState)(null),[s,m]=(0,a.useState)(""),[u,p]=(0,a.useState)(""),[g,f]=(0,a.useState)(!0),[j,v]=(0,a.useState)(""),[N,y]=(0,a.useState)(null),w=(0,a.useCallback)(async()=>{f(!0),v("");try{let e=new URLSearchParams;s&&e.set("cycle",s);let r=await fetch(`/api/dashboard/ai-power-index?${e}`,{cache:"no-store"}),a=await r.json().catch(()=>({}));if(!r.ok)throw Error(a?.error||`HTTP ${r.status}`);t(a),s||m(a.cycle?.id||"")}catch(e){v(e?.message||"Kh\xf4ng tải được AI Effective Use Index")}finally{f(!1)}},[s]);(0,a.useEffect)(()=>{let e=setTimeout(w,0);return()=>clearTimeout(e)},[w]);let k=(0,a.useMemo)(()=>e?.rows||[],[e?.rows]),C=(0,a.useMemo)(()=>{let e=u.trim().toLowerCase();return e?k.filter(t=>t.ownerUser.toLowerCase().includes(e)):k},[k,u]),I=e?.viewerRecord&&e?.viewerScope==="all"?k.find(t=>t.ownerUser===e.viewerRecord.ownerUser)||e.viewerRecord:e?.viewerRecord||null,S=e?.summary||{},U=e?.methodology?.dimensions||[],T=e?.methodology?.targets||{};return(0,r.jsxs)("main",{className:"space-y-6 p-4 md:p-6",children:[(0,r.jsxs)("section",{className:"overflow-hidden rounded-3xl border border-border bg-background shadow-sm",children:[(0,r.jsx)("div",{className:"border-b border-border bg-gradient-to-r from-primary/15 via-violet-500/5 to-background p-6",children:(0,r.jsxs)("div",{className:"flex flex-col gap-5 lg:flex-row lg:items-center lg:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"mb-2 flex flex-wrap gap-2",children:[(0,r.jsx)("span",{className:"rounded-full border border-primary/20 bg-primary/10 px-3 py-1 text-xs font-semibold text-primary",children:"AI Effective Use"}),(0,r.jsx)("span",{className:"rounded-full border border-border bg-surface px-3 py-1 text-xs font-semibold text-text-muted",children:"v3.1"}),(0,r.jsx)("span",{className:"rounded-full border border-border bg-surface px-3 py-1 text-xs font-semibold text-text-muted",children:"Chu kỳ 26 → 25"}),(0,r.jsx)("span",{className:"rounded-full border border-border bg-surface px-3 py-1 text-xs font-semibold text-text-muted",children:e?.viewerScope==="all"?"To\xe0n hệ thống":"Dữ liệu của bạn"})]}),(0,r.jsx)("h1",{className:"text-2xl font-black text-text-main md:text-3xl",children:"AI Effective Use Index"}),(0,r.jsx)("p",{className:"mt-2 max-w-4xl text-sm text-text-muted",children:"Đo c\xe1ch AI được đưa v\xe0o th\xf3i quen, v\xf2ng lặp cộng t\xe1c v\xe0 workflow thực tế. Request/token volume, trend, automation intensity, coverage v\xe0 confidence được giữ ngo\xe0i score."})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("select",{value:s||e?.cycle?.id||"",onChange:e=>m(e.target.value),className:"rounded-xl border border-border bg-background px-3 py-2.5 text-sm font-semibold text-text-main outline-none focus:border-primary",children:(e?.cycles||[]).map(e=>(0,r.jsx)("option",{value:e.id,children:e.label},e.id))}),(0,r.jsxs)("button",{type:"button",onClick:w,disabled:g,className:"inline-flex items-center gap-2 rounded-xl border border-border bg-background px-4 py-2.5 text-sm font-semibold text-text-main hover:bg-surface disabled:opacity-50",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[18px] ${g?"animate-spin":""}`,children:"refresh"}),"Tải snapshot"]})]})]})}),j?(0,r.jsx)("div",{className:"m-6 rounded-2xl border border-red-500/20 bg-red-500/10 p-4 text-sm text-red-700 dark:text-red-300",children:j}):null,j||e?.status==="ready"?null:(0,r.jsx)("div",{className:"m-6 rounded-2xl border border-amber-500/20 bg-amber-500/10 p-4 text-sm text-amber-700 dark:text-amber-300",children:e?.status==="refreshing"?"Snapshot đang được cập nhật nền. Dữ liệu hiện tại vẫn l\xe0 lần t\xednh gần nhất.":e?.status==="error"?`Kh\xf4ng thể khởi tạo snapshot: ${e?.lastError||"Lỗi kh\xf4ng x\xe1c định"}`:"AI Effective Use Index đang được t\xednh nền sau khi ứng dụng khởi động. Trang n\xe0y kh\xf4ng chạy truy vấn t\xednh điểm; h\xe3y tải lại snapshot sau \xedt ph\xfat."}),g&&!e?(0,r.jsxs)("div",{className:"flex min-h-[360px] items-center justify-center text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined mr-2 animate-spin",children:"progress_activity"}),"Đang tải snapshot AI Effective Use Index..."]}):(0,r.jsxs)("div",{className:"space-y-6 p-4 md:p-6",children:[(0,r.jsxs)("div",{className:"grid gap-4 sm:grid-cols-2 xl:grid-cols-5",children:[(0,r.jsx)(c,{icon:"groups",label:"Người d\xf9ng",value:n(S.users),hint:`${n(S.rankedUsers)} ranked \xb7 ${n(S.provisionalUsers)} provisional \xb7 ${n(S.insufficientUsers)} insufficient`}),(0,r.jsx)(c,{icon:"electric_bolt",label:"Điểm trung b\xecnh",value:Number(S.averageScore||0).toFixed(1),hint:"Chỉ Ranked + Provisional"}),(0,r.jsx)(c,{icon:"forum",label:"Logical requests",value:i(S.totalRequests),hint:"Adoption signal \xb7 ngo\xe0i score"}),(0,r.jsx)(c,{icon:"token",label:"Tổng tokens",value:i(S.totalTokens),hint:"Telemetry context/cost \xb7 volume ngo\xe0i score"}),(0,r.jsx)(c,{icon:"task_alt",label:"Effective completion",value:l(S.successRate),hint:"Known outcomes \xb7 reliability signal"})]}),(0,r.jsx)(b,{row:I,viewerUserId:e?.viewerUserId,dimensions:U,onOpen:()=>I&&y(I)}),(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface/40 p-5",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary",children:"info"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-bold text-text-main",children:"C\xe1ch t\xednh điểm v3.1"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:e?.methodology?.note}),(0,r.jsx)("p",{className:"mt-2 text-xs text-text-muted",children:e?.methodology?.rankingEligibility})]})]}),(0,r.jsx)("div",{className:"mt-4 grid gap-3 md:grid-cols-2 xl:grid-cols-3",children:U.map(e=>(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-background p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"font-semibold text-text-main",children:e.label}),(0,r.jsxs)("span",{className:"font-black text-primary",children:[e.weight,"%"]})]}),(0,r.jsx)("p",{className:"mt-2 text-xs leading-relaxed text-text-muted",children:e.detail})]},e.id))}),(0,r.jsxs)("div",{className:"mt-4 grid gap-3 lg:grid-cols-2",children:[(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-background p-4 text-xs leading-relaxed text-text-muted",children:[(0,r.jsx)("span",{className:"font-semibold text-text-main",children:"Sessionization:"})," ",e?.methodology?.sessionization," Context target P75 input: ",(0,r.jsx)("b",{children:n(T.inputContextTarget)})," tokens."]}),(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-background p-4 text-xs leading-relaxed text-text-muted",children:[(0,r.jsx)("span",{className:"font-semibold text-text-main",children:"Ngo\xe0i score:"})," ",(e?.methodology?.outsideScore||[]).join(" \xb7 "),". ",e?.methodology?.coverage]})]})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-background shadow-sm",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 border-b border-border p-5 md:flex-row md:items-center md:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-bold text-text-main",children:e?.viewerScope==="all"?"Xếp hạng theo chu kỳ":"Thống k\xea của bạn theo chu kỳ"}),(0,r.jsxs)("p",{className:"mt-1 text-xs text-text-muted",children:[e?.cycle?.label," \xb7 Chỉ Ranked nhận hạng; Provisional v\xe0 Insufficient vẫn hiển thị evidence để theo d\xf5i."]})]}),e?.viewerScope==="all"?(0,r.jsxs)("div",{className:"relative w-full md:w-72",children:[(0,r.jsx)("span",{className:"material-symbols-outlined absolute left-3 top-2.5 text-[19px] text-text-muted",children:"search"}),(0,r.jsx)("input",{value:u,onChange:e=>p(e.target.value),placeholder:"T\xecm user...",className:"w-full rounded-xl border border-border bg-surface py-2.5 pl-10 pr-3 text-sm text-text-main outline-none focus:border-primary"})]}):null]}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full min-w-[1080px] text-sm",children:[(0,r.jsx)("thead",{className:"bg-surface/50 text-left text-xs uppercase tracking-wide text-text-muted",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-5 py-3",children:"Hạng / User"}),(0,r.jsx)("th",{className:"px-3 py-3",children:"Điểm"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Sessions"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Multi-turn"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Ng\xe0y l\xe0m việc"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Coverage"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Automation"}),(0,r.jsx)("th",{className:"px-5 py-3 text-right",children:"Trend vs kỳ trước"})]})}),(0,r.jsx)("tbody",{children:C.length?C.map(e=>(0,r.jsxs)("tr",{onClick:()=>y(e),className:"cursor-pointer border-t border-border/70 transition hover:bg-primary/5",children:[(0,r.jsx)("td",{className:"px-5 py-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-3",children:["ranked"===e.evidenceStatus?(0,r.jsxs)("span",{className:`grid h-8 w-8 place-items-center rounded-full text-xs font-black ${e.rank<=3?"bg-amber-500/15 text-amber-600 dark:text-amber-300":"bg-surface text-text-muted"}`,children:["#",e.rank]}):(0,r.jsx)("span",{className:`grid h-8 w-8 place-items-center rounded-full ${"insufficient"===e.evidenceStatus?"bg-amber-500/10 text-amber-600 dark:text-amber-300":"bg-slate-500/10 text-text-muted"}`,children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"insufficient"===e.evidenceStatus?"warning":"hourglass_top"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"max-w-[260px] truncate font-semibold text-text-main",title:e.ownerUser,children:e.ownerUser}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-text-muted",children:[(0,r.jsx)("span",{children:e.level?.label}),(0,r.jsxs)("span",{children:["\xb7 confidence ",d(e.confidence)]})]})]})]})}),(0,r.jsx)("td",{className:"px-3 py-4",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(o,{score:e.score,small:!0}),(0,r.jsx)("span",{className:"font-bold text-text-main",children:Number(e.score||0).toFixed(1)})]})}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:n(e.sessionCount)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:l(e.multiTurnSessionRate)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:n(e.activeDays)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:d(e.coverage)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:l(e.automationIntensity)}),(0,r.jsx)("td",{className:"px-5 py-4 text-right",children:(0,r.jsx)(x,{value:e.scoreChange})})]},e.ownerUser)):(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:8,className:"px-5 py-14 text-center text-text-muted",children:"Chưa c\xf3 dữ liệu user trong chu kỳ n\xe0y."})})})]})})]})]})]}),(0,r.jsx)(h,{row:N,dimensions:U,onClose:()=>y(null)})]})}},40998:(e,t,s)=>{Promise.resolve().then(s.bind(s,40077))}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=40998)),_N_E=e.O()}]);
|
|
File without changes
|
/package/app/.next-cli-build/static/{U0zlVcrlvBzgDH14fUMMn → qc2lGHeMapgHQOxZfnBPh}/_ssgManifest.js
RENAMED
|
File without changes
|