@jheavenknows/bluerouter 5.3.65 → 5.3.66

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 (257) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/ai-power-index/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/audit-proxy/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/model-profiles/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/local-ai-report/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/console/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personal/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/stt/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/tts/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-topology/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  48. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  49. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  50. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  51. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  52. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  54. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  55. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  56. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  57. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  58. package/app/.next-cli-build/server/app/api/audit-proxy/route.js +16 -15
  59. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  60. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  61. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  62. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  63. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  64. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  65. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  66. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  67. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/callback.html +1 -1
  69. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  70. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  71. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  73. package/app/.next-cli-build/server/app/dashboard/ai-power-index.html +1 -1
  74. package/app/.next-cli-build/server/app/dashboard/ai-power-index.rsc +6 -6
  75. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/!KGRhc2hib2FyZCk/dashboard/ai-power-index/__PAGE__.segment.rsc +6 -6
  76. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_full.segment.rsc +6 -6
  77. package/app/.next-cli-build/server/app/dashboard/ai-power-index.segments/_tree.segment.rsc +1 -1
  78. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  79. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +9 -9
  80. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +9 -9
  81. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +9 -9
  82. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  84. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  85. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  86. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  87. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  88. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.html +1 -1
  89. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.rsc +7 -7
  90. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/model-profiles/__PAGE__.segment.rsc +7 -7
  91. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_full.segment.rsc +7 -7
  92. package/app/.next-cli-build/server/app/dashboard/cli-tools/model-profiles.segments/_tree.segment.rsc +1 -1
  93. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  94. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  95. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  96. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  97. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  98. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -1
  99. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +6 -6
  100. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +6 -6
  101. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +6 -6
  102. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +1 -1
  103. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  104. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  105. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  106. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  107. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  108. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  109. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  110. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  111. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  112. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  113. package/app/.next-cli-build/server/app/dashboard/local-ai-report.html +1 -1
  114. package/app/.next-cli-build/server/app/dashboard/local-ai-report.rsc +6 -6
  115. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/!KGRhc2hib2FyZCk/dashboard/local-ai-report/__PAGE__.segment.rsc +6 -6
  116. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_full.segment.rsc +6 -6
  117. package/app/.next-cli-build/server/app/dashboard/local-ai-report.segments/_tree.segment.rsc +1 -1
  118. package/app/.next-cli-build/server/app/dashboard/logs.html +1 -1
  119. package/app/.next-cli-build/server/app/dashboard/logs.rsc +6 -6
  120. package/app/.next-cli-build/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +6 -6
  121. package/app/.next-cli-build/server/app/dashboard/logs.segments/_full.segment.rsc +6 -6
  122. package/app/.next-cli-build/server/app/dashboard/logs.segments/_tree.segment.rsc +1 -1
  123. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  124. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  125. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  126. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  127. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  128. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  129. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  130. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
  131. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  132. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  133. package/app/.next-cli-build/server/app/dashboard/personal.html +1 -1
  134. package/app/.next-cli-build/server/app/dashboard/personal.rsc +7 -7
  135. package/app/.next-cli-build/server/app/dashboard/personal.segments/!KGRhc2hib2FyZCk/dashboard/personal/__PAGE__.segment.rsc +7 -7
  136. package/app/.next-cli-build/server/app/dashboard/personal.segments/_full.segment.rsc +7 -7
  137. package/app/.next-cli-build/server/app/dashboard/personal.segments/_tree.segment.rsc +1 -1
  138. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  139. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  140. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  141. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  142. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  143. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  144. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +6 -6
  145. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +6 -6
  146. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +6 -6
  147. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  148. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  149. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +6 -6
  150. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +6 -6
  151. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +6 -6
  152. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  153. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  154. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  155. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  156. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  157. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  158. package/app/.next-cli-build/server/app/dashboard/providers/stt.html +1 -1
  159. package/app/.next-cli-build/server/app/dashboard/providers/stt.rsc +7 -7
  160. package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/!KGRhc2hib2FyZCk/dashboard/providers/stt/__PAGE__.segment.rsc +7 -7
  161. package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_full.segment.rsc +7 -7
  162. package/app/.next-cli-build/server/app/dashboard/providers/stt.segments/_tree.segment.rsc +1 -1
  163. package/app/.next-cli-build/server/app/dashboard/providers/tts.html +1 -1
  164. package/app/.next-cli-build/server/app/dashboard/providers/tts.rsc +7 -7
  165. package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/!KGRhc2hib2FyZCk/dashboard/providers/tts/__PAGE__.segment.rsc +7 -7
  166. package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_full.segment.rsc +7 -7
  167. package/app/.next-cli-build/server/app/dashboard/providers/tts.segments/_tree.segment.rsc +1 -1
  168. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  169. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  170. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  171. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  172. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  173. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  174. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  175. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  176. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  177. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  178. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  179. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  180. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  181. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  182. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  183. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  184. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +6 -6
  185. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +6 -6
  186. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +6 -6
  187. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +1 -1
  188. package/app/.next-cli-build/server/app/dashboard/routing-topology.html +1 -1
  189. package/app/.next-cli-build/server/app/dashboard/routing-topology.rsc +6 -6
  190. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/!KGRhc2hib2FyZCk/dashboard/routing-topology/__PAGE__.segment.rsc +6 -6
  191. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_full.segment.rsc +6 -6
  192. package/app/.next-cli-build/server/app/dashboard/routing-topology.segments/_tree.segment.rsc +1 -1
  193. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  194. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  195. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  196. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  197. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  198. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  199. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  200. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
  201. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  202. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  203. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  204. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  205. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +6 -6
  206. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  207. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  208. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  209. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  210. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  211. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  212. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  213. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  214. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  215. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  216. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  217. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  218. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  219. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  220. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  221. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  222. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  223. package/app/.next-cli-build/server/app/index.html +1 -1
  224. package/app/.next-cli-build/server/app/index.rsc +5 -5
  225. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  226. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  227. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  228. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  229. package/app/.next-cli-build/server/app/landing.html +1 -1
  230. package/app/.next-cli-build/server/app/landing.rsc +5 -5
  231. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  232. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  233. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +5 -5
  234. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  235. package/app/.next-cli-build/server/app/login.html +1 -1
  236. package/app/.next-cli-build/server/app/login.rsc +6 -6
  237. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  238. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  239. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  240. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  241. package/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  242. package/app/.next-cli-build/server/chunks/3958.js +13 -13
  243. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  244. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  245. package/app/.next-cli-build/server/chunks/6811.js +1 -1
  246. package/app/.next-cli-build/server/chunks/6992.js +1 -1
  247. package/app/.next-cli-build/server/chunks/7639.js +1 -1
  248. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  249. package/app/.next-cli-build/server/pages/404.html +1 -1
  250. package/app/.next-cli-build/server/pages/500.html +1 -1
  251. package/app/.next-cli-build/static/chunks/{5263-032eff9b931cc73b.js → 5263-364748ccd1292403.js} +1 -1
  252. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
  253. package/app/package.json +1 -1
  254. package/package.json +1 -1
  255. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-5.3.59-to-5.3.60-5.3.60-20260823-094447/data.sqlite +0 -0
  256. /package/app/.next-cli-build/static/{6dTLAa-pms7CttZOuREkg → KCY4ORmC17jFBWLE5W0QX}/_buildManifest.js +0 -0
  257. /package/app/.next-cli-build/static/{6dTLAa-pms7CttZOuREkg → KCY4ORmC17jFBWLE5W0QX}/_ssgManifest.js +0 -0
@@ -9,11 +9,11 @@ d:I[27123,[],"default",1]
9
9
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
10
10
  :HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
11
11
  8:X
12
- 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"6dTLAa-pms7CttZOuREkg"}
13
- e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
14
- f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
15
- 10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
16
- 11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
12
+ 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"KCY4ORmC17jFBWLE5W0QX"}
13
+ e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
14
+ f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
15
+ 10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
16
+ 11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
17
17
  8:C
18
18
  2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Le",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$Lf",null,{}],["$","$L10",null,{"children":["$","$L11",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]}]]}]
19
19
  a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
@@ -9,11 +9,11 @@ d:I[27123,[],"default",1]
9
9
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
10
10
  :HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
11
11
  8:X
12
- 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"6dTLAa-pms7CttZOuREkg"}
13
- e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
14
- f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
15
- 10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
16
- 11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
12
+ 0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],"$L2"]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L5",null,{"children":["$","$6",null,{"name":"Next.MetadataOutlet","children":"$@7"}]}]]}],{},null,false,null]},null,false,"$8"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L9",null,{"children":"$La"}],["$","div",null,{"hidden":true,"children":["$","$Lb",null,{"children":["$","$6",null,{"name":"Next.Metadata","children":"$Lc"}]}]}],null]}],false]],"m":"$undefined","G":["$d",[]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"KCY4ORmC17jFBWLE5W0QX"}
13
+ e:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
14
+ f:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
15
+ 10:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
16
+ 11:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
17
17
  8:C
18
18
  2:["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Le",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$Lf",null,{}],["$","$L10",null,{"children":["$","$L11",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}]}]]}]
19
19
  a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]
@@ -6,16 +6,16 @@
6
6
  9:I[86869,[],"IconMark"]
7
7
  b:I[57121,[],""]
8
8
  c:I[74581,[],""]
9
- f:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
10
- 10:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
11
- 11:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
12
- 12:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-032eff9b931cc73b.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
9
+ f:I[44656,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"BrandingProvider"]
10
+ 10:I[70255,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"default"]
11
+ 11:I[21110,["3862","static/chunks/1a258343-a1c000c55ff2ed8c.js","8500","static/chunks/8500-01a63dafd809e317.js","9893","static/chunks/9893-065a17773674bd0a.js","9959","static/chunks/9959-ac64565001d4586c.js","7050","static/chunks/7050-a706e6827db952b3.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7033","static/chunks/7033-c1289a2f17cb7185.js","5497","static/chunks/5497-2dc4edc91d3952bc.js","9305","static/chunks/app/(dashboard)/layout-e5f8b9540dd02062.js"],"ThemeProvider"]
12
+ 12:I[94635,["1101","static/chunks/1101-24e8a2ac5c831741.js","5564","static/chunks/5564-f72b35ee73d33b9b.js","5263","static/chunks/5263-364748ccd1292403.js","7177","static/chunks/app/layout-246e5f10ac28be17.js"],"RuntimeI18nProvider"]
13
13
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
14
14
  :HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
15
15
  6:X
16
16
  e:X
17
17
  e:C
18
- 0:{"buildId":"6dTLAa-pms7CttZOuREkg","data":[{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L8",null,{"children":["$","$3",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AI Router Gateway - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?d69b7278ea27dcf7","type":"image/x-icon","sizes":"32x32"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L9","5",{}]]}]}]}],null]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Lf",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$L10",null,{}],["$","$L11",null,{"children":["$","$L12",null,{"children":["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]}]}]]}]}]]}]]}],"isPartial":"$@13","staleTime":"$6","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@14","rootVaryParams":null,"needsRuntimeRequest":"$@15"}
18
+ 0:{"buildId":"KCY4ORmC17jFBWLE5W0QX","data":[{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":"$@5","staleTime":"$6","varyParams":null},{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L8",null,{"children":["$","$3",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AI Router Gateway - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?d69b7278ea27dcf7","type":"image/x-icon","sizes":"32x32"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L9","5",{}]]}]}]}],null]}],"isPartial":"$@a","staleTime":"$6","varyParams":null},{"rsc":["$","$1","c",{"children":[null,["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]]}],"isPartial":"$@d","staleTime":"$6","varyParams":"$e"},{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/2efd59dd4cc5acfe.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$Lf",null,{"initialBranding":{"siteTitle":"","siteShortName":"","siteDescription":"","logoUrl":null,"faviconUrl":null,"logoMime":null,"faviconMime":null,"hasLogo":false,"hasFavicon":false},"children":[["$","$L10",null,{}],["$","$L11",null,{"children":["$","$L12",null,{"children":["$","$Lb",null,{"parallelRouterKey":"children","template":["$","$Lc",null,{}]}]}]}]]}]}]]}]]}],"isPartial":"$@13","staleTime":"$6","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@14","rootVaryParams":null,"needsRuntimeRequest":"$@15"}
19
19
  4:null
20
20
  6:300
21
21
  15:true
@@ -1,3 +1,3 @@
1
1
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
2
2
  :HL["/_next/static/css/2efd59dd4cc5acfe.css","style"]
3
- 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"6dTLAa-pms7CttZOuREkg"}
3
+ 0:{"tree":{"name":"","param":null,"prefetchHints":4176,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":4192,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":4256,"slots":null}}}}},"staleTime":300,"buildId":"KCY4ORmC17jFBWLE5W0QX"}
@@ -17,14 +17,15 @@ Content-Type: application/json\r
17
17
  Content-Length: ${e.length}\r
18
18
  Connection: close\r
19
19
  \r
20
- `),j.write(e)}),j.on("data",a=>k.push(Buffer.from(a))),j.on("end",()=>{clearTimeout(l),h(function(a){let b=a.indexOf("\r\n\r\n");if(b<0)throw Error("Invalid HTTP/1.1 response");let c=a.subarray(0,b).toString("latin1"),d={};for(let a of c.split("\r\n").slice(1)){let b=a.indexOf(":");b>0&&(d[a.slice(0,b).toLowerCase()]=a.slice(b+1).trim())}let e=Number(d["content-length"]||0);return{head:c,headers:d,body:a.subarray(b+4,e?b+4+e:void 0)}}(Buffer.concat(k)))})})}async function x({socket:a,ca:b,servername:c,port:e,body:g,path:h}){let i=f.connect({socket:a,ca:b,servername:c,rejectUnauthorized:!0,ALPNProtocols:["h2"]});await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("TLS HTTP/2 handshake timeout")),1e4);i.once("secureConnect",()=>{clearTimeout(c),"h2"!==i.alpnProtocol?b(Error(`Expected h2, got ${i.alpnProtocol||"none"}`)):a()}),i.once("error",b)});let j=d.connect(`https://${c}:${e}`,{createConnection:()=>i});await new Promise((a,b)=>{j.once("connect",a),j.once("error",b)});let k=j.request({":method":"POST",":path":h,":scheme":"https",":authority":`${c}:${e}`,authorization:"Bearer test-secret-authorization-123456789","x-api-key":"sk-test-supersecret-123456789","x-9r-source-tool":"should-not-reach-upstream","content-type":"application/json","content-length":String(g.length)}),l=[],m={};k.on("response",a=>{m=a}),k.on("data",a=>l.push(Buffer.from(a)));let n=new Promise((a,b)=>{k.once("end",a),k.once("error",b)});return k.end(g),await n,j.close(),{headers:m,body:Buffer.concat(l)}}a.exports={runSelfTest:async function(){let a=Date.now(),b=[],c=(a,c,d="")=>b.push({name:a,ok:!!c,detail:d}),f=n(["172.16.253.3","10.20.30.0/24","2001:db8::/64"]);c("Client IP exact allowlist match",m("::ffff:172.16.253.3",f)),c("Client IPv4 CIDR allowlist match",m("10.20.30.77",f)),c("Client IPv6 CIDR allowlist match",m("2001:db8::1234",f)),c("Client IP outside allowlist denied",!m("10.20.31.77",f)),c("Public destination accepted",o("1.1.1.1")),c("Private destination rejected",!o("127.0.0.1")&&!o("169.254.169.254"));let h=JSON.stringify({type:"message",content:[{type:"text",text:"brotli audit ok"}]}),i=new k(1048576);i.add(g.brotliCompressSync(Buffer.from(h)));let y=await i.finish("application/json","br");c("Brotli audit body decoded",!0===y.decoded&&y.body.includes("brotli audit ok")&&!y.decodeError);let z=q("BlueRouter Audit Self Test Upstream CA"),A=r(z,"localhost"),B=q("BlueRouter Audit Self Test Proxy CA"),C=r(B,"localhost"),D=Buffer.from(JSON.stringify({type:"message",content:[{type:"text",text:"compressed response preserved"}]})),E=g.brotliCompressSync(D),F=[],G=d.createSecureServer({key:A.key,cert:A.cert,allowHTTP1:!0});G.on("request",(a,b)=>{let c=[];a.on("data",a=>c.push(Buffer.from(a))),a.on("end",()=>{F.push({protocol:2===a.httpVersionMajor?"h2":"http/1.1",path:a.url,authorization:a.headers.authorization,apiKey:a.headers["x-api-key"],internalHeader:a.headers["x-9r-source-tool"],body:Buffer.concat(c)}),b.writeHead(200,{"content-type":"application/json","content-encoding":"br","content-length":String(E.length)}),b.end(E)})});let H=[],I=null,J=null;try{var K;let a=await s(G);I=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:a=>H.push(a)});let b=await s(I),d=await (K=b.port,new Promise((a,b)=>{let c=e.connect(K,"127.0.0.1"),d=[],f=setTimeout(()=>b(Error("Plain HTTP rejection timeout")),5e3);c.once("connect",()=>c.end("GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n")),c.on("data",a=>d.push(Buffer.from(a))),c.once("error",b),c.once("end",()=>{clearTimeout(f),a(Buffer.concat(d).toString("utf8"))})}));c("Plain HTTP forward proxy is disabled",d.startsWith("HTTP/1.1 403"));let f=Buffer.from(JSON.stringify({model:"audit-self-test-h1",messages:[{role:"user",content:"hello h1 ✓"}]})),g="/v1/messages?beta=true&encoded=%2F",h=await v(b.port,`localhost:${a.port}`),i=await w({socket:h,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("HTTP/1.1 CONNECT and TLS succeeded",i.head.startsWith("HTTP/1.1 200")),c("HTTP/1.1 compressed response bytes preserved",p(i.body)===p(E));let k=Buffer.from(JSON.stringify({model:"audit-self-test-h2",messages:[{role:"user",content:"hello h2 ✓"}]})),m="/v1/messages?beta=true&protocol=h2",n=await v(b.port,`localhost:${a.port}`),o=await x({socket:n,ca:B.certPem,servername:"localhost",port:a.port,body:k,path:m});c("HTTP/2 negotiated through Audit Proxy",200===Number(o.headers[":status"])),c("HTTP/2 compressed response bytes preserved",p(o.body)===p(E)),await new Promise(a=>setTimeout(a,100));let q=F.find(a=>"http/1.1"===a.protocol),r=F.find(a=>"h2"===a.protocol);c("HTTP/1.1 path/query preserved",q?.path===g),c("HTTP/2 path/query preserved",r?.path===m),c("HTTP/1.1 request body byte-identical",q&&p(q.body)===p(f)),c("HTTP/2 request body byte-identical",r&&p(r.body)===p(k)),c("Authorization preserved on wire",F.every(a=>"Bearer test-secret-authorization-123456789"===a.authorization)),c("x-api-key preserved on wire",F.every(a=>"sk-test-supersecret-123456789"===a.apiKey)),c("Internal x-9r-* header stripped",F.every(a=>null==a.internalHeader));let t=H.find(a=>"http/1.1"===a.protocol),y=H.find(a=>"h2"===a.protocol);c("HTTP/1.1 audit event captured",!!t),c("HTTP/2 audit event captured",!!y),c("Request wire SHA-256 recorded",t?.request?.wireSha256===p(f)&&y?.request?.wireSha256===p(k)),c("Response wire SHA-256 recorded",t?.response?.wireSha256===p(E)&&y?.response?.wireSha256===p(E)),c("Compressed audit response decoded",t?.response?.body?.includes("compressed response preserved")&&y?.response?.body?.includes("compressed response preserved")),c("Authorization redacted in audit",H.every(a=>a.request?.headers?.authorization==="[REDACTED]")),c("x-api-key redacted in audit",H.every(a=>a.request?.headers?.["x-api-key"]==="[REDACTED]")),c("No likely API secret persisted",H.length>=2&&H.every(a=>!l(a))),J=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:()=>{throw Error("simulated audit sink failure")}});let A=await s(J),D=await v(A.port,`localhost:${a.port}`),L=await w({socket:D,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("Audit sink failure does not fail proxied request",L.head.startsWith("HTTP/1.1 200"))}catch(a){c("Self-test execution",!1,a.message||String(a))}finally{await t(J),await t(I),await t(G)}return{ok:b.length>0&&b.every(a=>a.ok),checks:b,passed:b.filter(a=>a.ok).length,total:b.length,durationMs:Date.now()-a}}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87496:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>u,POST:()=>w,PUT:()=>v,dynamic:()=>o,revalidate:()=>p,runtime:()=>n});var d=c(23211),e=c(9588),f=c(45903);let g="__blueRouterAuditRecentMysqlReader";function h(){return globalThis[g]||(globalThis[g]={pool:null,poolKey:"",poolPromise:null,cache:{expiresAt:0,limit:0,result:null}}),globalThis[g]}async function i(a){let b=h(),d=JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!0===a.ssl});if(b.pool&&b.poolKey===d||b.poolPromise&&(await b.poolPromise.catch(()=>{}),b.pool&&b.poolKey===d))return b.pool;b.poolPromise=(async()=>{if(b.pool&&b.poolKey!==d){try{await b.pool.end()}catch{}b.pool=null,b.poolKey=""}let e=await c.e(8491).then(c.t.bind(c,38491,19)),f=(e.default||e).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:2500,waitForConnections:!0,connectionLimit:1,maxIdle:1,idleTimeout:3e4,queueLimit:4,enableKeepAlive:!0,keepAliveInitialDelay:3e4,timezone:"Z",dateStrings:!0});return b.pool=f,b.poolKey=d,f})();try{return await b.poolPromise}finally{b.poolPromise=null}}function j(a){if(null==a||""===a)return null;let b=Number(a);return Number.isFinite(b)?b:null}function k(a){let b=function(a){if(!a)return{};if("object"==typeof a&&!Buffer.isBuffer(a))return a;try{return JSON.parse(Buffer.isBuffer(a)?a.toString("utf8"):String(a))}catch{return{}}}(a.meta_json),c=Number(b.requestCapturedBytes||0),d=Number(b.requestTotalBytes||c||0),e=Number(b.responseCapturedBytes||0),f=Number(b.responseTotalBytes||e||0);return{id:String(b.auditEventId||a.id),timestamp:function(a){if(a instanceof Date)return a.toISOString();let b=String(a||"").trim();if(!b)return new Date().toISOString();let c=b.replace(" ","T"),d=new Date(/(?:Z|[+-]\d{2}:?\d{2})$/i.test(c)?c:`${c}Z`);return Number.isNaN(d.getTime())?new Date().toISOString():d.toISOString()}(a.created_at),protocol:String(b.protocol||"http/1.1"),client:{ip:a.client_ip||"",port:j(a.client_port),userAgent:a.client_user_agent||""},provider:a.provider||"other",host:b.host||a.client_host||a.source_host||"",port:Number(b.port||443),method:b.method||"REQUEST",path:b.path||a.endpoint||"",model:a.model||null,status:j(a.status_code),durationMs:Number(b.durationMs||0),error:a.error_text||null,request:{headers:{},body:a.prompt_text||"",capturedBytes:c,totalBytes:d,wireSha256:b.requestWireSha256||null,truncated:!0===b.requestTruncated,previewOnly:!0},response:{headers:{},body:a.response_text||"",capturedBytes:e,totalBytes:f,wireSha256:b.responseWireSha256||null,truncated:!0===b.responseTruncated,previewOnly:!0},persistenceSource:"mysql"}}async function l(a=50){let b=Math.max(1,Math.min(500,Number(a)||50)),c=h(),d=Date.now();if(c.cache.result&&c.cache.expiresAt>d&&c.cache.limit>=b)return{...c.cache.result,events:c.cache.result.events.slice(0,b),cached:!0};try{let a=await (0,f.getPromptLogDbConfig)();if(!a?.enabled)return{events:[],available:!1,reason:"Prompt Log MySQL is disabled",error:null};if("mysql"!==String(a.type||"").toLowerCase())return{events:[],available:!1,reason:`Prompt Log database type is ${a.type||"unknown"}`,error:null};let e=await i(a),g=`SELECT
21
- id, created_at, model, endpoint, provider,
20
+ `),j.write(e)}),j.on("data",a=>k.push(Buffer.from(a))),j.on("end",()=>{clearTimeout(l),h(function(a){let b=a.indexOf("\r\n\r\n");if(b<0)throw Error("Invalid HTTP/1.1 response");let c=a.subarray(0,b).toString("latin1"),d={};for(let a of c.split("\r\n").slice(1)){let b=a.indexOf(":");b>0&&(d[a.slice(0,b).toLowerCase()]=a.slice(b+1).trim())}let e=Number(d["content-length"]||0);return{head:c,headers:d,body:a.subarray(b+4,e?b+4+e:void 0)}}(Buffer.concat(k)))})})}async function x({socket:a,ca:b,servername:c,port:e,body:g,path:h}){let i=f.connect({socket:a,ca:b,servername:c,rejectUnauthorized:!0,ALPNProtocols:["h2"]});await new Promise((a,b)=>{let c=setTimeout(()=>b(Error("TLS HTTP/2 handshake timeout")),1e4);i.once("secureConnect",()=>{clearTimeout(c),"h2"!==i.alpnProtocol?b(Error(`Expected h2, got ${i.alpnProtocol||"none"}`)):a()}),i.once("error",b)});let j=d.connect(`https://${c}:${e}`,{createConnection:()=>i});await new Promise((a,b)=>{j.once("connect",a),j.once("error",b)});let k=j.request({":method":"POST",":path":h,":scheme":"https",":authority":`${c}:${e}`,authorization:"Bearer test-secret-authorization-123456789","x-api-key":"sk-test-supersecret-123456789","x-9r-source-tool":"should-not-reach-upstream","content-type":"application/json","content-length":String(g.length)}),l=[],m={};k.on("response",a=>{m=a}),k.on("data",a=>l.push(Buffer.from(a)));let n=new Promise((a,b)=>{k.once("end",a),k.once("error",b)});return k.end(g),await n,j.close(),{headers:m,body:Buffer.concat(l)}}a.exports={runSelfTest:async function(){let a=Date.now(),b=[],c=(a,c,d="")=>b.push({name:a,ok:!!c,detail:d}),f=n(["172.16.253.3","10.20.30.0/24","2001:db8::/64"]);c("Client IP exact allowlist match",m("::ffff:172.16.253.3",f)),c("Client IPv4 CIDR allowlist match",m("10.20.30.77",f)),c("Client IPv6 CIDR allowlist match",m("2001:db8::1234",f)),c("Client IP outside allowlist denied",!m("10.20.31.77",f)),c("Public destination accepted",o("1.1.1.1")),c("Private destination rejected",!o("127.0.0.1")&&!o("169.254.169.254"));let h=JSON.stringify({type:"message",content:[{type:"text",text:"brotli audit ok"}]}),i=new k(1048576);i.add(g.brotliCompressSync(Buffer.from(h)));let y=await i.finish("application/json","br");c("Brotli audit body decoded",!0===y.decoded&&y.body.includes("brotli audit ok")&&!y.decodeError);let z=q("BlueRouter Audit Self Test Upstream CA"),A=r(z,"localhost"),B=q("BlueRouter Audit Self Test Proxy CA"),C=r(B,"localhost"),D=Buffer.from(JSON.stringify({type:"message",content:[{type:"text",text:"compressed response preserved"}]})),E=g.brotliCompressSync(D),F=[],G=d.createSecureServer({key:A.key,cert:A.cert,allowHTTP1:!0});G.on("request",(a,b)=>{let c=[];a.on("data",a=>c.push(Buffer.from(a))),a.on("end",()=>{F.push({protocol:2===a.httpVersionMajor?"h2":"http/1.1",path:a.url,authorization:a.headers.authorization,apiKey:a.headers["x-api-key"],internalHeader:a.headers["x-9r-source-tool"],body:Buffer.concat(c)}),b.writeHead(200,{"content-type":"application/json","content-encoding":"br","content-length":String(E.length)}),b.end(E)})});let H=[],I=null,J=null;try{var K;let a=await s(G);I=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:a=>H.push(a)});let b=await s(I),d=await (K=b.port,new Promise((a,b)=>{let c=e.connect(K,"127.0.0.1"),d=[],f=setTimeout(()=>b(Error("Plain HTTP rejection timeout")),5e3);c.once("connect",()=>c.end("GET http://example.com/ HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n")),c.on("data",a=>d.push(Buffer.from(a))),c.once("error",b),c.once("end",()=>{clearTimeout(f),a(Buffer.concat(d).toString("utf8"))})}));c("Plain HTTP forward proxy is disabled",d.startsWith("HTTP/1.1 403"));let f=Buffer.from(JSON.stringify({model:"audit-self-test-h1",messages:[{role:"user",content:"hello h1 ✓"}]})),g="/v1/messages?beta=true&encoded=%2F",h=await v(b.port,`localhost:${a.port}`),i=await w({socket:h,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("HTTP/1.1 CONNECT and TLS succeeded",i.head.startsWith("HTTP/1.1 200")),c("HTTP/1.1 compressed response bytes preserved",p(i.body)===p(E));let k=Buffer.from(JSON.stringify({model:"audit-self-test-h2",messages:[{role:"user",content:"hello h2 ✓"}]})),m="/v1/messages?beta=true&protocol=h2",n=await v(b.port,`localhost:${a.port}`),o=await x({socket:n,ca:B.certPem,servername:"localhost",port:a.port,body:k,path:m});c("HTTP/2 negotiated through Audit Proxy",200===Number(o.headers[":status"])),c("HTTP/2 compressed response bytes preserved",p(o.body)===p(E)),await new Promise(a=>setTimeout(a,100));let q=F.find(a=>"http/1.1"===a.protocol),r=F.find(a=>"h2"===a.protocol);c("HTTP/1.1 path/query preserved",q?.path===g),c("HTTP/2 path/query preserved",r?.path===m),c("HTTP/1.1 request body byte-identical",q&&p(q.body)===p(f)),c("HTTP/2 request body byte-identical",r&&p(r.body)===p(k)),c("Authorization preserved on wire",F.every(a=>"Bearer test-secret-authorization-123456789"===a.authorization)),c("x-api-key preserved on wire",F.every(a=>"sk-test-supersecret-123456789"===a.apiKey)),c("Internal x-9r-* header stripped",F.every(a=>null==a.internalHeader));let t=H.find(a=>"http/1.1"===a.protocol),y=H.find(a=>"h2"===a.protocol);c("HTTP/1.1 audit event captured",!!t),c("HTTP/2 audit event captured",!!y),c("Request wire SHA-256 recorded",t?.request?.wireSha256===p(f)&&y?.request?.wireSha256===p(k)),c("Response wire SHA-256 recorded",t?.response?.wireSha256===p(E)&&y?.response?.wireSha256===p(E)),c("Compressed audit response decoded",t?.response?.body?.includes("compressed response preserved")&&y?.response?.body?.includes("compressed response preserved")),c("Authorization redacted in audit",H.every(a=>a.request?.headers?.authorization==="[REDACTED]")),c("x-api-key redacted in audit",H.every(a=>a.request?.headers?.["x-api-key"]==="[REDACTED]")),c("No likely API secret persisted",H.length>=2&&H.every(a=>!l(a))),J=j({allowedHosts:["localhost"],passthroughUnknown:!1,captureBodies:!0,captureLimitBytes:1048576,verifyUpstreamTls:!0,allowedConnectPorts:[a.port],connectTimeoutMs:5e3,tlsHandshakeTimeoutMs:5e3,responseHeaderTimeoutMs:5e3,idleTimeoutMs:3e4},{certificateProvider:()=>C,upstreamCa:z.certPem,resolveTarget:u,onAudit:()=>{throw Error("simulated audit sink failure")}});let A=await s(J),D=await v(A.port,`localhost:${a.port}`),L=await w({socket:D,ca:B.certPem,servername:"localhost",port:a.port,body:f,path:g});c("Audit sink failure does not fail proxied request",L.head.startsWith("HTTP/1.1 200"))}catch(a){c("Self-test execution",!1,a.message||String(a))}finally{await t(J),await t(I),await t(G)}return{ok:b.length>0&&b.every(a=>a.ok),checks:b,passed:b.filter(a=>a.ok).length,total:b.length,durationMs:Date.now()-a}}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87496:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>x,POST:()=>z,PUT:()=>y,dynamic:()=>r,revalidate:()=>s,runtime:()=>q});var d=c(23211),e=c(9588),f=c(45903);let g="audit-proxy",h="client",i="provider_response",j="__blueRouterAuditRecentMysqlReader";function k(){return globalThis[j]||(globalThis[j]={pool:null,poolKey:"",poolPromise:null,cache:{expiresAt:0,limit:0,result:null}}),globalThis[j]}async function l(a){let b=k(),d=JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!0===a.ssl});if(b.pool&&b.poolKey===d||b.poolPromise&&(await b.poolPromise.catch(()=>{}),b.pool&&b.poolKey===d))return b.pool;b.poolPromise=(async()=>{if(b.pool&&b.poolKey!==d){try{await b.pool.end()}catch{}b.pool=null,b.poolKey=""}let e=await c.e(8491).then(c.t.bind(c,38491,19)),f=(e.default||e).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:2500,waitForConnections:!0,connectionLimit:1,maxIdle:1,idleTimeout:3e4,queueLimit:4,enableKeepAlive:!0,keepAliveInitialDelay:3e4,timezone:"Z",dateStrings:!0});return b.pool=f,b.poolKey=d,f})();try{return await b.poolPromise}finally{b.poolPromise=null}}function m(a){if(null==a||""===a)return null;let b=Number(a);return Number.isFinite(b)?b:null}function n(a){let b=Date.parse(a||0);return Number.isFinite(b)?b:0}async function o(a=50){let b=Math.max(1,Math.min(500,Number(a)||50)),c=k(),d=Date.now();if(c.cache.result&&c.cache.expiresAt>d&&c.cache.limit>=b)return{...c.cache.result,events:c.cache.result.events.slice(0,b),cached:!0};try{let a=await (0,f.getPromptLogDbConfig)();if(!a?.enabled)return{events:[],available:!1,reason:"Prompt Log MySQL is disabled",error:null};if("mysql"!==String(a.type||"").toLowerCase())return{events:[],available:!1,reason:`Prompt Log database type is ${a.type||"unknown"}`,error:null};let e=await l(a),j=Math.min(1200,2*b+20),k=`SELECT
21
+ id, created_at, stage, model, endpoint, provider,
22
22
  client_ip, client_port, client_user_agent, client_host, source_host,
23
23
  prompt_text, response_text, status_code, error_text, meta_json
24
24
  FROM prompt_logs
25
25
  WHERE stage = ?
26
+ OR (session_id LIKE 'audit-%' AND stage IN (?, ?))
26
27
  ORDER BY created_at DESC
27
- LIMIT ${b}`,[h]=await e.query({sql:g,timeout:2500},["audit-proxy"]),j={events:(h||[]).map(k),available:!0,reason:null,error:null};return c.cache={expiresAt:d+3e3,limit:b,result:j},j}catch(e){let a={events:[],available:!1,reason:null,error:e?.message||String(e)};return c.cache={expiresAt:d+3e3,limit:b,result:a},a}}var m=c(49083);let n="nodejs",o="force-dynamic",p=0,q={"Cache-Control":"no-store"};async function r(){let{response:a}=await (0,e.hH)();return a}function s(a){let b=Date.parse(a?.timestamp||0);return Number.isFinite(b)?b:0}async function t(){let a=await (0,m.runSelfTest)();if(a.ok)return{...a,attempts:1,recoveredAfterRetry:!1};await new Promise(a=>setTimeout(a,250));let b=await (0,m.runSelfTest)();return{...b,attempts:2,recoveredAfterRetry:!0===b.ok,firstAttempt:{passed:a.passed,total:a.total,durationMs:a.durationMs,failed:(a?.checks||[]).filter(a=>!a.ok).map(a=>({name:a.name,detail:a.detail||""}))}}}async function u(a){let b=await r();if(b)return b;try{let{searchParams:b}=new URL(a.url),c=Math.max(1,Math.min(500,Number(b.get("limit"))||50)),e=await (0,m.getSnapshot)(c),f=e.events||[],g=await l(c),h=function(a,...b){let c=new Map;for(let a of b)for(let b of a||[]){if(!b)continue;let a=String(b.id||`${b.timestamp||""}:${b.host||""}:${b.path||""}`),d=c.get(a);(!d||s(b)>s(d))&&c.set(a,b)}return[...c.values()].sort((a,b)=>s(b)-s(a)).slice(0,a)}(c,f,g.events),i=e.status?.auditStore||{},j={...e.status,auditStore:{...i,recentRead:{localCount:f.length,mysqlCount:g.events?.length||0,mergedCount:h.length,mysqlAvailable:!0===g.available,mysqlCached:!0===g.cached,mysqlReason:g.reason||null,mysqlError:g.error||null}}};return d.NextResponse.json({success:!0,...e,status:j,events:h},{headers:q})}catch(a){return d.NextResponse.json({error:a.message||"Failed to read Audit Proxy state"},{status:500,headers:q})}}async function v(a){let b=await r();if(b)return b;try{let b=await a.json(),c=(0,m.updateConfig)(b?.config||b||{});return d.NextResponse.json({success:!0,config:c},{headers:q})}catch(b){let a=/Stop or restart/.test(b.message||"")?409:400;return d.NextResponse.json({error:b.message||"Failed to save Audit Proxy configuration"},{status:a,headers:q})}}async function w(a){let b=await r();if(b)return b;try{let b=await a.json().catch(()=>({})),c=String(b?.action||"").trim().toLowerCase();if("start"===c)return d.NextResponse.json({success:!0,status:await (0,m.startProxy)(b.config||null)},{headers:q});if("stop"===c)return d.NextResponse.json({success:!0,status:await (0,m.stopProxy)()},{headers:q});if("restart"===c)return d.NextResponse.json({success:!0,status:await (0,m.restartProxy)(b.config||null)},{headers:q});if("save-client-host"===c){let a=(0,m.updateClientProxyHost)(b.clientProxyHost);return d.NextResponse.json({success:!0,config:a},{headers:q})}if("save-ip-filter"===c){let a=await (0,m.updateClientIpFilter)({enabled:!0===b.enabled,allowedClientIps:b.allowedClientIps});return d.NextResponse.json({success:!0,...a},{headers:q})}if("test"===c){let a=await t();return d.NextResponse.json({success:!0,test:a},{headers:q})}if("clear-logs"===c)return await (0,m.clearAudit)(),d.NextResponse.json({success:!0},{headers:q});return d.NextResponse.json({error:"Unsupported Audit Proxy action"},{status:400,headers:q})}catch(c){let a=c.message||"Audit Proxy action failed",b=/Invalid client IP|Invalid CIDR|requires at least one|not allowed|Invalid CONNECT/.test(a)?400:500;return d.NextResponse.json({error:a},{status:b,headers:q})}}},87550:a=>{a.exports=require("better-sqlite3")},90173:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(4984),g=c(55511),{AUDIT_LOG_PATH:h,AUDIT_LOG_DIR:i,ensureAuditDir:j,loadConfig:k}=c(43096),{redactObject:l,scrubString:m}=c(48350),n="audit-proxy",o={expiresAt:0,config:null},p=null,q=null,r="",s=Promise.resolve(),t=Promise.resolve(),u=0,v=null,w=new Map,x={queue:[],workers:new Set,activeWorkers:0,clearing:!1,enqueued:0,written:0,dropped:0,failed:0,mysqlWritten:0,mysqlFailed:0,lastError:null,lastWrittenAt:null};function y(a){let b=Date.now();b-u<6e4||(u=b,console.warn(`[AuditProxy][PromptDB] ${a}`))}function z(a){x.lastError=String(a||"Audit store failure"),console.warn(`[AuditProxy][Store] ${x.lastError}`)}async function A(){let a=Date.now();if(o.expiresAt>a)return o.config;p||(p=Promise.resolve().then(c.bind(c,45903)));let b=await p,d=await b.getPromptLogDbConfig();return o={expiresAt:a+5e3,config:d},d}async function B(a){let b=g.createHash("sha256").update(JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!!a.ssl})).digest("hex");if(q&&r===b)return q;let d=s.then(async()=>{if(q&&r===b)return q;if(q){try{await q.end()}catch{}q=null,r=""}let d=await c.e(8491).then(c.t.bind(c,38491,19)),e=(d.default||d).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:3e3,waitForConnections:!0,connectionLimit:4,maxIdle:4,idleTimeout:6e4,queueLimit:100,enableKeepAlive:!0,keepAliveInitialDelay:3e4});return q=e,r=b,e});return s=d.then(()=>void 0,()=>void 0),d}function C(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return a;try{return JSON.parse(b)}catch{return a}}function D(a,b=0,c=[]){if(null==a||b>12||c.join("\n").length>=2e5)return c;if("string"==typeof a)return a.trim()&&c.push(a.trim()),c;if(Array.isArray(a)){for(let d of a)D(d,b+1,c);return c}if("object"!=typeof a)return c;for(let[d,e]of Object.entries(a)){let a=d.toLowerCase();["content","text","prompt","input","message","output_text"].includes(a)?D(e,b+1,c):b<8&&["messages","contents","parts","body","request","payload","response","choices","output","item","items"].includes(a)&&D(e,b+1,c)}return c}async function E(a,b,c,d){if(!c)return null;let e=g.createHash("sha256").update(c).digest("hex"),f=Buffer.byteLength(String(c||""),"utf8");return await a.query(`INSERT INTO prompt_log_payloads (
28
+ LIMIT ${j}`,[o]=await e.query({sql:k,timeout:2500},[g,h,i]),p={events:function(a,b){let c=new Map;for(let b of a||[]){let a=function(a){let b=function(a){if(!a)return{};if("object"==typeof a&&!Buffer.isBuffer(a))return a;try{return JSON.parse(Buffer.isBuffer(a)?a.toString("utf8"):String(a))}catch{return{}}}(a.meta_json),c=Number(b.requestCapturedBytes||0),d=Number(b.requestTotalBytes||c||0),e=Number(b.responseCapturedBytes||0),f=Number(b.responseTotalBytes||e||0);return{id:String(b.auditEventId||a.id),timestamp:function(a){if(a instanceof Date)return a.toISOString();let b=String(a||"").trim();if(!b)return new Date().toISOString();let c=b.replace(" ","T"),d=new Date(/(?:Z|[+-]\d{2}:?\d{2})$/i.test(c)?c:`${c}Z`);return Number.isNaN(d.getTime())?new Date().toISOString():d.toISOString()}(a.created_at),protocol:String(b.protocol||"http/1.1"),client:{ip:a.client_ip||"",port:m(a.client_port),userAgent:a.client_user_agent||""},provider:a.provider||"other",host:b.host||a.client_host||a.source_host||"",port:Number(b.port||443),method:b.method||"REQUEST",path:b.path||a.endpoint||"",model:a.model||null,status:m(a.status_code),durationMs:Number(b.durationMs||0),error:a.error_text||null,request:{headers:{},body:a.prompt_text||"",capturedBytes:c,totalBytes:d,wireSha256:b.requestWireSha256||null,truncated:!0===b.requestTruncated,previewOnly:!0},response:{headers:{},body:a.response_text||"",capturedBytes:e,totalBytes:f,wireSha256:b.responseWireSha256||null,truncated:!0===b.responseTruncated,previewOnly:!0},persistenceSource:"mysql"}}(b),d=a.id,e=String(b.stage||"");if(e===g){let b=c.get(d);(!b||n(a.timestamp)>=n(b.timestamp))&&c.set(d,a);continue}let f=c.get(d);f||(f={...a,request:{...a.request,body:""},response:{...a.response,body:""}},c.set(d,f)),n(a.timestamp)>n(f.timestamp)&&(f.timestamp=a.timestamp),!f.model&&a.model&&(f.model=a.model),!f.host&&a.host&&(f.host=a.host),!f.path&&a.path&&(f.path=a.path),e===h?f.request=a.request:e===i&&(f.response=a.response,f.status=a.status,f.error=a.error)}return[...c.values()].sort((a,b)=>n(b.timestamp)-n(a.timestamp)).slice(0,b)}(o||[],b),available:!0,reason:null,error:null};return c.cache={expiresAt:d+3e3,limit:b,result:p},p}catch(e){let a={events:[],available:!1,reason:null,error:e?.message||String(e)};return c.cache={expiresAt:d+3e3,limit:b,result:a},a}}var p=c(49083);let q="nodejs",r="force-dynamic",s=0,t={"Cache-Control":"no-store"};async function u(){let{response:a}=await (0,e.hH)();return a}function v(a){let b=Date.parse(a?.timestamp||0);return Number.isFinite(b)?b:0}async function w(){let a=await (0,p.runSelfTest)();if(a.ok)return{...a,attempts:1,recoveredAfterRetry:!1};await new Promise(a=>setTimeout(a,250));let b=await (0,p.runSelfTest)();return{...b,attempts:2,recoveredAfterRetry:!0===b.ok,firstAttempt:{passed:a.passed,total:a.total,durationMs:a.durationMs,failed:(a?.checks||[]).filter(a=>!a.ok).map(a=>({name:a.name,detail:a.detail||""}))}}}async function x(a){let b=await u();if(b)return b;try{let{searchParams:b}=new URL(a.url),c=Math.max(1,Math.min(500,Number(b.get("limit"))||50)),e=await (0,p.getSnapshot)(c),f=e.events||[],g=await o(c),h=function(a,...b){let c=new Map;for(let a of b)for(let b of a||[]){if(!b)continue;let a=String(b.id||`${b.timestamp||""}:${b.host||""}:${b.path||""}`),d=c.get(a);(!d||v(b)>v(d))&&c.set(a,b)}return[...c.values()].sort((a,b)=>v(b)-v(a)).slice(0,a)}(c,f,g.events),i=e.status?.auditStore||{},j={...e.status,auditStore:{...i,recentRead:{localCount:f.length,mysqlCount:g.events?.length||0,mergedCount:h.length,mysqlAvailable:!0===g.available,mysqlCached:!0===g.cached,mysqlReason:g.reason||null,mysqlError:g.error||null}}};return d.NextResponse.json({success:!0,...e,status:j,events:h},{headers:t})}catch(a){return d.NextResponse.json({error:a.message||"Failed to read Audit Proxy state"},{status:500,headers:t})}}async function y(a){let b=await u();if(b)return b;try{let b=await a.json(),c=(0,p.updateConfig)(b?.config||b||{});return d.NextResponse.json({success:!0,config:c},{headers:t})}catch(b){let a=/Stop or restart/.test(b.message||"")?409:400;return d.NextResponse.json({error:b.message||"Failed to save Audit Proxy configuration"},{status:a,headers:t})}}async function z(a){let b=await u();if(b)return b;try{let b=await a.json().catch(()=>({})),c=String(b?.action||"").trim().toLowerCase();if("start"===c)return d.NextResponse.json({success:!0,status:await (0,p.startProxy)(b.config||null)},{headers:t});if("stop"===c)return d.NextResponse.json({success:!0,status:await (0,p.stopProxy)()},{headers:t});if("restart"===c)return d.NextResponse.json({success:!0,status:await (0,p.restartProxy)(b.config||null)},{headers:t});if("save-client-host"===c){let a=(0,p.updateClientProxyHost)(b.clientProxyHost);return d.NextResponse.json({success:!0,config:a},{headers:t})}if("save-ip-filter"===c){let a=await (0,p.updateClientIpFilter)({enabled:!0===b.enabled,allowedClientIps:b.allowedClientIps});return d.NextResponse.json({success:!0,...a},{headers:t})}if("test"===c){let a=await w();return d.NextResponse.json({success:!0,test:a},{headers:t})}if("clear-logs"===c)return await (0,p.clearAudit)(),d.NextResponse.json({success:!0},{headers:t});return d.NextResponse.json({error:"Unsupported Audit Proxy action"},{status:400,headers:t})}catch(c){let a=c.message||"Audit Proxy action failed",b=/Invalid client IP|Invalid CIDR|requires at least one|not allowed|Invalid CONNECT/.test(a)?400:500;return d.NextResponse.json({error:a},{status:b,headers:t})}}},87550:a=>{a.exports=require("better-sqlite3")},90173:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(4984),g=c(55511),{AUDIT_LOG_PATH:h,AUDIT_LOG_DIR:i,ensureAuditDir:j,loadConfig:k}=c(43096),{redactObject:l,scrubString:m}=c(48350),n="audit-proxy",o="client",p="provider_response",q={expiresAt:0,config:null},r=null,s=null,t="",u=Promise.resolve(),v=Promise.resolve(),w=0,x=null,y=new Map,z={queue:[],workers:new Set,activeWorkers:0,clearing:!1,enqueued:0,written:0,dropped:0,failed:0,mysqlWritten:0,mysqlFailed:0,lastError:null,lastWrittenAt:null};function A(a){let b=Date.now();b-w<6e4||(w=b,console.warn(`[AuditProxy][PromptDB] ${a}`))}function B(a){z.lastError=String(a||"Audit store failure"),console.warn(`[AuditProxy][Store] ${z.lastError}`)}async function C(){let a=Date.now();if(q.expiresAt>a)return q.config;r||(r=Promise.resolve().then(c.bind(c,45903)));let b=await r,d=await b.getPromptLogDbConfig();return q={expiresAt:a+5e3,config:d},d}async function D(a){let b=g.createHash("sha256").update(JSON.stringify({host:a.host,port:Number(a.port||3306),database:a.database,username:a.username,password:a.password,ssl:!!a.ssl})).digest("hex");if(s&&t===b)return s;let d=u.then(async()=>{if(s&&t===b)return s;if(s){try{await s.end()}catch{}s=null,t=""}let d=await c.e(8491).then(c.t.bind(c,38491,19)),e=(d.default||d).createPool({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{rejectUnauthorized:!0}:void 0,connectTimeout:3e3,waitForConnections:!0,connectionLimit:4,maxIdle:4,idleTimeout:6e4,queueLimit:100,enableKeepAlive:!0,keepAliveInitialDelay:3e4});return s=e,t=b,e});return u=d.then(()=>void 0,()=>void 0),d}function E(a){let b=a?new Date(a):new Date;return(Number.isNaN(b.getTime())?new Date:b).toISOString().replace("T"," ").replace("Z","")}function F(a){if("string"!=typeof a)return a;let b=a.trim();if(!b||!b.startsWith("{")&&!b.startsWith("["))return a;try{return JSON.parse(b)}catch{return a}}function G(a,b=0,c=[]){if(null==a||b>12||c.join("\n").length>=2e5)return c;if("string"==typeof a)return a.trim()&&c.push(a.trim()),c;if(Array.isArray(a)){for(let d of a)G(d,b+1,c);return c}if("object"!=typeof a)return c;for(let[d,e]of Object.entries(a)){let a=d.toLowerCase();["content","text","prompt","input","message","output_text"].includes(a)?G(e,b+1,c):b<8&&["messages","contents","parts","body","request","payload","response","choices","output","item","items"].includes(a)&&G(e,b+1,c)}return c}async function H(a,b,c,d){if(!c)return null;let e=g.createHash("sha256").update(c).digest("hex"),f=Buffer.byteLength(String(c||""),"utf8");return await a.query(`INSERT INTO prompt_log_payloads (
28
29
  payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
29
30
  ) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
30
31
  ON DUPLICATE KEY UPDATE
@@ -34,18 +35,18 @@ Connection: close\r
34
35
  WHEN content_type = VALUES(content_type) THEN content_type
35
36
  WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
36
37
  ELSE content_type
37
- END`,[e,b,b,d,f,c]),{payloadHash:e,payloadSizeBytes:f}}async function F(a){let b=null;try{var c,d;let e,f,h,i,j,k=await A();if(!k?.enabled)return{written:!1,disabled:!0};if("mysql"!==String(k.type||"").toLowerCase())return y(`Audit mirroring requires MySQL; current type is ${k.type||"unknown"}`),{written:!1,unsupported:!0};let o=function(a){try{let b=JSON.parse(JSON.stringify(a??null)),c=l(b);return JSON.parse(m(JSON.stringify(c)))}catch{return m(String(a??""))}}(a),{requestPayload:p,responsePayload:q}=(e=o.request||{},f=o.response||{},{requestPayload:{timestamp:o.timestamp,protocol:o.protocol||"http/1.1",method:o.method,endpoint:o.path,headers:e.headers||{},body:C(e.body),capturedBytes:Number(e.capturedBytes||0),totalBytes:Number(e.totalBytes||0),wireSha256:e.wireSha256||null,truncated:!0===e.truncated},responsePayload:{timestamp:o.timestamp,protocol:o.protocol||"http/1.1",status:o.status,headers:f.headers||{},body:C(f.body),capturedBytes:Number(f.capturedBytes||0),totalBytes:Number(f.totalBytes||0),wireSha256:f.wireSha256||null,truncated:!0===f.truncated}}),r=JSON.stringify(p),s=JSON.stringify(q),t=(h=(c=o.timestamp)?new Date(c):new Date,(Number.isNaN(h.getTime())?new Date:h).toISOString().replace("T"," ").replace("Z","")),u=(d=o.client?.userAgent,(i=String(d||"").toLowerCase()).includes("claude")?{tool:"claude-code",label:"Claude Code"}:i.includes("codex")?{tool:"codex",label:"Codex"}:{tool:"audit-proxy",label:"Enterprise AI Audit Proxy"}),v=String(o.provider||"other"),w=o.model?String(o.model):null,x=String(o.host||""),z=Number(o.port||443),F=String(o.path||""),G=x?`https://${x}${443!==z?`:${z}`:""}${F}`:null,H=await B(k);b=await H.getConnection(),await b.beginTransaction();let I=await E(b,t,r,"request_json"),J=await E(b,t,s,"response_json"),K={source:n,auditEventId:o.id||null,protocol:o.protocol||"http/1.1",host:x||null,port:z,method:o.method||null,path:F||null,durationMs:Number(o.durationMs||0),requestCapturedBytes:Number(o.request?.capturedBytes||0),requestTotalBytes:Number(o.request?.totalBytes||0),requestWireSha256:o.request?.wireSha256||null,requestTruncated:o.request?.truncated===!0,responseCapturedBytes:Number(o.response?.capturedBytes||0),responseTotalBytes:Number(o.response?.totalBytes||0),responseWireSha256:o.response?.wireSha256||null,responseTruncated:o.response?.truncated===!0,payloadHash:I?.payloadHash||null,payloadSizeBytes:I?.payloadSizeBytes||0,payloadStorage:I?"prompt_log_payloads":null,responsePayloadHash:J?.payloadHash||null,responsePayloadSizeBytes:J?.payloadSizeBytes||0,responsePayloadStorage:J?"prompt_log_payloads":null},L=String(o.id||g.randomUUID());return await b.query(`INSERT INTO prompt_logs (
38
- id, created_at, session_id, source_format, target_format, model,
39
- endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
40
- client_ip, client_port, client_user_agent, client_host,
41
- source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
42
- response_payload_hash, response_payload_size_bytes,
43
- prompt_text, full_request_json,
44
- response_text, status_code, error_text, meta_json
45
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[L,t,`audit-${L}`,v,v,w,F||null,n,G,v,null,null,w?`${v}/${w}`:null,o.client?.ip||null,o.client?.port!=null?String(o.client.port):null,o.client?.userAgent||null,x||null,u.tool,u.label,x||null,o.request?.body||o.response?.body?"raw_json_preview":"metadata_only",I?.payloadHash||null,I?.payloadSizeBytes||0,J?.payloadHash||null,J?.payloadSizeBytes||0,(j=D(p?.body??p??{}).join("\n\n"))?j.slice(0,2e3):null,null,function(a){let b=a?.body;if("string"==typeof b)return b.slice(0,2e3)||null;let c=D(b??a??{}).join("\n\n");return c?c.slice(0,2e3):null}(q),null!=o.status?Number(o.status):null,o.error||null,JSON.stringify(K)]),await b.commit(),{written:!0}}catch(a){if(b)try{await b.rollback()}catch{}return y(`Failed to mirror audit event to prompt_logs: ${a.message||a}`),{written:!1,error:a.message||String(a)}}finally{try{b?.release()}catch{}}}async function G(a,b){let c;j();let f=(Number.isNaN((c=a?new Date(a):new Date).getTime())?new Date:c).toISOString().slice(0,10),g=w.get(f);if(!g){let a=await d.promises.readdir(i).catch(()=>[]),b=RegExp(`^audit-${f.replace(/-/g,"\\-")}(?:\\.(\\d+))?\\.jsonl$`),c=0;for(let d of a){let a=d.match(b);a&&(c=Math.max(c,Number(a[1]||0)))}let h=e.join(i,`audit-${f}${c?`.${c}`:""}.jsonl`),j=await d.promises.stat(h).catch(()=>null);g={segment:c,filePath:h,size:j?.size||0},w.set(f,g)}return g.size>0&&g.size+b>0x8000000&&(g={segment:g.segment+1,filePath:e.join(i,`audit-${f}.${g.segment+1}.jsonl`),size:0},w.set(f,g)),g}async function H(a){let b=`${JSON.stringify(a)}
46
- `,c=Buffer.byteLength(b),e=await G(a.timestamp,c);return await d.promises.appendFile(e.filePath,b,{encoding:"utf8",mode:384}),e.size+=c,e.filePath}async function I(a){try{let b,c=await a.finalize(),d=(t=(b=t.then(()=>H(c))).then(()=>void 0,()=>void 0),b).catch(a=>(z(`Local JSONL write failed: ${a.message||a}`),null)),e=F(c),[,f]=await Promise.all([d,e]);f?.written?x.mysqlWritten+=1:f?.error&&(x.mysqlFailed+=1),x.written+=1,x.lastWrittenAt=new Date().toISOString()}catch(a){x.failed+=1,z(a.message||a)}}async function J(){x.activeWorkers+=1;try{for(;!x.clearing;){let a=x.queue.shift();if(!a)break;await I(a)}}finally{x.activeWorkers=Math.max(0,x.activeWorkers-1)}}function K(){if(!x.clearing)for(;x.queue.length&&x.activeWorkers<4;){let a;a=J().finally(()=>{x.workers.delete(a),!x.clearing&&x.queue.length&&setImmediate(K)}),x.workers.add(a)}}function L(a){return"function"==typeof a&&(x.queue.length>=1e3?(x.dropped+=1,z(`Audit queue full; dropped event ${x.dropped}`),!1):(x.queue.push({finalize:a,enqueuedAt:Date.now()}),x.enqueued+=1,x.clearing||setImmediate(K),!0))}async function M(){j();let a=(await d.promises.readdir(i).catch(()=>[])).filter(a=>/^audit-\d{4}-\d{2}-\d{2}(?:\.\d+)?\.jsonl$/.test(a)).sort((a,b)=>b.localeCompare(a,void 0,{numeric:!0})).map(a=>e.join(i,a));return d.existsSync(h)&&a.push(h),a}async function N(a,b){let c=await d.promises.stat(a).catch(()=>null);if(!c?.size||b<=0)return[];let e=await d.promises.open(a,"r");try{let a=c.size,d=Buffer.alloc(0),f=0;for(;a>0&&d.length<0x4000000&&f<=b;){let b=Math.min(262144,a,0x4000000-d.length);a-=b;let c=Buffer.alloc(b);await e.read(c,0,b,a),d=Buffer.concat([c,d]),f+=c.reduce((a,b)=>a+ +(10===b),0)}let g=d.toString("utf8");if(a>0){let a=g.indexOf("\n");g=a>=0?g.slice(a+1):""}return g.split("\n").filter(Boolean).slice(-b).reverse().map(a=>{try{return JSON.parse(a)}catch{return null}}).filter(Boolean)}finally{await e.close()}}async function O(a){if(!d.existsSync(h))return;let b=`${h}.tmp`,c=d.createReadStream(h,{encoding:"utf8"}),e=d.createWriteStream(b,{encoding:"utf8",mode:384});for await(let b of f.createInterface({input:c,crlfDelay:1/0}))if(b)try{let c=JSON.parse(b);Date.parse(c.timestamp||0)>=a&&e.write(`${b}
47
- `)}catch{}await new Promise((a,b)=>{e.end(a),e.once("error",b)}),await d.promises.rename(b,h)}async function P(){j();let a=k(),b=Date.now()-24*a.retentionDays*36e5;for(let a of(await d.promises.readdir(i).catch(()=>[]))){if(!/^audit-\d{4}-\d{2}-\d{2}(?:\.\d+)?\.jsonl$/.test(a))continue;let c=e.join(i,a),f=await d.promises.stat(c).catch(()=>null);if(f&&f.mtimeMs<b)for(let[a,b]of(await d.promises.unlink(c).catch(()=>{}),w.entries()))b.filePath===c&&w.delete(a)}await O(b).catch(a=>z(`Legacy log prune failed: ${a.message||a}`))}async function Q(){let a=null;try{let b=await A();if(!b?.enabled||"mysql"!==String(b.type||"").toLowerCase())return;let c=await B(b);a=await c.getConnection(),await a.beginTransaction();let[d]=await a.query("SELECT payload_hash, response_payload_hash FROM prompt_logs WHERE stage = ?",[n]);await a.query("DELETE FROM prompt_logs WHERE stage = ?",[n]);let e=new Map;for(let a of d||[])for(let b of[a.payload_hash,a.response_payload_hash]){let a=String(b||"").trim();a&&e.set(a,(e.get(a)||0)+1)}for(let[b,c]of e.entries())await a.query("UPDATE prompt_log_payloads SET ref_count = GREATEST(ref_count - ?, 0) WHERE payload_hash = ?",[c,b]),await a.query(`DELETE p FROM prompt_log_payloads p
38
+ END`,[e,b,b,d,f,c]),{payloadHash:e,payloadSizeBytes:f}}async function I(a,b){await a.query(`INSERT INTO prompt_logs (
39
+ id, created_at, session_id, source_format, target_format, model,
40
+ endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
41
+ client_ip, client_port, client_user_agent, client_host,
42
+ source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
43
+ response_payload_hash, response_payload_size_bytes,
44
+ prompt_text, full_request_json,
45
+ response_text, status_code, error_text, meta_json
46
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[b.id,b.createdAt,b.sessionId,b.sourceFormat,b.targetFormat,b.model,b.endpoint,b.stage,b.providerUrl,b.provider,b.accountName,b.connectionId,b.displayModel,b.clientIp,b.clientPort,b.clientUserAgent,b.clientHost,b.sourceTool,b.sourceToolLabel,b.sourceHost,b.contentMode,b.payloadHash,b.payloadSizeBytes,b.responsePayloadHash,b.responsePayloadSizeBytes,b.promptText,b.fullRequestJson,b.responseText,b.statusCode,b.errorText,JSON.stringify(b.meta||{})])}async function J(a){let b=null;try{var c;let d,e,f,h,i=await C();if(!i?.enabled)return{written:!1,disabled:!0};if("mysql"!==String(i.type||"").toLowerCase())return A(`Audit mirroring requires MySQL; current type is ${i.type||"unknown"}`),{written:!1,unsupported:!0};let j=function(a){try{let b=JSON.parse(JSON.stringify(a??null)),c=l(b);return JSON.parse(m(JSON.stringify(c)))}catch{return m(String(a??""))}}(a),{requestPayload:k,responsePayload:q}=(d=j.request||{},e=j.response||{},{requestPayload:{timestamp:j.timestamp,protocol:j.protocol||"http/1.1",method:j.method,endpoint:j.path,headers:d.headers||{},body:F(d.body),capturedBytes:Number(d.capturedBytes||0),totalBytes:Number(d.totalBytes||0),wireSha256:d.wireSha256||null,truncated:!0===d.truncated},responsePayload:{timestamp:j.timestamp,protocol:j.protocol||"http/1.1",status:j.status,headers:e.headers||{},body:F(e.body),capturedBytes:Number(e.capturedBytes||0),totalBytes:Number(e.totalBytes||0),wireSha256:e.wireSha256||null,truncated:!0===e.truncated}}),r=JSON.stringify(k),s=JSON.stringify(q),t=Math.max(0,Number(j.durationMs||0)),u=new Date(j.timestamp||Date.now()),v=Number.isNaN(u.getTime())?new Date:u,w=new Date(v.getTime()-t),x=E(w),y=E(v),z=(c=j.client?.userAgent,(f=String(c||"").toLowerCase()).includes("claude")?{tool:"claude-code",label:"Claude Code"}:f.includes("codex")?{tool:"codex",label:"Codex"}:{tool:"audit-proxy",label:"Enterprise AI Audit Proxy"}),B=String(j.provider||"other"),J=j.model?String(j.model):null,K=String(j.host||""),L=Number(j.port||443),M=String(j.path||""),N=K?`https://${K}${443!==L?`:${L}`:""}${M}`:null,O=await D(i);b=await O.getConnection(),await b.beginTransaction();let P=await H(b,x,r,"request_json"),Q=await H(b,y,s,"response_json"),R={source:n,auditEventId:j.id||null,protocol:j.protocol||"http/1.1",host:K||null,port:L,method:j.method||null,path:M||null,durationMs:t,requestCapturedBytes:Number(j.request?.capturedBytes||0),requestTotalBytes:Number(j.request?.totalBytes||0),requestWireSha256:j.request?.wireSha256||null,requestTruncated:j.request?.truncated===!0,responseCapturedBytes:Number(j.response?.capturedBytes||0),responseTotalBytes:Number(j.response?.totalBytes||0),responseWireSha256:j.response?.wireSha256||null,responseTruncated:j.response?.truncated===!0,payloadHash:P?.payloadHash||null,payloadSizeBytes:P?.payloadSizeBytes||0,payloadStorage:P?"prompt_log_payloads":null,responsePayloadHash:Q?.payloadHash||null,responsePayloadSizeBytes:Q?.payloadSizeBytes||0,responsePayloadStorage:Q?"prompt_log_payloads":null},S=String(j.id||g.randomUUID()),T={sessionId:`audit-${S}`,sourceFormat:B,targetFormat:B,model:J,endpoint:M||null,providerUrl:N,provider:B,accountName:null,connectionId:null,displayModel:J?`${B}/${J}`:null,clientIp:j.client?.ip||null,clientPort:j.client?.port!=null?String(j.client.port):null,clientUserAgent:j.client?.userAgent||null,clientHost:K||null,sourceTool:z.tool,sourceToolLabel:z.label,sourceHost:K||null};return await I(b,{...T,id:`${S}:request`,createdAt:x,stage:o,contentMode:j.request?.body?"raw_json_preview":"metadata_only",payloadHash:P?.payloadHash||null,payloadSizeBytes:P?.payloadSizeBytes||0,responsePayloadHash:null,responsePayloadSizeBytes:0,promptText:(h=G(k?.body??k??{}).join("\n\n"))?h.slice(0,2e3):null,fullRequestJson:null,responseText:null,statusCode:null,errorText:null,meta:{...R,auditDirection:"request"}}),await I(b,{...T,id:`${S}:response`,createdAt:y,stage:p,contentMode:j.response?.body?"raw_json_preview":"metadata_only",payloadHash:null,payloadSizeBytes:0,responsePayloadHash:Q?.payloadHash||null,responsePayloadSizeBytes:Q?.payloadSizeBytes||0,promptText:null,fullRequestJson:null,responseText:function(a){let b=a?.body;if("string"==typeof b)return b.slice(0,2e3)||null;let c=G(b??a??{}).join("\n\n");return c?c.slice(0,2e3):null}(q),statusCode:null!=j.status?Number(j.status):null,errorText:j.error||null,meta:{...R,auditDirection:"response"}}),await b.commit(),{written:!0,rowsWritten:2}}catch(a){if(b)try{await b.rollback()}catch{}return A(`Failed to mirror audit event to prompt_logs: ${a.message||a}`),{written:!1,error:a.message||String(a)}}finally{try{b?.release()}catch{}}}async function K(a,b){let c;j();let f=(Number.isNaN((c=a?new Date(a):new Date).getTime())?new Date:c).toISOString().slice(0,10),g=y.get(f);if(!g){let a=await d.promises.readdir(i).catch(()=>[]),b=RegExp(`^audit-${f.replace(/-/g,"\\-")}(?:\\.(\\d+))?\\.jsonl$`),c=0;for(let d of a){let a=d.match(b);a&&(c=Math.max(c,Number(a[1]||0)))}let h=e.join(i,`audit-${f}${c?`.${c}`:""}.jsonl`),j=await d.promises.stat(h).catch(()=>null);g={segment:c,filePath:h,size:j?.size||0},y.set(f,g)}return g.size>0&&g.size+b>0x8000000&&(g={segment:g.segment+1,filePath:e.join(i,`audit-${f}.${g.segment+1}.jsonl`),size:0},y.set(f,g)),g}async function L(a){let b=`${JSON.stringify(a)}
47
+ `,c=Buffer.byteLength(b),e=await K(a.timestamp,c);return await d.promises.appendFile(e.filePath,b,{encoding:"utf8",mode:384}),e.size+=c,e.filePath}async function M(a){try{let b,c=await a.finalize(),d=(v=(b=v.then(()=>L(c))).then(()=>void 0,()=>void 0),b).catch(a=>(B(`Local JSONL write failed: ${a.message||a}`),null)),e=J(c),[,f]=await Promise.all([d,e]);f?.written?z.mysqlWritten+=1:f?.error&&(z.mysqlFailed+=1),z.written+=1,z.lastWrittenAt=new Date().toISOString()}catch(a){z.failed+=1,B(a.message||a)}}async function N(){z.activeWorkers+=1;try{for(;!z.clearing;){let a=z.queue.shift();if(!a)break;await M(a)}}finally{z.activeWorkers=Math.max(0,z.activeWorkers-1)}}function O(){if(!z.clearing)for(;z.queue.length&&z.activeWorkers<4;){let a;a=N().finally(()=>{z.workers.delete(a),!z.clearing&&z.queue.length&&setImmediate(O)}),z.workers.add(a)}}function P(a){return"function"==typeof a&&(z.queue.length>=1e3?(z.dropped+=1,B(`Audit queue full; dropped event ${z.dropped}`),!1):(z.queue.push({finalize:a,enqueuedAt:Date.now()}),z.enqueued+=1,z.clearing||setImmediate(O),!0))}async function Q(){j();let a=(await d.promises.readdir(i).catch(()=>[])).filter(a=>/^audit-\d{4}-\d{2}-\d{2}(?:\.\d+)?\.jsonl$/.test(a)).sort((a,b)=>b.localeCompare(a,void 0,{numeric:!0})).map(a=>e.join(i,a));return d.existsSync(h)&&a.push(h),a}async function R(a,b){let c=await d.promises.stat(a).catch(()=>null);if(!c?.size||b<=0)return[];let e=await d.promises.open(a,"r");try{let a=c.size,d=Buffer.alloc(0),f=0;for(;a>0&&d.length<0x4000000&&f<=b;){let b=Math.min(262144,a,0x4000000-d.length);a-=b;let c=Buffer.alloc(b);await e.read(c,0,b,a),d=Buffer.concat([c,d]),f+=c.reduce((a,b)=>a+ +(10===b),0)}let g=d.toString("utf8");if(a>0){let a=g.indexOf("\n");g=a>=0?g.slice(a+1):""}return g.split("\n").filter(Boolean).slice(-b).reverse().map(a=>{try{return JSON.parse(a)}catch{return null}}).filter(Boolean)}finally{await e.close()}}async function S(a=50){let b=Math.max(1,Math.min(1e3,Number(a)||50)),c=[];for(let a of(await Q())){if(c.length>=b)break;let d=await R(a,b-c.length);c.push(...d)}return c.slice(0,b)}async function T(a){if(!d.existsSync(h))return;let b=`${h}.tmp`,c=d.createReadStream(h,{encoding:"utf8"}),e=d.createWriteStream(b,{encoding:"utf8",mode:384});for await(let b of f.createInterface({input:c,crlfDelay:1/0}))if(b)try{let c=JSON.parse(b);Date.parse(c.timestamp||0)>=a&&e.write(`${b}
48
+ `)}catch{}await new Promise((a,b)=>{e.end(a),e.once("error",b)}),await d.promises.rename(b,h)}async function U(){j();let a=k(),b=Date.now()-24*a.retentionDays*36e5;for(let a of(await d.promises.readdir(i).catch(()=>[]))){if(!/^audit-\d{4}-\d{2}-\d{2}(?:\.\d+)?\.jsonl$/.test(a))continue;let c=e.join(i,a),f=await d.promises.stat(c).catch(()=>null);if(f&&f.mtimeMs<b)for(let[a,b]of(await d.promises.unlink(c).catch(()=>{}),y.entries()))b.filePath===c&&y.delete(a)}await T(b).catch(a=>B(`Legacy log prune failed: ${a.message||a}`))}async function V(a=5e3){let b=Date.now()+Math.max(0,Number(a)||0);for(;(z.queue.length||z.activeWorkers)&&Date.now()<b;){O();let a=[...z.workers];a.length?await Promise.race([Promise.allSettled(a),new Promise(a=>setTimeout(a,50))]):await new Promise(a=>setTimeout(a,10))}return 0===z.queue.length&&0===z.activeWorkers}async function W(){let a=null;try{let b=await C();if(!b?.enabled||"mysql"!==String(b.type||"").toLowerCase())return;let c=await D(b);a=await c.getConnection(),await a.beginTransaction();let d="(stage = ? OR (session_id LIKE 'audit-%' AND stage IN (?, ?)))",[e]=await a.query(`SELECT payload_hash, response_payload_hash FROM prompt_logs WHERE ${d}`,[n,o,p]);await a.query(`DELETE FROM prompt_logs WHERE ${d}`,[n,o,p]);let f=new Map;for(let a of e||[])for(let b of[a.payload_hash,a.response_payload_hash]){let a=String(b||"").trim();a&&f.set(a,(f.get(a)||0)+1)}for(let[b,c]of f.entries())await a.query("UPDATE prompt_log_payloads SET ref_count = GREATEST(ref_count - ?, 0) WHERE payload_hash = ?",[c,b]),await a.query(`DELETE p FROM prompt_log_payloads p
48
49
  WHERE p.payload_hash = ?
49
50
  AND p.last_seen_at < UTC_TIMESTAMP(3) - INTERVAL 5 MINUTE
50
51
  AND NOT EXISTS (SELECT 1 FROM prompt_logs r WHERE r.payload_hash = p.payload_hash)
51
- AND NOT EXISTS (SELECT 1 FROM prompt_logs r WHERE r.response_payload_hash = p.payload_hash)`,[b]);await a.commit()}catch(b){if(a)try{await a.rollback()}catch{}y(`Failed to clear mirrored audit rows: ${b.message||b}`)}finally{try{a?.release()}catch{}}}a.exports={appendAudit:function(a){return L(async()=>a)},enqueueAuditJob:L,readRecent:async function a(b=50){let c=Math.max(1,Math.min(1e3,Number(b)||50)),d=[];for(let a of(await M())){if(d.length>=c)break;let b=await N(a,c-d.length);d.push(...b)}return d.slice(0,c)},clearAudit:async function a(){x.clearing=!0,x.queue.length=0,x.workers.size&&await Promise.allSettled([...x.workers]),j();let a=await d.promises.readdir(i).catch(()=>[]);await Promise.all(a.filter(a=>a.endsWith(".jsonl")).map(a=>d.promises.unlink(e.join(i,a)).catch(()=>{}))),await d.promises.writeFile(h,"",{mode:384}).catch(()=>{}),w.clear(),await Q(),x.clearing=!1,x.queue.length&&setImmediate(K)},pruneExpired:P,startAuditMaintenance:function(){v||(v=setInterval(()=>void P(),36e5),v.unref?.())},stopAuditMaintenance:function(){v&&clearInterval(v),v=null},flushAuditQueue:async function a(b=5e3){let c=Date.now()+Math.max(0,Number(b)||0);for(;(x.queue.length||x.activeWorkers)&&Date.now()<c;){K();let a=[...x.workers];a.length?await Promise.race([Promise.allSettled(a),new Promise(a=>setTimeout(a,50))]):await new Promise(a=>setTimeout(a,10))}return 0===x.queue.length&&0===x.activeWorkers},getAuditStoreStats:function(){return{queueDepth:x.queue.length,queueLimit:1e3,workerRunning:x.activeWorkers>0,workerConcurrency:4,activeWorkers:x.activeWorkers,mysqlPoolConnections:4,enqueued:x.enqueued,written:x.written,dropped:x.dropped,failed:x.failed,mysqlWritten:x.mysqlWritten,mysqlFailed:x.mysqlFailed,lastError:x.lastError,lastWrittenAt:x.lastWrittenAt,logDirectory:i}},appendPromptLog:F}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,5592,5573,4433,7669,402,3767],()=>b(b.s=3697));module.exports=c})();
52
+ AND NOT EXISTS (SELECT 1 FROM prompt_logs r WHERE r.response_payload_hash = p.payload_hash)`,[b]);await a.commit()}catch(b){if(a)try{await a.rollback()}catch{}A(`Failed to clear mirrored audit rows: ${b.message||b}`)}finally{try{a?.release()}catch{}}}a.exports={appendAudit:function(a){return P(async()=>a)},enqueueAuditJob:P,readRecent:S,clearAudit:async function a(){z.clearing=!0,z.queue.length=0,z.workers.size&&await Promise.allSettled([...z.workers]),j();let a=await d.promises.readdir(i).catch(()=>[]);await Promise.all(a.filter(a=>a.endsWith(".jsonl")).map(a=>d.promises.unlink(e.join(i,a)).catch(()=>{}))),await d.promises.writeFile(h,"",{mode:384}).catch(()=>{}),y.clear(),await W(),z.clearing=!1,z.queue.length&&setImmediate(O)},pruneExpired:U,startAuditMaintenance:function(){x||(x=setInterval(()=>void U(),36e5),x.unref?.())},stopAuditMaintenance:function(){x&&clearInterval(x),x=null},flushAuditQueue:V,getAuditStoreStats:function(){return{queueDepth:z.queue.length,queueLimit:1e3,workerRunning:z.activeWorkers>0,workerConcurrency:4,activeWorkers:z.activeWorkers,mysqlPoolConnections:4,enqueued:z.enqueued,written:z.written,dropped:z.dropped,failed:z.failed,mysqlWritten:z.mysqlWritten,mysqlFailed:z.mysqlFailed,lastError:z.lastError,lastWrittenAt:z.lastWrittenAt,logDirectory:i}},appendPromptLog:J}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,5592,5573,4433,7669,402,3767],()=>b(b.s=3697));module.exports=c})();
@@ -1 +1 @@
1
- "use strict";(()=>{var a={};a.id=552,a.ids=[552,1998],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15798:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>p,PUT:()=>q});var d=c(23211),e=c(71998),f=c(16655),g=c(89718),h=c(30869),i=c(75681);let j=[{model:"auto",alias:"auto",description:"AutoCombo balanced routing"},{model:"auto/coding",alias:"auto/coding",description:"AutoCombo coding-focused routing"},{model:"auto/fast",alias:"auto/fast",description:"AutoCombo low-latency routing"},{model:"auto/cheap",alias:"auto/cheap",description:"AutoCombo low-cost routing"},{model:"auto/offline",alias:"auto/offline",description:"AutoCombo local/offline-friendly routing"}];function k(a){return String(a??"").trim()}function l(a){return k(a?.exposedModel||a?.model||a?.name||a?.id)}function m(a){return k(a?.name||a?.id||l(a))}function n(a,b,c){let d=k(c.model||c.alias);!d||b.has(d)||(b.add(d),a.push(c))}async function o(){let a=new Map;try{for(let b of await (0,g.Uv)()||[]){let c=l(b)||m(b)||k(b?.id);c&&!a.has(c)&&a.set(c,b)}}catch(a){console.log("Could not fetch legacy combos for /api/models:",a?.message||a)}return[...a.values()]}async function p(){try{let a=await (0,e.OM)(),b=await (0,f.vF)(),c=h.eh.filter(a=>!(b[(0,i.wG)(a.provider)||a.provider]||b[a.provider]||[]).includes(a.model)).map(b=>{let c=`${b.provider}/${b.model}`;return{...b,fullModel:c,alias:a[c]||b.model}}),g=new Set(c.map(a=>a.fullModel||a.model).filter(Boolean));for(let a of j)n(c,g,{provider:"auto",model:a.model,fullModel:a.model,alias:a.alias,virtual:!0,description:a.description});for(let a of await o()||[]){if(a?.enabled===!1)continue;let b=l(a);b&&n(c,g,{provider:"combo",model:b,fullModel:b,alias:b,virtual:!0,combo:!0,comboType:"legacy",name:m(a),description:k(a.description)})}return d.NextResponse.json({models:c})}catch(a){return console.log("Error fetching models:",a),d.NextResponse.json({error:"Failed to fetch models"},{status:500})}}async function q(a){try{let{model:b,alias:c}=await a.json();if(!b||!c)return d.NextResponse.json({error:"Model and alias required"},{status:400});let f=await (0,e.OM)();if(Object.entries(f).find(([a,d])=>d===c&&a!==b))return d.NextResponse.json({error:"Alias already in use"},{status:400});return await (0,e.o5)(b,c),d.NextResponse.json({success:!0,model:b,alias:c})}catch(a){return console.log("Error updating alias:",a),d.NextResponse.json({error:"Failed to update alias"},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(39422)},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19225:(a,b,c)=>{a.exports=c(44870)},19771:a=>{a.exports=require("process")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30869:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(75681),f=c(81329);d.rE;let g={npmPackageName:"@jheavenknows/bluerouter",installCmd:"npm i -g @jheavenknows/bluerouter",installCmdLatest:"npm install -g @jheavenknows/bluerouter@latest",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","alims-intl":"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},33873:a=>{a.exports=require("path")},34631:a=>{a.exports=require("tls")},39006:a=>{a.exports={rE:"5.3.64"}},41204:a=>{a.exports=require("string_decoder")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},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()}},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{a.exports=import("pg")},66136:a=>{a.exports=require("timers")},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)},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},75063:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"D:\\bluerouter\\src\\app\\api\\models\\route.js",nextConfigOutput:"standalone",userland:()=>c(15798),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79428:a=>{a.exports=require("buffer")},79748:a=>{a.exports=require("fs/promises")},80099:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},91645:a=>{a.exports=require("net")},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()}}},94735:a=>{a.exports=require("events")},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)}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,5592,402,5681,4404,6064],()=>b(b.s=75063));module.exports=c})();
1
+ "use strict";(()=>{var a={};a.id=552,a.ids=[552,1998],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1932:a=>{a.exports=require("url")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15798:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>p,PUT:()=>q});var d=c(23211),e=c(71998),f=c(16655),g=c(89718),h=c(30869),i=c(75681);let j=[{model:"auto",alias:"auto",description:"AutoCombo balanced routing"},{model:"auto/coding",alias:"auto/coding",description:"AutoCombo coding-focused routing"},{model:"auto/fast",alias:"auto/fast",description:"AutoCombo low-latency routing"},{model:"auto/cheap",alias:"auto/cheap",description:"AutoCombo low-cost routing"},{model:"auto/offline",alias:"auto/offline",description:"AutoCombo local/offline-friendly routing"}];function k(a){return String(a??"").trim()}function l(a){return k(a?.exposedModel||a?.model||a?.name||a?.id)}function m(a){return k(a?.name||a?.id||l(a))}function n(a,b,c){let d=k(c.model||c.alias);!d||b.has(d)||(b.add(d),a.push(c))}async function o(){let a=new Map;try{for(let b of await (0,g.Uv)()||[]){let c=l(b)||m(b)||k(b?.id);c&&!a.has(c)&&a.set(c,b)}}catch(a){console.log("Could not fetch legacy combos for /api/models:",a?.message||a)}return[...a.values()]}async function p(){try{let a=await (0,e.OM)(),b=await (0,f.vF)(),c=h.eh.filter(a=>!(b[(0,i.wG)(a.provider)||a.provider]||b[a.provider]||[]).includes(a.model)).map(b=>{let c=`${b.provider}/${b.model}`;return{...b,fullModel:c,alias:a[c]||b.model}}),g=new Set(c.map(a=>a.fullModel||a.model).filter(Boolean));for(let a of j)n(c,g,{provider:"auto",model:a.model,fullModel:a.model,alias:a.alias,virtual:!0,description:a.description});for(let a of await o()||[]){if(a?.enabled===!1)continue;let b=l(a);b&&n(c,g,{provider:"combo",model:b,fullModel:b,alias:b,virtual:!0,combo:!0,comboType:"legacy",name:m(a),description:k(a.description)})}return d.NextResponse.json({models:c})}catch(a){return console.log("Error fetching models:",a),d.NextResponse.json({error:"Failed to fetch models"},{status:500})}}async function q(a){try{let{model:b,alias:c}=await a.json();if(!b||!c)return d.NextResponse.json({error:"Model and alias required"},{status:400});let f=await (0,e.OM)();if(Object.entries(f).find(([a,d])=>d===c&&a!==b))return d.NextResponse.json({error:"Alias already in use"},{status:400});return await (0,e.o5)(b,c),d.NextResponse.json({success:!0,model:b,alias:c})}catch(a){return console.log("Error updating alias:",a),d.NextResponse.json({error:"Failed to update alias"},{status:500})}}},16655:(a,b,c)=>{c.d(b,{oF:()=>d.oF,tm:()=>d.tm,vF:()=>d.vF});var d=c(39422)},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19225:(a,b,c)=>{a.exports=c(44870)},19771:a=>{a.exports=require("process")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30869:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(75681),f=c(81329);d.rE;let g={npmPackageName:"@jheavenknows/bluerouter",installCmd:"npm i -g @jheavenknows/bluerouter",installCmdLatest:"npm install -g @jheavenknows/bluerouter@latest",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","alims-intl":"https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},33873:a=>{a.exports=require("path")},34631:a=>{a.exports=require("tls")},39006:a=>{a.exports={rE:"5.3.65"}},41204:a=>{a.exports=require("string_decoder")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},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()}},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64939:a=>{a.exports=import("pg")},66136:a=>{a.exports=require("timers")},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)},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},75063:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"D:\\bluerouter\\src\\app\\api\\models\\route.js",nextConfigOutput:"standalone",userland:()=>c(15798),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79428:a=>{a.exports=require("buffer")},79748:a=>{a.exports=require("fs/promises")},80099:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},91645:a=>{a.exports=require("net")},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()}}},94735:a=>{a.exports=require("events")},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)}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,5592,402,5681,4404,6064],()=>b(b.s=75063));module.exports=c})();