@jheavenknows/bluerouter 5.2.49 → 5.2.50

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 (530) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +11 -11
  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_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +2 -2
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  48. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  49. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  50. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  51. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  52. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  53. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  54. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  55. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  57. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  58. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  59. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +5 -5
  61. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js +1 -1
  76. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  214. package/app/.next-cli-build/server/app/callback.html +1 -1
  215. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  216. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  217. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  218. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +5 -5
  219. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  220. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  221. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  222. package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
  223. package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +6 -6
  224. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +1 -1
  225. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index.segment.rsc +1 -1
  226. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  227. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  228. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +6 -6
  229. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_head.segment.rsc +1 -1
  230. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_index.segment.rsc +5 -5
  231. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +1 -1
  232. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  233. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +6 -6
  234. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  236. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  237. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  238. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +6 -6
  239. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +5 -5
  241. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  242. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  243. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +8 -8
  244. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +3 -3
  245. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  247. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  248. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +8 -8
  249. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +5 -5
  251. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  252. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  253. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  254. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  255. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  257. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  258. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  259. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +5 -5
  261. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
  263. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +7 -7
  264. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +2 -2
  265. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles.segment.rsc +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  267. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  269. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +7 -7
  270. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_head.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_index.segment.rsc +5 -5
  272. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +1 -1
  273. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  274. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  275. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  276. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  277. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  279. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  280. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +5 -5
  282. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
  284. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +6 -6
  285. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster.segment.rsc +1 -1
  287. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  288. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  289. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +6 -6
  290. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_head.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_index.segment.rsc +5 -5
  292. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +1 -1
  293. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  295. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  296. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  299. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  300. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +5 -5
  302. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  305. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  306. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  309. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  310. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +5 -5
  312. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +6 -6
  315. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report.segment.rsc +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  319. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +6 -6
  320. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_head.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_index.segment.rsc +5 -5
  322. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  325. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  326. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  329. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  330. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  331. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +5 -5
  333. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  336. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  337. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  340. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  341. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +5 -5
  343. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  344. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  346. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  347. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  350. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  351. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +5 -5
  353. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +6 -6
  356. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  359. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  360. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +6 -6
  361. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +5 -5
  363. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  364. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +6 -6
  366. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  368. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  369. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +6 -6
  371. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +5 -5
  373. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  375. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  376. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  377. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  379. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  381. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  382. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  383. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +5 -5
  384. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  386. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  387. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  388. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  389. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  391. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  392. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +5 -5
  394. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  396. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  397. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  398. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  402. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  403. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +5 -5
  404. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  406. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  407. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  408. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  412. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  413. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +5 -5
  414. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  416. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +6 -6
  417. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +6 -6
  422. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_head.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_index.segment.rsc +5 -5
  424. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +1 -1
  425. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  427. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  430. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  431. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  432. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  433. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -5
  435. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  437. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  438. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  439. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  440. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  441. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  442. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  443. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  444. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +5 -5
  445. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  447. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  448. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +1 -1
  449. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  450. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  452. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  453. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +5 -5
  455. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  457. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  458. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  459. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  462. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  463. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +5 -5
  465. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  467. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  468. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  469. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  470. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  472. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  473. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +5 -5
  475. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  476. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  477. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  478. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  479. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  480. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  481. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  482. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  483. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +5 -5
  484. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  485. package/app/.next-cli-build/server/app/index.html +1 -1
  486. package/app/.next-cli-build/server/app/index.rsc +5 -5
  487. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  489. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  490. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +5 -5
  491. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  492. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  493. package/app/.next-cli-build/server/app/landing.html +1 -1
  494. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  495. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  496. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  497. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +5 -5
  498. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  499. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  500. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  501. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  502. package/app/.next-cli-build/server/app/login.html +1 -1
  503. package/app/.next-cli-build/server/app/login.rsc +6 -6
  504. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  505. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  506. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +5 -5
  507. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  508. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  509. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  510. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  511. package/app/.next-cli-build/server/app-paths-manifest.json +11 -11
  512. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  513. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  514. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  515. package/app/.next-cli-build/server/chunks/6759.js +1 -1
  516. package/app/.next-cli-build/server/chunks/6811.js +1 -1
  517. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  518. package/app/.next-cli-build/server/pages/404.html +1 -1
  519. package/app/.next-cli-build/server/pages/500.html +1 -1
  520. package/app/.next-cli-build/static/chunks/{5263-be5253ec399e1a92.js → 5263-aff21105e301df66.js} +1 -1
  521. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/api-keys/{page-66b2ab382a90ca49.js → page-7ffe89d8c9c1c147.js} +4 -4
  522. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/model-profiles/page-cccbbf2a97f1ab13.js +1 -0
  523. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-85d5a075d089b1d0.js → page-9b54d3d6fa39d8a3.js} +1 -1
  524. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.2.20-to-5.2.21-5.2.21-20260724-071312 → upgrade-5.2.38-to-5.2.49-5.2.49-20260811-214511}/data.sqlite +0 -0
  525. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
  526. package/app/package.json +1 -1
  527. package/package.json +1 -1
  528. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/model-profiles/page-58fd0b158edb06d1.js +0 -1
  529. /package/app/.next-cli-build/static/{C9KhuhBxzwfocsNgUZhDh → HnkpD4rQuYEyp1mDqmop6}/_buildManifest.js +0 -0
  530. /package/app/.next-cli-build/static/{C9KhuhBxzwfocsNgUZhDh → HnkpD4rQuYEyp1mDqmop6}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4845],{9385:(e,t,o)=>{"use strict";o.d(t,{Ek:()=>h,FY:()=>g,H1:()=>p,O0:()=>s,Zn:()=>j,cL:()=>f,j5:()=>u,pA:()=>l,u1:()=>b});let l=["coder","fast","thinking"],r=["claude","codex"],d={claude:"claude/",codex:"codex/"},n={coder:{model:"",contextWindow:0},fast:{model:"",contextWindow:0},thinking:{model:"",contextWindow:0}},s={version:2,local:{enabled:!0,providerName:"Local AI",autoCompactPct:75,models:{coder:{model:"programmer",contextWindow:12e4},fast:{model:"programmer-fast",contextWindow:12e4},thinking:{model:"programmer",contextWindow:12e4}}},cloud:{claude:{enabled:!1,providerName:"Claude Code Cloud",models:n},codex:{enabled:!1,providerName:"Codex Cloud",models:n}}};function a(e,t=300){return String(e??"").trim().slice(0,t)}function c(e,t){let o=Number(e);return!Number.isFinite(o)||o<=0?t:Math.floor(o)}function i(e,t=75){let o=Number(e);return Number.isFinite(o)?Math.min(100,Math.max(1,Math.floor(o))):t}function m(e,t,{local:o}){let r=e&&"object"==typeof e&&!Array.isArray(e)?e:{},d=r.models&&"object"==typeof r.models&&!Array.isArray(r.models)?r.models:{},n={};for(let e of l)n[e]=function(e,t,{local:o}){let l=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{model:a(Object.prototype.hasOwnProperty.call(l,"model")?l.model:t.model),contextWindow:o?c(l.contextWindow,t.contextWindow||12e4):0}}(d[e],t.models[e],{local:o});let s={enabled:Object.prototype.hasOwnProperty.call(r,"enabled")?!0===r.enabled:t.enabled,providerName:a(Object.prototype.hasOwnProperty.call(r,"providerName")?r.providerName:t.providerName,80)||t.providerName,models:n};return o&&(s.autoCompactPct=i(r.autoCompactPct,t.autoCompactPct)),s}function x(e,t){if(!e||"object"!=typeof e||Array.isArray(e)||e.claude||e.codex)return null;let o=e.models&&"object"==typeof e.models&&!Array.isArray(e.models)?e.models:{},r=l.map(e=>a(o?.[e]?.model)).filter(Boolean),n=d[t];return n&&0!==r.length&&r.every(e=>e.startsWith(n))?e:null}function u(e={}){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{},o=t.cloud&&"object"==typeof t.cloud&&!Array.isArray(t.cloud)?t.cloud:{};return{version:2,local:m(t.local,s.local,{local:!0}),cloud:{claude:m(o.claude||x(o,"claude"),s.cloud.claude,{local:!1}),codex:m(o.codex||x(o,"codex"),s.cloud.codex,{local:!1})}}}function h(e,t){return r.includes(t)&&e?.cloud?.[t]||null}function p(e){return d[e]||""}function f(e,t,o=""){return a(e?.models?.[t]?.model)||o}function b(e,t,o=12e4){return c(e?.models?.[t]?.contextWindow,o)}function g(e){return[...new Set(l.map(t=>f(e,t)).filter(Boolean))]}function j(e){return Math.max(1,Math.floor(b(e,"coder")*i(e?.autoCompactPct)/100))}},59305:(e,t,o)=>{"use strict";o.d(t,{default:()=>g});var l=o(95155),r=o(98500),d=o.n(r),n=o(12115),s=o(35497),a=o(94027),c=o(9385);let i={coder:{label:"Coder",hint:"Model ch\xednh cho coding/generation."},fast:{label:"Fast",hint:"Model nhanh cho explorer/small/haiku profile."},thinking:{label:"Thinking",hint:"Model reasoning/opus/thinking profile."}},m={claude:{title:"Claude Code Cloud Settings",badge:"Claude Code",description:"Chỉ chọn route model claude/ đ\xe3 c\xf3 trong Personal Cloud Provider."},codex:{title:"Codex Cloud Settings",badge:"Codex",description:"Chỉ chọn route model codex/ đ\xe3 c\xf3 trong Personal Cloud Provider."}};function x(e){return JSON.parse(JSON.stringify((0,c.j5)(e)))}function u({role:e,value:t,contextWindow:o,onModelChange:r,onContextChange:d}){let n=i[e];return(0,l.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3",children:[(0,l.jsxs)("div",{className:"mb-2",children:[(0,l.jsx)("div",{className:"text-sm font-medium text-text-main",children:n.label}),(0,l.jsx)("div",{className:"text-xs text-text-muted",children:n.hint})]}),(0,l.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[minmax(0,1fr)_170px]",children:[(0,l.jsxs)("label",{children:[(0,l.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Local model ID / alias"}),(0,l.jsx)("input",{list:"cli-local-model-catalog",value:t||"",onChange:e=>r(e.target.value),placeholder:"coder"===e?"programmer":"fast"===e?"programmer-fast":"programmer-thinking",className:"w-full rounded-xl border border-border bg-surface px-3 py-2 font-mono text-sm text-text-main outline-none focus:border-primary"})]}),(0,l.jsxs)("label",{children:[(0,l.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Max context"}),(0,l.jsx)("input",{type:"number",min:"1",max:"10000000",value:o||"",onChange:e=>d(e.target.value),className:"w-full rounded-xl border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary"})]})]})]})}function h({profile:e,setProfiles:t}){let o=e=>t(t=>({...t,local:{...t.local,...e}})),r=(e,o)=>t(t=>({...t,local:{...t.local,models:{...t.local.models,[e]:{...t.local.models[e],...o}}}}));return(0,l.jsx)(s.Zp,{children:(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"rounded-full border border-border bg-surface px-2 py-1 text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"Local"}),(0,l.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Shared Local AI Settings"})]}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"D\xf9ng chung cho Claude Code, Codex, OpenCode v\xe0 Qwen Code. Context/auto-compact chỉ sinh v\xe0o CLI config, kh\xf4ng đổi runtime routing."})]}),(0,l.jsxs)("label",{className:"inline-flex items-center gap-2 text-sm text-text-main",children:[(0,l.jsx)("input",{type:"checkbox",checked:!0===e.enabled,onChange:e=>o({enabled:e.target.checked}),className:"size-4"}),"Enabled"]})]}),(0,l.jsxs)("label",{className:"block",children:[(0,l.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"T\xean profile hiển thị"}),(0,l.jsx)("input",{value:e.providerName||"",onChange:e=>o({providerName:e.target.value}),placeholder:"Local AI",className:"w-full rounded-xl border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary"})]}),(0,l.jsx)("div",{className:"space-y-3",children:c.pA.map(t=>(0,l.jsx)(u,{role:t,value:e.models?.[t]?.model,contextWindow:e.models?.[t]?.contextWindow,onModelChange:e=>r(t,{model:e}),onContextChange:e=>r(t,{contextWindow:e})},t))}),(0,l.jsx)("div",{className:"rounded-xl border border-border bg-background p-3",children:(0,l.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[180px_minmax(0,1fr)] sm:items-end",children:[(0,l.jsxs)("label",{children:[(0,l.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Auto compact %"}),(0,l.jsx)("input",{type:"number",min:"1",max:"100",value:e.autoCompactPct||75,onChange:e=>o({autoCompactPct:e.target.value}),className:"w-full rounded-xl border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary"})]}),(0,l.jsxs)("div",{className:"rounded-xl border border-border bg-surface px-3 py-2 text-sm text-text-muted",children:["Derived Codex compact limit: ",(0,l.jsx)("span",{className:"font-mono font-medium text-text-main",children:(0,c.Zn)(e).toLocaleString()})," tokens."]})]})})]})})}function p({tool:e,role:t,value:o,options:r,onChange:d}){let n=i[t],s=o&&!r.includes(o);return(0,l.jsxs)("label",{className:"block rounded-xl border border-border bg-background p-3",children:[(0,l.jsx)("span",{className:"block text-sm font-medium text-text-main",children:n.label}),(0,l.jsx)("span",{className:"mb-2 block text-xs text-text-muted",children:"coder"===t?n.hint:`${n.hint} Để trống = d\xf9ng Coder.`}),(0,l.jsxs)("select",{value:o||"",onChange:e=>d(e.target.value),className:"w-full rounded-xl border border-border bg-surface px-3 py-2 font-mono text-sm text-text-main outline-none focus:border-primary",children:[(0,l.jsx)("option",{value:"",children:"coder"===t?`Chọn ${(0,c.H1)(e)} model`:"D\xf9ng Coder model"}),s?(0,l.jsxs)("option",{value:o,children:[o," \xb7 kh\xf4ng c\xf2n trong Personal Cloud Provider"]}):null,r.map(e=>(0,l.jsx)("option",{value:e,children:e},e))]})]})}function f({tool:e,profile:t,options:o,setProfiles:r}){let n=m[e],a=(0,c.H1)(e);return(0,l.jsx)(s.Zp,{children:(0,l.jsxs)("div",{className:"space-y-4",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("span",{className:"rounded-full border border-border bg-surface px-2 py-1 text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"Cloud"}),(0,l.jsx)("span",{className:"rounded-full border border-primary/20 bg-primary/5 px-2 py-1 text-[11px] font-medium text-primary",children:n.badge}),(0,l.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:n.title})]}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:n.description})]}),(0,l.jsxs)("label",{className:"inline-flex items-center gap-2 text-sm text-text-main",children:[(0,l.jsx)("input",{type:"checkbox",checked:!0===t.enabled,onChange:t=>{let o;return o={enabled:t.target.checked},r(t=>({...t,cloud:{...t.cloud,[e]:{...t.cloud[e],...o}}}))},className:"size-4"}),"Enabled"]})]}),(0,l.jsxs)("div",{className:"rounded-xl border border-blue-500/20 bg-blue-500/5 p-3 text-xs text-text-muted",children:["Source: ",(0,l.jsx)(d(),{href:"/dashboard/personalcloudprovider",className:"font-medium text-primary hover:underline",children:"Personal Cloud Provider"})," \xb7 ",o.length," model ",(0,l.jsx)("span",{className:"font-mono",children:a})," khả dụng. Kh\xf4ng cho nhập model cloud thủ c\xf4ng."]}),0===o.length?(0,l.jsxs)("div",{className:"rounded-xl border border-amber-500/30 bg-amber-500/10 p-3 text-sm text-amber-700 dark:text-amber-300",children:["Chưa c\xf3 model ",(0,l.jsx)("span",{className:"font-mono",children:a})," trong Personal Cloud Provider. H\xe3y connect/import model ở đ\xf3 trước rồi quay lại chọn."]}):null,(0,l.jsx)("div",{className:"space-y-3",children:c.pA.map(d=>(0,l.jsx)(p,{tool:e,role:d,value:t.models?.[d]?.model||"",options:o,onChange:t=>{let o;return o={model:t},r(t=>({...t,cloud:{...t.cloud,[e]:{...t.cloud[e],models:{...t.cloud[e].models,[d]:{...t.cloud[e].models[d],...o}}}}}))}},d))})]})})}function b({title:e,profile:t}){return(0,l.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3 text-sm",children:[(0,l.jsxs)("div",{className:"font-medium text-text-main",children:[e," \xb7 ",t.providerName," \xb7 ",t.enabled?"enabled":"disabled"]}),(0,l.jsxs)("div",{className:"mt-2 space-y-1 font-mono text-xs text-text-muted",children:[(0,l.jsxs)("div",{children:["coder = ",t.models.coder.model||"—"]}),(0,l.jsxs)("div",{children:["fast = ",t.models.fast.model||"coder"]}),(0,l.jsxs)("div",{children:["thinking = ",t.models.thinking.model||"coder"]})]})]})}function g(){let[e,t]=(0,n.useState)(()=>x(c.O0)),[o,r]=(0,n.useState)([]),[i,u]=(0,n.useState)({claude:[],codex:[]}),[p,g]=(0,n.useState)(!1),[j,v]=(0,n.useState)(!0),[C,N]=(0,n.useState)(!1),[y,k]=(0,n.useState)(""),[w,P]=(0,n.useState)(""),{isAdmin:A,isMonitorAdmin:S,canManageApiKeys:L}=(0,a.s)(),M=A||S||L;(0,n.useEffect)(()=>{let e=!1;return Promise.allSettled([fetch("/api/cli-model-profiles",{cache:"no-store"}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Kh\xf4ng tải được CLI Model Profiles");return t.profiles}),fetch("/api/models",{cache:"no-store"}).then(async e=>e.ok&&(await e.json().catch(()=>({}))).models||[]),fetch("/api/personal-cloud-providers",{cache:"no-store"}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Kh\xf4ng tải được Personal Cloud Provider models");return t.connections||[]})]).then(([o,l,d])=>{e||("fulfilled"===o.status?t(x(o.value)):P(o.reason?.message||"Kh\xf4ng tải được CLI Model Profiles"),"fulfilled"===l.status&&r(function(e){let t=[];for(let o of Array.isArray(e)?e:[])for(let e of[o?.fullModel,o?.alias,o?.model]){let o=String(e||"").trim();o&&t.push(o)}return[...new Set(t)].sort((e,t)=>e.localeCompare(t))}(l.value)),"fulfilled"===d.status?(u(function(e){let t={claude:[],codex:[]};for(let o of Array.isArray(e)?e:[])for(let e of Array.isArray(o?.importedModels)?o.importedModels:[]){if(e?.type&&"llm"!==e.type)continue;let o=String(e?.routeModel||"").trim();o&&(o.startsWith("claude/")?t.claude.push(o):o.startsWith("codex/")&&t.codex.push(o))}for(let e of Object.keys(t))t[e]=[...new Set(t[e])].sort((e,t)=>e.localeCompare(t));return t}(d.value)),g(!0)):P(e=>e||d.reason?.message||"Kh\xf4ng tải được Personal Cloud Provider models"),v(!1))}),()=>{e=!0}},[]);let I=(0,n.useMemo)(()=>(0,c.j5)(e),[e]),O=async()=>{if(M){N(!0),P(""),k("");try{let o=(()=>{for(let e of["claude","codex"]){let t=I.cloud[e];if(!t.enabled)continue;if(!p)return"Kh\xf4ng thể lưu Cloud Settings khi chưa đọc được Personal Cloud Provider.";let o=new Set(i[e]||[]);if(!String(t.models?.coder?.model||"").trim())return`${m[e].badge}: cần chọn Coder model.`;for(let l of c.pA){let r=String(t.models?.[l]?.model||"").trim();if(r&&!o.has(r))return`${m[e].badge}: ${r} kh\xf4ng c\xf2n tồn tại trong Personal Cloud Provider.`}}return""})();if(o)throw Error(o);let l=await fetch("/api/cli-model-profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({profiles:e})}),r=await l.json().catch(()=>({}));if(!l.ok)throw Error(r.error||"Kh\xf4ng lưu được CLI Model Profiles");t(x(r.profiles)),k("Đ\xe3 lưu. Claude Code/Codex d\xf9ng Local + Cloud ri\xeang; OpenCode/Qwen Code chỉ d\xf9ng Local profile.")}catch(e){P(e.message||"Kh\xf4ng lưu được CLI Model Profiles")}finally{N(!1)}}};return j?(0,l.jsx)("div",{className:"rounded-2xl border border-dashed border-border p-8 text-center text-sm text-text-muted",children:"Đang tải CLI Model Settings..."}):M?(0,l.jsxs)("div",{className:"mx-auto w-full max-w-6xl space-y-5",children:[(0,l.jsx)("datalist",{id:"cli-local-model-catalog",children:o.map(e=>(0,l.jsx)("option",{value:e},e))}),(0,l.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,l.jsxs)("div",{children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,l.jsx)(d(),{href:"/dashboard/cli-tools",className:"hover:text-primary",children:"CLI Tools"}),(0,l.jsx)("span",{children:"/"}),(0,l.jsx)("span",{children:"Model Settings"})]}),(0,l.jsx)("h1",{className:"mt-1 text-2xl font-semibold text-text-main",children:"CLI Model Settings"}),(0,l.jsxs)("p",{className:"mt-1 max-w-4xl text-sm text-text-muted",children:["Local profile d\xf9ng chung cho 4 CLI. Cloud profile t\xe1ch ri\xeang theo tool: Claude Code chỉ d\xf9ng ",(0,l.jsx)("span",{className:"font-mono",children:"claude/"}),", Codex chỉ d\xf9ng ",(0,l.jsx)("span",{className:"font-mono",children:"codex/"}),". OpenCode v\xe0 Qwen Code kh\xf4ng c\xf3 Cloud guide."]})]}),(0,l.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,l.jsx)(s.$n,{variant:"outline",onClick:()=>{t(x(c.O0)),k(""),P("")},children:"Reset form"}),(0,l.jsx)(s.$n,{onClick:O,disabled:C,children:C?"Đang lưu...":"Lưu settings"})]})]}),(0,l.jsx)("div",{className:"rounded-xl border border-blue-500/20 bg-blue-500/5 p-3 text-sm text-text-muted",children:"Setting n\xe0y chỉ sinh config/hướng dẫn CLI ở Dashboard. Kh\xf4ng thay đổi request handling, runtime model routing, provider routing, combo, circuit breaker hay load balancing."}),(0,l.jsxs)("div",{className:"rounded-xl border border-border bg-surface/50 p-3 text-xs text-text-muted",children:["Personal Cloud Provider hiện c\xf3 ",(0,l.jsxs)("span",{className:"font-medium text-text-main",children:[i.claude.length," model claude/"]})," v\xe0 ",(0,l.jsxs)("span",{className:"font-medium text-text-main",children:[i.codex.length," model codex/"]})," d\xf9ng được cho CLI guides. Antigravity vẫn được quản l\xfd ri\xeang ở Personal Cloud Provider; m\xe0n h\xecnh API Keys hiện kh\xf4ng c\xf3 Antigravity CLI guide."]}),w?(0,l.jsx)("div",{className:"rounded-xl border border-red-500/30 bg-red-500/10 p-3 text-sm text-red-600",children:w}):null,y?(0,l.jsx)("div",{className:"rounded-xl border border-emerald-500/30 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-300",children:y}):null,(0,l.jsx)(h,{profile:e.local,setProfiles:t}),(0,l.jsxs)("div",{className:"grid gap-5 xl:grid-cols-2",children:[(0,l.jsx)(f,{tool:"claude",profile:e.cloud.claude,options:i.claude,setProfiles:t}),(0,l.jsx)(f,{tool:"codex",profile:e.cloud.codex,options:i.codex,setProfiles:t})]}),(0,l.jsx)(s.Zp,{children:(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)("h2",{className:"font-semibold text-text-main",children:"Preview resolved mapping"}),(0,l.jsxs)("div",{className:"grid gap-4 lg:grid-cols-3",children:[(0,l.jsx)(b,{title:"Local \xb7 all CLI",profile:I.local}),(0,l.jsx)(b,{title:"Cloud \xb7 Claude Code",profile:I.cloud.claude}),(0,l.jsx)(b,{title:"Cloud \xb7 Codex",profile:I.cloud.codex})]})]})})]}):(0,l.jsx)(s.Zp,{children:(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)("h1",{className:"text-xl font-semibold text-text-main",children:"CLI Model Settings"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Chỉ admin/API-key admin được thay đổi CLI model mapping."}),(0,l.jsx)(d(),{href:"/dashboard/cli-tools",className:"text-sm font-medium text-primary hover:underline",children:"← Quay lại CLI Tools"})]})})}},91011:(e,t,o)=>{Promise.resolve().then(o.bind(o,59305))}},e=>{e.O(0,[2574,3862,2691,9959,1997,5564,5263,7033,5497,8441,3794,7358],()=>e(e.s=91011)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2326],{4987:(e,s,l)=>{Promise.resolve().then(l.bind(l,53501))},53501:(e,s,l)=>{"use strict";l.d(s,{default:()=>p});var t=l(95155),a=l(98500),r=l.n(a),i=l(12115),o=l(35497),n=l(94027),c=l(3534),d=l(61082),x=l(5772);function m({toolId:e,tool:s,status:l}){let a=l?l.installed?l.hasBluerouter?{label:"Connected",cls:"bg-green-500/10 text-green-600 dark:text-green-400"}:{label:"Not configured",cls:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"}:{label:"Not installed",cls:"bg-red-500/10 text-red-600 dark:text-red-400"}:{label:"Unknown",cls:"bg-gray-500/10 text-gray-500"};return(0,t.jsx)(r(),{href:`/dashboard/cli-tools/${e}`,className:"block",children:(0,t.jsx)(o.Zp,{padding:"sm",className:"h-full overflow-hidden hover:border-primary/50 transition-colors cursor-pointer",children:(0,t.jsxs)("div",{className:"flex h-full flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:s.image?(0,t.jsx)(x.default,{src:s.image,alt:s.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}}):s.icon?(0,t.jsx)("span",{className:"material-symbols-outlined text-[28px]",style:{color:s.color},children:s.icon}):null}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-sm truncate",children:s.name}),(0,t.jsx)("span",{className:`inline-block mt-0.5 px-1.5 py-0.5 text-[10px] font-medium rounded-full ${a.cls}`,children:a.label})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px] shrink-0",children:"chevron_right"})]}),(0,t.jsx)("p",{className:"text-xs text-text-muted line-clamp-2",children:s.description})]})})})}function p({machineId:e}){let[s,l]=(0,i.useState)(!0),[a,x]=(0,i.useState)({}),{isAdmin:h,isMonitorAdmin:g,canManageApiKeys:u}=(0,n.s)();if((0,i.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await fetch("/api/cli-tools/all-statuses");s.ok&&e&&x(await s.json())}catch(e){console.log("Error fetching tool statuses:",e)}finally{e&&l(!1)}})(),()=>{e=!1}},[]),s)return(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:[(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{})]});let f=Object.entries(c.dM),j=Object.entries(c.wn);return(0,t.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-1 sm:px-0",children:[h||g||u?(0,t.jsxs)(r(),{href:"/dashboard/cli-tools/model-profiles",className:"group flex flex-col gap-3 rounded-2xl border border-primary/20 bg-primary/5 p-4 transition hover:border-primary/40 sm:flex-row sm:items-center sm:justify-between",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"material-symbols-outlined rounded-xl border border-primary/20 bg-surface p-2 text-primary",children:"tune"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-semibold text-text-main",children:"CLI Model Profiles"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Map Local/Cloud theo Coder, Fast, Thinking v\xe0 set context/auto-compact cho local guides."})]})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted transition group-hover:translate-x-0.5 group-hover:text-primary",children:"arrow_forward"})]}):null,(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:f.map(([e,s])=>(0,t.jsx)(m,{toolId:e,tool:s,status:a[e]},e))}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 sm:gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"security"}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"MITM Tools"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:j.map(([e,s])=>(0,t.jsx)(d.gY,{tool:s},e))})]})]})}}},e=>{e.O(0,[2574,3862,2691,9959,1997,5772,5564,5263,7033,5497,4525,8441,3794,7358],()=>e(e.s=4987)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2326],{4987:(e,s,l)=>{Promise.resolve().then(l.bind(l,53501))},53501:(e,s,l)=>{"use strict";l.d(s,{default:()=>g});var t=l(95155),r=l(98500),a=l.n(r),i=l(12115),o=l(35497),n=l(94027),d=l(3534),c=l(61082),x=l(5772);function m({toolId:e,tool:s,status:l}){let r=l?l.installed?l.hasBluerouter?{label:"Connected",cls:"bg-green-500/10 text-green-600 dark:text-green-400"}:{label:"Not configured",cls:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"}:{label:"Not installed",cls:"bg-red-500/10 text-red-600 dark:text-red-400"}:{label:"Unknown",cls:"bg-gray-500/10 text-gray-500"};return(0,t.jsx)(a(),{href:`/dashboard/cli-tools/${e}`,className:"block",children:(0,t.jsx)(o.Zp,{padding:"sm",className:"h-full overflow-hidden hover:border-primary/50 transition-colors cursor-pointer",children:(0,t.jsxs)("div",{className:"flex h-full flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:s.image?(0,t.jsx)(x.default,{src:s.image,alt:s.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}}):s.icon?(0,t.jsx)("span",{className:"material-symbols-outlined text-[28px]",style:{color:s.color},children:s.icon}):null}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-sm truncate",children:s.name}),(0,t.jsx)("span",{className:`inline-block mt-0.5 px-1.5 py-0.5 text-[10px] font-medium rounded-full ${r.cls}`,children:r.label})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px] shrink-0",children:"chevron_right"})]}),(0,t.jsx)("p",{className:"text-xs text-text-muted line-clamp-2",children:s.description})]})})})}function g({machineId:e}){let[s,l]=(0,i.useState)(!0),[r,x]=(0,i.useState)({}),{isAdmin:p,isMonitorAdmin:u,canManageApiKeys:h}=(0,n.s)();if((0,i.useEffect)(()=>{let e=!0;return(async()=>{try{let s=await fetch("/api/cli-tools/all-statuses");s.ok&&e&&x(await s.json())}catch(e){console.log("Error fetching tool statuses:",e)}finally{e&&l(!1)}})(),()=>{e=!1}},[]),s)return(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:[(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{}),(0,t.jsx)(o.Qv,{})]});let f=Object.entries(d.dM),j=Object.entries(d.wn);return(0,t.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-1 sm:px-0",children:[p||u||h?(0,t.jsxs)(a(),{href:"/dashboard/cli-tools/model-profiles",className:"group flex flex-col gap-3 rounded-2xl border border-primary/20 bg-primary/5 p-4 transition hover:border-primary/40 sm:flex-row sm:items-center sm:justify-between",children:[(0,t.jsxs)("div",{className:"flex items-start gap-3",children:[(0,t.jsx)("span",{className:"material-symbols-outlined rounded-xl border border-primary/20 bg-surface p-2 text-primary",children:"tune"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"font-semibold text-text-main",children:"CLI Model Settings"}),(0,t.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Set Local model d\xf9ng chung; Claude Code v\xe0 Codex c\xf3 Cloud model ri\xeang lấy từ Personal Cloud Provider."})]})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted transition group-hover:translate-x-0.5 group-hover:text-primary",children:"arrow_forward"})]}):null,(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:f.map(([e,s])=>(0,t.jsx)(m,{toolId:e,tool:s,status:r[e]},e))}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 sm:gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"security"}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"MITM Tools"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:j.map(([e,s])=>(0,t.jsx)(c.gY,{tool:s},e))})]})]})}}},e=>{e.O(0,[2574,3862,2691,9959,1997,5772,5564,5263,7033,5497,4525,8441,3794,7358],()=>e(e.s=4987)),_N_E=e.O()}]);
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluerouter-app",
3
- "version": "5.2.49",
3
+ "version": "5.2.50",
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.49",
3
+ "version": "5.2.50",
4
4
  "description": "Bluerouter CLI - Start and manage Bluerouter server",
5
5
  "bin": {
6
6
  "bluerouter": "./cli.js"
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4845],{9385:(e,t,l)=>{"use strict";l.d(t,{FY:()=>x,O0:()=>r,Zn:()=>u,cL:()=>c,j5:()=>i,pA:()=>o,u1:()=>m});let o=["coder","fast","thinking"],r={version:1,local:{enabled:!0,providerName:"Local AI",autoCompactPct:75,models:{coder:{model:"programmer",contextWindow:12e4},fast:{model:"programmer-fast",contextWindow:12e4},thinking:{model:"programmer",contextWindow:12e4}}},cloud:{enabled:!1,providerName:"Cloud AI",models:{coder:{model:"",contextWindow:0},fast:{model:"",contextWindow:0},thinking:{model:"",contextWindow:0}}}};function s(e,t=300){return String(e??"").trim().slice(0,t)}function a(e,t){let l=Number(e);return!Number.isFinite(l)||l<=0?t:Math.floor(l)}function d(e,t=75){let l=Number(e);return Number.isFinite(l)?Math.min(100,Math.max(1,Math.floor(l))):t}function n(e,t,{local:l}){let r=e&&"object"==typeof e&&!Array.isArray(e)?e:{},i=r.models&&"object"==typeof r.models&&!Array.isArray(r.models)?r.models:{},c={};for(let e of o)c[e]=function(e,t,{local:l}){let o=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{model:s(Object.prototype.hasOwnProperty.call(o,"model")?o.model:t.model),contextWindow:l?a(o.contextWindow,t.contextWindow||12e4):0}}(i[e],t.models[e],{local:l});let m={enabled:Object.prototype.hasOwnProperty.call(r,"enabled")?!0===r.enabled:t.enabled,providerName:s(Object.prototype.hasOwnProperty.call(r,"providerName")?r.providerName:t.providerName,80)||t.providerName,models:c};return l&&(m.autoCompactPct=d(r.autoCompactPct,t.autoCompactPct)),m}function i(e={}){let t=e&&"object"==typeof e&&!Array.isArray(e)?e:{};return{version:1,local:n(t.local,r.local,{local:!0}),cloud:n(t.cloud,r.cloud,{local:!1})}}function c(e,t,l=""){return s(e?.models?.[t]?.model)||l}function m(e,t,l=12e4){return a(e?.models?.[t]?.contextWindow,l)}function x(e){return[...new Set(o.map(t=>c(e,t)).filter(Boolean))]}function u(e){return Math.max(1,Math.floor(m(e,"coder")*d(e?.autoCompactPct)/100))}},59305:(e,t,l)=>{"use strict";l.d(t,{default:()=>h});var o=l(95155),r=l(98500),s=l.n(r),a=l(12115),d=l(35497),n=l(94027),i=l(9385);let c={coder:{label:"Coder",hint:"Model ch\xednh cho coding/generation."},fast:{label:"Fast",hint:"Model nhanh cho explorer/small/haiku profile."},thinking:{label:"Thinking",hint:"Model reasoning/opus/thinking profile."}};function m(e){return JSON.parse(JSON.stringify((0,i.j5)(e)))}function x({scope:e,role:t,value:l,contextWindow:r,onModelChange:s,onContextChange:a}){let d=c[t];return(0,o.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3",children:[(0,o.jsxs)("div",{className:"mb-2",children:[(0,o.jsx)("div",{className:"text-sm font-medium text-text-main",children:d.label}),(0,o.jsx)("div",{className:"text-xs text-text-muted",children:d.hint})]}),(0,o.jsxs)("div",{className:`grid gap-3 ${"local"===e?"sm:grid-cols-[minmax(0,1fr)_170px]":""}`,children:[(0,o.jsxs)("label",{children:[(0,o.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Model ID / alias"}),(0,o.jsx)("input",{list:"cli-model-catalog",value:l||"",onChange:e=>s(e.target.value),placeholder:"coder"===t?"programmer hoặc codex/xyz":"fast"===t?"programmer-fast":"claude/opus",className:"w-full rounded-xl border border-border bg-surface px-3 py-2 font-mono text-sm text-text-main outline-none focus:border-primary"})]}),"local"===e?(0,o.jsxs)("label",{children:[(0,o.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Max context"}),(0,o.jsx)("input",{type:"number",min:"1",max:"10000000",value:r||"",onChange:e=>a(e.target.value),className:"w-full rounded-xl border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary"})]}):null]})]})}function u({scope:e,profile:t,setProfiles:l}){let r="local"===e,s=t=>l(l=>({...l,[e]:{...l[e],...t}})),a=(t,o)=>l(l=>({...l,[e]:{...l[e],models:{...l[e].models,[t]:{...l[e].models[t],...o}}}}));return(0,o.jsx)(d.Zp,{children:(0,o.jsxs)("div",{className:"space-y-4",children:[(0,o.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"rounded-full border border-border bg-surface px-2 py-1 text-[11px] font-medium uppercase tracking-wide text-text-muted",children:r?"Local":"Cloud"}),(0,o.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:r?"Local AI profile":"Cloud AI profile"})]}),(0,o.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:r?"Set model theo role v\xe0 context thực tế của model local.":"Set model cloud theo role; d\xf9ng provider/model hoặc alias gateway expose."})]}),(0,o.jsxs)("label",{className:"inline-flex items-center gap-2 text-sm text-text-main",children:[(0,o.jsx)("input",{type:"checkbox",checked:!0===t.enabled,onChange:e=>s({enabled:e.target.checked}),className:"size-4"}),"Enabled"]})]}),(0,o.jsxs)("label",{className:"block",children:[(0,o.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"T\xean provider/profile hiển thị"}),(0,o.jsx)("input",{value:t.providerName||"",onChange:e=>s({providerName:e.target.value}),placeholder:r?"Local AI":"Cloud AI",className:"w-full rounded-xl border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary"})]}),(0,o.jsx)("div",{className:"space-y-3",children:i.pA.map(l=>(0,o.jsx)(x,{scope:e,role:l,value:t.models?.[l]?.model,contextWindow:t.models?.[l]?.contextWindow,onModelChange:e=>a(l,{model:e}),onContextChange:e=>a(l,{contextWindow:e})},l))}),r?(0,o.jsx)("div",{className:"rounded-xl border border-border bg-background p-3",children:(0,o.jsxs)("div",{className:"grid gap-3 sm:grid-cols-[180px_minmax(0,1fr)] sm:items-end",children:[(0,o.jsxs)("label",{children:[(0,o.jsx)("span",{className:"mb-1 block text-xs font-medium text-text-muted",children:"Auto compact %"}),(0,o.jsx)("input",{type:"number",min:"1",max:"100",value:t.autoCompactPct||75,onChange:e=>s({autoCompactPct:e.target.value}),className:"w-full rounded-xl border border-border bg-surface px-3 py-2 text-sm text-text-main outline-none focus:border-primary"})]}),(0,o.jsxs)("div",{className:"rounded-xl border border-border bg-surface px-3 py-2 text-sm text-text-muted",children:["Derived Codex compact limit: ",(0,o.jsx)("span",{className:"font-mono font-medium text-text-main",children:(0,i.Zn)(t).toLocaleString()})," tokens."]})]})}):null]})})}function h(){let[e,t]=(0,a.useState)(()=>m(i.O0)),[l,r]=(0,a.useState)([]),[c,x]=(0,a.useState)(!0),[h,p]=(0,a.useState)(!1),[f,b]=(0,a.useState)(""),[g,j]=(0,a.useState)(""),{isAdmin:v,isMonitorAdmin:N,canManageApiKeys:y}=(0,n.s)(),C=v||N||y;(0,a.useEffect)(()=>{let e=!1;return Promise.allSettled([fetch("/api/cli-model-profiles",{cache:"no-store"}).then(async e=>{let t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Kh\xf4ng tải được CLI Model Profiles");return t.profiles}),fetch("/api/models",{cache:"no-store"}).then(async e=>e.ok&&(await e.json().catch(()=>({}))).models||[])]).then(([l,o])=>{if(!e){if("fulfilled"===l.status?t(m(l.value)):j(l.reason?.message||"Kh\xf4ng tải được CLI Model Profiles"),"fulfilled"===o.status){let e=[];for(let t of o.value)for(let l of[t?.fullModel,t?.alias,t?.model]){let t=String(l||"").trim();t&&e.push(t)}r([...new Set(e)].sort((e,t)=>e.localeCompare(t)))}x(!1)}}),()=>{e=!0}},[]);let w=(0,a.useMemo)(()=>(0,i.j5)(e),[e]),k=async()=>{if(C){p(!0),j(""),b("");try{let l=await fetch("/api/cli-model-profiles",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({profiles:e})}),o=await l.json().catch(()=>({}));if(!l.ok)throw Error(o.error||"Kh\xf4ng lưu được CLI Model Profiles");t(m(o.profiles)),b("Đ\xe3 lưu. C\xe1c modal Claude / OpenCode / Codex / Qwen trong API Keys sẽ d\xf9ng profile mới khi mở lại.")}catch(e){j(e.message||"Kh\xf4ng lưu được CLI Model Profiles")}finally{p(!1)}}};return c?(0,o.jsx)("div",{className:"rounded-2xl border border-dashed border-border p-8 text-center text-sm text-text-muted",children:"Đang tải CLI Model Profiles..."}):C?(0,o.jsxs)("div",{className:"mx-auto w-full max-w-6xl space-y-5",children:[(0,o.jsx)("datalist",{id:"cli-model-catalog",children:l.map(e=>(0,o.jsx)("option",{value:e},e))}),(0,o.jsxs)("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,o.jsx)(s(),{href:"/dashboard/cli-tools",className:"hover:text-primary",children:"CLI Tools"}),(0,o.jsx)("span",{children:"/"}),(0,o.jsx)("span",{children:"Model Profiles"})]}),(0,o.jsx)("h1",{className:"mt-1 text-2xl font-semibold text-text-main",children:"CLI Model Profiles"}),(0,o.jsx)("p",{className:"mt-1 max-w-3xl text-sm text-text-muted",children:"Source of truth cho hướng dẫn Claude Code, OpenCode, Codex v\xe0 Qwen Code tại /dashboard/api-keys. Logical role t\xe1ch khỏi t\xean model để kh\xf4ng c\xf2n đo\xe1n model bằng regex."})]}),(0,o.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,o.jsx)(d.$n,{variant:"outline",onClick:()=>{t(m(i.O0)),b(""),j("")},children:"Reset form"}),(0,o.jsx)(d.$n,{onClick:k,disabled:h,children:h?"Đang lưu...":"Lưu profiles"})]})]}),(0,o.jsx)("div",{className:"rounded-xl border border-blue-500/20 bg-blue-500/5 p-3 text-sm text-text-muted",children:"Setting n\xe0y chỉ sinh config/hướng dẫn CLI ở Dashboard. Kh\xf4ng thay đổi request handling, runtime model routing, provider routing, combo, circuit breaker hay load balancing."}),g?(0,o.jsx)("div",{className:"rounded-xl border border-red-500/30 bg-red-500/10 p-3 text-sm text-red-600",children:g}):null,f?(0,o.jsx)("div",{className:"rounded-xl border border-emerald-500/30 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-300",children:f}):null,(0,o.jsxs)("div",{className:"grid gap-5 xl:grid-cols-2",children:[(0,o.jsx)(u,{scope:"local",profile:e.local,setProfiles:t}),(0,o.jsx)(u,{scope:"cloud",profile:e.cloud,setProfiles:t})]}),(0,o.jsx)(d.Zp,{children:(0,o.jsxs)("div",{className:"space-y-3",children:[(0,o.jsx)("h2",{className:"font-semibold text-text-main",children:"Preview resolved mapping"}),(0,o.jsx)("div",{className:"grid gap-4 md:grid-cols-2",children:[["Local",w.local],["Cloud",w.cloud]].map(([e,t])=>(0,o.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3 text-sm",children:[(0,o.jsxs)("div",{className:"font-medium text-text-main",children:[e," \xb7 ",t.providerName," \xb7 ",t.enabled?"enabled":"disabled"]}),(0,o.jsxs)("div",{className:"mt-2 space-y-1 font-mono text-xs text-text-muted",children:[(0,o.jsxs)("div",{children:["coder = ",t.models.coder.model||"—"]}),(0,o.jsxs)("div",{children:["fast = ",t.models.fast.model||"—"]}),(0,o.jsxs)("div",{children:["thinking = ",t.models.thinking.model||"—"]})]})]},e))})]})})]}):(0,o.jsx)(d.Zp,{children:(0,o.jsxs)("div",{className:"space-y-3",children:[(0,o.jsx)("h1",{className:"text-xl font-semibold text-text-main",children:"CLI Model Profiles"}),(0,o.jsx)("p",{className:"text-sm text-text-muted",children:"Chỉ admin/API-key admin được thay đổi mapping Local/Cloud cho CLI guides."}),(0,o.jsx)(s(),{href:"/dashboard/cli-tools",className:"text-sm font-medium text-primary hover:underline",children:"← Quay lại CLI Tools"})]})})}},91011:(e,t,l)=>{Promise.resolve().then(l.bind(l,59305))}},e=>{e.O(0,[2574,3862,2691,9959,1997,5564,5263,7033,5497,8441,3794,7358],()=>e(e.s=91011)),_N_E=e.O()}]);