@jheavenknows/bluerouter 2.0.1 → 2.0.2

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 (503) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +5 -5
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  68. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  69. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  70. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  71. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  73. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +162 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +23 -23
  106. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +162 -1
  110. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +162 -1
  112. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +162 -1
  114. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  238. package/app/.next-cli-build/server/app/callback.html +1 -1
  239. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  240. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  241. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  242. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  243. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  244. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  247. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
  248. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  252. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  253. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  254. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  255. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  257. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
  258. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  259. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  262. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
  263. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  264. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
  265. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  267. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  268. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  269. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  270. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  272. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  273. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  274. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  275. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  277. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  278. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  279. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  280. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  282. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  283. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  284. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  285. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  287. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  288. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  289. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  290. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  293. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  295. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  298. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  299. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  302. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  303. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  305. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  308. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  309. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  313. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  314. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  316. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  319. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  320. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  323. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  324. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  325. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  326. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  329. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  330. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  333. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  334. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  336. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +4 -4
  339. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  343. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +4 -4
  344. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
  346. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
  349. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  350. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  353. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
  354. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
  356. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  359. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  360. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  364. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  365. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  367. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  368. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  369. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  370. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  371. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  373. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  374. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  375. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  376. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  377. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  379. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  380. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  381. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  383. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  384. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  385. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  386. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  387. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  389. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  390. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  391. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  394. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  395. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  396. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  397. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  401. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  402. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  403. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  404. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  405. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  406. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  407. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  408. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  411. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  412. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  413. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  414. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  416. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  417. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  418. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  419. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  421. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  422. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  423. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  424. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  425. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  426. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  427. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  428. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  429. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  430. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  431. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  432. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  433. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  435. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  436. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  437. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  439. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  440. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  441. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  442. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  443. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  444. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  445. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  446. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  447. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  448. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  449. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/index.html +1 -1
  451. package/app/.next-cli-build/server/app/index.rsc +3 -3
  452. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  453. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  454. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  455. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  456. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  457. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  459. package/app/.next-cli-build/server/app/landing.html +1 -1
  460. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  461. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  462. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  463. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  464. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  466. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  467. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  469. package/app/.next-cli-build/server/app/login.html +1 -1
  470. package/app/.next-cli-build/server/app/login.rsc +3 -3
  471. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  472. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  473. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  474. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  475. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  476. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  477. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  478. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  479. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  480. package/app/.next-cli-build/server/app-paths-manifest.json +5 -5
  481. package/app/.next-cli-build/server/chunks/3104.js +1 -1
  482. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  483. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  484. package/app/.next-cli-build/server/chunks/5901.js +324 -0
  485. package/app/.next-cli-build/server/chunks/6663.js +81 -0
  486. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  487. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  488. package/app/.next-cli-build/server/chunks/7795.js +1 -1
  489. package/app/.next-cli-build/server/chunks/8895.js +2 -2
  490. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  491. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  492. package/app/.next-cli-build/server/pages/404.html +1 -1
  493. package/app/.next-cli-build/server/pages/500.html +1 -1
  494. package/app/.next-cli-build/static/chunks/{1321-564f99250d5a1d60.js → 1321-cb4f926d97da6c18.js} +1 -1
  495. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/upgrade-2.0.1-to-2.0.2-2.0.2-20260610-134032/data.sqlite +0 -0
  496. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  497. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  498. package/app/package.json +1 -1
  499. package/package.json +1 -1
  500. package/app/.next-cli-build/server/chunks/7197.js +0 -162
  501. package/app/.next-cli-build/server/chunks/7242.js +0 -81
  502. /package/app/.next-cli-build/static/{sROuCBBQq9L0b6sYTF2E5 → IiS8fxVXlLsLbuiajlh3O}/_buildManifest.js +0 -0
  503. /package/app/.next-cli-build/static/{sROuCBBQq9L0b6sYTF2E5 → IiS8fxVXlLsLbuiajlh3O}/_ssgManifest.js +0 -0
@@ -0,0 +1,324 @@
1
+ "use strict";exports.id=5901,exports.ids=[5901],exports.modules={35901:(a,b,c)=>{c.d(b,{Wl:()=>z,jk:()=>v});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(45903);let i=Number(process.env.REQUEST_ERROR_BODY_SNIPPET_CHARS||4096);function j(a){return String(a??"").trim()}function k(a){return j(a).toLowerCase()}function l(a,b=null){let c=Number(a);return Number.isFinite(c)?c:b}function m(a,b=1e3){let c=j(a).replace(/\s+/g," ");return c?c.length>b?`${c.slice(0,Math.max(0,b-1))}…`:c:""}function n(){return g().join(process.env.DATA_DIR||"/var/lib/bluerouter","logs","promptLogs.sqlite")}async function o(){let a=(0,h.I6)(await (0,h.L7)());return a.sqlitePath||(a.sqlitePath=n()),a}async function p(a){e().mkdirSync(g().dirname(a),{recursive:!0});try{let b=await Promise.resolve().then(c.t.bind(c,87550,23)),d=new(b.default||b)(a);return d.pragma("journal_mode = WAL"),d.pragma("busy_timeout = 5000"),{type:"sqlite",all:(a,b=[])=>d.prepare(a).all(...b),get:(a,b=[])=>d.prepare(a).get(...b),run:(a,b=[])=>d.prepare(a).run(...b),exec:a=>d.exec(a),close:()=>d.close()}}catch{let b=new(await Promise.resolve().then(c.t.bind(c,79868,23))).DatabaseSync(a);return b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 5000"),{type:"sqlite",all:(a,c=[])=>b.prepare(a).all(...c),get:(a,c=[])=>b.prepare(a).get(...c),run:(a,c=[])=>b.prepare(a).run(...c),exec:a=>b.exec(a),close:()=>b.close()}}}async function q(a){let b=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:a.host,port:Number(a.port||5432),database:a.database,user:a.username,password:a.password,ssl:!!a.ssl&&{rejectUnauthorized:!1}});return await b.connect(),{type:"postgres",query:async(a,c=[])=>(await b.query(a,c)).rows,queryOne:async(a,c=[])=>(await b.query(a,c)).rows[0]||null,exec:async a=>{await b.query(a)},close:async()=>{await b.end()}}}async function r(a){let b=await c.e(8491).then(c.t.bind(c,38491,19)),d=await b.createConnection({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,multipleStatements:!0,dateStrings:!0});return{type:"mysql",query:async(a,b=[])=>(await d.query(a,b))[0],queryOne:async(a,b=[])=>((await d.query(a,b))[0]||[])[0]||null,exec:async a=>{await d.query(a)},close:async()=>{await d.end()}}}async function s(a){if("sqlite"===a.type)return p(a.sqlitePath||n());if("postgres"===a.type)return q(a);if("mysql"===a.type)return r(a);throw Error(`Unsupported prompt log database type: ${a.type}`)}async function t(a){"sqlite"===a.type?a.exec(`
2
+ CREATE TABLE IF NOT EXISTS request_error_events (
3
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
4
+ created_at TEXT NOT NULL,
5
+ request_id TEXT,
6
+ attempt_index INTEGER DEFAULT 0,
7
+ provider TEXT,
8
+ model TEXT,
9
+ connection_id TEXT,
10
+ account_name TEXT,
11
+ endpoint TEXT,
12
+ gateway_status_code INTEGER,
13
+ upstream_status_code INTEGER,
14
+ status_class TEXT,
15
+ error_source TEXT,
16
+ error_type TEXT,
17
+ error_code TEXT,
18
+ error_message_short TEXT,
19
+ upstream_error_body_snippet TEXT,
20
+ upstream_request_id TEXT,
21
+ latency_ms INTEGER DEFAULT 0,
22
+ api_key_id TEXT,
23
+ api_key_fingerprint TEXT,
24
+ client_ip TEXT,
25
+ client_ip_normalized TEXT,
26
+ source_tool TEXT,
27
+ source_tool_label TEXT,
28
+ session_id TEXT,
29
+ meta_json TEXT
30
+ );
31
+ CREATE INDEX IF NOT EXISTS idx_ree_created_at ON request_error_events(created_at DESC);
32
+ CREATE INDEX IF NOT EXISTS idx_ree_request_id ON request_error_events(request_id);
33
+ CREATE INDEX IF NOT EXISTS idx_ree_gateway_status ON request_error_events(gateway_status_code, created_at DESC);
34
+ CREATE INDEX IF NOT EXISTS idx_ree_upstream_status ON request_error_events(upstream_status_code, created_at DESC);
35
+ CREATE INDEX IF NOT EXISTS idx_ree_error_type ON request_error_events(error_type, created_at DESC);
36
+ CREATE INDEX IF NOT EXISTS idx_ree_error_code ON request_error_events(error_code, created_at DESC);
37
+ CREATE INDEX IF NOT EXISTS idx_ree_error_source ON request_error_events(error_source, created_at DESC);
38
+ CREATE INDEX IF NOT EXISTS idx_ree_provider_model ON request_error_events(provider, model, created_at DESC);
39
+ CREATE INDEX IF NOT EXISTS idx_ree_connection ON request_error_events(connection_id, created_at DESC);
40
+ CREATE INDEX IF NOT EXISTS idx_ree_api_key ON request_error_events(api_key_id, created_at DESC);
41
+ CREATE INDEX IF NOT EXISTS idx_ree_api_fp ON request_error_events(api_key_fingerprint, created_at DESC);
42
+ CREATE INDEX IF NOT EXISTS idx_ree_client_ip ON request_error_events(client_ip_normalized, created_at DESC);
43
+ CREATE INDEX IF NOT EXISTS idx_ree_source_tool ON request_error_events(source_tool, created_at DESC);
44
+ CREATE INDEX IF NOT EXISTS idx_ree_session ON request_error_events(session_id, created_at DESC);
45
+ `):"postgres"===a.type?await a.exec(`
46
+ CREATE TABLE IF NOT EXISTS request_error_events (
47
+ id BIGSERIAL PRIMARY KEY,
48
+ created_at TIMESTAMPTZ NOT NULL,
49
+ request_id TEXT,
50
+ attempt_index INTEGER DEFAULT 0,
51
+ provider TEXT,
52
+ model TEXT,
53
+ connection_id TEXT,
54
+ account_name TEXT,
55
+ endpoint TEXT,
56
+ gateway_status_code INTEGER,
57
+ upstream_status_code INTEGER,
58
+ status_class TEXT,
59
+ error_source TEXT,
60
+ error_type TEXT,
61
+ error_code TEXT,
62
+ error_message_short TEXT,
63
+ upstream_error_body_snippet TEXT,
64
+ upstream_request_id TEXT,
65
+ latency_ms INTEGER DEFAULT 0,
66
+ api_key_id TEXT,
67
+ api_key_fingerprint TEXT,
68
+ client_ip TEXT,
69
+ client_ip_normalized TEXT,
70
+ source_tool TEXT,
71
+ source_tool_label TEXT,
72
+ session_id TEXT,
73
+ meta_json JSONB
74
+ );
75
+ CREATE INDEX IF NOT EXISTS idx_ree_created_at ON request_error_events(created_at DESC);
76
+ CREATE INDEX IF NOT EXISTS idx_ree_request_id ON request_error_events(request_id);
77
+ CREATE INDEX IF NOT EXISTS idx_ree_gateway_status ON request_error_events(gateway_status_code, created_at DESC);
78
+ CREATE INDEX IF NOT EXISTS idx_ree_upstream_status ON request_error_events(upstream_status_code, created_at DESC);
79
+ CREATE INDEX IF NOT EXISTS idx_ree_error_type ON request_error_events(error_type, created_at DESC);
80
+ CREATE INDEX IF NOT EXISTS idx_ree_error_code ON request_error_events(error_code, created_at DESC);
81
+ CREATE INDEX IF NOT EXISTS idx_ree_error_source ON request_error_events(error_source, created_at DESC);
82
+ CREATE INDEX IF NOT EXISTS idx_ree_provider_model ON request_error_events(provider, model, created_at DESC);
83
+ CREATE INDEX IF NOT EXISTS idx_ree_connection ON request_error_events(connection_id, created_at DESC);
84
+ CREATE INDEX IF NOT EXISTS idx_ree_api_key ON request_error_events(api_key_id, created_at DESC);
85
+ CREATE INDEX IF NOT EXISTS idx_ree_api_fp ON request_error_events(api_key_fingerprint, created_at DESC);
86
+ CREATE INDEX IF NOT EXISTS idx_ree_client_ip ON request_error_events(client_ip_normalized, created_at DESC);
87
+ CREATE INDEX IF NOT EXISTS idx_ree_source_tool ON request_error_events(source_tool, created_at DESC);
88
+ CREATE INDEX IF NOT EXISTS idx_ree_session ON request_error_events(session_id, created_at DESC);
89
+ `):"mysql"===a.type&&await a.exec(`
90
+ CREATE TABLE IF NOT EXISTS request_error_events (
91
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
92
+ created_at DATETIME(3) NOT NULL,
93
+ request_id VARCHAR(80),
94
+ attempt_index INT DEFAULT 0,
95
+ provider VARCHAR(120),
96
+ model VARCHAR(255),
97
+ connection_id VARCHAR(120),
98
+ account_name VARCHAR(255),
99
+ endpoint TEXT,
100
+ gateway_status_code INT,
101
+ upstream_status_code INT,
102
+ status_class VARCHAR(32),
103
+ error_source VARCHAR(80),
104
+ error_type VARCHAR(120),
105
+ error_code VARCHAR(160),
106
+ error_message_short TEXT,
107
+ upstream_error_body_snippet TEXT,
108
+ upstream_request_id VARCHAR(255),
109
+ latency_ms INT DEFAULT 0,
110
+ api_key_id VARCHAR(120),
111
+ api_key_fingerprint VARCHAR(120),
112
+ client_ip VARCHAR(64),
113
+ client_ip_normalized VARCHAR(64),
114
+ source_tool VARCHAR(80),
115
+ source_tool_label VARCHAR(120),
116
+ session_id VARCHAR(255),
117
+ meta_json JSON,
118
+ INDEX idx_ree_created_at (created_at),
119
+ INDEX idx_ree_request_id (request_id),
120
+ INDEX idx_ree_gateway_status (gateway_status_code, created_at),
121
+ INDEX idx_ree_upstream_status (upstream_status_code, created_at),
122
+ INDEX idx_ree_error_type (error_type, created_at),
123
+ INDEX idx_ree_error_code (error_code, created_at),
124
+ INDEX idx_ree_error_source (error_source, created_at),
125
+ INDEX idx_ree_provider_model (provider, model, created_at),
126
+ INDEX idx_ree_connection (connection_id, created_at),
127
+ INDEX idx_ree_api_key (api_key_id, created_at),
128
+ INDEX idx_ree_api_fp (api_key_fingerprint, created_at),
129
+ INDEX idx_ree_client_ip (client_ip_normalized, created_at),
130
+ INDEX idx_ree_source_tool (source_tool, created_at),
131
+ INDEX idx_ree_session (session_id, created_at)
132
+ ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
133
+ `)}function u({statusCode:a,errorSource:b,errorCode:c,message:d}){let e=k(`${c} ${d}`),f=Number(a);return e.includes("context")||e.includes("maximum")||e.includes("token")||e.includes("too long")||413===f?"context_length_exceeded":401===f||e.includes("unauthorized")||e.includes("invalid api key")?"auth_error":403===f||e.includes("forbidden")||e.includes("not allowed")?"forbidden":429===f||e.includes("rate limit")?"rate_limit":e.includes("quota")?"quota_exceeded":e.includes("model_not_found")||e.includes("model not found")||e.includes("invalid model")?"model_not_found":e.includes("timeout")||k(b).includes("timeout")?"timeout":e.includes("abort")||499===f?"client_abort":e.includes("invalid json")?"invalid_json":e.includes("invalid sse")?"invalid_sse":f>=500?"provider_unavailable":f>=400?"invalid_request":j(c)||"unknown_error"}async function v(a={}){let b;try{if(!(b=await o()).enabled||!1===b.logErrors)return{skipped:!0,reason:"prompt_log_db_disabled"};let d=await s(b);try{var c;let b;await t(d);let e=function(a={}){let b,c,d=l(a.gatewayStatusCode??a.statusCode,null),e=l(a.upstreamStatusCode,null),f=m(a.errorMessageShort||a.errorMessage||a.message||a.error?.message||a.error||""),g=j(a.errorCode)||j(a.code)||u({statusCode:e||d,errorSource:a.errorSource,message:f}),h=j(a.errorType)||u({statusCode:e||d,errorSource:a.errorSource,errorCode:g,message:f}),n=j(a.clientIp||a.sourceIp),o=a.meta&&"object"==typeof a.meta?a.meta:{};return{createdAt:a.createdAt||a.timestamp||new Date().toISOString(),requestId:j(a.requestId||o.requestId),attemptIndex:l(a.attemptIndex,0)||0,provider:j(a.provider)||"unknown",model:j(a.model)||"unknown",connectionId:j(a.connectionId),accountName:j(a.accountName||a.connectionName),endpoint:j(a.endpoint),gatewayStatusCode:d,upstreamStatusCode:e,statusClass:j(a.statusClass)||function(a,b,c){let d=l(b,l(a,null)),e=k(c);if(e.includes("timeout"))return"timeout";if(e.includes("network"))return"network";if(Number.isFinite(d)){if(d>=500)return"5xx";if(d>=400)return"4xx";if(d>=300)return"3xx";if(d>=200)return"2xx"}return e||"error"}(d,e,a.errorSource),errorSource:j(a.errorSource)||"unknown_error_source",errorType:h,errorCode:g,errorMessageShort:f,upstreamErrorBodySnippet:function(a,b=i){if(null==a)return"";let c="";if("string"==typeof a)c=a;else try{c=JSON.stringify(a)}catch{c=String(a)}return m(c,b)}(a.upstreamErrorBodySnippet??a.upstreamBody??a.responseBody??a.providerResponseBody),upstreamRequestId:j(a.upstreamRequestId),latencyMs:l(a.latencyMs,0)||0,apiKeyId:j(a.apiKeyId),apiKeyFingerprint:j(a.apiKeyFingerprint)||((b=j(a.apiKey))?b.length<=12?b:`${b.slice(0,8)}...${b.slice(-4)}`:"local-no-key"),clientIp:n,clientIpNormalized:j(a.clientIpNormalized)||((c=j(n))?c.split(",")[0].trim().replace(/^::ffff:/,""):""),sourceTool:j(a.sourceTool||o.sourceTool),sourceToolLabel:j(a.sourceToolLabel||o.sourceToolLabel),sessionId:j(a.sessionId||o.sessionId),metaJson:JSON.stringify({...o,storedBy:"request_error_events"})}}(a),f=(c=d.type,b=["created_at","request_id","attempt_index","provider","model","connection_id","account_name","endpoint","gateway_status_code","upstream_status_code","status_class","error_source","error_type","error_code","error_message_short","upstream_error_body_snippet","upstream_request_id","latency_ms","api_key_id","api_key_fingerprint","client_ip","client_ip_normalized","source_tool","source_tool_label","session_id","meta_json"],"postgres"===c?`INSERT INTO request_error_events (${b.join(", ")}) VALUES (${b.map((a,b)=>`$${b+1}`).join(", ")})`:`INSERT INTO request_error_events (${b.join(", ")}) VALUES (${b.map(()=>"?").join(", ")})`),g=[e.createdAt,e.requestId,e.attemptIndex,e.provider,e.model,e.connectionId,e.accountName,e.endpoint,e.gatewayStatusCode,e.upstreamStatusCode,e.statusClass,e.errorSource,e.errorType,e.errorCode,e.errorMessageShort,e.upstreamErrorBodySnippet,e.upstreamRequestId,e.latencyMs,e.apiKeyId,e.apiKeyFingerprint,e.clientIp,e.clientIpNormalized,e.sourceTool,e.sourceToolLabel,e.sessionId,e.metaJson];return"sqlite"===d.type?d.run(f,g):await d.query(f,g),{ok:!0,event:e}}finally{await d.close()}}catch(a){return console.warn(`[RequestErrorEvents] save failed: ${a?.message||a}`),{ok:!1,error:a?.message||String(a)}}}function w(a={},b={}){let c=l(a.requests,0)||0;return{key:j(a.key)||"unknown",label:j(a.label||a.key)||"unknown",requests:c,success:0,errors:c,errorRate:+!!c,promptTokens:0,completionTokens:0,totalTokens:0,cost:0,lastSeen:a.lastSeen||a.last_seen||"",...b}}async function x(a,b,c=[]){return"sqlite"===a.type?a.all(b,c):a.query(b,c)}async function y(a,b,c=[]){return"sqlite"===a.type?a.get(b,c):a.queryOne(b,c)}async function z(a={}){let b=await o();if(!b.enabled)return{disabled:!0,total:0,topErrors:[],byStatusCode:[],byStatusClass:[],byErrorType:[],byErrorSource:[],recent:[]};let c=await s(b);try{var d;let b;await t(c);let e=function(a={},b="sqlite"){let c=[],d=[],e=a=>(d.push(a),"postgres"===b)?`$${d.length}`:"?",f="postgres"===b?"ILIKE":"LIKE";if(a.dateFrom&&c.push(`created_at >= ${e(a.dateFrom)}`),a.dateTo&&c.push(`created_at <= ${e(a.dateTo)}`),a.provider&&c.push(`provider = ${e(a.provider)}`),a.model&&c.push(`model = ${e(a.model)}`),a.connectionId&&c.push(`connection_id = ${e(a.connectionId)}`),a.clientIp&&c.push(`client_ip_normalized ${f} ${e(`%${a.clientIp}%`)}`),a.sourceTool&&c.push(`(source_tool ${f} ${e(`%${a.sourceTool}%`)} OR source_tool_label ${f} ${e(`%${a.sourceTool}%`)})`),a.sessionId&&c.push(`session_id = ${e(a.sessionId)}`),a.endpoint&&c.push(`endpoint ${f} ${e(`%${a.endpoint}%`)}`),a.statusCode&&c.push(`(gateway_status_code = ${e(Number(a.statusCode))} OR upstream_status_code = ${e(Number(a.statusCode))})`),a.status){let b=j(a.status);/^\d+$/.test(b)?c.push(`(gateway_status_code = ${e(Number(b))} OR upstream_status_code = ${e(Number(b))})`):c.push(`(status_class = ${e(b)} OR error_type = ${e(b)} OR error_code = ${e(b)})`)}if(a.errorType&&c.push(`error_type = ${e(a.errorType)}`),a.errorCode&&c.push(`error_code = ${e(a.errorCode)}`),a.errorSource&&c.push(`error_source = ${e(a.errorSource)}`),a.apiKey){let b=`%${a.apiKey}%`;c.push(`(api_key_id ${f} ${e(b)} OR api_key_fingerprint ${f} ${e(b)})`)}if(a.keyword){let b=`%${a.keyword}%`;c.push(`(error_message_short ${f} ${e(b)} OR upstream_error_body_snippet ${f} ${e(b)} OR request_id ${f} ${e(b)} OR error_code ${f} ${e(b)})`)}return{clause:c.length?`WHERE ${c.join(" AND ")}`:"",params:d}}(a,c.type),f=await y(c,`SELECT COUNT(*) AS total FROM request_error_events ${e.clause}`,e.params),g=l(f?.total,0)||0,h="postgres"===c.type?`$${e.params.length+1}`:"?",i=[...e.params,100],k=(d=c.type,b="mysql"===d?"CHAR":"TEXT",`COALESCE(CAST(upstream_status_code AS ${b}), CAST(gateway_status_code AS ${b}), status_class, 'error')`),m="mysql"===c.type?`CONCAT(${k}, '|', COALESCE(NULLIF(error_type, ''), 'unknown_error'), '|', COALESCE(NULLIF(provider, ''), 'unknown'), '|', COALESCE(NULLIF(model, ''), 'unknown'), '|', COALESCE(NULLIF(endpoint, ''), 'unknown'))`:`${k} || '|' || COALESCE(NULLIF(error_type, ''), 'unknown_error') || '|' || COALESCE(NULLIF(provider, ''), 'unknown') || '|' || COALESCE(NULLIF(model, ''), 'unknown') || '|' || COALESCE(NULLIF(endpoint, ''), 'unknown')`,n=await x(c,`SELECT
134
+ ${m} AS key,
135
+ ${k} AS status,
136
+ COALESCE(NULLIF(error_type, ''), 'unknown_error') AS errorType,
137
+ COALESCE(NULLIF(error_code, ''), 'unknown_error') AS errorCode,
138
+ COALESCE(NULLIF(error_source, ''), 'unknown') AS errorSource,
139
+ COALESCE(NULLIF(provider, ''), 'unknown') AS provider,
140
+ COALESCE(NULLIF(model, ''), 'unknown') AS model,
141
+ COALESCE(NULLIF(endpoint, ''), 'unknown') AS endpoint,
142
+ COALESCE(NULLIF(api_key_fingerprint, ''), 'local-no-key') AS apiKey,
143
+ COUNT(*) AS requests,
144
+ MAX(created_at) AS lastSeen,
145
+ MAX(error_message_short) AS sampleMessage
146
+ FROM request_error_events
147
+ ${e.clause}
148
+ GROUP BY ${k}, COALESCE(NULLIF(error_type, ''), 'unknown_error'), COALESCE(NULLIF(error_code, ''), 'unknown_error'), COALESCE(NULLIF(error_source, ''), 'unknown'), COALESCE(NULLIF(provider, ''), 'unknown'), COALESCE(NULLIF(model, ''), 'unknown'), COALESCE(NULLIF(endpoint, ''), 'unknown'), COALESCE(NULLIF(api_key_fingerprint, ''), 'local-no-key')
149
+ ORDER BY requests DESC, lastSeen DESC
150
+ LIMIT ${h}`,i),o=async(a,b=a)=>(await x(c,`SELECT COALESCE(NULLIF(${a}, ''), 'unknown') AS key, COALESCE(NULLIF(${a}, ''), 'unknown') AS label, COUNT(*) AS requests, MAX(created_at) AS lastSeen
151
+ FROM request_error_events
152
+ ${e.clause}
153
+ GROUP BY COALESCE(NULLIF(${a}, ''), 'unknown')
154
+ ORDER BY requests DESC, lastSeen DESC
155
+ LIMIT ${h}`,i)).map(a=>w(a,{[b]:a.key})),p="postgres"===c.type?`$${e.params.length+1}`:"?",q=await x(c,`SELECT id, created_at AS createdAt, request_id AS requestId, provider, model, connection_id AS connectionId, endpoint,
156
+ gateway_status_code AS gatewayStatusCode, upstream_status_code AS upstreamStatusCode, status_class AS statusClass,
157
+ error_source AS errorSource, error_type AS errorType, error_code AS errorCode,
158
+ error_message_short AS errorMessageShort, api_key_fingerprint AS apiKeyFingerprint,
159
+ client_ip_normalized AS clientIp, source_tool AS sourceTool, session_id AS sessionId, latency_ms AS latencyMs
160
+ FROM request_error_events
161
+ ${e.clause}
162
+ ORDER BY created_at DESC
163
+ LIMIT ${p}`,[...e.params,50]);return{disabled:!1,total:g,topErrors:n.map(a=>w(a,{label:`${a.status||"error"} \xb7 ${a.errorType||a.errorCode||"unknown_error"}`,status:a.status||"error",errorType:a.errorType||"",errorCode:a.errorCode||"",errorSource:a.errorSource||"",provider:a.provider||"unknown",model:a.model||"unknown",endpoint:a.endpoint||"unknown",apiKey:a.apiKey||"",sampleMessage:a.sampleMessage||""})),byStatusCode:await o(k,"status"),byStatusClass:await o("status_class","statusClass"),byErrorType:await o("error_type","errorType"),byErrorSource:await o("error_source","errorSource"),byProvider:await o("provider","provider"),byModel:await o("model","model"),byClientIp:await o("client_ip_normalized","clientIp"),bySourceTool:await o("source_tool","sourceTool"),recent:q}}catch(a){return{disabled:!0,total:0,error:a?.message||String(a),topErrors:[],byStatusCode:[],byStatusClass:[],byErrorType:[],byErrorSource:[],recent:[]}}finally{await c.close()}}},45903:(a,b,c)=>{c.d(b,{AP:()=>m,BY:()=>w,I6:()=>k,L7:()=>l,dX:()=>v,r:()=>j});var d=c(89718),e=c(33873),f=c.n(e),g=c(29021),h=c.n(g);let i={enabled:!1,type:"sqlite",sqlitePath:"",host:"",port:"",database:"",username:"",password:"",ssl:!1,createDatabase:!1,logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:!1,logErrors:!0,retentionDays:30};function j(a){let b={...a||{}};return b.password&&(b.password="********"),b}function k(a={},b={}){let c={...i,...b||{},...a||{}};c.enabled=!!c.enabled,c.type=["sqlite","postgres","mysql"].includes(c.type)?c.type:"sqlite",c.ssl=!!c.ssl,c.createDatabase=!!c.createDatabase,c.logClientRequest=!1!==c.logClientRequest,c.logSourceRequest=!1!==c.logSourceRequest,c.logTargetRequest=!1!==c.logTargetRequest,c.logProviderResponse=!0===c.logProviderResponse,c.logErrors=!1!==c.logErrors;let d=Number(c.retentionDays);return c.retentionDays=Number.isFinite(d)&&d>0?Math.floor(d):30,"********"===c.password&&(c.password=b?.password||""),c.host=String(c.host||"").trim(),c.port=String(c.port||"").trim(),c.database=String(c.database||"").trim(),c.username=String(c.username||"").trim(),c.password=String(c.password||""),c.sqlitePath=String(c.sqlitePath||"").trim(),c}async function l(){let a=await (0,d.mt)();return{...i,...a?.promptLogDb||{}}}async function m(a){let b=await (0,d.mt)(),c=k(a,b?.promptLogDb||{});return await (0,d.Xx)({promptLogDb:c}),c}async function n(a){let b,d=a.sqlitePath||(b=process.env.DATA_DIR||"/var/lib/bluerouter",f().join(b,"logs","promptLogs.sqlite"));h().mkdirSync(f().dirname(d),{recursive:!0});try{let a=await Promise.resolve().then(c.t.bind(c,87550,23)),b=new(a.default||a)(d);return b.pragma("journal_mode = WAL"),b.pragma("busy_timeout = 5000"),{type:"sqlite",sqlitePath:d,exec(a){b.exec(a)},all:(a,c=[])=>b.prepare(a).all(...c),close(){b.close()}}}catch{let a=new(await Promise.resolve().then(c.t.bind(c,79868,23))).DatabaseSync(d);return a.exec("PRAGMA journal_mode = WAL"),a.exec("PRAGMA busy_timeout = 5000"),{type:"sqlite",sqlitePath:d,exec(b){a.exec(b)},all:(b,c=[])=>a.prepare(b).all(...c),close(){a.close()}}}}async function o(a,b=null){let d=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:a.host,port:Number(a.port||5432),database:b||a.database,user:a.username,password:a.password,ssl:!!a.ssl&&{rejectUnauthorized:!1}});return await d.connect(),{type:"postgres",client:d,async exec(a){await d.query(a)},async close(){await d.end()}}}async function p(a,b=!0){let d=await c.e(8491).then(c.t.bind(c,38491,19)),e=await d.createConnection({host:a.host,port:Number(a.port||3306),database:b?a.database:void 0,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,multipleStatements:!0});return{type:"mysql",conn:e,async exec(a){await e.query(a)},async close(){await e.end()}}}async function q(a){let b=new Set(a.all("PRAGMA table_info(prompt_logs)").map(a=>a.name)),c=(c,d)=>{b.has(c)||a.exec(`ALTER TABLE prompt_logs ADD COLUMN ${c} ${d};`)};c("client_ip","TEXT"),c("client_port","TEXT"),c("client_user_agent","TEXT"),c("client_host","TEXT"),c("source_tool","TEXT"),c("source_tool_label","TEXT"),c("source_host","TEXT"),c("provider","TEXT"),c("account_name","TEXT"),c("connection_id","TEXT"),c("display_model","TEXT"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip ON prompt_logs(client_ip);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool ON prompt_logs(source_tool);")}async function r(a){await a.exec(`
164
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_ip TEXT;
165
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_port TEXT;
166
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_user_agent TEXT;
167
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_host TEXT;
168
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool TEXT;
169
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool_label TEXT;
170
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_host TEXT;
171
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS provider TEXT;
172
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS account_name TEXT;
173
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS connection_id TEXT;
174
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS display_model TEXT;
175
+
176
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
177
+ ON prompt_logs(client_ip);
178
+
179
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
180
+ ON prompt_logs(source_tool);
181
+ `)}async function s(a,b,c,d){let[e]=await a.query(`
182
+ SELECT 1 AS found
183
+ FROM INFORMATION_SCHEMA.COLUMNS
184
+ WHERE TABLE_SCHEMA = ?
185
+ AND TABLE_NAME = ?
186
+ AND COLUMN_NAME = ?
187
+ LIMIT 1
188
+ `,[b,c,d]);return e.length>0}async function t(a,b,c,d){let[e]=await a.query(`
189
+ SELECT 1 AS found
190
+ FROM INFORMATION_SCHEMA.STATISTICS
191
+ WHERE TABLE_SCHEMA = ?
192
+ AND TABLE_NAME = ?
193
+ AND INDEX_NAME = ?
194
+ LIMIT 1
195
+ `,[b,c,d]);return e.length>0}async function u(a,b){let c=async(c,d)=>{await s(a.conn,b.database,"prompt_logs",c)||await a.conn.query(`ALTER TABLE prompt_logs ADD COLUMN ${c} ${d}`)};await c("client_ip","VARCHAR(64)"),await c("client_port","VARCHAR(32)"),await c("client_user_agent","TEXT"),await c("client_host","TEXT"),await c("source_tool","VARCHAR(80)"),await c("source_tool_label","VARCHAR(120)"),await c("source_host","VARCHAR(255)"),await c("provider","VARCHAR(120)"),await c("account_name","VARCHAR(255)"),await c("connection_id","VARCHAR(120)"),await c("display_model","VARCHAR(512)"),await t(a.conn,b.database,"prompt_logs","idx_prompt_logs_client_ip")||await a.conn.query("CREATE INDEX idx_prompt_logs_client_ip ON prompt_logs(client_ip)"),await t(a.conn,b.database,"prompt_logs","idx_prompt_logs_source_tool")||await a.conn.query("CREATE INDEX idx_prompt_logs_source_tool ON prompt_logs(source_tool)")}async function v(a=null){let b=k(a||await l());if("sqlite"===b.type){let a=await n(b);try{return a.exec(`
196
+ CREATE TABLE IF NOT EXISTS prompt_logs (
197
+ id TEXT PRIMARY KEY,
198
+ created_at TEXT NOT NULL,
199
+ session_id TEXT,
200
+ source_format TEXT,
201
+ target_format TEXT,
202
+ model TEXT,
203
+ endpoint TEXT,
204
+ stage TEXT,
205
+ provider_url TEXT,
206
+ provider TEXT,
207
+ account_name TEXT,
208
+ connection_id TEXT,
209
+ display_model TEXT,
210
+ client_ip TEXT,
211
+ client_port TEXT,
212
+ client_user_agent TEXT,
213
+ client_host TEXT,
214
+ source_tool TEXT,
215
+ source_tool_label TEXT,
216
+ source_host TEXT,
217
+ prompt_text TEXT,
218
+ full_request_json TEXT,
219
+ response_text TEXT,
220
+ status_code INTEGER,
221
+ error_text TEXT,
222
+ meta_json TEXT
223
+ );
224
+
225
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_at
226
+ ON prompt_logs(created_at DESC);
227
+
228
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_model
229
+ ON prompt_logs(model);
230
+
231
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage
232
+ ON prompt_logs(stage);
233
+
234
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
235
+ ON prompt_logs(session_id);
236
+
237
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
238
+ ON prompt_logs(client_ip);
239
+
240
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
241
+ ON prompt_logs(source_tool);
242
+ `),await q(a),{ok:!0,type:"sqlite",message:"SQLite prompt log schema is ready",sqlitePath:a.sqlitePath}}finally{a.close()}}if("postgres"===b.type){if(!b.host||!b.database||!b.username)throw Error("PostgreSQL host, database, and username are required");if(b.createDatabase){let a=await o(b,"postgres");try{let c=await a.client.query("SELECT 1 FROM pg_database WHERE datname = $1",[b.database]);if(0===c.rowCount){let c=b.database.replace(/"/g,'""');await a.client.query(`CREATE DATABASE "${c}"`)}}finally{await a.close()}}let a=await o(b);try{return await a.exec(`
243
+ CREATE TABLE IF NOT EXISTS prompt_logs (
244
+ id TEXT PRIMARY KEY,
245
+ created_at TIMESTAMPTZ NOT NULL,
246
+ session_id TEXT,
247
+ source_format TEXT,
248
+ target_format TEXT,
249
+ model TEXT,
250
+ endpoint TEXT,
251
+ stage TEXT,
252
+ provider_url TEXT,
253
+ provider TEXT,
254
+ account_name TEXT,
255
+ connection_id TEXT,
256
+ display_model TEXT,
257
+ client_ip TEXT,
258
+ client_port TEXT,
259
+ client_user_agent TEXT,
260
+ client_host TEXT,
261
+ source_tool TEXT,
262
+ source_tool_label TEXT,
263
+ source_host TEXT,
264
+ prompt_text TEXT,
265
+ full_request_json JSONB,
266
+ response_text TEXT,
267
+ status_code INTEGER,
268
+ error_text TEXT,
269
+ meta_json JSONB
270
+ );
271
+
272
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_at
273
+ ON prompt_logs(created_at DESC);
274
+
275
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_model
276
+ ON prompt_logs(model);
277
+
278
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage
279
+ ON prompt_logs(stage);
280
+
281
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
282
+ ON prompt_logs(session_id);
283
+
284
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
285
+ ON prompt_logs(client_ip);
286
+
287
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
288
+ ON prompt_logs(source_tool);
289
+ `),await r(a),{ok:!0,type:"postgres",message:"PostgreSQL prompt log schema is ready"}}finally{await a.close()}}if("mysql"===b.type){if(!b.host||!b.database||!b.username)throw Error("MySQL host, database, and username are required");if(b.createDatabase){let a=await p(b,!1);try{let c=b.database.replace(/`/g,"``");await a.exec(`CREATE DATABASE IF NOT EXISTS \`${c}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`)}finally{await a.close()}}let a=await p(b,!0);try{return await a.exec(`
290
+ CREATE TABLE IF NOT EXISTS prompt_logs (
291
+ id VARCHAR(80) PRIMARY KEY,
292
+ created_at DATETIME(3) NOT NULL,
293
+ session_id VARCHAR(255),
294
+ source_format VARCHAR(80),
295
+ target_format VARCHAR(80),
296
+ model VARCHAR(255),
297
+ endpoint TEXT,
298
+ stage VARCHAR(80),
299
+ provider_url TEXT,
300
+ provider VARCHAR(120),
301
+ account_name VARCHAR(255),
302
+ connection_id VARCHAR(120),
303
+ display_model VARCHAR(512),
304
+ client_ip VARCHAR(64),
305
+ client_port VARCHAR(32),
306
+ client_user_agent TEXT,
307
+ client_host TEXT,
308
+ source_tool VARCHAR(80),
309
+ source_tool_label VARCHAR(120),
310
+ source_host VARCHAR(255),
311
+ prompt_text LONGTEXT,
312
+ full_request_json JSON,
313
+ response_text LONGTEXT,
314
+ status_code INT,
315
+ error_text TEXT,
316
+ meta_json JSON,
317
+ INDEX idx_prompt_logs_created_at (created_at),
318
+ INDEX idx_prompt_logs_model (model),
319
+ INDEX idx_prompt_logs_stage (stage),
320
+ INDEX idx_prompt_logs_session (session_id),
321
+ INDEX idx_prompt_logs_client_ip (client_ip),
322
+ INDEX idx_prompt_logs_source_tool (source_tool)
323
+ );
324
+ `),await u(a,b),{ok:!0,type:"mysql",message:"MySQL prompt log schema is ready"}}finally{await a.close()}}throw Error(`Unsupported database type: ${b.type}`)}async function w(a=null){let b=k(a||await l());if("sqlite"===b.type){let a=await n(b);try{return a.exec("SELECT 1;"),{ok:!0,type:"sqlite",message:"SQLite connection OK",sqlitePath:a.sqlitePath}}finally{a.close()}}if("postgres"===b.type){let a=await o(b);try{return await a.exec("SELECT 1;"),{ok:!0,type:"postgres",message:"PostgreSQL connection OK"}}finally{await a.close()}}if("mysql"===b.type){let a=await p(b,!0);try{return await a.exec("SELECT 1;"),{ok:!0,type:"mysql",message:"MySQL connection OK"}}finally{await a.close()}}throw Error(`Unsupported database type: ${b.type}`)}}};
@@ -0,0 +1,81 @@
1
+ "use strict";exports.id=6663,exports.ids=[6663],exports.modules={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()}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(56403)},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)}},97242:(a,b,c)=>{c.d(b,{DU:()=>y,Ws:()=>z,_3:()=>B,nv:()=>A});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(45903);let i=new Set;function j(a,b,c=null){let d=Number(a);if(!Number.isFinite(d)||d<0)return b;let e=Math.floor(d);return c?Math.min(e,c):e}function k(a){return String(a||"").trim()}async function l(){let a=(0,h.I6)(await (0,h.L7)());return a.sqlitePath||(a.sqlitePath=g().join(process.env.DATA_DIR||"/var/lib/bluerouter","logs","promptLogs.sqlite")),a}async function m(a){try{let b=await Promise.resolve().then(c.t.bind(c,87550,23)),d=new(b.default||b)(a);return d.pragma("busy_timeout = 5000"),{all:(a,b={})=>d.prepare(a).all(b),get:(a,b={})=>d.prepare(a).get(b),run:(a,b={})=>d.prepare(a).run(b),close:()=>d.close()}}catch{let b=new(await Promise.resolve().then(c.t.bind(c,79868,23))).DatabaseSync(a);return b.exec("PRAGMA busy_timeout = 5000"),{all:(a,c={})=>b.prepare(a).all(c),get:(a,c={})=>b.prepare(a).get(c),run:(a,c={})=>b.prepare(a).run(c),close:()=>b.close()}}}async function n(a){let b=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:a.host,port:Number(a.port||5432),database:a.database,user:a.username,password:a.password,ssl:!!a.ssl&&{rejectUnauthorized:!1}});return await b.connect(),{query:async(a,c=[])=>(await b.query(a,c)).rows,queryOne:async(a,c=[])=>(await b.query(a,c)).rows[0]||null,async exec(a,c=[]){await b.query(a,c)},async close(){await b.end()}}}async function o(a){let b=await c.e(8491).then(c.t.bind(c,38491,19)),d=await b.createConnection({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,dateStrings:!0});return{async query(a,b=[]){let[c]=await d.query(a,b);return c},async queryOne(a,b=[]){let[c]=await d.query(a,b);return c[0]||null},async exec(a,b=[]){await d.query(a,b)},async close(){await d.end()}}}async function p(a){if(!e().existsSync(a.sqlitePath))return;let b=await m(a.sqlitePath);try{if(!b.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'prompt_logs'"))return;for(let a of["CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_id ON prompt_logs(created_at DESC, id)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage_created_at ON prompt_logs(stage, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_model_created_at ON prompt_logs(model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_display_model_created_at ON prompt_logs(display_model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_session_created_at ON prompt_logs(session_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip_created_at ON prompt_logs(client_ip, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool_created_at ON prompt_logs(source_tool, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_connection_created_at ON prompt_logs(connection_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_account_created_at ON prompt_logs(account_name, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_provider_created_at ON prompt_logs(provider, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_status_created_at ON prompt_logs(status_code, created_at DESC)"])b.run(a)}finally{b.close()}}async function q(a){let b=await n(a);try{for(let a of["CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_id ON prompt_logs (created_at DESC, id)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage_created_at ON prompt_logs (stage, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_model_created_at ON prompt_logs (model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_display_model_created_at ON prompt_logs (display_model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_session_created_at ON prompt_logs (session_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip_created_at ON prompt_logs (client_ip, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool_created_at ON prompt_logs (source_tool, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_connection_created_at ON prompt_logs (connection_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_account_created_at ON prompt_logs (account_name, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_provider_created_at ON prompt_logs (provider, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_status_created_at ON prompt_logs (status_code, created_at DESC)"])await b.exec(a)}finally{await b.close()}}async function r(a,b,c){let d=await a.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_logs' AND INDEX_NAME = ?",[b]);0===Number(d?.count||0)&&await a.exec(c)}async function s(a){let b=await o(a);try{let a=await b.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_logs'");if(0===Number(a?.count||0))return;for(let[a,c]of[["idx_prompt_logs_created_id","CREATE INDEX idx_prompt_logs_created_id ON prompt_logs (created_at DESC, id)"],["idx_prompt_logs_stage_created_at","CREATE INDEX idx_prompt_logs_stage_created_at ON prompt_logs (stage, created_at DESC)"],["idx_prompt_logs_model_created_at","CREATE INDEX idx_prompt_logs_model_created_at ON prompt_logs (model, created_at DESC)"],["idx_prompt_logs_display_model_created_at","CREATE INDEX idx_prompt_logs_display_model_created_at ON prompt_logs (display_model, created_at DESC)"],["idx_prompt_logs_session_created_at","CREATE INDEX idx_prompt_logs_session_created_at ON prompt_logs (session_id, created_at DESC)"],["idx_prompt_logs_client_ip_created_at","CREATE INDEX idx_prompt_logs_client_ip_created_at ON prompt_logs (client_ip, created_at DESC)"],["idx_prompt_logs_source_tool_created_at","CREATE INDEX idx_prompt_logs_source_tool_created_at ON prompt_logs (source_tool, created_at DESC)"],["idx_prompt_logs_connection_created_at","CREATE INDEX idx_prompt_logs_connection_created_at ON prompt_logs (connection_id, created_at DESC)"],["idx_prompt_logs_account_created_at","CREATE INDEX idx_prompt_logs_account_created_at ON prompt_logs (account_name, created_at DESC)"],["idx_prompt_logs_provider_created_at","CREATE INDEX idx_prompt_logs_provider_created_at ON prompt_logs (provider, created_at DESC)"],["idx_prompt_logs_status_created_at","CREATE INDEX idx_prompt_logs_status_created_at ON prompt_logs (status_code, created_at DESC)"]])await r(b,a,c)}finally{await b.close()}}async function t(a){if(!a.enabled)return;let b="sqlite"===a.type?`sqlite:${a.sqlitePath}`:`${a.type}:${a.host||""}:${a.port||""}:${a.database||""}`;if(!i.has(b))try{"sqlite"===a.type?await p(a):"postgres"===a.type?await q(a):"mysql"===a.type&&await s(a),i.add(b)}catch(a){console.warn("[prompt-logs] Unable to ensure query indexes:",a.message)}}async function u(a){if(!e().existsSync(a.sqlitePath))return{models:[],stages:[],missing:!0,dbInfo:{type:"sqlite",sqlitePath:a.sqlitePath}};let b=await m(a.sqlitePath);try{if(!b.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'prompt_logs'"))return{models:[],stages:[],missing:!0,dbInfo:{type:"sqlite",sqlitePath:a.sqlitePath}};let c=b.all("SELECT DISTINCT COALESCE(NULLIF(display_model, ''), model) AS model FROM prompt_logs WHERE model IS NOT NULL AND model <> '' ORDER BY model LIMIT 300").map(a=>a.model),d=b.all("SELECT DISTINCT stage FROM prompt_logs WHERE stage IS NOT NULL AND stage <> '' ORDER BY stage LIMIT 100").map(a=>a.stage);return{models:c,stages:d,dbInfo:{type:"sqlite",sqlitePath:a.sqlitePath}}}finally{b.close()}}async function v(a){let b="postgres"===a.type?await n(a):await o(a);try{let c=(await b.query("SELECT DISTINCT COALESCE(NULLIF(display_model, ''), model) AS model FROM prompt_logs WHERE model IS NOT NULL AND model <> '' ORDER BY model LIMIT 300")).map(a=>a.model),d=(await b.query("SELECT DISTINCT stage FROM prompt_logs WHERE stage IS NOT NULL AND stage <> '' ORDER BY stage LIMIT 100")).map(a=>a.stage);return{models:c,stages:d,dbInfo:{type:a.type,host:a.host,database:a.database}}}finally{await b.close()}}async function w(a,b){if(!e().existsSync(a.sqlitePath))return{rows:[],total:0,models:[],stages:[],missing:!0,dbInfo:{type:"sqlite",sqlitePath:a.sqlitePath}};let c=await m(a.sqlitePath);try{let d,e;if(!c.get("SELECT name FROM sqlite_master WHERE type = 'table' AND name = 'prompt_logs'"))return{rows:[],total:0,models:[],stages:[],missing:!0,dbInfo:{type:"sqlite",sqlitePath:a.sqlitePath}};let{clause:f,params:g}=(d=[],e={limit:b.limit,offset:b.offset},b.keyword&&(d.push(`(
2
+ prompt_text LIKE @keyword OR
3
+ response_text LIKE @keyword OR
4
+ error_text LIKE @keyword OR
5
+ model LIKE @keyword OR
6
+ endpoint LIKE @keyword OR
7
+ provider_url LIKE @keyword OR
8
+ provider LIKE @keyword OR
9
+ account_name LIKE @keyword OR
10
+ connection_id LIKE @keyword OR
11
+ display_model LIKE @keyword OR
12
+ session_id LIKE @keyword OR
13
+ client_ip LIKE @keyword OR
14
+ client_host LIKE @keyword OR
15
+ client_user_agent LIKE @keyword OR
16
+ source_tool LIKE @keyword OR
17
+ source_tool_label LIKE @keyword OR
18
+ source_host LIKE @keyword
19
+ )`),e.keyword=`%${b.keyword}%`),b.model&&(d.push("(model = @model OR display_model = @model)"),e.model=b.model),b.stage&&(d.push("stage = @stage"),e.stage=b.stage),b.sessionId&&(d.push("session_id = @sessionId"),e.sessionId=b.sessionId),b.clientIp&&(d.push("client_ip LIKE @clientIp"),e.clientIp=`%${b.clientIp}%`),b.sourceTool&&(d.push("(source_tool LIKE @sourceTool OR source_tool_label LIKE @sourceTool OR source_host LIKE @sourceTool)"),e.sourceTool=`%${b.sourceTool}%`),b.dateFrom&&(d.push("created_at >= @dateFrom"),e.dateFrom=b.dateFrom),b.dateTo&&(d.push("created_at <= @dateTo"),e.dateTo=b.dateTo),{clause:d.length?`WHERE ${d.join(" AND ")}`:"",params:e}),h=c.get(`SELECT COUNT(*) AS count FROM prompt_logs ${f}`,g)?.count||0,i=c.all(`
20
+ SELECT
21
+ id,
22
+ created_at,
23
+ session_id,
24
+ source_format,
25
+ target_format,
26
+ model,
27
+ endpoint,
28
+ stage,
29
+ provider_url,
30
+ provider,
31
+ account_name,
32
+ connection_id,
33
+ display_model,
34
+ client_ip,
35
+ client_port,
36
+ client_user_agent,
37
+ client_host,
38
+ source_tool,
39
+ source_tool_label,
40
+ source_host,
41
+ substr(coalesce(prompt_text,''), 1, 900) AS prompt_preview,
42
+ length(coalesce(prompt_text,'')) AS prompt_length,
43
+ substr(coalesce(response_text,''), 1, 400) AS response_preview,
44
+ status_code,
45
+ error_text
46
+ FROM prompt_logs
47
+ ${f}
48
+ ORDER BY created_at DESC
49
+ LIMIT @limit OFFSET @offset
50
+ `,g),j=[],k=[];if(b.includeOptions){let b=await u(a);j=b.models,k=b.stages}return{rows:i,total:h,models:j,stages:k,dbInfo:{type:"sqlite",sqlitePath:a.sqlitePath}}}finally{c.close()}}async function x(a,b){let c=a.type,d="postgres"===c?await n(a):await o(a);try{let e=function(a,b){let c=[],d=[],e=a=>(d.push(a),"postgres"===b)?`$${d.length}`:"?",f="postgres"===b?"ILIKE":"LIKE";if(a.keyword){let b=`%${a.keyword}%`;c.push(`(${["prompt_text","response_text","error_text","model","endpoint","provider_url","provider","account_name","connection_id","display_model","session_id","client_ip","client_host","client_user_agent","source_tool","source_tool_label","source_host"].map(a=>`${a} ${f} ${e(b)}`).join(" OR ")})`)}if(a.model&&c.push(`(model = ${e(a.model)} OR display_model = ${e(a.model)})`),a.stage&&c.push(`stage = ${e(a.stage)}`),a.sessionId&&c.push(`session_id = ${e(a.sessionId)}`),a.clientIp&&c.push(`client_ip ${f} ${e(`%${a.clientIp}%`)}`),a.sourceTool){let b=`%${a.sourceTool}%`;c.push(`(source_tool ${f} ${e(b)} OR source_tool_label ${f} ${e(b)} OR source_host ${f} ${e(b)})`)}return a.dateFrom&&c.push(`created_at >= ${e(a.dateFrom)}`),a.dateTo&&c.push(`created_at <= ${e(a.dateTo)}`),{clause:c.length?`WHERE ${c.join(" AND ")}`:"",params:d,add:e}}(b,c),f=[...e.params],g=await d.queryOne(`SELECT COUNT(*) AS count FROM prompt_logs ${e.clause}`,f),h=e.add(b.limit),i=e.add(b.offset),j="postgres"===c?"LEFT(coalesce(prompt_text,''), 900)":"SUBSTRING(coalesce(prompt_text,''), 1, 900)",k="postgres"===c?"char_length(coalesce(prompt_text,''))":"CHAR_LENGTH(coalesce(prompt_text,''))",l="postgres"===c?"LEFT(coalesce(response_text,''), 400)":"SUBSTRING(coalesce(response_text,''), 1, 400)",m=await d.query(`
51
+ SELECT
52
+ id,
53
+ created_at,
54
+ session_id,
55
+ source_format,
56
+ target_format,
57
+ model,
58
+ endpoint,
59
+ stage,
60
+ provider_url,
61
+ provider,
62
+ account_name,
63
+ connection_id,
64
+ display_model,
65
+ client_ip,
66
+ client_port,
67
+ client_user_agent,
68
+ client_host,
69
+ source_tool,
70
+ source_tool_label,
71
+ source_host,
72
+ ${j} AS prompt_preview,
73
+ ${k} AS prompt_length,
74
+ ${l} AS response_preview,
75
+ status_code,
76
+ error_text
77
+ FROM prompt_logs
78
+ ${e.clause}
79
+ ORDER BY created_at DESC
80
+ LIMIT ${h} OFFSET ${i}
81
+ `,e.params),n=[],o=[];if(b.includeOptions){let b=await v(a);n=b.models,o=b.stages}return{rows:m,total:Number(g?.count||0),models:n,stages:o,dbInfo:{type:a.type,host:a.host,database:a.database}}}finally{await d.close()}}async function y(){let a=await l();if(!a.enabled)return{disabled:!0,models:[],stages:[],dbInfo:{type:a.type}};if(await t(a),"sqlite"===a.type)return u(a);if("postgres"===a.type||"mysql"===a.type)return v(a);throw Error(`Unsupported prompt log database type: ${a.type}`)}async function z(a={}){let b=await l(),c=function(a={}){return{keyword:k(a.keyword),model:k(a.model),stage:k(a.stage),sessionId:k(a.sessionId),clientIp:k(a.clientIp),sourceTool:k(a.sourceTool),dateFrom:k(a.dateFrom),dateTo:k(a.dateTo),limit:j(a.limit,50,200),offset:j(a.offset,0),includeOptions:!0===a.includeOptions}}(a);if(!b.enabled)return{disabled:!0,rows:[],total:0,models:[],stages:[],dbInfo:{type:b.type}};if(await t(b),"sqlite"===b.type)return w(b,c);if("postgres"===b.type||"mysql"===b.type)return x(b,c);throw Error(`Unsupported prompt log database type: ${b.type}`)}async function A(a){let b=await l();if("sqlite"===b.type){if(!e().existsSync(b.sqlitePath))return null;let c=await m(b.sqlitePath);try{return c.get("SELECT * FROM prompt_logs WHERE id = @id",{id:a})||null}finally{c.close()}}if("postgres"===b.type){let c=await n(b);try{return await c.queryOne("SELECT * FROM prompt_logs WHERE id = $1",[a])}finally{await c.close()}}if("mysql"===b.type){let c=await o(b);try{return await c.queryOne("SELECT * FROM prompt_logs WHERE id = ?",[a])}finally{await c.close()}}throw Error(`Unsupported prompt log database type: ${b.type}`)}async function B(a){let b=await l();if("sqlite"===b.type){if(!e().existsSync(b.sqlitePath))return{changed:0};let c=await m(b.sqlitePath);try{return{changed:c.run("DELETE FROM prompt_logs WHERE id = @id",{id:a}).changes||0}}finally{c.close()}}if("postgres"===b.type){let c=await n(b);try{let b=await c.queryOne("SELECT COUNT(*) AS count FROM prompt_logs WHERE id = $1",[a]);return await c.exec("DELETE FROM prompt_logs WHERE id = $1",[a]),{changed:Number(b?.count||0)}}finally{await c.close()}}if("mysql"===b.type){let c=await o(b);try{return await c.exec("DELETE FROM prompt_logs WHERE id = ?",[a]),{changed:1}}finally{await c.close()}}throw Error(`Unsupported prompt log database type: ${b.type}`)}}};