@jheavenknows/bluerouter 4.0.30 → 4.0.32

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 (499) 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.js.nft.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  65. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  66. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  68. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  69. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  70. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  71. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  73. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  74. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  75. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  76. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +2 -33
  107. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +1 -32
  111. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +1 -32
  113. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +1 -32
  115. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  177. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  179. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  229. package/app/.next-cli-build/server/app/callback.html +1 -1
  230. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  231. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  232. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  233. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  234. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  235. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  236. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  237. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +5 -5
  239. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  241. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
  244. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +4 -4
  246. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  247. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  248. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +6 -6
  249. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  250. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  252. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  253. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +6 -6
  254. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +4 -4
  256. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  257. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  259. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  260. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  263. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  264. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  266. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  267. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  269. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  270. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  272. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  273. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  274. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  276. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  277. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  279. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  280. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  282. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  283. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  284. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  286. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  287. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  288. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  289. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  290. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  293. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  294. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  296. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  297. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  298. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  299. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  300. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  304. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  305. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  307. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  308. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  309. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  310. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  311. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  314. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  315. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  317. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  318. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  319. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  320. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  324. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  325. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  327. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  328. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  329. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +6 -6
  330. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +2 -2
  331. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  334. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +6 -6
  335. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +4 -4
  337. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  338. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  339. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +5 -5
  340. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  344. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +5 -5
  345. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +4 -4
  347. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  348. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  349. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  350. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  351. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  353. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  355. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  356. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  358. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  359. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  360. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  361. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  362. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  364. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  365. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  366. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  368. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  369. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  370. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  371. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  373. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  375. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  376. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  378. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  379. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  380. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  381. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  382. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  383. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  384. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  385. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  386. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  387. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  388. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  389. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  391. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  393. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  394. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  396. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  397. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  401. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  402. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  403. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  404. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  406. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  407. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  408. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  410. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  412. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  413. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  414. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  416. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  417. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  418. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  420. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  422. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  423. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  424. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  425. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  426. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  427. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  428. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  429. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  430. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  431. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  432. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  433. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  434. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  435. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  436. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  437. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  439. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  440. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/index.html +1 -1
  442. package/app/.next-cli-build/server/app/index.rsc +4 -4
  443. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  444. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  445. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  446. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  447. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  448. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  450. package/app/.next-cli-build/server/app/landing.html +1 -1
  451. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  452. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  453. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  454. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  455. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  456. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  457. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/login/page.js +1 -1
  459. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  461. package/app/.next-cli-build/server/app/login.html +1 -1
  462. package/app/.next-cli-build/server/app/login.rsc +5 -5
  463. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  464. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  466. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  467. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  468. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  469. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  470. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  471. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  472. package/app/.next-cli-build/server/app-paths-manifest.json +2 -2
  473. package/app/.next-cli-build/server/chunks/2338.js +1 -1
  474. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  475. package/app/.next-cli-build/server/chunks/402.js +17 -2
  476. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  477. package/app/.next-cli-build/server/chunks/5199.js +45 -21
  478. package/app/.next-cli-build/server/chunks/6050.js +35 -0
  479. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  480. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  481. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  482. package/app/.next-cli-build/server/pages/404.html +1 -1
  483. package/app/.next-cli-build/server/pages/500.html +1 -1
  484. package/app/.next-cli-build/static/chunks/{620-946698b341d3dcf9.js → 620-3f413b2ac3f99793.js} +1 -1
  485. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-a189bf76aadc8663.js +1 -0
  486. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/prompt-logs/{page-c7527ff0f6f0aa99.js → page-e19a2953d6caeb72.js} +1 -1
  487. package/app/.next-cli-build/static/chunks/app/login/page-3efce283bcbde4f3.js +1 -0
  488. package/app/.next-cli-build/static/css/c7aebebc4a4a8b6e.css +1 -0
  489. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  490. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  491. package/app/package.json +1 -1
  492. package/package.json +1 -1
  493. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-54d1a2f86248c78f.js +0 -1
  494. package/app/.next-cli-build/static/chunks/app/login/page-1dc15b84ba0afeee.js +0 -1
  495. package/app/.next-cli-build/static/css/85f2d22b89be1fb7.css +0 -1
  496. /package/app/.next-cli-build/static/{PqRZDhZK7Q1yIL3S5m3Vl → SRjUoDfwGXzeOEEyZ2vMG}/_buildManifest.js +0 -0
  497. /package/app/.next-cli-build/static/{PqRZDhZK7Q1yIL3S5m3Vl → SRjUoDfwGXzeOEEyZ2vMG}/_ssgManifest.js +0 -0
  498. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.12-to-4.0.14-4.0.14-20260619-220611 → upgrade-4.0.29-to-4.0.30-4.0.30-20260620-214505}/data.sqlite +0 -0
  499. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-4.0.14-to-4.0.27-4.0.27-20260619-221058 → upgrade-4.0.30-to-4.0.31-4.0.31-20260621-102809}/data.sqlite +0 -0
@@ -1,4 +1,4 @@
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:()=>O});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"]);function i(a){let b=String(a||"inherit").trim().toLowerCase();return h.has(b)?b:"inherit"}let j=null,k=null,l=null,m=null,n={expiresAt:0,config:null},o=new Set;async function p(){if(d&&f&&!j)try{j=await Promise.resolve().then(c.t.bind(c,29021,23)),k=await Promise.resolve().then(c.t.bind(c,33873,23)),l=await Promise.resolve().then(c.t.bind(c,55511,23)),m=e.REQUEST_LOG_DIR||(e.DATA_DIR?k.join(e.DATA_DIR,"logs","requests"):null)||k.join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}function q(a,b){o.has(a)||(o.add(a),console.log(b))}function r(a){return Array.isArray(a)?a[0]||"":a||""}function s(a={}){let b={};for(let[c,d]of Object.entries(a||{}))b[c.toLowerCase()]=d;return b}function t(a={}){let b=s(a);return{client_ip:String(r(b["x-9r-client-ip"])||r(b["x-forwarded-for"])||"").split(",")[0].trim().replace(/^::ffff:/,"").replace(/^::1$/,"127.0.0.1"),client_port:String(r(b["x-9r-client-port"])||""),client_user_agent:String(r(b["x-9r-client-user-agent"])||r(b["user-agent"])||""),client_host:String(r(b["x-9r-client-host"])||r(b.host)||"")}}function u(a={}){let b=s(a);return{source_tool:String(r(b["x-9r-source-tool"])||""),source_tool_label:String(r(b["x-9r-source-tool-label"])||""),source_host:String(r(b["x-9r-source-host"])||r(b.host)||"")}}function v(a={},b={}){return{...a,...Object.fromEntries(Object.entries(b||{}).filter(([,a])=>null!=a&&""!==String(a)))}}async function w(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 x(){if(await p(),!j||!k)return null;let a=Date.now();if(n.config&&n.expiresAt>a)return n.config;let b=null;try{let a=k?e.PROMPT_LOG_CONFIG_DB?e.PROMPT_LOG_CONFIG_DB:e.DATA_DIR?k.join(e.DATA_DIR,"db","data.sqlite"):null:null;if(a&&j.existsSync(a)){let c=await w(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){q("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?k.join(e.DATA_DIR,"logs","promptLogs.sqlite"):""),logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:"true"===e.PROMPT_LOG_DB_RESPONSE,logErrors:!0}),n={config:b,expiresAt:a+5e3},b}function y(a){return"postgres"===a?`
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
2
  CREATE TABLE IF NOT EXISTS prompt_logs (
3
3
  id TEXT PRIMARY KEY,
4
4
  created_at TIMESTAMPTZ NOT NULL,
@@ -23,8 +23,11 @@
23
23
  content_mode TEXT,
24
24
  payload_hash TEXT,
25
25
  payload_size_bytes BIGINT DEFAULT 0,
26
+ response_payload_hash TEXT,
27
+ response_payload_size_bytes BIGINT DEFAULT 0,
26
28
  prompt_text TEXT,
27
29
  full_request_json JSONB,
30
+ full_response_json JSONB,
28
31
  response_text TEXT,
29
32
  status_code INTEGER,
30
33
  error_text TEXT,
@@ -73,6 +76,8 @@
73
76
  content_mode VARCHAR(32),
74
77
  payload_hash CHAR(64),
75
78
  payload_size_bytes BIGINT DEFAULT 0,
79
+ response_payload_hash CHAR(64),
80
+ response_payload_size_bytes BIGINT DEFAULT 0,
76
81
  prompt_text LONGTEXT,
77
82
  full_request_json JSON,
78
83
  response_text LONGTEXT,
@@ -85,7 +90,8 @@
85
90
  INDEX idx_prompt_logs_session (session_id),
86
91
  INDEX idx_prompt_logs_client_ip (client_ip),
87
92
  INDEX idx_prompt_logs_source_tool (source_tool),
88
- INDEX idx_prompt_logs_payload_hash (payload_hash)
93
+ INDEX idx_prompt_logs_payload_hash (payload_hash),
94
+ INDEX idx_prompt_logs_response_payload_hash (response_payload_hash)
89
95
  ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
90
96
 
91
97
  CREATE TABLE IF NOT EXISTS prompt_log_payloads (
@@ -124,8 +130,11 @@
124
130
  content_mode TEXT,
125
131
  payload_hash TEXT,
126
132
  payload_size_bytes INTEGER DEFAULT 0,
133
+ response_payload_hash TEXT,
134
+ response_payload_size_bytes INTEGER DEFAULT 0,
127
135
  prompt_text TEXT,
128
136
  full_request_json TEXT,
137
+ full_response_json TEXT,
129
138
  response_text TEXT,
130
139
  status_code INTEGER,
131
140
  error_text TEXT,
@@ -143,7 +152,7 @@
143
152
 
144
153
  CREATE INDEX IF NOT EXISTS idx_prompt_logs_session
145
154
  ON prompt_logs(session_id);
146
- `}async function z(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"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip ON prompt_logs(client_ip);"),a.exec("CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool ON prompt_logs(source_tool);")}async function A(a){await a.query(`
155
+ `}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"),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);")}async function D(a){await a.query(`
147
156
  ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_ip TEXT;
148
157
  ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_port TEXT;
149
158
  ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS client_user_agent TEXT;
@@ -158,27 +167,33 @@
158
167
  ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS content_mode TEXT;
159
168
  ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_hash TEXT;
160
169
  ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS payload_size_bytes BIGINT DEFAULT 0;
170
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_hash TEXT;
171
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS response_payload_size_bytes BIGINT DEFAULT 0;
172
+ ALTER TABLE prompt_logs ADD COLUMN IF NOT EXISTS full_response_json JSONB;
161
173
 
162
174
  CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip
163
175
  ON prompt_logs(client_ip);
164
176
 
165
177
  CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool
166
178
  ON prompt_logs(source_tool);
167
- `)}async function B(a,b,c,d){let[e]=await a.query(`
179
+
180
+ CREATE INDEX IF NOT EXISTS idx_prompt_logs_response_payload_hash
181
+ ON prompt_logs(response_payload_hash);
182
+ `)}async function E(a,b,c,d){let[e]=await a.query(`
168
183
  SELECT 1 AS found
169
184
  FROM INFORMATION_SCHEMA.COLUMNS
170
185
  WHERE TABLE_SCHEMA = ?
171
186
  AND TABLE_NAME = ?
172
187
  AND COLUMN_NAME = ?
173
188
  LIMIT 1
174
- `,[b,c,d]);return e.length>0}async function C(a,b,c,d){let[e]=await a.query(`
189
+ `,[b,c,d]);return e.length>0}async function F(a,b,c,d){let[e]=await a.query(`
175
190
  SELECT 1 AS found
176
191
  FROM INFORMATION_SCHEMA.STATISTICS
177
192
  WHERE TABLE_SCHEMA = ?
178
193
  AND TABLE_NAME = ?
179
194
  AND INDEX_NAME = ?
180
195
  LIMIT 1
181
- `,[b,c,d]);return e.length>0}async function D(a,b){let c=async(c,d)=>{await B(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(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 a.query(`CREATE TABLE IF NOT EXISTS prompt_log_payloads (
196
+ `,[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 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 (
182
197
  payload_hash CHAR(64) PRIMARY KEY,
183
198
  created_at DATETIME(3) NOT NULL,
184
199
  last_seen_at DATETIME(3) NOT NULL,
@@ -188,55 +203,64 @@
188
203
  payload_json JSON,
189
204
  INDEX idx_prompt_log_payloads_created_at (created_at),
190
205
  INDEX idx_prompt_log_payloads_last_seen_at (last_seen_at)
191
- ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`),await C(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 C(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)")}function E(a){return Buffer.byteLength(String(a||""),"utf8")}function F(a,b,c=null){if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0});let d=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"])Object.prototype.hasOwnProperty.call(d,a)&&delete d[a];return d.contentLoggingMode=i(a.contentLoggingMode||a.context?.contentLoggingMode),d.contentMode=c?.contentMode||"full",c?.payloadHash&&(d.payloadHash=c.payloadHash,d.payloadSizeBytes=c.payloadSizeBytes||0,d.payloadStorage="prompt_log_payloads"),Object.keys(d).length?JSON.stringify(d):null}async function G(a,b,c){if(!c)return null;let d=c&&l?.createHash?l.createHash("sha256").update(c).digest("hex"):null;if(!d)return null;let e=E(c),f=b.created_at.replace("T"," ").replace("Z","");return await a.query(`INSERT INTO prompt_log_payloads (
206
+ ) 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)")}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){if(b)return JSON.stringify({contentLoggingMode:"disabled",contentRedacted:!0});let e=a.meta&&"object"==typeof a.meta?{...a.meta}:a.meta?{value:a.meta}:{};for(let a of["body","requestBody","responseBody","fullRequestJson","fullResponseJson","payload","request","response"])Object.prototype.hasOwnProperty.call(e,a)&&delete e[a];return e.contentLoggingMode=l(a.contentLoggingMode||a.context?.contentLoggingMode),e.contentMode="raw_json_preview",c?.payloadHash&&(e.payloadHash=c.payloadHash,e.payloadSizeBytes=c.payloadSizeBytes||0,e.payloadStorage="prompt_log_payloads"),d?.payloadHash&&(e.responsePayloadHash=d.payloadHash,e.responsePayloadSizeBytes=d.payloadSizeBytes||0,e.responsePayloadStorage="prompt_log_payloads"),Object.keys(e).length?JSON.stringify(e):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 (
192
207
  payload_hash, created_at, last_seen_at, content_type, payload_size_bytes, ref_count, payload_json
193
208
  ) VALUES (?, ?, ?, ?, ?, 1, CAST(? AS JSON))
194
209
  ON DUPLICATE KEY UPDATE
195
210
  last_seen_at = VALUES(last_seen_at),
196
- ref_count = ref_count + 1`,[d,f,f,"request_json",e,c]),{payloadHash:d,payloadSizeBytes:e,contentMode:"full"}}function H(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)H(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&H(a.parts,b)),b}function I(a){return(function a(b,c=0,d=[]){if(null==b||c>12||d.join("\n").length>2e5)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=H(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
197
- ${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=J(b?.name),c=J(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
198
- ${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=J(a?.role)||"message",c=H(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
199
- ${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,5e5)}function J(a){return String(a||"").trim()}function K(a){let b=J(a);if(!b)return"";try{return new URL(b).hostname||""}catch{return b.replace(/^https?:\/\//,"").replace(/\/.*$/,"").replace(/:\d+$/,"")}}async function L(a){try{var b;if(await p(),!j||!k)return;let d=await x(),f=i(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))&&!h))return;let l=new Date().toISOString(),m="provider_response"===a.stage,n=h||!m?null:function(a={}){return void 0!==a.responseText&&null!==a.responseText?String(a.responseText).slice(0,5e5):"string"==typeof a.response?a.response.slice(0,5e5):I(a.response||a.meta?.body||{})}(a),o=h?g:(void 0!==a.promptText?String(a.promptText):m?"":I(a.request||a.response||{})).slice(0,5e5),q=h||!a.request?null:function(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))}}(a.request),r="mysql"===d.type?null:q,s=h?null:m?n||null:"string"==typeof a.response?a.response.slice(0,5e5):null,B=t(a.headers||a.request?.headers||{}),C=u(a.headers||a.request?.headers||{}),H=v(B,a.clientInfo||{}),L=v(C,a.sourceInfo||{}),M=function(a={}){var b,c;let d,e,f,g=a.context||{},h=function(a){let b=J(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=J(g.provider)||J(a.provider)||J(a.providerId)||J(a.provider_id)||h||"",j=(d=J(i),/^openai-compatible-chat-[0-9a-f-]{20,}$/i.test(d)||/^openai-compatible-[0-9a-f-]{20,}$/i.test(d))?"":i,k=J(g.accountName)||J(g.account_name)||J(g.connectionName)||J(a.accountName)||J(a.account_name)||J(a.keyName)||J(a.key_name)||"",l=J(g.connectionId)||J(a.connectionId)||J(a.connection_id)||"",m=(b=J(a.model),c=j||h,e=J(b),(f=J(c))&&e.startsWith(`${f}/`)?e.slice(f.length+1):e),n=K(a.providerUrl)||K(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),N={id:`${Date.now()}_${Math.random().toString(16).slice(2)}`,created_at:l,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:M.provider||null,account_name:M.accountName||null,connection_id:M.connectionId||null,display_model:M.displayModel||null,client_ip:H.client_ip||null,client_port:H.client_port||null,client_user_agent:H.client_user_agent||null,client_host:H.client_host||null,source_tool:L.source_tool||null,source_tool_label:L.source_tool_label||null,source_host:L.source_host||null,content_mode:h?"disabled":"full",payload_hash:null,payload_size_bytes:q?E(q):0,prompt_text:o||null,full_request_json:r,response_text:s,status_code:a.statusCode||null,error_text:a.errorText||null,meta_json:F(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(y("postgres")),await A(a),await a.query(`INSERT INTO prompt_logs (
211
+ ref_count = ref_count + 1,
212
+ content_type = CASE
213
+ WHEN content_type = VALUES(content_type) THEN content_type
214
+ WHEN content_type IS NULL OR content_type = '' THEN VALUES(content_type)
215
+ ELSE content_type
216
+ 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]
217
+ ${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]
218
+ ${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]
219
+ ${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 (
200
220
  id, created_at, session_id, source_format, target_format, model,
201
221
  endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
202
222
  client_ip, client_port, client_user_agent, client_host,
203
223
  source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
204
- prompt_text, full_request_json,
224
+ response_payload_hash, response_payload_size_bytes,
225
+ prompt_text, full_request_json, full_response_json,
205
226
  response_text, status_code, error_text, meta_json
206
227
  ) VALUES (
207
228
  $1, $2, $3, $4, $5, $6,
208
229
  $7, $8, $9, $10, $11, $12, $13,
209
230
  $14, $15, $16, $17,
210
231
  $18, $19, $20, $21, $22, $23,
211
- $24, $25::jsonb,
212
- $26, $27, $28, $29::jsonb
213
- )`,[N.id,N.created_at,N.session_id,N.source_format,N.target_format,N.model,N.endpoint,N.stage,N.provider_url,N.provider,N.account_name,N.connection_id,N.display_model,N.client_ip,N.client_port,N.client_user_agent,N.client_host,N.source_tool,N.source_tool_label,N.source_host,N.content_mode,N.payload_hash,N.payload_size_bytes,N.prompt_text,N.full_request_json,N.response_text,N.status_code,N.error_text,N.meta_json]),N.session_id&&N.display_model&&await a.query(`UPDATE prompt_logs
232
+ $24, $25,
233
+ $26, $27::jsonb, $28::jsonb,
234
+ $29, $30, $31, $32::jsonb
235
+ )`,[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
214
236
  SET provider = COALESCE(provider, $1),
215
237
  account_name = COALESCE(account_name, $2),
216
238
  connection_id = COALESCE(connection_id, $3),
217
239
  display_model = $4
218
- WHERE session_id = $5`,[N.provider,N.account_name,N.connection_id,N.display_model,N.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(y("mysql")),await D(e,d);let b=await G(e,N,q);b&&(N.payload_hash=b.payloadHash,N.payload_size_bytes=b.payloadSizeBytes,N.meta_json=F(a,h,b)),await e.query(`INSERT INTO prompt_logs (
240
+ 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 (
219
241
  id, created_at, session_id, source_format, target_format, model,
220
242
  endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
221
243
  client_ip, client_port, client_user_agent, client_host,
222
244
  source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
245
+ response_payload_hash, response_payload_size_bytes,
223
246
  prompt_text, full_request_json,
224
247
  response_text, status_code, error_text, meta_json
225
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CAST(? AS JSON), ?, ?, ?, CAST(? AS JSON))`,[N.id,N.created_at.replace("T"," ").replace("Z",""),N.session_id,N.source_format,N.target_format,N.model,N.endpoint,N.stage,N.provider_url,N.provider,N.account_name,N.connection_id,N.display_model,N.client_ip,N.client_port,N.client_user_agent,N.client_host,N.source_tool,N.source_tool_label,N.source_host,N.content_mode,N.payload_hash,N.payload_size_bytes,N.prompt_text,N.full_request_json,N.response_text,N.status_code,N.error_text,N.meta_json]),N.session_id&&N.display_model&&await e.query(`UPDATE prompt_logs
248
+ ) 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
226
249
  SET provider = COALESCE(provider, ?),
227
250
  account_name = COALESCE(account_name, ?),
228
251
  connection_id = COALESCE(connection_id, ?),
229
252
  display_model = ?
230
- WHERE session_id = ?`,[N.provider,N.account_name,N.connection_id,N.display_model,N.session_id])}finally{await e.end()}return}let O=d.sqlitePath||(e.DATA_DIR?k.join(e.DATA_DIR,"logs","promptLogs.sqlite"):null);if(!O)return;j.mkdirSync(k.dirname(O),{recursive:!0});let P=await w(O);try{P.exec(y("sqlite")),await z(P),P.run(`INSERT INTO prompt_logs (
253
+ 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 (
231
254
  id, created_at, session_id, source_format, target_format, model,
232
255
  endpoint, stage, provider_url, provider, account_name, connection_id, display_model,
233
256
  client_ip, client_port, client_user_agent, client_host,
234
257
  source_tool, source_tool_label, source_host, content_mode, payload_hash, payload_size_bytes,
235
- prompt_text, full_request_json,
258
+ response_payload_hash, response_payload_size_bytes,
259
+ prompt_text, full_request_json, full_response_json,
236
260
  response_text, status_code, error_text, meta_json
237
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[N.id,N.created_at,N.session_id,N.source_format,N.target_format,N.model,N.endpoint,N.stage,N.provider_url,N.provider,N.account_name,N.connection_id,N.display_model,N.client_ip,N.client_port,N.client_user_agent,N.client_host,N.source_tool,N.source_tool_label,N.source_host,N.content_mode,N.payload_hash,N.payload_size_bytes,N.prompt_text,N.full_request_json,N.response_text,N.status_code,N.error_text,N.meta_json]),N.session_id&&N.display_model&&P.run(`UPDATE prompt_logs
261
+ ) 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
238
262
  SET provider = COALESCE(provider, ?),
239
263
  account_name = COALESCE(account_name, ?),
240
264
  connection_id = COALESCE(connection_id, ?),
241
265
  display_model = ?
242
- WHERE session_id = ?`,[N.provider,N.account_name,N.connection_id,N.display_model,N.session_id])}finally{P.close()}}catch(a){q("db-write",`[PromptDB] Failed to write prompt log: ${a.message}`)}}async function M(a,b,c){if(await p(),!j||!m)return null;try{j.existsSync(m)||j.mkdirSync(m,{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=k.join(m,f);return j.mkdirSync(g,{recursive:!0}),g}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function N(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 O(a,b,c,d={}){if(!f)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let e=await M(a,b,c),h=e?String(e).split(/[\\/]/).pop():null,l="disabled"===i(d?.contentLoggingMode),m={},n={},o=(a,b)=>{var c=l?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(j&&e)try{let b=k.join(e,a);j.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:N(g),body:f};m=v(m,t(g)),n=v(n,u(g)),o("1_req_client.json",i),L({stage:"client",clientInfo:m,sourceInfo:n,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,request:i})},logRawRequest(e,f={}){let g={timestamp:new Date().toISOString(),headers:N(f),body:e};m=v(m,t(f)),n=v(n,u(f)),o("2_req_source.json",g),L({stage:"source",clientInfo:m,sourceInfo:n,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),L({stage:"openai",clientInfo:m,sourceInfo:n,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:N(f),body:g};o("4_req_target.json",i),L({stage:"target",clientInfo:m,sourceInfo:n,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,endpoint:e,providerUrl:e,request:i})},logProviderResponse(e,f,g,i){let j={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",j),L({stage:"provider_response",clientInfo:m,sourceInfo:n,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,statusCode:e,response:i,meta:j})},appendProviderChunk(a){if(!l&&j&&e)try{let b=k.join(e,"5_res_provider.txt");j.appendFileSync(b,a)}catch{}},appendOpenAIChunk(a){if(!l&&j&&e)try{let b=k.join(e,"6_res_openai.txt");j.appendFileSync(b,a)}catch{}},logConvertedResponse(a){o("7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!l&&j&&e)try{let b=k.join(e,"7_res_client.txt");j.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),L({stage:"error",clientInfo:m,sourceInfo:n,sessionId:h,sourceFormat:a,targetFormat:b,model:c,context:d,errorText:g.error,request:f,meta:g})}}}}};
266
+ 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})}}}}};
@@ -0,0 +1,35 @@
1
+ "use strict";exports.id=6050,exports.ids=[6050],exports.modules={50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},97242:(a,b,c)=>{c.d(b,{DU:()=>B,Ws:()=>C,_3:()=>E,nv:()=>D});var d=c(45903);let e=new Set;function f(a,b,c=null){let d=Number(a);if(!Number.isFinite(d)||d<0)return b;let e=Math.floor(d);return c?Math.min(e,c):e}function g(a){return String(a||"").trim()}async function h(){return(0,d.I6)(await (0,d.L7)())}async function i(a){let b=new(await Promise.resolve().then(c.bind(c,64939))).Client({host:a.host,port:Number(a.port||5432),database:a.database,user:a.username,password:a.password,ssl:!!a.ssl&&{rejectUnauthorized:!1}});return await b.connect(),{type:"postgres",query:async(a,c=[])=>(await b.query(a,c)).rows,queryOne:async(a,c=[])=>(await b.query(a,c)).rows[0]||null,async exec(a,c=[]){await b.query(a,c)},async close(){await b.end()}}}async function j(a){let b=await c.e(8491).then(c.t.bind(c,38491,19)),d=await b.createConnection({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,dateStrings:!0,connectTimeout:3e3});return{type:"mysql",async query(a,b=[]){let[c]=await d.query(a,b);return c},async queryOne(a,b=[]){let[c]=await d.query(a,b);return c[0]||null},async exec(a,b=[]){await d.query(a,b)},async close(){await d.end()}}}async function k(a){if("postgres"===a.type)return i(a);if("mysql"===a.type)return j(a);throw Error(`Unsupported prompt log database type: ${a.type}`)}function l(a){if(!a)return{};if("object"==typeof a)return a;try{return JSON.parse(a)}catch{return{}}}function m(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)m(c,b);return b}return"object"==typeof a&&("string"==typeof a.text&&a.text.trim()&&b.push(a.text.trim()),Array.isArray(a.parts)&&m(a.parts,b)),b}function n(a){return(function a(b,c=0,d=[]){if(null==b||c>12||d.join("\n").length>1e6)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=m(b.systemInstruction,[]);d.length&&c.push(`[SYSTEM]
2
+ ${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=g(b?.name),c=g(b?.description);(a||c)&&e.push(c?`${a}: ${c}`:a)}e.length&&c.push(`[TOOLS]
3
+ ${e.join("\n")}`);let f=[];for(let a of Array.isArray(b.contents)?b.contents:[]){let b=g(a?.role)||"message",c=m(a,[]);c.length&&f.push(`${b}: ${c.join("\n")}`)}return f.length&&c.push(`[MESSAGES]
4
+ ${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")}function o(a={}){if(!a)return a;let b=l(a.full_request_json),c=l(a.full_response_json),d=b&&Object.keys(b).length?n(b):"",e=c&&Object.keys(c).length?n(c):"";return{...a,extracted_prompt_text:d||a.prompt_text||"",extracted_response_text:e||a.response_text||""}}function p(a={}){return String(a.payload_hash||l(a.meta_json).payloadHash||"").trim()}function q(a={}){return String(a.response_payload_hash||l(a.meta_json).responsePayloadHash||"").trim()}async function r(a){let b=await a.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_log_payloads'");return Number(b?.count||0)>0}async function s(a,b){if(!b)return null;let c=await a.queryOne("SELECT payload_json FROM prompt_log_payloads WHERE payload_hash = ?",[b]);if(!c)return null;let d=c.payload_json;return"string"==typeof d?d:JSON.stringify(d)}async function t(a,b){if(!b)return b;let c=b.full_request_json?"":p(b),d=b.full_response_json?"":q(b);if(!c&&!d)return b;try{if(!await r(a))return b;let[e,f]=await Promise.all([s(a,c),s(a,d)]);return{...b,full_request_json:e||b.full_request_json,full_response_json:f||b.full_response_json}}catch{return b}}async function u(a,b=[]){let c=[...new Set(b.map(a=>String(a||"").trim()).filter(Boolean))];if(c.length)try{if(!await r(a))return;for(let b of c)await a.exec("UPDATE prompt_log_payloads SET ref_count = CASE WHEN ref_count > 0 THEN ref_count - 1 ELSE 0 END WHERE payload_hash = ?",[b]),await a.exec("DELETE FROM prompt_log_payloads WHERE payload_hash = ? AND ref_count <= 0",[b])}catch{}}async function v(a){let b=await i(a);try{for(let a of["CREATE INDEX IF NOT EXISTS idx_prompt_logs_created_id ON prompt_logs (created_at DESC, id)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_stage_created_at ON prompt_logs (stage, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_model_created_at ON prompt_logs (model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_display_model_created_at ON prompt_logs (display_model, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_session_created_at ON prompt_logs (session_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_client_ip_created_at ON prompt_logs (client_ip, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_source_tool_created_at ON prompt_logs (source_tool, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_connection_created_at ON prompt_logs (connection_id, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_account_created_at ON prompt_logs (account_name, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_provider_created_at ON prompt_logs (provider, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_status_created_at ON prompt_logs (status_code, created_at DESC)","CREATE INDEX IF NOT EXISTS idx_prompt_logs_payload_hash ON prompt_logs (payload_hash)"])await b.exec(a)}finally{await b.close()}}async function w(a,b,c){let d=await a.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_logs' AND INDEX_NAME = ?",[b]);0===Number(d?.count||0)&&await a.exec(c)}async function x(a){let b=await j(a);try{let a=await b.queryOne("SELECT COUNT(1) AS count FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'prompt_logs'");if(0===Number(a?.count||0))return;for(let[a,c]of[["idx_prompt_logs_created_id","CREATE INDEX idx_prompt_logs_created_id ON prompt_logs (created_at DESC, id)"],["idx_prompt_logs_stage_created_at","CREATE INDEX idx_prompt_logs_stage_created_at ON prompt_logs (stage, created_at DESC)"],["idx_prompt_logs_model_created_at","CREATE INDEX idx_prompt_logs_model_created_at ON prompt_logs (model, created_at DESC)"],["idx_prompt_logs_display_model_created_at","CREATE INDEX idx_prompt_logs_display_model_created_at ON prompt_logs (display_model, created_at DESC)"],["idx_prompt_logs_session_created_at","CREATE INDEX idx_prompt_logs_session_created_at ON prompt_logs (session_id, created_at DESC)"],["idx_prompt_logs_client_ip_created_at","CREATE INDEX idx_prompt_logs_client_ip_created_at ON prompt_logs (client_ip, created_at DESC)"],["idx_prompt_logs_source_tool_created_at","CREATE INDEX idx_prompt_logs_source_tool_created_at ON prompt_logs (source_tool, created_at DESC)"],["idx_prompt_logs_connection_created_at","CREATE INDEX idx_prompt_logs_connection_created_at ON prompt_logs (connection_id, created_at DESC)"],["idx_prompt_logs_account_created_at","CREATE INDEX idx_prompt_logs_account_created_at ON prompt_logs (account_name, created_at DESC)"],["idx_prompt_logs_provider_created_at","CREATE INDEX idx_prompt_logs_provider_created_at ON prompt_logs (provider, created_at DESC)"],["idx_prompt_logs_status_created_at","CREATE INDEX idx_prompt_logs_status_created_at ON prompt_logs (status_code, created_at DESC)"],["idx_prompt_logs_payload_hash","CREATE INDEX idx_prompt_logs_payload_hash ON prompt_logs (payload_hash)"]])await w(b,a,c)}finally{await b.close()}}async function y(a){if(!a.enabled)return;let b=`${a.type}:${a.host||""}:${a.port||""}:${a.database||""}`;if(!e.has(b))try{if("postgres"===a.type)await v(a);else if("mysql"===a.type)await x(a);else throw Error(`Unsupported prompt log database type: ${a.type}`);e.add(b)}catch(a){console.warn("[prompt-logs] Unable to ensure query indexes:",a.message)}}async function z(a){let b=await k(a);try{let c=(await b.query("SELECT DISTINCT COALESCE(NULLIF(display_model, ''), model) AS model FROM prompt_logs WHERE model IS NOT NULL AND model <> '' ORDER BY model LIMIT 300")).map(a=>a.model),d=(await b.query("SELECT DISTINCT stage FROM prompt_logs WHERE stage IS NOT NULL AND stage <> '' ORDER BY stage LIMIT 100")).map(a=>a.stage);return{models:c,stages:d,dbInfo:{type:a.type,host:a.host,database:a.database}}}finally{await b.close()}}async function A(a,b){let c=a.type,d=await k(a);try{let e=function(a,b){let c=[],d=[],e=a=>(d.push(a),"postgres"===b)?`$${d.length}`:"?",f="postgres"===b?"ILIKE":"LIKE";if(a.keyword){let b=`%${a.keyword}%`;c.push(`(${["prompt_text","response_text","error_text","model","endpoint","provider_url","provider","account_name","connection_id","display_model","session_id","client_ip","client_host","client_user_agent","source_tool","source_tool_label","source_host"].map(a=>`${a} ${f} ${e(b)}`).join(" OR ")})`)}if(a.model&&c.push(`(model = ${e(a.model)} OR display_model = ${e(a.model)})`),a.stage&&c.push(`stage = ${e(a.stage)}`),a.sessionId&&c.push(`session_id = ${e(a.sessionId)}`),a.clientIp&&c.push(`client_ip ${f} ${e(`%${a.clientIp}%`)}`),a.sourceTool){let b=`%${a.sourceTool}%`;c.push(`(source_tool ${f} ${e(b)} OR source_tool_label ${f} ${e(b)} OR source_host ${f} ${e(b)})`)}return a.dateFrom&&c.push(`created_at >= ${e(a.dateFrom)}`),a.dateTo&&c.push(`created_at <= ${e(a.dateTo)}`),{clause:c.length?`WHERE ${c.join(" AND ")}`:"",params:d,add:e}}(b,c),f=[...e.params],g=await d.queryOne(`SELECT COUNT(*) AS count FROM prompt_logs ${e.clause}`,f),h=e.add(b.limit),i=e.add(b.offset),j="postgres"===c?"LEFT(coalesce(prompt_text,''), 900)":"SUBSTRING(coalesce(prompt_text,''), 1, 900)",k="postgres"===c?"char_length(coalesce(prompt_text,''))":"CHAR_LENGTH(coalesce(prompt_text,''))",l="postgres"===c?"LEFT(coalesce(response_text,''), 400)":"SUBSTRING(coalesce(response_text,''), 1, 400)",m=await d.query(`
5
+ SELECT
6
+ id,
7
+ created_at,
8
+ session_id,
9
+ source_format,
10
+ target_format,
11
+ model,
12
+ endpoint,
13
+ stage,
14
+ provider_url,
15
+ provider,
16
+ account_name,
17
+ connection_id,
18
+ display_model,
19
+ client_ip,
20
+ client_port,
21
+ client_user_agent,
22
+ client_host,
23
+ source_tool,
24
+ source_tool_label,
25
+ source_host,
26
+ ${j} AS prompt_preview,
27
+ ${k} AS prompt_length,
28
+ ${l} AS response_preview,
29
+ status_code,
30
+ error_text
31
+ FROM prompt_logs
32
+ ${e.clause}
33
+ ORDER BY created_at DESC
34
+ LIMIT ${h} OFFSET ${i}
35
+ `,e.params),n=[],o=[];if(b.includeOptions){let b=await z(a);n=b.models,o=b.stages}return{rows:m,total:Number(g?.count||0),models:n,stages:o,dbInfo:{type:a.type,host:a.host,database:a.database}}}finally{await d.close()}}async function B(){let a=await h();if(!a.enabled)return{disabled:!0,models:[],stages:[],dbInfo:{type:a.type}};if(await y(a),"postgres"===a.type||"mysql"===a.type)return z(a);throw Error(`Unsupported prompt log database type: ${a.type}`)}async function C(a={}){let b=await h(),c=function(a={}){return{keyword:g(a.keyword),model:g(a.model),stage:g(a.stage),sessionId:g(a.sessionId),clientIp:g(a.clientIp),sourceTool:g(a.sourceTool),dateFrom:g(a.dateFrom),dateTo:g(a.dateTo),limit:f(a.limit,50,200),offset:f(a.offset,0),includeOptions:!0===a.includeOptions}}(a);if(!b.enabled)return{disabled:!0,rows:[],total:0,models:[],stages:[],dbInfo:{type:b.type}};if(await y(b),"postgres"===b.type||"mysql"===b.type)return A(b,c);throw Error(`Unsupported prompt log database type: ${b.type}`)}async function D(a){let b=await h(),c=await k(b);try{if("postgres"===b.type){let b=await c.queryOne("SELECT * FROM prompt_logs WHERE id = $1",[a]);return o(b)}let d=await c.queryOne("SELECT * FROM prompt_logs WHERE id = ?",[a]);return o(await t(c,d))}finally{await c.close()}}async function E(a){let b=await h(),c=await k(b);try{if("postgres"===b.type){let b=await c.queryOne("SELECT COUNT(*) AS count FROM prompt_logs WHERE id = $1",[a]);return await c.exec("DELETE FROM prompt_logs WHERE id = $1",[a]),{changed:Number(b?.count||0)}}let d=await c.queryOne("SELECT * FROM prompt_logs WHERE id = ?",[a]);return await c.exec("DELETE FROM prompt_logs WHERE id = ?",[a]),await u(c,[p(d),q(d)]),{changed:+!!d}}finally{await c.close()}}}};