@jheavenknows/bluerouter 5.1.48 → 5.1.51

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 (1102) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +11 -6
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/prerender-manifest.json +24 -0
  5. package/app/.next-cli-build/routes-manifest.json +30 -0
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js +2 -2
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js +3 -3
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js +2 -0
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page.js.nft.json +1 -0
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cluster/page_client-reference-manifest.js +1 -0
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js +2 -2
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovider/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js +2 -2
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalcloudprovidermonitor/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js +2 -2
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/personalquota/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js +2 -2
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js +2 -2
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js +2 -2
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/resource-monitor/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  93. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  94. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  96. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  97. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  99. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  100. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  102. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  103. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  104. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  105. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  106. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  107. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  108. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  109. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  110. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  111. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  113. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  114. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  115. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  116. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  117. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +6 -6
  118. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  119. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  120. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  121. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/auth/login/route.js +2 -2
  126. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  130. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  134. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js +1 -1
  138. package/app/.next-cli-build/server/app/api/branding/[asset]/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/branding/route.js +1 -1
  140. package/app/.next-cli-build/server/app/api/branding/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/branding/upload/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/branding/upload/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  156. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  162. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  166. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  170. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  182. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js +2 -2
  184. package/app/.next-cli-build/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/cluster/config/route.js +1 -0
  186. package/app/.next-cli-build/server/app/api/cluster/config/route.js.nft.json +1 -0
  187. package/app/.next-cli-build/server/app/api/cluster/config/route_client-reference-manifest.js +1 -0
  188. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js +9 -0
  189. package/app/.next-cli-build/server/app/api/cluster/snapshot/route.js.nft.json +1 -0
  190. package/app/.next-cli-build/server/app/api/cluster/snapshot/route_client-reference-manifest.js +1 -0
  191. package/app/.next-cli-build/server/app/api/cluster/sync/route.js +1 -0
  192. package/app/.next-cli-build/server/app/api/cluster/sync/route.js.nft.json +1 -0
  193. package/app/.next-cli-build/server/app/api/cluster/sync/route_client-reference-manifest.js +1 -0
  194. package/app/.next-cli-build/server/app/api/cluster/test/route.js +1 -0
  195. package/app/.next-cli-build/server/app/api/cluster/test/route.js.nft.json +1 -0
  196. package/app/.next-cli-build/server/app/api/cluster/test/route_client-reference-manifest.js +1 -0
  197. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +2 -2
  198. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js +2 -2
  202. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js +1 -1
  212. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js +2 -2
  214. package/app/.next-cli-build/server/app/api/dashboard/token-saver/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/keys/[id]/caveman-test/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/keys/route.js +2 -2
  226. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  232. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +2 -2
  236. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +2 -2
  242. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  244. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  248. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  250. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  252. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  254. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  260. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  270. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js +1 -1
  276. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/api-key-models/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js +1 -1
  278. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/import-models/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js +1 -1
  280. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js +1 -1
  282. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js +1 -1
  284. package/app/.next-cli-build/server/app/api/personal-cloud-providers/[id]/usage/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js +1 -1
  286. package/app/.next-cli-build/server/app/api/personal-cloud-providers/client/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js +1 -1
  288. package/app/.next-cli-build/server/app/api/personal-cloud-providers/monitor/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js +1 -1
  290. package/app/.next-cli-build/server/app/api/personal-cloud-providers/permissions/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js +1 -1
  292. package/app/.next-cli-build/server/app/api/personal-cloud-providers/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/personal-cloud-providers/routing/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/pricing/recalculate/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/provider-health/route.js +1 -1
  300. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  318. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  320. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  321. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  322. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  323. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  324. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  325. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  326. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  327. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  328. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  329. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  330. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  331. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  332. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  334. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  335. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  336. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  337. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  338. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  339. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js +3 -3
  340. package/app/.next-cli-build/server/app/api/resource-monitor/[id]/route.js.nft.json +1 -1
  341. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js +1 -1
  342. package/app/.next-cli-build/server/app/api/resource-monitor/history/route.js.nft.json +1 -1
  343. package/app/.next-cli-build/server/app/api/resource-monitor/route.js +3 -3
  344. package/app/.next-cli-build/server/app/api/resource-monitor/route.js.nft.json +1 -1
  345. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  346. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  347. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  348. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  349. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  350. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  351. package/app/.next-cli-build/server/app/api/settings/route.js +2 -2
  352. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  353. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  354. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  355. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  356. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  357. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  358. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  359. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  360. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  361. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  362. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  363. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  364. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  365. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  366. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  367. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  368. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  369. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  370. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  371. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  372. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  373. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  374. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  375. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  376. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  377. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  378. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  379. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  380. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  381. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  382. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  383. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js +1 -1
  384. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  385. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  386. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  387. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  388. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  389. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  390. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  391. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  392. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  393. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  394. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  395. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  396. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  397. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  398. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  399. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  400. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  401. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  402. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  412. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  413. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  414. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  415. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  416. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  417. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  418. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  419. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  420. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  421. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  422. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  423. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  424. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  425. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  426. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  427. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  428. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  429. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  430. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  431. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  432. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  433. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  434. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  435. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  436. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  437. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  438. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  439. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  440. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  441. package/app/.next-cli-build/server/app/api/version/restart/route.js +1 -1
  442. package/app/.next-cli-build/server/app/api/version/restart/route.js.nft.json +1 -1
  443. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  444. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  445. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  446. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  447. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  448. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  449. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  450. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  451. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  452. package/app/.next-cli-build/server/app/callback.html +1 -1
  453. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  454. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  455. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  456. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +6 -6
  457. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  458. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  459. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  460. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +7 -7
  462. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  463. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  464. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  465. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  466. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +7 -7
  467. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  468. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +6 -6
  469. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +8 -8
  472. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  473. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  474. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  475. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  476. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +8 -8
  477. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  478. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +6 -6
  479. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +8 -8
  482. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  483. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  484. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  485. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +8 -8
  487. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  488. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +6 -6
  489. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +8 -8
  492. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  493. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  495. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  496. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +8 -8
  497. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  498. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +6 -6
  499. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  500. package/app/.next-cli-build/server/app/dashboard/cluster.html +1 -0
  501. package/app/.next-cli-build/server/app/dashboard/cluster.meta +17 -0
  502. package/app/.next-cli-build/server/app/dashboard/cluster.rsc +28 -0
  503. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster/__PAGE__.segment.rsc +9 -0
  504. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard/cluster.segment.rsc +5 -0
  505. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  506. package/app/.next-cli-build/server/app/dashboard/cluster.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  507. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_full.segment.rsc +28 -0
  508. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_head.segment.rsc +6 -0
  509. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_index.segment.rsc +10 -0
  510. package/app/.next-cli-build/server/app/dashboard/cluster.segments/_tree.segment.rsc +4 -0
  511. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  512. package/app/.next-cli-build/server/app/dashboard/combos.rsc +8 -8
  513. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  514. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  515. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  516. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  517. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  518. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  519. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +6 -6
  520. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  521. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  522. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +8 -8
  523. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  524. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  525. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  527. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +8 -8
  528. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  529. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +6 -6
  530. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  531. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  532. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +8 -8
  533. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  534. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  535. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  536. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  538. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +8 -8
  539. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  540. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +6 -6
  541. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  542. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  543. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +8 -8
  544. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  545. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  546. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  547. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  548. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +8 -8
  549. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  550. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +6 -6
  551. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  552. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  553. package/app/.next-cli-build/server/app/dashboard/profile.rsc +8 -8
  554. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  555. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  556. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  557. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  558. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  559. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  560. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +6 -6
  561. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  562. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  563. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +7 -7
  564. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  565. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  566. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  567. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  568. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +7 -7
  569. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  570. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +6 -6
  571. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  572. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  573. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +7 -7
  574. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  575. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  576. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  577. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  578. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +7 -7
  579. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  580. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +6 -6
  581. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  582. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  583. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +8 -8
  584. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  585. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  586. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  587. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  588. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  589. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  590. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  591. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +6 -6
  592. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  593. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  594. package/app/.next-cli-build/server/app/dashboard/providers.rsc +8 -8
  595. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  596. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  597. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  598. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  599. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  600. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  601. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +6 -6
  602. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  603. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  604. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +8 -8
  605. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  606. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  607. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  608. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  609. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  610. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  611. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +6 -6
  612. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  613. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  614. package/app/.next-cli-build/server/app/dashboard/quota.rsc +9 -9
  615. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  616. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  617. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  618. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  619. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  620. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  621. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +6 -6
  622. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  623. package/app/.next-cli-build/server/app/dashboard/resource-monitor.html +1 -1
  624. package/app/.next-cli-build/server/app/dashboard/resource-monitor.rsc +8 -8
  625. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor/__PAGE__.segment.rsc +2 -2
  626. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard/resource-monitor.segment.rsc +1 -1
  627. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  628. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  629. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_full.segment.rsc +8 -8
  630. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_head.segment.rsc +1 -1
  631. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_index.segment.rsc +6 -6
  632. package/app/.next-cli-build/server/app/dashboard/resource-monitor.segments/_tree.segment.rsc +2 -2
  633. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  634. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  635. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  636. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  637. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +6 -6
  638. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  639. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  640. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +6 -6
  641. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  642. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  643. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  644. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  645. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  646. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  647. package/app/.next-cli-build/server/app/dashboard/skills.rsc +8 -8
  648. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  649. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  650. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  651. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  652. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +8 -8
  653. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  654. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +6 -6
  655. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  656. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  657. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  658. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +1 -1
  659. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  660. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  661. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  662. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  663. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  664. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +6 -6
  665. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  666. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  667. package/app/.next-cli-build/server/app/dashboard/translator.rsc +8 -8
  668. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  669. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  670. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  671. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  672. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +8 -8
  673. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  674. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +6 -6
  675. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  676. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  677. package/app/.next-cli-build/server/app/dashboard/usage.rsc +8 -8
  678. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  679. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  680. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  681. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  682. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  683. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  684. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +6 -6
  685. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  686. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  687. package/app/.next-cli-build/server/app/dashboard.rsc +8 -8
  688. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  689. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  690. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  691. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +8 -8
  692. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  693. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +6 -6
  694. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  695. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  696. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  697. package/app/.next-cli-build/server/app/index.html +1 -1
  698. package/app/.next-cli-build/server/app/index.rsc +6 -6
  699. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  700. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  701. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  702. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +6 -6
  703. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  704. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  705. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  706. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  707. package/app/.next-cli-build/server/app/landing.html +1 -1
  708. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  709. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  710. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  711. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +6 -6
  712. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  713. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  714. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  715. package/app/.next-cli-build/server/app/login/page.js +2 -2
  716. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  717. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  718. package/app/.next-cli-build/server/app/login.html +1 -1
  719. package/app/.next-cli-build/server/app/login.rsc +7 -7
  720. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  721. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  722. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +6 -6
  723. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  724. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  725. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  726. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  727. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  728. package/app/.next-cli-build/server/app/page.js +2 -2
  729. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  730. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  731. package/app/.next-cli-build/server/app-paths-manifest.json +11 -6
  732. package/app/.next-cli-build/server/chunks/1231.js +2 -2
  733. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  734. package/app/.next-cli-build/server/chunks/3248.js +9 -0
  735. package/app/.next-cli-build/server/chunks/4017.js +9 -0
  736. package/app/.next-cli-build/server/chunks/402.js +1 -1
  737. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  738. package/app/.next-cli-build/server/chunks/4764.js +9 -0
  739. package/app/.next-cli-build/server/chunks/5276.js +165 -0
  740. package/app/.next-cli-build/server/chunks/607.js +9 -0
  741. package/app/.next-cli-build/server/chunks/6328.js +1 -1
  742. package/app/.next-cli-build/server/chunks/7772.js +2 -2
  743. package/app/.next-cli-build/server/chunks/8762.js +120 -0
  744. package/app/.next-cli-build/server/chunks/8895.js +3 -3
  745. package/app/.next-cli-build/server/chunks/9434.js +1 -1
  746. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  747. package/app/.next-cli-build/server/instrumentation.js +1 -1
  748. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  749. package/app/.next-cli-build/server/middleware.js +3 -3
  750. package/app/.next-cli-build/server/pages/404.html +1 -1
  751. package/app/.next-cli-build/server/pages/500.html +1 -1
  752. package/app/.next-cli-build/static/4teuspmkgOZFn4N5zham5/_buildManifest.js +1 -0
  753. package/app/.next-cli-build/static/chunks/{5263-527be4f392550144.js → 5263-df6aad794295e362.js} +1 -1
  754. package/app/.next-cli-build/static/chunks/{5497-f5e644ab1d0a30e8.js → 5497-0d55b9863c221557.js} +1 -1
  755. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cluster/page-9736d37e3baf3597.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/resource-monitor/{page-20b2c7ebeb50a5bb.js → page-b735e81f9ef2d9a4.js} +1 -1
  757. package/app/.next-cli-build/static/chunks/app/_global-error/page-3315ba328d9ddb41.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-3315ba328d9ddb41.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-3315ba328d9ddb41.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-3315ba328d9ddb41.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-3315ba328d9ddb41.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-3315ba328d9ddb41.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-3315ba328d9ddb41.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-3315ba328d9ddb41.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-3315ba328d9ddb41.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/branding/[asset]/route-3315ba328d9ddb41.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/branding/route-3315ba328d9ddb41.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/branding/upload/route-3315ba328d9ddb41.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-3315ba328d9ddb41.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3315ba328d9ddb41.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-3315ba328d9ddb41.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-3315ba328d9ddb41.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-3315ba328d9ddb41.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-3315ba328d9ddb41.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-3315ba328d9ddb41.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-3315ba328d9ddb41.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-3315ba328d9ddb41.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-3315ba328d9ddb41.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-3315ba328d9ddb41.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-3315ba328d9ddb41.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-3315ba328d9ddb41.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-3315ba328d9ddb41.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-3315ba328d9ddb41.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-3315ba328d9ddb41.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-3315ba328d9ddb41.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-3315ba328d9ddb41.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-3315ba328d9ddb41.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-3315ba328d9ddb41.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/cli-tools/qwen-settings/route-3315ba328d9ddb41.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/cluster/config/route-3315ba328d9ddb41.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/cluster/snapshot/route-3315ba328d9ddb41.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/cluster/sync/route-3315ba328d9ddb41.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/cluster/test/route-3315ba328d9ddb41.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-3315ba328d9ddb41.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/combos/route-3315ba328d9ddb41.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-3315ba328d9ddb41.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-3315ba328d9ddb41.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-3315ba328d9ddb41.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-3315ba328d9ddb41.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-3315ba328d9ddb41.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-3315ba328d9ddb41.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/dashboard/token-saver/route-3315ba328d9ddb41.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/health/route-3315ba328d9ddb41.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/init/route-3315ba328d9ddb41.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/caveman-test/route-3315ba328d9ddb41.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-3315ba328d9ddb41.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-3315ba328d9ddb41.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/keys/route-3315ba328d9ddb41.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/locale/route-3315ba328d9ddb41.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-3315ba328d9ddb41.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-3315ba328d9ddb41.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-3315ba328d9ddb41.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-3315ba328d9ddb41.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-3315ba328d9ddb41.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-3315ba328d9ddb41.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-3315ba328d9ddb41.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-3315ba328d9ddb41.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-3315ba328d9ddb41.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-3315ba328d9ddb41.js +1 -0
  820. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-3315ba328d9ddb41.js +1 -0
  821. package/app/.next-cli-build/static/chunks/app/api/models/route-3315ba328d9ddb41.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/api/models/test/route-3315ba328d9ddb41.js +1 -0
  823. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-3315ba328d9ddb41.js +1 -0
  824. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-3315ba328d9ddb41.js +1 -0
  825. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-3315ba328d9ddb41.js +1 -0
  826. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-3315ba328d9ddb41.js +1 -0
  827. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-3315ba328d9ddb41.js +1 -0
  828. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-3315ba328d9ddb41.js +1 -0
  829. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-3315ba328d9ddb41.js +1 -0
  830. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-3315ba328d9ddb41.js +1 -0
  831. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-3315ba328d9ddb41.js +1 -0
  832. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-3315ba328d9ddb41.js +1 -0
  833. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/api-key-models/route-3315ba328d9ddb41.js +1 -0
  834. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/import-models/route-3315ba328d9ddb41.js +1 -0
  835. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route-3315ba328d9ddb41.js +1 -0
  836. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/route-3315ba328d9ddb41.js +1 -0
  837. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/usage/route-3315ba328d9ddb41.js +1 -0
  838. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/client/route-3315ba328d9ddb41.js +1 -0
  839. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/monitor/route-3315ba328d9ddb41.js +1 -0
  840. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/permissions/route-3315ba328d9ddb41.js +1 -0
  841. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/route-3315ba328d9ddb41.js +1 -0
  842. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/routing/route-3315ba328d9ddb41.js +1 -0
  843. package/app/.next-cli-build/static/chunks/app/api/pricing/recalculate/route-3315ba328d9ddb41.js +1 -0
  844. package/app/.next-cli-build/static/chunks/app/api/pricing/route-3315ba328d9ddb41.js +1 -0
  845. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-3315ba328d9ddb41.js +1 -0
  846. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-3315ba328d9ddb41.js +1 -0
  847. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-3315ba328d9ddb41.js +1 -0
  848. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-3315ba328d9ddb41.js +1 -0
  849. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-3315ba328d9ddb41.js +1 -0
  850. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-3315ba328d9ddb41.js +1 -0
  851. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-3315ba328d9ddb41.js +1 -0
  852. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-3315ba328d9ddb41.js +1 -0
  853. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-3315ba328d9ddb41.js +1 -0
  854. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-3315ba328d9ddb41.js +1 -0
  855. package/app/.next-cli-build/static/chunks/app/api/providers/route-3315ba328d9ddb41.js +1 -0
  856. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-3315ba328d9ddb41.js +1 -0
  857. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-3315ba328d9ddb41.js +1 -0
  858. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-3315ba328d9ddb41.js +1 -0
  859. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-3315ba328d9ddb41.js +1 -0
  860. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-3315ba328d9ddb41.js +1 -0
  861. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-3315ba328d9ddb41.js +1 -0
  862. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-3315ba328d9ddb41.js +1 -0
  863. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-3315ba328d9ddb41.js +1 -0
  864. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-3315ba328d9ddb41.js +1 -0
  865. package/app/.next-cli-build/static/chunks/app/api/resource-monitor/[id]/route-3315ba328d9ddb41.js +1 -0
  866. package/app/.next-cli-build/static/chunks/app/api/resource-monitor/history/route-3315ba328d9ddb41.js +1 -0
  867. package/app/.next-cli-build/static/chunks/app/api/resource-monitor/route-3315ba328d9ddb41.js +1 -0
  868. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-3315ba328d9ddb41.js +1 -0
  869. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-3315ba328d9ddb41.js +1 -0
  870. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-3315ba328d9ddb41.js +1 -0
  871. package/app/.next-cli-build/static/chunks/app/api/settings/route-3315ba328d9ddb41.js +1 -0
  872. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-3315ba328d9ddb41.js +1 -0
  873. package/app/.next-cli-build/static/chunks/app/api/tags/route-3315ba328d9ddb41.js +1 -0
  874. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-3315ba328d9ddb41.js +1 -0
  875. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-3315ba328d9ddb41.js +1 -0
  876. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-3315ba328d9ddb41.js +1 -0
  877. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-3315ba328d9ddb41.js +1 -0
  878. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-3315ba328d9ddb41.js +1 -0
  879. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-3315ba328d9ddb41.js +1 -0
  880. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-3315ba328d9ddb41.js +1 -0
  881. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-3315ba328d9ddb41.js +1 -0
  882. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-3315ba328d9ddb41.js +1 -0
  883. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-3315ba328d9ddb41.js +1 -0
  884. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-3315ba328d9ddb41.js +1 -0
  885. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-3315ba328d9ddb41.js +1 -0
  886. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-3315ba328d9ddb41.js +1 -0
  887. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-3315ba328d9ddb41.js +1 -0
  888. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-3315ba328d9ddb41.js +1 -0
  889. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-3315ba328d9ddb41.js +1 -0
  890. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-3315ba328d9ddb41.js +1 -0
  891. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-3315ba328d9ddb41.js +1 -0
  892. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-3315ba328d9ddb41.js +1 -0
  893. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-3315ba328d9ddb41.js +1 -0
  894. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-3315ba328d9ddb41.js +1 -0
  895. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-3315ba328d9ddb41.js +1 -0
  896. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-3315ba328d9ddb41.js +1 -0
  897. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-3315ba328d9ddb41.js +1 -0
  898. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-3315ba328d9ddb41.js +1 -0
  899. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-3315ba328d9ddb41.js +1 -0
  900. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-3315ba328d9ddb41.js +1 -0
  901. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-3315ba328d9ddb41.js +1 -0
  902. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-3315ba328d9ddb41.js +1 -0
  903. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-3315ba328d9ddb41.js +1 -0
  904. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-3315ba328d9ddb41.js +1 -0
  905. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-3315ba328d9ddb41.js +1 -0
  906. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-3315ba328d9ddb41.js +1 -0
  907. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-3315ba328d9ddb41.js +1 -0
  908. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-3315ba328d9ddb41.js +1 -0
  909. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-3315ba328d9ddb41.js +1 -0
  910. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-3315ba328d9ddb41.js +1 -0
  911. package/app/.next-cli-build/static/chunks/app/api/v1/route-3315ba328d9ddb41.js +1 -0
  912. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-3315ba328d9ddb41.js +1 -0
  913. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-3315ba328d9ddb41.js +1 -0
  914. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-3315ba328d9ddb41.js +1 -0
  915. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-3315ba328d9ddb41.js +1 -0
  916. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-3315ba328d9ddb41.js +1 -0
  917. package/app/.next-cli-build/static/chunks/app/api/version/route-3315ba328d9ddb41.js +1 -0
  918. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-3315ba328d9ddb41.js +1 -0
  919. package/app/.next-cli-build/static/chunks/app/api/version/update/route-3315ba328d9ddb41.js +1 -0
  920. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-3315ba328d9ddb41.js +1 -0
  921. package/app/.next-cli-build/static/chunks/app/page-3315ba328d9ddb41.js +1 -0
  922. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-3315ba328d9ddb41.js +1 -0
  923. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-3315ba328d9ddb41.js +1 -0
  924. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-3315ba328d9ddb41.js +1 -0
  925. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-3315ba328d9ddb41.js +1 -0
  926. package/app/.next-cli-build/static/css/{8754d721220c0f70.css → b2327928005c1ab4.css} +1 -1
  927. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.1.46-to-5.1.47-5.1.47-20260719-180414 → upgrade-5.1.47-to-5.1.48-5.1.48-20260719-184822}/data.sqlite +0 -0
  928. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.1.39-to-5.1.45-5.1.45-20260719-174006 → upgrade-5.1.48-to-5.1.49-5.1.49-20260719-190947}/data.sqlite +0 -0
  929. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-5.1.45-to-5.1.46-5.1.46-20260719-175754 → upgrade-5.1.49-to-5.1.50-5.1.50-20260719-191134}/data.sqlite +0 -0
  930. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite +0 -0
  931. package/app/package.json +1 -1
  932. package/package.json +1 -1
  933. package/app/.next-cli-build/server/chunks/2074.js +0 -9
  934. package/app/.next-cli-build/server/chunks/2338.js +0 -275
  935. package/app/.next-cli-build/server/chunks/9432.js +0 -9
  936. package/app/.next-cli-build/static/YLMowfTjGiEFJZGn3KFwU/_buildManifest.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/_global-error/page-e8849eb4fcf65c3d.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/test/route-e8849eb4fcf65c3d.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/auth/ldap/users/route-e8849eb4fcf65c3d.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-e8849eb4fcf65c3d.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-e8849eb4fcf65c3d.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-e8849eb4fcf65c3d.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-e8849eb4fcf65c3d.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-e8849eb4fcf65c3d.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-e8849eb4fcf65c3d.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/branding/[asset]/route-e8849eb4fcf65c3d.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/branding/route-e8849eb4fcf65c3d.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/branding/upload/route-e8849eb4fcf65c3d.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-e8849eb4fcf65c3d.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e8849eb4fcf65c3d.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/autostart/route-e8849eb4fcf65c3d.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/prompt-log-db/route-e8849eb4fcf65c3d.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/root-ca/route-e8849eb4fcf65c3d.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-e8849eb4fcf65c3d.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-e8849eb4fcf65c3d.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-e8849eb4fcf65c3d.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-e8849eb4fcf65c3d.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-e8849eb4fcf65c3d.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e8849eb4fcf65c3d.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-e8849eb4fcf65c3d.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-e8849eb4fcf65c3d.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-e8849eb4fcf65c3d.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-e8849eb4fcf65c3d.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-e8849eb4fcf65c3d.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-e8849eb4fcf65c3d.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-e8849eb4fcf65c3d.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-e8849eb4fcf65c3d.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-e8849eb4fcf65c3d.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/cli-tools/qwen-settings/route-e8849eb4fcf65c3d.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-e8849eb4fcf65c3d.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/combos/route-e8849eb4fcf65c3d.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/dashboard/analytics/route-e8849eb4fcf65c3d.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/dashboard/combos/route-e8849eb4fcf65c3d.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/dashboard/endpoint/route-e8849eb4fcf65c3d.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/[id]/route-e8849eb4fcf65c3d.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/options/route-e8849eb4fcf65c3d.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/dashboard/prompt-logs/route-e8849eb4fcf65c3d.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/dashboard/token-saver/route-e8849eb4fcf65c3d.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/health/route-e8849eb4fcf65c3d.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/init/route-e8849eb4fcf65c3d.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/caveman-test/route-e8849eb4fcf65c3d.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-e8849eb4fcf65c3d.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-e8849eb4fcf65c3d.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/keys/route-e8849eb4fcf65c3d.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/locale/route-e8849eb4fcf65c3d.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-e8849eb4fcf65c3d.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-e8849eb4fcf65c3d.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e8849eb4fcf65c3d.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e8849eb4fcf65c3d.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-e8849eb4fcf65c3d.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-e8849eb4fcf65c3d.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-e8849eb4fcf65c3d.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-e8849eb4fcf65c3d.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-e8849eb4fcf65c3d.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-e8849eb4fcf65c3d.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-e8849eb4fcf65c3d.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/models/route-e8849eb4fcf65c3d.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/models/test/route-e8849eb4fcf65c3d.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-e8849eb4fcf65c3d.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-e8849eb4fcf65c3d.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-e8849eb4fcf65c3d.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-e8849eb4fcf65c3d.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-e8849eb4fcf65c3d.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-e8849eb4fcf65c3d.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-e8849eb4fcf65c3d.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-e8849eb4fcf65c3d.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-e8849eb4fcf65c3d.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-e8849eb4fcf65c3d.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/api-key-models/route-e8849eb4fcf65c3d.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/import-models/route-e8849eb4fcf65c3d.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/models/[...routeModel]/route-e8849eb4fcf65c3d.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/route-e8849eb4fcf65c3d.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/[id]/usage/route-e8849eb4fcf65c3d.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/client/route-e8849eb4fcf65c3d.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/monitor/route-e8849eb4fcf65c3d.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/permissions/route-e8849eb4fcf65c3d.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/route-e8849eb4fcf65c3d.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/personal-cloud-providers/routing/route-e8849eb4fcf65c3d.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/pricing/recalculate/route-e8849eb4fcf65c3d.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/pricing/route-e8849eb4fcf65c3d.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/provider-health/route-e8849eb4fcf65c3d.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-e8849eb4fcf65c3d.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-e8849eb4fcf65c3d.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-e8849eb4fcf65c3d.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-e8849eb4fcf65c3d.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-e8849eb4fcf65c3d.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-e8849eb4fcf65c3d.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-e8849eb4fcf65c3d.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-e8849eb4fcf65c3d.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-e8849eb4fcf65c3d.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/providers/route-e8849eb4fcf65c3d.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-e8849eb4fcf65c3d.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-e8849eb4fcf65c3d.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-e8849eb4fcf65c3d.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-e8849eb4fcf65c3d.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-e8849eb4fcf65c3d.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-e8849eb4fcf65c3d.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-e8849eb4fcf65c3d.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-e8849eb4fcf65c3d.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-e8849eb4fcf65c3d.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/resource-monitor/[id]/route-e8849eb4fcf65c3d.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/resource-monitor/history/route-e8849eb4fcf65c3d.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/resource-monitor/route-e8849eb4fcf65c3d.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-e8849eb4fcf65c3d.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-e8849eb4fcf65c3d.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-e8849eb4fcf65c3d.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/settings/route-e8849eb4fcf65c3d.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-e8849eb4fcf65c3d.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/tags/route-e8849eb4fcf65c3d.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-e8849eb4fcf65c3d.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-e8849eb4fcf65c3d.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-e8849eb4fcf65c3d.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-e8849eb4fcf65c3d.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-e8849eb4fcf65c3d.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-e8849eb4fcf65c3d.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-e8849eb4fcf65c3d.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-e8849eb4fcf65c3d.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-e8849eb4fcf65c3d.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-e8849eb4fcf65c3d.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-e8849eb4fcf65c3d.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-e8849eb4fcf65c3d.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-e8849eb4fcf65c3d.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-login/route-e8849eb4fcf65c3d.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-start-daemon/route-e8849eb4fcf65c3d.js +0 -1
  1065. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-e8849eb4fcf65c3d.js +0 -1
  1066. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-e8849eb4fcf65c3d.js +0 -1
  1067. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-e8849eb4fcf65c3d.js +0 -1
  1068. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-e8849eb4fcf65c3d.js +0 -1
  1069. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-e8849eb4fcf65c3d.js +0 -1
  1070. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-e8849eb4fcf65c3d.js +0 -1
  1071. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-e8849eb4fcf65c3d.js +0 -1
  1072. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-e8849eb4fcf65c3d.js +0 -1
  1073. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-e8849eb4fcf65c3d.js +0 -1
  1074. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-e8849eb4fcf65c3d.js +0 -1
  1075. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-e8849eb4fcf65c3d.js +0 -1
  1076. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-e8849eb4fcf65c3d.js +0 -1
  1077. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-e8849eb4fcf65c3d.js +0 -1
  1078. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-e8849eb4fcf65c3d.js +0 -1
  1079. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-e8849eb4fcf65c3d.js +0 -1
  1080. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-e8849eb4fcf65c3d.js +0 -1
  1081. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-e8849eb4fcf65c3d.js +0 -1
  1082. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-e8849eb4fcf65c3d.js +0 -1
  1083. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-e8849eb4fcf65c3d.js +0 -1
  1084. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-e8849eb4fcf65c3d.js +0 -1
  1085. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-e8849eb4fcf65c3d.js +0 -1
  1086. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-e8849eb4fcf65c3d.js +0 -1
  1087. package/app/.next-cli-build/static/chunks/app/api/v1/route-e8849eb4fcf65c3d.js +0 -1
  1088. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-e8849eb4fcf65c3d.js +0 -1
  1089. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-e8849eb4fcf65c3d.js +0 -1
  1090. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-e8849eb4fcf65c3d.js +0 -1
  1091. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-e8849eb4fcf65c3d.js +0 -1
  1092. package/app/.next-cli-build/static/chunks/app/api/version/restart/route-e8849eb4fcf65c3d.js +0 -1
  1093. package/app/.next-cli-build/static/chunks/app/api/version/route-e8849eb4fcf65c3d.js +0 -1
  1094. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-e8849eb4fcf65c3d.js +0 -1
  1095. package/app/.next-cli-build/static/chunks/app/api/version/update/route-e8849eb4fcf65c3d.js +0 -1
  1096. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-e8849eb4fcf65c3d.js +0 -1
  1097. package/app/.next-cli-build/static/chunks/app/page-e8849eb4fcf65c3d.js +0 -1
  1098. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-e8849eb4fcf65c3d.js +0 -1
  1099. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-e8849eb4fcf65c3d.js +0 -1
  1100. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-e8849eb4fcf65c3d.js +0 -1
  1101. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-e8849eb4fcf65c3d.js +0 -1
  1102. /package/app/.next-cli-build/static/{YLMowfTjGiEFJZGn3KFwU → 4teuspmkgOZFn4N5zham5}/_ssgManifest.js +0 -0
@@ -0,0 +1,9 @@
1
+ "use strict";exports.id=4764,exports.ids=[4764],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",scope:"TEXT DEFAULT 'system'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",visibility:"TEXT DEFAULT 'system'",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)","CREATE INDEX IF NOT EXISTS idx_pc_scope_owner ON providerConnections(scope, ownerUser)","CREATE INDEX IF NOT EXISTS idx_pc_provider_scope ON providerConnections(provider, scope)"]},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",adminDisabled:"INTEGER DEFAULT 0",allowedModels:"TEXT DEFAULT '[]'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",cavemanMode:"TEXT DEFAULT 'inherit'",cavemanLevel:"TEXT DEFAULT 'lite'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)","CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)","CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)","CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)"]},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)"]},resourceMonitorHistory:{columns:{serverId:"TEXT NOT NULL",sampledAt:"INTEGER NOT NULL",cpuUsage:"REAL DEFAULT 0",memoryUsage:"REAL DEFAULT 0",diskUsage:"REAL DEFAULT 0",diskUsedBytes:"INTEGER DEFAULT 0",networkRxBps:"REAL DEFAULT 0",networkTxBps:"REAL DEFAULT 0",gpus:"TEXT NOT NULL DEFAULT '[]'"},primaryKey:"PRIMARY KEY (serverId, sampledAt)",indexes:["CREATE INDEX IF NOT EXISTS idx_rmh_server_time ON resourceMonitorHistory(serverId, sampledAt)","CREATE INDEX IF NOT EXISTS idx_rmh_sampled_at ON resourceMonitorHistory(sampledAt)"]}};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(", ")})`}},43913:(a,b,c)=>{c.d(b,{o:()=>e,q:()=>f});var d=c(34050);let e=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(d.CG))for(let e of(a.exec((0,d.zE)(b,c)),c.indexes||[]))a.exec(e)}},{version:2,name:"usage-history-analytics-indexes",up(){}},{version:3,name:"request-observability-rollups",up(a){var b="apiKeys";let c=function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}}(a,b);for(let[d,e]of Object.entries({ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",allowedModels:"TEXT DEFAULT '[]'"}))c.has(d)||a.exec(`ALTER TABLE ${b} ADD COLUMN ${d} ${e}`);a.exec("CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)")}},{version:4,name:"api-key-admin-disabled",up(a){(function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}})(a,"apiKeys").has("adminDisabled")||a.exec("ALTER TABLE apiKeys ADD COLUMN adminDisabled INTEGER DEFAULT 0"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)")}},{version:5,name:"api-key-caveman-override",up(a){let b=new Set(a.all("PRAGMA table_info(apiKeys)").map(a=>a.name));b.has("cavemanMode")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanMode TEXT DEFAULT 'inherit'"),b.has("cavemanLevel")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanLevel TEXT DEFAULT 'lite'")}}].sort((a,b)=>a.version-b.version);function f(){return e.length?e[e.length-1].version:0}},84764:(a,b,c)=>{c.d(b,{runMigrationOnce:()=>x});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(20437),i=c(34050),j=c(43913);function k(a,b,c=null){let d=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return d?d.value:c}function l(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c(24081);let m=null;function n(){if(m)return m;try{let a=g().join(process.cwd(),"package.json");m=JSON.parse(e().readFileSync(a,"utf-8")).version||"0.0.0"}catch{m="0.0.0"}return m}function o(a){(0,h.Jh)();let b=n(),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 p(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 q(){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 r=c(50743);let s=g().join(h.HG,".migrated-from-json"),t=new WeakSet;class u extends Error{constructor(a,b){super(a),this.name="MigrationAborted",this.droppedRows=b}}function v(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 u(`${b} row-count mismatch: expected ${c.length}, got ${g}`,f)}function w(a){if(!e().existsSync(a))return null;try{return JSON.parse(e().readFileSync(a,"utf-8"))}catch{return null}}async function x(a){if(t.has(a))return;t.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(k(a,"schemaVersion","0"),10)||0;if(b>=(0,j.q)())return{applied:0,from:b,to:b};let c=j.o.filter(a=>a.version>b),d=b;for(let b of c)a.transaction(()=>{b.up(a),l(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(s),f=w(h.Or.main),g=w(h.Or.usage),m=w(h.Or.disabled),x=w(h.Or.details);if(b&&(f||g||m||x)&&!d){let b=Date.now(),c=o("migrate-from-json");for(let a of Object.values(h.Or))p(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,r.s)(f.settings)]),v(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,r.s)(l),j||new Date().toISOString(),k||new Date().toISOString()])},a=>({id:a.id??null,provider:a.provider??null,name:a.name??null})),v(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,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null,type:a.type??null,name:a.name??null})),v(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,r.s)(h),f||new Date().toISOString(),g||new Date().toISOString()])},a=>({id:a.id??null})),v(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})),v(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,r.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,r.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,r.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,r.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,r.s)(c||{})])}if(m&&"object"==typeof m.disabled)for(let[b,c]of Object.entries(m.disabled))a.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('disabledModels', ?, ?)",[b,(0,r.s)(c||[])]);l(a,"appVersion",n()),l(a,"migratedAt",new Date().toISOString())})}catch(a){if(a instanceof u)return void console.error(`[DB][migrate] aborted: ${a.message} | legacy JSON kept | backup: ${c}`);throw a}try{e().writeFileSync(s,new Date().toISOString())}catch{}q(),console.log(`[DB][migrate] JSON → SQLite in ${Date.now()-b}ms | legacy JSON kept at DATA_DIR | backup: ${c}`);return}if(b)return void l(a,"appVersion",n());let y=k(a,"appVersion",null),z=n();if(y&&y!==z){let b=o(`upgrade-${y}-to-${z}`);try{p(h.AL,b)}catch{}l(a,"appVersion",z),q(),console.log(`[DB][migrate] App ${y} → ${z} | schema ${c.from} → ${c.to} | backup: ${b}`)}else if(c.applied>0){let a=o(`schema-${c.from}-to-${c.to}`);try{p(h.AL,a)}catch{}q()}}}};
@@ -0,0 +1,165 @@
1
+ "use strict";exports.id=5276,exports.ids=[5276],exports.modules={14938:(a,b,c)=>{c.d(b,{HI:()=>t,x8:()=>u});var d=c(55511),e=c.n(d),f=c(79748),g=c.n(f),h=c(21820),i=c.n(h),j=c(33873),k=c.n(j);let l=process.env.DATA_DIR||process.env.BLUEROUTER_DATA_DIR||k().join(i().homedir(),".bluerouter"),m=k().join(l,"resource-monitor-servers.json");async function n(){await g().mkdir(l,{recursive:!0});try{let a=JSON.parse(await g().readFile(m,"utf8"));return{servers:Array.isArray(a?.servers)?a.servers:[]}}catch{return{servers:[]}}}async function o(a){await g().mkdir(l,{recursive:!0});let b=`${m}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify({servers:a.servers||[]},null,2)),await g().rename(b,m)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function p(){return new Date().toISOString()}function q(a,b,c,d=null){return Object.prototype.hasOwnProperty.call(a,c)?a[c]:Object.prototype.hasOwnProperty.call(b,c)?b[c]:d}function r(a={},b={}){let c=String(a.host??b.host??"").trim();return{id:b.id||a.id||e().randomUUID(),name:String(a.name??b.name??c??"Linux server").trim()||c||"Linux server",host:c,sshPort:Math.max(1,Number(a.sshPort??b.sshPort??22)||22),sshUser:String(a.sshUser??b.sshUser??"root").trim()||"root",useSudo:a.useSudo??b.useSudo??!0,agentPort:Math.max(1,Number(a.agentPort??b.agentPort??19998)||19998),agentToken:String(a.agentToken??b.agentToken??e().randomBytes(24).toString("hex")),enabled:a.enabled??b.enabled??!0,notes:String(a.notes??b.notes??"").trim(),lastStatus:q(a,b,"lastStatus"),lastStatusAt:q(a,b,"lastStatusAt"),lastError:q(a,b,"lastError"),lastErrorAt:q(a,b,"lastErrorAt"),lastInstallAt:q(a,b,"lastInstallAt"),lastInstallOk:q(a,b,"lastInstallOk",!1),lastInstallLog:q(a,b,"lastInstallLog",""),createdAt:b.createdAt||p(),updatedAt:p()}}function s(a){if(!a)return null;let{agentToken:b,...c}=a;return c}async function t({includeSecrets:a=!1}={}){let b=(await n()).servers.map(a=>r(a,a));return a?b:b.map(s)}async function u(a){if(!Array.isArray(a))throw Error("Invalid resource monitor servers payload");let b=new Set,c=a.map(a=>{if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid resource monitor server entry");let c=String(a.id||"").trim();if(!c)throw Error("Resource monitor server ID is required");if(b.has(c))throw Error(`Duplicate resource monitor server ID: ${c}`);return b.add(c),r({...a,id:c},{...a,id:c})});return await o({servers:c}),c}},20437:(a,b,c)=>{c.d(b,{AL:()=>j,HG:()=>i,Jh:()=>m,KQ:()=>k,Or:()=>l});var d=c(76760),e=c.n(d),f=c(73024),g=c.n(f),h=c(53859);let i=e().join(h.n,"db"),j=e().join(i,"data.sqlite"),k=e().join(i,"backups"),l={main:e().join(h.n,"db.json"),usage:e().join(h.n,"usage.json"),disabled:e().join(h.n,"disabledModels.json"),details:e().join(h.n,"request-details.json")};function m(){for(let a of[h.n,i,k])g().existsSync(a)||g().mkdirSync(a,{recursive:!0})}},24081:(a,b,c)=>{c.d(b,{c:()=>k});var d=c(20437);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let e=global._dbAdapter;async function f(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(8062).then(c.bind(c,38062));return await a(d.AL)}catch(a){return console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function g(){if(process.versions.bun)return null;try{let{createBetterSqliteAdapter:a}=await c.e(8469).then(c.bind(c,88469));return a(d.AL)}catch(a){return console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function h(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(4803).then(c.bind(c,54803));return await a(d.AL)}catch(a){return console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function i(){try{let{createSqlJsAdapter:a}=await c.e(6252).then(c.bind(c,66252));return await a(d.AL)}catch(a){return console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function j(){(0,d.Jh)();let a=await f();if(a||(a=await g()),a||(a=await h()),a||(a=await i()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");e.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${d.AL}`),e.logged=!0);let{runMigrationOnce:b}=await c.e(4764).then(c.bind(c,84764));return await b(a),a}async function k(){return e.instance?e.instance:(e.initPromise||(e.initPromise=j().then(a=>(e.instance=a,a))),e.initPromise)}},45874:(a,b,c)=>{c.d(b,{exportSettings:()=>i,getSettings:()=>h});var d=c(24081),e=c(50743);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},providerSchedules:{},providerHealthChecks:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireApiKey:!0,requireLogin:!0,tunnelDashboardAccess:!0,authMode:"password",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",ldapMonitorAdminGroupDn:"",enableObservability:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full",sidebarAdvancedToolsVisible:!0,personalOAuthProviderPermissions:{},siteTitle:"",siteShortName:"",siteDescription:"",brandingLogo:null,brandingFavicon:null};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}async function h(){var a=await g();let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b.requireApiKey=!0,b.requireLogin=!0,b}async function i(){return await g()}},50743:(a,b,c)=>{function d(a,b=null){if(null==a)return b;if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}function e(a){return JSON.stringify(a??null)}c.d(b,{q:()=>d,s:()=>e})},53859:(a,b,c)=>{c.d(b,{n:()=>l});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="bluerouter";function k(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}let l=function(){let a=process.env.DATA_DIR;if(!a)return k();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),k();throw b}}()},58609:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(24081),e=c(50743);function f(a){return{async get(b,c=null){let f=(await (0,d.c)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.c)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.c)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},87517:(a,b,c)=>{c.d(b,{getApiKeyByKey:()=>p});var d=c(24081),e=c(50743);let f=Object.freeze({enabled:!0,requestsPerMinute:20,promptCharsMax:12e4,maxOutputTokens:0,forceThinkingOff:!0,allowedIpCidrs:[],expiresAt:""}),g=new Set(Object.keys(f));function h(a,b=0){let c=Number(a);return Number.isFinite(c)?Math.max(0,Math.floor(c)):b}function i(a,b=!0){if(null==a||""===a)return b;if("boolean"==typeof a)return a;if("number"==typeof a)return 0!==a;let c=String(a).trim().toLowerCase();return!["false","0","no","off"].includes(c)&&(!!["true","1","yes","on"].includes(c)||b)}function j(a){return a&&"object"==typeof a&&!Array.isArray(a)}let k=Object.freeze(["inherit","on","off"]),l=Object.freeze(["lite","full","ultra"]),m=!1;function n(a){return String(a||"").trim().toLowerCase()}async function o(a){if(!m)try{let b=a.all("PRAGMA table_info(apiKeys)"),c=new Set(b.map(a=>a.name));c.has("allowedModels")||a.run("ALTER TABLE apiKeys ADD COLUMN allowedModels TEXT DEFAULT '[]'"),c.has("limits")||a.run("ALTER TABLE apiKeys ADD COLUMN limits TEXT DEFAULT '{}'"),c.has("ownerUser")||a.run("ALTER TABLE apiKeys ADD COLUMN ownerUser TEXT DEFAULT ''"),c.has("createdByUser")||a.run("ALTER TABLE apiKeys ADD COLUMN createdByUser TEXT DEFAULT ''"),c.has("adminDisabled")||a.run("ALTER TABLE apiKeys ADD COLUMN adminDisabled INTEGER DEFAULT 0"),c.has("cavemanMode")||a.run("ALTER TABLE apiKeys ADD COLUMN cavemanMode TEXT DEFAULT 'inherit'"),c.has("cavemanLevel")||a.run("ALTER TABLE apiKeys ADD COLUMN cavemanLevel TEXT DEFAULT 'lite'");try{a.run("CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)"),a.run("CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)"),a.run("CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)"),a.run("CREATE INDEX IF NOT EXISTS idx_ak_active ON apiKeys(isActive)"),a.run("CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)"),a.run("CREATE INDEX IF NOT EXISTS idx_ak_created_at ON apiKeys(createdAt)")}catch{}m=!0}catch(a){console.log("Could not ensure apiKeys columns:",a?.message||a)}}async function p(a){let b;if(!a)return null;let c=await (0,d.c)();await o(c);var m,p=c.get("SELECT * FROM apiKeys WHERE key = ?",[a]);return p?{id:p.id,key:p.key,name:p.name,machineId:p.machineId,isActive:1===p.isActive||!0===p.isActive,adminDisabled:1===p.adminDisabled||!0===p.adminDisabled,allowedModels:Array.isArray(m=(0,e.q)(p.allowedModels,[]))?[...new Set(m.map(a=>String(a||"").trim()).filter(Boolean))]:[],limits:function(a={}){var b;if(!(j(a)&&Object.keys(a).some(a=>g.has(a))))return{};let c=j(a)?a:{};return{enabled:i(c.enabled,f.enabled),requestsPerMinute:h(c.requestsPerMinute,0),promptCharsMax:h(c.promptCharsMax,0),maxOutputTokens:h(c.maxOutputTokens??c.outputTokensMax??c.maxTokens??c.max_tokens??c.max_completion_tokens,0),forceThinkingOff:i(c.forceThinkingOff,f.forceThinkingOff),allowedIpCidrs:Array.isArray(b=c.allowedIpCidrs)?[...new Set(b.map(a=>String(a||"").trim()).filter(Boolean))]:[],expiresAt:String(c.expiresAt||"").trim()}}((0,e.q)(p.limits,{})),ownerUser:n(p.ownerUser),createdByUser:n(p.createdByUser),cavemanMode:(b=String(p.cavemanMode||"inherit").trim().toLowerCase(),k.includes(b)?b:"inherit"),cavemanLevel:function(a,b="lite"){let c=String(a||b).trim().toLowerCase();return l.includes(c)?c:b}(p.cavemanLevel,"lite"),createdAt:p.createdAt}:null}},90181:(a,b,c)=>{c.d(b,{getPricingForModel:()=>g}),c(24081);let d=(0,c(58609).U)("pricing");async function e(){return await d.getAll()}function f(a,b){if(!a||!b)return null;if(a[b])return a[b];let c=String(b).toLowerCase();for(let b of Object.keys(a))if(b.toLowerCase()===c)return a[b];return null}async function g(a,b){if(!b)return null;let d=await e();if(a){let c=f(d,a);if(c){let a=f(c,b);if(a)return a}}let{getPricingForModel:g}=await c.e(7464).then(c.bind(c,87464));return g(a,b)}},92216:(a,b,c)=>{c.d(b,{Mc:()=>j,getProviderConnections:()=>i,rj:()=>k});var d=c(24081),e=c(50743);function f(a){return String(a||"").trim().toLowerCase()}function g(a){return"personal"===a?"personal":"system"}function h(a){if(!a)return null;let b=(0,e.q)(a.data,{}),c=f(a.ownerUser||b.ownerUser),d=f(a.createdByUser||b.createdByUser),h=a.visibility||b.visibility||(c?"private":"system"),i="personal"===g(a.scope||b.scope)||c||"private"===h?"personal":"system";return{...b,id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,scope:i,ownerUser:c,createdByUser:d,visibility:h||("personal"===i?"private":"system"),createdAt:a.createdAt,updatedAt:a.updatedAt}}async function i(a={}){let b=await (0,d.c)(),c=[],e=[];a.provider&&(c.push("provider = ?"),e.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),e.push(+!!a.isActive)),void 0!==a.scope&&"personal"===g(a.scope)?(c.push("(scope = ? OR visibility = ? OR length(trim(coalesce(ownerUser, ''))) > 0)"),e.push("personal","private")):(void 0!==a.scope||!0!==a.includePersonal)&&(c.push("scope = ?"),e.push("system"),c.push("coalesce(visibility, 'system') <> ?"),e.push("private"),c.push("length(trim(coalesce(ownerUser, ''))) = 0")),void 0!==a.ownerUser&&(c.push("lower(coalesce(ownerUser, '')) = ?"),e.push(f(a.ownerUser)));let j=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,k=b.all(j,e).map(h);return k.sort((a,b)=>(a.priority||999)-(b.priority||999)),k}async function j(a){return h((await (0,d.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}async function k(a,b){let c,i=await (0,d.c)();return i.transaction(()=>{let d,j=i.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!j){c=null;return}let k=h(j),l={...k,...b,updatedAt:new Date().toISOString()};d=function(a){let{id:b,provider:c,authType:d,name:h,email:i,priority:j,isActive:k,scope:l,ownerUser:m,createdByUser:n,visibility:o,createdAt:p,updatedAt:q,...r}=a,s=f(m),t=o||(s?"private":void 0),u="personal"===g(l)||s||"private"===t?"personal":"system";return{id:b,provider:c,authType:d,name:h??null,email:i??null,priority:j??null,isActive:+(!1!==k),scope:u,ownerUser:s,createdByUser:f(n),visibility:t||("personal"===u?"private":"system"),data:(0,e.s)(r),createdAt:p,updatedAt:q}}(l),i.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, scope, ownerUser, createdByUser, visibility, data, createdAt, updatedAt)
2
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
3
+ ON CONFLICT(id) DO UPDATE SET
4
+ provider=excluded.provider, authType=excluded.authType, name=excluded.name,
5
+ email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
6
+ scope=excluded.scope, ownerUser=excluded.ownerUser, createdByUser=excluded.createdByUser,
7
+ visibility=excluded.visibility, data=excluded.data, updatedAt=excluded.updatedAt`,[d.id,d.provider,d.authType,d.name,d.email,d.priority,d.isActive,d.scope,d.ownerUser,d.createdByUser,d.visibility,d.data,d.createdAt,d.updatedAt]),void 0!==b.priority&&function(a,b,c="system",d=""){let e=g(c),i=f(d),j=[b,e],k="SELECT * FROM providerConnections WHERE provider = ? AND scope = ?";"personal"===e?(k+=" AND lower(coalesce(ownerUser, '')) = ?",j.push(i)):k+=" AND coalesce(visibility, 'system') <> 'private' AND length(trim(coalesce(ownerUser, ''))) = 0";let l=a.all(k,j).map(h);l.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),l.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}(i,k.provider,l.scope,l.ownerUser),c=l}),c}},95276:(a,b,c)=>{c.d(b,{Mc:()=>h.Mc,P:()=>h.getProviderConnections,hr:()=>i,mt:()=>g.getSettings,K1:()=>W,rj:()=>h.rj});var d=c(24081),e=c(50743),f=c(14938),g=c(45874),h=c(92216);async function i(a){var b;return(b=(await (0,d.c)()).get("SELECT * FROM proxyPools WHERE id = ?",[a]))?{...(0,e.q)(b.data,{}),id:b.id,isActive:1===b.isActive||!0===b.isActive,testStatus:b.testStatus,createdAt:b.createdAt,updatedAt:b.updatedAt}:null}c(87517);var j=c(58609);(0,j.U)("modelAliases"),(0,j.U)("customModels"),(0,j.U)("mitmAlias"),c(90181);var k=c(94735);c(55511),c(51455),c(76760),c(53859);let l=new Set(["mysql","postgres"]),m={enabled:!1,fileLoggingEnabled:!1,type:"mysql",host:"",port:"",database:"",username:"",password:"",ssl:!1,createDatabase:!1,logClientRequest:!0,logSourceRequest:!0,logTargetRequest:!0,logProviderResponse:!1,logErrors:!0,retentionDays:30};function n(a={},b={}){let c=String(a?.type||b?.type||m.type).trim().toLowerCase(),d=!!c&&!l.has(c),e=d?m.type:c,f={...m,...b||{},...a||{},type:e};f.enabled=!!f.enabled,f.fileLoggingEnabled=!0===f.fileLoggingEnabled,f.ssl=!!f.ssl,f.createDatabase=!!f.createDatabase,f.logClientRequest=!1!==f.logClientRequest,f.logSourceRequest=!1!==f.logSourceRequest,f.logTargetRequest=!1!==f.logTargetRequest,f.logProviderResponse=!0===f.logProviderResponse,f.logErrors=!1!==f.logErrors;let g=Number(f.retentionDays);return f.retentionDays=Number.isFinite(g)&&g>0?Math.floor(g):30,"********"===f.password&&(f.password=b?.password||""),f.host=String(f.host||"").trim(),f.port=String(f.port||("postgres"===f.type?"5432":"3306")).trim(),f.database=String(f.database||"").trim(),f.username=String(f.username||"").trim(),f.password=String(f.password||""),!d||f.host||f.database||f.username||(f.enabled=!1),delete f.sqlitePath,f}async function o(){let a=await (0,g.getSettings)();return n(a?.promptLogDb||{})}let p=Number(process.env.OBSERVABILITY_MYSQL_MAX_JSON_BYTES||262144),q={expiresAt:0,value:null},r=!1,s=new Set;function t(a,b){s.has(a)||(s.add(a),console.warn(b))}function u(a){if(!a)return"";let b=[];return a.code&&b.push(`code=${a.code}`),a.errno&&b.push(`errno=${a.errno}`),a.sqlState&&b.push(`sqlState=${a.sqlState}`),a.sqlMessage?b.push(a.sqlMessage):a.message&&b.push(a.message),b.filter(Boolean).join(" | ")||String(a)}async function v(a,b){let[c]=await a.query("SELECT COLUMN_NAME AS name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ?",[b]);return new Set((c||[]).map(a=>String(a.name||a.COLUMN_NAME||"")))}async function w(a,b){let[c]=await a.query("SELECT INDEX_NAME AS name FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ?",[b]);return new Set((c||[]).map(a=>String(a.name||a.INDEX_NAME||"")))}async function x(a,b,c){let d=await v(a,b);for(let[e,f]of c)d.has(e)||(await a.query(`ALTER TABLE ${b} ADD COLUMN ${f}`),d.add(e))}async function y(a,b,c){let d=await w(a,b);for(let[e,f]of c)d.has(e)||(await a.query(`ALTER TABLE ${b} ADD ${f}`),d.add(e))}async function z(a){await x(a,"usage_events",[["dedupe_key","dedupe_key VARCHAR(96) NULL"],["created_at","created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)"],["timestamp","timestamp DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)"],["provider","provider VARCHAR(120) NULL"],["model","model VARCHAR(255) NULL"],["connection_id","connection_id VARCHAR(120) NULL"],["api_key_fingerprint","api_key_fingerprint VARCHAR(120) NULL"],["api_key_id","api_key_id VARCHAR(120) NULL"],["api_key_name","api_key_name VARCHAR(255) NULL"],["api_key_owner","api_key_owner VARCHAR(255) NULL"],["endpoint","endpoint TEXT NULL"],["request_id","request_id VARCHAR(120) NULL"],["session_id","session_id VARCHAR(255) NULL"],["client_ip","client_ip VARCHAR(64) NULL"],["client_ip_normalized","client_ip_normalized VARCHAR(64) NULL"],["client_host","client_host TEXT NULL"],["client_user_agent","client_user_agent TEXT NULL"],["source_tool","source_tool VARCHAR(80) NULL"],["source_tool_label","source_tool_label VARCHAR(120) NULL"],["source_host","source_host VARCHAR(255) NULL"],["latency_ms","latency_ms INT DEFAULT 0"],["ttft_ms","ttft_ms INT DEFAULT 0"],["status_code","status_code INT NULL"],["error_code","error_code VARCHAR(160) NULL"],["error_type","error_type VARCHAR(120) NULL"],["error_message_short","error_message_short TEXT NULL"],["is_streaming","is_streaming TINYINT DEFAULT 0"],["is_combo","is_combo TINYINT DEFAULT 0"],["combo_name","combo_name VARCHAR(255) NULL"],["prompt_tokens","prompt_tokens BIGINT DEFAULT 0"],["completion_tokens","completion_tokens BIGINT DEFAULT 0"],["total_tokens","total_tokens BIGINT DEFAULT 0"],["cached_tokens","cached_tokens BIGINT DEFAULT 0"],["reasoning_tokens","reasoning_tokens BIGINT DEFAULT 0"],["thinking_enabled","thinking_enabled TINYINT NULL"],["thinking_auto_off","thinking_auto_off TINYINT DEFAULT 0"],["thinking_auto_off_reason","thinking_auto_off_reason VARCHAR(120) NULL"],["prompt_chars","prompt_chars BIGINT DEFAULT 0"],["force_thinking_off_above_chars","force_thinking_off_above_chars BIGINT DEFAULT 0"],["cost","cost DECIMAL(18,8) DEFAULT 0"],["status","status VARCHAR(80) NULL"],["tokens_json","tokens_json JSON NULL"],["meta_json","meta_json JSON NULL"]]),await a.query("UPDATE usage_events SET dedupe_key = CONCAT('legacy:', id) WHERE dedupe_key IS NULL OR dedupe_key = ''").catch(()=>{}),await a.query("ALTER TABLE usage_events MODIFY COLUMN dedupe_key VARCHAR(96) NOT NULL").catch(()=>{}),await y(a,"usage_events",[["uq_usage_events_dedupe","UNIQUE KEY uq_usage_events_dedupe (dedupe_key)"],["idx_usage_events_ts","INDEX idx_usage_events_ts (timestamp)"],["idx_usage_events_provider_model","INDEX idx_usage_events_provider_model (provider, model, timestamp)"],["idx_usage_events_status","INDEX idx_usage_events_status (status, status_code, timestamp)"],["idx_usage_events_api_key","INDEX idx_usage_events_api_key (api_key_id, api_key_fingerprint, timestamp)"],["idx_usage_events_client_ip","INDEX idx_usage_events_client_ip (client_ip_normalized, timestamp)"],["idx_usage_events_source_tool","INDEX idx_usage_events_source_tool (source_tool, timestamp)"],["idx_usage_events_session","INDEX idx_usage_events_session (session_id, timestamp)"],["idx_usage_events_thinking_auto_off","INDEX idx_usage_events_thinking_auto_off (thinking_auto_off, timestamp)"],["idx_usage_events_prompt_chars","INDEX idx_usage_events_prompt_chars (prompt_chars, timestamp)"]]),await x(a,"request_details",[["created_at","created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)"],["timestamp","timestamp DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)"],["provider","provider VARCHAR(120) NULL"],["model","model VARCHAR(255) NULL"],["connection_id","connection_id VARCHAR(120) NULL"],["status","status VARCHAR(80) NULL"],["data_json","data_json JSON NULL"],["data_size_bytes","data_size_bytes BIGINT DEFAULT 0"]]),await y(a,"request_details",[["idx_request_details_ts","INDEX idx_request_details_ts (timestamp)"],["idx_request_details_provider","INDEX idx_request_details_provider (provider, timestamp)"],["idx_request_details_model","INDEX idx_request_details_model (model, timestamp)"],["idx_request_details_connection","INDEX idx_request_details_connection (connection_id, timestamp)"],["idx_request_details_status","INDEX idx_request_details_status (status, timestamp)"]])}function A(a){return String(a??"").trim()}function B(a){if(null==a)return null;if("string"==typeof a)try{return JSON.parse(a),a}catch{return JSON.stringify(a)}return(0,e.s)(a)}function C(a){if(null==a)return{};let b=B(a)||"{}";return Buffer.byteLength(b,"utf8")<=p?a:{_truncated:!0,_originalSizeBytes:Buffer.byteLength(b,"utf8"),_preview:b.slice(0,1e3)}}async function D(){let a=Date.now();if(q.value&&q.expiresAt>a)return q.value;try{let b=n(await o());q={value:!0===b.enabled&&"mysql"===b.type&&"false"!==process.env.OBSERVABILITY_MYSQL_ENABLED?b:null,expiresAt:a+5e3}}catch(b){t("config",`[observability-mysql] Unable to read MySQL log config: ${b?.message||b}`),q={value:null,expiresAt:a+5e3}}return q.value}async function E(a){let b=await c.e(4790).then(c.t.bind(c,94790,19)),d=await b.createConnection({host:a.host,port:Number(a.port||3306),database:a.database,user:a.username,password:a.password,ssl:a.ssl?{}:void 0,multipleStatements:!0,dateStrings:!0,connectTimeout:3e3,timezone:"Z"});return await d.query("SET time_zone = '+00:00'"),d}async function F(a){r||(await a.query(`
8
+ CREATE TABLE IF NOT EXISTS usage_events (
9
+ id BIGINT AUTO_INCREMENT PRIMARY KEY,
10
+ dedupe_key VARCHAR(96) NOT NULL,
11
+ created_at DATETIME(3) NOT NULL,
12
+ timestamp DATETIME(3) NOT NULL,
13
+ provider VARCHAR(120),
14
+ model VARCHAR(255),
15
+ connection_id VARCHAR(120),
16
+ api_key_fingerprint VARCHAR(120),
17
+ api_key_id VARCHAR(120),
18
+ api_key_name VARCHAR(255),
19
+ api_key_owner VARCHAR(255),
20
+ endpoint TEXT,
21
+ request_id VARCHAR(120),
22
+ session_id VARCHAR(255),
23
+ client_ip VARCHAR(64),
24
+ client_ip_normalized VARCHAR(64),
25
+ client_host TEXT,
26
+ client_user_agent TEXT,
27
+ source_tool VARCHAR(80),
28
+ source_tool_label VARCHAR(120),
29
+ source_host VARCHAR(255),
30
+ latency_ms INT DEFAULT 0,
31
+ ttft_ms INT DEFAULT 0,
32
+ status_code INT,
33
+ error_code VARCHAR(160),
34
+ error_type VARCHAR(120),
35
+ error_message_short TEXT,
36
+ is_streaming TINYINT DEFAULT 0,
37
+ is_combo TINYINT DEFAULT 0,
38
+ combo_name VARCHAR(255),
39
+ prompt_tokens BIGINT DEFAULT 0,
40
+ completion_tokens BIGINT DEFAULT 0,
41
+ total_tokens BIGINT DEFAULT 0,
42
+ cached_tokens BIGINT DEFAULT 0,
43
+ reasoning_tokens BIGINT DEFAULT 0,
44
+ thinking_enabled TINYINT NULL,
45
+ thinking_auto_off TINYINT DEFAULT 0,
46
+ thinking_auto_off_reason VARCHAR(120),
47
+ prompt_chars BIGINT DEFAULT 0,
48
+ force_thinking_off_above_chars BIGINT DEFAULT 0,
49
+ cost DECIMAL(18,8) DEFAULT 0,
50
+ status VARCHAR(80),
51
+ tokens_json JSON,
52
+ meta_json JSON,
53
+ UNIQUE KEY uq_usage_events_dedupe (dedupe_key),
54
+ INDEX idx_usage_events_ts (timestamp),
55
+ INDEX idx_usage_events_provider_model (provider, model, timestamp),
56
+ INDEX idx_usage_events_status (status, status_code, timestamp),
57
+ INDEX idx_usage_events_api_key (api_key_id, api_key_fingerprint, timestamp),
58
+ INDEX idx_usage_events_client_ip (client_ip_normalized, timestamp),
59
+ INDEX idx_usage_events_source_tool (source_tool, timestamp),
60
+ INDEX idx_usage_events_session (session_id, timestamp)
61
+ ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
62
+
63
+ CREATE TABLE IF NOT EXISTS request_details (
64
+ id VARCHAR(180) PRIMARY KEY,
65
+ created_at DATETIME(3) NOT NULL,
66
+ timestamp DATETIME(3) NOT NULL,
67
+ provider VARCHAR(120),
68
+ model VARCHAR(255),
69
+ connection_id VARCHAR(120),
70
+ status VARCHAR(80),
71
+ data_json JSON NOT NULL,
72
+ data_size_bytes BIGINT DEFAULT 0,
73
+ INDEX idx_request_details_ts (timestamp),
74
+ INDEX idx_request_details_provider (provider, timestamp),
75
+ INDEX idx_request_details_model (model, timestamp),
76
+ INDEX idx_request_details_connection (connection_id, timestamp),
77
+ INDEX idx_request_details_status (status, timestamp)
78
+ ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
79
+ `),await z(a),await a.query(`
80
+ CREATE OR REPLACE VIEW usageHistory AS
81
+ SELECT
82
+ id,
83
+ timestamp,
84
+ provider,
85
+ model,
86
+ connection_id AS connectionId,
87
+ api_key_fingerprint AS apiKey,
88
+ api_key_id AS apiKeyId,
89
+ api_key_fingerprint AS apiKeyFingerprint,
90
+ api_key_name AS apiKeyName,
91
+ api_key_owner AS apiKeyOwner,
92
+ endpoint,
93
+ request_id AS requestId,
94
+ session_id AS sessionId,
95
+ client_ip AS clientIp,
96
+ client_ip_normalized AS clientIpNormalized,
97
+ client_host AS clientHost,
98
+ client_user_agent AS clientUserAgent,
99
+ source_tool AS sourceTool,
100
+ source_tool_label AS sourceToolLabel,
101
+ source_host AS sourceHost,
102
+ latency_ms AS latencyMs,
103
+ ttft_ms AS ttftMs,
104
+ status_code AS statusCode,
105
+ error_code AS errorCode,
106
+ error_type AS errorType,
107
+ error_message_short AS errorMessageShort,
108
+ is_streaming AS isStreaming,
109
+ is_combo AS isCombo,
110
+ combo_name AS comboName,
111
+ prompt_tokens AS promptTokens,
112
+ completion_tokens AS completionTokens,
113
+ total_tokens AS totalTokens,
114
+ cached_tokens AS cachedTokens,
115
+ reasoning_tokens AS reasoningTokens,
116
+ thinking_enabled AS thinkingEnabled,
117
+ thinking_auto_off AS thinkingAutoOff,
118
+ thinking_auto_off_reason AS thinkingAutoOffReason,
119
+ prompt_chars AS promptChars,
120
+ force_thinking_off_above_chars AS forceThinkingOffAboveChars,
121
+ cost,
122
+ status,
123
+ JSON_SET(
124
+ COALESCE(tokens_json, JSON_OBJECT()),
125
+ '$.prompt_tokens', COALESCE(prompt_tokens, 0),
126
+ '$.input_tokens', COALESCE(prompt_tokens, 0),
127
+ '$.completion_tokens', COALESCE(completion_tokens, 0),
128
+ '$.output_tokens', COALESCE(completion_tokens, 0),
129
+ '$.total_tokens', COALESCE(NULLIF(total_tokens, 0), COALESCE(prompt_tokens, 0) + COALESCE(completion_tokens, 0)),
130
+ '$.cached_tokens', COALESCE(cached_tokens, 0),
131
+ '$.reasoning_tokens', COALESCE(reasoning_tokens, 0)
132
+ ) AS tokens,
133
+ meta_json AS meta
134
+ FROM usage_events;
135
+
136
+ CREATE OR REPLACE VIEW requestDetails AS
137
+ SELECT
138
+ id,
139
+ timestamp,
140
+ provider,
141
+ model,
142
+ connection_id AS connectionId,
143
+ status,
144
+ data_json AS data
145
+ FROM request_details;
146
+ `).catch(a=>{t("compat-views",`[observability-mysql] Unable to create compatibility views usageHistory/requestDetails: ${a?.message||a}`)}),r=!0)}async function G(a=[]){let b,c=await D();if(!c||!Array.isArray(a)||0===a.length)return!1;try{for(let d of(b=await E(c),await F(b),a)){let a={...d,request:C(d.request),providerRequest:C(d.providerRequest),providerResponse:C(d.providerResponse),response:C(d.response)},c=B(a)||"{}";await b.query(`INSERT INTO request_details (
147
+ id, created_at, timestamp, provider, model, connection_id, status, data_json, data_size_bytes
148
+ ) VALUES (?, UTC_TIMESTAMP(3), ?, ?, ?, ?, ?, ?, ?)
149
+ ON DUPLICATE KEY UPDATE
150
+ timestamp = VALUES(timestamp),
151
+ provider = VALUES(provider),
152
+ model = VALUES(model),
153
+ connection_id = VALUES(connection_id),
154
+ status = VALUES(status),
155
+ data_json = VALUES(data_json),
156
+ data_size_bytes = VALUES(data_size_bytes)`,[A(a.id),function(a){let b=a?new Date(a):new Date;return(Number.isNaN(b.getTime())?new Date().toISOString():b.toISOString()).replace("T"," ").replace("Z","")}(a.timestamp),A(a.provider)||null,A(a.model)||null,A(a.connectionId)||null,A(a.status)||null,c,Buffer.byteLength(c,"utf8")])}return!0}catch(a){return t("request-details-write",`[observability-mysql] Failed to write request_details: ${u(a)}`),!1}finally{b&&await b.end().catch(()=>{})}}let H=0;async function I(a=1e3){let b;if(Date.now()-H<6e4)return;H=Date.now();let c=await D();if(c)try{b=await E(c);let[[d]]=await b.query("SELECT COUNT(*) AS c FROM request_details"),e=Number(d?.c||0)-a;if(e<=0)return;await b.query("DELETE FROM request_details ORDER BY created_at ASC LIMIT ?",[e])}catch(a){t("request-details-purge",`[observability-mysql] Failed to purge request_details: ${u(a)}`)}finally{b&&await b.end().catch(()=>{})}}global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new k.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._usageStatsCache||(global._usageStatsCache=new Map),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._pendingRequests,global._usageStatsCache,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitter;let J=null,K=0;async function L(){if(J&&Date.now()-K<5e3)return J;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,45874)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;J={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{J={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return K=Date.now(),J}let M=[],N=null,O=!1,P=!1,Q=!1;function R(a,b){if("write"===a){if(P)return;P=!0}else{if(Q)return;Q=!0}console.error(`[requestDetailsRepo] MySQL observability ${a} unavailable; SQLite fallback is disabled.`,b?.message||b||"")}function S(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function T(){if(!O&&0!==M.length){O=!0;try{for(;M.length>0;){let a=M.splice(0,M.length),b=await L(),c=[];for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,requestId:d.requestId||d.id||null,endpoint:d.endpoint||d.request?.endpoint||null,rtkStats:d.rtkStats||null,latency:d.latency||{},tokens:d.tokens||{},request:S(d.request,b.maxJsonSize),providerRequest:S(d.providerRequest,b.maxJsonSize),providerResponse:S(d.providerResponse,b.maxJsonSize),response:S(d.response,b.maxJsonSize)};c.push(a)}if(!(c.length>0)||await G(c).catch(a=>(R("write",a),!1))){let a=await L();I(a.maxRecords).catch(()=>{})}else R("write","request_details write returned false")}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{O=!1}}}let U=async()=>{N&&(clearTimeout(N),N=null),M.length>0&&await T()};async function V(){let a=await (0,d.c)(),{exportSettings:b}=await Promise.resolve().then(c.bind(c,45874)),g={backup:{formatVersion:2,exportedAt:new Date().toISOString()},settings:await b(),providerConnections:a.all("SELECT * FROM providerConnections").map(a=>({...(0,e.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive,scope:a.scope||"system",ownerUser:String(a.ownerUser||"").trim().toLowerCase(),createdByUser:String(a.createdByUser||"").trim().toLowerCase(),visibility:a.visibility||("personal"===a.scope?"private":"system"),createdAt:a.createdAt,updatedAt:a.updatedAt})),providerNodes:a.all("SELECT * FROM providerNodes").map(a=>({...(0,e.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt})),proxyPools:a.all("SELECT * FROM proxyPools").map(a=>({...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt})),apiKeys:a.all("SELECT * FROM apiKeys").map(a=>({id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive,adminDisabled:1===a.adminDisabled,ownerUser:a.ownerUser||"",createdByUser:a.createdByUser||"",cavemanMode:a.cavemanMode||"inherit",cavemanLevel:a.cavemanLevel||"lite",createdAt:a.createdAt,allowedModels:(0,e.q)(a.allowedModels,[]),limits:(0,e.q)(a.limits,{})})),combos:a.all("SELECT * FROM combos").map(a=>({id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),createdAt:a.createdAt,updatedAt:a.updatedAt})),modelAliases:{},customModels:[],mitmAlias:{},pricing:{},resourceMonitor:{servers:await (0,f.HI)({includeSecrets:!0}),history:a.all("SELECT * FROM resourceMonitorHistory ORDER BY serverId, sampledAt").map(a=>({...a,gpus:(0,e.q)(a.gpus,[])}))}};for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'modelAliases'"))g.modelAliases[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'customModels'"))g.customModels.push((0,e.q)(b.value));for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'mitmAlias'"))g.mitmAlias[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'pricing'"))g.pricing[b.key]=(0,e.q)(b.value);return g}async function W(a,{returnExport:b=!0}={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let c=await (0,d.c)(),g=Object.prototype.hasOwnProperty.call(a,"resourceMonitor"),h=g?a.resourceMonitor:null;if(g&&(!h||"object"!=typeof h||Array.isArray(h)||!Array.isArray(h.servers)||!Array.isArray(h.history)))throw Error("Invalid resource monitor backup payload");let i=g?h.history.map(a=>{if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid resource monitor history entry");let b=String(a.serverId||"").trim(),c=Number(a.sampledAt);if(!b||!Number.isFinite(c))throw Error("Invalid resource monitor history entry");return{serverId:b,sampledAt:c,cpuUsage:Number(a.cpuUsage)||0,memoryUsage:Number(a.memoryUsage)||0,diskUsage:Number(a.diskUsage)||0,diskUsedBytes:Number(a.diskUsedBytes)||0,networkRxBps:Number(a.networkRxBps)||0,networkTxBps:Number(a.networkTxBps)||0,gpus:Array.isArray(a.gpus)?a.gpus:[]}}):[],j=null;g&&(j=await (0,f.HI)({includeSecrets:!0}),await (0,f.x8)(h.servers));try{c.transaction(()=>{for(let b of(c.run("DELETE FROM settings"),c.run("DELETE FROM providerConnections"),c.run("DELETE FROM providerNodes"),c.run("DELETE FROM proxyPools"),c.run("DELETE FROM apiKeys"),c.run("DELETE FROM combos"),c.run("DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'mitmAlias', 'pricing')"),g&&c.run("DELETE FROM resourceMonitorHistory"),a.settings&&c.run(`INSERT INTO settings(id, data) VALUES(1, ?)
157
+ ON CONFLICT(id) DO UPDATE SET data = excluded.data`,[(0,e.s)(a.settings)]),a.providerConnections||[])){let{id:a,provider:d,authType:f,name:g,email:h,priority:i,isActive:j,scope:k,ownerUser:l,createdByUser:m,visibility:n,createdAt:o,updatedAt:p,...q}=b,r="personal"===k?"personal":"system";c.run(`INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, scope, ownerUser, createdByUser, visibility, data, createdAt, updatedAt)
158
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[a,d,f||"oauth",g||null,h||null,i||null,+(!1!==j),r,String(l||"").trim().toLowerCase(),String(m||l||"").trim().toLowerCase(),n||("personal"===r?"private":"system"),(0,e.s)(q),o||new Date().toISOString(),p||new Date().toISOString()])}for(let b of a.providerNodes||[]){let{id:a,type:d,name:f,createdAt:g,updatedAt:h,...i}=b;c.run(`INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt)
159
+ VALUES(?, ?, ?, ?, ?, ?)`,[a,d||null,f||null,(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let b of a.proxyPools||[]){let{id:a,isActive:d,testStatus:f,createdAt:g,updatedAt:h,...i}=b;c.run(`INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
160
+ VALUES(?, ?, ?, ?, ?, ?)`,[a,+(!1!==d),f||"unknown",(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let b of a.apiKeys||[])c.run(`INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, adminDisabled, createdAt, allowedModels, limits, ownerUser, createdByUser, cavemanMode, cavemanLevel)
161
+ VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,[b.id,b.key,b.name||null,b.machineId||null,+(!1!==b.isActive),+(!0===b.adminDisabled),b.createdAt||new Date().toISOString(),(0,e.s)(Array.isArray(b.allowedModels)?b.allowedModels:[]),(0,e.s)(b.limits&&"object"==typeof b.limits&&!Array.isArray(b.limits)?b.limits:{}),String(b.ownerUser||"").trim().toLowerCase(),String(b.createdByUser||b.ownerUser||"").trim().toLowerCase(),["inherit","on","off"].includes(b.cavemanMode)?b.cavemanMode:"inherit",["lite","full","ultra"].includes(b.cavemanLevel)?b.cavemanLevel:"lite"]);for(let b of a.combos||[])c.run(`INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt)
162
+ VALUES(?, ?, ?, ?, ?, ?)`,[b.id,b.name,b.kind||null,(0,e.s)(b.models||[]),b.createdAt||new Date().toISOString(),b.updatedAt||new Date().toISOString()]);for(let[b,d]of Object.entries(a.modelAliases||{}))c.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[b,(0,e.s)(d)]);for(let b of a.customModels||[]){let a=`${b.providerAlias}|${b.id}|${b.type||"llm"}`;c.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[a,(0,e.s)(b)])}for(let[b,d]of Object.entries(a.mitmAlias||{}))c.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[b,(0,e.s)(d||{})]);for(let[b,d]of Object.entries(a.pricing||{}))c.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[b,(0,e.s)(d||{})]);if(g)for(let a of i)c.run(`INSERT OR REPLACE INTO resourceMonitorHistory(
163
+ serverId, sampledAt, cpuUsage, memoryUsage, diskUsage,
164
+ diskUsedBytes, networkRxBps, networkTxBps, gpus
165
+ ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)`,[a.serverId,a.sampledAt,a.cpuUsage,a.memoryUsage,a.diskUsage,a.diskUsedBytes,a.networkRxBps,a.networkTxBps,(0,e.s)(a.gpus)])})}catch(a){throw j&&await (0,f.x8)(j).catch(a=>{console.error("[DB][import] Failed to roll back resource monitor servers:",a)}),a}return b?await V():{success:!0,resourceMonitorImported:g,resourceMonitorServerCount:h?.servers.length||0,resourceMonitorHistoryCount:i.length}}process.off("beforeExit",U),process.off("SIGINT",U),process.off("SIGTERM",U),process.off("exit",U),process.on("beforeExit",U),process.on("SIGINT",U),process.on("SIGTERM",U),process.on("exit",U)}};
@@ -0,0 +1,9 @@
1
+ "use strict";exports.id=607,exports.ids=[607,9614],exports.modules={9588:(a,b,c)=>{c.d(b,{I8:()=>j,Tv:()=>u,UX:()=>o,aV:()=>n,bz:()=>q,hH:()=>t,oW:()=>s,s0:()=>l,ub:()=>m,vZ:()=>p});var d=c(65573),e=c(23211),f=c(89718),g=c(33792),h=c(90389);function i(a){return String(a||"").trim().toLowerCase()}function j(a){return i(a)}function k(a={}){return[a.ldapUsername,a.ldapEmail,a.ldapName,a.oidcEmail,a.oidcName,a.localUsername,a.username,a.email].map(i).filter(Boolean)}function l(a={}){let b=k(a),c=b[0]||"local",d=a.ldapName||a.ldapEmail||a.oidcName||a.oidcEmail||a.localUsername||c;return{userId:c,displayName:d,loginMethod:a.oidc?"OIDC":a.ldap?"LDAP":"Local",candidates:b}}function m(a={},b={}){var c;if(!b?.authenticated)return!1;if(b.local||!b.ldap&&!b.oidc||b.role===h.hS.ADMIN||!0===b.ldapIsAdmin)return!0;let d=Array.isArray(c=a.ldapAllowedUsers)?c.map(i).filter(Boolean):String(c||"").split(/[,\n]/).map(i).filter(Boolean);return 0!==d.length&&k(b).some(a=>d.includes(a))}function n(a={},b={}){return!(!b?.authenticated||m(a,b))&&(b.role===h.hS.MONITOR_ADMIN||!0===b.ldapIsMonitorAdmin)}function o(a={},b={}){return!(!b?.authenticated||m(a,b)||n(a,b))&&(b.role===h.hS.AI_GATEWAYS_MONITOR||!0===b.ldapIsAiGatewaysMonitor)}function p(a={},b={}){return b?.authenticated?m(a,b)?h.hS.ADMIN:n(a,b)?h.hS.MONITOR_ADMIN:o(a,b)?h.hS.AI_GATEWAYS_MONITOR:h.hS.USER:h.hS.GUEST}function q(a={}){return!0===a.isAdmin||!0===a.isMonitorAdmin}async function r(){let a=await (0,f.mt)(),b=await (0,d.UL)(),c=await (0,g.dY)(b.get("auth_token")?.value);if(!c?.authenticated)return{authenticated:!1,isAdmin:!1,isMonitorAdmin:!1,isAiGatewaysMonitor:!1,role:h.hS.GUEST,userId:"",displayName:"Guest",loginMethod:"None",settings:{...a,requireLogin:!0},session:null};let e=l(c||{}),i=p(a,c||{}),j=i===h.hS.ADMIN,k=i===h.hS.MONITOR_ADMIN,m=i===h.hS.AI_GATEWAYS_MONITOR;return{authenticated:!0,isAdmin:j,isMonitorAdmin:k,isAiGatewaysMonitor:m,role:i,canManageApiKeys:j||k,canUseMonitorAdminTabs:j||k,canViewAllAnalytics:j||k||m,...e,settings:{...a,requireLogin:!0},session:c}}async function s(){let a=await r();return a.authenticated?{access:a,response:null}:{access:a,response:e.NextResponse.json({error:"Authentication required"},{status:401})}}async function t(a={}){let{allowMonitorAdmin:b=!1}=a||{},{access:c,response:d}=await s();return d?{access:c,response:d}:c.isAdmin||b&&c.isMonitorAdmin?{access:c,response:null}:{access:c,response:e.NextResponse.json({error:"Admin access required"},{status:403})}}function u(a,b){if(!a?.authenticated||!b)return!1;if(q(a))return!0;let c=i(a.userId),d=i(b.ownerUser),e=i(b.createdByUser);return!!c&&(d===c||e===c)}},19225:(a,b,c)=>{a.exports=c(44870)},25334:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}function e({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let f=d(b),g=d(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let h="1"===process.env.NINE_ROUTER_PROXY_MANAGED,i=!1;h&&(f||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),g||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),f&&(process.env.HTTP_PROXY=f,process.env.HTTPS_PROXY=f,process.env.ALL_PROXY=f,process.env.NINE_ROUTER_PROXY_URL=f,i=!0),g&&(process.env.NO_PROXY=g,process.env.NINE_ROUTER_NO_PROXY=g,i=!0),i?process.env.NINE_ROUTER_PROXY_MANAGED="1":h&&delete process.env.NINE_ROUTER_PROXY_MANAGED}c.d(b,{k:()=>e})},33792:(a,b,c)=>{c.d(b,{Dc:()=>p,OZ:()=>s,YK:()=>n,dY:()=>q,tm:()=>r});var d=c(86935),e=c(69614),f=c(73024),g=c.n(f),h=c(76760),i=c.n(h),j=c(77598),k=c.n(j),l=c(49120);let m=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=i().join(l.DATA_DIR,"jwt-secret");try{return g().readFileSync(a,"utf8").trim()}catch{}g().mkdirSync(l.DATA_DIR,{recursive:!0});let b=k().randomBytes(32).toString("hex");return g().writeFileSync(a,b,{mode:384}),b}());function n(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function o(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("86400s").sign(m)}async function p(a){if(!a)return!1;try{return await (0,e.V)(a,m),!0}catch{return!1}}async function q(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,m);return b}catch{return null}}async function r(a,b,c={}){let d=await o(c);a.set("auth_token",d,{httpOnly:!0,secure:n(b),sameSite:"lax",path:"/",maxAge:86400})}function s(a){a.delete("auth_token")}},34231:(a,b,c)=>{c.d(b,{VE:()=>l,qs:()=>m});var d=c(77598),e=c.n(d),f=c(89718),g=c(25334),h=c(92225),i=c(62763);let j="__blueRouterClusterSync";async function k(a=null){var b,c;let d=a||await (0,i.Jc)({includeSecrets:!0});if("slave"!==d.role)throw Error("Node is not in Standby mode");if(!d.masterUrl)throw Error("Master URL is not configured");if(!d.syncToken)throw Error("Sync token is not configured");let f=await fetch((b=d.masterUrl,`${String(b||"").replace(/\/+$/,"")}/api/cluster/snapshot`),{headers:{Authorization:`Bearer ${d.syncToken}`,"X-BlueRouter-Node-Id":d.nodeId},cache:"no-store",signal:AbortSignal.timeout(12e4)});if(!f.ok)throw Error((await f.json().catch(()=>({}))).error||`Master returned HTTP ${f.status}`);if((Number(f.headers.get("content-length"))||0)>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let g=await f.text();if(Buffer.byteLength(g,"utf8")>0x10000000)throw Error("Cluster snapshot exceeds the 256 MB limit");let j=JSON.parse(g);if(!j||"object"!=typeof j||!j.manifest||!j.payload)throw Error("Invalid cluster snapshot response");if(c=j.payload,e().createHash("sha256").update(JSON.stringify(c)).digest("hex")!==j.manifest.sha256)throw Error("Cluster snapshot checksum mismatch");if(2!==Number(j.payload?.backup?.formatVersion))throw Error("Unsupported cluster backup format");if(Number(j.manifest.schemaVersion)!==(0,h.q)())throw Error(`Schema version mismatch: Master=${j.manifest.schemaVersion}, Standby=${(0,h.q)()}`);return j}async function l(a=null){let b=await k(a);return{ok:!0,manifest:b.manifest,serverCount:b.payload.resourceMonitor?.servers?.length||0,historyCount:b.payload.resourceMonitor?.history?.length||0}}async function m({force:a=!1}={}){let b=(globalThis[j]||(globalThis[j]={timer:null,running:null,started:!1}),globalThis[j]);return b.running||(b.running=(async()=>{let b=await (0,i.Jc)({includeSecrets:!0});if("slave"!==b.role||!b.enabled)throw Error("Standby sync is not enabled");let c=new Date().toISOString();await (0,i.X_)({lastAttemptAt:c});try{let c=await k(b);if(!a&&c.manifest.sha256===b.lastSnapshotHash){let a={status:"unchanged",snapshotHash:c.manifest.sha256,masterCreatedAt:c.manifest.createdAt};return await (0,i.X_)({lastSyncAt:new Date().toISOString(),lastError:"",lastResult:a}),a}let d=await (0,f.K1)(c.payload,{returnExport:!1});try{(0,g.k)(await (0,f.mt)())}catch(a){console.warn("[cluster] failed to apply restored outbound proxy settings:",a?.message||a)}let e={status:"synced",snapshotHash:c.manifest.sha256,masterCreatedAt:c.manifest.createdAt,serverCount:d.resourceMonitorServerCount||0,historyCount:d.resourceMonitorHistoryCount||0};return await (0,i.X_)({lastSyncAt:new Date().toISOString(),lastSnapshotHash:c.manifest.sha256,lastError:"",lastResult:e}),e}catch(a){throw await (0,i.X_)({lastError:a?.message||"Cluster sync failed",lastResult:{status:"error"}}),a}})().finally(()=>{b.running=null})),b.running}},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()}},62763:(a,b,c)=>{c.d(b,{Jc:()=>r,NY:()=>w,Q1:()=>s,WR:()=>v,X_:()=>u,gX:()=>t});var d=c(77598),e=c.n(d),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(49120);let k=i().join(j.DATA_DIR,"cluster-config.json"),l=new Set(["standalone","master","slave"]),m="__blueRouterClusterConfigMutation",n={version:1,nodeId:"",role:"standalone",enabled:!1,masterUrl:"",syncToken:"",intervalMinutes:5,lastAttemptAt:null,lastSyncAt:null,lastSnapshotHash:"",lastError:"",lastResult:null};function o(a={}){let b=l.has(a.role)?a.role:"standalone";return{...n,...a,version:1,nodeId:String(a.nodeId||"").trim()||e().randomUUID(),role:b,enabled:!0===a.enabled,masterUrl:function(a){let b=String(a||"").trim().replace(/\/+$/,"");if(!b)return"";let c=new URL(b);if(!["http:","https:"].includes(c.protocol))throw Error("Master URL must use http:// or https://");if(c.username||c.password)throw Error("Master URL must not contain credentials");return c.toString().replace(/\/+$/,"")}(a.masterUrl),syncToken:String(a.syncToken||"").trim(),intervalMinutes:Math.min(1440,Math.max(1,Number(a.intervalMinutes)||5))}}async function p(a){await g().mkdir(j.DATA_DIR,{recursive:!0});let b=`${k}.${process.pid}.${e().randomUUID()}.tmp`;try{await g().writeFile(b,JSON.stringify(a,null,2),{mode:384}),await g().rename(b,k)}catch(a){throw await g().unlink(b).catch(()=>{}),a}}function q(a){let b=(globalThis[m]||Promise.resolve()).then(a,a);return globalThis[m]=b.catch(()=>{}),b}async function r({includeSecrets:a=!1}={}){let b={};try{b=JSON.parse(await g().readFile(k,"utf8"))}catch(a){a?.code!=="ENOENT"&&console.warn("[cluster] failed to read config:",a?.message||a)}let c=o(b);if(b.nodeId||await p(c),a)return c;let{syncToken:d,...e}=c;return{...e,hasSyncToken:!!c.syncToken}}async function s(a={}){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid cluster config payload");return q(async()=>{let b=await r({includeSecrets:!0}),c={};for(let b of["role","enabled","masterUrl","syncToken","intervalMinutes"])Object.prototype.hasOwnProperty.call(a,b)&&(c[b]=a[b]);let d=o({...b,...c});if("master"!==d.role||d.syncToken||(d.syncToken=e().randomBytes(32).toString("base64url")),d.enabled&&"slave"===d.role){if(!d.masterUrl)throw Error("Master URL is required for Standby mode");if(!d.syncToken)throw Error("Sync token is required for Standby mode")}return await p(d),d})}async function t(){return q(async()=>{let a={...await r({includeSecrets:!0}),syncToken:e().randomBytes(32).toString("base64url")};return await p(a),a})}async function u(a={}){return q(async()=>{let b=await r({includeSecrets:!0}),c=o({...b,...a,nodeId:b.nodeId,role:b.role,enabled:b.enabled,masterUrl:b.masterUrl,syncToken:b.syncToken,intervalMinutes:b.intervalMinutes});return await p(c),c})}async function v(){return"slave"===(await r({includeSecrets:!0})).role}function w(a,b){let c=Buffer.from(String(a||"")),d=Buffer.from(String(b||""));return c.length>0&&c.length===d.length&&e().timingSafeEqual(c,d)}},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",scope:"TEXT DEFAULT 'system'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",visibility:"TEXT DEFAULT 'system'",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)","CREATE INDEX IF NOT EXISTS idx_pc_scope_owner ON providerConnections(scope, ownerUser)","CREATE INDEX IF NOT EXISTS idx_pc_provider_scope ON providerConnections(provider, scope)"]},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",adminDisabled:"INTEGER DEFAULT 0",allowedModels:"TEXT DEFAULT '[]'",ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",cavemanMode:"TEXT DEFAULT 'inherit'",cavemanLevel:"TEXT DEFAULT 'lite'",createdAt:"TEXT NOT NULL"},indexes:["CREATE INDEX IF NOT EXISTS idx_ak_key ON apiKeys(key)","CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)","CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)","CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)"]},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)"]},resourceMonitorHistory:{columns:{serverId:"TEXT NOT NULL",sampledAt:"INTEGER NOT NULL",cpuUsage:"REAL DEFAULT 0",memoryUsage:"REAL DEFAULT 0",diskUsage:"REAL DEFAULT 0",diskUsedBytes:"INTEGER DEFAULT 0",networkRxBps:"REAL DEFAULT 0",networkTxBps:"REAL DEFAULT 0",gpus:"TEXT NOT NULL DEFAULT '[]'"},primaryKey:"PRIMARY KEY (serverId, sampledAt)",indexes:["CREATE INDEX IF NOT EXISTS idx_rmh_server_time ON resourceMonitorHistory(serverId, sampledAt)","CREATE INDEX IF NOT EXISTS idx_rmh_sampled_at ON resourceMonitorHistory(sampledAt)"]}};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(", ")})`}},69614:(a,b,c)=>{c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(11980);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},90389:(a,b,c)=>{c.d(b,{hS:()=>d});let d=Object.freeze({ADMIN:"admin",MONITOR_ADMIN:"monitor_admin",AI_GATEWAYS_MONITOR:"ai_gateways_monitor",USER:"user",GUEST:"guest"});Object.freeze([{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/api-keys",label:"API Keys",icon:"vpn_key"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/analytics",label:"Analytics",icon:"monitoring"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/prompt-logs",label:"Prompt Logs",icon:"manage_search"}]),Object.freeze(["/dashboard","/dashboard/endpoint","/dashboard/api-keys","/dashboard/usage","/dashboard/analytics","/dashboard/quota","/dashboard/prompt-logs"])},92225:(a,b,c)=>{c.d(b,{o:()=>e,q:()=>f});var d=c(63775);let e=[{version:1,name:"initial",up(a){for(let[b,c]of Object.entries(d.CG))for(let e of(a.exec((0,d.zE)(b,c)),c.indexes||[]))a.exec(e)}},{version:2,name:"usage-history-analytics-indexes",up(){}},{version:3,name:"request-observability-rollups",up(a){var b="apiKeys";let c=function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}}(a,b);for(let[d,e]of Object.entries({ownerUser:"TEXT DEFAULT ''",createdByUser:"TEXT DEFAULT ''",allowedModels:"TEXT DEFAULT '[]'"}))c.has(d)||a.exec(`ALTER TABLE ${b} ADD COLUMN ${d} ${e}`);a.exec("CREATE INDEX IF NOT EXISTS idx_ak_owner ON apiKeys(ownerUser)"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_created_by ON apiKeys(createdByUser)")}},{version:4,name:"api-key-admin-disabled",up(a){(function(a,b){try{return new Set((a.all(`PRAGMA table_info(${b})`)||[]).map(a=>a.name))}catch{return new Set}})(a,"apiKeys").has("adminDisabled")||a.exec("ALTER TABLE apiKeys ADD COLUMN adminDisabled INTEGER DEFAULT 0"),a.exec("CREATE INDEX IF NOT EXISTS idx_ak_admin_disabled ON apiKeys(adminDisabled)")}},{version:5,name:"api-key-caveman-override",up(a){let b=new Set(a.all("PRAGMA table_info(apiKeys)").map(a=>a.name));b.has("cavemanMode")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanMode TEXT DEFAULT 'inherit'"),b.has("cavemanLevel")||a.exec("ALTER TABLE apiKeys ADD COLUMN cavemanLevel TEXT DEFAULT 'lite'")}}].sort((a,b)=>a.version-b.version);function f(){return e.length?e[e.length-1].version:0}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},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)}}};