@jheavenknows/bluerouter 1.0.128 → 1.0.130

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 (502) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +1 -1
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  56. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  57. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  58. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  59. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  60. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  61. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  67. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  68. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  69. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  70. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  71. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  72. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  73. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  74. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +69 -4
  105. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  171. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  198. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  223. package/app/.next-cli-build/server/app/callback.html +1 -1
  224. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  225. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  226. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  227. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  228. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  229. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  230. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  231. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  232. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +4 -4
  233. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  234. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  236. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  237. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  238. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  239. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +3 -3
  240. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  241. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  242. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +5 -5
  243. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  244. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  247. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +5 -5
  248. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +3 -3
  250. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  252. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  253. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  254. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  257. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  258. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  260. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  263. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  264. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  267. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  268. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  270. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  272. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  273. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  274. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  277. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  278. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  280. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  282. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  283. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  284. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  285. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  287. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  288. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  290. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  292. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  293. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  294. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  295. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  296. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  298. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  299. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  301. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  303. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  304. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  305. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  308. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  309. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  311. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  312. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  313. package/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  314. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  315. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  316. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  318. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  319. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  321. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  322. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  323. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +4 -4
  324. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  325. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  326. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  328. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +4 -4
  329. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  330. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +3 -3
  331. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +1 -1
  332. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  333. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +4 -4
  334. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  338. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +4 -4
  339. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  340. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +3 -3
  341. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  343. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  344. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  345. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  346. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  347. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  349. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  350. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  352. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  353. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  354. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  355. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  356. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  357. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  359. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  360. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  362. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  363. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  364. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  365. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  366. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  367. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  368. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  369. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  370. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  371. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  372. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  373. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  374. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  375. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  376. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  377. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  378. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  379. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  380. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  382. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  383. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  385. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  386. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  387. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  388. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  389. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  390. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  393. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  394. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  395. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  396. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  397. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  398. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  399. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  400. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  402. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  403. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  404. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  405. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  406. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  407. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  408. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  409. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  410. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  411. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  412. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  413. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  414. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  415. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  416. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  417. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  418. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  419. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  420. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  421. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  422. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  423. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  424. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  425. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  426. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  427. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  428. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  429. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  430. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  431. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  432. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  433. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  434. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/app/index.html +1 -1
  436. package/app/.next-cli-build/server/app/index.rsc +3 -3
  437. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  438. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  439. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  440. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  441. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  442. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  443. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  444. package/app/.next-cli-build/server/app/landing.html +1 -1
  445. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  446. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  447. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  448. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  449. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  450. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  451. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  452. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  453. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  454. package/app/.next-cli-build/server/app/login.html +1 -1
  455. package/app/.next-cli-build/server/app/login.rsc +3 -3
  456. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  457. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  458. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  459. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  460. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  461. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  462. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  463. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  465. package/app/.next-cli-build/server/app-paths-manifest.json +1 -1
  466. package/app/.next-cli-build/server/chunks/2496.js +2 -2
  467. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  468. package/app/.next-cli-build/server/chunks/3593.js +1 -1
  469. package/app/.next-cli-build/server/chunks/4115.js +9 -0
  470. package/app/.next-cli-build/server/chunks/4739.js +1 -1
  471. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  472. package/app/.next-cli-build/server/chunks/4780.js +1 -1
  473. package/app/.next-cli-build/server/chunks/4785.js +9 -0
  474. package/app/.next-cli-build/server/chunks/4803.js +1 -1
  475. package/app/.next-cli-build/server/chunks/4825.js +9 -0
  476. package/app/.next-cli-build/server/chunks/4884.js +1 -1
  477. package/app/.next-cli-build/server/chunks/507.js +1 -1
  478. package/app/.next-cli-build/server/chunks/5258.js +1 -1
  479. package/app/.next-cli-build/server/chunks/6252.js +1 -1
  480. package/app/.next-cli-build/server/chunks/698.js +1 -1
  481. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  482. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  483. package/app/.next-cli-build/server/chunks/7965.js +1 -1
  484. package/app/.next-cli-build/server/chunks/8062.js +1 -1
  485. package/app/.next-cli-build/server/chunks/8469.js +1 -1
  486. package/app/.next-cli-build/server/chunks/8520.js +1 -1
  487. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  488. package/app/.next-cli-build/server/middleware.js +1 -1
  489. package/app/.next-cli-build/server/pages/404.html +1 -1
  490. package/app/.next-cli-build/server/pages/500.html +1 -1
  491. package/app/.next-cli-build/static/chunks/{1321-b8178d81092a836a.js → 1321-a6508e39be26c9f5.js} +1 -1
  492. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  493. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  494. package/app/package.json +1 -1
  495. package/package.json +1 -1
  496. package/app/.next-cli-build/server/chunks/4055.js +0 -9
  497. package/app/.next-cli-build/server/chunks/5217.js +0 -9
  498. package/app/.next-cli-build/server/chunks/5800.js +0 -9
  499. /package/app/.next-cli-build/static/{O-Yyg7mByxc3ihHXx3SrK → vokTDvNAPDDe_A7N1vvP3}/_buildManifest.js +0 -0
  500. /package/app/.next-cli-build/static/{O-Yyg7mByxc3ihHXx3SrK → vokTDvNAPDDe_A7N1vvP3}/_ssgManifest.js +0 -0
  501. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-1.0.123-to-1.0.124-1.0.124-20260609-233348 → upgrade-1.0.127-to-1.0.128-1.0.128-20260610-004736}/data.sqlite +0 -0
  502. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-1.0.124-to-1.0.125-1.0.125-20260610-000002 → upgrade-1.0.128-to-1.0.129-1.0.129-20260610-072001}/data.sqlite +0 -0
package/app/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluerouter-app",
3
- "version": "1.0.128",
3
+ "version": "1.0.130",
4
4
  "description": "Router web dashboard",
5
5
  "private": false,
6
6
  "scripts": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jheavenknows/bluerouter",
3
- "version": "1.0.128",
3
+ "version": "1.0.130",
4
4
  "description": "Bluerouter CLI - Start and manage Bluerouter server",
5
5
  "bin": {
6
6
  "bluerouter": "./cli.js"
@@ -1,9 +0,0 @@
1
- "use strict";exports.id=4055,exports.ids=[4055],exports.modules={4055:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(7841),i=c(76040);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}}].sort((a,b)=>a.version-b.version);var k=c(91117);let l=null;function m(){if(l)return l;try{let a=g().join(process.cwd(),"package.json");l=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{l="0.0.0"}return l}function n(a){(0,h.Jh)();let b=m(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function o(a,b,c=null){if(!e().existsSync(a))return null;let d=c||g().basename(a),f=g().join(b,d);return e().copyFileSync(a,f),f}function p(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(5))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var q=c(33323);let r=g().join(h.HG,".migrated-from-json"),s=new WeakSet;class t extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function u(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new t(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function v(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function w(a){if(s.has(a))return;s.add(a);let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a),c=function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt((0,k.dy)(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return{applied:0,from:b,to:b};let c=j.filter(a=>a.version>b),d=b;for(let b of c)a.transaction(()=>{b.up(a),(0,k.np)(a,"schemaVersion",b.version)}),d=b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);return{applied:c.length,from:b,to:d}}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}let d=e().existsSync(r),f=v(h.Or.main),g=v(h.Or.usage),l=v(h.Or.disabled),w=v(h.Or.details);if(b&&(f||g||l||w)&&!d){let b=Date.now(),c=n("migrate-from-json");for(let a of Object.values(h.Or))o(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,q.s)(f.settings)]),u(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,q.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),u(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),u(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),u(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),u(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,q.s)(b.models||[]),b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,q.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,q.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,q.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,q.s)(c||{})])}if(g&&"object"==typeof g){for(let b of g.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,q.s)(c),(0,q.s)({})])}for(let[b,c]of Object.entries(g.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,q.s)(c)]);"number"==typeof g.totalRequestsLifetime&&(0,k.np)(a,"totalRequestsLifetime",g.totalRequestsLifetime)}if(l&&"object"==typeof l.disabled)for(let[b,c]of Object.entries(l.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,q.s)(c||[])]);if(w&&Array.isArray(w.records))for(let b of w.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,q.s)(b)]);(0,k.np)(a,"appVersion",m()),(0,k.np)(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof t)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(r,new Date().toISOString())}catch{}p(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}if(b)return void(0,k.np)(a,"appVersion",m());let x=(0,k.dy)(a,"appVersion",null),y=m();if(x&&x!==y){let b=n(`upgrade-${x}-to-${y}`);try{o(h.AL,b)}catch{}(0,k.np)(a,"appVersion",y),p(),console.log(`[DB][migrate] App ${x} → ${y} | schema ${c.from} → ${c.to} | backup: ${b}`)}else if(c.applied>0){let a=n(`schema-${c.from}-to-${c.to}`);try{o(h.AL,a)}catch{}p()}}},76040:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
2
- PRAGMA journal_mode = WAL;
3
- PRAGMA synchronous = NORMAL;
4
- PRAGMA temp_store = MEMORY;
5
- PRAGMA mmap_size = 30000000;
6
- PRAGMA cache_size = -64000;
7
- PRAGMA foreign_keys = ON;
8
- PRAGMA busy_timeout = 5000;
9
- `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",allowedModels:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
@@ -1,9 +0,0 @@
1
- "use strict";exports.id=5217,exports.ids=[5217],exports.modules={45217:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(95658),i=c(63775);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}}].sort((a,b)=>a.version-b.version);var k=c(62674);let l=null;function m(){if(l)return l;try{let a=g().join(process.cwd(),"package.json");l=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{l="0.0.0"}return l}function n(a){(0,h.Jh)();let b=m(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function o(a,b,c=null){if(!e().existsSync(a))return null;let d=c||g().basename(a),f=g().join(b,d);return e().copyFileSync(a,f),f}function p(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(5))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var q=c(644);let r=g().join(h.HG,".migrated-from-json"),s=new WeakSet;class t extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function u(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new t(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function v(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function w(a){if(s.has(a))return;s.add(a);let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a),c=function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt((0,k.dy)(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return{applied:0,from:b,to:b};let c=j.filter(a=>a.version>b),d=b;for(let b of c)a.transaction(()=>{b.up(a),(0,k.np)(a,"schemaVersion",b.version)}),d=b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);return{applied:c.length,from:b,to:d}}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}let d=e().existsSync(r),f=v(h.Or.main),g=v(h.Or.usage),l=v(h.Or.disabled),w=v(h.Or.details);if(b&&(f||g||l||w)&&!d){let b=Date.now(),c=n("migrate-from-json");for(let a of Object.values(h.Or))o(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,q.s)(f.settings)]),u(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,q.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),u(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),u(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),u(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),u(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,q.s)(b.models||[]),b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,q.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,q.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,q.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,q.s)(c||{})])}if(g&&"object"==typeof g){for(let b of g.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,q.s)(c),(0,q.s)({})])}for(let[b,c]of Object.entries(g.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,q.s)(c)]);"number"==typeof g.totalRequestsLifetime&&(0,k.np)(a,"totalRequestsLifetime",g.totalRequestsLifetime)}if(l&&"object"==typeof l.disabled)for(let[b,c]of Object.entries(l.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,q.s)(c||[])]);if(w&&Array.isArray(w.records))for(let b of w.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,q.s)(b)]);(0,k.np)(a,"appVersion",m()),(0,k.np)(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof t)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(r,new Date().toISOString())}catch{}p(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}if(b)return void(0,k.np)(a,"appVersion",m());let x=(0,k.dy)(a,"appVersion",null),y=m();if(x&&x!==y){let b=n(`upgrade-${x}-to-${y}`);try{o(h.AL,b)}catch{}(0,k.np)(a,"appVersion",y),p(),console.log(`[DB][migrate] App ${x} → ${y} | schema ${c.from} → ${c.to} | backup: ${b}`)}else if(c.applied>0){let a=n(`schema-${c.from}-to-${c.to}`);try{o(h.AL,a)}catch{}p()}}},63775:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
2
- PRAGMA journal_mode = WAL;
3
- PRAGMA synchronous = NORMAL;
4
- PRAGMA temp_store = MEMORY;
5
- PRAGMA mmap_size = 30000000;
6
- PRAGMA cache_size = -64000;
7
- PRAGMA foreign_keys = ON;
8
- PRAGMA busy_timeout = 5000;
9
- `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",allowedModels:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}}};
@@ -1,9 +0,0 @@
1
- "use strict";exports.id=5800,exports.ids=[5800],exports.modules={34050:(a,b,c)=>{c.d(b,{CG:()=>e,oG:()=>d,zE:()=>f});let d=`
2
- PRAGMA journal_mode = WAL;
3
- PRAGMA synchronous = NORMAL;
4
- PRAGMA temp_store = MEMORY;
5
- PRAGMA mmap_size = 30000000;
6
- PRAGMA cache_size = -64000;
7
- PRAGMA foreign_keys = ON;
8
- PRAGMA busy_timeout = 5000;
9
- `,e={_meta:{columns:{key:"TEXT PRIMARY KEY",value:"TEXT NOT NULL"}},settings:{columns:{id:"INTEGER PRIMARY KEY CHECK (id = 1)",data:"TEXT NOT NULL"}},providerConnections:{columns:{id:"TEXT PRIMARY KEY",provider:"TEXT NOT NULL",authType:"TEXT NOT NULL",name:"TEXT",email:"TEXT",priority:"INTEGER",isActive:"INTEGER DEFAULT 1",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pc_provider ON providerConnections(provider)","CREATE INDEX IF NOT EXISTS idx_pc_provider_active ON providerConnections(provider, isActive)","CREATE INDEX IF NOT EXISTS idx_pc_priority ON providerConnections(provider, priority)"]},providerNodes:{columns:{id:"TEXT PRIMARY KEY",type:"TEXT",name:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pn_type ON providerNodes(type)"]},proxyPools:{columns:{id:"TEXT PRIMARY KEY",isActive:"INTEGER DEFAULT 1",testStatus:"TEXT",data:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_pp_active ON proxyPools(isActive)","CREATE INDEX IF NOT EXISTS idx_pp_status ON proxyPools(testStatus)"]},apiKeys:{columns:{id:"TEXT PRIMARY KEY",key:"TEXT UNIQUE NOT NULL",name:"TEXT",machineId:"TEXT",isActive:"INTEGER DEFAULT 1",allowedModels:"TEXT DEFAULT '[]'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"]},combos:{columns:{id:"TEXT PRIMARY KEY",name:"TEXT UNIQUE NOT NULL",kind:"TEXT",models:"TEXT NOT NULL",createdAt:"TEXT NOT NULL",updatedAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_combo_name ON combos(name)"]},kv:{columns:{scope:"TEXT NOT NULL",key:"TEXT NOT NULL",value:"TEXT NOT NULL"},primaryKey:"PRIMARY KEY (scope, key)",indexes:["CREATE INDEX IF NOT EXISTS idx_kv_scope ON kv(scope)"]},usageHistory:{columns:{id:"INTEGER PRIMARY KEY AUTOINCREMENT",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",apiKey:"TEXT",endpoint:"TEXT",promptTokens:"INTEGER DEFAULT 0",completionTokens:"INTEGER DEFAULT 0",cost:"REAL DEFAULT 0",status:"TEXT",tokens:"TEXT",meta:"TEXT"},indexes:["CREATE INDEX IF NOT EXISTS idx_uh_ts ON usageHistory(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_uh_provider ON usageHistory(provider)","CREATE INDEX IF NOT EXISTS idx_uh_model ON usageHistory(model)","CREATE INDEX IF NOT EXISTS idx_uh_conn ON usageHistory(connectionId)"]},usageDaily:{columns:{dateKey:"TEXT PRIMARY KEY",data:"TEXT NOT NULL"}},requestDetails:{columns:{id:"TEXT PRIMARY KEY",timestamp:"TEXT NOT NULL",provider:"TEXT",model:"TEXT",connectionId:"TEXT",status:"TEXT",data:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_rd_ts ON requestDetails(timestamp DESC)","CREATE INDEX IF NOT EXISTS idx_rd_provider ON requestDetails(provider)","CREATE INDEX IF NOT EXISTS idx_rd_model ON requestDetails(model)","CREATE INDEX IF NOT EXISTS idx_rd_conn ON requestDetails(connectionId)"]}};function f(a,b){let c=Object.entries(b.columns).map(([a,b])=>`${a} ${b}`);return b.primaryKey&&c.push(b.primaryKey),`CREATE TABLE IF NOT EXISTS ${a} (${c.join(", ")})`}},85800:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>w});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(87123),i=c(34050);let j=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(i.CG))for(let d of(a.exec((0,i.zE)(b,c)),c.indexes||[]))a.exec(d)}}].sort((a,b)=>a.version-b.version);var k=c(8677);let l=null;function m(){if(l)return l;try{let a=g().join(process.cwd(),"package.json");l=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{l="0.0.0"}return l}function n(a){(0,h.Jh)();let b=m(),c=`${a}-${b}-${function(a=new Date){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}${b(a.getMonth()+1)}${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}()}`,d=g().join(h.KQ,c);return e().mkdirSync(d,{recursive:!0}),d}function o(a,b,c=null){if(!e().existsSync(a))return null;let d=c||g().basename(a),f=g().join(b,d);return e().copyFileSync(a,f),f}function p(){if(e().existsSync(h.KQ))for(let a of e().readdirSync(h.KQ,{withFileTypes:!0}).filter(a=>a.isDirectory()).map(a=>({name:a.name,full:g().join(h.KQ,a.name),mtime:e().statSync(g().join(h.KQ,a.name)).mtimeMs})).sort((a,b)=>b.mtime-a.mtime).slice(5))try{e().rmSync(a.full,{recursive:!0,force:!0})}catch{}}var q=c(50743);let r=g().join(h.HG,".migrated-from-json"),s=new WeakSet;class t extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function u(a,b,c,d,e){let f=[];for(let a of c)try{d(a)}catch(b){f.push({...e(a),reason:b.message})}let g=a.get(`SELECT COUNT(*) as c FROM ${b}`)?.c??0;if(g!==c.length)throw console.warn(`[DB][migrate] ${b} row-count mismatch: expected ${c.length}, got ${g}. Dropped:`,f),new t(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function v(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function w(a){if(s.has(a))return;s.add(a);let b=function(a){try{let b=a.get("SELECT COUNT(*) as c FROM _meta");return!b||0===b.c}catch{return!0}}(a),c=function(a){a.exec((0,i.zE)("_meta",i.CG._meta));let b=parseInt((0,k.dy)(a,"schemaVersion","0"),10)||0;if(b>=(j.length?j[j.length-1].version:0))return{applied:0,from:b,to:b};let c=j.filter(a=>a.version>b),d=b;for(let b of c)a.transaction(()=>{b.up(a),(0,k.np)(a,"schemaVersion",b.version)}),d=b.version,console.log(`[DB][migrate] applied #${b.version} ${b.name}`);return{applied:c.length,from:b,to:d}}(a);for(let[b,c]of Object.entries(i.CG)){a.exec((0,i.zE)(b,c));let d=new Set(a.all(`PRAGMA table_info(${b})`).map(a=>a.name));for(let[e,f]of Object.entries(c.columns))if(!d.has(e)){let c=f.replace(/PRIMARY KEY( AUTOINCREMENT)?/i,"").replace(/UNIQUE/i,"").trim();try{a.exec(`ALTER TABLE ${b} ADD COLUMN ${e} ${c}`),console.log(`[DB][sync] +column ${b}.${e}`)}catch(a){console.warn(`[DB][sync] add column ${b}.${e} failed: ${a.message}`)}}for(let b of c.indexes||[])try{a.exec(b)}catch{}}let d=e().existsSync(r),f=v(h.Or.main),g=v(h.Or.usage),l=v(h.Or.disabled),w=v(h.Or.details);if(b&&(f||g||l||w)&&!d){let b=Date.now(),c=n("migrate-from-json");for(let a of Object.values(h.Or))o(a,c);try{a.transaction(()=>{if(f&&"object"==typeof f){for(let[b,c]of(f.settings&&a.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,q.s)(f.settings)]),u(a,"providerConnections",f.providerConnections||[],b=>{let{id:c,provider:d,authType:e,name:f,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=b;a.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[c,d,e||"oauth",f||null,g||null,h||null,+(!1!==i),(0,q.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),u(a,"providerNodes",f.providerNodes||[],b=>{let{id:c,type:d,name:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,d||null,e||null,(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),u(a,"proxyPools",f.proxyPools||[],b=>{let{id:c,isActive:d,testStatus:e,createdAt:f,updatedAt:g,...h}=b;a.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[c,+(!1!==d),e||"unknown",(0,q.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),u(a,"apiKeys",f.apiKeys||[],b=>{a.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),b.createdAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),u(a,"combos",f.combos||[],b=>{a.run("INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[b.id,b.name,b.kind||null,(0,q.s)(b.models||[]),b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()])},a=>({id:a.id??null,name:a.name??null})),Object.entries(f.modelAliases||{})))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,q.s)(c)]);for(let b of f.customModels||[]){let c=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[c,(0,q.s)(b)])}for(let[b,c]of Object.entries(f.mitmAlias||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,q.s)(c||{})]);for(let[b,c]of Object.entries(f.pricing||{}))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,q.s)(c||{})])}if(g&&"object"==typeof g){for(let b of g.history||[]){let c=b.tokens||{};a.run("INSERT INTO usageHistory(timestamp, provider, model, connectionId, apiKey, endpoint, promptTokens, completionTokens, cost, status, tokens, meta) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.apiKey||null,b.endpoint||null,c.prompt_tokens||c.input_tokens||0,c.completion_tokens||c.output_tokens||0,b.cost||0,b.status||"ok",(0,q.s)(c),(0,q.s)({})])}for(let[b,c]of Object.entries(g.dailySummary||{}))a.run("INSERT OR REPLACE INTO usageDaily(dateKey, data) VALUES(?, ?)",[b,(0,q.s)(c)]);"number"==typeof g.totalRequestsLifetime&&(0,k.np)(a,"totalRequestsLifetime",g.totalRequestsLifetime)}if(l&&"object"==typeof l.disabled)for(let[b,c]of Object.entries(l.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,q.s)(c||[])]);if(w&&Array.isArray(w.records))for(let b of w.records)a.run("INSERT OR REPLACE INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?)",[b.id,b.timestamp||new Date().toISOString(),b.provider||null,b.model||null,b.connectionId||null,b.status||null,(0,q.s)(b)]);(0,k.np)(a,"appVersion",m()),(0,k.np)(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof t)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(r,new Date().toISOString())}catch{}p(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}if(b)return void(0,k.np)(a,"appVersion",m());let x=(0,k.dy)(a,"appVersion",null),y=m();if(x&&x!==y){let b=n(`upgrade-${x}-to-${y}`);try{o(h.AL,b)}catch{}(0,k.np)(a,"appVersion",y),p(),console.log(`[DB][migrate] App ${x} → ${y} | schema ${c.from} → ${c.to} | backup: ${b}`)}else if(c.applied>0){let a=n(`schema-${c.from}-to-${c.to}`);try{o(h.AL,a)}catch{}p()}}}};