@jheavenknows/bluerouter 4.0.60 → 4.0.61

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 (419) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +2 -2
  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.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  89. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  91. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  166. package/app/.next-cli-build/server/app/callback.html +1 -1
  167. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  168. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  169. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  170. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  171. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  172. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  173. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  174. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  175. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
  176. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  178. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  179. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  180. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  181. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  182. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  183. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  184. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  185. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
  186. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  187. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  188. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  189. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  190. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
  191. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  192. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
  193. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  194. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  195. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  196. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  197. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  198. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  199. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  200. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  201. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  202. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  203. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  204. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  205. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  206. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  207. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  208. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  209. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  210. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  211. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  212. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  213. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  214. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  215. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  216. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  217. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  218. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  219. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  220. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  221. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  222. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  223. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  224. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  225. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  226. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  227. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  229. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  230. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  231. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  232. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  233. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  234. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  236. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  237. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  239. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  241. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  242. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  243. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  244. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  247. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  248. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  251. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  252. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  253. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  254. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  257. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  261. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  262. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  263. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  264. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +4 -4
  267. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  270. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  271. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +4 -4
  272. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  273. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
  274. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
  277. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  280. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  281. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
  282. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
  284. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  287. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  288. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  290. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  293. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  295. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  298. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  299. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  302. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  303. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  305. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  308. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  309. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  312. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  313. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  315. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  318. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  319. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  323. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  325. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  329. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  330. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  332. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  339. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  340. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  343. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  344. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  346. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  349. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  350. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  353. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  354. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  356. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  359. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  360. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  363. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  364. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  366. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  368. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  369. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  371. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  373. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  375. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  376. package/app/.next-cli-build/server/app/index.html +1 -1
  377. package/app/.next-cli-build/server/app/index.rsc +3 -3
  378. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  379. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  380. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  382. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  383. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  384. package/app/.next-cli-build/server/app/landing.html +1 -1
  385. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  386. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  387. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  389. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  390. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  393. package/app/.next-cli-build/server/app/login.html +1 -1
  394. package/app/.next-cli-build/server/app/login.rsc +4 -4
  395. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  396. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  397. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  398. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  400. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  401. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  402. package/app/.next-cli-build/server/app-paths-manifest.json +2 -2
  403. package/app/.next-cli-build/server/chunks/2338.js +1 -1
  404. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  405. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  406. package/app/.next-cli-build/server/chunks/5199.js +51 -213
  407. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  408. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  409. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  410. package/app/.next-cli-build/server/pages/404.html +1 -1
  411. package/app/.next-cli-build/server/pages/500.html +1 -1
  412. package/app/.next-cli-build/static/chunks/{620-4c95c0cba7c263ab.js → 620-b2ac1dca258c78a6.js} +1 -1
  413. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  414. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  415. package/app/package.json +1 -1
  416. package/package.json +1 -1
  417. /package/app/.next-cli-build/static/{3lkq8FXf1wbq-VS4ORS04 → mGt0upgnp1PSxWLLurtaW}/_buildManifest.js +0 -0
  418. /package/app/.next-cli-build/static/{3lkq8FXf1wbq-VS4ORS04 → mGt0upgnp1PSxWLLurtaW}/_ssgManifest.js +0 -0
  419. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.55-to-4.0.56-4.0.56-20260622-150155 → upgrade-4.0.59-to-4.0.60-4.0.60-20260622-162613}/data.sqlite +0 -0
@@ -1,111 +1,51 @@
1
- "use strict";exports.id=5199,exports.ids=[5199],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(56403);c(99703)},71336:(a,b,c)=>{c.d(b,{q7:()=>S});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env||{},f="false"!==e.ENABLE_REQUEST_LOGS,g="[promptlogs disabled on this combo]",h=new Set(["inherit","enabled","disabled"]),i=Math.max(200,Number(e.PROMPT_LOG_PROMPT_PREVIEW_CHARS||2e3)),j=Math.max(200,Number(e.PROMPT_LOG_RESPONSE_PREVIEW_CHARS||2e3)),k=Math.max(1e4,Number(e.PROMPT_LOG_EXTRACT_LIMIT_CHARS||5e5));function l(a){let b=String(a||"inherit").trim().toLowerCase();return h.has(b)?b:"inherit"}let m=null,n=null,o=null,p=null,q={expiresAt:0,config:null},r=new Set;async function s(){if(d&&f&&!m)try{m=await Promise.resolve().then(c.t.bind(c,29021,23)),n=await Promise.resolve().then(c.t.bind(c,33873,23)),o=await Promise.resolve().then(c.t.bind(c,55511,23)),p=e.REQUEST_LOG_DIR||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","requests"):null)||n.join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}function t(a,b){r.has(a)||(r.add(a),console.log(b))}function u(a){return Array.isArray(a)?a[0]||"":a||""}function v(a={}){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}function w(a={}){let b=v(a);return{client_ip:String(u(b["x-9r-client-ip"])||u(b["x-forwarded-for"])||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1"),client_port:String(u(b["x-9r-client-port"])||""),client_user_agent:String(u(b["x-9r-client-user-agent"])||u(b["user-agent"])||""),client_host:String(u(b["x-9r-client-host"])||u(b.host)||"")}}function x(a={}){let b=v(a);return{source_tool:String(u(b["x-9r-source-tool"])||""),source_tool_label:String(u(b["x-9r-source-tool-label"])||""),source_host:String(u(b["x-9r-source-host"])||u(b.host)||"")}}function y(a={},b={}){return{...a,...Object.fromEntries(Object.entries(b||{}).filter(([,a])=>null!=a&&""!==String(a)))}}async function z(a){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"),{kind:"better-sqlite3",db:d,get:(a,b=[])=>d.prepare(a).get(...b),exec(a){d.exec(a)},run:(a,b=[])=>d.prepare(a).run(...b),close(){d.close()}}}catch(d){let b=new(await Promise.resolve().then(c.t.bind(c,80099,23))).DatabaseSync(a);return b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 5000"),{kind:"node:sqlite",db:b,get:(a,c=[])=>b.prepare(a).get(...c),exec(a){b.exec(a)},run:(a,c=[])=>b.prepare(a).run(...c),close(){b.close()}}}}async function A(){if(await s(),!m||!n)return null;let a=Date.now();if(q.config&&q.expiresAt>a)return q.config;let b=null;try{let a=n?e.PROMPT_LOG_CONFIG_DB?e.PROMPT_LOG_CONFIG_DB:e.DATA_DIR?n.join(e.DATA_DIR,"db","data.sqlite"):null:null;if(a&&m.existsSync(a)){let c=await z(a);try{let a=c.get("SELECT data FROM settings WHERE id = 1");a?.data&&(b=JSON.parse(a.data).promptLogDb||null)}finally{c.close()}}}catch(a){t("config-read",`[PromptDB] Failed to read config: ${a.message}`)}return b||"true"!==e.PROMPT_LOG_DB_ENABLED||(b={enabled:!0,type:"sqlite",sqlitePath:e.PROMPT_LOG_DB||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):""),logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:"true"===e.PROMPT_LOG_DB_RESPONSE,logErrors:!0}),q={config:b,expiresAt:a+5e3},b}function B(a){return"postgres"===a?`
2
- CREATE TABLE IF NOT EXISTS prompt_logs (
3
- id TEXT PRIMARY KEY,
4
- created_at TIMESTAMPTZ NOT NULL,
5
- session_id TEXT,
6
- source_format TEXT,
7
- target_format TEXT,
8
- model TEXT,
9
- endpoint TEXT,
10
- stage TEXT,
11
- provider_url TEXT,
12
- provider TEXT,
13
- account_name TEXT,
14
- connection_id TEXT,
15
- display_model TEXT,
16
- client_ip TEXT,
17
- client_port TEXT,
18
- client_user_agent TEXT,
19
- client_host TEXT,
20
- source_tool TEXT,
21
- source_tool_label TEXT,
22
- source_host TEXT,
23
- content_mode TEXT,
24
- payload_hash TEXT,
25
- payload_size_bytes BIGINT DEFAULT 0,
26
- response_payload_hash TEXT,
27
- response_payload_size_bytes BIGINT DEFAULT 0,
28
- prompt_text TEXT,
29
- full_request_json JSONB,
30
- full_response_json JSONB,
31
- response_text TEXT,
32
- status_code INTEGER,
33
- error_text TEXT,
34
- meta_json JSONB
35
- );
36
-
37
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_at
38
- ON prompt_logs(created_at DESC);
39
-
40
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_model
41
- ON prompt_logs(model);
42
-
43
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage
44
- ON prompt_logs(stage);
45
-
46
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
47
- ON prompt_logs(session_id);
48
-
49
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
50
- ON prompt_logs(client_ip);
51
-
52
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
53
- ON prompt_logs(source_tool);
54
- `:"mysql"===a?`
55
- CREATE TABLE IF NOT EXISTS prompt_logs (
56
- id VARCHAR(80) PRIMARY KEY,
57
- created_at DATETIME(3) NOT NULL,
58
- session_id VARCHAR(255),
59
- source_format VARCHAR(80),
60
- target_format VARCHAR(80),
61
- model VARCHAR(255),
62
- endpoint TEXT,
63
- stage VARCHAR(80),
64
- provider_url TEXT,
65
- provider VARCHAR(120),
66
- account_name VARCHAR(255),
67
- connection_id VARCHAR(120),
68
- display_model VARCHAR(512),
69
- client_ip VARCHAR(64),
70
- client_port VARCHAR(32),
71
- client_user_agent TEXT,
72
- client_host TEXT,
73
- source_tool VARCHAR(80),
74
- source_tool_label VARCHAR(120),
75
- source_host VARCHAR(255),
76
- content_mode VARCHAR(32),
77
- payload_hash CHAR(64),
78
- payload_size_bytes BIGINT DEFAULT 0,
79
- response_payload_hash CHAR(64),
80
- response_payload_size_bytes BIGINT DEFAULT 0,
81
- prompt_text LONGTEXT,
82
- full_request_json JSON,
83
- response_text LONGTEXT,
84
- status_code INT,
85
- error_text TEXT,
86
- meta_json JSON,
87
- INDEX idx_prompt_logs_created_at (created_at),
88
- INDEX idx_prompt_logs_model (model),
89
- INDEX idx_prompt_logs_stage (stage),
90
- INDEX idx_prompt_logs_session (session_id),
91
- INDEX idx_prompt_logs_client_ip (client_ip),
92
- INDEX idx_prompt_logs_source_tool (source_tool),
93
- INDEX idx_prompt_logs_payload_hash (payload_hash),
94
- INDEX idx_prompt_logs_response_payload_hash (response_payload_hash)
95
- ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
96
-
97
- CREATE TABLE IF NOT EXISTS prompt_log_payloads (
98
- payload_hash CHAR(64) PRIMARY KEY,
99
- created_at DATETIME(3) NOT NULL,
100
- last_seen_at DATETIME(3) NOT NULL,
101
- content_type VARCHAR(64),
102
- payload_size_bytes BIGINT DEFAULT 0,
103
- ref_count BIGINT DEFAULT 1,
104
- payload_json JSON,
105
- INDEX idx_prompt_log_payloads_created_at (created_at),
106
- INDEX idx_prompt_log_payloads_last_seen_at (last_seen_at)
107
- ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
108
- `:`
1
+ "use strict";exports.id=5199,exports.ids=[5199],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>d.BY,E5:()=>d.E5,SL:()=>d.SL,Zx:()=>d.Zx,_V:()=>d._V,j$:()=>d.j$,ox:()=>d.ox,rg:()=>d.rg,sZ:()=>d.sZ,uw:()=>d.uw});var d=c(56403);c(99703)},71336:(a,b,c)=>{c.d(b,{q7:()=>N});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env||{},f="false"!==e.ENABLE_REQUEST_LOGS,g="[promptlogs disabled on this combo]",h=new Set(["inherit","enabled","disabled"]),i=Math.max(200,Number(e.PROMPT_LOG_PROMPT_PREVIEW_CHARS||2e3)),j=Math.max(200,Number(e.PROMPT_LOG_RESPONSE_PREVIEW_CHARS||2e3)),k=Math.max(1e4,Number(e.PROMPT_LOG_EXTRACT_LIMIT_CHARS||5e5));function l(a){let b=String(a||"inherit").trim().toLowerCase();return h.has(b)?b:"inherit"}let m=null,n=null,o=null,p=null,q={expiresAt:0,config:null},r=new Set;async function s(){if(d&&f&&!m)try{m=await Promise.resolve().then(c.t.bind(c,29021,23)),n=await Promise.resolve().then(c.t.bind(c,33873,23)),o=await Promise.resolve().then(c.t.bind(c,55511,23)),p=e.REQUEST_LOG_DIR||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","requests"):null)||n.join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}function t(a,b){r.has(a)||(r.add(a),console.log(b))}function u(a){return Array.isArray(a)?a[0]||"":a||""}function v(a={}){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}function w(a={}){let b=v(a);return{client_ip:String(u(b["x-9r-client-ip"])||u(b["x-forwarded-for"])||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1"),client_port:String(u(b["x-9r-client-port"])||""),client_user_agent:String(u(b["x-9r-client-user-agent"])||u(b["user-agent"])||""),client_host:String(u(b["x-9r-client-host"])||u(b.host)||"")}}function x(a={}){let b=v(a);return{source_tool:String(u(b["x-9r-source-tool"])||""),source_tool_label:String(u(b["x-9r-source-tool-label"])||""),source_host:String(u(b["x-9r-source-host"])||u(b.host)||"")}}function y(a={},b={}){return{...a,...Object.fromEntries(Object.entries(b||{}).filter(([,a])=>null!=a&&""!==String(a)))}}async function z(a){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"),{kind:"better-sqlite3",db:d,get:(a,b=[])=>d.prepare(a).get(...b),exec(a){d.exec(a)},run:(a,b=[])=>d.prepare(a).run(...b),close(){d.close()}}}catch(d){let b=new(await Promise.resolve().then(c.t.bind(c,80099,23))).DatabaseSync(a);return b.exec("PRAGMA journal_mode = WAL"),b.exec("PRAGMA busy_timeout = 5000"),{kind:"node:sqlite",db:b,get:(a,c=[])=>b.prepare(a).get(...c),exec(a){b.exec(a)},run:(a,c=[])=>b.prepare(a).run(...c),close(){b.close()}}}}async function A(){if(await s(),!m||!n)return null;let a=Date.now();if(q.config&&q.expiresAt>a)return q.config;let b=null;try{let a=n?e.PROMPT_LOG_CONFIG_DB?e.PROMPT_LOG_CONFIG_DB:e.DATA_DIR?n.join(e.DATA_DIR,"db","data.sqlite"):null:null;if(a&&m.existsSync(a)){let c=await z(a);try{let a=c.get("SELECT data FROM settings WHERE id = 1");a?.data&&(b=JSON.parse(a.data).promptLogDb||null)}finally{c.close()}}}catch(a){t("config-read",`[PromptDB] Failed to read config: ${a.message}`)}return b||"true"!==e.PROMPT_LOG_DB_ENABLED||(b={enabled:!0,type:"sqlite",sqlitePath:e.PROMPT_LOG_DB||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):""),logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:"true"===e.PROMPT_LOG_DB_RESPONSE,logErrors:!0}),q={config:b,expiresAt:a+5e3},b}async function B(a){a.get;let b=[];try{"better-sqlite3"===a.kind?b=a.db.prepare("PRAGMA table_info(prompt_logs)").all():"node:sqlite"===a.kind&&(b=a.db.prepare("PRAGMA table_info(prompt_logs)").all())}catch{b=[]}let c=new Set(b.map(a=>a.name)),d=(b,d)=>{c.has(b)||a.exec(`ALTER TABLE prompt_logs ADD COLUMN ${b} ${d};`)};d("client_ip","TEXT"),d("client_port","TEXT"),d("client_user_agent","TEXT"),d("client_host","TEXT"),d("source_tool","TEXT"),d("source_tool_label","TEXT"),d("source_host","TEXT"),d("provider","TEXT"),d("account_name","TEXT"),d("connection_id","TEXT"),d("display_model","TEXT"),d("content_mode","TEXT"),d("payload_hash","TEXT"),d("payload_size_bytes","INTEGER DEFAULT 0"),d("response_payload_hash","TEXT"),d("response_payload_size_bytes","INTEGER DEFAULT 0"),d("full_response_json","TEXT"),d("combo_name","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);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash ON prompt_logs(response_payload_hash);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_combo_name_created_at ON prompt_logs(combo_name, created_at DESC);")}function C(a){if(null==a)return null;if("string"==typeof a)try{return JSON.parse(a),a}catch{return JSON.stringify(a)}try{return JSON.stringify(a)}catch{return JSON.stringify(String(a))}}function D(a){return Buffer.byteLength(String(a||""),"utf8")}function E(a,b,c=null,d=null){let e=function(a={}){let b=(a.context&&"object"==typeof a.context.routingMetadata?a.context.routingMetadata:null)||(a.routingMetadata&&"object"==typeof a.routingMetadata?a.routingMetadata:null)||(a.meta&&"object"==typeof a.meta.routingMetadata?a.meta.routingMetadata:null)||null;if(!b)return{};let c=(...a)=>{for(let c of a)if(void 0!==b[c]&&null!==b[c]&&""!==b[c])return b[c];return null},d={combo_name:c("combo_name","comboName"),combo_target:c("combo_target","comboTarget"),combo_strategy:c("combo_strategy","comboStrategy"),route_type:c("route_type","routeType"),selected_provider_id:c("selected_provider_id","selectedProviderId"),selected_model:c("selected_model","selectedModel")},e=c("request_overrides_applied","requestOverridesApplied");e&&"object"==typeof e&&!Array.isArray(e)&&(d.request_overrides_applied=e);let f=c("auto_off_applied","autoOffApplied");for(let a of(null!==f&&(d.auto_off_applied=!0===f||"true"===f||1===f||"1"===f),Object.keys(d)))(null===d[a]||void 0===d[a]||""===d[a])&&delete d[a];return d}(a);if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0,...e});let f=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of(Object.assign(f,e),["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"]))Object.prototype.hasOwnProperty.call(f,a)&&delete f[a];return f.contentLoggingMode=l(a.contentLoggingMode||a.context?.contentLoggingMode),f.contentMode="raw_json_preview",c?.payloadHash&&(f.payloadHash=c.payloadHash,f.payloadSizeBytes=c.payloadSizeBytes||0,f.payloadStorage="prompt_log_payloads"),d?.payloadHash&&(f.responsePayloadHash=d.payloadHash,f.responsePayloadSizeBytes=d.payloadSizeBytes||0,f.responsePayloadStorage="prompt_log_payloads"),Object.keys(f).length?JSON.stringify(f):null}async function F(a,b,c,d="request_json"){if(!c)return null;let e=c&&o?.createHash?o.createHash("sha256").update(c).digest("hex"):null;if(!e)return null;let f=D(c),g=b.created_at.replace("T"," ").replace("Z","");return await a.query(`INSERT INTO prompt_log_payloads (
2
+ payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
3
+ ) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
4
+ ON DUPLICATE KEY UPDATE
5
+ last_seen_at = VALUES(last_seen_at),
6
+ ref_count = ref_count + 1,
7
+ content_type = CASE
8
+ WHEN content_type = VALUES(content_type) THEN content_type
9
+ WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
10
+ ELSE content_type
11
+ END`,[e,g,g,d,f,c]),{payloadHash:e,payloadSizeBytes:f,contentType:d,contentMode:"raw_json_preview"}}function G(a,b=[]){if(null==a)return b;if("string"==typeof a)return a.trim()&&b.push(a.trim()),b;if(Array.isArray(a)){for(let c of a)G(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&G(a.parts,b)),b}function H(a){return(function a(b,c=0,d=[]){if(null==b||c>12||d.join("\n").length>k)return d;let e=0===c?function(a){let b=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.request&&"object"==typeof a.request?a.request:a;for(let c of[a.body?.request&&"object"==typeof a.body.request?a.body.request:null,a.payload?.request&&"object"==typeof a.payload.request?a.payload.request:null,b])if(!(!c||"object"!=typeof c||Array.isArray(c))&&(c.systemInstruction||Array.isArray(c.contents)||Array.isArray(c.tools)))return c;return null}(a);if(!b)return null;let c=[],d=G(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
12
+ ${d.join("\n\n")}`);let e=[];for(let a of Array.isArray(b.tools)?b.tools:[])for(let b of Array.isArray(a?.functionDeclarations)?a.functionDeclarations:[]){let a=I(b?.name),c=I(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
13
+ ${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=I(a?.role)||"message",c=G(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
14
+ ${f.join("\n\n")}`),c.length?c:null}(b):null;if(e)return d.push(...e),d;if("string"==typeof b)return b.trim()&&d.push(b),d;if(Array.isArray(b)){for(let e of b)a(e,c+1,d);return d}if("object"==typeof b)for(let[e,f]of Object.entries(b)){let b=e.toLowerCase();["content","text","prompt","input","message","reasoning_content","thinking","output_text"].includes(b)?a(f,c+1,d):c<8&&["messages","contents","parts","body","request","payload","response","choices","candidates","candidate","delta","output","item","items"].includes(b)&&a(f,c+1,d)}return d})(a||{}).join("\n\n").slice(0,k)}function I(a){return String(a||"").trim()}function J(a){let b=I(a);if(!b)return"";try{return new URL(b).hostname||""}catch{return b.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/:\d+$/,"")}}async function K(a){try{var b;if(await s(),!m||!n)return;let d=await A(),f=l(a.contentLoggingMode||a.context?.contentLoggingMode),h="disabled"===f;if(!d?.enabled||(b=a.stage,!d?.enabled||("client"===b?!1===d.logClientRequest:"source"===b||"openai"===b?!1===d.logSourceRequest:"target"===b?!1===d.logTargetRequest:"provider_response"===b?!0!==d.logProviderResponse:"error"===b&&!1===d.logErrors)))return;let o=new Date().toISOString(),p="provider_response"===a.stage,q=h||!p?null:function(a={}){return void 0!==a.responseText&&null!==a.responseText?String(a.responseText).slice(0,k):"string"==typeof a.response?a.response.slice(0,k):H(a.response||a.meta?.body||{})}(a),r=h?g:void 0!==a.promptText?String(a.promptText):p?"":H(a.request||a.response||{}),t=h?null:p?q||null:"string"==typeof a.response?a.response:null,u=r?String(r).slice(0,i):null,v=t?String(t).slice(0,j):null,G=h||!a.request?null:C(a.request),K=h||!p?null:C(function(a={}){return void 0!==a.fullResponseJson&&null!==a.fullResponseJson?a.fullResponseJson:void 0!==a.responsePayload&&null!==a.responsePayload?a.responsePayload:a.meta&&"object"==typeof a.meta?a.meta:void 0!==a.response&&null!==a.response?{body:a.response}:null}(a)),L="mysql"===d.type?null:G,M="mysql"===d.type?null:K,N=w(a.headers||a.request?.headers||{}),O=x(a.headers||a.request?.headers||{}),P=y(N,a.clientInfo||{}),Q=y(O,a.sourceInfo||{}),R=function(a={}){var b,c;let d,e,f,g=a.context||{},h=function(a){let b=I(a),c=b.indexOf("/");if(c<=0)return"";let d=b.slice(0,c);return/^[a-z][a-z0-9_-]{1,60}$/i.test(d)?d:""}(a.model),i=I(g.provider)||I(a.provider)||I(a.providerId)||I(a.provider_id)||h||"",j=(d=I(i),/^openai-compatible-chat-[0-9a-f-]{20,}$/i.test(d)||/^openai-compatible-[0-9a-f-]{20,}$/i.test(d))?"":i,k=I(g.accountName)||I(g.account_name)||I(g.connectionName)||I(a.accountName)||I(a.account_name)||I(a.keyName)||I(a.key_name)||"",l=I(g.connectionId)||I(a.connectionId)||I(a.connection_id)||"",m=(b=I(a.model),c=j||h,e=I(b),(f=I(c))&&e.startsWith(`${f}/`)?e.slice(f.length+1):e),n=J(a.providerUrl)||J(a.endpoint),o="";return j&&k&&k!==j?o=`${j}/${k}`:j?o=j:k?o=k:n&&(o=n),{provider:j||null,accountName:k||null,connectionId:l||null,displayModel:o&&m?`${o}/${m}`:null}}(a),S={id:`${Date.now()}_${Math.random().toString(16).slice(2)}`,created_at:o,session_id:a.sessionId||null,source_format:a.sourceFormat||null,target_format:a.targetFormat||null,model:a.model||null,endpoint:a.endpoint||null,stage:a.stage||null,provider_url:a.providerUrl||null,provider:R.provider||null,account_name:R.accountName||null,connection_id:R.connectionId||null,display_model:R.displayModel||null,client_ip:P.client_ip||null,client_port:P.client_port||null,client_user_agent:P.client_user_agent||null,client_host:P.client_host||null,source_tool:Q.source_tool||null,source_tool_label:Q.source_tool_label||null,source_host:Q.source_host||null,content_mode:h?"disabled":"raw_json_preview",payload_hash:null,payload_size_bytes:G?D(G):0,response_payload_hash:null,response_payload_size_bytes:K?D(K):0,prompt_text:u||null,full_request_json:L,full_response_json:M,response_text:v,status_code:a.statusCode||null,error_text:a.errorText||null,meta_json:E(a,h)};if("postgres"===d.type){let a=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:d.host,port:Number(d.port||5432),database:d.database,user:d.username,password:d.password,ssl:!!d.ssl&&{rejectUnauthorized:!1}});try{await a.connect(),await a.query(`INSERT INTO prompt_logs (
15
+ id, created_at, session_id, source_format, target_format, model,
16
+ endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
17
+ client_ip, client_port, client_user_agent, client_host,
18
+ source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
19
+ response_payload_hash, response_payload_size_bytes,
20
+ prompt_text, full_request_json, full_response_json,
21
+ response_text, status_code, error_text, meta_json
22
+ ) VALUES (
23
+ $1, $2, $3, $4, $5, $6,
24
+ $7, $8, $9, $10, $11, $12, $13,
25
+ $14, $15, $16, $17,
26
+ $18, $19, $20, $21, $22, $23,
27
+ $24, $25,
28
+ $26, $27::jsonb, $28::jsonb,
29
+ $29, $30, $31, $32::jsonb
30
+ )`,[S.id,S.created_at,S.session_id,S.source_format,S.target_format,S.model,S.endpoint,S.stage,S.provider_url,S.provider,S.account_name,S.connection_id,S.display_model,S.client_ip,S.client_port,S.client_user_agent,S.client_host,S.source_tool,S.source_tool_label,S.source_host,S.content_mode,S.payload_hash,S.payload_size_bytes,S.response_payload_hash,S.response_payload_size_bytes,S.prompt_text,S.full_request_json,S.full_response_json,S.response_text,S.status_code,S.error_text,S.meta_json]),S.session_id&&S.display_model&&await a.query(`UPDATE prompt_logs
31
+ SET provider = COALESCE(provider, $1),
32
+ account_name = COALESCE(account_name, $2),
33
+ connection_id = COALESCE(connection_id, $3),
34
+ display_model = $4
35
+ WHERE session_id = $5`,[S.provider,S.account_name,S.connection_id,S.display_model,S.session_id])}finally{await a.end()}return}if("mysql"===d.type){let b=await c.e(8491).then(c.t.bind(c,38491,19)),e=await b.createConnection({host:d.host,port:Number(d.port||3306),database:d.database,user:d.username,password:d.password,ssl:d.ssl?{}:void 0,multipleStatements:!0});try{let b=await F(e,S,G,"request_json"),c=await F(e,S,K,"response_json");b&&(S.payload_hash=b.payloadHash,S.payload_size_bytes=b.payloadSizeBytes),c&&(S.response_payload_hash=c.payloadHash,S.response_payload_size_bytes=c.payloadSizeBytes),S.meta_json=E(a,h,b,c),await e.query(`INSERT INTO prompt_logs (
36
+ id, created_at, session_id, source_format, target_format, model,
37
+ endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
38
+ client_ip, client_port, client_user_agent, client_host,
39
+ source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
40
+ response_payload_hash, response_payload_size_bytes,
41
+ prompt_text, full_request_json,
42
+ response_text, status_code, error_text, meta_json
43
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[S.id,S.created_at.replace("T"," ").replace("Z",""),S.session_id,S.source_format,S.target_format,S.model,S.endpoint,S.stage,S.provider_url,S.provider,S.account_name,S.connection_id,S.display_model,S.client_ip,S.client_port,S.client_user_agent,S.client_host,S.source_tool,S.source_tool_label,S.source_host,S.content_mode,S.payload_hash,S.payload_size_bytes,S.response_payload_hash,S.response_payload_size_bytes,S.prompt_text,S.full_request_json,S.response_text,S.status_code,S.error_text,S.meta_json]),S.session_id&&S.display_model&&await e.query(`UPDATE prompt_logs
44
+ SET provider = COALESCE(provider, ?),
45
+ account_name = COALESCE(account_name, ?),
46
+ connection_id = COALESCE(connection_id, ?),
47
+ display_model = ?
48
+ WHERE session_id = ?`,[S.provider,S.account_name,S.connection_id,S.display_model,S.session_id])}finally{await e.end()}return}let T=d.sqlitePath||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):null);if(!T)return;m.mkdirSync(n.dirname(T),{recursive:!0});let U=await z(T);try{U.exec(`
109
49
  CREATE TABLE IF NOT EXISTS prompt_logs (
110
50
  id TEXT PRIMARY KEY,
111
51
  created_at TEXT NOT NULL,
@@ -153,109 +93,7 @@
153
93
 
154
94
  CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
155
95
  ON prompt_logs(session_id);
156
- `}async function C(a){a.get;let b=[];try{"better-sqlite3"===a.kind?b=a.db.prepare("PRAGMA table_info(prompt_logs)").all():"node:sqlite"===a.kind&&(b=a.db.prepare("PRAGMA table_info(prompt_logs)").all())}catch{b=[]}let c=new Set(b.map(a=>a.name)),d=(b,d)=>{c.has(b)||a.exec(`ALTER TABLE prompt_logs ADD COLUMN ${b} ${d};`)};d("client_ip","TEXT"),d("client_port","TEXT"),d("client_user_agent","TEXT"),d("client_host","TEXT"),d("source_tool","TEXT"),d("source_tool_label","TEXT"),d("source_host","TEXT"),d("provider","TEXT"),d("account_name","TEXT"),d("connection_id","TEXT"),d("display_model","TEXT"),d("content_mode","TEXT"),d("payload_hash","TEXT"),d("payload_size_bytes","INTEGER DEFAULT 0"),d("response_payload_hash","TEXT"),d("response_payload_size_bytes","INTEGER DEFAULT 0"),d("full_response_json","TEXT"),d("combo_name","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);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash ON prompt_logs(response_payload_hash);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_combo_name_created_at ON prompt_logs(combo_name, created_at DESC);")}async function D(a){await a.query(`
157
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_ip TEXT;
158
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_port TEXT;
159
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_user_agent TEXT;
160
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_host TEXT;
161
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool TEXT;
162
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_tool_label TEXT;
163
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS source_host TEXT;
164
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS provider TEXT;
165
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS account_name TEXT;
166
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS connection_id TEXT;
167
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS display_model TEXT;
168
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS content_mode TEXT;
169
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_hash TEXT;
170
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_size_bytes BIGINT DEFAULT 0;
171
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_hash TEXT;
172
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_size_bytes BIGINT DEFAULT 0;
173
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS full_response_json JSONB;
174
- ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS combo_name TEXT GENERATED ALWAYS AS (meta_json->>'combo_name') STORED;
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
-
182
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash
183
- ON prompt_logs(response_payload_hash);
184
-
185
- CREATE INDEX IF NOT EXISTS idx_prompt_logs_combo_name_created_at
186
- ON prompt_logs(combo_name, created_at DESC);
187
- `)}async function E(a,b,c,d){let[e]=await a.query(`
188
- SELECT 1 AS found
189
- FROM INFORMATION_SCHEMA.COLUMNS
190
- WHERE TABLE_SCHEMA = ?
191
- AND TABLE_NAME = ?
192
- AND COLUMN_NAME = ?
193
- LIMIT 1
194
- `,[b,c,d]);return e.length>0}async function F(a,b,c,d){let[e]=await a.query(`
195
- SELECT 1 AS found
196
- FROM INFORMATION_SCHEMA.STATISTICS
197
- WHERE TABLE_SCHEMA = ?
198
- AND TABLE_NAME = ?
199
- AND INDEX_NAME = ?
200
- LIMIT 1
201
- `,[b,c,d]);return e.length>0}async function G(a,b){let c=async(c,d)=>{await E(a,b.database,"prompt_logs",c)||await a.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 c("content_mode","VARCHAR(32)"),await c("payload_hash","CHAR(64)"),await c("payload_size_bytes","BIGINT DEFAULT 0"),await c("response_payload_hash","CHAR(64)"),await c("response_payload_size_bytes","BIGINT DEFAULT 0"),await c("combo_name","VARCHAR(128) GENERATED ALWAYS AS (JSON_UNQUOTE(JSON_EXTRACT(meta_json, '$.combo_name'))) STORED"),await F(a,b.database,"prompt_logs","idx_prompt_logs_payload_hash")||await a.query("CREATE INDEX idx_prompt_logs_payload_hash ON prompt_logs(payload_hash)"),await F(a,b.database,"prompt_logs","idx_prompt_logs_response_payload_hash")||await a.query("CREATE INDEX idx_prompt_logs_response_payload_hash ON prompt_logs(response_payload_hash)"),await a.query(`CREATE TABLE IF NOT EXISTS prompt_log_payloads (
202
- payload_hash CHAR(64) PRIMARY KEY,
203
- created_at DATETIME(3) NOT NULL,
204
- last_seen_at DATETIME(3) NOT NULL,
205
- content_type VARCHAR(64),
206
- payload_size_bytes BIGINT DEFAULT 0,
207
- ref_count BIGINT DEFAULT 1,
208
- payload_json JSON,
209
- INDEX idx_prompt_log_payloads_created_at (created_at),
210
- INDEX idx_prompt_log_payloads_last_seen_at (last_seen_at)
211
- ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`),await F(a,b.database,"prompt_logs","idx_prompt_logs_client_ip")||await a.query("CREATE INDEX idx_prompt_logs_client_ip ON prompt_logs(client_ip)"),await F(a,b.database,"prompt_logs","idx_prompt_logs_source_tool")||await a.query("CREATE INDEX idx_prompt_logs_source_tool ON prompt_logs(source_tool)"),await F(a,b.database,"prompt_logs","idx_prompt_logs_combo_name_created_at")||await a.query("CREATE INDEX idx_prompt_logs_combo_name_created_at ON prompt_logs(combo_name, created_at)")}function H(a){if(null==a)return null;if("string"==typeof a)try{return JSON.parse(a),a}catch{return JSON.stringify(a)}try{return JSON.stringify(a)}catch{return JSON.stringify(String(a))}}function I(a){return Buffer.byteLength(String(a||""),"utf8")}function J(a,b,c=null,d=null){let e=function(a={}){let b=(a.context&&"object"==typeof a.context.routingMetadata?a.context.routingMetadata:null)||(a.routingMetadata&&"object"==typeof a.routingMetadata?a.routingMetadata:null)||(a.meta&&"object"==typeof a.meta.routingMetadata?a.meta.routingMetadata:null)||null;if(!b)return{};let c=(...a)=>{for(let c of a)if(void 0!==b[c]&&null!==b[c]&&""!==b[c])return b[c];return null},d={combo_name:c("combo_name","comboName"),combo_target:c("combo_target","comboTarget"),combo_strategy:c("combo_strategy","comboStrategy"),route_type:c("route_type","routeType"),selected_provider_id:c("selected_provider_id","selectedProviderId"),selected_model:c("selected_model","selectedModel")},e=c("request_overrides_applied","requestOverridesApplied");e&&"object"==typeof e&&!Array.isArray(e)&&(d.request_overrides_applied=e);let f=c("auto_off_applied","autoOffApplied");for(let a of(null!==f&&(d.auto_off_applied=!0===f||"true"===f||1===f||"1"===f),Object.keys(d)))(null===d[a]||void 0===d[a]||""===d[a])&&delete d[a];return d}(a);if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0,...e});let f=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of(Object.assign(f,e),["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"]))Object.prototype.hasOwnProperty.call(f,a)&&delete f[a];return f.contentLoggingMode=l(a.contentLoggingMode||a.context?.contentLoggingMode),f.contentMode="raw_json_preview",c?.payloadHash&&(f.payloadHash=c.payloadHash,f.payloadSizeBytes=c.payloadSizeBytes||0,f.payloadStorage="prompt_log_payloads"),d?.payloadHash&&(f.responsePayloadHash=d.payloadHash,f.responsePayloadSizeBytes=d.payloadSizeBytes||0,f.responsePayloadStorage="prompt_log_payloads"),Object.keys(f).length?JSON.stringify(f):null}async function K(a,b,c,d="request_json"){if(!c)return null;let e=c&&o?.createHash?o.createHash("sha256").update(c).digest("hex"):null;if(!e)return null;let f=I(c),g=b.created_at.replace("T"," ").replace("Z","");return await a.query(`INSERT INTO prompt_log_payloads (
212
- payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
213
- ) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
214
- ON DUPLICATE KEY UPDATE
215
- last_seen_at = VALUES(last_seen_at),
216
- ref_count = ref_count + 1,
217
- content_type = CASE
218
- WHEN content_type = VALUES(content_type) THEN content_type
219
- WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
220
- ELSE content_type
221
- END`,[e,g,g,d,f,c]),{payloadHash:e,payloadSizeBytes:f,contentType:d,contentMode:"raw_json_preview"}}function L(a,b=[]){if(null==a)return b;if("string"==typeof a)return a.trim()&&b.push(a.trim()),b;if(Array.isArray(a)){for(let c of a)L(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&L(a.parts,b)),b}function M(a){return(function a(b,c=0,d=[]){if(null==b||c>12||d.join("\n").length>k)return d;let e=0===c?function(a){let b=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=a.request&&"object"==typeof a.request?a.request:a;for(let c of[a.body?.request&&"object"==typeof a.body.request?a.body.request:null,a.payload?.request&&"object"==typeof a.payload.request?a.payload.request:null,b])if(!(!c||"object"!=typeof c||Array.isArray(c))&&(c.systemInstruction||Array.isArray(c.contents)||Array.isArray(c.tools)))return c;return null}(a);if(!b)return null;let c=[],d=L(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
222
- ${d.join("\n\n")}`);let e=[];for(let a of Array.isArray(b.tools)?b.tools:[])for(let b of Array.isArray(a?.functionDeclarations)?a.functionDeclarations:[]){let a=N(b?.name),c=N(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
223
- ${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=N(a?.role)||"message",c=L(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
224
- ${f.join("\n\n")}`),c.length?c:null}(b):null;if(e)return d.push(...e),d;if("string"==typeof b)return b.trim()&&d.push(b),d;if(Array.isArray(b)){for(let e of b)a(e,c+1,d);return d}if("object"==typeof b)for(let[e,f]of Object.entries(b)){let b=e.toLowerCase();["content","text","prompt","input","message","reasoning_content","thinking","output_text"].includes(b)?a(f,c+1,d):c<8&&["messages","contents","parts","body","request","payload","response","choices","candidates","candidate","delta","output","item","items"].includes(b)&&a(f,c+1,d)}return d})(a||{}).join("\n\n").slice(0,k)}function N(a){return String(a||"").trim()}function O(a){let b=N(a);if(!b)return"";try{return new URL(b).hostname||""}catch{return b.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/:\d+$/,"")}}async function P(a){try{var b;if(await s(),!m||!n)return;let d=await A(),f=l(a.contentLoggingMode||a.context?.contentLoggingMode),h="disabled"===f;if(!d?.enabled||(b=a.stage,!d?.enabled||("client"===b?!1===d.logClientRequest:"source"===b||"openai"===b?!1===d.logSourceRequest:"target"===b?!1===d.logTargetRequest:"provider_response"===b?!0!==d.logProviderResponse:"error"===b&&!1===d.logErrors)))return;let o=new Date().toISOString(),p="provider_response"===a.stage,q=h||!p?null:function(a={}){return void 0!==a.responseText&&null!==a.responseText?String(a.responseText).slice(0,k):"string"==typeof a.response?a.response.slice(0,k):M(a.response||a.meta?.body||{})}(a),r=h?g:void 0!==a.promptText?String(a.promptText):p?"":M(a.request||a.response||{}),t=h?null:p?q||null:"string"==typeof a.response?a.response:null,u=r?String(r).slice(0,i):null,v=t?String(t).slice(0,j):null,E=h||!a.request?null:H(a.request),F=h||!p?null:H(function(a={}){return void 0!==a.fullResponseJson&&null!==a.fullResponseJson?a.fullResponseJson:void 0!==a.responsePayload&&null!==a.responsePayload?a.responsePayload:a.meta&&"object"==typeof a.meta?a.meta:void 0!==a.response&&null!==a.response?{body:a.response}:null}(a)),L="mysql"===d.type?null:E,P="mysql"===d.type?null:F,Q=w(a.headers||a.request?.headers||{}),R=x(a.headers||a.request?.headers||{}),S=y(Q,a.clientInfo||{}),T=y(R,a.sourceInfo||{}),U=function(a={}){var b,c;let d,e,f,g=a.context||{},h=function(a){let b=N(a),c=b.indexOf("/");if(c<=0)return"";let d=b.slice(0,c);return/^[a-z][a-z0-9_-]{1,60}$/i.test(d)?d:""}(a.model),i=N(g.provider)||N(a.provider)||N(a.providerId)||N(a.provider_id)||h||"",j=(d=N(i),/^openai-compatible-chat-[0-9a-f-]{20,}$/i.test(d)||/^openai-compatible-[0-9a-f-]{20,}$/i.test(d))?"":i,k=N(g.accountName)||N(g.account_name)||N(g.connectionName)||N(a.accountName)||N(a.account_name)||N(a.keyName)||N(a.key_name)||"",l=N(g.connectionId)||N(a.connectionId)||N(a.connection_id)||"",m=(b=N(a.model),c=j||h,e=N(b),(f=N(c))&&e.startsWith(`${f}/`)?e.slice(f.length+1):e),n=O(a.providerUrl)||O(a.endpoint),o="";return j&&k&&k!==j?o=`${j}/${k}`:j?o=j:k?o=k:n&&(o=n),{provider:j||null,accountName:k||null,connectionId:l||null,displayModel:o&&m?`${o}/${m}`:null}}(a),V={id:`${Date.now()}_${Math.random().toString(16).slice(2)}`,created_at:o,session_id:a.sessionId||null,source_format:a.sourceFormat||null,target_format:a.targetFormat||null,model:a.model||null,endpoint:a.endpoint||null,stage:a.stage||null,provider_url:a.providerUrl||null,provider:U.provider||null,account_name:U.accountName||null,connection_id:U.connectionId||null,display_model:U.displayModel||null,client_ip:S.client_ip||null,client_port:S.client_port||null,client_user_agent:S.client_user_agent||null,client_host:S.client_host||null,source_tool:T.source_tool||null,source_tool_label:T.source_tool_label||null,source_host:T.source_host||null,content_mode:h?"disabled":"raw_json_preview",payload_hash:null,payload_size_bytes:E?I(E):0,response_payload_hash:null,response_payload_size_bytes:F?I(F):0,prompt_text:u||null,full_request_json:L,full_response_json:P,response_text:v,status_code:a.statusCode||null,error_text:a.errorText||null,meta_json:J(a,h)};if("postgres"===d.type){let a=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:d.host,port:Number(d.port||5432),database:d.database,user:d.username,password:d.password,ssl:!!d.ssl&&{rejectUnauthorized:!1}});try{await a.connect(),await a.query(B("postgres")),await D(a),await a.query(`INSERT INTO prompt_logs (
225
- id, created_at, session_id, source_format, target_format, model,
226
- endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
227
- client_ip, client_port, client_user_agent, client_host,
228
- source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
229
- response_payload_hash, response_payload_size_bytes,
230
- prompt_text, full_request_json, full_response_json,
231
- response_text, status_code, error_text, meta_json
232
- ) VALUES (
233
- $1, $2, $3, $4, $5, $6,
234
- $7, $8, $9, $10, $11, $12, $13,
235
- $14, $15, $16, $17,
236
- $18, $19, $20, $21, $22, $23,
237
- $24, $25,
238
- $26, $27::jsonb, $28::jsonb,
239
- $29, $30, $31, $32::jsonb
240
- )`,[V.id,V.created_at,V.session_id,V.source_format,V.target_format,V.model,V.endpoint,V.stage,V.provider_url,V.provider,V.account_name,V.connection_id,V.display_model,V.client_ip,V.client_port,V.client_user_agent,V.client_host,V.source_tool,V.source_tool_label,V.source_host,V.content_mode,V.payload_hash,V.payload_size_bytes,V.response_payload_hash,V.response_payload_size_bytes,V.prompt_text,V.full_request_json,V.full_response_json,V.response_text,V.status_code,V.error_text,V.meta_json]),V.session_id&&V.display_model&&await a.query(`UPDATE prompt_logs
241
- SET provider = COALESCE(provider, $1),
242
- account_name = COALESCE(account_name, $2),
243
- connection_id = COALESCE(connection_id, $3),
244
- display_model = $4
245
- WHERE session_id = $5`,[V.provider,V.account_name,V.connection_id,V.display_model,V.session_id])}finally{await a.end()}return}if("mysql"===d.type){let b=await c.e(8491).then(c.t.bind(c,38491,19)),e=await b.createConnection({host:d.host,port:Number(d.port||3306),database:d.database,user:d.username,password:d.password,ssl:d.ssl?{}:void 0,multipleStatements:!0});try{await e.query(B("mysql")),await G(e,d);let b=await K(e,V,E,"request_json"),c=await K(e,V,F,"response_json");b&&(V.payload_hash=b.payloadHash,V.payload_size_bytes=b.payloadSizeBytes),c&&(V.response_payload_hash=c.payloadHash,V.response_payload_size_bytes=c.payloadSizeBytes),V.meta_json=J(a,h,b,c),await e.query(`INSERT INTO prompt_logs (
246
- id, created_at, session_id, source_format, target_format, model,
247
- endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
248
- client_ip, client_port, client_user_agent, client_host,
249
- source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
250
- response_payload_hash, response_payload_size_bytes,
251
- prompt_text, full_request_json,
252
- response_text, status_code, error_text, meta_json
253
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[V.id,V.created_at.replace("T"," ").replace("Z",""),V.session_id,V.source_format,V.target_format,V.model,V.endpoint,V.stage,V.provider_url,V.provider,V.account_name,V.connection_id,V.display_model,V.client_ip,V.client_port,V.client_user_agent,V.client_host,V.source_tool,V.source_tool_label,V.source_host,V.content_mode,V.payload_hash,V.payload_size_bytes,V.response_payload_hash,V.response_payload_size_bytes,V.prompt_text,V.full_request_json,V.response_text,V.status_code,V.error_text,V.meta_json]),V.session_id&&V.display_model&&await e.query(`UPDATE prompt_logs
254
- SET provider = COALESCE(provider, ?),
255
- account_name = COALESCE(account_name, ?),
256
- connection_id = COALESCE(connection_id, ?),
257
- display_model = ?
258
- WHERE session_id = ?`,[V.provider,V.account_name,V.connection_id,V.display_model,V.session_id])}finally{await e.end()}return}let W=d.sqlitePath||(e.DATA_DIR?n.join(e.DATA_DIR,"logs","promptLogs.sqlite"):null);if(!W)return;m.mkdirSync(n.dirname(W),{recursive:!0});let X=await z(W);try{X.exec(B("sqlite")),await C(X),X.run(`INSERT INTO prompt_logs (
96
+ `),await B(U),U.run(`INSERT INTO prompt_logs (
259
97
  id, created_at, session_id, source_format, target_format, model,
260
98
  endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
261
99
  client_ip, client_port, client_user_agent, client_host,
@@ -263,9 +101,9 @@ ${f.join("\n\n")}`),c.length?c:null}(b):null;if(e)return d.push(...e),d;if("stri
263
101
  response_payload_hash, response_payload_size_bytes,
264
102
  prompt_text, full_request_json, full_response_json,
265
103
  response_text, status_code, error_text, meta_json
266
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[V.id,V.created_at,V.session_id,V.source_format,V.target_format,V.model,V.endpoint,V.stage,V.provider_url,V.provider,V.account_name,V.connection_id,V.display_model,V.client_ip,V.client_port,V.client_user_agent,V.client_host,V.source_tool,V.source_tool_label,V.source_host,V.content_mode,V.payload_hash,V.payload_size_bytes,V.response_payload_hash,V.response_payload_size_bytes,V.prompt_text,V.full_request_json,V.full_response_json,V.response_text,V.status_code,V.error_text,V.meta_json]),V.session_id&&V.display_model&&X.run(`UPDATE prompt_logs
104
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[S.id,S.created_at,S.session_id,S.source_format,S.target_format,S.model,S.endpoint,S.stage,S.provider_url,S.provider,S.account_name,S.connection_id,S.display_model,S.client_ip,S.client_port,S.client_user_agent,S.client_host,S.source_tool,S.source_tool_label,S.source_host,S.content_mode,S.payload_hash,S.payload_size_bytes,S.response_payload_hash,S.response_payload_size_bytes,S.prompt_text,S.full_request_json,S.full_response_json,S.response_text,S.status_code,S.error_text,S.meta_json]),S.session_id&&S.display_model&&U.run(`UPDATE prompt_logs
267
105
  SET provider = COALESCE(provider, ?),
268
106
  account_name = COALESCE(account_name, ?),
269
107
  connection_id = COALESCE(connection_id, ?),
270
108
  display_model = ?
271
- WHERE session_id = ?`,[V.provider,V.account_name,V.connection_id,V.display_model,V.session_id])}finally{X.close()}}catch(a){t("db-write",`[PromptDB] Failed to write prompt log: ${a.message}`)}}async function Q(a,b,c){if(await s(),!m||!p)return null;try{m.existsSync(p)||m.mkdirSync(p,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,g=n.join(p,f);return m.mkdirSync(g,{recursive:!0}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function R(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token","api-key","openai-api-key","anthropic-api-key","gemini-api-key","google-api-key"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=String(b[a]||"");c.length>16?b[a]=`${c.slice(0,6)}...${c.slice(-4)}`:c.length>0&&(b[a]="***")}}return b}async function S(a,b,c,d={}){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let e=await Q(a,b,c),h=e?String(e).split(/[\\/]/).pop():null,i="disabled"===l(d?.contentLoggingMode),j={},k={},o=(a,b)=>{var c=i?function(a={}){let b={timestamp:a.timestamp||new Date().toISOString(),contentLoggingMode:"disabled",contentRedacted:!0,note:g};return a.endpoint&&(b.endpoint=a.endpoint),a.url&&(b.url=a.url),void 0!==a.status&&(b.status=a.status),void 0!==a.statusText&&(b.statusText=a.statusText),void 0!==a.error&&(b.error=a.error),b}(b):b;if(m&&e)try{let b=n.join(e,a);m.writeFileSync(b,JSON.stringify(c,null,2))}catch(b){console.log(`[LOG] Failed to write ${a}:`,b.message)}};return{get sessionPath(){return e},logClientRawRequest(e,f,g={}){let i={timestamp:new Date().toISOString(),endpoint:e,headers:R(g),body:f};j=y(j,w(g)),k=y(k,x(g)),o("1_req_client.json",i),P({stage:"client",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,request:i})},logRawRequest(e,f={}){let g={timestamp:new Date().toISOString(),headers:R(f),body:e};j=y(j,w(f)),k=y(k,x(f)),o("2_req_source.json",g),P({stage:"source",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,request:g})},logOpenAIRequest(e){let f={timestamp:new Date().toISOString(),body:e};o("3_req_openai.json",f),P({stage:"openai",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,request:f})},logTargetRequest(e,f,g){let i={timestamp:new Date().toISOString(),url:e,headers:R(f),body:g};o("4_req_target.json",i),P({stage:"target",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,providerUrl:e,request:i})},logProviderResponse(e,f,g,i){let l={timestamp:new Date().toISOString(),status:e,statusText:f,headers:g?"function"==typeof g.entries?Object.fromEntries(g.entries()):g:{},body:i};o("5_res_provider.json",l),P({stage:"provider_response",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,statusCode:e,response:i,meta:l})},appendProviderChunk(a){if(!i&&m&&e)try{let b=n.join(e,"5_res_provider.txt");m.appendFileSync(b,a)}catch{}},appendOpenAIChunk(a){if(!i&&m&&e)try{let b=n.join(e,"6_res_openai.txt");m.appendFileSync(b,a)}catch{}},logConvertedResponse(a){o("7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!i&&m&&e)try{let b=n.join(e,"7_res_client.txt");m.appendFileSync(b,a)}catch{}},logError(e,f=null){let g={timestamp:new Date().toISOString(),error:e?.message||String(e),stack:e?.stack,requestBody:f};o("6_error.json",g),P({stage:"error",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,errorText:g.error,request:f,meta:g})}}}}};
109
+ WHERE session_id = ?`,[S.provider,S.account_name,S.connection_id,S.display_model,S.session_id])}finally{U.close()}}catch(a){t("db-write",`[PromptDB] Failed to write prompt log: ${a.message}`)}}async function L(a,b,c){if(await s(),!m||!p)return null;try{m.existsSync(p)||m.mkdirSync(p,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds()),i=String(a.getMilliseconds()).padStart(3,"0");return`${c}${d}${e}_${f}${g}${h}_${i}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),f=`${a}_${b}_${e}_${d}`,g=n.join(p,f);return m.mkdirSync(g,{recursive:!0}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function M(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token","api-key","openai-api-key","anthropic-api-key","gemini-api-key","google-api-key"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=String(b[a]||"");c.length>16?b[a]=`${c.slice(0,6)}...${c.slice(-4)}`:c.length>0&&(b[a]="***")}}return b}async function N(a,b,c,d={}){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let e=await L(a,b,c),h=e?String(e).split(/[\\/]/).pop():null,i="disabled"===l(d?.contentLoggingMode),j={},k={},o=(a,b)=>{var c=i?function(a={}){let b={timestamp:a.timestamp||new Date().toISOString(),contentLoggingMode:"disabled",contentRedacted:!0,note:g};return a.endpoint&&(b.endpoint=a.endpoint),a.url&&(b.url=a.url),void 0!==a.status&&(b.status=a.status),void 0!==a.statusText&&(b.statusText=a.statusText),void 0!==a.error&&(b.error=a.error),b}(b):b;if(m&&e)try{let b=n.join(e,a);m.writeFileSync(b,JSON.stringify(c,null,2))}catch(b){console.log(`[LOG] Failed to write ${a}:`,b.message)}};return{get sessionPath(){return e},logClientRawRequest(e,f,g={}){let i={timestamp:new Date().toISOString(),endpoint:e,headers:M(g),body:f};j=y(j,w(g)),k=y(k,x(g)),o("1_req_client.json",i),K({stage:"client",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,request:i})},logRawRequest(e,f={}){let g={timestamp:new Date().toISOString(),headers:M(f),body:e};j=y(j,w(f)),k=y(k,x(f)),o("2_req_source.json",g),K({stage:"source",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,request:g})},logOpenAIRequest(e){let f={timestamp:new Date().toISOString(),body:e};o("3_req_openai.json",f),K({stage:"openai",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,request:f})},logTargetRequest(e,f,g){let i={timestamp:new Date().toISOString(),url:e,headers:M(f),body:g};o("4_req_target.json",i),K({stage:"target",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,providerUrl:e,request:i})},logProviderResponse(e,f,g,i){let l={timestamp:new Date().toISOString(),status:e,statusText:f,headers:g?"function"==typeof g.entries?Object.fromEntries(g.entries()):g:{},body:i};o("5_res_provider.json",l),K({stage:"provider_response",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,statusCode:e,response:i,meta:l})},appendProviderChunk(a){if(!i&&m&&e)try{let b=n.join(e,"5_res_provider.txt");m.appendFileSync(b,a)}catch{}},appendOpenAIChunk(a){if(!i&&m&&e)try{let b=n.join(e,"6_res_openai.txt");m.appendFileSync(b,a)}catch{}},logConvertedResponse(a){o("7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!i&&m&&e)try{let b=n.join(e,"7_res_client.txt");m.appendFileSync(b,a)}catch{}},logError(e,f=null){let g={timestamp:new Date().toISOString(),error:e?.message||String(e),stack:e?.stack,requestBody:f};o("6_error.json",g),K({stage:"error",clientInfo:j,sourceInfo:k,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,errorText:g.error,request:f,meta:g})}}}}};