@jheavenknows/bluerouter 4.0.20 → 4.0.21

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 (420) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +8 -8
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  41. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  42. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  44. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  45. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  46. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  48. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  51. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +1 -1
  70. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  90. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  92. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  109. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  112. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  126. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  163. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  165. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  167. package/app/.next-cli-build/server/app/callback.html +1 -1
  168. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  169. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  170. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  171. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  172. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  173. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  174. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  175. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  176. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
  177. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  178. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  179. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  180. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  181. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  182. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  183. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  184. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  185. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  186. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
  187. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  188. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  189. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  190. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  191. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
  192. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  193. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
  194. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  195. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  196. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  197. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  198. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  199. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  200. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  201. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  202. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  203. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  204. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  205. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  206. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  207. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  208. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  209. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  210. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  211. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  212. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  213. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  214. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  215. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  216. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  217. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  218. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  219. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  220. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  221. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  222. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  223. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  224. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  225. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  226. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  227. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  228. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  229. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  230. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  231. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  232. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  233. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  234. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  236. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  237. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  238. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  239. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  241. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  242. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  243. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  244. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  245. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  247. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  248. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  249. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  252. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  253. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  254. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  255. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  257. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  258. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  262. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  263. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  264. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  265. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  267. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +4 -4
  268. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  270. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  272. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +4 -4
  273. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  274. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
  275. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  277. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
  278. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  280. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  282. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
  283. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  284. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
  285. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  287. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  288. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  289. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  290. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  293. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  294. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  296. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  299. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  300. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  303. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  304. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  305. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  306. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  309. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  310. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  313. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  314. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  316. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  318. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  319. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  320. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  323. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  324. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  325. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  326. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  329. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  330. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  331. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  333. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  340. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  341. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  344. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  345. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  347. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  350. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  351. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  353. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  354. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  355. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  356. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  357. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  359. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  360. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  361. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  364. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  365. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  366. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  367. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  368. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  369. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  370. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  371. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  372. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  373. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  374. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  375. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  376. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/index.html +1 -1
  378. package/app/.next-cli-build/server/app/index.rsc +3 -3
  379. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  380. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  381. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  382. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  383. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  384. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  385. package/app/.next-cli-build/server/app/landing.html +1 -1
  386. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  387. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  388. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  389. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  390. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  394. package/app/.next-cli-build/server/app/login.html +1 -1
  395. package/app/.next-cli-build/server/app/login.rsc +4 -4
  396. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  397. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  399. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  400. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  403. package/app/.next-cli-build/server/app-paths-manifest.json +8 -8
  404. package/app/.next-cli-build/server/chunks/2338.js +1 -1
  405. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  406. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  407. package/app/.next-cli-build/server/chunks/5901.js +21 -21
  408. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  409. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  410. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  411. package/app/.next-cli-build/server/pages/404.html +1 -1
  412. package/app/.next-cli-build/server/pages/500.html +1 -1
  413. package/app/.next-cli-build/static/chunks/{620-4dbde7d757981b78.js → 620-75c792a26bbf96db.js} +1 -1
  414. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  415. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  416. package/app/package.json +1 -1
  417. package/package.json +1 -1
  418. /package/app/.next-cli-build/static/{DZvptE8A43BVFB7xp9R4S → W7vk7C1z-bQxql4_xtjW7}/_buildManifest.js +0 -0
  419. /package/app/.next-cli-build/static/{DZvptE8A43BVFB7xp9R4S → W7vk7C1z-bQxql4_xtjW7}/_ssgManifest.js +0 -0
  420. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.18-to-4.0.19-4.0.19-20260619-152340 → upgrade-4.0.19-to-4.0.20-4.0.20-20260619-154822}/data.sqlite +0 -0
@@ -86,19 +86,19 @@
86
86
  INDEX idx_ree_source_tool (source_tool, created_at),
87
87
  INDEX idx_ree_session (session_id, created_at)
88
88
  ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
89
- `);else throw Error(`Unsupported prompt log database type: ${a.type}`)}function p(a){let b=Number(a);return Number.isFinite(b)&&b>=200&&b<300}function q({statusCode:a,errorSource:b,errorCode:c,message:d}){let e=g(`${c} ${d}`),h=g(b),i=Number(a);return e.includes("context")||e.includes("maximum")||e.includes("token")||e.includes("too long")||413===i?"context_length_exceeded":401===i||e.includes("unauthorized")||e.includes("invalid api key")?"auth_error":403===i||e.includes("forbidden")||e.includes("not allowed")?"forbidden":429===i||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")||h.includes("timeout")?"timeout":e.includes("abort")||499===i?"client_abort":e.includes("invalid json")?"invalid_json":e.includes("invalid sse")?"invalid_sse":h.includes("network")||e.includes("econnreset")||e.includes("econnrefused")||e.includes("etimedout")||e.includes("socket hang up")||e.includes("fetch failed")?"network_error":i>=500?"provider_unavailable":i>=400?"invalid_request":f(c)||"unknown_error"}function r(a={}){return{disabled:!0,total:0,summary:{total:0,serverImpacting:0,gateway:0,upstream:0,client:0,rateLimit:0,unknown:0,serverImpactingRate:0,clientRate:0,rateLimitRate:0},topErrors:[],topServerErrors:[],topClientErrors:[],topRateLimitErrors:[],byFaultOwner:[],byStatusCode:[],byStatusClass:[],byErrorType:[],byErrorSource:[],byProvider:[],byModel:[],byClientIp:[],bySourceTool:[],recent:[],...a}}async function s(a={}){let b;try{if(!(b=await k()).enabled||!1===b.logErrors)return{skipped:!0,reason:"prompt_log_db_disabled"};let l=await n(b);try{var c,d;let b,k;await o(l);let m=function(a={}){let b,c,d=h(a.gatewayStatusCode??a.statusCode,null),i=h(a.upstreamStatusCode,null),k=j(a.errorMessageShort||a.errorMessage||a.message||a.error?.message||a.error||""),l=f(a.errorCode)||f(a.code)||q({statusCode:i||d,errorSource:a.errorSource,message:k}),m=f(a.errorType)||q({statusCode:i||d,errorSource:a.errorSource,errorCode:l,message:k}),n=f(a.clientIp||a.sourceIp),o=a.meta&&"object"==typeof a.meta?a.meta:{};return{createdAt:a.createdAt||a.timestamp||new Date().toISOString(),requestId:f(a.requestId||o.requestId),attemptIndex:h(a.attemptIndex,0)||0,provider:f(a.provider)||"unknown",model:f(a.model)||"unknown",connectionId:f(a.connectionId),accountName:f(a.accountName||a.connectionName),endpoint:f(a.endpoint),gatewayStatusCode:d,upstreamStatusCode:i,statusClass:f(a.statusClass)||function(a,b,c){let d=h(b,h(a,null)),e=g(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,i,a.errorSource),errorSource:f(a.errorSource)||"unknown_error_source",errorType:m,errorCode:l,errorMessageShort:k,upstreamErrorBodySnippet:function(a,b=e){if(null==a)return"";let c="";if("string"==typeof a)c=a;else try{c=JSON.stringify(a)}catch{c=String(a)}return j(c,b)}(a.upstreamErrorBodySnippet??a.upstreamBody??a.responseBody??a.providerResponseBody),upstreamRequestId:f(a.upstreamRequestId),latencyMs:h(a.latencyMs,0)||0,apiKeyId:f(a.apiKeyId),apiKeyFingerprint:f(a.apiKeyFingerprint)||((b=f(a.apiKey))?b.length<=12?b:`${b.slice(0,8)}...${b.slice(-4)}`:"local-no-key"),clientIp:n,clientIpNormalized:f(a.clientIpNormalized)||((c=f(n))?c.split(",")[0].trim().replace(/^::ffff:/,""):""),sourceTool:f(a.sourceTool||o.sourceTool),sourceToolLabel:f(a.sourceToolLabel||o.sourceToolLabel),sessionId:f(a.sessionId||o.sessionId),metaJson:JSON.stringify({...o,storedBy:"request_error_events"})}}(a);if(!m||p(m.upstreamStatusCode)||p(m.gatewayStatusCode)||(d=m.statusClass,(k=g(d))&&(["pending","running","in_progress","queued","processing"].includes(g(k))||["2xx","ok","success","succeeded","complete","completed","done","200"].includes(k)||/^(?:2\d\d|ok|success|succeeded|complete|completed|done)(?:\b|[\s_-]|$)/.test(k))))return{skipped:!0,reason:"non_error_or_pending_event"};let n=(c=l.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(", ")})`),r=function(a,b="mysql"){return[i(a.createdAt,b),a.requestId,a.attemptIndex,a.provider,a.model,a.connectionId,a.accountName,a.endpoint,a.gatewayStatusCode,a.upstreamStatusCode,a.statusClass,a.errorSource,a.errorType,a.errorCode,a.errorMessageShort,a.upstreamErrorBodySnippet,a.upstreamRequestId,a.latencyMs,a.apiKeyId,a.apiKeyFingerprint,a.clientIp,a.clientIpNormalized,a.sourceTool,a.sourceToolLabel,a.sessionId,a.metaJson]}(m,l.type);return await l.query(n,r),{ok:!0,event:m}}finally{await l.close()}}catch(a){return console.warn(`[RequestErrorEvents] save failed: ${a?.message||a}`),{ok:!1,error:a?.message||String(a)}}}function t(a,b,c){let d=c.map(a=>`'${a.replace(/'/g,"''")}'`).join(", "),e=`${b} IN (${d})`;return a?`${a} AND ${e}`:`WHERE ${e}`}function u(a={},b={}){let c=h(a.requests,0)||0;return{key:f(a.key)||"unknown",label:f(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 v(a,b,c=[]){return a.query(b,c)}async function w(a,b,c=[]){return a.queryOne(b,c)}async function x(a={}){let b=await k();if(!b.enabled)return r({disabled:!0});let c=null;try{var d;let e,g,j,k,l,m;c=await n(b),await o(c);let p=function(a={},b="mysql"){let c=[],d=[],e=a=>(d.push(a),"postgres"===b)?`$${d.length}`:"?",g="postgres"===b?"ILIKE":"LIKE";if(c.push("(COALESCE(upstream_status_code, gateway_status_code) IS NULL OR COALESCE(upstream_status_code, gateway_status_code) < 200 OR COALESCE(upstream_status_code, gateway_status_code) >= 300)"),c.push("(status_class IS NULL OR (lower(status_class) NOT IN ('2xx','ok','success','succeeded','complete','completed','done','200','pending','running','in_progress','queued','processing') AND lower(status_class) NOT LIKE '2__%' AND lower(status_class) NOT LIKE 'ok%' AND lower(status_class) NOT LIKE 'success%' AND lower(status_class) NOT LIKE 'succeeded%' AND lower(status_class) NOT LIKE 'complete%' AND lower(status_class) NOT LIKE 'completed%'))"),a.dateFrom&&c.push(`created_at >= ${e(i(a.dateFrom,b))}`),a.dateTo&&c.push(`created_at < ${e(i(a.dateTo,b))}`),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 ${g} ${e(`%${a.clientIp}%`)}`),a.sourceTool&&c.push(`(source_tool ${g} ${e(`%${a.sourceTool}%`)} OR source_tool_label ${g} ${e(`%${a.sourceTool}%`)})`),a.sessionId&&c.push(`session_id = ${e(a.sessionId)}`),a.endpoint&&c.push(`endpoint ${g} ${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=f(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 ${g} ${e(b)} OR api_key_fingerprint ${g} ${e(b)})`)}let h=a.apiKeyScope;if(h?.enabled)if(h.noMatch)c.push("1 = 0");else{let a=[],b=[...new Set([...h.ids||[],...h.identifiers||[]].map(f).filter(Boolean))],d=[...new Set([...h.fingerprints||[],...h.identifiers||[]].map(f).filter(Boolean))];if(b.length){let c=b.map(a=>e(a)).join(", ");a.push(`api_key_id IN (${c})`)}if(d.length){let b=d.map(a=>e(a)).join(", ");a.push(`api_key_fingerprint IN (${b})`)}c.push(a.length?`(${a.join(" OR ")})`:"1 = 0")}if(a.keyword){let b=`%${a.keyword}%`;c.push(`(error_message_short ${g} ${e(b)} OR upstream_error_body_snippet ${g} ${e(b)} OR request_id ${g} ${e(b)} OR error_code ${g} ${e(b)})`)}return{clause:c.length?`WHERE ${c.join(" AND ")}`:"",params:d}}(a,c.type),q=await w(c,`SELECT COUNT(*) AS total FROM request_error_events ${p.clause}`,p.params),r=h(q?.total,0)||0,s="postgres"===c.type?`$${p.params.length+1}`:"?",x=[...p.params,100],y=(d=c.type,e="mysql"===d?"CHAR":"TEXT",`COALESCE(CAST(upstream_status_code AS ${e}), CAST(gateway_status_code AS ${e}), status_class, 'error')`),z=(c.type,g="COALESCE(upstream_status_code, gateway_status_code)",j="lower(COALESCE(error_type, ''))",k="lower(COALESCE(error_code, ''))",l="lower(COALESCE(error_source, ''))",m="lower(COALESCE(error_message_short, ''))",`CASE
90
- WHEN (${g} BETWEEN 200 AND 299 OR lower(COALESCE(status_class, '')) IN ('2xx','ok','success','succeeded','complete','completed','done','200')) THEN 'non_error'
91
- WHEN (${g} = 429 OR ${j} IN ('rate_limit','quota_exceeded') OR ${k} IN ('rate_limit','quota_exceeded') OR ${m} LIKE '%rate limit%' OR ${m} LIKE '%quota%') THEN 'rate_limit'
92
- WHEN (${j} = 'client_abort' OR ${l} = 'client_abort' OR ${g} = 499) THEN 'client'
89
+ `);else throw Error(`Unsupported prompt log database type: ${a.type}`)}function p(a){let b=Number(a);return Number.isFinite(b)&&b>=200&&b<300}function q({statusCode:a,errorSource:b,errorCode:c,message:d}){let e=g(`${c} ${d}`),h=g(b),i=Number(a);return e.includes("context")||e.includes("maximum")||e.includes("token")||e.includes("too long")||413===i?"context_length_exceeded":401===i||e.includes("unauthorized")||e.includes("invalid api key")?"auth_error":403===i||e.includes("forbidden")||e.includes("not allowed")?"forbidden":429===i||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")||h.includes("timeout")?"timeout":e.includes("abort")||499===i?"client_abort":e.includes("invalid json")?"invalid_json":e.includes("invalid sse")?"invalid_sse":h.includes("network")||e.includes("econnreset")||e.includes("econnrefused")||e.includes("etimedout")||e.includes("socket hang up")||e.includes("fetch failed")?"network_error":i>=500?"provider_unavailable":i>=400?"invalid_request":f(c)||"unknown_error"}function r(a={}){return{disabled:!0,total:0,summary:{total:0,serverImpacting:0,gateway:0,upstream:0,client:0,rateLimit:0,unknown:0,serverImpactingRate:0,clientRate:0,rateLimitRate:0},topErrors:[],topServerErrors:[],topClientErrors:[],topRateLimitErrors:[],byFaultOwner:[],byStatusCode:[],byStatusClass:[],byErrorType:[],byErrorSource:[],byProvider:[],byModel:[],byClientIp:[],bySourceTool:[],recent:[],...a}}async function s(a={}){let b;try{if(!(b=await k()).enabled||!1===b.logErrors)return{skipped:!0,reason:"prompt_log_db_disabled"};let l=await n(b);try{var c,d;let b,k;await o(l);let m=function(a={}){let b,c,d=h(a.gatewayStatusCode??a.statusCode,null),i=h(a.upstreamStatusCode,null),k=j(a.errorMessageShort||a.errorMessage||a.message||a.error?.message||a.error||""),l=f(a.errorCode)||f(a.code)||q({statusCode:i||d,errorSource:a.errorSource,message:k}),m=f(a.errorType)||q({statusCode:i||d,errorSource:a.errorSource,errorCode:l,message:k}),n=f(a.clientIp||a.sourceIp),o=a.meta&&"object"==typeof a.meta?a.meta:{};return{createdAt:a.createdAt||a.timestamp||new Date().toISOString(),requestId:f(a.requestId||o.requestId),attemptIndex:h(a.attemptIndex,0)||0,provider:f(a.provider)||"unknown",model:f(a.model)||"unknown",connectionId:f(a.connectionId),accountName:f(a.accountName||a.connectionName),endpoint:f(a.endpoint),gatewayStatusCode:d,upstreamStatusCode:i,statusClass:f(a.statusClass)||function(a,b,c){let d=h(b,h(a,null)),e=g(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,i,a.errorSource),errorSource:f(a.errorSource)||"unknown_error_source",errorType:m,errorCode:l,errorMessageShort:k,upstreamErrorBodySnippet:function(a,b=e){if(null==a)return"";let c="";if("string"==typeof a)c=a;else try{c=JSON.stringify(a)}catch{c=String(a)}return j(c,b)}(a.upstreamErrorBodySnippet??a.upstreamBody??a.responseBody??a.providerResponseBody),upstreamRequestId:f(a.upstreamRequestId),latencyMs:h(a.latencyMs,0)||0,apiKeyId:f(a.apiKeyId),apiKeyFingerprint:f(a.apiKeyFingerprint)||((b=f(a.apiKey))?b.length<=12?b:`${b.slice(0,8)}...${b.slice(-4)}`:"local-no-key"),clientIp:n,clientIpNormalized:f(a.clientIpNormalized)||((c=f(n))?c.split(",")[0].trim().replace(/^::ffff:/,""):""),sourceTool:f(a.sourceTool||o.sourceTool),sourceToolLabel:f(a.sourceToolLabel||o.sourceToolLabel),sessionId:f(a.sessionId||o.sessionId),metaJson:JSON.stringify({...o,storedBy:"request_error_events"})}}(a);if(!m||p(m.upstreamStatusCode)||p(m.gatewayStatusCode)||(d=m.statusClass,(k=g(d))&&(["pending","running","in_progress","queued","processing"].includes(g(k))||["2xx","ok","success","succeeded","complete","completed","done","200"].includes(k)||/^(?:2\d\d|ok|success|succeeded|complete|completed|done)(?:\b|[\s_-]|$)/.test(k))))return{skipped:!0,reason:"non_error_or_pending_event"};let n=(c=l.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(", ")})`),r=function(a,b="mysql"){return[i(a.createdAt,b),a.requestId,a.attemptIndex,a.provider,a.model,a.connectionId,a.accountName,a.endpoint,a.gatewayStatusCode,a.upstreamStatusCode,a.statusClass,a.errorSource,a.errorType,a.errorCode,a.errorMessageShort,a.upstreamErrorBodySnippet,a.upstreamRequestId,a.latencyMs,a.apiKeyId,a.apiKeyFingerprint,a.clientIp,a.clientIpNormalized,a.sourceTool,a.sourceToolLabel,a.sessionId,a.metaJson]}(m,l.type);return await l.query(n,r),{ok:!0,event:m}}finally{await l.close()}}catch(a){return console.warn(`[RequestErrorEvents] save failed: ${a?.message||a}`),{ok:!1,error:a?.message||String(a)}}}function t(a,b,c){let d=c.map(a=>`'${a.replace(/'/g,"''")}'`).join(", "),e=`${b} IN (${d})`;return a?`${a} AND ${e}`:`WHERE ${e}`}function u(a={},b={}){let c=h(a.requests,0)||0;return{key:f(a.key)||"unknown",label:f(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 v(a,b,c=[]){return a.query(b,c)}async function w(a,b,c=[]){return a.queryOne(b,c)}async function x(a={}){let b=await k();if(!b.enabled)return r({disabled:!0});let c=null;try{var d,e;let g,j,k,l,m,p;c=await n(b),await o(c);let q=function(a={},b="mysql"){let c=[],d=[],e=a=>(d.push(a),"postgres"===b)?`$${d.length}`:"?",g="postgres"===b?"ILIKE":"LIKE";if(c.push("(COALESCE(upstream_status_code, gateway_status_code) IS NULL OR COALESCE(upstream_status_code, gateway_status_code) < 200 OR COALESCE(upstream_status_code, gateway_status_code) >= 300)"),c.push("(status_class IS NULL OR (lower(status_class) NOT IN ('2xx','ok','success','succeeded','complete','completed','done','200','pending','running','in_progress','queued','processing') AND lower(status_class) NOT LIKE '2__%' AND lower(status_class) NOT LIKE 'ok%' AND lower(status_class) NOT LIKE 'success%' AND lower(status_class) NOT LIKE 'succeeded%' AND lower(status_class) NOT LIKE 'complete%' AND lower(status_class) NOT LIKE 'completed%'))"),a.dateFrom&&c.push(`created_at >= ${e(i(a.dateFrom,b))}`),a.dateTo&&c.push(`created_at < ${e(i(a.dateTo,b))}`),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 ${g} ${e(`%${a.clientIp}%`)}`),a.sourceTool&&c.push(`(source_tool ${g} ${e(`%${a.sourceTool}%`)} OR source_tool_label ${g} ${e(`%${a.sourceTool}%`)})`),a.sessionId&&c.push(`session_id = ${e(a.sessionId)}`),a.endpoint&&c.push(`endpoint ${g} ${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=f(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 ${g} ${e(b)} OR api_key_fingerprint ${g} ${e(b)})`)}let h=a.apiKeyScope;if(h?.enabled)if(h.noMatch)c.push("1 = 0");else{let a=[],b=[...new Set([...h.ids||[],...h.identifiers||[]].map(f).filter(Boolean))],d=[...new Set([...h.fingerprints||[],...h.identifiers||[]].map(f).filter(Boolean))];if(b.length){let c=b.map(a=>e(a)).join(", ");a.push(`api_key_id IN (${c})`)}if(d.length){let b=d.map(a=>e(a)).join(", ");a.push(`api_key_fingerprint IN (${b})`)}c.push(a.length?`(${a.join(" OR ")})`:"1 = 0")}if(a.keyword){let b=`%${a.keyword}%`;c.push(`(error_message_short ${g} ${e(b)} OR upstream_error_body_snippet ${g} ${e(b)} OR request_id ${g} ${e(b)} OR error_code ${g} ${e(b)})`)}return{clause:c.length?`WHERE ${c.join(" AND ")}`:"",params:d}}(a,c.type),r=await w(c,`SELECT COUNT(*) AS total FROM request_error_events ${q.clause}`,q.params),s=h(r?.total,0)||0,x="postgres"===c.type?`$${q.params.length+1}`:"?",y=[...q.params,100],z=(d=c.type,g="mysql"===d?"CHAR":"TEXT",`COALESCE(CAST(upstream_status_code AS ${g}), CAST(gateway_status_code AS ${g}), status_class, 'error')`),A=(c.type,j="COALESCE(upstream_status_code, gateway_status_code)",k="lower(COALESCE(error_type, ''))",l="lower(COALESCE(error_code, ''))",m="lower(COALESCE(error_source, ''))",p="lower(COALESCE(error_message_short, ''))",`CASE
90
+ WHEN (${j} BETWEEN 200 AND 299 OR lower(COALESCE(status_class, '')) IN ('2xx','ok','success','succeeded','complete','completed','done','200')) THEN 'non_error'
91
+ WHEN (${j} = 429 OR ${k} IN ('rate_limit','quota_exceeded') OR ${l} IN ('rate_limit','quota_exceeded') OR ${p} LIKE '%rate limit%' OR ${p} LIKE '%quota%') THEN 'rate_limit'
92
+ WHEN (${k} = 'client_abort' OR ${m} = 'client_abort' OR ${j} = 499) THEN 'client'
93
93
  WHEN (COALESCE(upstream_status_code, 0) >= 500) THEN 'upstream'
94
- WHEN (${j} IN ('provider_unavailable','timeout','network_error','invalid_sse') OR ${l} LIKE '%provider%' OR ${l} LIKE '%upstream%' OR ${l} LIKE '%network%' OR ${l} LIKE '%timeout%' OR ${m} LIKE '%econnreset%' OR ${m} LIKE '%econnrefused%' OR ${m} LIKE '%etimedout%' OR ${m} LIKE '%socket hang up%' OR ${m} LIKE '%fetch failed%') THEN 'upstream'
95
- WHEN (${j} IN ('invalid_request','invalid_json','model_not_found','context_length_exceeded','auth_error','forbidden') OR ${k} IN ('bad_request','invalid_request','invalid_json','model_not_found','context_length_exceeded','auth_error','forbidden','not_found') OR ${g} IN (400,401,403,404,405,406,413,415,422)) THEN 'client'
96
- WHEN (COALESCE(gateway_status_code, 0) >= 500 OR ${j} LIKE 'gateway%' OR (${l} LIKE 'gateway%' AND ${l} <> 'gateway_validation')) THEN 'gateway'
94
+ WHEN (${k} IN ('provider_unavailable','timeout','network_error','invalid_sse') OR ${m} LIKE '%provider%' OR ${m} LIKE '%upstream%' OR ${m} LIKE '%network%' OR ${m} LIKE '%timeout%' OR ${p} LIKE '%econnreset%' OR ${p} LIKE '%econnrefused%' OR ${p} LIKE '%etimedout%' OR ${p} LIKE '%socket hang up%' OR ${p} LIKE '%fetch failed%') THEN 'upstream'
95
+ WHEN (${k} IN ('invalid_request','invalid_json','model_not_found','context_length_exceeded','auth_error','forbidden') OR ${l} IN ('bad_request','invalid_request','invalid_json','model_not_found','context_length_exceeded','auth_error','forbidden','not_found') OR ${j} IN (400,401,403,404,405,406,413,415,422)) THEN 'client'
96
+ WHEN (COALESCE(gateway_status_code, 0) >= 500 OR ${k} LIKE 'gateway%' OR (${m} LIKE 'gateway%' AND ${m} <> 'gateway_validation')) THEN 'gateway'
97
97
  ELSE 'unknown'
98
- END`),A="mysql"===c.type?`CONCAT(${z}, '|', ${y}, '|', COALESCE(NULLIF(error_type, ''), 'unknown_error'), '|', COALESCE(NULLIF(provider, ''), 'unknown'), '|', COALESCE(NULLIF(model, ''), 'unknown'), '|', COALESCE(NULLIF(endpoint, ''), 'unknown'))`:`${z} || '|' || ${y} || '|' || COALESCE(NULLIF(error_type, ''), 'unknown_error') || '|' || COALESCE(NULLIF(provider, ''), 'unknown') || '|' || COALESCE(NULLIF(model, ''), 'unknown') || '|' || COALESCE(NULLIF(endpoint, ''), 'unknown')`,B=a=>`SELECT
99
- ${A} AS key,
100
- ${z} AS faultOwner,
101
- ${y} AS status,
98
+ END`),B="mysql"===c.type?`CONCAT(${A}, '|', ${z}, '|', COALESCE(NULLIF(error_type, ''), 'unknown_error'), '|', COALESCE(NULLIF(provider, ''), 'unknown'), '|', COALESCE(NULLIF(model, ''), 'unknown'), '|', COALESCE(NULLIF(endpoint, ''), 'unknown'))`:`${A} || '|' || ${z} || '|' || COALESCE(NULLIF(error_type, ''), 'unknown_error') || '|' || COALESCE(NULLIF(provider, ''), 'unknown') || '|' || COALESCE(NULLIF(model, ''), 'unknown') || '|' || COALESCE(NULLIF(endpoint, ''), 'unknown')`,C=(e=c,e?.type==="mysql"?"`key`":"key"),D=a=>`SELECT
99
+ ${B} AS ${C},
100
+ ${A} AS faultOwner,
101
+ ${z} AS status,
102
102
  COALESCE(NULLIF(error_type, ''), 'unknown_error') AS errorType,
103
103
  COALESCE(NULLIF(error_code, ''), 'unknown_error') AS errorCode,
104
104
  COALESCE(NULLIF(error_source, ''), 'unknown') AS errorSource,
@@ -111,25 +111,25 @@
111
111
  MAX(error_message_short) AS sampleMessage
112
112
  FROM request_error_events
113
113
  ${a}
114
- GROUP BY ${z}, ${y}, 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')
114
+ GROUP BY ${A}, ${z}, 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')
115
115
  ORDER BY requests DESC, lastSeen DESC
116
- LIMIT ${s}`,C=(a=[])=>a.map(a=>u(a,{label:`${a.faultOwner||"unknown"} \xb7 ${a.status||"error"} \xb7 ${a.errorType||a.errorCode||"unknown_error"}`,faultOwner:a.faultOwner||"unknown",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||"",serverImpacting:["gateway","upstream"].includes(a.faultOwner||"")})),D=await v(c,B(p.clause),x),E=t(p.clause,z,["gateway","upstream"]),F=t(p.clause,z,["client"]),G=t(p.clause,z,["rate_limit"]),[H,I,J,K]=await Promise.all([v(c,B(E),x),v(c,B(F),x),v(c,B(G),x),v(c,`SELECT ${z} AS key, ${z} AS label, COUNT(*) AS requests, MAX(created_at) AS lastSeen
116
+ LIMIT ${x}`,E=(a=[])=>a.map(a=>u(a,{label:`${a.faultOwner||"unknown"} \xb7 ${a.status||"error"} \xb7 ${a.errorType||a.errorCode||"unknown_error"}`,faultOwner:a.faultOwner||"unknown",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||"",serverImpacting:["gateway","upstream"].includes(a.faultOwner||"")})),F=await v(c,D(q.clause),y),G=t(q.clause,A,["gateway","upstream"]),H=t(q.clause,A,["client"]),I=t(q.clause,A,["rate_limit"]),[J,K,L,M]=await Promise.all([v(c,D(G),y),v(c,D(H),y),v(c,D(I),y),v(c,`SELECT ${A} AS ${C}, ${A} AS label, COUNT(*) AS requests, MAX(created_at) AS lastSeen
117
117
  FROM request_error_events
118
- ${p.clause}
119
- GROUP BY ${z}
118
+ ${q.clause}
119
+ GROUP BY ${A}
120
120
  ORDER BY requests DESC, lastSeen DESC
121
- LIMIT ${s}`,x)]),L=new Map(K.map(a=>[f(a.key)||"unknown",h(a.requests,0)])),M=L.get("gateway")||0,N=L.get("upstream")||0,O=L.get("client")||0,P=L.get("rate_limit")||0,Q=L.get("unknown")||0,R=M+N,S=async(a,b=a)=>(await v(c,`SELECT COALESCE(NULLIF(${a}, ''), 'unknown') AS key, COALESCE(NULLIF(${a}, ''), 'unknown') AS label, COUNT(*) AS requests, MAX(created_at) AS lastSeen
121
+ LIMIT ${x}`,y)]),N=new Map(M.map(a=>[f(a.key)||"unknown",h(a.requests,0)])),O=N.get("gateway")||0,P=N.get("upstream")||0,Q=N.get("client")||0,R=N.get("rate_limit")||0,S=N.get("unknown")||0,T=O+P,U=async(a,b=a)=>(await v(c,`SELECT COALESCE(NULLIF(${a}, ''), 'unknown') AS ${C}, COALESCE(NULLIF(${a}, ''), 'unknown') AS label, COUNT(*) AS requests, MAX(created_at) AS lastSeen
122
122
  FROM request_error_events
123
- ${p.clause}
123
+ ${q.clause}
124
124
  GROUP BY COALESCE(NULLIF(${a}, ''), 'unknown')
125
125
  ORDER BY requests DESC, lastSeen DESC
126
- LIMIT ${s}`,x)).map(a=>u(a,{[b]:a.key})),T="postgres"===c.type?`$${p.params.length+1}`:"?",U=await v(c,`SELECT id, created_at AS createdAt, request_id AS requestId, provider, model, connection_id AS connectionId, endpoint,
126
+ LIMIT ${x}`,y)).map(a=>u(a,{[b]:a.key})),V="postgres"===c.type?`$${q.params.length+1}`:"?",W=await v(c,`SELECT id, created_at AS createdAt, request_id AS requestId, provider, model, connection_id AS connectionId, endpoint,
127
127
  gateway_status_code AS gatewayStatusCode, upstream_status_code AS upstreamStatusCode, status_class AS statusClass,
128
- ${z} AS faultOwner,
128
+ ${A} AS faultOwner,
129
129
  error_source AS errorSource, error_type AS errorType, error_code AS errorCode,
130
130
  error_message_short AS errorMessageShort, api_key_fingerprint AS apiKeyFingerprint,
131
131
  client_ip_normalized AS clientIp, source_tool AS sourceTool, session_id AS sessionId, latency_ms AS latencyMs
132
132
  FROM request_error_events
133
- ${p.clause}
133
+ ${q.clause}
134
134
  ORDER BY created_at DESC
135
- LIMIT ${T}`,[...p.params,50]);return{disabled:!1,total:r,summary:{total:r,serverImpacting:R,gateway:M,upstream:N,client:O,rateLimit:P,unknown:Q,serverImpactingRate:r?R/r:0,clientRate:r?O/r:0,rateLimitRate:r?P/r:0},topErrors:C(D),topServerErrors:C(H),topClientErrors:C(I),topRateLimitErrors:C(J),byFaultOwner:K.map(a=>u(a,{faultOwner:a.key})),byStatusCode:await S(y,"status"),byStatusClass:await S("status_class","statusClass"),byErrorType:await S("error_type","errorType"),byErrorSource:await S("error_source","errorSource"),byProvider:await S("provider","provider"),byModel:await S("model","model"),byClientIp:await S("client_ip_normalized","clientIp"),bySourceTool:await S("source_tool","sourceTool"),recent:U}}catch(a){return r({disabled:!0,error:a?.message||String(a)})}finally{c&&await c.close()}}}};
135
+ LIMIT ${V}`,[...q.params,50]);return{disabled:!1,total:s,summary:{total:s,serverImpacting:T,gateway:O,upstream:P,client:Q,rateLimit:R,unknown:S,serverImpactingRate:s?T/s:0,clientRate:s?Q/s:0,rateLimitRate:s?R/s:0},topErrors:E(F),topServerErrors:E(J),topClientErrors:E(K),topRateLimitErrors:E(L),byFaultOwner:M.map(a=>u(a,{faultOwner:a.key})),byStatusCode:await U(z,"status"),byStatusClass:await U("status_class","statusClass"),byErrorType:await U("error_type","errorType"),byErrorSource:await U("error_source","errorSource"),byProvider:await U("provider","provider"),byModel:await U("model","model"),byClientIp:await U("client_ip_normalized","clientIp"),bySourceTool:await U("source_tool","sourceTool"),recent:W}}catch(a){return r({disabled:!0,error:a?.message||String(a)})}finally{c&&await c.close()}}}};