@yina-npm/openrouterx 0.4.22 → 0.4.24

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 (596) hide show
  1. package/README.md +2 -0
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +3 -1
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/routes-manifest.json +12 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
  7. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  11. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  13. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  17. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  19. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +12 -12
  21. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  23. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  29. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  31. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  33. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  35. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  37. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  47. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  49. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/user/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/_global-error/page.js +2 -2
  53. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/_global-error.html +1 -1
  55. package/app/.next/server/app/_global-error.rsc +1 -1
  56. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  57. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  58. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  59. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  60. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  61. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  62. package/app/.next/server/app/_not-found/page.js +2 -2
  63. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/_not-found.html +1 -1
  65. package/app/.next/server/app/_not-found.rsc +4 -4
  66. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  67. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  68. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  69. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  70. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  71. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  72. package/app/.next/server/app/api/auth/login/route.js +1 -1
  73. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  74. package/app/.next/server/app/api/auth/me/route.js +1 -1
  75. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  76. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  77. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js +1 -0
  78. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js.nft.json +1 -0
  79. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route_client-reference-manifest.js +1 -0
  80. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js +1 -0
  81. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js.nft.json +1 -0
  82. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route_client-reference-manifest.js +1 -0
  83. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  84. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -1
  85. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  86. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  87. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  88. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  89. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  90. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  91. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  92. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  93. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  94. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  95. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  96. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  97. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  98. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  99. package/app/.next/server/app/api/combos/route.js +1 -1
  100. package/app/.next/server/app/api/health/route.js +1 -1
  101. package/app/.next/server/app/api/init/route.js +1 -1
  102. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  103. package/app/.next/server/app/api/keys/route.js +1 -1
  104. package/app/.next/server/app/api/locale/route.js +1 -1
  105. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  106. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  107. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  108. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  109. package/app/.next/server/app/api/models/alias/route.js +1 -1
  110. package/app/.next/server/app/api/models/availability/route.js +1 -1
  111. package/app/.next/server/app/api/models/custom/route.js +1 -1
  112. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  113. package/app/.next/server/app/api/models/route.js +1 -1
  114. package/app/.next/server/app/api/models/test/route.js +1 -1
  115. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  117. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  119. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  120. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  121. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  122. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  123. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  124. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  125. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  126. package/app/.next/server/app/api/pricing/route.js +1 -1
  127. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  128. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  129. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  131. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  132. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  133. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  134. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  136. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  138. package/app/.next/server/app/api/providers/client/route.js +1 -1
  139. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  141. package/app/.next/server/app/api/providers/route.js +1 -1
  142. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  144. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  145. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  147. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  149. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  150. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  152. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  153. package/app/.next/server/app/api/settings/database/route.js +1 -1
  154. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  155. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  157. package/app/.next/server/app/api/settings/route.js +1 -1
  158. package/app/.next/server/app/api/shutdown/route.js +1 -1
  159. package/app/.next/server/app/api/tags/route.js +1 -1
  160. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  161. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  162. package/app/.next/server/app/api/translator/load/route.js +1 -1
  163. package/app/.next/server/app/api/translator/save/route.js +1 -1
  164. package/app/.next/server/app/api/translator/send/route.js +1 -1
  165. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  166. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  167. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  169. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  170. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  171. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  172. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  173. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  174. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +1 -1
  175. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
  176. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +1 -1
  177. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  178. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  180. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  181. package/app/.next/server/app/api/usage/history/route.js +1 -1
  182. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  183. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  184. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  185. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  186. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  187. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  188. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  189. package/app/.next/server/app/api/users/route.js +1 -1
  190. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  191. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  193. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  195. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  196. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  197. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  198. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  199. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  200. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  202. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  204. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  205. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  207. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  208. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  209. package/app/.next/server/app/api/v1/models/route.js +1 -1
  210. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  212. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  214. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/v1/route.js +1 -1
  216. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/v1/search/route.js +1 -1
  218. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  220. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  221. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  222. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  224. package/app/.next/server/app/api/version/route.js +1 -1
  225. package/app/.next/server/app/api/version/update/route.js +1 -1
  226. package/app/.next/server/app/callback/page.js +2 -2
  227. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/callback.html +1 -1
  229. package/app/.next/server/app/callback.rsc +4 -4
  230. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  231. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  232. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  233. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  234. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  235. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  236. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  237. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  239. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  240. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  241. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  243. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  244. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  245. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  246. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  247. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  248. package/app/.next/server/app/favicon.ico/route.js +1 -1
  249. package/app/.next/server/app/index.html +1 -1
  250. package/app/.next/server/app/index.rsc +4 -4
  251. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  252. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  253. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  254. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  255. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  256. package/app/.next/server/app/landing/page.js +2 -2
  257. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/landing.html +1 -1
  259. package/app/.next/server/app/landing.rsc +5 -5
  260. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  261. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  262. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  263. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  264. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  265. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  266. package/app/.next/server/app/login/page.js +2 -2
  267. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  268. package/app/.next/server/app/login.html +1 -1
  269. package/app/.next/server/app/login.rsc +5 -5
  270. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  271. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  272. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  273. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  274. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  275. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  276. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  277. package/app/.next/server/app/page.js +2 -2
  278. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  279. package/app/.next/server/app-paths-manifest.json +3 -1
  280. package/app/.next/server/chunks/1679.js +1 -0
  281. package/app/.next/server/chunks/2506.js +2 -2
  282. package/app/.next/server/chunks/2574.js +1 -0
  283. package/app/.next/server/chunks/3110.js +14 -0
  284. package/app/.next/server/chunks/3605.js +1 -0
  285. package/app/.next/server/chunks/3855.js +1 -1
  286. package/app/.next/server/chunks/3913.js +1 -1
  287. package/app/.next/server/chunks/4122.js +1 -1
  288. package/app/.next/server/chunks/4664.js +1 -1
  289. package/app/.next/server/chunks/4989.js +2 -2
  290. package/app/.next/server/chunks/5627.js +6 -4
  291. package/app/.next/server/chunks/5681.js +1 -1
  292. package/app/.next/server/chunks/6108.js +1 -1
  293. package/app/.next/server/chunks/6182.js +5 -4
  294. package/app/.next/server/chunks/6774.js +1 -1
  295. package/app/.next/server/chunks/7341.js +1 -1
  296. package/app/.next/server/chunks/7595.js +1 -1
  297. package/app/.next/server/chunks/7937.js +7 -16
  298. package/app/.next/server/chunks/8590.js +1 -1
  299. package/app/.next/server/chunks/8760.js +1 -1
  300. package/app/.next/server/chunks/8895.js +1 -1
  301. package/app/.next/server/chunks/9489.js +1 -1
  302. package/app/.next/server/chunks/9547.js +4 -14
  303. package/app/.next/server/chunks/9609.js +1 -1
  304. package/app/.next/server/chunks/9718.js +1 -1
  305. package/app/.next/server/functions-config-manifest.json +1 -0
  306. package/app/.next/server/middleware-build-manifest.js +1 -1
  307. package/app/.next/server/middleware.js +3 -3
  308. package/app/.next/server/pages/404.html +1 -1
  309. package/app/.next/server/pages/500.html +1 -1
  310. package/app/.next/static/SQn85l_D0P4BshNJQkGiZ/_buildManifest.js +1 -0
  311. package/app/.next/static/chunks/1321-e48fd14f5bef6d7a.js +1 -0
  312. package/app/.next/static/chunks/2336-36a1f30358e691c6.js +28 -0
  313. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-adc5d5e8da3a0761.js +1 -0
  314. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-eb5193b550d3e8de.js → page-c77fedcd9ba7bcac.js} +14 -14
  315. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-ceb9bffbc34711bc.js +1 -0
  316. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-6ec61ce021cdb9a6.js +1 -0
  317. package/app/.next/static/chunks/app/_global-error/page-6ec61ce021cdb9a6.js +1 -0
  318. package/app/.next/static/chunks/app/api/auth/login/route-6ec61ce021cdb9a6.js +1 -0
  319. package/app/.next/static/chunks/app/api/auth/logout/route-6ec61ce021cdb9a6.js +1 -0
  320. package/app/.next/static/chunks/app/api/auth/me/route-6ec61ce021cdb9a6.js +1 -0
  321. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-6ec61ce021cdb9a6.js +1 -0
  322. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-6ec61ce021cdb9a6.js +1 -0
  323. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-6ec61ce021cdb9a6.js +1 -0
  324. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-6ec61ce021cdb9a6.js +1 -0
  325. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-6ec61ce021cdb9a6.js +1 -0
  326. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-6ec61ce021cdb9a6.js +1 -0
  327. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-6ec61ce021cdb9a6.js +1 -0
  328. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-6ec61ce021cdb9a6.js +1 -0
  329. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-6ec61ce021cdb9a6.js +1 -0
  330. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-6ec61ce021cdb9a6.js +1 -0
  331. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-6ec61ce021cdb9a6.js +1 -0
  332. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-6ec61ce021cdb9a6.js +1 -0
  333. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-6ec61ce021cdb9a6.js +1 -0
  334. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-6ec61ce021cdb9a6.js +1 -0
  335. package/app/.next/static/chunks/app/api/cloud/auth/route-6ec61ce021cdb9a6.js +1 -0
  336. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-6ec61ce021cdb9a6.js +1 -0
  337. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-6ec61ce021cdb9a6.js +1 -0
  338. package/app/.next/static/chunks/app/api/cloud/models/alias/route-6ec61ce021cdb9a6.js +1 -0
  339. package/app/.next/static/chunks/app/api/combos/[id]/route-6ec61ce021cdb9a6.js +1 -0
  340. package/app/.next/static/chunks/app/api/combos/route-6ec61ce021cdb9a6.js +1 -0
  341. package/app/.next/static/chunks/app/api/health/route-6ec61ce021cdb9a6.js +1 -0
  342. package/app/.next/static/chunks/app/api/init/route-6ec61ce021cdb9a6.js +1 -0
  343. package/app/.next/static/chunks/app/api/keys/[id]/route-6ec61ce021cdb9a6.js +1 -0
  344. package/app/.next/static/chunks/app/api/keys/route-6ec61ce021cdb9a6.js +1 -0
  345. package/app/.next/static/chunks/app/api/locale/route-6ec61ce021cdb9a6.js +1 -0
  346. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-6ec61ce021cdb9a6.js +1 -0
  347. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-6ec61ce021cdb9a6.js +1 -0
  348. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-6ec61ce021cdb9a6.js +1 -0
  349. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-6ec61ce021cdb9a6.js +1 -0
  350. package/app/.next/static/chunks/app/api/models/alias/route-6ec61ce021cdb9a6.js +1 -0
  351. package/app/.next/static/chunks/app/api/models/availability/route-6ec61ce021cdb9a6.js +1 -0
  352. package/app/.next/static/chunks/app/api/models/custom/route-6ec61ce021cdb9a6.js +1 -0
  353. package/app/.next/static/chunks/app/api/models/disabled/route-6ec61ce021cdb9a6.js +1 -0
  354. package/app/.next/static/chunks/app/api/models/route-6ec61ce021cdb9a6.js +1 -0
  355. package/app/.next/static/chunks/app/api/models/test/route-6ec61ce021cdb9a6.js +1 -0
  356. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-6ec61ce021cdb9a6.js +1 -0
  357. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-6ec61ce021cdb9a6.js +1 -0
  358. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-6ec61ce021cdb9a6.js +1 -0
  359. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-6ec61ce021cdb9a6.js +1 -0
  360. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-6ec61ce021cdb9a6.js +1 -0
  361. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-6ec61ce021cdb9a6.js +1 -0
  362. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-6ec61ce021cdb9a6.js +1 -0
  363. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-6ec61ce021cdb9a6.js +1 -0
  364. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-6ec61ce021cdb9a6.js +1 -0
  365. package/app/.next/static/chunks/app/api/pricing/route-6ec61ce021cdb9a6.js +1 -0
  366. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-6ec61ce021cdb9a6.js +1 -0
  367. package/app/.next/static/chunks/app/api/provider-nodes/route-6ec61ce021cdb9a6.js +1 -0
  368. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-6ec61ce021cdb9a6.js +1 -0
  369. package/app/.next/static/chunks/app/api/providers/[id]/models/route-6ec61ce021cdb9a6.js +1 -0
  370. package/app/.next/static/chunks/app/api/providers/[id]/route-6ec61ce021cdb9a6.js +1 -0
  371. package/app/.next/static/chunks/app/api/providers/[id]/test/route-6ec61ce021cdb9a6.js +1 -0
  372. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-6ec61ce021cdb9a6.js +1 -0
  373. package/app/.next/static/chunks/app/api/providers/client/route-6ec61ce021cdb9a6.js +1 -0
  374. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-6ec61ce021cdb9a6.js +1 -0
  375. package/app/.next/static/chunks/app/api/providers/route-6ec61ce021cdb9a6.js +1 -0
  376. package/app/.next/static/chunks/app/api/providers/suggested-models/route-6ec61ce021cdb9a6.js +1 -0
  377. package/app/.next/static/chunks/app/api/providers/test-batch/route-6ec61ce021cdb9a6.js +1 -0
  378. package/app/.next/static/chunks/app/api/providers/validate/route-6ec61ce021cdb9a6.js +1 -0
  379. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-6ec61ce021cdb9a6.js +1 -0
  380. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-6ec61ce021cdb9a6.js +1 -0
  381. package/app/.next/static/chunks/app/api/proxy-pools/route-6ec61ce021cdb9a6.js +1 -0
  382. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-6ec61ce021cdb9a6.js +1 -0
  383. package/app/.next/static/chunks/app/api/settings/database/route-6ec61ce021cdb9a6.js +1 -0
  384. package/app/.next/static/chunks/app/api/settings/proxy-test/route-6ec61ce021cdb9a6.js +1 -0
  385. package/app/.next/static/chunks/app/api/settings/require-login/route-6ec61ce021cdb9a6.js +1 -0
  386. package/app/.next/static/chunks/app/api/settings/route-6ec61ce021cdb9a6.js +1 -0
  387. package/app/.next/static/chunks/app/api/shutdown/route-6ec61ce021cdb9a6.js +1 -0
  388. package/app/.next/static/chunks/app/api/tags/route-6ec61ce021cdb9a6.js +1 -0
  389. package/app/.next/static/chunks/app/api/translator/console-logs/route-6ec61ce021cdb9a6.js +1 -0
  390. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-6ec61ce021cdb9a6.js +1 -0
  391. package/app/.next/static/chunks/app/api/translator/load/route-6ec61ce021cdb9a6.js +1 -0
  392. package/app/.next/static/chunks/app/api/translator/save/route-6ec61ce021cdb9a6.js +1 -0
  393. package/app/.next/static/chunks/app/api/translator/send/route-6ec61ce021cdb9a6.js +1 -0
  394. package/app/.next/static/chunks/app/api/translator/translate/route-6ec61ce021cdb9a6.js +1 -0
  395. package/app/.next/static/chunks/app/api/tunnel/disable/route-6ec61ce021cdb9a6.js +1 -0
  396. package/app/.next/static/chunks/app/api/tunnel/enable/route-6ec61ce021cdb9a6.js +1 -0
  397. package/app/.next/static/chunks/app/api/tunnel/status/route-6ec61ce021cdb9a6.js +1 -0
  398. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-6ec61ce021cdb9a6.js +1 -0
  399. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-6ec61ce021cdb9a6.js +1 -0
  400. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-6ec61ce021cdb9a6.js +1 -0
  401. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-6ec61ce021cdb9a6.js +1 -0
  402. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-6ec61ce021cdb9a6.js +1 -0
  403. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-6ec61ce021cdb9a6.js +1 -0
  404. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-6ec61ce021cdb9a6.js +1 -0
  405. package/app/.next/static/chunks/app/api/usage/api-keys/route-6ec61ce021cdb9a6.js +1 -0
  406. package/app/.next/static/chunks/app/api/usage/chart/route-6ec61ce021cdb9a6.js +1 -0
  407. package/app/.next/static/chunks/app/api/usage/history/route-6ec61ce021cdb9a6.js +1 -0
  408. package/app/.next/static/chunks/app/api/usage/logs/route-6ec61ce021cdb9a6.js +1 -0
  409. package/app/.next/static/chunks/app/api/usage/providers/route-6ec61ce021cdb9a6.js +1 -0
  410. package/app/.next/static/chunks/app/api/usage/request-details/route-6ec61ce021cdb9a6.js +1 -0
  411. package/app/.next/static/chunks/app/api/usage/request-logs/route-6ec61ce021cdb9a6.js +1 -0
  412. package/app/.next/static/chunks/app/api/usage/stats/route-6ec61ce021cdb9a6.js +1 -0
  413. package/app/.next/static/chunks/app/api/usage/stream/route-6ec61ce021cdb9a6.js +1 -0
  414. package/app/.next/static/chunks/app/api/users/[id]/route-6ec61ce021cdb9a6.js +1 -0
  415. package/app/.next/static/chunks/app/api/users/route-6ec61ce021cdb9a6.js +1 -0
  416. package/app/.next/static/chunks/app/api/v1/api/chat/route-6ec61ce021cdb9a6.js +1 -0
  417. package/app/.next/static/chunks/app/api/v1/audio/speech/route-6ec61ce021cdb9a6.js +1 -0
  418. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-6ec61ce021cdb9a6.js +1 -0
  419. package/app/.next/static/chunks/app/api/v1/audio/voices/route-6ec61ce021cdb9a6.js +1 -0
  420. package/app/.next/static/chunks/app/api/v1/chat/completions/route-6ec61ce021cdb9a6.js +1 -0
  421. package/app/.next/static/chunks/app/api/v1/embeddings/route-6ec61ce021cdb9a6.js +1 -0
  422. package/app/.next/static/chunks/app/api/v1/images/generations/route-6ec61ce021cdb9a6.js +1 -0
  423. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-6ec61ce021cdb9a6.js +1 -0
  424. package/app/.next/static/chunks/app/api/v1/messages/route-6ec61ce021cdb9a6.js +1 -0
  425. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-6ec61ce021cdb9a6.js +1 -0
  426. package/app/.next/static/chunks/app/api/v1/models/info/route-6ec61ce021cdb9a6.js +1 -0
  427. package/app/.next/static/chunks/app/api/v1/models/route-6ec61ce021cdb9a6.js +1 -0
  428. package/app/.next/static/chunks/app/api/v1/responses/compact/route-6ec61ce021cdb9a6.js +1 -0
  429. package/app/.next/static/chunks/app/api/v1/responses/route-6ec61ce021cdb9a6.js +1 -0
  430. package/app/.next/static/chunks/app/api/v1/route-6ec61ce021cdb9a6.js +1 -0
  431. package/app/.next/static/chunks/app/api/v1/search/route-6ec61ce021cdb9a6.js +1 -0
  432. package/app/.next/static/chunks/app/api/v1/web/fetch/route-6ec61ce021cdb9a6.js +1 -0
  433. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-6ec61ce021cdb9a6.js +1 -0
  434. package/app/.next/static/chunks/app/api/v1beta/models/route-6ec61ce021cdb9a6.js +1 -0
  435. package/app/.next/static/chunks/app/api/version/route-6ec61ce021cdb9a6.js +1 -0
  436. package/app/.next/static/chunks/app/api/version/update/route-6ec61ce021cdb9a6.js +1 -0
  437. package/app/.next/static/chunks/app/landing/{page-c7ae6a40e2a2228d.js → page-4644660041715534.js} +1 -1
  438. package/app/.next/static/chunks/app/manifest.webmanifest/route-6ec61ce021cdb9a6.js +1 -0
  439. package/app/.next/static/chunks/app/page-6ec61ce021cdb9a6.js +1 -0
  440. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-6ec61ce021cdb9a6.js +1 -0
  441. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-6ec61ce021cdb9a6.js +1 -0
  442. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-6ec61ce021cdb9a6.js +1 -0
  443. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-6ec61ce021cdb9a6.js +1 -0
  444. package/app/.next/static/css/d726e4e5a2cfbfd1.css +1 -0
  445. package/app/package.json +1 -1
  446. package/app/public/providers/commandcode.png +0 -0
  447. package/app/src/mitm/antigravityAvailableModels.fixture.json +632 -0
  448. package/app/src/mitm/antigravityModels.js +265 -0
  449. package/app/src/mitm/cert/install.js +13 -8
  450. package/app/src/mitm/cert/rootCA.js +20 -5
  451. package/app/src/mitm/config.js +30 -3
  452. package/app/src/mitm/dns/dnsConfig.js +115 -2
  453. package/app/src/mitm/handlers/antigravity.js +29 -2
  454. package/app/src/mitm/handlers/openrouter.js +82 -3
  455. package/app/src/mitm/logger.js +1 -1
  456. package/app/src/mitm/manager.js +11 -3
  457. package/app/src/mitm/server.js +219 -18
  458. package/app/src/shared/constants/mitmToolHosts.js +5 -1
  459. package/package.json +1 -1
  460. package/src/cli/api/client.js +2 -2
  461. package/src/cli/terminalUI.js +2 -2
  462. package/src/cli/tray/autostart.js +25 -24
  463. package/src/cli/tray/tray.js +3 -3
  464. package/app/.next/server/chunks/2343.js +0 -1
  465. package/app/.next/static/5xyYjBoSvv2Kb5BwIi7pF/_buildManifest.js +0 -1
  466. package/app/.next/static/chunks/1321-8d71ef3958ddd91f.js +0 -1
  467. package/app/.next/static/chunks/2336-9fd2cc8ed73b0db4.js +0 -38
  468. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-15091159f6d63fb7.js +0 -1
  469. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-6289612ce5f7c181.js +0 -1
  470. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-e26f08039efe859c.js +0 -1
  471. package/app/.next/static/chunks/app/_global-error/page-e26f08039efe859c.js +0 -1
  472. package/app/.next/static/chunks/app/api/auth/login/route-e26f08039efe859c.js +0 -1
  473. package/app/.next/static/chunks/app/api/auth/logout/route-e26f08039efe859c.js +0 -1
  474. package/app/.next/static/chunks/app/api/auth/me/route-e26f08039efe859c.js +0 -1
  475. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-e26f08039efe859c.js +0 -1
  476. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-e26f08039efe859c.js +0 -1
  477. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-e26f08039efe859c.js +0 -1
  478. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-e26f08039efe859c.js +0 -1
  479. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-e26f08039efe859c.js +0 -1
  480. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-e26f08039efe859c.js +0 -1
  481. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-e26f08039efe859c.js +0 -1
  482. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-e26f08039efe859c.js +0 -1
  483. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-e26f08039efe859c.js +0 -1
  484. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-e26f08039efe859c.js +0 -1
  485. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-e26f08039efe859c.js +0 -1
  486. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-e26f08039efe859c.js +0 -1
  487. package/app/.next/static/chunks/app/api/cloud/auth/route-e26f08039efe859c.js +0 -1
  488. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-e26f08039efe859c.js +0 -1
  489. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-e26f08039efe859c.js +0 -1
  490. package/app/.next/static/chunks/app/api/cloud/models/alias/route-e26f08039efe859c.js +0 -1
  491. package/app/.next/static/chunks/app/api/combos/[id]/route-e26f08039efe859c.js +0 -1
  492. package/app/.next/static/chunks/app/api/combos/route-e26f08039efe859c.js +0 -1
  493. package/app/.next/static/chunks/app/api/health/route-e26f08039efe859c.js +0 -1
  494. package/app/.next/static/chunks/app/api/init/route-e26f08039efe859c.js +0 -1
  495. package/app/.next/static/chunks/app/api/keys/[id]/route-e26f08039efe859c.js +0 -1
  496. package/app/.next/static/chunks/app/api/keys/route-e26f08039efe859c.js +0 -1
  497. package/app/.next/static/chunks/app/api/locale/route-e26f08039efe859c.js +0 -1
  498. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-e26f08039efe859c.js +0 -1
  499. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-e26f08039efe859c.js +0 -1
  500. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-e26f08039efe859c.js +0 -1
  501. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-e26f08039efe859c.js +0 -1
  502. package/app/.next/static/chunks/app/api/models/alias/route-e26f08039efe859c.js +0 -1
  503. package/app/.next/static/chunks/app/api/models/availability/route-e26f08039efe859c.js +0 -1
  504. package/app/.next/static/chunks/app/api/models/custom/route-e26f08039efe859c.js +0 -1
  505. package/app/.next/static/chunks/app/api/models/disabled/route-e26f08039efe859c.js +0 -1
  506. package/app/.next/static/chunks/app/api/models/route-e26f08039efe859c.js +0 -1
  507. package/app/.next/static/chunks/app/api/models/test/route-e26f08039efe859c.js +0 -1
  508. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-e26f08039efe859c.js +0 -1
  509. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-e26f08039efe859c.js +0 -1
  510. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-e26f08039efe859c.js +0 -1
  511. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-e26f08039efe859c.js +0 -1
  512. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-e26f08039efe859c.js +0 -1
  513. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-e26f08039efe859c.js +0 -1
  514. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-e26f08039efe859c.js +0 -1
  515. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-e26f08039efe859c.js +0 -1
  516. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-e26f08039efe859c.js +0 -1
  517. package/app/.next/static/chunks/app/api/pricing/route-e26f08039efe859c.js +0 -1
  518. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-e26f08039efe859c.js +0 -1
  519. package/app/.next/static/chunks/app/api/provider-nodes/route-e26f08039efe859c.js +0 -1
  520. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-e26f08039efe859c.js +0 -1
  521. package/app/.next/static/chunks/app/api/providers/[id]/models/route-e26f08039efe859c.js +0 -1
  522. package/app/.next/static/chunks/app/api/providers/[id]/route-e26f08039efe859c.js +0 -1
  523. package/app/.next/static/chunks/app/api/providers/[id]/test/route-e26f08039efe859c.js +0 -1
  524. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-e26f08039efe859c.js +0 -1
  525. package/app/.next/static/chunks/app/api/providers/client/route-e26f08039efe859c.js +0 -1
  526. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-e26f08039efe859c.js +0 -1
  527. package/app/.next/static/chunks/app/api/providers/route-e26f08039efe859c.js +0 -1
  528. package/app/.next/static/chunks/app/api/providers/suggested-models/route-e26f08039efe859c.js +0 -1
  529. package/app/.next/static/chunks/app/api/providers/test-batch/route-e26f08039efe859c.js +0 -1
  530. package/app/.next/static/chunks/app/api/providers/validate/route-e26f08039efe859c.js +0 -1
  531. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-e26f08039efe859c.js +0 -1
  532. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-e26f08039efe859c.js +0 -1
  533. package/app/.next/static/chunks/app/api/proxy-pools/route-e26f08039efe859c.js +0 -1
  534. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-e26f08039efe859c.js +0 -1
  535. package/app/.next/static/chunks/app/api/settings/database/route-e26f08039efe859c.js +0 -1
  536. package/app/.next/static/chunks/app/api/settings/proxy-test/route-e26f08039efe859c.js +0 -1
  537. package/app/.next/static/chunks/app/api/settings/require-login/route-e26f08039efe859c.js +0 -1
  538. package/app/.next/static/chunks/app/api/settings/route-e26f08039efe859c.js +0 -1
  539. package/app/.next/static/chunks/app/api/shutdown/route-e26f08039efe859c.js +0 -1
  540. package/app/.next/static/chunks/app/api/tags/route-e26f08039efe859c.js +0 -1
  541. package/app/.next/static/chunks/app/api/translator/console-logs/route-e26f08039efe859c.js +0 -1
  542. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-e26f08039efe859c.js +0 -1
  543. package/app/.next/static/chunks/app/api/translator/load/route-e26f08039efe859c.js +0 -1
  544. package/app/.next/static/chunks/app/api/translator/save/route-e26f08039efe859c.js +0 -1
  545. package/app/.next/static/chunks/app/api/translator/send/route-e26f08039efe859c.js +0 -1
  546. package/app/.next/static/chunks/app/api/translator/translate/route-e26f08039efe859c.js +0 -1
  547. package/app/.next/static/chunks/app/api/tunnel/disable/route-e26f08039efe859c.js +0 -1
  548. package/app/.next/static/chunks/app/api/tunnel/enable/route-e26f08039efe859c.js +0 -1
  549. package/app/.next/static/chunks/app/api/tunnel/status/route-e26f08039efe859c.js +0 -1
  550. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-e26f08039efe859c.js +0 -1
  551. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-e26f08039efe859c.js +0 -1
  552. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-e26f08039efe859c.js +0 -1
  553. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-e26f08039efe859c.js +0 -1
  554. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-e26f08039efe859c.js +0 -1
  555. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-e26f08039efe859c.js +0 -1
  556. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-e26f08039efe859c.js +0 -1
  557. package/app/.next/static/chunks/app/api/usage/api-keys/route-e26f08039efe859c.js +0 -1
  558. package/app/.next/static/chunks/app/api/usage/chart/route-e26f08039efe859c.js +0 -1
  559. package/app/.next/static/chunks/app/api/usage/history/route-e26f08039efe859c.js +0 -1
  560. package/app/.next/static/chunks/app/api/usage/logs/route-e26f08039efe859c.js +0 -1
  561. package/app/.next/static/chunks/app/api/usage/providers/route-e26f08039efe859c.js +0 -1
  562. package/app/.next/static/chunks/app/api/usage/request-details/route-e26f08039efe859c.js +0 -1
  563. package/app/.next/static/chunks/app/api/usage/request-logs/route-e26f08039efe859c.js +0 -1
  564. package/app/.next/static/chunks/app/api/usage/stats/route-e26f08039efe859c.js +0 -1
  565. package/app/.next/static/chunks/app/api/usage/stream/route-e26f08039efe859c.js +0 -1
  566. package/app/.next/static/chunks/app/api/users/[id]/route-e26f08039efe859c.js +0 -1
  567. package/app/.next/static/chunks/app/api/users/route-e26f08039efe859c.js +0 -1
  568. package/app/.next/static/chunks/app/api/v1/api/chat/route-e26f08039efe859c.js +0 -1
  569. package/app/.next/static/chunks/app/api/v1/audio/speech/route-e26f08039efe859c.js +0 -1
  570. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-e26f08039efe859c.js +0 -1
  571. package/app/.next/static/chunks/app/api/v1/audio/voices/route-e26f08039efe859c.js +0 -1
  572. package/app/.next/static/chunks/app/api/v1/chat/completions/route-e26f08039efe859c.js +0 -1
  573. package/app/.next/static/chunks/app/api/v1/embeddings/route-e26f08039efe859c.js +0 -1
  574. package/app/.next/static/chunks/app/api/v1/images/generations/route-e26f08039efe859c.js +0 -1
  575. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-e26f08039efe859c.js +0 -1
  576. package/app/.next/static/chunks/app/api/v1/messages/route-e26f08039efe859c.js +0 -1
  577. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-e26f08039efe859c.js +0 -1
  578. package/app/.next/static/chunks/app/api/v1/models/info/route-e26f08039efe859c.js +0 -1
  579. package/app/.next/static/chunks/app/api/v1/models/route-e26f08039efe859c.js +0 -1
  580. package/app/.next/static/chunks/app/api/v1/responses/compact/route-e26f08039efe859c.js +0 -1
  581. package/app/.next/static/chunks/app/api/v1/responses/route-e26f08039efe859c.js +0 -1
  582. package/app/.next/static/chunks/app/api/v1/route-e26f08039efe859c.js +0 -1
  583. package/app/.next/static/chunks/app/api/v1/search/route-e26f08039efe859c.js +0 -1
  584. package/app/.next/static/chunks/app/api/v1/web/fetch/route-e26f08039efe859c.js +0 -1
  585. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-e26f08039efe859c.js +0 -1
  586. package/app/.next/static/chunks/app/api/v1beta/models/route-e26f08039efe859c.js +0 -1
  587. package/app/.next/static/chunks/app/api/version/route-e26f08039efe859c.js +0 -1
  588. package/app/.next/static/chunks/app/api/version/update/route-e26f08039efe859c.js +0 -1
  589. package/app/.next/static/chunks/app/manifest.webmanifest/route-e26f08039efe859c.js +0 -1
  590. package/app/.next/static/chunks/app/page-e26f08039efe859c.js +0 -1
  591. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-e26f08039efe859c.js +0 -1
  592. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-e26f08039efe859c.js +0 -1
  593. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-e26f08039efe859c.js +0 -1
  594. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-e26f08039efe859c.js +0 -1
  595. package/app/.next/static/css/48caf49054c81db9.css +0 -1
  596. /package/app/.next/static/{5xyYjBoSvv2Kb5BwIi7pF → SQn85l_D0P4BshNJQkGiZ}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=9609,exports.ids=[9609],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},39609:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>q});var d=c(27910),e=c(41004);let f=globalThis.fetch,g=new Map,h=new Map,i=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],j=["8.8.8.8","8.8.4.4"];function k(a){return null==a?"":String(a).trim()}async function l(a){let b=h.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,23)),f=new b.Resolver;f.setServers(j);let g=d(f.resolve4.bind(f)),i=await g(a);return h.set(a,{ip:i[0],expiry:Date.now()+e.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function m(a,b){let c,d=k(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function n(a){let b=k(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function o(a){let b=n(a);if(!b)return null;if(!g.has(b)){g.size>=e.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));g.set(b,new a({uri:b}))}return g.get(b)}async function p(a,b,e){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,rejectUnauthorized:!1,path:a.pathname+a.search,method:e.method||"POST",headers:{...e.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:d.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),e.body&&i.write("string"==typeof e.body?e.body:JSON.stringify(e.body)),i.end()}),g.on("error",f)})}async function q(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=k(c?.vercelRelayUrl);if(e){let a=new URL(d),c={...b.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return f(e,{...b,headers:c})}let g=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=k(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=k(b?.noProxy??b?.connectionNoProxy);return d&&m(a,d)?null:n(c)}(d,c),h=g?null:n(function(a){let b;if(m(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(d)),j=g||h;if(function(a){try{let b=new URL(a).hostname;return i.some(a=>b.includes(a))}catch{return!1}}(d)){if(j)try{let c=await o(j);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),c=await l(a.hostname);if(c)return await p(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(j)try{let c=await o(j);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return f(a,b)}async function r(a,b={}){return q(a,b,null)}globalThis.fetch!==r&&(globalThis.fetch=r)},41004:(a,b,c)=>{c.d(b,{C8:()=>j,DR:()=>i,Uc:()=>f,cI:()=>h,eo:()=>g,gx:()=>d,v1:()=>e}),c(3662);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=64e3,g=32e3,h={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function i(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let j=["Please write a 5-10 word title for the following conversation:"]}};
1
+ "use strict";exports.id=9609,exports.ids=[9609],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},39609:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>t});var d=c(27910),e=c(41004);let f=globalThis.fetch,g=new Map,h=new Map,i=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],j=["8.8.8.8","8.8.4.4"];function k(a){return null==a?"":String(a).trim()}async function l(a){let b=h.get(a);if(b&&Date.now()<b.expiry)return b.ip;try{let b=await Promise.resolve().then(c.t.bind(c,14985,23)),{promisify:d}=await Promise.resolve().then(c.t.bind(c,28354,23)),f=new b.Resolver;f.setServers(j);let g=d(f.resolve4.bind(f)),i=await g(a);return h.set(a,{ip:i[0],expiry:Date.now()+e.v1.dnsCacheTtlMs}),i[0]}catch(b){return console.warn(`[ProxyFetch] DNS resolve failed for ${a}:`,b.message),null}}function m(a,b){let c,d=k(b);if(!d)return!1;try{c=new URL(a).hostname.toLowerCase()}catch{return!1}return d.split(",").map(a=>a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function n(a){let b=k(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function o(a){let b=n(a);if(!b)return null;if(!g.has(b)){g.size>=e.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{ProxyAgent:a}=await c.e(7774).then(c.t.bind(c,47774,19));g.set(b,new a({uri:b}))}return g.get(b)}async function p(a,b){if(null==b)return void a.end();if("string"==typeof b||Buffer.isBuffer(b)||b instanceof Uint8Array)return void a.end(b);if("function"==typeof b?.getReader){let c=b.getReader();for(;;){let{done:b,value:d}=await c.read();if(b)break;a.write(d)}a.end();return}a.end(JSON.stringify(b))}async function q(a,b,e){let f=new URL("string"==typeof a?a:a.toString()),g="http:"===f.protocol?await Promise.resolve().then(c.t.bind(c,81630,23)):await Promise.resolve().then(c.t.bind(c,55591,23)),h=g.default??g,{SocksProxyAgent:i}=await c.e(1679).then(c.t.bind(c,61679,23)),j=new i(e);return new Promise((a,c)=>{var e;let g=h.request({protocol:f.protocol,hostname:f.hostname,port:f.port||("http:"===f.protocol?80:443),path:`${f.pathname}${f.search}`,method:b.method||"GET",headers:(e=b.headers)?e instanceof Headers?Object.fromEntries(e.entries()):Array.isArray(e)?Object.fromEntries(e):{...e}:{},agent:j},b=>{a(new Response(d.Readable.toWeb(b),{status:b.statusCode||0,statusText:b.statusMessage||"",headers:b.headers}))});if(g.on("error",c),b.signal){if(b.signal.aborted)return void g.destroy(new DOMException("This operation was aborted","AbortError"));b.signal.addEventListener("abort",()=>{g.destroy(new DOMException("This operation was aborted","AbortError"))},{once:!0})}p(g,b.body).catch(a=>g.destroy(a))})}async function r(a,b,c){if(function(a){try{return new URL(n(a)).protocol.startsWith("socks")}catch{return!1}}(c))return q(a,b,c);let d=await o(c);return f(a,{...b,dispatcher:d})}async function s(a,b,e){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,rejectUnauthorized:!1,path:a.pathname+a.search,method:e.method||"POST",headers:{...e.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:d.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),e.body&&i.write("string"==typeof e.body?e.body:JSON.stringify(e.body)),i.end()}),g.on("error",f)})}async function t(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=k(c?.vercelRelayUrl);if(e){let a=new URL(d),c={...b.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return f(e,{...b,headers:c})}let g=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=k(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=k(b?.noProxy??b?.connectionNoProxy);return d&&m(a,d)?null:n(c)}(d,c),h=g?null:n(function(a){let b;if("1"===process.env.NINE_ROUTER_PROXY_MANAGED){let b=k(process.env.NINE_ROUTER_PROXY_URL);return b?!function(a,b){let c,d=k(b);if(!d)return!1;try{c=new URL(a).hostname}catch{return!1}return d.split(",").map(a=>a.trim()).filter(Boolean).some(a=>(function(a,b){let c=k(a).toLowerCase(),d=k(b).toLowerCase();if(!c||!d)return!1;try{/^[a-z][a-z0-9+.-]*:\/\//i.test(d)?d=new URL(d).hostname.toLowerCase():d.includes(":")&&!d.startsWith(".")&&(d=d.split(":")[0])}catch{}return"*"===d||(d.startsWith(".")?c.endsWith(d)||c===d.slice(1):c===d||c.endsWith(`.${d}`))})(c,a))}(a,process.env.NINE_ROUTER_PROXY_TARGETS)?null:b:null}if(m(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(d)),j=g||h;if(function(a){try{let b=new URL(a).hostname;return i.some(a=>b.includes(a))}catch{return!1}}(d)){if(j)try{return await r(a,b,j)}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),c=await l(a.hostname);if(c)return await s(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(j)try{return await r(a,b,j)}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return f(a,b)}async function u(a,b={}){return t(a,b,null)}globalThis.fetch!==u&&(globalThis.fetch=u)},41004:(a,b,c)=>{c.d(b,{C8:()=>j,DR:()=>i,Uc:()=>f,cI:()=>h,eo:()=>g,gx:()=>d,v1:()=>e}),c(3662);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=64e3,g=32e3,h={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function i(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let j=["Please write a 5-10 word title for the following conversation:"]}};
@@ -1 +1 @@
1
- "use strict";exports.id=9718,exports.ids=[9718],exports.modules={89718:(a,b,c)=>{c.d(b,{$L:()=>ah,CG:()=>ad,Dj:()=>aa,Iq:()=>ap,JE:()=>al,K1:()=>aw,KJ:()=>az,L:()=>_,L9:()=>Z,Mc:()=>N,OM:()=>S,Pc:()=>G,Q_:()=>K,Qf:()=>ai,Qu:()=>D,S8:()=>W,TK:()=>an,Uv:()=>$,VT:()=>aB,XW:()=>aq,Xx:()=>au,Yd:()=>L,ZO:()=>J,bI:()=>as,c:()=>Y,ek:()=>ar,fK:()=>Q,fv:()=>U,getApiKeys:()=>ae,getPricingForModel:()=>ay,getProviderConnections:()=>B,getProviderNodes:()=>C,getSettings:()=>at,hG:()=>ao,ho:()=>F,hr:()=>I,i0:()=>E,iE:()=>O,jd:()=>ab,kg:()=>am,kl:()=>ak,lo:()=>aj,o5:()=>T,oG:()=>ac,op:()=>M,r4:()=>ax,uL:()=>X,ui:()=>H,updateProviderConnection:()=>P,uv:()=>V,y7:()=>ag,yF:()=>aA,yg:()=>af,zP:()=>av});var d=c(82996),e=c(11259),f=c(94755),g=c(76760),h=c.n(g),i=c(73024),j=c.n(i),k=c(80974),l=c.n(k),m=c(49120);let n="u">typeof caches||"object"==typeof caches,o=n?null:h().join(m.n,"db.json"),p=n?null:h().join(process.cwd(),"src","mitm","models.json");j().existsSync(m.n)||j().mkdirSync(m.n,{recursive:!0});let q={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,observabilityEnabled:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:1024,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full"};function r(){return{providerConnections:[],providerNodes:[],proxyPools:[],modelAliases:{},customModels:[],mitmAlias:{},combos:[],apiKeys:[],users:[],settings:{...q},pricing:{}}}function s(a){let b=r(),c=a&&"object"==typeof a?a:{},d=!1;for(let[a,e]of Object.entries(b)){if(void 0===c[a]||null===c[a]){c[a]=e,d=!0;continue}if("settings"===a&&("object"!=typeof c.settings||Array.isArray(c.settings))){c.settings={...e},d=!0;continue}if("settings"===a&&"object"==typeof c.settings&&!Array.isArray(c.settings))for(let[a,b]of Object.entries(e))void 0===c.settings[a]&&("outboundProxyEnabled"===a&&"string"==typeof c.settings.outboundProxyUrl&&c.settings.outboundProxyUrl.trim()?c.settings.outboundProxyEnabled=!0:c.settings[a]=b,d=!0);if("apiKeys"===a&&Array.isArray(c.apiKeys))for(let a of c.apiKeys)(void 0===a.isActive||null===a.isActive)&&(a.isActive=!0,d=!0),void 0===a.userId&&(a.userId=null,d=!0)}return{data:c,changed:d}}j().existsSync(o)||j().writeFileSync(o,JSON.stringify(r(),null,2));let t=null,u={retries:{retries:15,minTimeout:50,maxTimeout:3e3},stale:1e4};class v{constructor(){this._queue=[],this._locked=!1}async acquire(){return this._locked?new Promise(a=>{this._queue.push(()=>a(()=>this._release()))}):(this._locked=!0,()=>this._release())}_release(){let a=this._queue.shift();a?a():this._locked=!1}}let w=new v;async function x(a,b){let c=await w.acquire(),d=null;try{d=await l().lock(o,u),await b()}catch(a){throw"ELOCKED"===a.code&&console.warn("[DB] File is locked, retrying..."),a}finally{if(d)try{await d()}catch(a){}c()}}async function y(a){await x(a,()=>a.read())}async function z(a){await x(a,()=>a.write())}async function A(){t||(t=new d.t(new e.Pv(o),r()));try{await y(t)}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),t.data=r(),await z(t);else throw a}if(t.data){let{data:a,changed:b}=s(t.data);t.data=a,b&&await z(t)}else t.data=r(),await z(t);return t}async function B(a={}){let b=(await A()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function C(a={}){let b=(await A()).data.providerNodes||[];return a.type&&(b=b.filter(b=>b.type===a.type)),b}async function D(a){return(await A()).data.providerNodes.find(b=>b.id===a)||null}async function E(a){let b=await A();b.data.providerNodes||(b.data.providerNodes=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,defaultSize:a.defaultSize,createdAt:c,updatedAt:c};return b.data.providerNodes.push(d),await z(b),d}async function F(a,b){let c=await A();c.data.providerNodes||(c.data.providerNodes=[]);let d=c.data.providerNodes.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerNodes[d]={...c.data.providerNodes[d],...b,updatedAt:new Date().toISOString()},await z(c),c.data.providerNodes[d])}async function G(a){let b=await A();b.data.providerNodes||(b.data.providerNodes=[]);let c=b.data.providerNodes.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.providerNodes.splice(c,1);return await z(b),d}async function H(a={}){let b=(await A()).data.proxyPools||[];return void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),a.testStatus&&(b=b.filter(b=>b.testStatus===a.testStatus)),b.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0))}async function I(a){return((await A()).data.proxyPools||[]).find(b=>b.id===a)||null}async function J(a){let b=await A();b.data.proxyPools||(b.data.proxyPools=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return b.data.proxyPools.push(d),await z(b),d}async function K(a,b){let c=await A();c.data.proxyPools||(c.data.proxyPools=[]);let d=c.data.proxyPools.findIndex(b=>b.id===a);return -1===d?null:(c.data.proxyPools[d]={...c.data.proxyPools[d],...b,updatedAt:new Date().toISOString()},await z(c),c.data.proxyPools[d])}async function L(a){let b=await A();b.data.proxyPools||(b.data.proxyPools=[]);let c=b.data.proxyPools.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.proxyPools.splice(c,1);return await z(b),d}async function M(a){let b=await A(),c=b.data.providerConnections.length;b.data.providerConnections=b.data.providerConnections.filter(b=>b.provider!==a);let d=c-b.data.providerConnections.length;return await z(b),d}async function N(a){return(await A()).data.providerConnections.find(b=>b.id===a)||null}async function O(a){let b=await A(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await z(b),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await z(b),await R(a.provider),h}async function P(a,b){let c=await A(),d=c.data.providerConnections.findIndex(b=>b.id===a);if(-1===d)return null;let e=c.data.providerConnections[d].provider;return c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await z(c),void 0!==b.priority&&await R(e),c.data.providerConnections[d]}async function Q(a){let b=await A(),c=b.data.providerConnections.findIndex(b=>b.id===a);if(-1===c)return!1;let d=b.data.providerConnections[c].provider;return b.data.providerConnections.splice(c,1),await z(b),await R(d),!0}async function R(a){let b=await A();b.data.providerConnections&&(b.data.providerConnections.filter(b=>b.provider===a).sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}).forEach((a,b)=>{a.priority=b+1}),await z(b))}async function S(){return(await A()).data.modelAliases||{}}async function T(a,b){let c=await A();c.data.modelAliases[a]=b,await z(c)}async function U(a){let b=await A();delete b.data.modelAliases[a],await z(b)}async function V(){return(await A()).data.customModels||[]}async function W({providerAlias:a,id:b,type:c="llm",name:d}){let e=await A();return e.data.customModels||(e.data.customModels=[]),!e.data.customModels.some(d=>d.providerAlias===a&&d.id===b&&(d.type||"llm")===c)&&(e.data.customModels.push({providerAlias:a,id:b,type:c,name:d||b}),await z(e),!0)}async function X({providerAlias:a,id:b,type:c="llm"}){let d=await A();d.data.customModels&&(d.data.customModels=d.data.customModels.filter(d=>d.providerAlias!==a||d.id!==b||(d.type||"llm")!==c),await z(d))}async function Y(a){let b=(await A()).data.mitmAlias||{};return a?b[a]||{}:b}async function Z(a,b){let c=await A();c.data.mitmAlias||(c.data.mitmAlias={}),c.data.mitmAlias[a]=b||{},await z(c)}async function $(){return(await A()).data.combos||[]}async function _(a){return((await A()).data.combos||[]).find(b=>b.id===a)||null}async function aa(a){return((await A()).data.combos||[]).find(b=>b.name===a)||null}async function ab(a){let b=await A();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],kind:a.kind||null,createdAt:c,updatedAt:c};return b.data.combos.push(d),await z(b),d}async function ac(a,b){let c=await A();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await z(c),c.data.combos[d])}async function ad(a){let b=await A();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await z(b),!0)}async function ae(a={}){let b=(await A()).data.apiKeys||[];return void 0!==a.userId&&(b=b.filter(b=>b.userId===a.userId)),a.includeUnassigned||a.forCurrentUser&&(b=b.filter(b=>b.userId===a.forCurrentUser)),b}async function af(a){return(await A()).data.apiKeys.find(b=>b.id===a)||null}async function ag(a){return(await A()).data.apiKeys.find(b=>b.key===a)||null}async function ah(a,b){let c=await A(),d=c.data.apiKeys.find(b=>b.id===a);return d?(d.userId=b,d.assignedAt=new Date().toISOString(),await z(c),d):null}async function ai(a){let b=await A(),c=b.data.apiKeys.find(b=>b.id===a);return!!c&&(c.userId=null,c.assignedAt=null,await z(b),!0)}async function aj(){return((await A()).data.users||[]).map(a=>({...a,passwordHash:void 0}))}async function ak(a){let b=((await A()).data.users||[]).find(b=>b.id===a);return b?{...b,passwordHash:void 0}:null}async function al(a){return((await A()).data.users||[]).find(b=>b.username===a)||null}async function am({username:a,passwordHash:b,role:c="sub_user",permissions:d=[],displayName:e="",allowedProviders:g,showQuotaTracker:h=!0}){let i=await A();if(i.data.users||(i.data.users=[]),i.data.users.some(b=>b.username===a))throw Error("Username already exists");let j=new Date().toISOString(),k={id:(0,f.A)(),username:a,passwordHash:b,role:c,permissions:d,displayName:e||a,showQuotaTracker:h,createdAt:j,updatedAt:j};return void 0!==g&&(k.allowedProviders=g),i.data.users.push(k),await z(i),{...k,passwordHash:void 0}}async function an(a,b){let c=await A();if(!c.data.users)return null;let d=c.data.users.findIndex(b=>b.id===a);if(-1===d)return null;let{passwordHash:e,...f}=b;return c.data.users[d]={...c.data.users[d],...f,updatedAt:new Date().toISOString()},e&&(c.data.users[d].passwordHash=e),await z(c),{...c.data.users[d],passwordHash:void 0}}async function ao(a){let b=await A();if(!b.data.users)return!1;let c=b.data.users.findIndex(b=>b.id===a);if(-1===c)return!1;for(let d of(b.data.users.splice(c,1),b.data.apiKeys||[]))d.userId===a&&(d.userId=null,d.assignedAt=null);return await z(b),!0}async function ap(a,b){if(!b)throw Error("machineId is required");let d=await A(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(6844).then(c.bind(c,86844)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:e};return d.data.apiKeys.push(i),await z(d),i}async function aq(a,b){let c=await A(),d=c.data.apiKeys.findIndex(b=>b.id===a);return -1===d?null:(c.data.apiKeys[d]={...c.data.apiKeys[d],...b},await z(c),c.data.apiKeys[d])}async function ar(a){let b=(await A()).data.apiKeys.find(b=>b.key===a);return b&&!1!==b.isActive}async function as(){let a=await A(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await z(a),c}async function at(){return(await A()).data.settings||{cloudEnabled:!1}}async function au(a){let b=await A();return b.data.settings={...b.data.settings,...a},await z(b),b.data.settings}async function av(){return(await A()).data||r()}async function aw(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let{data:b}=s({...r(),...a,settings:{...r().settings,...a.settings&&"object"==typeof a.settings&&!Array.isArray(a.settings)?a.settings:{}}}),c=await A();return c.data=b,await z(c),c.data}async function ax(){let a=(await A()).data.pricing||{},{PROVIDER_PRICING:b}=await c.e(7341).then(c.bind(c,57341)),d={};for(let[c,e]of Object.entries(b))if(d[c]={...e},a[c])for(let[b,e]of Object.entries(a[c]))d[c][b]=d[c][b]?{...d[c][b],...e}:e;for(let[b,c]of Object.entries(a))if(d[b])for(let[a,e]of Object.entries(c))d[b][a]||(d[b][a]=e);else d[b]={...c};return d}async function ay(a,b){if(!b)return null;let d=(await A()).data.pricing||{};if(a&&d[a]?.[b])return d[a][b];if(!n&&p&&j().existsSync(p))try{let a=JSON.parse(j().readFileSync(p,"utf-8")),c=Array.isArray(a?.data)?a.data:[],d=new Set([b,b.includes("/")?b.split("/").pop():b].filter(Boolean)),e=c.find(a=>{let b=String(a?.id||""),c=String(a?.canonical_slug||"");return[...d].some(a=>b===a||c===a||b.endsWith(`/${a}`)||c.endsWith(`/${a}`))});if(e?.pricing){let a=Number(e.pricing.prompt),b=Number(e.pricing.completion),c=Number(e.pricing.input_cache_read),d=Number(e.pricing.internal_reasoning),f=Number(e.pricing.input_cache_write);if(!Number.isNaN(a)&&!Number.isNaN(b))return{input:1e6*a,output:1e6*b,cached:Number.isNaN(c)?1e6*a:1e6*c,reasoning:Number.isNaN(d)?1e6*b:1e6*d,cache_creation:Number.isNaN(f)?1e6*a:1e6*f}}}catch{}let{getPricingForModel:e}=await c.e(7341).then(c.bind(c,57341));return e(a,b)}async function az(a){let b=await A();for(let[c,d]of(b.data.pricing||(b.data.pricing={}),Object.entries(a)))for(let[a,e]of(b.data.pricing[c]||(b.data.pricing[c]={}),Object.entries(d)))b.data.pricing[c][a]=e;return await z(b),b.data.pricing}async function aA(a,b){let c=await A();return c.data.pricing||(c.data.pricing={}),b?c.data.pricing[a]&&(delete c.data.pricing[a][b],0===Object.keys(c.data.pricing[a]).length&&delete c.data.pricing[a]):delete c.data.pricing[a],await z(c),c.data.pricing}async function aB(){let a=await A();return a.data.pricing={},await z(a),a.data.pricing}}};
1
+ "use strict";exports.id=9718,exports.ids=[9718],exports.modules={89718:(a,b,c)=>{c.d(b,{$L:()=>ag,CG:()=>ac,Dj:()=>_,Iq:()=>ao,JE:()=>ak,K1:()=>av,KJ:()=>ay,L:()=>$,L9:()=>Y,Mc:()=>M,OM:()=>R,Pc:()=>F,Q_:()=>J,Qf:()=>ah,Qu:()=>C,S8:()=>V,TK:()=>am,Uv:()=>Z,VT:()=>aA,XW:()=>ap,Xx:()=>at,Yd:()=>K,ZO:()=>I,bI:()=>ar,c:()=>X,ek:()=>aq,fK:()=>P,fv:()=>T,getApiKeys:()=>ad,getPricingForModel:()=>ax,getProviderConnections:()=>A,getProviderNodes:()=>B,getSettings:()=>as,hG:()=>an,ho:()=>E,hr:()=>H,i0:()=>D,iE:()=>N,jd:()=>aa,kg:()=>al,kl:()=>aj,lo:()=>ai,o5:()=>S,oG:()=>ab,op:()=>L,r4:()=>aw,uL:()=>W,ui:()=>G,updateProviderConnection:()=>O,uv:()=>U,y7:()=>af,yF:()=>az,yg:()=>ae,zP:()=>au});var d=c(82996),e=c(11259),f=c(94755),g=c(76760),h=c.n(g),i=c(73024),j=c.n(i),k=c(80974),l=c.n(k),m=c(49120);let n="u">typeof caches||"object"==typeof caches,o=n?null:h().join(process.cwd(),"src","mitm","models.json");j().existsSync(m.nJ)||j().mkdirSync(m.nJ,{recursive:!0});let p={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,observabilityEnabled:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:1024,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",outboundProxyTargets:[],mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full"};function q(){return{providerConnections:[],providerNodes:[],proxyPools:[],modelAliases:{},customModels:[],mitmAlias:{},combos:[],apiKeys:[],users:[],settings:{...p},pricing:{}}}function r(a){let b=q(),c=a&&"object"==typeof a?a:{},d=!1;for(let[a,e]of Object.entries(b)){if(void 0===c[a]||null===c[a]){c[a]=e,d=!0;continue}if("settings"===a&&("object"!=typeof c.settings||Array.isArray(c.settings))){c.settings={...e},d=!0;continue}if("settings"===a&&"object"==typeof c.settings&&!Array.isArray(c.settings))for(let[a,b]of Object.entries(e))void 0===c.settings[a]&&("outboundProxyEnabled"===a&&"string"==typeof c.settings.outboundProxyUrl&&c.settings.outboundProxyUrl.trim()?c.settings.outboundProxyEnabled=!0:c.settings[a]=b,d=!0);if("apiKeys"===a&&Array.isArray(c.apiKeys))for(let a of c.apiKeys)(void 0===a.isActive||null===a.isActive)&&(a.isActive=!0,d=!0),void 0===a.userId&&(a.userId=null,d=!0)}return{data:c,changed:d}}n||j().existsSync(m.c_)||j().writeFileSync(m.c_,JSON.stringify(q(),null,2));let s=null,t={retries:{retries:15,minTimeout:50,maxTimeout:3e3},stale:1e4};class u{constructor(){this._queue=[],this._locked=!1}async acquire(){return this._locked?new Promise(a=>{this._queue.push(()=>a(()=>this._release()))}):(this._locked=!0,()=>this._release())}_release(){let a=this._queue.shift();a?a():this._locked=!1}}let v=new u;async function w(a,b){let c=await v.acquire(),d=null;try{d=await l().lock(m.c_,t),await b()}catch(a){throw"ELOCKED"===a.code&&console.warn("[DB] File is locked, retrying..."),a}finally{if(d)try{await d()}catch(a){}c()}}async function x(a){await w(a,()=>a.read())}async function y(a){await w(a,()=>a.write())}async function z(){s||(s=new d.t(new e.Pv(m.c_),q()));try{await x(s)}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),s.data=q(),await y(s);else throw a}if(s.data){let{data:a,changed:b}=r(s.data);s.data=a,b&&await y(s)}else s.data=q(),await y(s);return s}async function A(a={}){let b=(await z()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function B(a={}){let b=(await z()).data.providerNodes||[];return a.type&&(b=b.filter(b=>b.type===a.type)),b}async function C(a){return(await z()).data.providerNodes.find(b=>b.id===a)||null}async function D(a){let b=await z();b.data.providerNodes||(b.data.providerNodes=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,defaultSize:a.defaultSize,createdAt:c,updatedAt:c};return b.data.providerNodes.push(d),await y(b),d}async function E(a,b){let c=await z();c.data.providerNodes||(c.data.providerNodes=[]);let d=c.data.providerNodes.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerNodes[d]={...c.data.providerNodes[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.providerNodes[d])}async function F(a){let b=await z();b.data.providerNodes||(b.data.providerNodes=[]);let c=b.data.providerNodes.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.providerNodes.splice(c,1);return await y(b),d}async function G(a={}){let b=(await z()).data.proxyPools||[];return void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),a.testStatus&&(b=b.filter(b=>b.testStatus===a.testStatus)),b.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0))}async function H(a){return((await z()).data.proxyPools||[]).find(b=>b.id===a)||null}async function I(a){let b=await z();b.data.proxyPools||(b.data.proxyPools=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return b.data.proxyPools.push(d),await y(b),d}async function J(a,b){let c=await z();c.data.proxyPools||(c.data.proxyPools=[]);let d=c.data.proxyPools.findIndex(b=>b.id===a);return -1===d?null:(c.data.proxyPools[d]={...c.data.proxyPools[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.proxyPools[d])}async function K(a){let b=await z();b.data.proxyPools||(b.data.proxyPools=[]);let c=b.data.proxyPools.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.proxyPools.splice(c,1);return await y(b),d}async function L(a){let b=await z(),c=b.data.providerConnections.length;b.data.providerConnections=b.data.providerConnections.filter(b=>b.provider!==a);let d=c-b.data.providerConnections.length;return await y(b),d}async function M(a){return(await z()).data.providerConnections.find(b=>b.id===a)||null}async function N(a){let b=await z(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await y(b),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await y(b),await Q(a.provider),h}async function O(a,b){let c=await z(),d=c.data.providerConnections.findIndex(b=>b.id===a);if(-1===d)return null;let e=c.data.providerConnections[d].provider;return c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await y(c),void 0!==b.priority&&await Q(e),c.data.providerConnections[d]}async function P(a){let b=await z(),c=b.data.providerConnections.findIndex(b=>b.id===a);if(-1===c)return!1;let d=b.data.providerConnections[c].provider;return b.data.providerConnections.splice(c,1),await y(b),await Q(d),!0}async function Q(a){let b=await z();b.data.providerConnections&&(b.data.providerConnections.filter(b=>b.provider===a).sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}).forEach((a,b)=>{a.priority=b+1}),await y(b))}async function R(){return(await z()).data.modelAliases||{}}async function S(a,b){let c=await z();c.data.modelAliases[a]=b,await y(c)}async function T(a){let b=await z();delete b.data.modelAliases[a],await y(b)}async function U(){return(await z()).data.customModels||[]}async function V({providerAlias:a,id:b,type:c="llm",name:d}){let e=await z();return e.data.customModels||(e.data.customModels=[]),!e.data.customModels.some(d=>d.providerAlias===a&&d.id===b&&(d.type||"llm")===c)&&(e.data.customModels.push({providerAlias:a,id:b,type:c,name:d||b}),await y(e),!0)}async function W({providerAlias:a,id:b,type:c="llm"}){let d=await z();d.data.customModels&&(d.data.customModels=d.data.customModels.filter(d=>d.providerAlias!==a||d.id!==b||(d.type||"llm")!==c),await y(d))}async function X(a){let b=(await z()).data.mitmAlias||{};return a?b[a]||{}:b}async function Y(a,b){let c=await z();c.data.mitmAlias||(c.data.mitmAlias={}),c.data.mitmAlias[a]=b||{},await y(c)}async function Z(){return(await z()).data.combos||[]}async function $(a){return((await z()).data.combos||[]).find(b=>b.id===a)||null}async function _(a){return((await z()).data.combos||[]).find(b=>b.name===a)||null}async function aa(a){let b=await z();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],kind:a.kind||null,createdAt:c,updatedAt:c};return b.data.combos.push(d),await y(b),d}async function ab(a,b){let c=await z();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await y(c),c.data.combos[d])}async function ac(a){let b=await z();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await y(b),!0)}async function ad(a={}){let b=(await z()).data.apiKeys||[];return void 0!==a.userId&&(b=b.filter(b=>b.userId===a.userId)),a.includeUnassigned||a.forCurrentUser&&(b=b.filter(b=>b.userId===a.forCurrentUser)),b}async function ae(a){return(await z()).data.apiKeys.find(b=>b.id===a)||null}async function af(a){return(await z()).data.apiKeys.find(b=>b.key===a)||null}async function ag(a,b){let c=await z(),d=c.data.apiKeys.find(b=>b.id===a);return d?(d.userId=b,d.assignedAt=new Date().toISOString(),await y(c),d):null}async function ah(a){let b=await z(),c=b.data.apiKeys.find(b=>b.id===a);return!!c&&(c.userId=null,c.assignedAt=null,await y(b),!0)}async function ai(){return((await z()).data.users||[]).map(a=>({...a,passwordHash:void 0}))}async function aj(a){let b=((await z()).data.users||[]).find(b=>b.id===a);return b?{...b,passwordHash:void 0}:null}async function ak(a){return((await z()).data.users||[]).find(b=>b.username===a)||null}async function al({username:a,passwordHash:b,role:c="sub_user",permissions:d=[],displayName:e="",allowedProviders:g,allowedProviderConnectionIds:h,showQuotaTracker:i=!0}){let j=await z();if(j.data.users||(j.data.users=[]),j.data.users.some(b=>b.username===a))throw Error("Username already exists");let k=new Date().toISOString(),l={id:(0,f.A)(),username:a,passwordHash:b,role:c,permissions:d,displayName:e||a,showQuotaTracker:i,createdAt:k,updatedAt:k};return void 0!==g&&(l.allowedProviders=g),void 0!==h&&(l.allowedProviderConnectionIds=h),j.data.users.push(l),await y(j),{...l,passwordHash:void 0}}async function am(a,b){let c=await z();if(!c.data.users)return null;let d=c.data.users.findIndex(b=>b.id===a);if(-1===d)return null;let{passwordHash:e,...f}=b;return c.data.users[d]={...c.data.users[d],...f,updatedAt:new Date().toISOString()},e&&(c.data.users[d].passwordHash=e),await y(c),{...c.data.users[d],passwordHash:void 0}}async function an(a){let b=await z();if(!b.data.users)return!1;let c=b.data.users.findIndex(b=>b.id===a);if(-1===c)return!1;for(let d of(b.data.users.splice(c,1),b.data.apiKeys||[]))d.userId===a&&(d.userId=null,d.assignedAt=null);return await y(b),!0}async function ao(a,b){if(!b)throw Error("machineId is required");let d=await z(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(6844).then(c.bind(c,86844)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:e};return d.data.apiKeys.push(i),await y(d),i}async function ap(a,b){let c=await z(),d=c.data.apiKeys.findIndex(b=>b.id===a);return -1===d?null:(c.data.apiKeys[d]={...c.data.apiKeys[d],...b},await y(c),c.data.apiKeys[d])}async function aq(a){let b=(await z()).data.apiKeys.find(b=>b.key===a);return b&&!1!==b.isActive}async function ar(){let a=await z(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await y(a),c}async function as(){return(await z()).data.settings||{cloudEnabled:!1}}async function at(a){let b=await z();return b.data.settings={...b.data.settings,...a},await y(b),b.data.settings}async function au(){return(await z()).data||q()}async function av(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let{data:b}=r({...q(),...a,settings:{...q().settings,...a.settings&&"object"==typeof a.settings&&!Array.isArray(a.settings)?a.settings:{}}}),c=await z();return c.data=b,await y(c),c.data}async function aw(){let a=(await z()).data.pricing||{},{PROVIDER_PRICING:b}=await c.e(7341).then(c.bind(c,57341)),d={};for(let[c,e]of Object.entries(b))if(d[c]={...e},a[c])for(let[b,e]of Object.entries(a[c]))d[c][b]=d[c][b]?{...d[c][b],...e}:e;for(let[b,c]of Object.entries(a))if(d[b])for(let[a,e]of Object.entries(c))d[b][a]||(d[b][a]=e);else d[b]={...c};return d}async function ax(a,b){if(!b)return null;let d=(await z()).data.pricing||{};if(a&&d[a]?.[b])return d[a][b];if(!n&&o&&j().existsSync(o))try{let a=JSON.parse(j().readFileSync(o,"utf-8")),c=Array.isArray(a?.data)?a.data:[],d=new Set([b,b.includes("/")?b.split("/").pop():b].filter(Boolean)),e=c.find(a=>{let b=String(a?.id||""),c=String(a?.canonical_slug||"");return[...d].some(a=>b===a||c===a||b.endsWith(`/${a}`)||c.endsWith(`/${a}`))});if(e?.pricing){let a=Number(e.pricing.prompt),b=Number(e.pricing.completion),c=Number(e.pricing.input_cache_read),d=Number(e.pricing.internal_reasoning),f=Number(e.pricing.input_cache_write);if(!Number.isNaN(a)&&!Number.isNaN(b))return{input:1e6*a,output:1e6*b,cached:Number.isNaN(c)?1e6*a:1e6*c,reasoning:Number.isNaN(d)?1e6*b:1e6*d,cache_creation:Number.isNaN(f)?1e6*a:1e6*f}}}catch{}let{getPricingForModel:e}=await c.e(7341).then(c.bind(c,57341));return e(a,b)}async function ay(a){let b=await z();for(let[c,d]of(b.data.pricing||(b.data.pricing={}),Object.entries(a)))for(let[a,e]of(b.data.pricing[c]||(b.data.pricing[c]={}),Object.entries(d)))b.data.pricing[c][a]=e;return await y(b),b.data.pricing}async function az(a,b){let c=await z();return c.data.pricing||(c.data.pricing={}),b?c.data.pricing[a]&&(delete c.data.pricing[a][b],0===Object.keys(c.data.pricing[a]).length&&delete c.data.pricing[a]):delete c.data.pricing[a],await y(c),c.data.pricing}async function aA(){let a=await z();return a.data.pricing={},await y(a),a.data.pricing}}};
@@ -38,6 +38,7 @@
38
38
  }
39
39
  ]
40
40
  },
41
+ "/api/cli-tools/antigravity-mitm/inject-auth": {},
41
42
  "/api/v1/audio/transcriptions": {
42
43
  "maxDuration": 300
43
44
  }
@@ -1 +1 @@
1
- globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/5xyYjBoSvv2Kb5BwIi7pF/_buildManifest.js","static/5xyYjBoSvv2Kb5BwIi7pF/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-d1740476c6ab968a.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-3fb4e6ee851037bb.js","static/chunks/main-app-92b26c94bc214d97.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
1
+ globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/SQn85l_D0P4BshNJQkGiZ/_buildManifest.js","static/SQn85l_D0P4BshNJQkGiZ/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-d1740476c6ab968a.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-3fb4e6ee851037bb.js","static/chunks/main-app-92b26c94bc214d97.js"],rootMainFilesTree:{},pages:{"/_app":[]}};