@yina-npm/openrouterx 0.4.35 → 0.4.52

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 (1042) hide show
  1. package/README.md +1176 -254
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +8 -6
  4. package/app/.next/build-manifest.json +4 -4
  5. package/app/.next/prerender-manifest.json +3 -3
  6. package/app/.next/required-server-files.json +18 -5
  7. package/app/.next/routes-manifest.json +38 -24
  8. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
  12. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +24 -0
  18. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
  19. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
  20. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  21. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  27. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page.js +2 -2
  33. package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +10 -10
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  42. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  57. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  60. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +4 -4
  69. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  72. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  75. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  78. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  81. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/user/page.js +3 -3
  84. package/app/.next/server/app/(dashboard)/dashboard/user/page.js.nft.json +1 -1
  85. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/_global-error/page.js +3 -3
  87. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  88. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/_global-error.html +1 -1
  90. package/app/.next/server/app/_global-error.rsc +1 -1
  91. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  92. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  93. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  94. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  95. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  96. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/app/.next/server/app/_not-found/page.js +2 -2
  98. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  99. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/_not-found.html +1 -1
  101. package/app/.next/server/app/_not-found.rsc +5 -6
  102. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -6
  103. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  104. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  105. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  106. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  107. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -4
  108. package/app/.next/server/app/api/auth/login/route.js +1 -1
  109. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  110. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  112. package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/auth/me/route.js +1 -1
  115. package/app/.next/server/app/api/auth/me/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  118. package/app/.next/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
  121. package/app/.next/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
  124. package/app/.next/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/auth/status/route.js +1 -1
  127. package/app/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +10 -2
  130. package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  133. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js +1 -1
  136. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js +1 -1
  139. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  142. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -1
  145. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  148. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  151. package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/cli-tools/codex-settings/activate-account/route.js +2 -0
  154. package/app/.next/server/app/api/{cloud/credentials/update → cli-tools/codex-settings/activate-account}/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/cli-tools/codex-settings/activate-account/route_client-reference-manifest.js +1 -0
  156. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  157. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  160. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  163. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  166. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -2
  169. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +9 -0
  172. package/app/.next/server/app/api/{cloud/auth → cli-tools/deepseek-tui-settings}/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -0
  174. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  175. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  178. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +3 -0
  181. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -0
  182. package/app/.next/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -0
  183. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  184. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  187. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  190. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  193. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/combos/route.js +1 -1
  196. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/health/route.js +1 -1
  199. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/init/route.js +1 -1
  202. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  205. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/keys/route.js +1 -1
  208. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/locale/route.js +1 -1
  211. package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/api/mcp/[plugin]/message/route.js +3 -3
  214. package/app/.next/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +4 -4
  217. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  218. package/app/.next/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -1
  219. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  220. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  221. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  223. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -1
  225. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  226. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
  229. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
  230. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
  231. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  232. package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/models/alias/route.js +1 -1
  235. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  236. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/models/availability/route.js +1 -1
  238. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  240. package/app/.next/server/app/api/models/custom/route.js +1 -1
  241. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  242. package/app/.next/server/app/api/models/custom/route_client-reference-manifest.js +1 -1
  243. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  244. package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/models/disabled/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/api/models/route.js +1 -1
  247. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  248. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  249. package/app/.next/server/app/api/models/test/route.js +1 -1
  250. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  251. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  252. package/app/.next/server/app/api/network-analysis/route.js +2 -2
  253. package/app/.next/server/app/api/network-analysis/route.js.nft.json +1 -1
  254. package/app/.next/server/app/api/network-analysis/route_client-reference-manifest.js +1 -1
  255. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  256. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  259. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  262. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  265. package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  267. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  268. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  271. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  273. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  274. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  276. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  277. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  278. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  279. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  280. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  282. package/app/.next/server/app/api/pricing/route.js +1 -1
  283. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  284. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  285. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  286. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  287. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  288. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  289. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  290. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  291. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  292. package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  293. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  294. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  295. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  296. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  297. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  298. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  299. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  301. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  302. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  303. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  304. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/providers/client/route.js +1 -1
  307. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  310. package/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/providers/route.js +1 -1
  313. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  314. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  315. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  316. package/app/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  317. package/app/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -1
  318. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  319. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  320. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  321. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  322. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  323. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  324. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  325. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  326. package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  327. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  328. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  329. package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  330. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  331. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  332. package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  333. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  334. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  335. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -1
  336. package/app/.next/server/app/api/settings/database/route.js +1 -1
  337. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  338. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  339. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  340. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  341. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  343. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  344. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  345. package/app/.next/server/app/api/settings/route.js +1 -1
  346. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  347. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  348. package/app/.next/server/app/api/shutdown/route.js +1 -1
  349. package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
  350. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  351. package/app/.next/server/app/api/startup-notices/route.js +2 -0
  352. package/app/.next/server/app/api/startup-notices/route.js.nft.json +1 -0
  353. package/app/.next/server/app/api/startup-notices/route_client-reference-manifest.js +1 -0
  354. package/app/.next/server/app/api/tags/route.js +1 -1
  355. package/app/.next/server/app/api/tags/route.js.nft.json +1 -1
  356. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  357. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  358. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  359. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  360. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  361. package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  362. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  363. package/app/.next/server/app/api/translator/load/route.js +1 -1
  364. package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
  365. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  366. package/app/.next/server/app/api/translator/save/route.js +1 -1
  367. package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
  368. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  369. package/app/.next/server/app/api/translator/send/route.js +1 -1
  370. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  373. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  374. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  375. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  376. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  377. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  378. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  379. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  380. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  381. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  382. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  383. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  384. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  385. package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  386. package/app/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -1
  387. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  388. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  389. package/app/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -1
  390. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  391. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  392. package/app/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -1
  393. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +4 -4
  394. package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  395. package/app/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -1
  396. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
  397. package/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  398. package/app/.next/server/app/api/tunnel/tailscale-login/route_client-reference-manifest.js +1 -1
  399. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  400. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  401. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js +1 -1
  402. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  403. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  404. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  406. package/app/.next/server/app/api/usage/api-keys/route.js.nft.json +1 -1
  407. package/app/.next/server/app/api/usage/api-keys/route_client-reference-manifest.js +1 -1
  408. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  409. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  410. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  411. package/app/.next/server/app/api/usage/history/route.js +1 -1
  412. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  413. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  415. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  416. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  417. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  418. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  419. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  420. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  421. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  422. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  423. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  424. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  425. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  426. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  427. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  428. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  429. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  430. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  431. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  433. package/app/.next/server/app/api/users/[id]/route.js.nft.json +1 -1
  434. package/app/.next/server/app/api/users/[id]/route_client-reference-manifest.js +1 -1
  435. package/app/.next/server/app/api/users/route.js +1 -1
  436. package/app/.next/server/app/api/users/route.js.nft.json +1 -1
  437. package/app/.next/server/app/api/users/route_client-reference-manifest.js +1 -1
  438. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  439. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  440. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  441. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  442. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  443. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  444. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  445. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  446. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  447. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  448. package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  449. package/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -1
  450. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  451. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  452. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  453. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  454. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  455. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  456. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  457. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  458. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  459. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  460. package/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  461. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  462. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  463. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  464. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  465. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  466. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  467. package/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +1 -1
  468. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  469. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
  470. package/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -1
  471. package/app/.next/server/app/api/v1/models/route.js +1 -1
  472. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  473. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  474. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  475. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  476. package/app/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -1
  477. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  478. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  479. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  480. package/app/.next/server/app/api/v1/route.js +1 -1
  481. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  482. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  483. package/app/.next/server/app/api/v1/search/route.js +1 -1
  484. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  485. package/app/.next/server/app/api/v1/search/route_client-reference-manifest.js +1 -1
  486. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  487. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  488. package/app/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -1
  489. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  490. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  491. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  492. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  493. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  494. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  495. package/app/.next/server/app/api/version/route.js +1 -1
  496. package/app/.next/server/app/api/version/route.js.nft.json +1 -1
  497. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  498. package/app/.next/server/app/api/version/shutdown/route.js +1 -1
  499. package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
  500. package/app/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -1
  501. package/app/.next/server/app/api/version/update/route.js +1 -1
  502. package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
  503. package/app/.next/server/app/api/version/update/route_client-reference-manifest.js +1 -1
  504. package/app/.next/server/app/callback/page.js +2 -2
  505. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  506. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  507. package/app/.next/server/app/callback.html +1 -1
  508. package/app/.next/server/app/callback.rsc +6 -7
  509. package/app/.next/server/app/callback.segments/_full.segment.rsc +6 -7
  510. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  511. package/app/.next/server/app/callback.segments/_index.segment.rsc +5 -5
  512. package/app/.next/server/app/callback.segments/_tree.segment.rsc +3 -4
  513. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  514. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  515. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  516. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  517. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  518. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  519. package/app/.next/server/app/dashboard/settings/pricing.rsc +6 -7
  520. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -7
  521. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  522. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -5
  523. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -4
  524. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  525. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  526. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  527. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  528. package/app/.next/server/app/favicon.ico/route.js +1 -1
  529. package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  530. package/app/.next/server/app/index.html +1 -1
  531. package/app/.next/server/app/index.rsc +5 -6
  532. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  533. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -6
  534. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  535. package/app/.next/server/app/index.segments/_index.segment.rsc +5 -5
  536. package/app/.next/server/app/index.segments/_tree.segment.rsc +3 -4
  537. package/app/.next/server/app/landing/page.js +2 -2
  538. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  539. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  540. package/app/.next/server/app/landing.html +1 -1
  541. package/app/.next/server/app/landing.rsc +6 -7
  542. package/app/.next/server/app/landing.segments/_full.segment.rsc +6 -7
  543. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  544. package/app/.next/server/app/landing.segments/_index.segment.rsc +5 -5
  545. package/app/.next/server/app/landing.segments/_tree.segment.rsc +3 -4
  546. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  547. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  548. package/app/.next/server/app/login/page.js +2 -2
  549. package/app/.next/server/app/login/page.js.nft.json +1 -1
  550. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  551. package/app/.next/server/app/login.html +1 -1
  552. package/app/.next/server/app/login.rsc +6 -7
  553. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -7
  554. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  555. package/app/.next/server/app/login.segments/_index.segment.rsc +5 -5
  556. package/app/.next/server/app/login.segments/_tree.segment.rsc +3 -4
  557. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  558. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  559. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  560. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  561. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  562. package/app/.next/server/app/page.js +2 -2
  563. package/app/.next/server/app/page.js.nft.json +1 -1
  564. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  565. package/app/.next/server/app-paths-manifest.json +8 -6
  566. package/app/.next/server/chunks/1350.js +4 -3
  567. package/app/.next/server/chunks/1476.js +1 -0
  568. package/app/.next/server/chunks/2415.js +17 -0
  569. package/app/.next/server/chunks/2506.js +4 -4
  570. package/app/.next/server/chunks/2560.js +1 -1
  571. package/app/.next/server/chunks/2574.js +1 -0
  572. package/app/.next/server/chunks/2722.js +58 -0
  573. package/app/.next/server/chunks/{9528.js → 2750.js} +2 -3
  574. package/app/.next/server/chunks/3110.js +56 -5
  575. package/app/.next/server/chunks/319.js +3 -3
  576. package/app/.next/server/chunks/3493.js +2 -1
  577. package/app/.next/server/chunks/3593.js +2 -2
  578. package/app/.next/server/chunks/412.js +5 -5
  579. package/app/.next/server/chunks/{9546.js → 4394.js} +1 -1
  580. package/app/.next/server/chunks/{9641.js → 4565.js} +2 -2
  581. package/app/.next/server/chunks/4664.js +1 -1
  582. package/app/.next/server/chunks/5217.js +1 -1
  583. package/app/.next/server/chunks/5330.js +7 -5
  584. package/app/.next/server/chunks/5681.js +1 -1
  585. package/app/.next/server/chunks/6001.js +1 -1
  586. package/app/.next/server/chunks/6393.js +1 -1
  587. package/app/.next/server/chunks/7177.js +1 -0
  588. package/app/.next/server/chunks/7595.js +1 -1
  589. package/app/.next/server/chunks/7774.js +2 -2
  590. package/app/.next/server/chunks/7828.js +1 -1
  591. package/app/.next/server/chunks/7930.js +3 -0
  592. package/app/.next/server/chunks/8520.js +1 -1
  593. package/app/.next/server/chunks/8574.js +1 -0
  594. package/app/.next/server/chunks/8651.js +9 -0
  595. package/app/.next/server/chunks/8750.js +1 -0
  596. package/app/.next/server/chunks/8760.js +1 -1
  597. package/app/.next/server/chunks/8895.js +25 -16
  598. package/app/.next/server/chunks/9095.js +1 -0
  599. package/app/.next/server/chunks/9718.js +1 -1
  600. package/app/.next/server/chunks/9856.js +1 -0
  601. package/app/.next/server/functions-config-manifest.json +2 -30
  602. package/app/.next/server/middleware-build-manifest.js +1 -1
  603. package/app/.next/server/middleware.js +2 -2
  604. package/app/.next/server/next-font-manifest.js +1 -1
  605. package/app/.next/server/next-font-manifest.json +1 -1
  606. package/app/.next/server/pages/404.html +1 -1
  607. package/app/.next/server/pages/500.html +1 -1
  608. package/app/.next/server/server-reference-manifest.js +1 -1
  609. package/app/.next/server/server-reference-manifest.json +1 -1
  610. package/app/.next/static/Q5oB2dEL7XeWBhjwqT_vo/_buildManifest.js +1 -0
  611. package/app/.next/static/chunks/1321-621ed3470478397e.js +1 -0
  612. package/app/.next/static/chunks/4072-cc92fb1222a2752b.js +3 -0
  613. package/app/.next/static/chunks/5095-c2bb7e2fc99ab8c3.js +2 -0
  614. package/app/.next/static/chunks/5497-bebd4378b1048022.js +7 -0
  615. package/app/.next/static/chunks/6069-7c51e16aef293430.js +58 -0
  616. package/app/.next/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
  617. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/keys/page-0d5b57da4abb6962.js +1 -0
  618. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/{page-2aa2cafdedb17bad.js → page-972703d59d2a3986.js} +1 -1
  619. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-277c4575cca57177.js → page-e1bd21507327d2bc.js} +1 -1
  620. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-efbd0b93d35d25cc.js +1 -0
  621. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-acbac7a67319955a.js +1 -0
  622. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-7fabe6d07b1f8823.js +1 -0
  623. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-d98ac191ef4ff7e6.js → page-55598932923e41ce.js} +1 -1
  624. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-c8f75b084231c080.js +1 -0
  625. package/app/.next/static/chunks/app/(dashboard)/dashboard/focus-ui/{page-90a2c72d1d8122a2.js → page-329b3a170ddd28c6.js} +1 -1
  626. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e43ee64cc1f1547c.js +59 -0
  627. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-3ab3cbba76b7cbad.js → page-c64dd1d0b2bd9caf.js} +1 -1
  628. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-c0ea5a27a13640b9.js → page-9586c0b67f30a21b.js} +2 -2
  629. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-c7fbf29bdbdabee9.js +1 -0
  630. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-e0f570e37fcc4d53.js +1 -0
  631. package/app/.next/static/chunks/app/(dashboard)/dashboard/network-analysis/page-0ad4db60f9d14f60.js +1 -0
  632. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-8fceba7ec6407143.js +1 -0
  633. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-f005d7a30159ce4f.js +1 -0
  634. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-c28344f1dd08e982.js → page-c3234f9c82b1a78e.js} +2 -2
  635. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-81f02e4a6ce21347.js → page-0bf3048423ab0128.js} +1 -1
  636. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-979e3e3663264d2b.js +1 -0
  637. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-5040868a50d977bf.js +4 -0
  638. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-f30757bcda3daba7.js → page-e089ffa4138753d7.js} +1 -1
  639. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-9202b5ce0650c3ab.js +1 -0
  640. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-814b95c8fc310a6a.js +1 -0
  641. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-18d6399108c458a6.js +1 -0
  642. package/app/.next/static/chunks/app/(dashboard)/dashboard/user/page-12765c664b3c1f6d.js +4 -0
  643. package/app/.next/static/chunks/app/(dashboard)/{layout-823fc1c94bc15026.js → layout-00b66bc0e6b38a14.js} +1 -1
  644. package/app/.next/static/chunks/app/_global-error/page-814b95c8fc310a6a.js +1 -0
  645. package/app/.next/static/chunks/app/_not-found/page-7927650ca4037264.js +1 -0
  646. package/app/.next/static/chunks/app/api/auth/login/route-814b95c8fc310a6a.js +1 -0
  647. package/app/.next/static/chunks/app/api/auth/logout/route-814b95c8fc310a6a.js +1 -0
  648. package/app/.next/static/chunks/app/api/auth/me/route-814b95c8fc310a6a.js +1 -0
  649. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-814b95c8fc310a6a.js +1 -0
  650. package/app/.next/static/chunks/app/api/auth/oidc/start/route-814b95c8fc310a6a.js +1 -0
  651. package/app/.next/static/chunks/app/api/auth/oidc/test/route-814b95c8fc310a6a.js +1 -0
  652. package/app/.next/static/chunks/app/api/auth/status/route-814b95c8fc310a6a.js +1 -0
  653. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-814b95c8fc310a6a.js +1 -0
  654. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-814b95c8fc310a6a.js +1 -0
  655. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-814b95c8fc310a6a.js +1 -0
  656. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-814b95c8fc310a6a.js +1 -0
  657. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-814b95c8fc310a6a.js +1 -0
  658. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-814b95c8fc310a6a.js +1 -0
  659. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-814b95c8fc310a6a.js +1 -0
  660. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-814b95c8fc310a6a.js +1 -0
  661. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/activate-account/route-814b95c8fc310a6a.js +1 -0
  662. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-814b95c8fc310a6a.js +1 -0
  663. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-814b95c8fc310a6a.js +1 -0
  664. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-814b95c8fc310a6a.js +1 -0
  665. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-814b95c8fc310a6a.js +1 -0
  666. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-814b95c8fc310a6a.js +1 -0
  667. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-814b95c8fc310a6a.js +1 -0
  668. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-814b95c8fc310a6a.js +1 -0
  669. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-814b95c8fc310a6a.js +1 -0
  670. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-814b95c8fc310a6a.js +1 -0
  671. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-814b95c8fc310a6a.js +1 -0
  672. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-814b95c8fc310a6a.js +1 -0
  673. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-814b95c8fc310a6a.js +1 -0
  674. package/app/.next/static/chunks/app/api/combos/[id]/route-814b95c8fc310a6a.js +1 -0
  675. package/app/.next/static/chunks/app/api/combos/route-814b95c8fc310a6a.js +1 -0
  676. package/app/.next/static/chunks/app/api/health/route-814b95c8fc310a6a.js +1 -0
  677. package/app/.next/static/chunks/app/api/init/route-814b95c8fc310a6a.js +1 -0
  678. package/app/.next/static/chunks/app/api/keys/[id]/route-814b95c8fc310a6a.js +1 -0
  679. package/app/.next/static/chunks/app/api/keys/route-814b95c8fc310a6a.js +1 -0
  680. package/app/.next/static/chunks/app/api/locale/route-814b95c8fc310a6a.js +1 -0
  681. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-814b95c8fc310a6a.js +1 -0
  682. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-814b95c8fc310a6a.js +1 -0
  683. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-814b95c8fc310a6a.js +1 -0
  684. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-814b95c8fc310a6a.js +1 -0
  685. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-814b95c8fc310a6a.js +1 -0
  686. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-814b95c8fc310a6a.js +1 -0
  687. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-814b95c8fc310a6a.js +1 -0
  688. package/app/.next/static/chunks/app/api/models/alias/route-814b95c8fc310a6a.js +1 -0
  689. package/app/.next/static/chunks/app/api/models/availability/route-814b95c8fc310a6a.js +1 -0
  690. package/app/.next/static/chunks/app/api/models/custom/route-814b95c8fc310a6a.js +1 -0
  691. package/app/.next/static/chunks/app/api/models/disabled/route-814b95c8fc310a6a.js +1 -0
  692. package/app/.next/static/chunks/app/api/models/route-814b95c8fc310a6a.js +1 -0
  693. package/app/.next/static/chunks/app/api/models/test/route-814b95c8fc310a6a.js +1 -0
  694. package/app/.next/static/chunks/app/api/network-analysis/route-814b95c8fc310a6a.js +1 -0
  695. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-814b95c8fc310a6a.js +1 -0
  696. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-814b95c8fc310a6a.js +1 -0
  697. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-814b95c8fc310a6a.js +1 -0
  698. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-814b95c8fc310a6a.js +1 -0
  699. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-814b95c8fc310a6a.js +1 -0
  700. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-814b95c8fc310a6a.js +1 -0
  701. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-814b95c8fc310a6a.js +1 -0
  702. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-814b95c8fc310a6a.js +1 -0
  703. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-814b95c8fc310a6a.js +1 -0
  704. package/app/.next/static/chunks/app/api/pricing/route-814b95c8fc310a6a.js +1 -0
  705. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-814b95c8fc310a6a.js +1 -0
  706. package/app/.next/static/chunks/app/api/provider-nodes/route-814b95c8fc310a6a.js +1 -0
  707. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-814b95c8fc310a6a.js +1 -0
  708. package/app/.next/static/chunks/app/api/providers/[id]/models/route-814b95c8fc310a6a.js +1 -0
  709. package/app/.next/static/chunks/app/api/providers/[id]/route-814b95c8fc310a6a.js +1 -0
  710. package/app/.next/static/chunks/app/api/providers/[id]/test/route-814b95c8fc310a6a.js +1 -0
  711. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-814b95c8fc310a6a.js +1 -0
  712. package/app/.next/static/chunks/app/api/providers/client/route-814b95c8fc310a6a.js +1 -0
  713. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-814b95c8fc310a6a.js +1 -0
  714. package/app/.next/static/chunks/app/api/providers/route-814b95c8fc310a6a.js +1 -0
  715. package/app/.next/static/chunks/app/api/providers/suggested-models/route-814b95c8fc310a6a.js +1 -0
  716. package/app/.next/static/chunks/app/api/providers/test-batch/route-814b95c8fc310a6a.js +1 -0
  717. package/app/.next/static/chunks/app/api/providers/validate/route-814b95c8fc310a6a.js +1 -0
  718. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-814b95c8fc310a6a.js +1 -0
  719. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-814b95c8fc310a6a.js +1 -0
  720. package/app/.next/static/chunks/app/api/proxy-pools/route-814b95c8fc310a6a.js +1 -0
  721. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-814b95c8fc310a6a.js +1 -0
  722. package/app/.next/static/chunks/app/api/settings/database/route-814b95c8fc310a6a.js +1 -0
  723. package/app/.next/static/chunks/app/api/settings/proxy-test/route-814b95c8fc310a6a.js +1 -0
  724. package/app/.next/static/chunks/app/api/settings/require-login/route-814b95c8fc310a6a.js +1 -0
  725. package/app/.next/static/chunks/app/api/settings/route-814b95c8fc310a6a.js +1 -0
  726. package/app/.next/static/chunks/app/api/shutdown/route-814b95c8fc310a6a.js +1 -0
  727. package/app/.next/static/chunks/app/api/startup-notices/route-814b95c8fc310a6a.js +1 -0
  728. package/app/.next/static/chunks/app/api/tags/route-814b95c8fc310a6a.js +1 -0
  729. package/app/.next/static/chunks/app/api/translator/console-logs/route-814b95c8fc310a6a.js +1 -0
  730. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-814b95c8fc310a6a.js +1 -0
  731. package/app/.next/static/chunks/app/api/translator/load/route-814b95c8fc310a6a.js +1 -0
  732. package/app/.next/static/chunks/app/api/translator/save/route-814b95c8fc310a6a.js +1 -0
  733. package/app/.next/static/chunks/app/api/translator/send/route-814b95c8fc310a6a.js +1 -0
  734. package/app/.next/static/chunks/app/api/translator/translate/route-814b95c8fc310a6a.js +1 -0
  735. package/app/.next/static/chunks/app/api/tunnel/disable/route-814b95c8fc310a6a.js +1 -0
  736. package/app/.next/static/chunks/app/api/tunnel/enable/route-814b95c8fc310a6a.js +1 -0
  737. package/app/.next/static/chunks/app/api/tunnel/status/route-814b95c8fc310a6a.js +1 -0
  738. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-814b95c8fc310a6a.js +1 -0
  739. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-814b95c8fc310a6a.js +1 -0
  740. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-814b95c8fc310a6a.js +1 -0
  741. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-814b95c8fc310a6a.js +1 -0
  742. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-814b95c8fc310a6a.js +1 -0
  743. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-814b95c8fc310a6a.js +1 -0
  744. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-814b95c8fc310a6a.js +1 -0
  745. package/app/.next/static/chunks/app/api/usage/api-keys/route-814b95c8fc310a6a.js +1 -0
  746. package/app/.next/static/chunks/app/api/usage/chart/route-814b95c8fc310a6a.js +1 -0
  747. package/app/.next/static/chunks/app/api/usage/history/route-814b95c8fc310a6a.js +1 -0
  748. package/app/.next/static/chunks/app/api/usage/logs/route-814b95c8fc310a6a.js +1 -0
  749. package/app/.next/static/chunks/app/api/usage/providers/route-814b95c8fc310a6a.js +1 -0
  750. package/app/.next/static/chunks/app/api/usage/request-details/route-814b95c8fc310a6a.js +1 -0
  751. package/app/.next/static/chunks/app/api/usage/request-logs/route-814b95c8fc310a6a.js +1 -0
  752. package/app/.next/static/chunks/app/api/usage/stats/route-814b95c8fc310a6a.js +1 -0
  753. package/app/.next/static/chunks/app/api/usage/stream/route-814b95c8fc310a6a.js +1 -0
  754. package/app/.next/static/chunks/app/api/users/[id]/route-814b95c8fc310a6a.js +1 -0
  755. package/app/.next/static/chunks/app/api/users/route-814b95c8fc310a6a.js +1 -0
  756. package/app/.next/static/chunks/app/api/v1/api/chat/route-814b95c8fc310a6a.js +1 -0
  757. package/app/.next/static/chunks/app/api/v1/audio/speech/route-814b95c8fc310a6a.js +1 -0
  758. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-814b95c8fc310a6a.js +1 -0
  759. package/app/.next/static/chunks/app/api/v1/audio/voices/route-814b95c8fc310a6a.js +1 -0
  760. package/app/.next/static/chunks/app/api/v1/chat/completions/route-814b95c8fc310a6a.js +1 -0
  761. package/app/.next/static/chunks/app/api/v1/embeddings/route-814b95c8fc310a6a.js +1 -0
  762. package/app/.next/static/chunks/app/api/v1/images/generations/route-814b95c8fc310a6a.js +1 -0
  763. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-814b95c8fc310a6a.js +1 -0
  764. package/app/.next/static/chunks/app/api/v1/messages/route-814b95c8fc310a6a.js +1 -0
  765. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-814b95c8fc310a6a.js +1 -0
  766. package/app/.next/static/chunks/app/api/v1/models/info/route-814b95c8fc310a6a.js +1 -0
  767. package/app/.next/static/chunks/app/api/v1/models/route-814b95c8fc310a6a.js +1 -0
  768. package/app/.next/static/chunks/app/api/v1/responses/compact/route-814b95c8fc310a6a.js +1 -0
  769. package/app/.next/static/chunks/app/api/v1/responses/route-814b95c8fc310a6a.js +1 -0
  770. package/app/.next/static/chunks/app/api/v1/route-814b95c8fc310a6a.js +1 -0
  771. package/app/.next/static/chunks/app/api/v1/search/route-814b95c8fc310a6a.js +1 -0
  772. package/app/.next/static/chunks/app/api/v1/web/fetch/route-814b95c8fc310a6a.js +1 -0
  773. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-814b95c8fc310a6a.js +1 -0
  774. package/app/.next/static/chunks/app/api/v1beta/models/route-814b95c8fc310a6a.js +1 -0
  775. package/app/.next/static/chunks/app/api/version/route-814b95c8fc310a6a.js +1 -0
  776. package/app/.next/static/chunks/app/api/version/shutdown/route-814b95c8fc310a6a.js +1 -0
  777. package/app/.next/static/chunks/app/api/version/update/route-814b95c8fc310a6a.js +1 -0
  778. package/app/.next/static/chunks/app/callback/{page-0b64ce6d90bfa697.js → page-97a750f0d51c3dbe.js} +1 -1
  779. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-9d24273d41fadd28.js +1 -0
  780. package/app/.next/static/chunks/app/landing/{page-370c3195c36d6e66.js → page-bf42a9c80c1e6776.js} +1 -1
  781. package/app/.next/static/chunks/app/layout-2f20e93bb64f203d.js +1 -0
  782. package/app/.next/static/chunks/app/login/page-ef8d8c379c2ef99b.js +1 -0
  783. package/app/.next/static/chunks/app/manifest.webmanifest/route-814b95c8fc310a6a.js +1 -0
  784. package/app/.next/static/chunks/app/page-814b95c8fc310a6a.js +1 -0
  785. package/app/.next/static/chunks/main-app-d5f2701c08554961.js +1 -0
  786. package/app/.next/static/chunks/{main-2237af167d2c1c35.js → main-b8d198db3858ff3e.js} +3 -3
  787. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-814b95c8fc310a6a.js +1 -0
  788. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-814b95c8fc310a6a.js +1 -0
  789. package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-8d51a00b6c966622.js +1 -0
  790. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-814b95c8fc310a6a.js +1 -0
  791. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-814b95c8fc310a6a.js +1 -0
  792. package/app/.next/static/chunks/{webpack-786de0e184ffd859.js → webpack-b9b0d264958323b9.js} +1 -1
  793. package/app/.next/static/css/402ee8646e1afa89.css +1 -0
  794. package/app/.next/static/css/fe3b2b4e527f4e99.css +1 -0
  795. package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  796. package/app/node_modules/sql.js/dist/sql-wasm.js +185 -0
  797. package/app/node_modules/sql.js/dist/sql-wasm.wasm +0 -0
  798. package/app/node_modules/sql.js/package.json +58 -0
  799. package/app/package.json +5 -1
  800. package/app/public/i18n/literals/ar.json +176 -173
  801. package/app/public/i18n/literals/bn.json +176 -173
  802. package/app/public/i18n/literals/cs.json +176 -173
  803. package/app/public/i18n/literals/da.json +176 -173
  804. package/app/public/i18n/literals/de.json +176 -173
  805. package/app/public/i18n/literals/el.json +176 -173
  806. package/app/public/i18n/literals/es.json +176 -173
  807. package/app/public/i18n/literals/fi.json +176 -173
  808. package/app/public/i18n/literals/fr.json +176 -173
  809. package/app/public/i18n/literals/he.json +176 -173
  810. package/app/public/i18n/literals/hi.json +176 -173
  811. package/app/public/i18n/literals/hu.json +176 -173
  812. package/app/public/i18n/literals/id.json +176 -173
  813. package/app/public/i18n/literals/it.json +176 -173
  814. package/app/public/i18n/literals/ja.json +176 -173
  815. package/app/public/i18n/literals/ko.json +176 -173
  816. package/app/public/i18n/literals/nl.json +176 -173
  817. package/app/public/i18n/literals/no.json +176 -173
  818. package/app/public/i18n/literals/pl.json +176 -173
  819. package/app/public/i18n/literals/pt-BR.json +176 -173
  820. package/app/public/i18n/literals/pt-PT.json +176 -173
  821. package/app/public/i18n/literals/ro.json +176 -173
  822. package/app/public/i18n/literals/ru.json +176 -173
  823. package/app/public/i18n/literals/sv.json +176 -173
  824. package/app/public/i18n/literals/th.json +176 -173
  825. package/app/public/i18n/literals/tl.json +176 -173
  826. package/app/public/i18n/literals/tr.json +176 -173
  827. package/app/public/i18n/literals/uk.json +176 -173
  828. package/app/public/i18n/literals/ur.json +176 -173
  829. package/app/public/i18n/literals/vi.json +176 -173
  830. package/app/public/i18n/literals/zh-CN.json +356 -359
  831. package/app/public/i18n/literals/zh-TW.json +184 -181
  832. package/app/public/providers/amp.png +0 -0
  833. package/app/public/providers/deepseek-tui.png +0 -0
  834. package/app/public/providers/jcode.png +0 -0
  835. package/app/public/providers/xiaomi-tokenplan.png +0 -0
  836. package/app/server.js +1 -1
  837. package/app/src/lib/db/migrate.js +56 -18
  838. package/app/src/mitm/config.js +16 -1
  839. package/app/src/mitm/handlers/antigravity.js +2 -1
  840. package/app/src/mitm/handlers/base.js +4 -1
  841. package/app/src/mitm/handlers/kiro.js +3 -1
  842. package/app/src/mitm/logger.js +11 -1
  843. package/app/src/mitm/server.js +18 -15
  844. package/hooks/postinstall.js +113 -22
  845. package/package.json +1 -1
  846. package/app/.next/server/app/api/cloud/auth/route.js +0 -1
  847. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +0 -1
  848. package/app/.next/server/app/api/cloud/credentials/update/route.js +0 -1
  849. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +0 -1
  850. package/app/.next/server/app/api/cloud/model/resolve/route.js +0 -1
  851. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +0 -1
  852. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +0 -1
  853. package/app/.next/server/app/api/cloud/models/alias/route.js +0 -1
  854. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +0 -1
  855. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +0 -1
  856. package/app/.next/server/chunks/1500.js +0 -1
  857. package/app/.next/server/chunks/2343.js +0 -1
  858. package/app/.next/server/chunks/3855.js +0 -1
  859. package/app/.next/server/chunks/4126.js +0 -1
  860. package/app/.next/server/chunks/4922.js +0 -9
  861. package/app/.next/server/chunks/5434.js +0 -1
  862. package/app/.next/server/chunks/5627.js +0 -17
  863. package/app/.next/server/chunks/702.js +0 -1
  864. package/app/.next/server/chunks/723.js +0 -44
  865. package/app/.next/server/chunks/8407.js +0 -3
  866. package/app/.next/server/chunks/9460.js +0 -1
  867. package/app/.next/static/chunks/1321-b764e2be7fc92cc1.js +0 -1
  868. package/app/.next/static/chunks/5095-ca2b12905f37ff4d.js +0 -1
  869. package/app/.next/static/chunks/5497-83030cc3d92a3519.js +0 -7
  870. package/app/.next/static/chunks/5769-77fa1ce7edb6f970.js +0 -3
  871. package/app/.next/static/chunks/5964-08d6048e026d4245.js +0 -44
  872. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/keys/page-c74a5ba01f1699c5.js +0 -1
  873. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1a36c238dc35c08e.js +0 -1
  874. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-f0bae00ac45dd4b0.js +0 -1
  875. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-d3de2fdaf4bf9b1e.js +0 -1
  876. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-73601a7b09338418.js +0 -59
  877. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-dcb9c64e0d95cee2.js +0 -1
  878. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-63735cb68f56f3b8.js +0 -1
  879. package/app/.next/static/chunks/app/(dashboard)/dashboard/network-analysis/page-9c41fc55ad37021e.js +0 -1
  880. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-5a350e79586a5c80.js +0 -1
  881. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-4c8ad9c53c665fe6.js +0 -1
  882. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-a2ab26878f90c869.js +0 -1
  883. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-67d99d453bfd8665.js +0 -4
  884. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-6dd35c79bb83388b.js +0 -1
  885. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-1172e1764d69e954.js +0 -1
  886. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-2e9ac7094c9d8bae.js +0 -1
  887. package/app/.next/static/chunks/app/(dashboard)/dashboard/user/page-86f6c9456e2e37bf.js +0 -4
  888. package/app/.next/static/chunks/app/_global-error/page-1172e1764d69e954.js +0 -1
  889. package/app/.next/static/chunks/app/_not-found/page-8fcd6ba05909a2de.js +0 -1
  890. package/app/.next/static/chunks/app/api/auth/login/route-1172e1764d69e954.js +0 -1
  891. package/app/.next/static/chunks/app/api/auth/logout/route-1172e1764d69e954.js +0 -1
  892. package/app/.next/static/chunks/app/api/auth/me/route-1172e1764d69e954.js +0 -1
  893. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-1172e1764d69e954.js +0 -1
  894. package/app/.next/static/chunks/app/api/auth/oidc/start/route-1172e1764d69e954.js +0 -1
  895. package/app/.next/static/chunks/app/api/auth/oidc/test/route-1172e1764d69e954.js +0 -1
  896. package/app/.next/static/chunks/app/api/auth/status/route-1172e1764d69e954.js +0 -1
  897. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-1172e1764d69e954.js +0 -1
  898. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1172e1764d69e954.js +0 -1
  899. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-1172e1764d69e954.js +0 -1
  900. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-1172e1764d69e954.js +0 -1
  901. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-1172e1764d69e954.js +0 -1
  902. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-1172e1764d69e954.js +0 -1
  903. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-1172e1764d69e954.js +0 -1
  904. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-1172e1764d69e954.js +0 -1
  905. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-1172e1764d69e954.js +0 -1
  906. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-1172e1764d69e954.js +0 -1
  907. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1172e1764d69e954.js +0 -1
  908. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1172e1764d69e954.js +0 -1
  909. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-1172e1764d69e954.js +0 -1
  910. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-1172e1764d69e954.js +0 -1
  911. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-1172e1764d69e954.js +0 -1
  912. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-1172e1764d69e954.js +0 -1
  913. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-1172e1764d69e954.js +0 -1
  914. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-1172e1764d69e954.js +0 -1
  915. package/app/.next/static/chunks/app/api/cloud/auth/route-1172e1764d69e954.js +0 -1
  916. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-1172e1764d69e954.js +0 -1
  917. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-1172e1764d69e954.js +0 -1
  918. package/app/.next/static/chunks/app/api/cloud/models/alias/route-1172e1764d69e954.js +0 -1
  919. package/app/.next/static/chunks/app/api/combos/[id]/route-1172e1764d69e954.js +0 -1
  920. package/app/.next/static/chunks/app/api/combos/route-1172e1764d69e954.js +0 -1
  921. package/app/.next/static/chunks/app/api/health/route-1172e1764d69e954.js +0 -1
  922. package/app/.next/static/chunks/app/api/init/route-1172e1764d69e954.js +0 -1
  923. package/app/.next/static/chunks/app/api/keys/[id]/route-1172e1764d69e954.js +0 -1
  924. package/app/.next/static/chunks/app/api/keys/route-1172e1764d69e954.js +0 -1
  925. package/app/.next/static/chunks/app/api/locale/route-1172e1764d69e954.js +0 -1
  926. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-1172e1764d69e954.js +0 -1
  927. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-1172e1764d69e954.js +0 -1
  928. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1172e1764d69e954.js +0 -1
  929. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1172e1764d69e954.js +0 -1
  930. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-1172e1764d69e954.js +0 -1
  931. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-1172e1764d69e954.js +0 -1
  932. package/app/.next/static/chunks/app/api/models/alias/route-1172e1764d69e954.js +0 -1
  933. package/app/.next/static/chunks/app/api/models/availability/route-1172e1764d69e954.js +0 -1
  934. package/app/.next/static/chunks/app/api/models/custom/route-1172e1764d69e954.js +0 -1
  935. package/app/.next/static/chunks/app/api/models/disabled/route-1172e1764d69e954.js +0 -1
  936. package/app/.next/static/chunks/app/api/models/route-1172e1764d69e954.js +0 -1
  937. package/app/.next/static/chunks/app/api/models/test/route-1172e1764d69e954.js +0 -1
  938. package/app/.next/static/chunks/app/api/network-analysis/route-1172e1764d69e954.js +0 -1
  939. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-1172e1764d69e954.js +0 -1
  940. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-1172e1764d69e954.js +0 -1
  941. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-1172e1764d69e954.js +0 -1
  942. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-1172e1764d69e954.js +0 -1
  943. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-1172e1764d69e954.js +0 -1
  944. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-1172e1764d69e954.js +0 -1
  945. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-1172e1764d69e954.js +0 -1
  946. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-1172e1764d69e954.js +0 -1
  947. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-1172e1764d69e954.js +0 -1
  948. package/app/.next/static/chunks/app/api/pricing/route-1172e1764d69e954.js +0 -1
  949. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-1172e1764d69e954.js +0 -1
  950. package/app/.next/static/chunks/app/api/provider-nodes/route-1172e1764d69e954.js +0 -1
  951. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-1172e1764d69e954.js +0 -1
  952. package/app/.next/static/chunks/app/api/providers/[id]/models/route-1172e1764d69e954.js +0 -1
  953. package/app/.next/static/chunks/app/api/providers/[id]/route-1172e1764d69e954.js +0 -1
  954. package/app/.next/static/chunks/app/api/providers/[id]/test/route-1172e1764d69e954.js +0 -1
  955. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-1172e1764d69e954.js +0 -1
  956. package/app/.next/static/chunks/app/api/providers/client/route-1172e1764d69e954.js +0 -1
  957. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-1172e1764d69e954.js +0 -1
  958. package/app/.next/static/chunks/app/api/providers/route-1172e1764d69e954.js +0 -1
  959. package/app/.next/static/chunks/app/api/providers/suggested-models/route-1172e1764d69e954.js +0 -1
  960. package/app/.next/static/chunks/app/api/providers/test-batch/route-1172e1764d69e954.js +0 -1
  961. package/app/.next/static/chunks/app/api/providers/validate/route-1172e1764d69e954.js +0 -1
  962. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-1172e1764d69e954.js +0 -1
  963. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-1172e1764d69e954.js +0 -1
  964. package/app/.next/static/chunks/app/api/proxy-pools/route-1172e1764d69e954.js +0 -1
  965. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-1172e1764d69e954.js +0 -1
  966. package/app/.next/static/chunks/app/api/settings/database/route-1172e1764d69e954.js +0 -1
  967. package/app/.next/static/chunks/app/api/settings/proxy-test/route-1172e1764d69e954.js +0 -1
  968. package/app/.next/static/chunks/app/api/settings/require-login/route-1172e1764d69e954.js +0 -1
  969. package/app/.next/static/chunks/app/api/settings/route-1172e1764d69e954.js +0 -1
  970. package/app/.next/static/chunks/app/api/shutdown/route-1172e1764d69e954.js +0 -1
  971. package/app/.next/static/chunks/app/api/tags/route-1172e1764d69e954.js +0 -1
  972. package/app/.next/static/chunks/app/api/translator/console-logs/route-1172e1764d69e954.js +0 -1
  973. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-1172e1764d69e954.js +0 -1
  974. package/app/.next/static/chunks/app/api/translator/load/route-1172e1764d69e954.js +0 -1
  975. package/app/.next/static/chunks/app/api/translator/save/route-1172e1764d69e954.js +0 -1
  976. package/app/.next/static/chunks/app/api/translator/send/route-1172e1764d69e954.js +0 -1
  977. package/app/.next/static/chunks/app/api/translator/translate/route-1172e1764d69e954.js +0 -1
  978. package/app/.next/static/chunks/app/api/tunnel/disable/route-1172e1764d69e954.js +0 -1
  979. package/app/.next/static/chunks/app/api/tunnel/enable/route-1172e1764d69e954.js +0 -1
  980. package/app/.next/static/chunks/app/api/tunnel/status/route-1172e1764d69e954.js +0 -1
  981. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-1172e1764d69e954.js +0 -1
  982. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-1172e1764d69e954.js +0 -1
  983. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-1172e1764d69e954.js +0 -1
  984. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-1172e1764d69e954.js +0 -1
  985. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-1172e1764d69e954.js +0 -1
  986. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-1172e1764d69e954.js +0 -1
  987. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-1172e1764d69e954.js +0 -1
  988. package/app/.next/static/chunks/app/api/usage/api-keys/route-1172e1764d69e954.js +0 -1
  989. package/app/.next/static/chunks/app/api/usage/chart/route-1172e1764d69e954.js +0 -1
  990. package/app/.next/static/chunks/app/api/usage/history/route-1172e1764d69e954.js +0 -1
  991. package/app/.next/static/chunks/app/api/usage/logs/route-1172e1764d69e954.js +0 -1
  992. package/app/.next/static/chunks/app/api/usage/providers/route-1172e1764d69e954.js +0 -1
  993. package/app/.next/static/chunks/app/api/usage/request-details/route-1172e1764d69e954.js +0 -1
  994. package/app/.next/static/chunks/app/api/usage/request-logs/route-1172e1764d69e954.js +0 -1
  995. package/app/.next/static/chunks/app/api/usage/stats/route-1172e1764d69e954.js +0 -1
  996. package/app/.next/static/chunks/app/api/usage/stream/route-1172e1764d69e954.js +0 -1
  997. package/app/.next/static/chunks/app/api/users/[id]/route-1172e1764d69e954.js +0 -1
  998. package/app/.next/static/chunks/app/api/users/route-1172e1764d69e954.js +0 -1
  999. package/app/.next/static/chunks/app/api/v1/api/chat/route-1172e1764d69e954.js +0 -1
  1000. package/app/.next/static/chunks/app/api/v1/audio/speech/route-1172e1764d69e954.js +0 -1
  1001. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-1172e1764d69e954.js +0 -1
  1002. package/app/.next/static/chunks/app/api/v1/audio/voices/route-1172e1764d69e954.js +0 -1
  1003. package/app/.next/static/chunks/app/api/v1/chat/completions/route-1172e1764d69e954.js +0 -1
  1004. package/app/.next/static/chunks/app/api/v1/embeddings/route-1172e1764d69e954.js +0 -1
  1005. package/app/.next/static/chunks/app/api/v1/images/generations/route-1172e1764d69e954.js +0 -1
  1006. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-1172e1764d69e954.js +0 -1
  1007. package/app/.next/static/chunks/app/api/v1/messages/route-1172e1764d69e954.js +0 -1
  1008. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-1172e1764d69e954.js +0 -1
  1009. package/app/.next/static/chunks/app/api/v1/models/info/route-1172e1764d69e954.js +0 -1
  1010. package/app/.next/static/chunks/app/api/v1/models/route-1172e1764d69e954.js +0 -1
  1011. package/app/.next/static/chunks/app/api/v1/responses/compact/route-1172e1764d69e954.js +0 -1
  1012. package/app/.next/static/chunks/app/api/v1/responses/route-1172e1764d69e954.js +0 -1
  1013. package/app/.next/static/chunks/app/api/v1/route-1172e1764d69e954.js +0 -1
  1014. package/app/.next/static/chunks/app/api/v1/search/route-1172e1764d69e954.js +0 -1
  1015. package/app/.next/static/chunks/app/api/v1/web/fetch/route-1172e1764d69e954.js +0 -1
  1016. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-1172e1764d69e954.js +0 -1
  1017. package/app/.next/static/chunks/app/api/v1beta/models/route-1172e1764d69e954.js +0 -1
  1018. package/app/.next/static/chunks/app/api/version/route-1172e1764d69e954.js +0 -1
  1019. package/app/.next/static/chunks/app/api/version/shutdown/route-1172e1764d69e954.js +0 -1
  1020. package/app/.next/static/chunks/app/api/version/update/route-1172e1764d69e954.js +0 -1
  1021. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-0b53c6deac19b9be.js +0 -1
  1022. package/app/.next/static/chunks/app/layout-55318fbfdf7dfacb.js +0 -1
  1023. package/app/.next/static/chunks/app/login/page-65d3f9612064353f.js +0 -1
  1024. package/app/.next/static/chunks/app/manifest.webmanifest/route-1172e1764d69e954.js +0 -1
  1025. package/app/.next/static/chunks/app/page-1172e1764d69e954.js +0 -1
  1026. package/app/.next/static/chunks/main-app-5fb630e627076bfd.js +0 -1
  1027. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-1172e1764d69e954.js +0 -1
  1028. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-1172e1764d69e954.js +0 -1
  1029. package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-8c0dda4490abacd4.js +0 -1
  1030. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-1172e1764d69e954.js +0 -1
  1031. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1172e1764d69e954.js +0 -1
  1032. package/app/.next/static/css/16878fc1d2cbb11a.css +0 -1
  1033. package/app/.next/static/css/2e1b7d528c228ec3.css +0 -1
  1034. package/app/.next/static/foKo1xDQER7YWTSg2B-qB/_buildManifest.js +0 -1
  1035. package/app/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  1036. package/app/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
  1037. package/app/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  1038. package/app/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  1039. package/app/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  1040. package/app/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  1041. package/app/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  1042. /package/app/.next/static/{foKo1xDQER7YWTSg2B-qB → Q5oB2dEL7XeWBhjwqT_vo}/_ssgManifest.js +0 -0
@@ -1,261 +1,264 @@
1
1
  {
2
- "Actions": "操作",
3
- "active": "作用中",
4
- "Active": "活躍",
2
+ "Cancel": "取消",
3
+ "Delete": "刪除",
4
+ "Edit": "編輯",
5
+ "Save": "保存",
6
+ "Close": "關閉",
5
7
  "Add": "添加",
6
- "Advanced": "進階",
7
- "All data stored on your machine": "所有數據存儲在您的機器上",
8
- "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → OpenrouterX → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請求 → DNS 重定向到 localhost:443 → MITM 代理攔截 → OpenrouterX → 响應到 Antigravity/Copilot",
9
- "API endpoint configuration": "API 端點配置",
8
+ "Remove": "移除",
9
+ "Settings": "設置",
10
+ "Profile": "個人資料",
11
+ "Dashboard": "儀表板",
12
+ "Logout": "登出",
13
+ "Login": "登錄",
14
+ "Providers": "提供者",
15
+ "Usage": "統計",
10
16
  "API Key": "API 金鑰",
17
+ "Connected": "已連接",
18
+ "Disconnected": "未連接",
19
+ "Active": "活躍",
20
+ "Inactive": "非活躍",
21
+ "Success": "成功",
22
+ "Failed": "失敗",
23
+ "Error": "錯誤",
24
+ "Warning": "警告",
25
+ "Info": "信息",
26
+ "Loading": "載入中",
27
+ "Search": "搜尋",
28
+ "Filter": "篩選",
29
+ "Sort": "排序",
30
+ "Export": "導出",
31
+ "Import": "導入",
32
+ "Refresh": "刷新",
33
+ "Back": "返回",
34
+ "Next": "下一個",
35
+ "Previous": "上一個",
36
+ "Submit": "提交",
37
+ "Confirm": "確認",
38
+ "Yes": "是",
39
+ "No": "否",
40
+ "OK": "確定",
11
41
  "Apply": "應用",
12
- "Are you sure you want to close the proxy server?": "您確定要關閉代理服務器嗎?",
13
- "Auto": "自動",
42
+ "Reset": "重置",
43
+ "Clear": "清除",
44
+ "Select": "選擇",
45
+ "Upload": "上傳",
46
+ "Download": "下載",
47
+ "Copy": "複製",
48
+ "Paste": "粘貼",
49
+ "Cut": "剪切",
50
+ "Undo": "撤銷",
51
+ "Redo": "重做",
52
+ "Name": "名稱",
53
+ "Description": "描述",
54
+ "Status": "狀態",
55
+ "Type": "類型",
56
+ "Date": "日期",
57
+ "Time": "時間",
58
+ "Created": "已建立",
59
+ "Updated": "更新於",
60
+ "Actions": "操作",
61
+ "Details": "詳細信息",
62
+ "View": "查看",
63
+ "New": "新建",
64
+ "Total": "總計",
65
+ "Count": "計數",
66
+ "Price": "價格",
67
+ "Cost": "成本",
68
+ "Free": "免費",
69
+ "Paid": "付費",
70
+ "Enable": "啟用",
71
+ "Disable": "禁用",
72
+ "Enabled": "已啟用",
73
+ "Disabled": "已停用",
74
+ "Online": "在線",
75
+ "Offline": "離線",
14
76
  "Available": "可用",
15
- "Back": "返回",
77
+ "Unavailable": "不可用",
78
+ "Required": "必需",
79
+ "Optional": "可選",
80
+ "Default": "默認",
81
+ "Custom": "自定義",
82
+ "Advanced": "進階",
16
83
  "Basic": "基本",
17
- "Batch Size": "批量大小",
18
- "Calls per account before switching": "切換前每個帳戶的調用次數",
19
- "Cancel": "取消",
20
- "Cert": "證書",
21
- "Clear": "清除",
84
+ "Help": "幫助",
85
+ "Support": "支持",
86
+ "Documentation": "文檔",
87
+ "Version": "版本",
88
+ "Language": "語言",
89
+ "Theme": "主題",
90
+ "Light": "淺色",
91
+ "Dark": "深色",
92
+ "Auto": "自動",
93
+ "Endpoint": "端點",
94
+ "Combos": "組合",
95
+ "Quota Tracker": "配額跟蹤",
96
+ "MITM": "MITM",
22
97
  "CLI Tools": "CLI 工具",
23
- "Close": "關閉",
98
+ "Console Log": "控制台日誌",
99
+ "System": "系統",
100
+ "Debug": "調試",
101
+ "Shutdown": "關機",
24
102
  "Close Proxy": "關閉代理",
103
+ "Are you sure you want to close the proxy server?": "您確定要關閉代理服務器嗎?",
104
+ "Server Disconnected": "服務器已斷開連接",
105
+ "The proxy server has been stopped.": "代理服務器已停止。",
106
+ "Reload Page": "重新加載頁面",
107
+ "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "服務在終端中運行。您可以關閉此網頁。關機將停止服務。",
108
+ "Manage your AI provider connections": "管理您的 AI 提供者連接",
109
+ "Model combos with fallback": "具有備用的模型組合",
110
+ "Monitor your API usage, token consumption, and request logs": "監控您的 API 使用、令牌消耗和請求日誌",
111
+ "Configure CLI tools": "配置 CLI 工具",
112
+ "API endpoint configuration": "API 端點配置",
113
+ "Manage your preferences": "管理您的首選項",
114
+ "Debug translation flow between formats": "調試格式之間的轉換流",
115
+ "Live server console output": "實時服務器控制台輸出",
116
+ "Create model combos with fallback support": "創建具有備用支持的模型組合",
117
+ "Local Mode": "本地模式",
118
+ "Running on your machine": "在您的機器上運行",
119
+ "Database Location": "數據庫位置",
120
+ "Download Backup": "下載備份",
121
+ "Import Backup": "導入備份",
122
+ "Database backup downloaded": "已下載數據庫備份",
123
+ "Database imported successfully": "已成功導入數據庫",
124
+ "Security": "安全性",
125
+ "Require login": "需要登錄",
126
+ "When ON, dashboard requires password. When OFF, access without login.": "打開時,儀表板需要密碼。關閉時,無需登錄即可訪問。",
127
+ "Current Password": "當前密碼",
128
+ "Enter current password": "輸入當前密碼",
129
+ "New Password": "新密碼",
130
+ "Enter new password": "輸入新密碼",
131
+ "Confirm New Password": "確認新密碼",
132
+ "Confirm new password": "確認新密碼",
133
+ "Update Password": "更新密碼",
134
+ "Set Password": "設置密碼",
135
+ "Password updated successfully": "已成功更新密碼",
136
+ "Passwords do not match": "密碼不匹配",
137
+ "Routing Strategy": "路由策略",
138
+ "Round Robin": "輪詢",
139
+ "Cycle through accounts to distribute load": "循環循環帳戶以分配負載",
140
+ "Sticky Limit": "粘性限制",
141
+ "Calls per account before switching": "切換前每個帳戶的調用次數",
142
+ "Network": "網絡",
143
+ "Outbound Proxy": "出站代理",
144
+ "Enable proxy for OAuth + provider outbound requests.": "為 OAuth + 提供者出站請求啟用代理。",
145
+ "Proxy URL": "代理 URL",
146
+ "Leave empty to inherit existing env proxy (if any).": "留空以繼承現有的環境代理(如果有)。",
147
+ "No Proxy": "無代理",
148
+ "Comma-separated hostnames/domains to bypass the proxy.": "逗號分隔的主機名/域以繞過代理。",
149
+ "Test proxy URL": "測試代理 URL",
150
+ "Proxy settings applied": "已應用代理設置",
151
+ "Proxy enabled": "已啟用代理",
152
+ "Proxy disabled": "已禁用代理",
153
+ "Proxy test OK": "代理測試成功",
154
+ "Proxy test failed": "代理測試失敗",
155
+ "Please enter a Proxy URL to test": "請輸入要測試的代理 URL",
156
+ "Observability": "可觀測性",
157
+ "Enable Observability": "啟用可觀測性",
158
+ "Turn request detail recording on/off globally": "全局打開/關閉請求詳細記錄",
159
+ "Max Records": "最大記錄數",
160
+ "Maximum request detail records to keep (older records are auto-deleted)": "要保留的最大請求詳細記錄數(舊記錄自動刪除)",
161
+ "Batch Size": "批量大小",
162
+ "Number of items to accumulate before writing to database (higher = better performance)": "寫入數據庫前要積累的項目數(更高 = 更好的性能)",
163
+ "Flush Interval (ms)": "刷新間隔 (ms)",
164
+ "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "刷新緩衝區之前的最大等待時間(防止低流量期間的數據丟失)",
165
+ "Max JSON Size (KB)": "最大 JSON 大小 (KB)",
166
+ "Maximum size for each JSON field (request/response) before truncation": "截斷前每個 JSON 字段(請求/響應)的最大大小",
167
+ "All data stored on your machine": "所有數據存儲在您的機器上",
168
+ "MITM Server": "MITM 服務器",
169
+ "Running": "運行中",
170
+ "Stopped": "已停止",
171
+ "Cert": "證書",
172
+ "Server": "服務器",
173
+ "Purpose:": "目的:",
174
+ "How it works:": "工作原理:",
175
+ "No API keys — create one in Keys page": "沒有 API 金鑰 — 在金鑰頁面中創建一個",
176
+ "Server started": "服務器已啟動",
177
+ "Failed to start server": "啟動服務器失敗",
178
+ "Server stopped — all DNS cleared": "服務器已停止 — 已清除所有 DNS",
179
+ "Failed to stop server": "停止服務器失敗",
180
+ "Sudo password is required": "需要 Sudo 密碼",
181
+ "Stop Server": "停止服務器",
182
+ "Start Server": "啟動服務器",
183
+ "Enable DNS per tool below to activate interception": "為下面的每個工具啟用 DNS 以激活攔截",
184
+ "Sudo Password Required": "需要 Sudo 密碼",
185
+ "Enter your sudo password to start/stop MITM server": "輸入您的 Sudo 密碼以啟動/停止 MITM 服務器",
186
+ "Sudo Password": "Sudo 密碼",
187
+ "active": "作用中",
188
+ "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → OpenrouterX → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請求 → DNS 重定向到 localhost:443 → MITM 代理攔截 → OpenrouterX → 响應到 Antigravity/Copilot",
25
189
  "Cloudflare tunnel": "Cloudflare 通道",
26
190
  "Collapse": "收起",
27
- "Combos": "組合",
28
- "Comma-separated hostnames/domains to bypass the proxy.": "逗號分隔的主機名/域以繞過代理。",
29
- "Configure CLI tools": "配置 CLI 工具",
30
191
  "Configured outbound proxy timed out": "設定的出站代理逾時",
31
- "Confirm": "確認",
32
- "Confirm new password": "確認新密碼",
33
- "Confirm New Password": "確認新密碼",
34
- "Connected": "已連接",
35
- "Console Log": "控制台日誌",
36
192
  "Console Logs": "主控台日誌",
37
- "Copy": "複製",
38
- "Cost": "成本",
39
- "Count": "計數",
40
- "Create model combos with fallback support": "創建具有備用支持的模型組合",
41
- "Created": "已建立",
42
193
  "Current Machine State": "目前機器狀態",
43
- "Current Password": "當前密碼",
44
- "Custom": "自定義",
45
- "Cut": "剪切",
46
- "Cycle through accounts to distribute load": "循環循環帳戶以分配負載",
47
- "Dark": "深色",
48
- "Dashboard": "儀表板",
49
- "Database backup downloaded": "已下載數據庫備份",
50
- "Database imported successfully": "已成功導入數據庫",
51
- "Database Location": "數據庫位置",
52
- "Date": "日期",
53
- "Debug": "調試",
54
- "Debug translation flow between formats": "調試格式之間的轉換流",
55
- "Default": "默認",
56
194
  "Default route": "預設路由",
57
- "Delete": "刪除",
58
- "Description": "描述",
59
- "Details": "詳細信息",
60
195
  "Diagnose local connectivity, proxy, DNS, and MITM network impact": "診斷本機連線、代理、DNS 和 MITM 對網路的影響",
61
- "Disable": "禁用",
62
- "Disabled": "已停用",
63
- "Disconnected": "未連接",
64
196
  "DNS errors": "DNS 錯誤",
65
- "Documentation": "文檔",
66
- "Download": "下載",
67
- "Download Backup": "下載備份",
68
197
  "EADDRNOTAVAIL means Node could not allocate a usable local outbound address at that moment. This normally points to Wi-Fi/DHCP/route churn or VPN/proxy path loss before an upstream request completed.": "EADDRNOTAVAIL 表示 Node 當時無法分配可用的本機出站位址。通常說明上游請求完成前發生了 Wi-Fi、DHCP、路由變化,或 VPN/代理路徑遺失。",
69
- "Edit": "編輯",
70
- "Enable": "啟用",
71
- "Enable DNS per tool below to activate interception": "為下面的每個工具啟用 DNS 以激活攔截",
72
- "Enable Observability": "啟用可觀測性",
73
- "Enable proxy for OAuth + provider outbound requests.": "為 OAuth + 提供者出站請求啟用代理。",
74
- "Enabled": "已啟用",
75
198
  "Enabled outside OpenrouterX": "在 OpenrouterX 外部啟用",
76
- "Endpoint": "端點",
77
- "Enter current password": "輸入當前密碼",
78
- "Enter new password": "輸入新密碼",
79
- "Enter your sudo password to start/stop MITM server": "輸入您的 Sudo 密碼以啟動/停止 MITM 服務器",
80
- "Error": "錯誤",
81
199
  "Existing TLS sockets were reset": "現有 TLS 連線被重置",
82
200
  "Expand": "展開",
83
- "Export": "導出",
84
201
  "External route instability": "外部路由不穩定",
85
- "Failed": "失敗",
86
- "Failed to start server": "啟動服務器失敗",
87
- "Failed to stop server": "停止服務器失敗",
88
- "Filter": "篩選",
89
202
  "Findings": "發現",
90
- "Flush Interval (ms)": "刷新間隔 (ms)",
91
- "Free": "免費",
92
203
  "Healthy": "健康",
93
- "Help": "幫助",
94
204
  "high": "高",
95
205
  "Hostname": "主機名稱",
96
- "How it works:": "工作原理:",
97
- "Import": "導入",
98
- "Import Backup": "導入備份",
99
- "Inactive": "非活躍",
100
206
  "info": "資訊",
101
- "Info": "信息",
102
207
  "Intercept CLI tool traffic and route through OpenrouterX": "攔截 CLI 工具流量並通過 OpenrouterX 路由",
103
- "Language": "語言",
104
- "Leave empty to inherit existing env proxy (if any).": "留空以繼承現有的環境代理(如果有)。",
105
- "Light": "淺色",
106
208
  "Live": "即時",
107
- "Live server console output": "實時服務器控制台輸出",
108
- "Loading": "載入中",
109
- "Local Mode": "本地模式",
110
209
  "Local route became unavailable": "本機路由變為不可用",
111
- "Login": "登錄",
112
- "Logout": "登出",
113
210
  "low": "低",
114
- "Manage your AI provider connections": "管理您的 AI 提供者連接",
115
- "Manage your preferences": "管理您的首選項",
116
- "Max JSON Size (KB)": "最大 JSON 大小 (KB)",
117
- "Max Records": "最大記錄數",
118
- "Maximum request detail records to keep (older records are auto-deleted)": "要保留的最大請求詳細記錄數(舊記錄自動刪除)",
119
- "Maximum size for each JSON field (request/response) before truncation": "截斷前每個 JSON 字段(請求/響應)的最大大小",
120
- "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "刷新緩衝區之前的最大等待時間(防止低流量期間的數據丟失)",
121
211
  "medium": "中",
122
- "MITM": "MITM",
123
212
  "MITM / OpenrouterX realtime output": "MITM / OpenrouterX 即時輸出",
124
213
  "MITM DNS tools": "MITM DNS 工具",
125
- "MITM Server": "MITM 服務器",
126
214
  "MITM server status and controls": "中間人伺服器狀態與啟動控制",
127
215
  "MITM tool interception status": "MITM 工具攔截狀態",
128
- "Model combos with fallback": "具有備用的模型組合",
129
216
  "Monitor MITM status, quota, and realtime logs in one place": "在一個頁面中關注 MITM 狀態、配額和即時日誌",
130
- "Monitor your API usage, token consumption, and request logs": "監控您的 API 使用、令牌消耗和請求日誌",
131
- "Name": "名稱",
132
- "Network": "網絡",
133
217
  "Network Analysis": "網路分析",
134
218
  "Network Error Timeline": "網路錯誤時間線",
135
219
  "Network path instability is affecting OpenrouterX": "網路路徑不穩定正在影響 OpenrouterX",
136
- "New": "新建",
137
- "New Password": "新密碼",
138
- "Next": "下一個",
139
- "No": "否",
140
- "No API keys — create one in Keys page": "沒有 API 金鑰 — 在金鑰頁面中創建一個",
141
220
  "No console logs yet.": "尚無主控台日誌。",
142
221
  "No macOS system proxy detected": "未偵測到 macOS 系統代理",
143
222
  "No network transport errors in the sampled logs.": "取樣日誌中沒有網路傳輸錯誤。",
144
- "No Proxy": "無代理",
145
223
  "No recent network transport errors in app logs": "應用程式日誌中沒有近期網路傳輸錯誤",
146
224
  "No transport errors in sampled logs": "取樣日誌中沒有傳輸錯誤",
147
225
  "none": "無",
148
226
  "None": "無",
149
- "Number of items to accumulate before writing to database (higher = better performance)": "寫入數據庫前要積累的項目數(更高 = 更好的性能)",
150
- "Observability": "可觀測性",
151
- "Offline": "離線",
152
- "OK": "確定",
153
- "Online": "在線",
154
227
  "OpenrouterX fell back after the configured proxy connection timed out. Because the app stores this as a targeted proxy allowlist, the failure affects selected upstream API calls rather than macOS global networking.": "設定的代理連線逾時後,OpenrouterX 已回退。由於應用程式將其儲存為定向代理允許清單,該故障影響的是選定的上游 API 呼叫,而不是 macOS 全域網路。",
155
- "Optional": "可選",
156
228
  "Outbound proxy": "出站代理",
157
- "Outbound Proxy": "出站代理",
158
229
  "Outbound scope": "出站範圍",
159
- "Paid": "付費",
160
- "Password updated successfully": "已成功更新密碼",
161
- "Passwords do not match": "密碼不匹配",
162
- "Paste": "粘貼",
163
230
  "Platform": "平台",
164
- "Please enter a Proxy URL to test": "請輸入要測試的代理 URL",
165
- "Previous": "上一個",
166
- "Price": "價格",
167
- "Profile": "個人資料",
168
231
  "Project Network Scope": "專案網路範圍",
169
232
  "Provider account quota overview": "提供商帳號配額概覽",
170
- "Providers": "提供者",
171
- "Proxy disabled": "已禁用代理",
172
- "Proxy enabled": "已啟用代理",
173
233
  "Proxy failures": "代理故障",
174
- "Proxy settings applied": "已應用代理設置",
175
- "Proxy test failed": "代理測試失敗",
176
- "Proxy test OK": "代理測試成功",
177
- "Proxy URL": "代理 URL",
178
- "Purpose:": "目的:",
179
234
  "Quota Management": "配額管理",
180
- "Quota Tracker": "配額跟蹤",
181
235
  "Raw DNS and proxy snapshot": "原始 DNS 和代理快照",
182
- "Redo": "重做",
183
- "Refresh": "刷新",
184
- "Reload Page": "重新加載頁面",
185
- "Remove": "移除",
186
236
  "Requests were reset while in flight. This can come from upstream, Wi-Fi churn, or an intermediate proxy.": "請求進行中被重置。這可能來自上游服務、Wi-Fi 波動或中間代理。",
187
- "Require login": "需要登錄",
188
- "Required": "必需",
189
- "Reset": "重置",
190
237
  "Risk level": "風險等級",
191
- "Round Robin": "輪詢",
192
238
  "Route loss": "路由遺失",
193
- "Routing Strategy": "路由策略",
194
- "Running": "運行中",
195
- "Running on your machine": "在您的機器上運行",
196
- "Save": "保存",
197
- "Search": "搜尋",
198
- "Security": "安全性",
199
- "Select": "選擇",
200
- "Server": "服務器",
201
- "Server Disconnected": "服務器已斷開連接",
202
- "Server started": "服務器已啟動",
203
- "Server stopped — all DNS cleared": "服務器已停止 — 已清除所有 DNS",
204
- "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "服務在終端中運行。您可以關閉此網頁。關機將停止服務。",
205
- "Set Password": "設置密碼",
206
- "Settings": "設置",
207
- "Shutdown": "關機",
208
239
  "sk_openrouterx (default)": "sk_openrouterx(默認)",
209
240
  "Socket resets": "連線重置",
210
- "Sort": "排序",
211
- "Start Server": "啟動服務器",
212
- "Status": "狀態",
213
- "Sticky Limit": "粘性限制",
214
- "Stop Server": "停止服務器",
215
- "Stopped": "已停止",
216
- "Submit": "提交",
217
241
  "success": "成功",
218
- "Success": "成功",
219
- "Sudo Password": "Sudo 密碼",
220
- "Sudo password is required": "需要 Sudo 密碼",
221
- "Sudo Password Required": "需要 Sudo 密碼",
222
- "Support": "支持",
223
- "System": "系統",
224
242
  "System proxy": "系統代理",
225
243
  "Tailscale": "Tailscale",
226
244
  "targeted": "定向",
227
245
  "Targeted": "定向",
228
- "Test proxy URL": "測試代理 URL",
229
246
  "The current app log window does not show route loss, DNS failures, proxy timeout, or socket reset patterns.": "目前應用程式日誌視窗中沒有出現路由遺失、DNS 故障、代理逾時或 socket 重置模式。",
230
247
  "The log pattern points to local route loss, transient TLS disconnects, or the configured upstream proxy timing out before API calls complete.": "日誌模式指向本機路由遺失、短暫 TLS 斷線,或設定的上游代理在 API 呼叫完成前逾時。",
231
- "The proxy server has been stopped.": "代理服務器已停止。",
232
248
  "The sampled OpenrouterX logs do not currently show connection resets, route loss, DNS failures, or proxy timeouts.": "目前取樣的 OpenrouterX 日誌沒有顯示連線重置、路由遺失、DNS 故障或代理逾時。",
233
- "Theme": "主題",
234
- "Time": "時間",
235
249
  "TLS disconnects and ECONNRESET are consistent with transient network drops, upstream resets, or proxy interruption while MITM passthrough traffic was active.": "TLS 斷線和 ECONNRESET 與暫時斷網、上游重置,或 MITM 透傳流量活動期間代理中斷的表現一致。",
236
- "Total": "總計",
237
- "Turn request detail recording on/off globally": "全局打開/關閉請求詳細記錄",
238
- "Type": "類型",
239
- "Unavailable": "不可用",
240
- "Undo": "撤銷",
241
250
  "Unknown": "未知",
242
- "Update Password": "更新密碼",
243
- "Updated": "更新於",
244
- "Upload": "上傳",
245
251
  "Upstream sockets were interrupted": "上游連線被中斷",
246
- "Usage": "統計",
247
252
  "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from OpenrouterX": "使用 Antigravity IDE 和 GitHub Copilot → 與 OpenrouterX 中的任何提供者/模型一起",
248
- "Version": "版本",
249
- "View": "查看",
250
253
  "warning": "警告",
251
- "Warning": "警告",
252
- "When ON, dashboard requires password. When OFF, access without login.": "打開時,儀表板需要密碼。關閉時,無需登錄即可訪問。",
253
254
  "Wi-Fi status": "Wi-Fi 狀態",
254
- "Yes": "是",
255
255
  "关注UI": "關注UI",
256
256
  "Open New Antigravity": "新開 Antigravity",
257
257
  "Open a new Antigravity window with MITM enabled": "新開一個啟用 MITM 的 Antigravity 視窗",
258
258
  "Opened new Antigravity": "已新開 Antigravity",
259
259
  "Open New": "新開",
260
- "Focus UI": "關注UI"
260
+ "Focus UI": "關注UI",
261
+ "Click to add, click again to remove. Changes are saved automatically.": "點擊新增,再次點擊移除。變更將自動儲存。",
262
+ "⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.": "⚠️ 風險提示:此提供商使用的訂閱/OAuth 工作階段未獲官方授權用於代理/路由器使用。帳戶可能被限制或封禁。使用風險自負。",
263
+ "⚠️ MITM intercepts HTTPS traffic of IDE tools (Antigravity, GitHub Copilot, Kiro) via local CA to redirect requests to your providers. May violate ToS → account ban. Use at your own risk.": "⚠️ MITM 透過本地 CA 攔截 IDE 工具(Antigravity、GitHub Copilot、Kiro)的 HTTPS 流量,將請求重新導向到您的提供商。可能違反 ToS → 帳戶封禁風險。使用風險自負。"
261
264
  }
Binary file
Binary file
package/app/server.js CHANGED
@@ -9,7 +9,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
9
9
  const hostname = process.env.HOSTNAME || '0.0.0.0'
10
10
 
11
11
  let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
12
- const nextConfig = {"env":{},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/mac/Documents/9router/","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":7,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","serverExternalPackages":["better-sqlite3"],"turbopack":{"root":"/Users/mac/Documents/9router/"},"distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}}
12
+ const nextConfig = {"env":{},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/bytedance/Documents/Projects/9router","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":17,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","serverExternalPackages":["better-sqlite3","sql.js","node:sqlite","bun:sqlite"],"turbopack":{"root":"/Users/bytedance/Documents/Projects/9router"},"outputFileTracingExcludes":{"*":["./gitbook/**/*"]},"outputFileTracingIncludes":{"*":["./node_modules/sql.js/dist/sql-wasm.wasm"]},"distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}}
13
13
 
14
14
  process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
15
15
 
@@ -14,6 +14,30 @@ const MIGRATED_MARKER = path.join(DB_DIR, ".migrated-from-json");
14
14
  // Track per-adapter so reusing same adapter skips re-run, but new adapter (after reset) re-runs.
15
15
  const _migratedAdapters = new WeakSet();
16
16
 
17
+ // Thrown when row-count assertion fails. Outer transaction rolls back,
18
+ // legacy db.json kept intact, marker not written → next boot retries.
19
+ export class MigrationAborted extends Error {
20
+ constructor(message, droppedRows) {
21
+ super(message);
22
+ this.name = "MigrationAborted";
23
+ this.droppedRows = droppedRows;
24
+ }
25
+ }
26
+
27
+ // Insert rows one-by-one, collect failures, then assert COUNT(*) matches input length.
28
+ function importWithAssertion(adapter, tableName, rows, insertFn, rowMeta) {
29
+ const dropped = [];
30
+ for (const row of rows) {
31
+ try { insertFn(row); }
32
+ catch (err) { dropped.push({ ...rowMeta(row), reason: err.message }); }
33
+ }
34
+ const inserted = adapter.get(`SELECT COUNT(*) as c FROM ${tableName}`)?.c ?? 0;
35
+ if (inserted !== rows.length) {
36
+ console.warn(`[DB][migrate] ${tableName} row-count mismatch: expected ${rows.length}, got ${inserted}. Dropped:`, dropped);
37
+ throw new MigrationAborted(`${tableName} row-count mismatch: expected ${rows.length}, got ${inserted}`, dropped);
38
+ }
39
+ }
40
+
17
41
  function readJsonSafe(file) {
18
42
  if (!fs.existsSync(file)) return null;
19
43
  try { return JSON.parse(fs.readFileSync(file, "utf-8")); } catch { return null; }
@@ -91,39 +115,45 @@ function importLegacyMain(adapter, data) {
91
115
  if (data.settings) {
92
116
  adapter.run(`INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data`, [stringifyJson(data.settings)]);
93
117
  }
94
- for (const c of data.providerConnections || []) {
118
+
119
+ importWithAssertion(adapter, "providerConnections", data.providerConnections || [], (c) => {
95
120
  const { id, provider, authType, name, email, priority, isActive, createdAt, updatedAt, ...rest } = c;
96
121
  adapter.run(
97
122
  `INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
98
123
  [id, provider, authType || "oauth", name || null, email || null, priority || null, isActive === false ? 0 : 1, stringifyJson(rest), createdAt || new Date().toISOString(), updatedAt || new Date().toISOString()]
99
124
  );
100
- }
101
- for (const n of data.providerNodes || []) {
125
+ }, (c) => ({ id: c.id ?? null, provider: c.provider ?? null, name: c.name ?? null }));
126
+
127
+ importWithAssertion(adapter, "providerNodes", data.providerNodes || [], (n) => {
102
128
  const { id, type, name, createdAt, updatedAt, ...rest } = n;
103
129
  adapter.run(
104
130
  `INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)`,
105
131
  [id, type || null, name || null, stringifyJson(rest), createdAt || new Date().toISOString(), updatedAt || new Date().toISOString()]
106
132
  );
107
- }
108
- for (const p of data.proxyPools || []) {
133
+ }, (n) => ({ id: n.id ?? null, type: n.type ?? null, name: n.name ?? null }));
134
+
135
+ importWithAssertion(adapter, "proxyPools", data.proxyPools || [], (p) => {
109
136
  const { id, isActive, testStatus, createdAt, updatedAt, ...rest } = p;
110
137
  adapter.run(
111
138
  `INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)`,
112
139
  [id, isActive === false ? 0 : 1, testStatus || "unknown", stringifyJson(rest), createdAt || new Date().toISOString(), updatedAt || new Date().toISOString()]
113
140
  );
114
- }
115
- for (const k of data.apiKeys || []) {
141
+ }, (p) => ({ id: p.id ?? null }));
142
+
143
+ importWithAssertion(adapter, "apiKeys", data.apiKeys || [], (k) => {
116
144
  adapter.run(
117
145
  `INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)`,
118
146
  [k.id, k.key, k.name || null, k.machineId || null, k.isActive === false ? 0 : 1, k.createdAt || new Date().toISOString()]
119
147
  );
120
- }
121
- for (const c of data.combos || []) {
148
+ }, (k) => ({ id: k.id ?? null, name: k.name ?? null }));
149
+
150
+ importWithAssertion(adapter, "combos", data.combos || [], (c) => {
122
151
  adapter.run(
123
152
  `INSERT OR REPLACE INTO combos(id, name, kind, models, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)`,
124
153
  [c.id, c.name, c.kind || null, stringifyJson(c.models || []), c.createdAt || new Date().toISOString(), c.updatedAt || new Date().toISOString()]
125
154
  );
126
- }
155
+ }, (c) => ({ id: c.id ?? null, name: c.name ?? null }));
156
+
127
157
  for (const [alias, model] of Object.entries(data.modelAliases || {})) {
128
158
  adapter.run(`INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)`, [alias, stringifyJson(model)]);
129
159
  }
@@ -210,14 +240,22 @@ export async function runMigrationOnce(adapter) {
210
240
  const backupDir = makeBackupDir("migrate-from-json");
211
241
  for (const f of Object.values(LEGACY_FILES)) backupFile(f, backupDir);
212
242
 
213
- adapter.transaction(() => {
214
- importLegacyMain(adapter, legacyMain);
215
- importLegacyUsage(adapter, legacyUsage);
216
- importLegacyDisabled(adapter, legacyDisabled);
217
- importLegacyDetails(adapter, legacyDetails);
218
- setMetaSync(adapter, "appVersion", getAppVersion());
219
- setMetaSync(adapter, "migratedAt", new Date().toISOString());
220
- });
243
+ try {
244
+ adapter.transaction(() => {
245
+ importLegacyMain(adapter, legacyMain);
246
+ importLegacyUsage(adapter, legacyUsage);
247
+ importLegacyDisabled(adapter, legacyDisabled);
248
+ importLegacyDetails(adapter, legacyDetails);
249
+ setMetaSync(adapter, "appVersion", getAppVersion());
250
+ setMetaSync(adapter, "migratedAt", new Date().toISOString());
251
+ });
252
+ } catch (err) {
253
+ if (err instanceof MigrationAborted) {
254
+ console.error(`[DB][migrate] aborted: ${err.message} | legacy JSON kept | backup: ${backupDir}`);
255
+ return;
256
+ }
257
+ throw err;
258
+ }
221
259
 
222
260
  try { fs.writeFileSync(MIGRATED_MARKER, new Date().toISOString()); } catch {}
223
261
  pruneOldBackups();