@jheavenknows/bluerouter 5.3.52 → 5.3.53

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 (400) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +5 -5
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  49. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  50. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  51. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  52. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  53. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  55. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  56. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  57. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  58. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  59. package/app/.next-cli-build/server/app/api/audit-proxy/ca/route.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/api/audit-proxy/route.js +6 -6
  61. package/app/.next-cli-build/server/app/api/audit-proxy/route.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/auth/view-mode/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/cli-model-profiles/cloud-models/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/cli-model-profiles/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cluster/heartbeat/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/command/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cluster/peers/[id]/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cluster/peers/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/dashboard/ai-power-index/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/dashboard/analytics/ai-models/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/dashboard/analytics/analyze/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/dashboard/local-ai-report/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/config/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/live/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/dashboard/routing-topology/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/oauth/grok-cli/device-code/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/oauth/grok-cli/poll/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/move/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/personal-cloud-providers/shares/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/personal-cloud-providers/visibility/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/pricing/catalog/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/provider-nodes/openai-compatible/manage/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/resource-monitor/ai-models/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/resource-monitor/analyze/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  181. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  222. package/app/.next-cli-build/server/app/callback.html +1 -1
  223. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  224. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  225. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  226. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  227. package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +7 -7
  229. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +7 -7
  230. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +7 -7
  231. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +2 -2
  232. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  233. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +10 -10
  234. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +10 -10
  235. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +10 -10
  236. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  237. package/app/.next-cli-build/server/app/dashboard/audit-proxy.html +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/audit-proxy.rsc +21 -20
  239. package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/!KGRhc2hib2FyZCk/dashboard/audit-proxy/__PAGE__.segment.rsc +30 -29
  240. package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_full.segment.rsc +21 -20
  241. package/app/.next-cli-build/server/app/dashboard/audit-proxy.segments/_tree.segment.rsc +2 -2
  242. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  243. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  244. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +8 -8
  245. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  246. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  247. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
  248. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +8 -8
  249. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +8 -8
  250. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +8 -8
  251. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +2 -2
  252. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  253. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  254. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  255. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  256. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  257. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +7 -7
  259. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +7 -7
  260. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +7 -7
  261. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +2 -2
  262. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  263. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  264. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  265. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  266. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  267. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  269. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  270. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  271. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  272. package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
  273. package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +7 -7
  274. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +7 -7
  275. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +7 -7
  276. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +2 -2
  277. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  279. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +8 -8
  280. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  281. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  282. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  284. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +8 -8
  285. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  286. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  287. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  288. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  289. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  290. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  291. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  293. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
  294. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +7 -7
  295. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
  296. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  297. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
  299. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +7 -7
  300. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
  301. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  302. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  304. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  305. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  306. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  307. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  309. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  310. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  311. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  312. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  314. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  315. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  316. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  317. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  319. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  320. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  321. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +7 -7
  324. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +7 -7
  325. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +7 -7
  326. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
  327. package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +7 -7
  329. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +7 -7
  330. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +7 -7
  331. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_tree.segment.rsc +2 -2
  332. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
  334. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +7 -7
  335. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  336. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  337. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  339. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +8 -8
  340. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  341. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  342. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  344. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  345. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  346. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  347. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  349. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +8 -8
  350. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  351. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  352. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  353. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  354. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  355. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  356. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  357. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  358. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  359. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  360. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  361. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  362. package/app/.next-cli-build/server/app/index.html +1 -1
  363. package/app/.next-cli-build/server/app/index.rsc +6 -6
  364. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  365. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  366. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  367. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  368. package/app/.next-cli-build/server/app/landing.html +1 -1
  369. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  370. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  371. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  373. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  374. package/app/.next-cli-build/server/app/login.html +1 -1
  375. package/app/.next-cli-build/server/app/login.rsc +7 -7
  376. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  377. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  378. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +7 -7
  379. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  380. package/app/.next-cli-build/server/app-paths-manifest.json +5 -5
  381. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  382. package/app/.next-cli-build/server/chunks/3958.js +5 -5
  383. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  384. package/app/.next-cli-build/server/chunks/6811.js +1 -1
  385. package/app/.next-cli-build/server/chunks/6992.js +1 -1
  386. package/app/.next-cli-build/server/chunks/7639.js +1 -1
  387. package/app/.next-cli-build/server/chunks/8491.js +2 -2
  388. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  389. package/app/.next-cli-build/server/pages/404.html +1 -1
  390. package/app/.next-cli-build/server/pages/500.html +1 -1
  391. package/app/.next-cli-build/static/chunks/{5263-35c73f0b817c46e3.js → 5263-77779fb0526cc8d3.js} +1 -1
  392. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-1668bdee838e50b6.js +1 -0
  393. package/app/.next-cli-build/static/css/{150584b47405f066.css → 1a3f62f10f5e4a32.css} +1 -1
  394. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.3.47-to-5.3.48-5.3.48-20260822-174803 → upgrade-5.3.50-to-5.3.51-5.3.51-20260822-200352}/data.sqlite +0 -0
  395. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
  396. package/app/package.json +1 -1
  397. package/package.json +1 -1
  398. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/audit-proxy/page-3cc19ecb784ad07d.js +0 -1
  399. /package/app/.next-cli-build/static/{cL_-1gM7FlzGO8vClv9AE → 7RJVuN70Zvy8Qih694HUW}/_buildManifest.js +0 -0
  400. /package/app/.next-cli-build/static/{cL_-1gM7FlzGO8vClv9AE → 7RJVuN70Zvy8Qih694HUW}/_ssgManifest.js +0 -0
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluerouter-app",
3
- "version": "5.3.51",
3
+ "version": "5.3.52",
4
4
  "description": "Router web dashboard",
5
5
  "private": false,
6
6
  "scripts": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jheavenknows/bluerouter",
3
- "version": "5.3.52",
3
+ "version": "5.3.53",
4
4
  "description": "Bluerouter CLI - Start and manage Bluerouter server",
5
5
  "bin": {
6
6
  "bluerouter": "./cli.js"
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5236],{31874:(e,t,s)=>{"use strict";s.d(t,{default:()=>u});var r=s(95155),a=s(12115),d=s(98500),n=s.n(d);let i=["api.anthropic.com","*.anthropic.com","claude.ai","*.claude.ai"],l=["api.openai.com","*.openai.com","chatgpt.com","*.chatgpt.com"],o=["0.0.0.0","::","127.0.0.1","::1"];function c({ok:e,children:t}){return(0,r.jsxs)("span",{className:`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs font-medium ${e?"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400":"border-border bg-surface text-text-muted"}`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:e?"check_circle":"radio_button_unchecked"}),t]})}function x({label:e,hint:t,children:s}){return(0,r.jsxs)("label",{className:"grid gap-1.5",children:[(0,r.jsx)("span",{className:"text-sm font-semibold text-text-main",children:e}),s,t?(0,r.jsx)("span",{className:"text-[11px] leading-4 text-text-muted",children:t}):null]})}function m({label:e,description:t,checked:s,onChange:a,disabled:d=!1}){return(0,r.jsxs)("label",{className:"flex items-start justify-between gap-4 rounded-xl border border-border bg-background/50 p-3",children:[(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"block text-sm font-semibold text-text-main",children:e}),(0,r.jsx)("span",{className:"mt-0.5 block text-xs leading-5 text-text-muted",children:t})]}),(0,r.jsx)("input",{type:"checkbox",checked:s,onChange:e=>a(e.target.checked),disabled:d,className:"mt-1 h-4 w-4 accent-[var(--color-primary)]"})]})}function p({title:e,subtitle:t,command:s,copyKey:a,copied:d,onCopy:n,recommended:i=!1}){return(0,r.jsxs)("div",{className:`rounded-xl border bg-background p-3 ${i?"border-green-500/30":"border-border"}`,children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-text-main",children:e}),i?(0,r.jsx)("span",{className:"rounded-full bg-green-500/10 px-2 py-0.5 text-[10px] font-semibold text-green-600 dark:text-green-400",children:"Recommended"}):null]}),t?(0,r.jsx)("div",{className:"mt-0.5 text-[10px] leading-4 text-text-muted",children:t}):null]}),(0,r.jsx)("button",{onClick:()=>n(a,s),className:"shrink-0 text-xs font-medium text-primary",children:d===a?"Copied":"Copy"})]}),(0,r.jsx)("pre",{className:"mt-2 overflow-x-auto whitespace-pre-wrap break-all rounded-lg bg-surface px-3 py-2 text-[11px] leading-5 text-text-muted",children:s})]})}function u(){let[e,t]=(0,a.useState)(null),[s,d]=(0,a.useState)(null),[u,b]=(0,a.useState)(""),[h,g]=(0,a.useState)(""),[y,f]=(0,a.useState)(""),[j,N]=(0,a.useState)(null),[v,w]=(0,a.useState)(""),C=(0,a.useCallback)(async(e=!0)=>{try{let r=await fetch("/api/audit-proxy?limit=50",{cache:"no-store"}),a=await r.json();if(!r.ok)throw Error(a.error||"Cannot load Audit Proxy");t(a),e&&s||d(a.config)}catch(e){g(e.message||"Cannot load Audit Proxy")}},[s]);(0,a.useEffect)(()=>{C(!1);let e=setInterval(()=>C(!0),5e3);return()=>clearInterval(e)},[]);let k=e?.status||{},S=k.rootCA||{},T=!0===k.running,P=(0,a.useMemo)(()=>s?s.clientProxyHost?s.clientProxyHost:s.bindHost&&!o.includes(s.bindHost)?s.bindHost:T&&k.address?.address&&!o.includes(k.address.address)?k.address.address:"<bluerouter-host>":"bluerouter",[s,T,k.address]),A=s?`http://${P}:${s.port}`:"",R=(e,t)=>d(s=>({...s,[e]:t})),E=(s?.allowedHosts||[]).join("\n"),O=async(e,t={})=>{b(e),g(""),f("");try{let s=await fetch("/api/audit-proxy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...t})}),r=await s.json().catch(()=>({}));if(!s.ok)throw Error(r.error||`${e} failed`);return"test"===e?(N(r.test),f(`Simulation passed ${r.test.passed}/${r.test.total} checks.`)):f("clear-logs"===e?"Audit log cleared.":`Audit Proxy ${e} completed.`),await C("restart"!==e&&"start"!==e),r}catch(t){return g(t.message||`${e} failed`),null}finally{b("")}},_=async()=>{b("save"),g(""),f("");try{let e=await fetch("/api/audit-proxy",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:s})}),t=await e.json();if(!e.ok)throw Error(t.error||"Save failed");d(t.config),f("Configuration saved."),await C(!0)}catch(e){g(e.message||"Save failed")}finally{b("")}},H=async()=>{b("ca"),g("");try{let e=await fetch("/api/audit-proxy/ca",{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t.error||"CA generation failed");f("Root CA is ready."),await C(!0)}catch(e){g(e.message||"CA generation failed")}finally{b("")}},$=e=>{R("allowedHosts",[...new Set([...s?.allowedHosts||[],...e])])},L=async(e,t)=>{try{await navigator.clipboard.writeText(t),w(e),setTimeout(()=>w(""),1500)}catch{g("Clipboard access failed.")}};if(!s)return(0,r.jsx)("div",{className:"rounded-xl border border-border bg-surface p-5 text-sm text-text-muted",children:"Loading Enterprise AI Audit Proxy…"});let I=Math.round(Number(s.captureLimitBytes||0)/1024/1024*10)/10,B=["0.0.0.0","::"].includes(s.bindHost),D="C:\\BlueRouter\\bluerouter-audit-root-ca.crt",X="$HOME/.bluerouter/bluerouter-audit-root-ca.crt",U=`cmd.exe /d /c 'set "HTTP_PROXY=${A}"&&set "HTTPS_PROXY=${A}"&&set "NODE_EXTRA_CA_CERTS=${D}"&&claude'`,q=`cmd.exe /d /c 'set "HTTP_PROXY=${A}"&&set "HTTPS_PROXY=${A}"&&set "CODEX_CA_CERTIFICATE=${D}"&&codex'`,M=`env HTTP_PROXY='${A}' HTTPS_PROXY='${A}' NODE_EXTRA_CA_CERTS="${X}" claude`,Y=`env HTTP_PROXY='${A}' HTTPS_PROXY='${A}' CODEX_CA_CERTIFICATE="${X}" codex`;return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-2xl border border-primary/20 bg-primary/5 p-4 sm:flex-row sm:items-start sm:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary",children:"policy"}),(0,r.jsx)("h1",{className:"text-lg font-bold text-text-main",children:"Enterprise AI Audit Proxy"}),(0,r.jsx)(c,{ok:T,children:T?"Running":"Stopped"}),(0,r.jsx)(c,{ok:S.certExists,children:"Root CA"}),(0,r.jsx)(c,{ok:s.verifyUpstreamTls,children:"Verified upstream TLS"})]}),(0,r.jsx)("p",{className:"mt-2 max-w-4xl text-sm leading-6 text-text-muted",children:"Explicit HTTP CONNECT proxy for official Claude Code / Codex traffic. BlueRouter inspects approved hosts, preserves the provider/model/auth on the wire, and redacts credentials before persistence."})]}),(0,r.jsxs)(n(),{href:"/dashboard/mitm",className:"inline-flex items-center gap-1 text-xs font-medium text-primary hover:underline",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_back"})," AI Traffic Gateway"]})]}),h?(0,r.jsx)("div",{className:"rounded-xl border border-red-500/30 bg-red-500/10 px-4 py-3 text-sm text-red-600 dark:text-red-400",children:h}):null,y?(0,r.jsx)("div",{className:"rounded-xl border border-green-500/30 bg-green-500/10 px-4 py-3 text-sm text-green-600 dark:text-green-400",children:y}):null,B?(0,r.jsxs)("div",{className:"rounded-xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm text-amber-700 dark:text-amber-300",children:[(0,r.jsx)("strong",{children:"LAN listener enabled."})," Restrict port ",s.port," with firewall/VLAN policy. This version has no shared proxy credential, so it must not be exposed to the public Internet."]}):null,(0,r.jsxs)("div",{className:"grid gap-4 xl:grid-cols-[1.25fr_0.75fr]",children:[(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsxs)("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Proxy configuration"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"All server-side setup is managed here. No proxy daemon CLI is required."})]}),(0,r.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:()=>$(i),disabled:T,className:"rounded-lg border border-border px-3 py-1.5 text-xs text-text-main hover:bg-background disabled:opacity-50",children:"+ Anthropic preset"}),(0,r.jsx)("button",{onClick:()=>$(l),disabled:T,className:"rounded-lg border border-border px-3 py-1.5 text-xs text-text-main hover:bg-background disabled:opacity-50",children:"+ OpenAI preset"})]})]}),(0,r.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,r.jsx)(x,{label:"Bind address",hint:"127.0.0.1 = local only. Use 0.0.0.0 or a LAN IP when other workstations connect.",children:(0,r.jsx)("input",{value:s.bindHost,onChange:e=>R("bindHost",e.target.value),disabled:T,className:"rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsx)(x,{label:"Proxy port",hint:"Default 3128; no root/admin privilege is required on this port.",children:(0,r.jsx)("input",{type:"number",min:"1",max:"65535",value:s.port,onChange:e=>R("port",Number(e.target.value)),disabled:T,className:"rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsx)(x,{label:"Client proxy host",hint:"Auto-filled from the dashboard endpoint host when empty. Override only when clients use another DNS name/IP.",children:(0,r.jsx)("input",{value:s.clientProxyHost||"",onChange:e=>R("clientProxyHost",e.target.value),disabled:T,placeholder:"models-gateway.example.com",className:"rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsx)(x,{label:"Capture limit / request",hint:"Bodies are streamed immediately; only this bounded prefix is retained for audit.",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:"0",max:"16",step:"0.5",value:I,onChange:e=>R("captureLimitBytes",Math.round(1024*Number(e.target.value)*1024)),disabled:T||!s.captureBodies,className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"}),(0,r.jsx)("span",{className:"text-xs text-text-muted",children:"MB"})]})})]}),(0,r.jsxs)("div",{className:"mt-4 grid gap-3 md:grid-cols-2",children:[(0,r.jsx)(m,{label:"Pass through non-audited hosts",description:"Unknown CONNECT hosts are blind TCP tunnels. Their TLS is not inspected.",checked:s.passthroughUnknown,onChange:e=>R("passthroughUnknown",e),disabled:T}),(0,r.jsx)(m,{label:"Capture request/response bodies",description:"Credentials are still redacted. Disable to retain metadata only.",checked:s.captureBodies,onChange:e=>R("captureBodies",e),disabled:T})]}),(0,r.jsxs)("div",{className:"mt-4 grid gap-4 md:grid-cols-[1fr_180px]",children:[(0,r.jsx)(x,{label:"TLS inspection allowlist",hint:"One hostname/wildcard per line. Only these hosts are decrypted and audited.",children:(0,r.jsx)("textarea",{rows:9,value:E,onChange:e=>R("allowedHosts",e.target.value.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)),disabled:T,className:"rounded-lg border border-border bg-background px-3 py-2 font-mono text-xs text-text-main outline-none focus:border-primary disabled:opacity-60"})}),(0,r.jsxs)("div",{className:"grid content-start gap-4",children:[(0,r.jsx)(x,{label:"Retention",hint:"Expired entries are pruned from the local JSONL audit store.",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("input",{type:"number",min:"1",max:"365",value:s.retentionDays,onChange:e=>R("retentionDays",Number(e.target.value)),disabled:T,className:"min-w-0 flex-1 rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main outline-none focus:border-primary disabled:opacity-60"}),(0,r.jsx)("span",{className:"text-xs text-text-muted",children:"days"})]})}),(0,r.jsxs)("div",{className:"rounded-xl border border-green-500/20 bg-green-500/5 p-3 text-xs leading-5 text-text-muted",children:[(0,r.jsx)("div",{className:"font-semibold text-green-600 dark:text-green-400",children:"Upstream TLS verification: enforced"}),"Provider certificates are always verified. The GUI cannot disable this safety control."]})]})]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:_,disabled:!!u||T,className:"rounded-lg bg-primary px-4 py-2 text-sm font-semibold text-white disabled:opacity-50",children:"save"===u?"Saving…":"Save"}),T?(0,r.jsx)("button",{onClick:()=>O("stop"),disabled:!!u,className:"rounded-lg border border-red-500/30 bg-red-500/10 px-4 py-2 text-sm font-semibold text-red-500 disabled:opacity-50",children:"stop"===u?"Stopping…":"Stop Proxy"}):(0,r.jsx)("button",{onClick:()=>O("start",{config:s}),disabled:!!u,className:"rounded-lg border border-green-500/30 bg-green-500/10 px-4 py-2 text-sm font-semibold text-green-600 disabled:opacity-50",children:"start"===u?"Starting…":"Start Proxy"}),(0,r.jsx)("button",{onClick:()=>O("restart",{config:s}),disabled:!!u,className:"rounded-lg border border-border px-4 py-2 text-sm font-semibold text-text-main hover:bg-background disabled:opacity-50",children:"restart"===u?"Restarting…":"Save & Restart"}),(0,r.jsx)("button",{onClick:()=>O("test"),disabled:!!u,className:"rounded-lg border border-primary/30 bg-primary/10 px-4 py-2 text-sm font-semibold text-primary disabled:opacity-50",children:"test"===u?"Testing…":"Run Simulated Test"})]})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Root CA"}),(0,r.jsx)("p",{className:"mt-1 text-xs leading-5 text-text-muted",children:"Uses the same BlueRouter Root CA/dynamic leaf certificate engine as AI Traffic Gateway. The private key is never downloadable from this page."}),(0,r.jsxs)("div",{className:"mt-3 grid gap-2 text-xs",children:[(0,r.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Status"}),(0,r.jsx)("span",{className:"font-medium text-text-main",children:S.certExists?"Ready":"Not generated"})]}),S.subject?(0,r.jsxs)("div",{className:"grid gap-1",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Subject"}),(0,r.jsx)("span",{className:"break-all font-mono text-[11px] text-text-main",children:S.subject})]}):null,S.fingerprint?(0,r.jsxs)("div",{className:"grid gap-1",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Public key fingerprint"}),(0,r.jsx)("span",{className:"break-all font-mono text-[11px] text-text-main",children:S.fingerprint})]}):null,S.notAfter?(0,r.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,r.jsx)("span",{className:"text-text-muted",children:"Expires"}),(0,r.jsx)("span",{className:"text-text-main",children:new Date(S.notAfter).toLocaleString()})]}):null]}),(0,r.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,r.jsx)("button",{onClick:H,disabled:!!u||T,className:"rounded-lg border border-border px-3 py-2 text-xs font-semibold text-text-main hover:bg-background disabled:opacity-50",children:S.certExists?"Validate / Reuse CA":"Generate CA"}),(0,r.jsx)("a",{href:"/api/audit-proxy/ca?download=cert",className:`rounded-lg border border-primary/30 bg-primary/10 px-3 py-2 text-xs font-semibold text-primary ${!S.certExists?"pointer-events-none opacity-50":""}`,children:"Download Root CA"}),(0,r.jsx)(n(),{href:"/dashboard/mitm",className:"rounded-lg border border-border px-3 py-2 text-xs font-semibold text-text-main hover:bg-background",children:"Advanced CA management"})]})]}),(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Client deployment values"}),(0,r.jsxs)("p",{className:"mt-1 text-xs leading-5 text-text-muted",children:["Use the process-scoped launcher below. It does ",(0,r.jsx)("strong",{children:"not"})," use setx, does not change Windows/System proxy, and does not affect browsers or unrelated applications. Proxy variables disappear when the CLI exits."]}),(0,r.jsxs)("div",{className:"mt-3 rounded-xl border border-primary/20 bg-primary/5 p-3 text-xs leading-5 text-text-muted",children:[(0,r.jsx)("div",{className:"font-semibold text-primary",children:"Before first use"}),"Download the Root CA and save it as ",(0,r.jsx)("code",{className:"rounded bg-background px-1 py-0.5",children:D})," on Windows, or ",(0,r.jsx)("code",{className:"rounded bg-background px-1 py-0.5",children:X})," on Linux/macOS."]}),(0,r.jsxs)("div",{className:"mt-3 grid gap-3",children:[(0,r.jsxs)("div",{className:"rounded-xl border border-border bg-background p-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-text-main",children:"Proxy URL"}),(0,r.jsx)("button",{onClick:()=>L("url",A),className:"text-xs text-primary",children:"url"===v?"Copied":"Copy"})]}),(0,r.jsx)("code",{className:"mt-1 block break-all text-xs text-text-muted",children:A})]}),(0,r.jsx)(p,{title:"Claude Code \xb7 Windows PowerShell",subtitle:"Paste directly into PowerShell. Proxy env exists only inside the child process.",command:U,copyKey:"claude-ps",copied:v,onCopy:L,recommended:!0}),(0,r.jsx)(p,{title:"Codex \xb7 Windows PowerShell",subtitle:"Paste directly into PowerShell. No persistent user/system environment changes.",command:q,copyKey:"codex-ps",copied:v,onCopy:L,recommended:!0}),(0,r.jsxs)("details",{className:"rounded-xl border border-border bg-background p-3",children:[(0,r.jsx)("summary",{className:"cursor-pointer text-xs font-semibold text-text-main",children:"Linux / macOS process-scoped commands"}),(0,r.jsxs)("div",{className:"mt-3 grid gap-3",children:[(0,r.jsx)(p,{title:"Claude Code \xb7 Bash/zsh",command:M,copyKey:"claude-bash",copied:v,onCopy:L}),(0,r.jsx)(p,{title:"Codex \xb7 Bash/zsh",command:Y,copyKey:"codex-bash",copied:v,onCopy:L})]})]})]})]})]})]}),j?(0,r.jsxs)("section",{className:`rounded-2xl border p-4 ${j.ok?"border-green-500/30 bg-green-500/5":"border-red-500/30 bg-red-500/5"}`,children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Simulated end-to-end test"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Local throwaway TLS endpoints; no Anthropic/OpenAI credential or external API call is used."})]}),(0,r.jsxs)(c,{ok:j.ok,children:[j.passed,"/",j.total," passed \xb7 ",j.durationMs," ms"]})]}),(0,r.jsx)("div",{className:"mt-3 grid gap-2 md:grid-cols-2 xl:grid-cols-3",children:j.checks?.map(e=>(0,r.jsxs)("div",{className:"flex items-start gap-2 rounded-lg border border-border/70 bg-background/60 px-3 py-2 text-xs",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[16px] ${e.ok?"text-green-500":"text-red-500"}`,children:e.ok?"check_circle":"error"}),(0,r.jsxs)("span",{children:[(0,r.jsx)("span",{className:"font-medium text-text-main",children:e.name}),e.detail?(0,r.jsx)("span",{className:"mt-0.5 block text-text-muted",children:e.detail}):null]})]},e.name))})]}):null,(0,r.jsxs)("section",{className:"rounded-2xl border border-border bg-surface p-4",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"font-semibold text-text-main",children:"Recent audit requests"}),(0,r.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:"Credentials are redacted before JSONL persistence. Request/response capture is bounded by the configured limit."})]}),(0,r.jsx)("button",{onClick:()=>O("clear-logs"),disabled:!!u,className:"rounded-lg border border-border px-3 py-1.5 text-xs text-text-muted hover:bg-background disabled:opacity-50",children:"Clear logs"})]}),(0,r.jsx)("div",{className:"mt-3 overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full min-w-[900px] text-left text-xs",children:[(0,r.jsx)("thead",{className:"border-b border-border text-text-muted",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Time"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Client"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Provider"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Host"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Model"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Request"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Status"}),(0,r.jsx)("th",{className:"px-2 py-2 font-medium",children:"Latency"})]})}),(0,r.jsxs)("tbody",{children:[(e?.events||[]).map(e=>(0,r.jsxs)("tr",{className:"border-b border-border/60 align-top text-text-main",children:[(0,r.jsx)("td",{className:"whitespace-nowrap px-2 py-2 text-text-muted",children:new Date(e.timestamp).toLocaleTimeString()}),(0,r.jsx)("td",{className:"px-2 py-2 font-mono text-[11px]",children:e.client?.ip||"-"}),(0,r.jsx)("td",{className:"px-2 py-2",children:e.provider||"-"}),(0,r.jsx)("td",{className:"px-2 py-2 font-mono text-[11px]",children:e.host||"-"}),(0,r.jsx)("td",{className:"px-2 py-2",children:e.model||"-"}),(0,r.jsx)("td",{className:"max-w-[280px] px-2 py-2",children:(0,r.jsxs)("details",{children:[(0,r.jsxs)("summary",{className:"cursor-pointer truncate",children:[e.method," ",e.path]}),(0,r.jsx)("pre",{className:"mt-2 max-h-64 overflow-auto whitespace-pre-wrap rounded-lg bg-background p-2 text-[10px] leading-4 text-text-muted",children:JSON.stringify({request:e.request,response:e.response,error:e.error},null,2)})]})}),(0,r.jsx)("td",{className:"px-2 py-2",children:e.status||"ERR"}),(0,r.jsxs)("td",{className:"whitespace-nowrap px-2 py-2",children:[e.durationMs??"-"," ms"]})]},e.id)),e?.events?.length?null:(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:"8",className:"px-2 py-8 text-center text-text-muted",children:"No audited requests yet."})})]})]})})]})]})}},97157:(e,t,s)=>{Promise.resolve().then(s.bind(s,31874))}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=97157)),_N_E=e.O()}]);