@jheavenknows/bluerouter 5.3.55 → 5.3.56

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 (693) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +12 -12
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +0 -28
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +2 -2
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js.nft.json +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page.js +2 -2
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  92. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  93. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  95. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js +1 -1
  96. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  98. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page.js +1 -1
  99. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page_client-reference-manifest.js +1 -1
  101. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  102. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  104. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  105. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  107. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  108. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  110. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  111. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  113. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  114. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  116. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  117. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  119. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  120. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  121. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  122. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  123. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  124. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  125. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  127. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  128. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  129. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  130. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  131. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  132. package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js +1 -18
  133. package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/audit-proxy/route.js +14 -31
  135. package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
  139. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  148. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/auth/view-mode/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/auth/view-mode/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/branding/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/branding/upload/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  166. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +2 -2
  170. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/cluster/config/route.js +1 -1
  191. package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/cluster/peers/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js +2 -2
  200. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/cluster/sync/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/cluster/test/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +2 -2
  206. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js +2 -2
  210. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +2 -2
  216. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js +2 -2
  222. package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js +2 -2
  236. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/keys/route.js +2 -2
  246. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +2 -2
  253. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  260. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js +2 -2
  320. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/provider-health/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  332. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  357. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  359. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  363. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js +3 -3
  365. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js +2 -2
  369. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js +2 -2
  371. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/resource-monitor/route.js +3 -3
  373. package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  378. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  386. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  396. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  402. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  406. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  410. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  424. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  425. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  426. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  427. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  428. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  429. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  449. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  463. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  469. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  470. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  471. package/app/.next-cli-build/server/app/callback.html +1 -1
  472. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  473. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  474. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  475. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  476. package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
  477. package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +7 -7
  478. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +7 -7
  479. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +7 -7
  480. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +2 -2
  481. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  482. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +10 -10
  483. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
  484. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
  485. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  487. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  488. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  489. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  490. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  491. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
  492. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
  493. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
  494. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
  495. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  497. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  498. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  499. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  500. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  501. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
  502. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
  503. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +7 -7
  504. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
  505. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +2 -2
  506. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  507. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  508. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  509. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  510. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  511. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  513. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  514. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  515. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  516. package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
  517. package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
  518. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +7 -7
  519. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
  520. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +2 -2
  521. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  523. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
  524. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  525. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  526. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  527. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  528. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  529. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  530. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  531. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  532. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  533. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  534. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  535. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  536. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
  538. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +7 -7
  539. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
  540. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  541. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  542. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
  543. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +7 -7
  544. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
  545. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  546. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  547. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  548. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  549. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  550. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  551. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  552. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  553. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  554. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  555. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  556. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  557. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  558. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  559. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  560. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  561. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  562. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  563. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  564. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  565. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  566. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  567. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
  568. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +7 -7
  569. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
  570. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
  571. package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
  572. package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +7 -7
  573. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +7 -7
  574. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +7 -7
  575. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_tree.segment.rsc +2 -2
  576. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  577. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
  578. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  579. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  580. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  581. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  582. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  583. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  584. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  585. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  586. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  587. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  588. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  589. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  590. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  591. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  592. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  593. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
  594. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  595. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  596. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  597. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  598. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  599. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  600. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  601. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  602. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  603. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  604. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  605. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  606. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  607. package/app/.next-cli-build/server/app/index.html +1 -1
  608. package/app/.next-cli-build/server/app/index.rsc +6 -6
  609. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  610. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  611. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  612. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  613. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  614. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  615. package/app/.next-cli-build/server/app/landing.html +1 -1
  616. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  617. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  618. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  619. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  620. package/app/.next-cli-build/server/app/login/page.js +1 -1
  621. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  622. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  623. package/app/.next-cli-build/server/app/login.html +1 -1
  624. package/app/.next-cli-build/server/app/login.rsc +7 -7
  625. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  626. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  627. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  628. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  629. package/app/.next-cli-build/server/app/page.js +1 -1
  630. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  631. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  632. package/app/.next-cli-build/server/app-paths-manifest.json +12 -12
  633. package/app/.next-cli-build/server/chunks/{7250.js → 1002.js} +1 -1
  634. package/app/.next-cli-build/server/chunks/2430.js +3 -3
  635. package/app/.next-cli-build/server/chunks/2507.js +1 -0
  636. package/app/.next-cli-build/server/chunks/2512.js +1 -0
  637. package/app/.next-cli-build/server/chunks/2944.js +1 -0
  638. package/app/.next-cli-build/server/chunks/3609.js +3 -0
  639. package/app/.next-cli-build/server/chunks/3738.js +1 -0
  640. package/app/.next-cli-build/server/chunks/3767.js +18 -0
  641. package/app/.next-cli-build/server/chunks/3958.js +14 -14
  642. package/app/.next-cli-build/server/chunks/{7638.js → 402.js} +8 -8
  643. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  644. package/app/.next-cli-build/server/chunks/4696.js +1 -1
  645. package/app/.next-cli-build/server/chunks/{1350.js → 4746.js} +2 -2
  646. package/app/.next-cli-build/server/chunks/5206.js +1 -0
  647. package/app/.next-cli-build/server/chunks/5424.js +1 -0
  648. package/app/.next-cli-build/server/chunks/5915.js +1 -0
  649. package/app/.next-cli-build/server/chunks/595.js +1 -1
  650. package/app/.next-cli-build/server/chunks/6053.js +1 -1
  651. package/app/.next-cli-build/server/chunks/{1900.js → 6064.js} +1 -1
  652. package/app/.next-cli-build/server/chunks/607.js +9 -0
  653. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  654. package/app/.next-cli-build/server/chunks/6811.js +1 -1
  655. package/app/.next-cli-build/server/chunks/{7700.js → 6936.js} +4 -4
  656. package/app/.next-cli-build/server/chunks/6992.js +1 -1
  657. package/app/.next-cli-build/server/chunks/7639.js +1 -1
  658. package/app/.next-cli-build/server/chunks/7812.js +1 -1
  659. package/app/.next-cli-build/server/chunks/8099.js +1 -0
  660. package/app/.next-cli-build/server/chunks/8255.js +1 -1
  661. package/app/.next-cli-build/server/chunks/8316.js +1 -1
  662. package/app/.next-cli-build/server/chunks/8347.js +1 -0
  663. package/app/.next-cli-build/server/instrumentation.js +1 -1
  664. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  665. package/app/.next-cli-build/server/pages/404.html +1 -1
  666. package/app/.next-cli-build/server/pages/500.html +1 -1
  667. package/app/.next-cli-build/server/prefetch-hints.json +0 -24
  668. package/app/.next-cli-build/static/chunks/{5263-b67e8f4e90def189.js → 5263-880816cfad5dc39b.js} +1 -1
  669. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-6ed8392f835a28e2.js +1 -0
  670. package/app/.next-cli-build/static/css/b14ac663d252f431.css +1 -0
  671. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.49-to-5.3.50-5.3.50-20260822-195035 → upgrade-5.3.53-to-5.3.54-5.3.54-20260822-220829}/data.sqlite +0 -0
  672. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
  673. package/app/package.json +1 -1
  674. package/package.json +1 -1
  675. package/app/.next-cli-build/server/app/dashboard/audit-proxy.html +0 -1
  676. package/app/.next-cli-build/server/app/dashboard/audit-proxy.meta +0 -36
  677. package/app/.next-cli-build/server/app/dashboard/audit-proxy.rsc +0 -26
  678. package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/!KGRhc2hib2FyZCk/dashboard/audit-proxy/__PAGE__.segment.rsc +0 -33
  679. package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_full.segment.rsc +0 -26
  680. package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_tree.segment.rsc +0 -4
  681. package/app/.next-cli-build/server/chunks/1220.js +0 -3
  682. package/app/.next-cli-build/server/chunks/1876.js +0 -1
  683. package/app/.next-cli-build/server/chunks/2999.js +0 -1
  684. package/app/.next-cli-build/server/chunks/4459.js +0 -9
  685. package/app/.next-cli-build/server/chunks/4755.js +0 -1
  686. package/app/.next-cli-build/server/chunks/5623.js +0 -1
  687. package/app/.next-cli-build/server/chunks/7895.js +0 -1
  688. package/app/.next-cli-build/server/chunks/8141.js +0 -1
  689. package/app/.next-cli-build/server/chunks/9413.js +0 -1
  690. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-1668bdee838e50b6.js +0 -1
  691. package/app/.next-cli-build/static/css/1a3f62f10f5e4a32.css +0 -1
  692. /package/app/.next-cli-build/static/{dLYAsA1TrvO8gjZu0jVds → mhAZYh2CjtLe7IjwW4JJm}/_buildManifest.js +0 -0
  693. /package/app/.next-cli-build/static/{dLYAsA1TrvO8gjZu0jVds → mhAZYh2CjtLe7IjwW4JJm}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=2507,exports.ids=[1998,2507],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},35024:(a,b,c)=>{c.d(b,{Ak:()=>i,Yg:()=>k,xq:()=>h});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},g="https://api.kimi.com/coding/v1/messages",h={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...f},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex_cli_rs","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},"vercel-ai-gateway":{baseUrl:"https://ai-gateway.vercel.sh/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:g,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alims-intl":{baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:g,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",responsesUrl:"https://api.x.ai/v1/responses",format:"openai",clientId:"b1a00492-073a-47ea-816f-4c329264a828",tokenUrl:"https://auth.x.ai/oauth2/token",refreshUrl:"https://auth.x.ai/oauth2/token"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"},"xiaomi-tokenplan":{baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1/chat/completions",format:"openai"},agentrouter:{baseUrl:"https://agentrouter.org/v1/messages",format:"claude",headers:{...f}},aimlapi:{baseUrl:"https://api.aimlapi.com/v1/chat/completions",format:"openai"},novita:{baseUrl:"https://api.novita.ai/v3/openai/chat/completions",format:"openai"},modal:{baseUrl:"https://api.modal.com/v1/chat/completions",format:"openai"},reka:{baseUrl:"https://api.reka.ai/v1/chat/completions",format:"openai"},nlpcloud:{baseUrl:"https://api.nlpcloud.io/v1/gpu/chatbot",format:"openai"},bazaarlink:{baseUrl:"https://bazaarlink.ai/api/v1/chat/completions",format:"openai"},completions:{baseUrl:"https://completions.me/api/v1/chat/completions",format:"openai"},enally:{baseUrl:"https://ai.enally.in/v1/chat/completions",format:"openai",authHeader:"x-api-key"},freetheai:{baseUrl:"https://api.freetheai.xyz/v1/chat/completions",format:"openai"},llm7:{baseUrl:"https://api.llm7.io/v1/chat/completions",format:"openai"},lepton:{baseUrl:"https://api.lepton.ai/api/v1/chat/completions",format:"openai"},kluster:{baseUrl:"https://api.kluster.ai/v1/chat/completions",format:"openai"},ai21:{baseUrl:"https://api.ai21.com/studio/v1/chat/completions",format:"openai"},"inference-net":{baseUrl:"https://api.inference.net/v1/chat/completions",format:"openai"},predibase:{baseUrl:"https://serving.app.predibase.com/v1/chat/completions",format:"openai"},bytez:{baseUrl:"https://api.bytez.com/models/v2",format:"openai"},morph:{baseUrl:"https://api.morphllm.com/v1/chat/completions",format:"openai"},longcat:{baseUrl:"https://api.longcat.chat/openai/v1/chat/completions",format:"openai"},puter:{baseUrl:"https://api.puter.com/puterai/openai/v1/chat/completions",format:"openai"},uncloseai:{baseUrl:"https://hermes.ai.unturf.com/v1/chat/completions",format:"openai",noAuth:!0},scaleway:{baseUrl:"https://api.scaleway.ai/v1/chat/completions",format:"openai"},deepinfra:{baseUrl:"https://api.deepinfra.com/v1/openai/chat/completions",format:"openai"},sambanova:{baseUrl:"https://api.sambanova.ai/v1/chat/completions",format:"openai"},nscale:{baseUrl:"https://inference.api.nscale.com/v1/chat/completions",format:"openai"},baseten:{baseUrl:"https://inference.baseten.co/v1/chat/completions",format:"openai"},publicai:{baseUrl:"https://api.publicai.co/v1/chat/completions",format:"openai"},"nous-research":{baseUrl:"https://inference-api.nousresearch.com/v1/chat/completions",format:"openai"},glhf:{baseUrl:"https://glhf.chat/api/openai/v1/chat/completions",format:"openai"},blackbox:{baseUrl:"https://api.blackbox.ai/chat/completions",format:"openai"}};function i(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}let j={sgp:"https://token-plan-sgp.xiaomimimo.com/v1",cn:"https://token-plan-cn.xiaomimimo.com/v1",ams:"https://token-plan-ams.xiaomimimo.com/v1"};function k(a){return j[a?.providerSpecificData?.region]||j.sgp}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},54589:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(34778),e=c(75681),f=c(35024),g=c(44404),h=c(90737),i=a([d]);d=(i.then?(await i)():i)[0];let j="grok-cli";for(let a=d.MQ.length-1;a>=0;a-=1)"xai"===d.MQ[a]&&d.MQ.splice(a,1);d.MQ.includes(j)||d.MQ.push(j),e.wb.includes(j)||e.wb.push(j),e.zN[j]={id:j,alias:"gcli",name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",deprecated:!0,deprecationNotice:e.hv,website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build / SuperGrok subscription credits, not xAI API billing.",signupUrl:"https://grok.com/supergrok"},serviceKinds:["llm"],authModes:["oauth"],hasOAuth:!0,thinkingConfig:{options:["low","medium","high","xhigh"],defaultMode:"high"}},f.xq[j]=h.q,g.vq[j]=h.vT,b()}catch(a){b(a)}})},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,nv:()=>d.nv,o5:()=>d.o5,op:()=>d.op,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.updateProviderConnection,uv:()=>d.uv,yg:()=>d.yg});var d=c(89718)},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -0,0 +1 @@
1
+ exports.id=2512,exports.ids=[2512],exports.modules={16904:(a,b,c)=>{Promise.resolve().then(c.bind(c,51747))},43173:(a,b,c)=>{"use strict";c.d(b,{default:()=>l});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(50412),i=c(50377);let j=[{id:"lite",label:"Lite",desc:"N\xe9n nhẹ, vẫn giữ ngữ ph\xe1p dễ đọc."},{id:"full",label:"Full",desc:"N\xe9n c\xe2n bằng, giảm token r\xf5 hơn."},{id:"ultra",label:"Ultra",desc:"N\xe9n tối đa, c\xe2u cực ngắn."}];function k({label:a,value:b,copiedKey:c,copied:e,copy:f}){return(0,d.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3",children:[(0,d.jsx)("div",{className:"mb-1 text-xs font-semibold uppercase tracking-wide text-text-muted",children:a}),(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,d.jsx)("code",{className:"min-w-0 flex-1 truncate rounded-lg bg-surface px-3 py-2 font-mono text-xs text-text-main",children:b}),(0,d.jsx)("button",{type:"button",onClick:()=>f(b,c),className:"rounded-lg border border-border px-2 py-2 text-text-muted transition hover:border-primary hover:text-primary",title:"Copy",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:e===c?"check":"content_copy"})})]})]})}function l({machineId:a}){let[b,c]=(0,e.useState)(!0),[f,g]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)({hasPassword:!0,rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full",apiKeyDefaultModel:""}),{copied:q,copy:r}=(0,i.C)(),s=(0,e.useMemo)(()=>(function(a=""){let b=a?`${a.replace(/\/$/,"")}/v1`:"/v1";return{base:b,chat:`${b}/chat/completions`,models:`${b}/models`,health:a?`${a.replace(/\/$/,"")}/api/health`:"/api/health"}})(m),[m]),t=async()=>{c(!0);try{let a=await fetch("/api/dashboard/endpoint",{cache:"no-store"}),b=await a.json();a.ok&&p(a=>({...a,...b}))}catch(a){console.log("Error loading endpoint settings:",a)}finally{c(!1)}},u=async(a,b="")=>{g(b);try{let b=await fetch("/api/dashboard/endpoint",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();b.ok?p(a=>({...a,...c})):alert(c.error||"Cập nhật thiết lập thất bại")}catch(a){console.log("Error updating endpoint settings:",a),alert("Cập nhật thiết lập thất bại")}finally{g("")}};return b?(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]}):(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Endpoint"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Endpoint nội bộ để tool gọi BlueRouter theo chuẩn OpenAI-compatible. Cloudflare Tunnel v\xe0 Tailscale đ\xe3 được bỏ khỏi trang n\xe0y để dashboard load nhẹ hơn."})]}),(0,d.jsxs)(h.$n,{onClick:t,variant:"ghost",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"refresh"}),"L\xe0m mới"]})]}),(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"mb-4 flex items-start gap-3",children:[(0,d.jsx)("div",{className:"rounded-2xl bg-primary/10 p-3 text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"hub"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:"Th\xf4ng tin API endpoint"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"D\xf9ng c\xe1c URL dưới đ\xe2y cho LibreChat, VSCode, Copilot proxy, Antigravity hoặc tool OpenAI-compatible kh\xe1c."})]})]}),(0,d.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,d.jsx)(k,{label:"Base URL",value:s.base,copiedKey:"base",copied:q,copy:r}),(0,d.jsx)(k,{label:"Chat Completions",value:s.chat,copiedKey:"chat",copied:q,copy:r}),(0,d.jsx)(k,{label:"Models",value:s.models,copiedKey:"models",copied:q,copy:r}),(0,d.jsx)(k,{label:"Health",value:s.health,copiedKey:"health",copied:q,copy:r})]}),(0,d.jsxs)("p",{className:"mt-4 text-xs text-text-muted",children:["Machine ID: ",(0,d.jsx)("code",{className:"rounded bg-surface px-1.5 py-0.5",children:a||"unknown"})]})]}),(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("div",{className:"mb-4 flex items-start gap-3",children:[(0,d.jsx)("div",{className:"rounded-2xl bg-primary/10 p-3 text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"bolt"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-xl font-semibold text-text-main",children:"Token Saver"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Giảm token cho output từ tool v\xe0 phản hồi model. Bật/tắt tại đ\xe2y kh\xf4ng cần load API keys, provider hay tunnel status."})]})]}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-xl border border-border p-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"RTK tool output compression"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"N\xe9n output của git/grep/ls/tree/logs trước khi gửi v\xe0o model."})]}),(0,d.jsx)(h.lM,{checked:!1!==o.rtkEnabled,onChange:a=>u({rtkEnabled:a},"rtkEnabled"),disabled:"rtkEnabled"===f})]}),(0,d.jsxs)("div",{className:"rounded-xl border border-border p-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"font-semibold text-text-main",children:"Caveman output compression"}),(0,d.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Th\xeam style prompt để model trả lời ngắn hơn, giảm output token."})]}),(0,d.jsx)(h.lM,{checked:!!o.cavemanEnabled,onChange:a=>u({cavemanEnabled:a},"cavemanEnabled"),disabled:"cavemanEnabled"===f})]}),o.cavemanEnabled&&(0,d.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:j.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>u({cavemanLevel:a.id},"cavemanLevel"),title:a.desc,className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition ${o.cavemanLevel===a.id?"border-primary bg-primary text-white":"border-border text-text-muted hover:border-primary hover:text-primary"}`,children:a.label},a.id))})]})]})]})]})}k.propTypes={label:g().string.isRequired,value:g().string.isRequired,copiedKey:g().string.isRequired,copied:g().string,copy:g().func.isRequired},l.propTypes={machineId:g().string}},51747:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"D:\\\\bluerouter\\\\src\\\\app\\\\(dashboard)\\\\dashboard\\\\endpoint\\\\EndpointPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"D:\\bluerouter\\src\\app\\(dashboard)\\dashboard\\endpoint\\EndpointPageClient.js","default")},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.DATA_DIR,"machine-id"),m=h().join(k.DATA_DIR,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.DATA_DIR,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},80456:(a,b,c)=>{Promise.resolve().then(c.bind(c,43173))},87250:(a,b,c)=>{"use strict";c.d(b,{D:()=>e});var d=c(54603);async function e(){return await (0,d.Xj)()}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=2944,exports.ids=[2944],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},62409:(a,b,c)=>{c.d(b,{v:()=>f});var d=c(92990);let e="https://prod.us-east-1.auth.desktop.kiro.dev";class f{async registerClient(a="us-east-1"){let b=`https://oidc.${a}.amazonaws.com/client/register`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientName:d.Tx.clientName,clientType:d.Tx.clientType,scopes:d.Tx.scopes,grantTypes:d.Tx.grantTypes,issuerUrl:d.Tx.issuerUrl})});if(!c.ok){let a=await c.text();throw Error(`Failed to register client: ${a}`)}let e=await c.json();return{clientId:e.clientId,clientSecret:e.clientSecret,clientSecretExpiresAt:e.clientSecretExpiresAt}}async startDeviceAuthorization(a,b,c,d="us-east-1"){let e=`https://oidc.${d}.amazonaws.com/device_authorization`,f=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,startUrl:c})});if(!f.ok){let a=await f.text();throw Error(`Failed to start device authorization: ${a}`)}let g=await f.json();return{deviceCode:g.deviceCode,userCode:g.userCode,verificationUri:g.verificationUri,verificationUriComplete:g.verificationUriComplete,expiresIn:g.expiresIn,interval:g.interval||5}}async pollDeviceToken(a,b,c,d="us-east-1"){let e=`https://oidc.${d}.amazonaws.com/token`,f=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,deviceCode:c,grantType:"urn:ietf:params:oauth:grant-type:device_code"})}),g=await f.json();return!f.ok||g.error?{success:!1,error:g.error,errorDescription:g.error_description,pending:"authorization_pending"===g.error||"slow_down"===g.error}:{success:!0,tokens:{accessToken:g.accessToken,refreshToken:g.refreshToken,expiresIn:g.expiresIn,tokenType:g.tokenType}}}buildSocialLoginUrl(a,b,c){return`${e}/login?idp=${"google"===a?"Google":"Github"}&redirect_uri=${encodeURIComponent("kiro://kiro.kiroAgent/authenticate-success")}&code_challenge=${b}&code_challenge_method=S256&state=${c}&prompt=select_account`}async exchangeSocialCode(a,b){let c=await fetch(`${e}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,code_verifier:b,redirect_uri:"kiro://kiro.kiroAgent/authenticate-success"})});if(!c.ok){let a=await c.text();throw Error(`Token exchange failed: ${a}`)}let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken,profileArn:d.profileArn,expiresIn:d.expiresIn||3600}}async refreshToken(a,b={}){let{authMethod:c,clientId:d,clientSecret:f,region:g}=b;if(d&&f){let b=`https://oidc.${g||"us-east-1"}.amazonaws.com/token`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:d,clientSecret:f,refreshToken:a,grantType:"refresh_token"})});if(!c.ok){let a=await c.text();throw Error(`Token refresh failed: ${a}`)}let e=await c.json();return{accessToken:e.accessToken,refreshToken:e.refreshToken||a,expiresIn:e.expiresIn}}let h=await fetch(`${e}/refreshToken`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:a})});if(!h.ok){let a=await h.text();throw Error(`Token refresh failed: ${a}`)}let i=await h.json();return{accessToken:i.accessToken,refreshToken:i.refreshToken||a,profileArn:i.profileArn,expiresIn:i.expiresIn||3600}}async validateImportToken(a){if(!a.startsWith("aorAAAAAG"))throw Error("Invalid token format. Token should start with aorAAAAAG...");try{let b=await this.refreshToken(a);return{accessToken:b.accessToken,refreshToken:b.refreshToken||a,profileArn:b.profileArn,expiresIn:b.expiresIn,authMethod:"imported"}}catch(a){throw Error(`Token validation failed: ${a.message}`)}}async listAvailableModels(a,b){let c=await fetch("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.ListAvailableModels",Authorization:`Bearer ${a}`,Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:b})});if(!c.ok){let a=await c.text();throw Error(`Failed to list models: ${a}`)}return((await c.json()).models||[]).map(a=>({id:a.modelId,name:a.modelName||a.modelId,description:a.description,rateMultiplier:a.rateMultiplier,rateUnit:a.rateUnit,maxInputTokens:a.tokenLimits?.maxInputTokens||0}))}extractEmailFromJWT(a){try{let b=a.split(".");if(3!==b.length)return null;let c=b[1];for(;c.length%4;)c+="=";let d=JSON.parse(atob(c.replace(/-/g,"+").replace(/_/g,"/")));return d.email||d.preferred_username||d.sub}catch{return null}}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92990:(a,b,c)=>{c.d(b,{DI:()=>g,Hp:()=>i,LT:()=>h,MZ:()=>r,Nl:()=>u,Nu:()=>n,OV:()=>f,Tx:()=>o,WN:()=>p,Ww:()=>v,YT:()=>l,ZL:()=>k,cD:()=>m,f7:()=>t,hF:()=>j,lB:()=>s,t:()=>q});var d=c(21820);function e(){let a=(0,d.platform)(),b=(0,d.arch)();return"darwin"===a?"arm64"===b?2:1:"linux"===a?"arm64"===b?4:3:5*("win32"===a)}let f={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},g={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",revocationUrl:"https://auth.openai.com/api/accounts/oauth/revoke",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},h={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},i={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},j={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},k={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},l={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",revocationUrl:"https://oauth2.googleapis.com/revoke",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:9,platform:e(),pluginType:2})};function m(){return{ideType:9,platform:e(),pluginType:2}}let n={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},o={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},p={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users/<user>/Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},q={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},r={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},s={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},t={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},u={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3},v=3e5}};
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=3609,exports.ids=[3609],exports.modules={8834:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});var c={VALID_LOADERS:function(){return e},imageConfigDefault:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=["default","imgix","cloudinary","akamai","custom"],f={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},19226:(a,b,c)=>{a.exports=c(81155).vendored.contexts.RouterContext},20503:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},25374:(a,b)=>{function c({widthInt:a,heightInt:b,blurWidth:d,blurHeight:e,blurDataURL:f,objectFit:g}){let h=d?40*d:a,i=e?40*e:b,j=h&&i?`viewBox='0 0 ${h} ${i}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${j}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${f}'/%3E%3C/svg%3E`}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getImageBlurSvg",{enumerable:!0,get:function(){return c}})},26201:(a,b,c)=>{a.exports=c(81155).vendored.contexts.ImageConfigContext},28039:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(92873),e=c(44217);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//"))if(b.includes("/_next/static/immutable")&&!(0,e.getAssetToken)())h=void 0;else{let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
2
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,d.findClosestQuality)(g,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${i}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},38895:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getImgProps",{enumerable:!0,get:function(){return j}});let d=c(44217),e=c(25374),f=c(8834),g=["-moz-initial","fill","none","scale-down",void 0];function h(a){return void 0!==a.default}function i(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function j({src:a,sizes:b,unoptimized:c=!1,priority:k=!1,preload:l=!1,loading:m,className:n,quality:o,width:p,height:q,fill:r=!1,style:s,overrideSrc:t,onLoad:u,onLoadingComplete:v,placeholder:w="empty",blurDataURL:x,fetchPriority:y,decoding:z="async",layout:A,objectFit:B,objectPosition:C,lazyBoundary:D,lazyRoot:E,...F},G){var H;let I,J,K,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=G,P=L||f.imageConfigDefault;if("allSizes"in P)I=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),c=P.qualities?.sort((a,b)=>a-b);I={...P,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===O)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let Q=F.loader||O;delete F.loader,delete F.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===I.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
3
+ Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(A){"fill"===A&&(r=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];a&&(s={...s,...a});let c={responsive:"100vw",fill:"100vw"}[A];c&&!b&&(b=c)}let S="",T=i(p),U=i(q);if((H=a)&&"object"==typeof H&&(h(H)||void 0!==H.src)){let b=h(a)?a.default:a;if(!b.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(J=b.blurWidth,K=b.blurHeight,x=x||b.blurDataURL,S=b.src,!r)if(T||U){if(T&&!U){let a=T/b.width;U=Math.round(b.height*a)}else if(!T&&U){let a=U/b.height;T=Math.round(b.width*a)}}else T=b.width,U=b.height}let V=!k&&!l&&("lazy"===m||void 0===m);(!(a="string"==typeof a?a:S)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,V=!1),I.unoptimized&&(c=!0),R&&!I.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let W=i(o),X=Object.assign(r?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:B,objectPosition:C}:{},M?{}:{color:"transparent"},s),Y=N||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:J,blurHeight:K,blurDataURL:x||"",objectFit:X.objectFit})}")`:`url("${w}")`,Z=g.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){if(b.startsWith("/")&&!b.startsWith("//")){let a=(0,d.getDeploymentId)();if(b.includes("/_next/static/immutable")&&!(0,d.getAssetToken)())a=void 0;else if(a){let c=b.indexOf("?");if(-1!==c){let d=new URLSearchParams(b.slice(c+1));d.get("dpl")||(d.append("dpl",a),b=b.slice(0,c)+"?"+d.toString())}else b+=`?dpl=${a}`}}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:I,src:a,unoptimized:c,width:T,quality:W,sizes:b,loader:Q}),aa=V?"lazy":m;return{props:{...F,loading:aa,fetchPriority:y,width:T,height:U,decoding:z,className:n,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:t||_.src},meta:{unoptimized:c,preload:l||k,placeholder:w,fill:r}}}},43014:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},49646:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(40399),g=c(24814),h=c(48249),i=g._(c(67484)),j=f._(c(98917)),k=c(89719);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},67095:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(40399),g=c(38895),h=c(73836),i=f._(c(28039));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},73836:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Image",{enumerable:!0,get:function(){return v}});let d=c(40399),e=c(24814),f=c(48249),g=e._(c(67484)),h=d._(c(74429)),i=d._(c(49646)),j=c(38895),k=c(8834),l=c(26201),m=c(19226),n=d._(c(28039)),o=c(57272),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=g.useEffect,t=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:t,onLoadingCompleteRef:u,setBlurComplete:v,setShowAltText:w,sizesInput:x,onLoad:y,onError:z,...A},B)=>{let C=(0,g.useRef)(!1),D=(0,g.useRef)(null);s(()=>{let{current:a}=C,{current:b}=D;a||null===b||(z&&(b.src=b.src),b.complete&&q(b,l,t,u,v,n,x),C.current=!0)},[a,l,t,u,z,n,x]);let E=(0,o.useMergedRef)(B,D);return(0,f.jsx)("img",{...A,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:E,onLoad:a=>{q(a.currentTarget,l,t,u,v,n,x)},onError:a=>{w(!0),"empty"!==l&&v(!0),z&&z(a)}})});function u({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let v=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,s]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(t,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:s,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(u,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},81220:(a,b,c)=>{c.d(b,{default:()=>e.a});var d=c(67095),e=c.n(d)},89719:(a,b,c)=>{a.exports=c(81155).vendored.contexts.HeadManagerContext},89768:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},92305:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},92873:(a,b)=>{function c(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"findClosestQuality",{enumerable:!0,get:function(){return c}})},98917:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}});let d=c(67484),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(),e(),null}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=3738,exports.ids=[3738],exports.modules={4088:(a,b,c)=>{c.d(b,{$4:()=>f,$L:()=>g,W_:()=>h,mO:()=>e});var d=c(42889);function e(a){if(!a)return"-";try{let b="string"==typeof a?new Date(a):a,c=new Date,d=b-c;if(d<=0)return"-";let e=Math.ceil(d/6e4);if(e<60)return`${e}m`;let f=Math.floor(e/60),g=e%60;if(f<24)return`${f}h ${g}m`;let h=Math.floor(f/24);return`${h}d ${f%24}h ${g}m`}catch(a){return"-"}}function f(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function g(a){return a?.remaining!==void 0?Math.max(0,Math.round(a.remaining)):a?.remainingPercentage!==void 0?Math.round(a.remainingPercentage):f(a?.used,a?.total)}function h(a,b){if(!b||"object"!=typeof b)return[];let c=[];try{switch(a.toLowerCase()){case"github":default:b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"antigravity":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"codex":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,remaining:b.remaining,resetAt:b.resetAt||null})});break;case"kiro":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"claude":b.message?c.push({name:"error",used:0,total:0,resetAt:null,message:b.message}):b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,remaining:b.remaining,remainingPercentage:b.remainingPercentage,resetAt:b.resetAt||null})}),c.some(a=>/fable/i.test(a.name))||c.push({name:"weekly Fable 5 (7d)",used:0,total:100,remaining:100,remainingPercentage:100,resetAt:null})}}catch(b){return console.error(`Error parsing quota data for ${a}:`,b),[]}let e=(0,d.KC)(a);if(e.length>0){let a=new Map(e.map((a,b)=>[a.id,b]));c.sort((b,c)=>{let d=b.modelKey||b.name,e=c.modelKey||c.name;return(a.get(d)??999)-(a.get(e)??999)})}return c}},20503:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},29413:(a,b,c)=>{c.d(b,{A:()=>g});var d=c(48249),e=c(67484),f=c(4088);function g({quotas:a=[],compact:b=!1,sortMode:c="default",showSortLabel:h=!1}){let[i,j]=(0,e.useState)(1),k=(0,e.useMemo)(()=>a.map((a,b)=>({...a,index:b,remaining:(0,f.$L)(a)})),[a]),l=(0,e.useMemo)(()=>"remaining-asc"===c?[...k].sort((a,b)=>a.remaining-b.remaining||a.name.localeCompare(b.name)):"remaining-desc"===c?[...k].sort((a,b)=>b.remaining-a.remaining||a.name.localeCompare(b.name)):k,[k,c]),m=Math.max(1,Math.ceil(l.length/10));if(!a||0===a.length)return null;let n=l.slice((i-1)*10,10*i),o=0===l.length?0:(i-1)*10+1,p=Math.min(10*i,l.length),q=b?"py-1 px-1.5":"py-2 px-3",r=b?"text-[11px]":"text-sm",s=b?"text-[11px]":"text-sm",t=b?"text-[10px] leading-tight":"text-xs";return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("div",{className:"text-[10px] text-text-muted",children:[l.length," quota",l.length>1?"s":""]}),h&&(0,d.jsx)("div",{className:"rounded-md border border-black/10 bg-black/[0.02] px-2 py-1 text-[10px] text-text-muted dark:border-white/10 dark:bg-white/[0.03]",children:"Sorted by account remaining"})]}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsx)("table",{className:"w-full table-fixed text-left",children:(0,d.jsx)("tbody",{children:n.map(a=>{var c;let e=(c=a.remaining)>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:c>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},g=(0,f.mO)(a.resetAt),h=function(a){if(!a)return null;try{let b=new Date(a),c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()),e=new Date(d);e.setDate(e.getDate()+1);let f="";f=b>=d&&b<e?"Today":b>=e&&b<new Date(e.getTime()+864e5)?"Tomorrow":b.toLocaleDateString("en-US",{month:"short",day:"numeric"});let g=b.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${f}, ${g}`}catch{return null}}(a.resetAt);return(0,d.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,d.jsx)("td",{className:`${q} w-[30%]`,children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-[10px] shrink-0",children:e.emoji}),(0,d.jsx)("span",{className:`${r} font-medium text-text-primary truncate`,children:a.name})]})}),(0,d.jsx)("td",{className:`${q} w-[45%]`,children:(0,d.jsxs)("div",{className:b?"space-y-1":"space-y-1.5",children:[(0,d.jsx)("div",{className:`${b?"h-1":"h-1.5"} rounded-full overflow-hidden border ${e.bgLight} ${0===a.remaining?"border-black/10 dark:border-white/10":"border-transparent"}`,children:(0,d.jsx)("div",{className:`h-full transition-all duration-300 ${e.bg}`,style:{width:`${Math.min(a.remaining,100)}%`}})}),(0,d.jsxs)("div",{className:`flex items-center justify-between ${b?"text-[10px]":"text-xs"}`,children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[a.used.toLocaleString()," / ",a.total>0?a.total.toLocaleString():"∞"]}),(0,d.jsxs)("span",{className:`font-medium ${e.text}`,children:[a.remaining,"%"]})]})]})}),(0,d.jsx)("td",{className:`${q} w-[25%]`,children:"-"!==g||h?b?(0,d.jsx)("div",{className:`${s} text-text-primary font-medium truncate`,title:h||"",children:"-"!==g?`in ${g}`:h}):(0,d.jsxs)("div",{className:"space-y-0.5",children:["-"!==g&&(0,d.jsxs)("div",{className:`${s} text-text-primary font-medium`,children:["in ",g]}),h&&(0,d.jsx)("div",{className:`${t} text-text-muted`,children:h})]}):(0,d.jsx)("div",{className:`${s} text-text-muted italic`,children:"N/A"})})]},`${a.name}-${a.index}`)})})})}),m>1&&(0,d.jsxs)("div",{className:"rounded-md border border-black/10 bg-black/[0.02] px-2 py-1.5 dark:border-white/10 dark:bg-white/[0.03]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 text-[10px] text-text-muted",children:[(0,d.jsxs)("span",{children:["Showing ",o,"-",p," of ",l.length]}),(0,d.jsxs)("span",{children:["Page ",i," / ",m]})]}),(0,d.jsxs)("div",{className:"mt-1.5 flex items-center justify-end gap-1",children:[(0,d.jsx)("button",{type:"button",onClick:()=>j(a=>Math.max(1,a-1)),disabled:1===i,className:"flex h-6 items-center rounded-md border border-black/10 px-2 text-[10px] text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Prev"}),(0,d.jsx)("button",{type:"button",onClick:()=>j(a=>Math.min(m,a+1)),disabled:i===m,className:"flex h-6 items-center rounded-md border border-black/10 px-2 text-[10px] text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Next"})]})]})]})}},43014:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},89768:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},92305:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(19121),h=c(3295);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}}};
@@ -0,0 +1,18 @@
1
+ "use strict";exports.id=3767,exports.ids=[3767],exports.modules={8578:(a,b,c)=>{let d=c(33873),e=c(29021),f=c(15296),{execFileSync:g}=c(79646),{MITM_DIR:h}=c(82193),i=d.join(h,"rootCA.key"),j=d.join(h,"rootCA.crt"),k=d.join(h,"rootCA.csr"),l=d.join(h,"rootCA.csr.cnf"),m=d.join(h,"rootCA.pending.key"),n=d.join(h,"backup");function o(){e.existsSync(h)||e.mkdirSync(h,{recursive:!0})}function p(a,b){let c=String(a||"").trim();if(!c)throw Error(`${b} is empty`);return`${c}
2
+ `}function q(a){return f.md.sha256.create().update(f.pki.publicKeyToPem(a),"utf8").digest().toHex()}function r(a){let b=a.getExtension("basicConstraints"),c=a.getExtension("keyUsage");return!!b?.cA&&(!c||!0===c.keyCertSign)}function s(a,b){if(q(a.publicKey)!==q(function(a){if(!a?.n||!a?.e)throw Error("Only RSA private keys are supported for MITM Root CA");return f.pki.setRsaPublicKey(a.n,a.e)}(b)))throw Error("Certificate public key does not match private key")}function t(){o();let a=e.existsSync(i),b=e.existsSync(j);if(!a&&!b)return null;e.mkdirSync(n,{recursive:!0});let c=new Date().toISOString().replace(/[:.]/g,"-"),f={key:d.join(n,`rootCA.${c}.key`),cert:d.join(n,`rootCA.${c}.crt`)};return a&&e.copyFileSync(i,f.key),b&&e.copyFileSync(j,f.cert),f}function u(a,b="Certificate"){try{return f.pki.certificateFromPem(p(a,b))}catch(a){throw Error(`${b} is not a valid PEM certificate: ${a.message}`)}}function v(a,b="Private key"){try{return f.pki.privateKeyFromPem(p(a,b))}catch(a){throw Error(`${b} is not a valid PEM private key: ${a.message}`)}}function w(a){try{let b=f.pki.certificateFromPem(e.readFileSync(a,"utf8")),c=new Date(Date.now()+2592e6);return b.validity.notAfter<c}catch{return!0}}function x(){let a=e.existsSync(j),b=e.existsSync(i),c={certExists:a,keyExists:b,csrExists:e.existsSync(k),pendingKeyExists:e.existsSync(m),certPath:j,keyPath:i,csrPath:k,pendingKeyPath:m};if(!a)return c;try{let a=u(e.readFileSync(j,"utf8")),b=a.subject.attributes.map(a=>`${a.shortName||a.name}=${a.value}`).join(", "),d=a.issuer.attributes.map(a=>`${a.shortName||a.name}=${a.value}`).join(", ");c.subject=b,c.issuer=d,c.serialNumber=a.serialNumber,c.notBefore=a.validity.notBefore.toISOString(),c.notAfter=a.validity.notAfter.toISOString(),c.expiredOrExpiringSoon=w(j),c.isCa=r(a),c.isSelfSigned=b===d,c.fingerprint=q(a.publicKey)}catch(a){c.error=a.message}return c}function y(a,b){return String(a||b||"").replace(/[\r\n]+/g," ").replace(/[\\]/g,"\\\\").trim()||String(b||"")}a.exports={generateRootCA:async function a(){let a=e.existsSync(i)&&e.existsSync(j);if(a&&!w(j))return console.log("✅ Root CA already exists"),{key:i,cert:j};if(a){console.log("\uD83D\uDD10 Root CA expired or expiring soon — regenerating...");try{e.unlinkSync(i)}catch{}try{e.unlinkSync(j)}catch{}}o(),console.log("\uD83D\uDD10 Generating Root CA certificate...");let b=f.pki.rsa.generateKeyPair(2048),c=f.pki.createCertificate();c.publicKey=b.publicKey,c.serialNumber="01",c.validity.notBefore=new Date,c.validity.notAfter=new Date,c.validity.notAfter.setFullYear(c.validity.notBefore.getFullYear()+10);let d=[{name:"commonName",value:"Blue Router Gateway Root CA"},{name:"organizationName",value:"Blue Router Gateway"},{name:"countryName",value:"VN"}];c.setSubject(d),c.setIssuer(d),c.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),c.sign(b.privateKey,f.md.sha256.create());let g=f.pki.privateKeyToPem(b.privateKey),h=f.pki.certificateToPem(c);return e.writeFileSync(i,g,{mode:384}),e.writeFileSync(j,h),console.log("✅ Root CA generated successfully"),{key:i,cert:j}},importRootCAPair:function({certPem:a,keyPem:b}){o();let c=p(a,"Certificate"),d=p(b,"Private key"),f=u(c);if(s(f,v(d)),!r(f))throw Error("Certificate must be a CA certificate with basicConstraints CA:true and keyCertSign usage");if(f.validity.notAfter<new Date)throw Error("Certificate is already expired");let g=t();e.writeFileSync(i,d,{mode:384}),e.writeFileSync(j,c);try{e.unlinkSync(k)}catch{}try{e.unlinkSync(m)}catch{}return{key:i,cert:j,backup:g,info:x()}},generateRootCACsr:function({commonName:a,organizationName:b,countryName:c}={}){if(o(),function(){try{return g("openssl",["version"],{stdio:"ignore"}),!0}catch{return!1}}())return function({commonName:a,organizationName:b,countryName:c}={}){let d=y(a,"Fujinet Bluerouter MITM CA"),f=y(b,"Fujinet"),h=y(c,"VN").slice(0,2).toUpperCase()||"VN",i=`[ req ]
3
+ default_bits = 4096
4
+ prompt = no
5
+ distinguished_name = dn
6
+ req_extensions = v3_ca
7
+
8
+ [ dn ]
9
+ C = ${h}
10
+ O = ${f}
11
+ OU = AI Gateway
12
+ CN = ${d}
13
+
14
+ [ v3_ca ]
15
+ basicConstraints = critical, CA:true, pathlen:0
16
+ keyUsage = critical, keyCertSign, cRLSign
17
+ subjectKeyIdentifier = hash
18
+ `,j=t();e.writeFileSync(l,i,"utf8");try{g("openssl",["genrsa","-out",m,"4096"],{stdio:["ignore","pipe","pipe"]}),g("openssl",["req","-new","-key",m,"-out",k,"-config",l],{stdio:["ignore","pipe","pipe"]});try{e.chmodSync(m,384)}catch{}return{csr:k,pendingKey:m,config:l,backup:j}}catch(b){try{e.unlinkSync(m)}catch{}try{e.unlinkSync(k)}catch{}let a=b?.stderr?String(b.stderr).trim():"";throw Error(`OpenSSL CSR generation failed${a?`: ${a}`:""}`)}}({commonName:a,organizationName:b,countryName:c});let d=[{name:"commonName",value:String(a||"Fujinet Bluerouter MITM CA").trim()||"Fujinet Bluerouter MITM CA"},{name:"organizationName",value:String(b||"Fujinet").trim()||"Fujinet"},{name:"organizationalUnitName",value:"AI Gateway"}],h=String(c||"VN").trim().slice(0,2).toUpperCase();h&&d.push({name:"countryName",value:h});let i=f.pki.rsa.generateKeyPair(4096),j=f.pki.createCertificationRequest();if(j.publicKey=i.publicKey,j.setSubject(d),j.sign(i.privateKey,f.md.sha256.create()),!j.verify())throw Error("Generated CSR failed verification");let n=t(),p=f.pki.certificationRequestToPem(j),q=f.pki.privateKeyToPem(i.privateKey);return e.writeFileSync(m,q,{mode:384}),e.writeFileSync(k,p),{csr:k,pendingKey:m,backup:n}},importSignedRootCACert:function({certPem:a}){if(o(),!e.existsSync(m))throw Error("No pending CSR private key found. Generate a CSR first.");let b=p(a,"Signed certificate"),c=u(b,"Signed certificate");if(s(c,v(e.readFileSync(m,"utf8"),"Pending private key")),!r(c))throw Error("Signed certificate must be a CA certificate with CA:true and keyCertSign usage");if(c.validity.notAfter<new Date)throw Error("Signed certificate is already expired");let d=t();e.copyFileSync(m,i);try{e.chmodSync(i,384)}catch{}e.writeFileSync(j,b);try{e.unlinkSync(k)}catch{}try{e.unlinkSync(m)}catch{}return{key:i,cert:j,backup:d,info:x()}},loadRootCA:function(){if(!e.existsSync(i)||!e.existsSync(j))throw Error("Root CA not found. Generate it first.");let a=e.readFileSync(i,"utf8"),b=e.readFileSync(j,"utf8");return{key:f.pki.privateKeyFromPem(a),cert:f.pki.certificateFromPem(b)}},generateLeafCert:function(a,b){let c=f.pki.rsa.generateKeyPair(2048),d=f.pki.createCertificate();return d.publicKey=c.publicKey,d.serialNumber=Math.floor(1e6*Math.random()).toString(),d.validity.notBefore=new Date,d.validity.notAfter=new Date,d.validity.notAfter.setFullYear(d.validity.notBefore.getFullYear()+1),d.setSubject([{name:"commonName",value:a}]),d.setIssuer(b.cert.subject.attributes),d.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:a},{type:2,value:`*.${a}`}]}]),d.sign(b.key,f.md.sha256.create()),{key:f.pki.privateKeyToPem(c.privateKey),cert:f.pki.certificateToPem(d)}},isCertExpired:w,readRootCAInfo:x,ROOT_CA_CERT_PATH:j,ROOT_CA_KEY_PATH:i,ROOT_CA_CSR_PATH:k,ROOT_CA_PENDING_KEY_PATH:m}},9588:(a,b,c)=>{c.d(b,{Cy:()=>i,I8:()=>k,Tv:()=>v,UX:()=>p,aV:()=>o,bz:()=>r,hH:()=>u,ny:()=>s,oW:()=>t,s0:()=>m,ub:()=>n,vZ:()=>q});var d=c(65573),e=c(23211),f=c(89718),g=c(33792),h=c(90389);let i="dashboard_view_mode";function j(a){return String(a||"").trim().toLowerCase()}function k(a){return j(a)}function l(a={}){return[a.ldapUsername,a.ldapEmail,a.ldapName,a.oidcEmail,a.oidcName,a.localUsername,a.username,a.email].map(j).filter(Boolean)}function m(a={}){let b=l(a),c=b[0]||"local",d=a.ldapName||a.ldapEmail||a.oidcName||a.oidcEmail||a.localUsername||c;return{userId:c,displayName:d,loginMethod:a.oidc?"OIDC":a.ldap?"LDAP":"Local",candidates:b}}function n(a={},b={}){var c;if(!b?.authenticated)return!1;if(b.local||!b.ldap&&!b.oidc||b.role===h.hS.ADMIN||!0===b.ldapIsAdmin)return!0;let d=Array.isArray(c=a.ldapAllowedUsers)?c.map(j).filter(Boolean):String(c||"").split(/[,\n]/).map(j).filter(Boolean);return 0!==d.length&&l(b).some(a=>d.includes(a))}function o(a={},b={}){return!(!b?.authenticated||n(a,b))&&(b.role===h.hS.MONITOR_ADMIN||!0===b.ldapIsMonitorAdmin)}function p(a={},b={}){return!(!b?.authenticated||n(a,b)||o(a,b))&&(b.role===h.hS.AI_GATEWAYS_MONITOR||!0===b.ldapIsAiGatewaysMonitor)}function q(a={},b={}){return b?.authenticated?n(a,b)?h.hS.ADMIN:o(a,b)?h.hS.MONITOR_ADMIN:p(a,b)?h.hS.AI_GATEWAYS_MONITOR:h.hS.USER:h.hS.GUEST}function r(a={}){return!0===a.isAdmin||!0===a.isMonitorAdmin}async function s(){let a=await (0,f.mt)(),b=await (0,d.UL)(),c=await (0,g.dY)(b.get("auth_token")?.value);if(!c?.authenticated)return{authenticated:!1,isAdmin:!1,actualIsAdmin:!1,showAsUser:!1,canToggleUserMode:!1,isMonitorAdmin:!1,isAiGatewaysMonitor:!1,role:h.hS.GUEST,actualRole:h.hS.GUEST,userId:"",displayName:"Guest",loginMethod:"None",settings:{...a,requireLogin:!0},session:null};let e=m(c||{}),j=q(a,c||{}),k=j===h.hS.ADMIN,l=k&&b.get(i)?.value==="user",n=l?h.hS.USER:j,o=n===h.hS.ADMIN,p=n===h.hS.MONITOR_ADMIN,r=n===h.hS.AI_GATEWAYS_MONITOR;return{authenticated:!0,isAdmin:o,actualIsAdmin:k,showAsUser:l,canToggleUserMode:k,isMonitorAdmin:p,isAiGatewaysMonitor:r,role:n,actualRole:j,canManageApiKeys:o||p,canUseMonitorAdminTabs:o||p,canViewAllAnalytics:o||p||r,...e,settings:{...a,requireLogin:!0},session:c}}async function t(){let a=await s();return a.authenticated?{access:a,response:null}:{access:a,response:e.NextResponse.json({error:"Authentication required"},{status:401})}}async function u(a={}){let{allowMonitorAdmin:b=!1}=a||{},{access:c,response:d}=await t();return d?{access:c,response:d}:c.isAdmin||b&&c.isMonitorAdmin?{access:c,response:null}:{access:c,response:e.NextResponse.json({error:"Admin access required"},{status:403})}}function v(a,b){if(!a?.authenticated||!b)return!1;if(r(a))return!0;let c=j(a.userId),d=j(b.ownerUser),e=j(b.createdByUser);return!!c&&(d===c||e===c)}},17509:(a,b,c)=>{c.d(b,{V:()=>o});var d=c(91356),e=c(80700),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(44893),k=c(69052);async function l(a,b,c){let l,{protected:m,header:n,payload:o}=a,p={};if(m&&(p=(0,h.OX)(m,f.Ye,"JWS Protected Header is invalid")),void 0!==n){if(!(0,i.fz)(p,n))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");l={...p,...n}}else l=p;let q=(0,j.nI)(f.Ye,j.qc,b[1],p,l),r=!0;if(q.includes("b64")&&"boolean"!=typeof(r=p.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:s}=l;if("string"!=typeof s||!s)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(b[0]&&!b[0].has(s))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(r){if("string"!=typeof o)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof o&&!(o instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let t=!1;"function"==typeof c&&(c=await c(p,a),t=!0);let u=(0,e.q)(s),v=(0,g.xW)(void 0!==m?(0,g.lF)(m):new Uint8Array,(0,g.lF)("."),"string"==typeof o?r?b[2]??=(0,h.Fo)(o,"payload",f.Ye):g.Rd.encode(o):o),w=(0,h.h2)(a.signature,"signature",f.Ye),x=await (0,k.d)(u,c,"verify");if(!await (0,d.M)(u,x,w,v))throw new f.h2;return[r?(0,h.h2)(o,"payload",f.Ye):"string"==typeof o?g.Rd.encode(o):o,p,r,x,t]}async function m(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");return l({payload:e,protected:d,signature:h},b,c)}var n=c(17347);async function o(a,b,c){let d=await m(a,[c&&(0,j.Fw)("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,n.k6)(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}},33792:(a,b,c)=>{c.d(b,{Dc:()=>p,OZ:()=>s,YK:()=>n,dY:()=>q,tm:()=>r});var d=c(84433),e=c(17509),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(49120);let m=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=i().join(l.DATA_DIR,"jwt-secret");try{return g().readFileSync(a,"utf8").trim()}catch{}g().mkdirSync(l.DATA_DIR,{recursive:!0});let b=k().randomBytes(32).toString("hex");return g().writeFileSync(a,b,{mode:384}),b}());function n(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function o(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("86400s").sign(m)}async function p(a){if(!a)return!1;try{return await (0,e.V)(a,m),!0}catch{return!1}}async function q(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,m);return b}catch{return null}}async function r(a,b,c={}){let d=await o(c);a.set("auth_token",d,{httpOnly:!0,secure:n(b),sameSite:"lax",path:"/",maxAge:86400})}function s(a){a.delete("auth_token")}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},82193:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(21820),g="bluerouter";function h(){return"win32"===process.platform?e.join(process.env.APPDATA||e.join(f.homedir(),"AppData","Roaming"),g):e.join(f.homedir(),`.${g}`)}let i=function(){let a=process.env.DATA_DIR;if(!a)return h();try{return d.mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${g}`),h();throw b}}(),j=e.join(i,"mitm");a.exports={DATA_DIR:i,MITM_DIR:j}},85074:(a,b,c)=>{let d=c(29021),e=c(91645),f=c(55511),g=c(15296),{generateRootCA:h,loadRootCA:i,readRootCAInfo:j,ROOT_CA_CERT_PATH:k,ROOT_CA_KEY_PATH:l}=c(8578);function m(a){return g.md.sha256.create().update(g.pki.publicKeyToPem(a),"utf8").digest().toHex()}function n(){let a=d.existsSync(k),b=d.existsSync(l);if(!a&&!b)return{exists:!1};if(!a||!b)throw Error("Root CA certificate/private key pair is incomplete; repair it from Advanced CA management");let c=i(),e=m(c.cert.publicKey);if(e!==m(function(a){if(!a?.n||!a?.e)throw Error("Audit Proxy supports RSA Root CA private keys only");return g.pki.setRsaPublicKey(a.n,a.e)}(c.key)))throw Error("Root CA certificate does not match its private key");let f=c.cert.getExtension("basicConstraints"),h=c.cert.getExtension("keyUsage");if(!f?.cA||h&&!0!==h.keyCertSign)throw Error("Root CA certificate is not authorized to sign leaf certificates");let j=new Date;if(c.cert.validity.notBefore>j)throw Error("Root CA certificate is not valid yet");if(c.cert.validity.notAfter<=j)throw Error("Root CA certificate has expired; Audit Proxy will not rotate it automatically");return{exists:!0,root:c,certFingerprint:e,expiresAt:c.cert.validity.notAfter,expiringSoon:c.cert.validity.notAfter.getTime()-Date.now()<2592e6}}a.exports={ensureAuditRootCA:async function a(){let a=n();return a.exists||(await h(),a=n()),a.expiringSoon&&console.warn(`[audit-proxy] Root CA expires at ${a.expiresAt.toISOString()}; automatic CA rotation is disabled`),{...j(),validated:!0,autoRotation:!1}},validateRootCaPair:n,createAuditCertificateProvider:function({maxEntries:a=128}={}){let b=n();if(!b.exists)throw Error("Root CA is not initialized");let c=b.root,d=g.pki.rsa.generateKeyPair(2048),h=g.pki.privateKeyToPem(d.privateKey),i=new Map;function j(j){let k=function(a){let b=String(a||"").trim().replace(/^\[|\]$/g,"").toLowerCase();if(!b||/[\s/@\\]/.test(b)||!e.isIP(b)&&!/^[a-z0-9._-]+$/i.test(b))throw Error("Invalid certificate hostname");return b}(j),l=i.get(k);if(l&&l.notAfter>Date.now()+36e5)return i.delete(k),i.set(k,l),l.value;let m=g.pki.createCertificate();m.publicKey=d.publicKey,m.serialNumber=`00${f.randomBytes(16).toString("hex")}`,m.validity.notBefore=new Date(Date.now()-3e5);let n=Date.now()+7776e6,o=c.cert.validity.notAfter.getTime()-6e4;if(m.validity.notAfter=new Date(Math.min(n,o)),m.validity.notAfter<=m.validity.notBefore)throw Error("Root CA lifetime is too short to issue a valid leaf certificate");m.setSubject([{name:"commonName",value:k}]),m.setIssuer(c.cert.subject.attributes);let p=e.isIP(k)?{type:7,ip:k}:{type:2,value:k};m.setExtensions([{name:"basicConstraints",cA:!1,critical:!0},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0,critical:!0},{name:"extKeyUsage",serverAuth:!0},{name:"subjectAltName",altNames:[p]},{name:"subjectKeyIdentifier"}]),m.sign(c.key,g.md.sha256.create());let q={key:h,cert:`${g.pki.certificateToPem(m)}${g.pki.certificateToPem(c.cert)}`,host:k,notAfter:m.validity.notAfter.toISOString(),rootFingerprint:b.certFingerprint};for(i.set(k,{value:q,notAfter:m.validity.notAfter.getTime()});i.size>Math.max(8,Number(a)||128);)i.delete(i.keys().next().value);return q}return j.prewarm=(a=[])=>{for(let b of a||[]){let a=String(b||"").trim();a&&!a.includes("*")&&j(a)}},j.clear=()=>i.clear(),j.stats=()=>({entries:i.size,rootFingerprint:b.certFingerprint}),j}}},90389:(a,b,c)=>{c.d(b,{hS:()=>d});let d=Object.freeze({ADMIN:"admin",MONITOR_ADMIN:"monitor_admin",AI_GATEWAYS_MONITOR:"ai_gateways_monitor",USER:"user",GUEST:"guest"});Object.freeze([{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/api-keys",label:"API Keys",icon:"vpn_key"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/analytics",label:"Analytics",icon:"monitoring"},{href:"/dashboard/ai-power-index",label:"AI Power Index",icon:"electric_bolt"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/prompt-logs",label:"Prompt Logs",icon:"manage_search"}]),Object.freeze(["/dashboard","/dashboard/endpoint","/dashboard/api-keys","/dashboard/usage","/dashboard/analytics","/dashboard/ai-power-index","/dashboard/quota","/dashboard/prompt-logs"])},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};