@jheavenknows/bluerouter 5.2.73 → 5.2.75

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.
Files changed (457) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +9 -9
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js.nft.json +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  78. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  85. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  86. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  87. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  88. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  89. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  166. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  199. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  203. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  225. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  276. package/app/.next-cli-build/server/app/callback.html +1 -1
  277. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  278. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  279. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  280. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  281. package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
  282. package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +8 -8
  283. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +8 -8
  284. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +8 -8
  285. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +2 -2
  286. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  287. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +7 -7
  288. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +7 -7
  289. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +7 -7
  290. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  291. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +10 -10
  293. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
  294. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
  295. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  296. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  298. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  299. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  300. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  301. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
  303. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
  304. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
  305. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +2 -2
  306. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  308. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  309. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  310. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  311. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
  313. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +7 -7
  314. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
  315. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +2 -2
  316. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  318. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  319. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  320. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  321. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  323. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  324. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  325. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  326. package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
  328. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +7 -7
  329. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
  330. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +2 -2
  331. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  333. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
  334. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  335. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  336. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  338. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  339. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  340. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  341. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  343. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  344. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  345. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  346. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
  348. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +7 -7
  349. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
  350. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  351. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
  353. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +7 -7
  354. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
  355. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  356. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  358. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  359. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  360. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  361. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  363. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  364. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  365. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  366. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  368. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  369. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  370. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  371. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  373. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  374. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  375. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  376. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
  378. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +7 -7
  379. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
  380. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
  381. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
  383. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  384. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  385. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  386. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  387. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  388. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  389. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  390. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  391. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  393. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  394. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  395. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  396. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  397. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  398. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
  399. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  400. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  403. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  404. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  405. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  406. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  407. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  408. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  409. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  410. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/index.html +1 -1
  413. package/app/.next-cli-build/server/app/index.rsc +6 -6
  414. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  415. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  416. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  417. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  419. package/app/.next-cli-build/server/app/landing.html +1 -1
  420. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  421. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  422. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  423. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  424. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  425. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  426. package/app/.next-cli-build/server/app/login.html +1 -1
  427. package/app/.next-cli-build/server/app/login.rsc +7 -7
  428. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  429. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  430. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  431. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  433. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  434. package/app/.next-cli-build/server/app-paths-manifest.json +9 -9
  435. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  436. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  437. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  438. package/app/.next-cli-build/server/chunks/6759.js +1 -1
  439. package/app/.next-cli-build/server/chunks/6811.js +1 -1
  440. package/app/.next-cli-build/server/chunks/891.js +127 -0
  441. package/app/.next-cli-build/server/instrumentation.js +1 -1
  442. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  443. package/app/.next-cli-build/server/pages/404.html +1 -1
  444. package/app/.next-cli-build/server/pages/500.html +1 -1
  445. package/app/.next-cli-build/static/chunks/{5263-105fb37a13edb349.js → 5263-0ac1408290747753.js} +1 -1
  446. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ai-power-index/page-4e443c83025832cc.js +1 -0
  447. package/app/.next-cli-build/static/css/{da1665569500bdf4.css → a7c1302aadbfedcd.css} +1 -1
  448. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.2.72-to-5.2.73-5.2.73-20260813-220700/data.sqlite +0 -0
  449. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.2.69-to-5.2.70-5.2.70-20260813-200634 → upgrade-5.2.73-to-5.2.74-5.2.74-20260813-232723}/data.sqlite +0 -0
  450. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
  451. package/app/package.json +1 -1
  452. package/package.json +1 -1
  453. package/app/.next-cli-build/server/chunks/4719.js +0 -91
  454. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/ai-power-index/page-f906419647587a22.js +0 -1
  455. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.2.69-to-5.2.70-5.2.70-20260813-200635/data.sqlite +0 -0
  456. /package/app/.next-cli-build/static/{ysEVyFB66A5Zgfz6jxoYI → U0zlVcrlvBzgDH14fUMMn}/_buildManifest.js +0 -0
  457. /package/app/.next-cli-build/static/{ysEVyFB66A5Zgfz6jxoYI → U0zlVcrlvBzgDH14fUMMn}/_ssgManifest.js +0 -0
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluerouter-app",
3
- "version": "5.2.73",
3
+ "version": "5.2.75",
4
4
  "description": "Router web dashboard",
5
5
  "private": false,
6
6
  "scripts": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jheavenknows/bluerouter",
3
- "version": "5.2.73",
3
+ "version": "5.2.75",
4
4
  "description": "Bluerouter CLI - Start and manage Bluerouter server",
5
5
  "bin": {
6
6
  "bluerouter": "./cli.js"
@@ -1,91 +0,0 @@
1
- "use strict";exports.id=4719,exports.ids=[4719],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)}},77864:(a,b,c)=>{c.d(b,{ensureAiPowerIndexScheduler:()=>M});var d=c(689);let e="__blueRouterAiPowerIndexSnapshots",f="__blueRouterAiPowerIndexFirstSeen",g="lower(trim(COALESCE(CAST(status AS CHAR), '')))",h=`${g} IN ('pending', 'running', 'in_progress', 'queued', 'processing')`,i="NULLIF(COALESCE(statusCode, 0), 0)",j=`CASE
2
- WHEN ${i} BETWEEN 200 AND 299 THEN 'success'
3
- WHEN ${i} IS NOT NULL THEN
4
- CASE
5
- WHEN ${i} IN (401, 403, 408, 425, 429) OR ${i} >= 500 THEN 'neutral'
6
- WHEN ${i} BETWEEN 400 AND 499 THEN 'failure'
7
- ELSE 'neutral'
8
- END
9
- WHEN ${g} IN ('ok', 'success', 'succeeded', 'complete', 'completed', 'done', '200')
10
- OR ${g} REGEXP '^(ok|success|succeeded|complete|completed|done|2[0-9][0-9])' THEN 'success'
11
- WHEN ${g} REGEXP '^(invalid|bad_request|unprocessable|validation|client_error|fail|failed)(\\b|[[:space:]_-]|$)' THEN 'failure'
12
- ELSE 'neutral'
13
- END`;function k(a){return String(a||"").trim()}function l(a){let b=Number(a);return Number.isFinite(b)?b:0}function m(a,b=1){let c=10**b;return Math.round(l(a)*c)/c}function n(a,b=0,c=1){return Math.max(b,Math.min(c,l(a)))}function o(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 p(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)=>o(c.year,d-b))}function q(a){let[b,c]=a.id.split("-").map(Number);return o(b,c-2)}function r(a,b,c){let d=Math.log1p(Math.max(1,l(b)));return c*n(Math.log1p(Math.max(0,l(a)))/d)}function s(a,b){let c=a.map(l).filter(a=>a>=0).sort((a,b)=>a-b);if(!c.length)return 0;if(1===c.length)return c[0];let d=(c.length-1)*n(b),e=Math.floor(d),f=Math.ceil(d);return e===f?c[e]:c[e]+(c[f]-c[e])*(d-e)}function t(a){if(a instanceof Date)return a;let b=k(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 u(a){return Math.floor((t(a).getTime()+252e5)/864e5)}function v(a){let b=new Date(864e5*a).getUTCDay();return 0!==b&&6!==b}function w(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=u(c),f=u(new Date(d.getTime()-1)),g=0,h=new Set;for(let a=e;a<=f;a+=1)v(a)&&(g+=1,h.add(Math.floor((a+3)/7)));return{workdays:g,weeks:h.size}}function x(a){let b=k(a).toLowerCase();return b&&"unknown"!==b?(b.includes("/")&&(b=b.split("/").filter(Boolean).pop()||b),b=b.replace(/[-_.](?:19|20)\d{6}$/g,"").replace(/[-_.](?:19|20)\d{2}[-_.]\d{2}[-_.]\d{2}$/g,"").replace(/[-_.](latest|stable)$/g,"").replace(/[-_.]+/g,"-").replace(/^-|-$/g,"")):""}function y(a){let b=k(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"}function z(a=[],b,c){let d=new Map;for(let b of a){let a=c(b.value);a&&d.set(a,(d.get(a)||0)+l(b.count))}let e=[...d.entries()].filter(([,a])=>a>=3&&b>0&&a/b>=.05),f=e.reduce((a,[,b])=>a+b,0);return f?{effectiveCount:Math.exp(e.reduce((a,[,b])=>{let c=b/f;return a-c*Math.log(c)},0)),significantCount:e.length,values:e.map(([a,b])=>({value:a,count:b}))}:{effectiveCount:0,significantCount:0,values:[]}}function A(a,b=[],c=""){let d=[...new Set((b||[]).map(a=>k(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(completionTokens, 0) AS outputTokens,
27
- ROW_NUMBER() OVER (
28
- PARTITION BY lower(trim(apiKeyOwner)), COALESCE(NULLIF(trim(requestId), ''), CONCAT('row:', id))
29
- ORDER BY timestamp DESC, id DESC
30
- ) AS logicalRank
31
- FROM usageHistory
32
- WHERE timestamp >= ? AND timestamp < ?
33
- AND apiKeyOwner IS NOT NULL AND trim(apiKeyOwner) <> ''
34
- AND NOT (${h})
35
- ${e}
36
- ), logical_events AS (
37
- SELECT * FROM ranked_events WHERE logicalRank = 1
38
- )`}}async function B(a,b,c=[],d=""){let e=A(b,c,d),f="DATE(DATE_ADD(timestamp, INTERVAL 7 HOUR))",g=await a.all(`${e.sql}
39
- SELECT
40
- ownerUser,
41
- COUNT(*) AS requests,
42
- SUM(CASE WHEN ${j} = 'success' THEN 1 ELSE 0 END) AS success,
43
- SUM(CASE WHEN ${j} = 'failure' THEN 1 ELSE 0 END) AS actionableFailures,
44
- SUM(CASE WHEN ${j} IN ('success', 'failure') THEN 1 ELSE 0 END) AS knownOutcomes,
45
- SUM(CASE WHEN ${j} = 'neutral' THEN 1 ELSE 0 END) AS neutralOutcomes,
46
- COALESCE(SUM(inputTokens), 0) AS inputTokens,
47
- COALESCE(SUM(outputTokens), 0) AS outputTokens,
48
- COUNT(DISTINCT ${f}) AS calendarActiveDays,
49
- COUNT(DISTINCT CASE WHEN WEEKDAY(${f}) < 5 THEN ${f} END) AS activeDays,
50
- COUNT(DISTINCT CASE WHEN WEEKDAY(${f}) < 5 THEN YEARWEEK(${f}, 3) END) AS activeWeeks,
51
- COUNT(DISTINCT COALESCE(NULLIF(trim(provider), ''), 'unknown')) AS providerCount,
52
- MIN(timestamp) AS firstSeenInWindow,
53
- MAX(timestamp) AS lastSeen
54
- FROM logical_events
55
- GROUP BY ownerUser`,e.params),h=await a.all(`${e.sql}, ranked_depth AS (
56
- SELECT
57
- ownerUser,
58
- inputTokens,
59
- outputTokens,
60
- ROW_NUMBER() OVER (PARTITION BY ownerUser ORDER BY inputTokens) AS inputRank,
61
- ROW_NUMBER() OVER (PARTITION BY ownerUser ORDER BY outputTokens) AS outputRank,
62
- COUNT(*) OVER (PARTITION BY ownerUser) AS sampleCount
63
- FROM logical_events
64
- )
65
- SELECT
66
- ownerUser,
67
- MIN(CASE WHEN inputRank >= CEIL(sampleCount * 0.75) THEN inputTokens END) AS p75InputTokens,
68
- MIN(CASE WHEN outputRank >= CEIL(sampleCount * 0.75) THEN outputTokens END) AS p75OutputTokens
69
- FROM ranked_depth
70
- GROUP BY ownerUser`,e.params),i=await a.all(`${e.sql}
71
- SELECT ownerUser, 'model' AS kind, model AS value, COUNT(*) AS itemCount
72
- FROM logical_events
73
- WHERE model IS NOT NULL AND trim(model) <> '' AND lower(trim(model)) <> 'unknown'
74
- GROUP BY ownerUser, model
75
- UNION ALL
76
- SELECT ownerUser, 'tool' AS kind, sourceTool AS value, COUNT(*) AS itemCount
77
- FROM logical_events
78
- WHERE sourceTool IS NOT NULL AND trim(sourceTool) <> '' AND lower(trim(sourceTool)) <> 'unknown'
79
- GROUP BY ownerUser, sourceTool`,e.params),m=new Map(h.map(a=>[k(a.ownerUser),a])),n=new Map;for(let a of i){let b=k(a.ownerUser);n.has(b)||n.set(b,{models:[],tools:[]}),("model"===a.kind?n.get(b).models:n.get(b).tools).push({value:a.value,count:l(a.itemCount)})}return g.map(a=>{let b=k(a.ownerUser),c=m.get(b)||{},d=n.get(b)||{models:[],tools:[]};return{...a,p75InputTokens:l(c.p75InputTokens),p75OutputTokens:l(c.p75OutputTokens),modelDistribution:d.models,sourceToolDistribution:d.tools}})}async function C(a){let b=globalThis[f];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
80
- FROM usageHistory
81
- WHERE apiKeyOwner IS NOT NULL AND trim(apiKeyOwner) <> ''
82
- GROUP BY lower(trim(apiKeyOwner))`,[])).map(a=>[k(a.ownerUser),a.firstSeen]));return globalThis[f]={at:Date.now(),map:c},c}async function D(a,b){let c=[],d=b;for(let a=0;a<4;a+=1)c.push(d=q(d));let e={startIso:c[3].startIso,endExclusiveIso:b.startIso},f=A(e,[],e.endExclusiveIso),g=c.map(()=>"WHEN timestamp >= ? AND timestamp < ? THEN ?").join(" "),h=c.flatMap((a,b)=>[a.startIso,a.endExclusiveIso,b]),i="DATE(DATE_ADD(timestamp, INTERVAL 7 HOUR))";return a.all(`${f.sql}
83
- SELECT
84
- ownerUser,
85
- CASE ${g} ELSE NULL END AS bucket,
86
- COUNT(*) AS requests,
87
- COALESCE(SUM(inputTokens + outputTokens), 0) AS totalTokens,
88
- COUNT(DISTINCT CASE WHEN WEEKDAY(${i}) < 5 THEN ${i} END) AS activeDays
89
- FROM logical_events
90
- GROUP BY ownerUser, bucket
91
- HAVING bucket IS NOT NULL`,[...f.params,...h])}function E(a,b){let c=a.filter(a=>{let c,d,e;return b.has(Number(a.bucket))&&(c=l(a.requests),d=l(a.activeDays),e=100*(.6*n(c/30)+.4*n(d/5)),c>=20&&d>=3&&e>=60)});return c.length<8?null:{requestTarget:Math.max(1,Math.round(s(c.map(a=>a.requests),.8))),tokenTarget:Math.max(1,Math.round(s(c.map(a=>a.totalTokens),.8))),samples:c.length}}async function F(a,b){let c=await D(a,b),d=E(c,new Set([0,1,2])),e=E(c,new Set([1,2,3]));if(!d)return{requestTarget:250,tokenTarget:2e6,source:"fallback",samples:0};let f=(a,b)=>b?Math.round(Math.max(.9*b,Math.min(1.1*b,a))):a;return{requestTarget:Math.max(1,f(d.requestTarget,e?.requestTarget)),tokenTarget:Math.max(1,f(d.tokenTarget,e?.tokenTarget)),source:"p80-3-complete-cycles",samples:d.samples}}function G(a,{cycle:b,effectiveEndIso:c,elapsedWorkdays:d,targets:e,firstSeenByOwner:f}){let g=k(a.ownerUser),h=l(a.requests),i=l(a.success),j=l(a.actionableFailures),o=l(a.knownOutcomes),p=l(a.neutralOutcomes),q=l(a.inputTokens),s=l(a.outputTokens),u=q+s,v=l(a.activeDays),A=l(a.activeWeeks),B=l(a.calendarActiveDays),C=l(a.p75InputTokens),D=l(a.p75OutputTokens),E=h?q/h:0,F=h?s/h:0,H=r(h,e.requestTarget,18)+r(u,e.tokenTarget,7),I=t(f.get(g)||a.firstSeenInWindow||b.startIso),J=w(I>new Date(b.startIso)?I.toISOString():b.startIso,c),K=J.workdays>0?v/J.workdays:0,L=J.weeks>0?A/J.weeks:0,M=12*n(K/.65)+8*n(L/.8),N=(r(C,4e3,7.5)+r(D,1e3,7.5))*(.35+.65*Math.min(1,Math.sqrt(h/20))),O=z(a.modelDistribution,h,x),P=z(a.sourceToolDistribution,h,y),Q=r(Math.max(P.effectiveCount-1,0),2,10)+r(Math.max(O.effectiveCount-1,0),2,5),R=function(a,b,c=1.96){let d=l(b);if(d<=0)return 0;let e=n(l(a)/d),f=c*c,g=c*Math.sqrt((e*(1-e)+f/(4*d))/d);return n((e+f/(2*d)-g)/(1+f/d))}(i,o),S=7.5+Math.min(1,o/20)*(15*n((R-.7)/.28)-7.5),T=m(H+M+N+Q+S),U=m(100*(.6*n(h/30)+.4*n(v/5)),0),V=d>=5&&h>=20&&v>=3&&U>=60;return{ownerUser:g,requests:h,success:i,actionableFailures:j,knownOutcomes:o,neutralOutcomes:p,errors:j,successRate:o?i/o:0,inputTokens:q,outputTokens:s,totalTokens:u,avgInputTokens:m(E,0),avgOutputTokens:m(F,0),p75InputTokens:m(C,0),p75OutputTokens:m(D,0),activeDays:v,activeWeeks:A,calendarActiveDays:B,eligibleWorkdays:J.workdays,eligibleWeeks:J.weeks,modelCount:O.significantCount,sourceToolCount:P.significantCount,effectiveModelFamilies:m(O.effectiveCount,2),effectiveToolCategories:m(P.effectiveCount,2),providerCount:l(a.providerCount),lastSeen:a.lastSeen||"",coreScore:T,confidence:U,rankEligible:V,dimensions:{adoption:m(H),consistency:m(M),depth:m(N),breadth:m(Q),completion:m(S)}}}async function H({cycleId:a="",ownerCandidates:b=[],viewerScope:c="all"}={}){let e=p(),f=e.find(b=>b.id===a)||e[0],g=q(f),h=[...new Set(b.map(a=>k(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),j=w(f.startIso,i).workdays,n=function(a,b){let c=Math.max(0,Math.floor(l(b)));if(c<=0)return a.startIso;let d=u(a.startIso),e=u(new Date(new Date(a.endExclusiveIso).getTime()-1)),f=0;for(let a=d;a<=e;a+=1)if(v(a)&&(f+=1)>=c)return new Date((a+1)*864e5-252e5).toISOString();return a.endExclusiveIso}(g,j),o=await (0,d.d9)();try{let a,b,d,k,l=await C(o),p=await F(o,f),q=await B(o,f,h,i),r=j>0?await B(o,g,h,n):[],s=new Map(r.map(a=>{let b=G(a,{cycle:g,effectiveEndIso:n,elapsedWorkdays:j,targets:p,firstSeenByOwner:l});return[b.ownerUser,b]})),t=q.map(a=>{let b=G(a,{cycle:f,effectiveEndIso:i,elapsedWorkdays:j,targets:p,firstSeenByOwner:l}),c=s.get(b.ownerUser),d=c?b.coreScore-c.coreScore:null,e=null===d?5:5+5*Math.tanh(d/12),g=m(b.coreScore+e);return{...b,score:g,level:function(a,b=!1){return 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"}}(g,!b.rankEligible),previousScore:c?m(c.coreScore+5):null,scoreChange:null===d?null:m(d),dimensions:{...b.dimensions,momentum:m(e)}}}),u=function(a=[]){return[...a.filter(a=>a.rankEligible).sort((a,b)=>b.score-a.score||b.totalTokens-a.totalTokens||a.ownerUser.localeCompare(b.ownerUser)).map((a,b)=>({...a,rank:b+1})),...a.filter(a=>!a.rankEligible).sort((a,b)=>b.score-a.score||b.totalTokens-a.totalTokens||a.ownerUser.localeCompare(b.ownerUser)).map(a=>({...a,rank:null}))]}(t);return{generatedAt:new Date().toISOString(),viewerScope:c,cycle:f,previousCycle:g,comparisonWindow:{elapsedWorkdays:j,previousEndIso:n},cycles:e,summary:(a=u.reduce((a,b)=>a+b.requests,0),b=u.reduce((a,b)=>a+b.totalTokens,0),d=u.reduce((a,b)=>a+b.success,0),k=u.reduce((a,b)=>a+b.knownOutcomes,0),{users:u.length,rankedUsers:u.filter(a=>a.rankEligible).length,provisionalUsers:u.filter(a=>!a.rankEligible).length,averageScore:u.length?m(u.reduce((a,b)=>a+b.score,0)/u.length):0,totalRequests:a,totalTokens:b,successRate:k?d/k:0,activeUsers:u.filter(a=>a.activeDays>=3).length}),rows:u,methodology:{version:"2.0",name:"AI Adoption & Effective Use Index",note:"Chỉ số đo mức độ khai th\xe1c AI đều đặn v\xe0 hiệu quả qua telemetry; kh\xf4ng phải đ\xe1nh gi\xe1 chất lượng nh\xe2n sự hoặc chất lượng nội dung c\xf4ng việc.",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.",rankingEligibility:"Rank ch\xednh thức cần chu kỳ đ\xe3 qua \xedt nhất 5 ng\xe0y l\xe0m việc, >=20 request, >=3 ng\xe0y hoạt động v\xe0 confidence >=60%. C\xe1c trường hợp c\xf2n lại hiển thị Provisional.",targets:{requestTarget:p.requestTarget,tokenTarget:p.tokenTarget,source:p.source,samples:p.samples,inputDepthTarget:4e3,outputDepthTarget:1e3},dimensions:[{id:"adoption",label:"Sustained Adoption",weight:25,detail:"18 điểm theo số logical request + 7 điểm theo tổng token, chuẩn h\xf3a log. Target ưu ti\xean P80 của 3 chu kỳ đầy đủ trước đ\xf3; fallback 250 request / 2M token khi chưa đủ mẫu."},{id:"consistency",label:"Consistency",weight:20,detail:"12 điểm theo tỷ lệ ng\xe0y l\xe0m việc c\xf3 d\xf9ng AI v\xe0 8 điểm theo tỷ lệ tuần c\xf3 hoạt động. Cuối tuần kh\xf4ng nằm trong mẫu số."},{id:"depth",label:"Interaction Depth",weight:15,detail:"P75 input/output token thay cho average, k\xe8m evidence factor để mẫu nhỏ kh\xf4ng thể đạt điểm tối đa."},{id:"breadth",label:"Workflow Breadth",weight:15,detail:"Entropy của nh\xf3m source tool v\xe0 model family c\xf3 \xfd nghĩa (>=3 request v\xe0 >=5% traffic). Provider v\xe0 unknown kh\xf4ng được cộng điểm."},{id:"completion",label:"Effective Completion",weight:15,detail:"Wilson lower bound tr\xean outcome c\xf3 thể quy tr\xe1ch nhiệm. 401/403/408/425/429/5xx, pending v\xe0 unknown l\xe0 neutral, kh\xf4ng phạt user."},{id:"momentum",label:"Momentum",weight:10,detail:"So core score với c\xf9ng số ng\xe0y l\xe0m việc đ\xe3 tr\xf4i qua của chu kỳ trước; user chưa c\xf3 dữ liệu so s\xe1nh nhận 5 điểm trung t\xednh."}],future:"Outcome/Impact v\xe0 session iteration chưa được t\xednh v\xec telemetry hiện tại chưa đủ để suy ra kết quả c\xf4ng việc một c\xe1ch đ\xe1ng tin cậy."}}}finally{await o?.close?.().catch(()=>{})}}async function I(){let a=(globalThis[e]||(globalThis[e]={snapshots:new Map,running:null,status:"warming",lastError:"",lastRefreshAt:""}),globalThis[e]);return a.running||(a.status=a.snapshots.size?"refreshing":"warming",a.running=(async()=>{let b=p(),c=new Map;for(let a of b){let b=await H({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 J="__blueRouterAiPowerIndexScheduler";function K(){return globalThis[J]||(globalThis[J]={started:!1,timer:null}),globalThis[J]}async function L(){try{console.log("[ai-power-index] Starting background snapshot refresh..."),await I(),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=K(),a.timer=setTimeout(L,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 M(){let a=K();a.started||(a.started=!0,a.timer=setTimeout(L,2e3),a.timer.unref?.())}},82009:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}}};
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7077],{40077:(e,t,s)=>{"use strict";s.d(t,{default:()=>b});var r=s(95155),a=s(12115);let l=e=>new Intl.NumberFormat("vi-VN").format(Number(e||0)),n=e=>new Intl.NumberFormat("vi-VN",{notation:"compact",maximumFractionDigits:1}).format(Number(e||0)),i=e=>`${(100*Number(e||0)).toFixed(1)}%`;function d({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 o({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 x({row:e,compact:t=!1}){return e?.rankEligible?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"]}):(0,r.jsx)("span",{className:"rounded-full bg-slate-500/10 px-2 py-1 text-xs font-semibold text-text-muted",children:"Provisional"})}let m={adoption:"bg-blue-500",consistency:"bg-emerald-500",depth:"bg-violet-500",breadth:"bg-amber-500",completion:"bg-cyan-500",momentum:"bg-fuchsia-500"};function h({row:e,dimensions:t,onClose:s}){if(!e)return null;let a=[["Logical requests",e.requests],["Ng\xe0y l\xe0m việc c\xf3 d\xf9ng",e.activeDays],["Tuần c\xf3 hoạt động",e.activeWeeks],["Input tokens",e.inputTokens],["Output tokens",e.outputTokens],["P75 input/request",e.p75InputTokens],["P75 output/request",e.p75OutputTokens],["Model families đ\xe1ng kể",e.modelCount],["Workflow categories đ\xe1ng kể",e.sourceToolCount],["Known outcomes",e.knownOutcomes],["Neutral outcomes",e.neutralOutcomes],["Actionable failures",e.actionableFailures]];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 Power 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)(d,{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}),e.rankEligible?null:(0,r.jsx)(x,{row:e})]}),(0,r.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2 text-sm text-text-muted",children:[e.rankEligible?(0,r.jsx)(x,{row:e}):(0,r.jsx)("span",{children:"Chưa đủ dữ liệu để xếp hạng ch\xednh thức"}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsxs)("span",{children:["Confidence ",e.confidence,"%"]})]}),(0,r.jsx)("div",{className:"mt-3",children:(0,r.jsx)(o,{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 v2"}),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 ${m[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:l(t),children:l(t)})]},e))})]})]})})}function u({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)(d,{score:e.score}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"text-xs font-semibold uppercase tracking-wide text-primary",children:"AI Power 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)(x,{row:e,compact:!0}),(0,r.jsx)("span",{children:"\xb7"}),(0,r.jsxs)("span",{children:["Confidence ",e.confidence,"%"]}),(0,r.jsx)(o,{value:e.scoreChange})]}),e.rankEligible?null:(0,r.jsx)("p",{className:"mt-2 text-xs text-text-muted",children:"Điểm vẫn được t\xednh nhưng chưa tham gia leaderboard cho đến khi đủ evidence."}),(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"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:l(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:"Tokens"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:n(e.totalTokens)})]}),(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:l(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:"Effective completion"}),(0,r.jsx)("div",{className:"font-bold text-text-main",children:e.knownOutcomes?i(e.successRate):"—"})]})]})]}),(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-6",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 Power 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 b(){let[e,t]=(0,a.useState)(null),[s,x]=(0,a.useState)(""),[m,b]=(0,a.useState)(""),[p,g]=(0,a.useState)(!0),[j,f]=(0,a.useState)(""),[N,v]=(0,a.useState)(null),y=(0,a.useCallback)(async()=>{g(!0),f("");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||x(a.cycle?.id||"")}catch(e){f(e?.message||"Kh\xf4ng tải được AI Power Index")}finally{g(!1)}},[s]);(0,a.useEffect)(()=>{let e=setTimeout(y,0);return()=>clearTimeout(e)},[y]);let w=(0,a.useMemo)(()=>e?.rows||[],[e?.rows]),k=(0,a.useMemo)(()=>{let e=m.trim().toLowerCase();return e?w.filter(t=>t.ownerUser.toLowerCase().includes(e)):w},[w,m]),C=e?.viewerRecord&&e?.viewerScope==="all"?w.find(t=>t.ownerUser===e.viewerRecord.ownerUser)||e.viewerRecord:e?.viewerRecord||null,I=e?.summary||{},T=e?.methodology?.dimensions||[],_=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 Adoption & 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:"v2.0"}),(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 Power Index"}),(0,r.jsx)("p",{className:"mt-2 max-w-4xl text-sm text-text-muted",children:"Đo mức độ khai th\xe1c AI đều đặn v\xe0 hiệu quả từ telemetry sử dụng. Chỉ số n\xe0y kh\xf4ng phải đ\xe1nh gi\xe1 chất lượng nh\xe2n sự hay chất lượng c\xf4ng việc."})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("select",{value:s||e?.cycle?.id||"",onChange:e=>x(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:y,disabled:p,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] ${p?"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 Power 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."}),p&&!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 Power 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:l(I.users),hint:`${l(I.rankedUsers)} ranked \xb7 ${l(I.provisionalUsers)} provisional`}),(0,r.jsx)(c,{icon:"electric_bolt",label:"Điểm trung b\xecnh",value:Number(I.averageScore||0).toFixed(1),hint:"Raw score tr\xean thang 100"}),(0,r.jsx)(c,{icon:"forum",label:"Logical requests",value:n(I.totalRequests),hint:"Đ\xe3 dedupe theo requestId"}),(0,r.jsx)(c,{icon:"token",label:"Tổng tokens",value:n(I.totalTokens),hint:l(I.totalTokens)}),(0,r.jsx)(c,{icon:"task_alt",label:"Effective completion",value:i(I.successRate),hint:"Chỉ tr\xean known outcomes"})]}),(0,r.jsx)(u,{row:C,viewerUserId:e?.viewerUserId,dimensions:T,onOpen:()=>C&&v(C)}),(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 v2"}),(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:T.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 rounded-xl border border-border bg-background p-4 text-xs text-text-muted",children:[(0,r.jsx)("span",{className:"font-semibold text-text-main",children:"Calibration:"})," request target ",(0,r.jsx)("b",{children:l(_.requestTarget)}),", token target ",(0,r.jsx)("b",{children:n(_.tokenTarget)})," \xb7 ","p80-3-complete-cycles"===_.source?`P80 từ ${l(_.samples)} mẫu đủ confidence của 3 chu kỳ ho\xe0n chỉnh trước`:"fallback do chưa đủ dữ liệu lịch sử",". Momentum so với c\xf9ng số ng\xe0y l\xe0m việc của chu kỳ trước."]})]}),(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 Provisional vẫn c\xf3 raw score nhưng kh\xf4ng nhận hạng ch\xednh thức."]})]}),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:m,onChange:e=>b(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:"Requests"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Input"}),(0,r.jsx)("th",{className:"px-3 py-3 text-right",children:"Output"}),(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:"Completion"}),(0,r.jsx)("th",{className:"px-5 py-3 text-right",children:"Core vs kỳ trước"})]})}),(0,r.jsx)("tbody",{children:k.length?k.map(e=>(0,r.jsxs)("tr",{onClick:()=>v(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:[e.rankEligible?(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 bg-slate-500/10 text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"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 ",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)(d,{score:e.score,small:!0}),(0,r.jsx)("span",{className:"font-bold text-text-main",children:e.score.toFixed(1)})]})}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:l(e.requests)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:n(e.inputTokens)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:n(e.outputTokens)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:l(e.activeDays)}),(0,r.jsx)("td",{className:"px-3 py-4 text-right tabular-nums text-text-muted",children:e.knownOutcomes?i(e.successRate):"—"}),(0,r.jsx)("td",{className:"px-5 py-4 text-right",children:(0,r.jsx)(o,{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:T,onClose:()=>v(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()}]);