9router 0.4.26 → 0.4.28

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 (778) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +5 -4
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/required-server-files.json +4 -1
  5. package/app/.next/routes-manifest.json +6 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  16. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  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.js.nft.json +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  22. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  34. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  37. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  40. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  52. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  55. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  58. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  61. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  64. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/_global-error/page.js +2 -2
  67. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/_global-error.html +1 -1
  69. package/app/.next/server/app/_global-error.rsc +1 -1
  70. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  71. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  72. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  73. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  74. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  75. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  76. package/app/.next/server/app/_not-found/page.js +2 -2
  77. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  78. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/_not-found.html +1 -1
  80. package/app/.next/server/app/_not-found.rsc +4 -4
  81. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  82. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  83. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  84. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  85. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  86. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  87. package/app/.next/server/app/api/auth/login/route.js +1 -1
  88. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  89. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  90. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +2 -2
  91. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  92. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  94. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  96. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  98. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  101. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  102. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  103. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  104. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  105. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  106. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  108. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  110. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  112. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  114. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/combos/route.js +1 -1
  116. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/health/route.js +1 -1
  118. package/app/.next/server/app/api/init/route.js +1 -1
  119. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  121. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/keys/route.js +1 -1
  123. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/locale/route.js +1 -1
  125. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  126. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  128. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  129. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  130. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  132. package/app/.next/server/app/api/models/alias/route.js +1 -1
  133. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/models/availability/route.js +1 -1
  135. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/models/custom/route.js +1 -1
  137. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  139. package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/models/route.js +1 -1
  141. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/models/test/route.js +1 -1
  143. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  145. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  147. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  148. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  150. package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  152. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  154. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  155. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  157. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  158. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/pricing/route.js +1 -1
  160. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  162. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  164. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  166. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  167. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  169. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  171. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  172. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  173. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/providers/client/route.js +1 -1
  175. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  177. package/app/.next/server/app/api/providers/route.js +1 -1
  178. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  180. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  181. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  183. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  184. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  185. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  187. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  189. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  190. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  191. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/settings/database/route.js +1 -1
  193. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  195. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  196. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/settings/route.js +1 -1
  198. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  199. package/app/.next/server/app/api/shutdown/route.js +1 -1
  200. package/app/.next/server/app/api/tags/route.js +1 -1
  201. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  202. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  203. package/app/.next/server/app/api/translator/load/route.js +1 -1
  204. package/app/.next/server/app/api/translator/save/route.js +1 -1
  205. package/app/.next/server/app/api/translator/send/route.js +1 -1
  206. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  208. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  210. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  212. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  214. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +2 -2
  216. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  217. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  218. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  219. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  221. package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +2 -2
  223. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  224. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  226. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  228. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/usage/history/route.js +1 -1
  230. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  232. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  234. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  236. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  238. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  240. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  242. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  243. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  244. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  246. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  248. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  249. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  251. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  252. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  253. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  254. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  255. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  256. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  258. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  260. package/app/.next/server/app/api/v1/models/route.js +1 -1
  261. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  262. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  263. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  264. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  265. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/v1/route.js +1 -1
  267. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  268. package/app/.next/server/app/api/v1/search/route.js +1 -1
  269. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  270. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  271. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  273. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  275. package/app/.next/server/app/api/version/route.js +1 -1
  276. package/app/.next/server/app/api/version/shutdown/route.js +1 -0
  277. package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -0
  278. package/app/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -0
  279. package/app/.next/server/app/api/version/update/route.js +1 -1
  280. package/app/.next/server/app/callback/page.js +2 -2
  281. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  282. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  283. package/app/.next/server/app/callback.html +1 -1
  284. package/app/.next/server/app/callback.rsc +4 -4
  285. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  286. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  287. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  288. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  289. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  290. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  291. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  292. package/app/.next/server/app/dashboard/basic-chat.rsc +6 -6
  293. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  294. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  295. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  296. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  297. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  298. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  299. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  300. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  301. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  302. package/app/.next/server/app/dashboard/cli-tools.rsc +6 -6
  303. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  304. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  305. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  306. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  307. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  308. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  309. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  310. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  311. package/app/.next/server/app/dashboard/combos.html +1 -1
  312. package/app/.next/server/app/dashboard/combos.rsc +6 -6
  313. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  314. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  315. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  316. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  317. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  318. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  319. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  320. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  321. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  322. package/app/.next/server/app/dashboard/endpoint.rsc +6 -6
  323. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  325. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  328. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  329. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  330. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  331. package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
  332. package/app/.next/server/app/dashboard/media-providers/web.rsc +6 -6
  333. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  334. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  335. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  336. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  337. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  338. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  339. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  340. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  341. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  342. package/app/.next/server/app/dashboard/mitm.html +1 -1
  343. package/app/.next/server/app/dashboard/mitm.rsc +6 -6
  344. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  345. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  346. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  347. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  348. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  349. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  350. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  351. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  352. package/app/.next/server/app/dashboard/profile.html +1 -1
  353. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  354. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  355. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  356. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  357. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  358. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  359. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  360. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  361. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  362. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  363. package/app/.next/server/app/dashboard/providers/new.rsc +6 -6
  364. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  365. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  366. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  367. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  368. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  369. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  370. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  371. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  372. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  373. package/app/.next/server/app/dashboard/providers.html +1 -1
  374. package/app/.next/server/app/dashboard/providers.rsc +6 -6
  375. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  376. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  377. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  378. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  379. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  380. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  381. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  382. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  383. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  384. package/app/.next/server/app/dashboard/proxy-pools.rsc +6 -6
  385. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  386. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  387. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  388. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  389. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  390. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  391. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  392. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  393. package/app/.next/server/app/dashboard/quota.html +2 -2
  394. package/app/.next/server/app/dashboard/quota.rsc +7 -7
  395. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  396. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  397. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  398. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  399. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  400. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  401. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  402. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  403. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  404. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  405. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  406. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  407. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  408. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  409. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  410. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  411. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  412. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  413. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  414. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  415. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  416. package/app/.next/server/app/dashboard/skills.html +1 -1
  417. package/app/.next/server/app/dashboard/skills.rsc +6 -6
  418. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  419. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  420. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  421. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  422. package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  423. package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  425. package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  426. package/app/.next/server/app/dashboard/translator.html +1 -1
  427. package/app/.next/server/app/dashboard/translator.rsc +6 -6
  428. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  429. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  430. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  431. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  432. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  433. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  434. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  435. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  436. package/app/.next/server/app/dashboard/usage.html +1 -1
  437. package/app/.next/server/app/dashboard/usage.rsc +6 -6
  438. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  439. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  440. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  441. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  442. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  443. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  444. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  445. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  446. package/app/.next/server/app/dashboard.html +1 -1
  447. package/app/.next/server/app/dashboard.rsc +6 -6
  448. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  449. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  450. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  451. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +6 -6
  452. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  453. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +4 -4
  454. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  455. package/app/.next/server/app/favicon.ico/route.js +1 -1
  456. package/app/.next/server/app/index.html +1 -1
  457. package/app/.next/server/app/index.rsc +4 -4
  458. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  459. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  460. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  461. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  462. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  463. package/app/.next/server/app/landing/page.js +2 -2
  464. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  465. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  466. package/app/.next/server/app/landing.html +1 -1
  467. package/app/.next/server/app/landing.rsc +5 -5
  468. package/app/.next/server/app/landing.segments/_full.segment.rsc +5 -5
  469. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  470. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  471. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  472. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  473. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  474. package/app/.next/server/app/login/page.js +2 -2
  475. package/app/.next/server/app/login/page.js.nft.json +1 -1
  476. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  477. package/app/.next/server/app/login.html +1 -1
  478. package/app/.next/server/app/login.rsc +5 -5
  479. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  480. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  481. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  482. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  483. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  484. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  485. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  486. package/app/.next/server/app/page.js +2 -2
  487. package/app/.next/server/app/page.js.nft.json +1 -1
  488. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  489. package/app/.next/server/app-paths-manifest.json +5 -4
  490. package/app/.next/server/chunks/1444.js +9 -0
  491. package/app/.next/server/chunks/1574.js +2 -2
  492. package/app/.next/server/chunks/2049.js +1 -1
  493. package/app/.next/server/chunks/3774.js +3 -3
  494. package/app/.next/server/chunks/450.js +1 -1
  495. package/app/.next/server/chunks/4892.js +2 -2
  496. package/app/.next/server/chunks/499.js +9 -0
  497. package/app/.next/server/chunks/6263.js +1 -1
  498. package/app/.next/server/chunks/6283.js +1 -1
  499. package/app/.next/server/chunks/6502.js +2 -2
  500. package/app/.next/server/chunks/6890.js +1 -1
  501. package/app/.next/server/chunks/7061.js +2 -2
  502. package/app/.next/server/chunks/7292.js +9 -0
  503. package/app/.next/server/chunks/7810.js +1 -1
  504. package/app/.next/server/chunks/8035.js +1 -1
  505. package/app/.next/server/chunks/8367.js +2 -2
  506. package/app/.next/server/chunks/8495.js +9 -0
  507. package/app/.next/server/middleware-build-manifest.js +1 -1
  508. package/app/.next/server/middleware.js +3 -3
  509. package/app/.next/server/pages/404.html +1 -1
  510. package/app/.next/server/pages/500.html +1 -1
  511. package/app/.next/static/chunks/{1939-5f1c000b260c0698.js → 1939-d9b80a9e484ae21d.js} +1 -1
  512. package/app/.next/static/chunks/{4156-773921135dfe2c75.js → 4156-3a7b60c65001de9a.js} +3 -3
  513. package/app/.next/static/chunks/505-34993b83fbc3f56a.js +1 -0
  514. package/app/.next/static/chunks/8035-b43a2fdebf8069b1.js +3 -0
  515. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-7890b74e481f9d92.js → page-29ce6662637d64e4.js} +1 -1
  516. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-597b5dde6cf827f1.js +3 -0
  517. package/app/.next/static/chunks/app/_global-error/page-5ea305bd1a1dc348.js +1 -0
  518. package/app/.next/static/chunks/app/api/auth/login/route-5ea305bd1a1dc348.js +1 -0
  519. package/app/.next/static/chunks/app/api/auth/logout/route-5ea305bd1a1dc348.js +1 -0
  520. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-5ea305bd1a1dc348.js +1 -0
  521. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-5ea305bd1a1dc348.js +1 -0
  522. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-5ea305bd1a1dc348.js +1 -0
  523. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-5ea305bd1a1dc348.js +1 -0
  524. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-5ea305bd1a1dc348.js +1 -0
  525. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-5ea305bd1a1dc348.js +1 -0
  526. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-5ea305bd1a1dc348.js +1 -0
  527. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-5ea305bd1a1dc348.js +1 -0
  528. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-5ea305bd1a1dc348.js +1 -0
  529. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-5ea305bd1a1dc348.js +1 -0
  530. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-5ea305bd1a1dc348.js +1 -0
  531. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-5ea305bd1a1dc348.js +1 -0
  532. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-5ea305bd1a1dc348.js +1 -0
  533. package/app/.next/static/chunks/app/api/cloud/auth/route-5ea305bd1a1dc348.js +1 -0
  534. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-5ea305bd1a1dc348.js +1 -0
  535. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-5ea305bd1a1dc348.js +1 -0
  536. package/app/.next/static/chunks/app/api/cloud/models/alias/route-5ea305bd1a1dc348.js +1 -0
  537. package/app/.next/static/chunks/app/api/combos/[id]/route-5ea305bd1a1dc348.js +1 -0
  538. package/app/.next/static/chunks/app/api/combos/route-5ea305bd1a1dc348.js +1 -0
  539. package/app/.next/static/chunks/app/api/health/route-5ea305bd1a1dc348.js +1 -0
  540. package/app/.next/static/chunks/app/api/init/route-5ea305bd1a1dc348.js +1 -0
  541. package/app/.next/static/chunks/app/api/keys/[id]/route-5ea305bd1a1dc348.js +1 -0
  542. package/app/.next/static/chunks/app/api/keys/route-5ea305bd1a1dc348.js +1 -0
  543. package/app/.next/static/chunks/app/api/locale/route-5ea305bd1a1dc348.js +1 -0
  544. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-5ea305bd1a1dc348.js +1 -0
  545. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-5ea305bd1a1dc348.js +1 -0
  546. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-5ea305bd1a1dc348.js +1 -0
  547. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-5ea305bd1a1dc348.js +1 -0
  548. package/app/.next/static/chunks/app/api/models/alias/route-5ea305bd1a1dc348.js +1 -0
  549. package/app/.next/static/chunks/app/api/models/availability/route-5ea305bd1a1dc348.js +1 -0
  550. package/app/.next/static/chunks/app/api/models/custom/route-5ea305bd1a1dc348.js +1 -0
  551. package/app/.next/static/chunks/app/api/models/disabled/route-5ea305bd1a1dc348.js +1 -0
  552. package/app/.next/static/chunks/app/api/models/route-5ea305bd1a1dc348.js +1 -0
  553. package/app/.next/static/chunks/app/api/models/test/route-5ea305bd1a1dc348.js +1 -0
  554. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-5ea305bd1a1dc348.js +1 -0
  555. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-5ea305bd1a1dc348.js +1 -0
  556. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-5ea305bd1a1dc348.js +1 -0
  557. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-5ea305bd1a1dc348.js +1 -0
  558. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-5ea305bd1a1dc348.js +1 -0
  559. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-5ea305bd1a1dc348.js +1 -0
  560. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-5ea305bd1a1dc348.js +1 -0
  561. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-5ea305bd1a1dc348.js +1 -0
  562. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-5ea305bd1a1dc348.js +1 -0
  563. package/app/.next/static/chunks/app/api/pricing/route-5ea305bd1a1dc348.js +1 -0
  564. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-5ea305bd1a1dc348.js +1 -0
  565. package/app/.next/static/chunks/app/api/provider-nodes/route-5ea305bd1a1dc348.js +1 -0
  566. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-5ea305bd1a1dc348.js +1 -0
  567. package/app/.next/static/chunks/app/api/providers/[id]/models/route-5ea305bd1a1dc348.js +1 -0
  568. package/app/.next/static/chunks/app/api/providers/[id]/route-5ea305bd1a1dc348.js +1 -0
  569. package/app/.next/static/chunks/app/api/providers/[id]/test/route-5ea305bd1a1dc348.js +1 -0
  570. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-5ea305bd1a1dc348.js +1 -0
  571. package/app/.next/static/chunks/app/api/providers/client/route-5ea305bd1a1dc348.js +1 -0
  572. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-5ea305bd1a1dc348.js +1 -0
  573. package/app/.next/static/chunks/app/api/providers/route-5ea305bd1a1dc348.js +1 -0
  574. package/app/.next/static/chunks/app/api/providers/suggested-models/route-5ea305bd1a1dc348.js +1 -0
  575. package/app/.next/static/chunks/app/api/providers/test-batch/route-5ea305bd1a1dc348.js +1 -0
  576. package/app/.next/static/chunks/app/api/providers/validate/route-5ea305bd1a1dc348.js +1 -0
  577. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-5ea305bd1a1dc348.js +1 -0
  578. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-5ea305bd1a1dc348.js +1 -0
  579. package/app/.next/static/chunks/app/api/proxy-pools/route-5ea305bd1a1dc348.js +1 -0
  580. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-5ea305bd1a1dc348.js +1 -0
  581. package/app/.next/static/chunks/app/api/settings/database/route-5ea305bd1a1dc348.js +1 -0
  582. package/app/.next/static/chunks/app/api/settings/proxy-test/route-5ea305bd1a1dc348.js +1 -0
  583. package/app/.next/static/chunks/app/api/settings/require-login/route-5ea305bd1a1dc348.js +1 -0
  584. package/app/.next/static/chunks/app/api/settings/route-5ea305bd1a1dc348.js +1 -0
  585. package/app/.next/static/chunks/app/api/shutdown/route-5ea305bd1a1dc348.js +1 -0
  586. package/app/.next/static/chunks/app/api/tags/route-5ea305bd1a1dc348.js +1 -0
  587. package/app/.next/static/chunks/app/api/translator/console-logs/route-5ea305bd1a1dc348.js +1 -0
  588. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-5ea305bd1a1dc348.js +1 -0
  589. package/app/.next/static/chunks/app/api/translator/load/route-5ea305bd1a1dc348.js +1 -0
  590. package/app/.next/static/chunks/app/api/translator/save/route-5ea305bd1a1dc348.js +1 -0
  591. package/app/.next/static/chunks/app/api/translator/send/route-5ea305bd1a1dc348.js +1 -0
  592. package/app/.next/static/chunks/app/api/translator/translate/route-5ea305bd1a1dc348.js +1 -0
  593. package/app/.next/static/chunks/app/api/tunnel/disable/route-5ea305bd1a1dc348.js +1 -0
  594. package/app/.next/static/chunks/app/api/tunnel/enable/route-5ea305bd1a1dc348.js +1 -0
  595. package/app/.next/static/chunks/app/api/tunnel/status/route-5ea305bd1a1dc348.js +1 -0
  596. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-5ea305bd1a1dc348.js +1 -0
  597. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-5ea305bd1a1dc348.js +1 -0
  598. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-5ea305bd1a1dc348.js +1 -0
  599. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-5ea305bd1a1dc348.js +1 -0
  600. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-5ea305bd1a1dc348.js +1 -0
  601. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-5ea305bd1a1dc348.js +1 -0
  602. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-5ea305bd1a1dc348.js +1 -0
  603. package/app/.next/static/chunks/app/api/usage/chart/route-5ea305bd1a1dc348.js +1 -0
  604. package/app/.next/static/chunks/app/api/usage/history/route-5ea305bd1a1dc348.js +1 -0
  605. package/app/.next/static/chunks/app/api/usage/providers/route-5ea305bd1a1dc348.js +1 -0
  606. package/app/.next/static/chunks/app/api/usage/request-details/route-5ea305bd1a1dc348.js +1 -0
  607. package/app/.next/static/chunks/app/api/usage/request-logs/route-5ea305bd1a1dc348.js +1 -0
  608. package/app/.next/static/chunks/app/api/usage/stats/route-5ea305bd1a1dc348.js +1 -0
  609. package/app/.next/static/chunks/app/api/usage/stream/route-5ea305bd1a1dc348.js +1 -0
  610. package/app/.next/static/chunks/app/api/v1/api/chat/route-5ea305bd1a1dc348.js +1 -0
  611. package/app/.next/static/chunks/app/api/v1/audio/speech/route-5ea305bd1a1dc348.js +1 -0
  612. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-5ea305bd1a1dc348.js +1 -0
  613. package/app/.next/static/chunks/app/api/v1/audio/voices/route-5ea305bd1a1dc348.js +1 -0
  614. package/app/.next/static/chunks/app/api/v1/chat/completions/route-5ea305bd1a1dc348.js +1 -0
  615. package/app/.next/static/chunks/app/api/v1/embeddings/route-5ea305bd1a1dc348.js +1 -0
  616. package/app/.next/static/chunks/app/api/v1/images/generations/route-5ea305bd1a1dc348.js +1 -0
  617. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-5ea305bd1a1dc348.js +1 -0
  618. package/app/.next/static/chunks/app/api/v1/messages/route-5ea305bd1a1dc348.js +1 -0
  619. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-5ea305bd1a1dc348.js +1 -0
  620. package/app/.next/static/chunks/app/api/v1/models/info/route-5ea305bd1a1dc348.js +1 -0
  621. package/app/.next/static/chunks/app/api/v1/models/route-5ea305bd1a1dc348.js +1 -0
  622. package/app/.next/static/chunks/app/api/v1/responses/compact/route-5ea305bd1a1dc348.js +1 -0
  623. package/app/.next/static/chunks/app/api/v1/responses/route-5ea305bd1a1dc348.js +1 -0
  624. package/app/.next/static/chunks/app/api/v1/route-5ea305bd1a1dc348.js +1 -0
  625. package/app/.next/static/chunks/app/api/v1/search/route-5ea305bd1a1dc348.js +1 -0
  626. package/app/.next/static/chunks/app/api/v1/web/fetch/route-5ea305bd1a1dc348.js +1 -0
  627. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-5ea305bd1a1dc348.js +1 -0
  628. package/app/.next/static/chunks/app/api/v1beta/models/route-5ea305bd1a1dc348.js +1 -0
  629. package/app/.next/static/chunks/app/api/version/route-5ea305bd1a1dc348.js +1 -0
  630. package/app/.next/static/chunks/app/api/version/shutdown/route-5ea305bd1a1dc348.js +1 -0
  631. package/app/.next/static/chunks/app/api/version/update/route-5ea305bd1a1dc348.js +1 -0
  632. package/app/.next/static/chunks/app/landing/{page-34e119eac6b7e1a4.js → page-0084367666bd9046.js} +1 -1
  633. package/app/.next/static/chunks/app/manifest.webmanifest/route-5ea305bd1a1dc348.js +1 -0
  634. package/app/.next/static/chunks/app/page-5ea305bd1a1dc348.js +1 -0
  635. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-5ea305bd1a1dc348.js +1 -0
  636. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-5ea305bd1a1dc348.js +1 -0
  637. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-5ea305bd1a1dc348.js +1 -0
  638. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-5ea305bd1a1dc348.js +1 -0
  639. package/app/.next/static/css/8c050f20c62e3425.css +1 -0
  640. package/app/.next/static/zRbzYKfSwZoKLIJvdVXO-/_buildManifest.js +1 -0
  641. package/app/node_modules/sql.js/dist/sql-wasm.js +185 -0
  642. package/app/node_modules/sql.js/package.json +58 -0
  643. package/app/package.json +2 -2
  644. package/app/server.js +1 -1
  645. package/app/src/lib/db/adapters/bunSqliteAdapter.js +63 -0
  646. package/app/src/lib/db/adapters/nodeSqliteAdapter.js +84 -0
  647. package/app/src/lib/db/adapters/sqljsAdapter.js +4 -3
  648. package/app/src/lib/updater/updater.js +25 -0
  649. package/app/src/mitm/server.js +1 -1
  650. package/cli.js +15 -13
  651. package/hooks/sqliteRuntime.js +14 -27
  652. package/package.json +1 -1
  653. package/app/.next/static/chunks/505-47d92a147b3d6af5.js +0 -1
  654. package/app/.next/static/chunks/8035-c87b74c7e1a7cf78.js +0 -3
  655. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b150970e241c5c7b.js +0 -1
  656. package/app/.next/static/chunks/app/_global-error/page-20fa0affdf8859be.js +0 -1
  657. package/app/.next/static/chunks/app/api/auth/login/route-20fa0affdf8859be.js +0 -1
  658. package/app/.next/static/chunks/app/api/auth/logout/route-20fa0affdf8859be.js +0 -1
  659. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-20fa0affdf8859be.js +0 -1
  660. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-20fa0affdf8859be.js +0 -1
  661. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-20fa0affdf8859be.js +0 -1
  662. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-20fa0affdf8859be.js +0 -1
  663. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-20fa0affdf8859be.js +0 -1
  664. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-20fa0affdf8859be.js +0 -1
  665. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-20fa0affdf8859be.js +0 -1
  666. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-20fa0affdf8859be.js +0 -1
  667. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-20fa0affdf8859be.js +0 -1
  668. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-20fa0affdf8859be.js +0 -1
  669. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-20fa0affdf8859be.js +0 -1
  670. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-20fa0affdf8859be.js +0 -1
  671. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-20fa0affdf8859be.js +0 -1
  672. package/app/.next/static/chunks/app/api/cloud/auth/route-20fa0affdf8859be.js +0 -1
  673. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-20fa0affdf8859be.js +0 -1
  674. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-20fa0affdf8859be.js +0 -1
  675. package/app/.next/static/chunks/app/api/cloud/models/alias/route-20fa0affdf8859be.js +0 -1
  676. package/app/.next/static/chunks/app/api/combos/[id]/route-20fa0affdf8859be.js +0 -1
  677. package/app/.next/static/chunks/app/api/combos/route-20fa0affdf8859be.js +0 -1
  678. package/app/.next/static/chunks/app/api/health/route-20fa0affdf8859be.js +0 -1
  679. package/app/.next/static/chunks/app/api/init/route-20fa0affdf8859be.js +0 -1
  680. package/app/.next/static/chunks/app/api/keys/[id]/route-20fa0affdf8859be.js +0 -1
  681. package/app/.next/static/chunks/app/api/keys/route-20fa0affdf8859be.js +0 -1
  682. package/app/.next/static/chunks/app/api/locale/route-20fa0affdf8859be.js +0 -1
  683. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-20fa0affdf8859be.js +0 -1
  684. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-20fa0affdf8859be.js +0 -1
  685. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-20fa0affdf8859be.js +0 -1
  686. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-20fa0affdf8859be.js +0 -1
  687. package/app/.next/static/chunks/app/api/models/alias/route-20fa0affdf8859be.js +0 -1
  688. package/app/.next/static/chunks/app/api/models/availability/route-20fa0affdf8859be.js +0 -1
  689. package/app/.next/static/chunks/app/api/models/custom/route-20fa0affdf8859be.js +0 -1
  690. package/app/.next/static/chunks/app/api/models/disabled/route-20fa0affdf8859be.js +0 -1
  691. package/app/.next/static/chunks/app/api/models/route-20fa0affdf8859be.js +0 -1
  692. package/app/.next/static/chunks/app/api/models/test/route-20fa0affdf8859be.js +0 -1
  693. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-20fa0affdf8859be.js +0 -1
  694. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-20fa0affdf8859be.js +0 -1
  695. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-20fa0affdf8859be.js +0 -1
  696. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-20fa0affdf8859be.js +0 -1
  697. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-20fa0affdf8859be.js +0 -1
  698. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-20fa0affdf8859be.js +0 -1
  699. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-20fa0affdf8859be.js +0 -1
  700. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-20fa0affdf8859be.js +0 -1
  701. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-20fa0affdf8859be.js +0 -1
  702. package/app/.next/static/chunks/app/api/pricing/route-20fa0affdf8859be.js +0 -1
  703. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-20fa0affdf8859be.js +0 -1
  704. package/app/.next/static/chunks/app/api/provider-nodes/route-20fa0affdf8859be.js +0 -1
  705. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-20fa0affdf8859be.js +0 -1
  706. package/app/.next/static/chunks/app/api/providers/[id]/models/route-20fa0affdf8859be.js +0 -1
  707. package/app/.next/static/chunks/app/api/providers/[id]/route-20fa0affdf8859be.js +0 -1
  708. package/app/.next/static/chunks/app/api/providers/[id]/test/route-20fa0affdf8859be.js +0 -1
  709. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-20fa0affdf8859be.js +0 -1
  710. package/app/.next/static/chunks/app/api/providers/client/route-20fa0affdf8859be.js +0 -1
  711. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-20fa0affdf8859be.js +0 -1
  712. package/app/.next/static/chunks/app/api/providers/route-20fa0affdf8859be.js +0 -1
  713. package/app/.next/static/chunks/app/api/providers/suggested-models/route-20fa0affdf8859be.js +0 -1
  714. package/app/.next/static/chunks/app/api/providers/test-batch/route-20fa0affdf8859be.js +0 -1
  715. package/app/.next/static/chunks/app/api/providers/validate/route-20fa0affdf8859be.js +0 -1
  716. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-20fa0affdf8859be.js +0 -1
  717. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-20fa0affdf8859be.js +0 -1
  718. package/app/.next/static/chunks/app/api/proxy-pools/route-20fa0affdf8859be.js +0 -1
  719. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-20fa0affdf8859be.js +0 -1
  720. package/app/.next/static/chunks/app/api/settings/database/route-20fa0affdf8859be.js +0 -1
  721. package/app/.next/static/chunks/app/api/settings/proxy-test/route-20fa0affdf8859be.js +0 -1
  722. package/app/.next/static/chunks/app/api/settings/require-login/route-20fa0affdf8859be.js +0 -1
  723. package/app/.next/static/chunks/app/api/settings/route-20fa0affdf8859be.js +0 -1
  724. package/app/.next/static/chunks/app/api/shutdown/route-20fa0affdf8859be.js +0 -1
  725. package/app/.next/static/chunks/app/api/tags/route-20fa0affdf8859be.js +0 -1
  726. package/app/.next/static/chunks/app/api/translator/console-logs/route-20fa0affdf8859be.js +0 -1
  727. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-20fa0affdf8859be.js +0 -1
  728. package/app/.next/static/chunks/app/api/translator/load/route-20fa0affdf8859be.js +0 -1
  729. package/app/.next/static/chunks/app/api/translator/save/route-20fa0affdf8859be.js +0 -1
  730. package/app/.next/static/chunks/app/api/translator/send/route-20fa0affdf8859be.js +0 -1
  731. package/app/.next/static/chunks/app/api/translator/translate/route-20fa0affdf8859be.js +0 -1
  732. package/app/.next/static/chunks/app/api/tunnel/disable/route-20fa0affdf8859be.js +0 -1
  733. package/app/.next/static/chunks/app/api/tunnel/enable/route-20fa0affdf8859be.js +0 -1
  734. package/app/.next/static/chunks/app/api/tunnel/status/route-20fa0affdf8859be.js +0 -1
  735. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-20fa0affdf8859be.js +0 -1
  736. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-20fa0affdf8859be.js +0 -1
  737. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-20fa0affdf8859be.js +0 -1
  738. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-20fa0affdf8859be.js +0 -1
  739. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-20fa0affdf8859be.js +0 -1
  740. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-20fa0affdf8859be.js +0 -1
  741. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-20fa0affdf8859be.js +0 -1
  742. package/app/.next/static/chunks/app/api/usage/chart/route-20fa0affdf8859be.js +0 -1
  743. package/app/.next/static/chunks/app/api/usage/history/route-20fa0affdf8859be.js +0 -1
  744. package/app/.next/static/chunks/app/api/usage/providers/route-20fa0affdf8859be.js +0 -1
  745. package/app/.next/static/chunks/app/api/usage/request-details/route-20fa0affdf8859be.js +0 -1
  746. package/app/.next/static/chunks/app/api/usage/request-logs/route-20fa0affdf8859be.js +0 -1
  747. package/app/.next/static/chunks/app/api/usage/stats/route-20fa0affdf8859be.js +0 -1
  748. package/app/.next/static/chunks/app/api/usage/stream/route-20fa0affdf8859be.js +0 -1
  749. package/app/.next/static/chunks/app/api/v1/api/chat/route-20fa0affdf8859be.js +0 -1
  750. package/app/.next/static/chunks/app/api/v1/audio/speech/route-20fa0affdf8859be.js +0 -1
  751. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-20fa0affdf8859be.js +0 -1
  752. package/app/.next/static/chunks/app/api/v1/audio/voices/route-20fa0affdf8859be.js +0 -1
  753. package/app/.next/static/chunks/app/api/v1/chat/completions/route-20fa0affdf8859be.js +0 -1
  754. package/app/.next/static/chunks/app/api/v1/embeddings/route-20fa0affdf8859be.js +0 -1
  755. package/app/.next/static/chunks/app/api/v1/images/generations/route-20fa0affdf8859be.js +0 -1
  756. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-20fa0affdf8859be.js +0 -1
  757. package/app/.next/static/chunks/app/api/v1/messages/route-20fa0affdf8859be.js +0 -1
  758. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-20fa0affdf8859be.js +0 -1
  759. package/app/.next/static/chunks/app/api/v1/models/info/route-20fa0affdf8859be.js +0 -1
  760. package/app/.next/static/chunks/app/api/v1/models/route-20fa0affdf8859be.js +0 -1
  761. package/app/.next/static/chunks/app/api/v1/responses/compact/route-20fa0affdf8859be.js +0 -1
  762. package/app/.next/static/chunks/app/api/v1/responses/route-20fa0affdf8859be.js +0 -1
  763. package/app/.next/static/chunks/app/api/v1/route-20fa0affdf8859be.js +0 -1
  764. package/app/.next/static/chunks/app/api/v1/search/route-20fa0affdf8859be.js +0 -1
  765. package/app/.next/static/chunks/app/api/v1/web/fetch/route-20fa0affdf8859be.js +0 -1
  766. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-20fa0affdf8859be.js +0 -1
  767. package/app/.next/static/chunks/app/api/v1beta/models/route-20fa0affdf8859be.js +0 -1
  768. package/app/.next/static/chunks/app/api/version/route-20fa0affdf8859be.js +0 -1
  769. package/app/.next/static/chunks/app/api/version/update/route-20fa0affdf8859be.js +0 -1
  770. package/app/.next/static/chunks/app/manifest.webmanifest/route-20fa0affdf8859be.js +0 -1
  771. package/app/.next/static/chunks/app/page-20fa0affdf8859be.js +0 -1
  772. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-20fa0affdf8859be.js +0 -1
  773. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-20fa0affdf8859be.js +0 -1
  774. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-20fa0affdf8859be.js +0 -1
  775. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-20fa0affdf8859be.js +0 -1
  776. package/app/.next/static/css/5d8cd780e73c8876.css +0 -1
  777. package/app/.next/static/gkZl0mznmfSjxMQgK_CRr/_buildManifest.js +0 -1
  778. /package/app/.next/static/{gkZl0mznmfSjxMQgK_CRr → zRbzYKfSwZoKLIJvdVXO-}/_ssgManifest.js +0 -0
@@ -24,7 +24,7 @@ Private-Lines: `+u+`\r
24
24
  Private-MAC: `+b.digest().toHex()+`\r
25
25
  `,i};Ia.publicKeyToOpenSSH=function(e,t){var a="ssh-rsa";t=t||"";var r=Ce.util.createBuffer();return Er(r,a),xt(r,e.e),xt(r,e.n),a+" "+Ce.util.encode64(r.bytes())+" "+t};Ia.privateKeyToOpenSSH=function(e,t){return t?Ce.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Ce.pki.privateKeyToPem(e)};Ia.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||Ce.md.md5.create(),r="ssh-rsa",n=Ce.util.createBuffer();Er(n,r),xt(n,e.e),xt(n,e.n),a.start(),a.update(n.getBytes());var i=a.digest();if(t.encoding==="hex"){var s=i.toHex();return t.delimiter?s.match(/.{2}/g).join(t.delimiter):s}else{if(t.encoding==="binary")return i.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return i};function xt(e,t){var a=t.toString(16);a[0]>="8"&&(a="00"+a);var r=Ce.util.hexToBytes(a);e.putInt32(r.length),e.putBytes(r)}function Er(e,t){e.putInt32(t.length),e.putString(t)}function Ta(){for(var e=Ce.md.sha1.create(),t=arguments.length,a=0;a<t;++a)e.update(arguments[a]);return e.digest()}});var wo=V((Rh,Bo)=>{Bo.exports=$();Lt();Qs();lt();$r();wr();co();ur();yo();Co();xo();gn();ia();jt();cn();Cn();Io();xn();dn();tn();da();rt();nn();bo();Bn();ne()});var Lo=V((Lh,Ro)=>{var _o=require("path"),Ze=require("fs"),et=wo(),{MITM_DIR:Aa}=ir(),qt=_o.join(Aa,"rootCA.key"),Bt=_o.join(Aa,"rootCA.crt");function No(e){try{let t=et.pki.certificateFromPem(Ze.readFileSync(e,"utf8")),a=new Date(Date.now()+720*60*60*1e3);return t.validity.notAfter<a}catch{return!0}}async function id(){let e=Ze.existsSync(qt)&&Ze.existsSync(Bt);if(e&&!No(Bt))return console.log("\u2705 Root CA already exists"),{key:qt,cert:Bt};if(e){console.log("\u{1F510} Root CA expired or expiring soon \u2014 regenerating...");try{Ze.unlinkSync(qt)}catch{}try{Ze.unlinkSync(Bt)}catch{}}Ze.existsSync(Aa)||Ze.mkdirSync(Aa,{recursive:!0}),console.log("\u{1F510} Generating Root CA certificate...");let t=et.pki.rsa.generateKeyPair(2048),a=et.pki.createCertificate();a.publicKey=t.publicKey,a.serialNumber="01",a.validity.notBefore=new Date,a.validity.notAfter=new Date,a.validity.notAfter.setFullYear(a.validity.notBefore.getFullYear()+10);let r=[{name:"commonName",value:"9Router MITM Root CA"},{name:"organizationName",value:"9Router"},{name:"countryName",value:"US"}];a.setSubject(r),a.setIssuer(r),a.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),a.sign(t.privateKey,et.md.sha256.create());let n=et.pki.privateKeyToPem(t.privateKey),i=et.pki.certificateToPem(a);return Ze.writeFileSync(qt,n),Ze.writeFileSync(Bt,i),console.log("\u2705 Root CA generated successfully"),{key:qt,cert:Bt}}function sd(){if(!Ze.existsSync(qt)||!Ze.existsSync(Bt))throw new Error("Root CA not found. Generate it first.");let e=Ze.readFileSync(qt,"utf8"),t=Ze.readFileSync(Bt,"utf8");return{key:et.pki.privateKeyFromPem(e),cert:et.pki.certificateFromPem(t)}}function od(e,t){let a=et.pki.rsa.generateKeyPair(2048),r=et.pki.createCertificate();return r.publicKey=a.publicKey,r.serialNumber=Math.floor(Math.random()*1e6).toString(),r.validity.notBefore=new Date,r.validity.notAfter=new Date,r.validity.notAfter.setFullYear(r.validity.notBefore.getFullYear()+1),r.setSubject([{name:"commonName",value:e}]),r.setIssuer(t.cert.subject.attributes),r.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:e},{type:2,value:`*.${e}`}]}]),r.sign(t.key,et.md.sha256.create()),{key:et.pki.privateKeyToPem(a.privateKey),cert:et.pki.certificateToPem(r)}}Ro.exports={generateRootCA:id,loadRootCA:sd,generateLeafCert:od,isCertExpired:No,ROOT_CA_CERT_PATH:Bt,ROOT_CA_KEY_PATH:qt}});var ko=V((Ph,Do)=>{var Dh=require("path"),kh=require("fs"),{MITM_DIR:Uh}=ir(),{generateRootCA:ud,loadRootCA:ld,generateLeafCert:cd}=Lo();async function fd(){return await ud()}function dd(e){try{let t=ld(),a=cd(e,t);return{key:a.key,cert:a.cert}}catch(t){return console.error(`Failed to generate cert for ${e}:`,t.message),null}}Do.exports={generateCert:fd,getCertForDomain:dd}});var St=V(ba=>{"use strict";ba.getBooleanOption=(e,t)=>{let a=!1;if(t in e&&typeof(a=e[t])!="boolean")throw new TypeError(`Expected the "${t}" option to be a boolean`);return a};ba.cppdb=Symbol();ba.inspect=Symbol.for("nodejs.util.inspect.custom")});var zn=V((Vh,Uo)=>{"use strict";var Gn={value:"SqliteError",writable:!0,enumerable:!1,configurable:!0};function tr(e,t){if(new.target!==tr)return new tr(e,t);if(typeof t!="string")throw new TypeError("Expected second argument to be a string");Error.call(this,e),Gn.value=""+e,Object.defineProperty(this,"message",Gn),Error.captureStackTrace(this,tr),this.code=t}Object.setPrototypeOf(tr,Error);Object.setPrototypeOf(tr.prototype,Error.prototype);Object.defineProperty(tr.prototype,"name",Gn);Uo.exports=tr});var Oo=V((Fh,Po)=>{var Ba=require("path").sep||"/";Po.exports=pd;function pd(e){if(typeof e!="string"||e.length<=7||e.substring(0,7)!="file://")throw new TypeError("must pass in a file:// URI to convert to a file path");var t=decodeURI(e.substring(7)),a=t.indexOf("/"),r=t.substring(0,a),n=t.substring(a+1);return r=="localhost"&&(r=""),r&&(r=Ba+Ba+r),n=n.replace(/^(.+)\|/,"$1:"),Ba=="\\"&&(n=n.replace(/\//g,"\\")),/^.+\:/.test(n)||(n=Ba+n),r+n}});var qo=V((xr,Ko)=>{var Qn=require("fs"),_a=require("path"),hd=Oo(),wa=_a.join,yd=_a.dirname,Vo=Qn.accessSync&&function(e){try{Qn.accessSync(e)}catch{return!1}return!0}||Qn.existsSync||_a.existsSync,Fo={arrow:process.env.NODE_BINDINGS_ARROW||" \u2192 ",compiled:process.env.NODE_BINDINGS_COMPILED_DIR||"compiled",platform:process.platform,arch:process.arch,nodePreGyp:"node-v"+process.versions.modules+"-"+process.platform+"-"+process.arch,version:process.versions.node,bindings:"bindings.node",try:[["module_root","build","bindings"],["module_root","build","Debug","bindings"],["module_root","build","Release","bindings"],["module_root","out","Debug","bindings"],["module_root","Debug","bindings"],["module_root","out","Release","bindings"],["module_root","Release","bindings"],["module_root","build","default","bindings"],["module_root","compiled","version","platform","arch","bindings"],["module_root","addon-build","release","install-root","bindings"],["module_root","addon-build","debug","install-root","bindings"],["module_root","addon-build","default","install-root","bindings"],["module_root","lib","binding","nodePreGyp","bindings"]]};function gd(e){typeof e=="string"?e={bindings:e}:e||(e={}),Object.keys(Fo).map(function(u){u in e||(e[u]=Fo[u])}),e.module_root||(e.module_root=xr.getRoot(xr.getFileName())),_a.extname(e.bindings)!=".node"&&(e.bindings+=".node");for(var t=typeof __webpack_require__=="function"?__non_webpack_require__:require,a=[],r=0,n=e.try.length,i,s,o;r<n;r++){i=wa.apply(null,e.try[r].map(function(u){return e[u]||u})),a.push(i);try{return s=e.path?t.resolve(i):t(i),e.path||(s.path=i),s}catch(u){if(u.code!=="MODULE_NOT_FOUND"&&u.code!=="QUALIFIED_PATH_RESOLUTION_FAILED"&&!/not find/i.test(u.message))throw u}}throw o=new Error(`Could not locate the bindings file. Tried:
26
26
  `+a.map(function(u){return e.arrow+u}).join(`
27
- `)),o.tries=a,o}Ko.exports=xr=gd;xr.getFileName=function(t){var a=Error.prepareStackTrace,r=Error.stackTraceLimit,n={},i;Error.stackTraceLimit=10,Error.prepareStackTrace=function(o,u){for(var l=0,c=u.length;l<c;l++)if(i=u[l].getFileName(),i!==__filename)if(t){if(i!==t)return}else return},Error.captureStackTrace(n),n.stack,Error.prepareStackTrace=a,Error.stackTraceLimit=r;var s="file://";return i.indexOf(s)===0&&(i=hd(i)),i};xr.getRoot=function(t){for(var a=yd(t),r;;){if(a==="."&&(a=process.cwd()),Vo(wa(a,"package.json"))||Vo(wa(a,"node_modules")))return a;if(r===a)throw new Error('Could not find module root given file: "'+t+'". Do you have a `package.json` file? ');r=a,a=wa(a,"..")}}});var Mo=V(Mt=>{"use strict";var{cppdb:ft}=St();Mt.prepare=function(t){return this[ft].prepare(t,this,!1)};Mt.exec=function(t){return this[ft].exec(t),this};Mt.close=function(){return this[ft].close(),this};Mt.loadExtension=function(...t){return this[ft].loadExtension(...t),this};Mt.defaultSafeIntegers=function(...t){return this[ft].defaultSafeIntegers(...t),this};Mt.unsafeMode=function(...t){return this[ft].unsafeMode(...t),this};Mt.getters={name:{get:function(){return this[ft].name},enumerable:!0},open:{get:function(){return this[ft].open},enumerable:!0},inTransaction:{get:function(){return this[ft].inTransaction},enumerable:!0},readonly:{get:function(){return this[ft].readonly},enumerable:!0},memory:{get:function(){return this[ft].memory},enumerable:!0}}});var zo=V((qh,Go)=>{"use strict";var{cppdb:vd}=St(),Ho=new WeakMap;Go.exports=function(t){if(typeof t!="function")throw new TypeError("Expected first argument to be a function");let a=this[vd],r=md(a,this),{apply:n}=Function.prototype,i={default:{value:Na(n,t,a,r.default)},deferred:{value:Na(n,t,a,r.deferred)},immediate:{value:Na(n,t,a,r.immediate)},exclusive:{value:Na(n,t,a,r.exclusive)},database:{value:this,enumerable:!0}};return Object.defineProperties(i.default.value,i),Object.defineProperties(i.deferred.value,i),Object.defineProperties(i.immediate.value,i),Object.defineProperties(i.exclusive.value,i),i.default.value};var md=(e,t)=>{let a=Ho.get(e);if(!a){let r={commit:e.prepare("COMMIT",t,!1),rollback:e.prepare("ROLLBACK",t,!1),savepoint:e.prepare("SAVEPOINT ` _bs3. `",t,!1),release:e.prepare("RELEASE ` _bs3. `",t,!1),rollbackTo:e.prepare("ROLLBACK TO ` _bs3. `",t,!1)};Ho.set(e,a={default:Object.assign({begin:e.prepare("BEGIN",t,!1)},r),deferred:Object.assign({begin:e.prepare("BEGIN DEFERRED",t,!1)},r),immediate:Object.assign({begin:e.prepare("BEGIN IMMEDIATE",t,!1)},r),exclusive:Object.assign({begin:e.prepare("BEGIN EXCLUSIVE",t,!1)},r)})}return a},Na=(e,t,a,{begin:r,commit:n,rollback:i,savepoint:s,release:o,rollbackTo:u})=>function(){let c,f,y;a.inTransaction?(c=s,f=o,y=u):(c=r,f=n,y=i),c.run();try{let v=e.call(t,this,arguments);if(v&&typeof v.then=="function")throw new TypeError("Transaction function cannot return a promise");return f.run(),v}catch(v){throw a.inTransaction&&(y.run(),y!==i&&f.run()),v}}});var jo=V((Mh,Qo)=>{"use strict";var{getBooleanOption:Cd,cppdb:Ed}=St();Qo.exports=function(t,a){if(a==null&&(a={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof a!="object")throw new TypeError("Expected second argument to be an options object");let r=Cd(a,"simple"),n=this[Ed].prepare(`PRAGMA ${t}`,this,!0);return r?n.pluck().get():n.all()}});var Wo=V((Hh,Yo)=>{"use strict";var xd=require("fs"),Sd=require("path"),{promisify:Td}=require("util"),{cppdb:Id}=St(),$o=Td(xd.access);Yo.exports=async function(t,a){if(a==null&&(a={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof a!="object")throw new TypeError("Expected second argument to be an options object");t=t.trim();let r="attached"in a?a.attached:"main",n="progress"in a?a.progress:null;if(!t)throw new TypeError("Backup filename cannot be an empty string");if(t===":memory:")throw new TypeError('Invalid backup filename ":memory:"');if(typeof r!="string")throw new TypeError('Expected the "attached" option to be a string');if(!r)throw new TypeError('The "attached" option cannot be an empty string');if(n!=null&&typeof n!="function")throw new TypeError('Expected the "progress" option to be a function');await $o(Sd.dirname(t)).catch(()=>{throw new TypeError("Cannot save backup because the directory does not exist")});let i=await $o(t).then(()=>!1,()=>!0);return Ad(this[Id].backup(this,r,t,i),n||null)};var Ad=(e,t)=>{let a=0,r=!0;return new Promise((n,i)=>{setImmediate(function s(){try{let o=e.transfer(a);if(!o.remainingPages){e.close(),n(o);return}if(r&&(r=!1,a=100),t){let u=t(o);if(u!==void 0)if(typeof u=="number"&&u===u)a=Math.max(0,Math.min(2147483647,Math.round(u)));else throw new TypeError("Expected progress callback to return a number or undefined")}setImmediate(s)}catch(o){e.close(),i(o)}})})}});var Jo=V((Gh,Xo)=>{"use strict";var{cppdb:bd}=St();Xo.exports=function(t){if(t==null&&(t={}),typeof t!="object")throw new TypeError("Expected first argument to be an options object");let a="attached"in t?t.attached:"main";if(typeof a!="string")throw new TypeError('Expected the "attached" option to be a string');if(!a)throw new TypeError('The "attached" option cannot be an empty string');return this[bd].serialize(a)}});var eu=V((zh,Zo)=>{"use strict";var{getBooleanOption:Ra,cppdb:Bd}=St();Zo.exports=function(t,a,r){if(a==null&&(a={}),typeof a=="function"&&(r=a,a={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof r!="function")throw new TypeError("Expected last argument to be a function");if(typeof a!="object")throw new TypeError("Expected second argument to be an options object");if(!t)throw new TypeError("User-defined function name cannot be an empty string");let n="safeIntegers"in a?+Ra(a,"safeIntegers"):2,i=Ra(a,"deterministic"),s=Ra(a,"directOnly"),o=Ra(a,"varargs"),u=-1;if(!o){if(u=r.length,!Number.isInteger(u)||u<0)throw new TypeError("Expected function.length to be a positive integer");if(u>100)throw new RangeError("User-defined functions cannot have more than 100 arguments")}return this[Bd].function(r,t,u,n,i,s),this}});var au=V((Qh,ru)=>{"use strict";var{getBooleanOption:La,cppdb:wd}=St();ru.exports=function(t,a){if(typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof a!="object"||a===null)throw new TypeError("Expected second argument to be an options object");if(!t)throw new TypeError("User-defined function name cannot be an empty string");let r="start"in a?a.start:null,n=jn(a,"step",!0),i=jn(a,"inverse",!1),s=jn(a,"result",!1),o="safeIntegers"in a?+La(a,"safeIntegers"):2,u=La(a,"deterministic"),l=La(a,"directOnly"),c=La(a,"varargs"),f=-1;if(!c&&(f=Math.max(tu(n),i?tu(i):0),f>0&&(f-=1),f>100))throw new RangeError("User-defined functions cannot have more than 100 arguments");return this[wd].aggregate(r,n,i,s,t,f,o,u,l),this};var jn=(e,t,a)=>{let r=t in e?e[t]:null;if(typeof r=="function")return r;if(r!=null)throw new TypeError(`Expected the "${t}" option to be a function`);if(a)throw new TypeError(`Missing required option "${t}"`);return null},tu=({length:e})=>{if(Number.isInteger(e)&&e>=0)return e;throw new TypeError("Expected function.length to be a positive integer")}});var ou=V((jh,su)=>{"use strict";var{cppdb:_d}=St();su.exports=function(t,a){if(typeof t!="string")throw new TypeError("Expected first argument to be a string");if(!t)throw new TypeError("Virtual table module name cannot be an empty string");let r=!1;if(typeof a=="object"&&a!==null)r=!0,a=Od(iu(a,"used",t));else{if(typeof a!="function")throw new TypeError("Expected second argument to be a function or a table definition object");a=Nd(a)}return this[_d].table(a,t,r),this};function Nd(e){return function(a,r,n,...i){let s={module:a,database:r,table:n},o=Ud.call(e,s,i);if(typeof o!="object"||o===null)throw new TypeError(`Virtual table module "${a}" did not return a table definition object`);return iu(o,"returned",a)}}function iu(e,t,a){if(!Kr.call(e,"rows"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition without a "rows" property`);if(!Kr.call(e,"columns"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition without a "columns" property`);let r=e.rows;if(typeof r!="function"||Object.getPrototypeOf(r)!==Pd)throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "rows" property (should be a generator function)`);let n=e.columns;if(!Array.isArray(n)||!(n=[...n]).every(l=>typeof l=="string"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "columns" property (should be an array of strings)`);if(n.length!==new Set(n).size)throw new TypeError(`Virtual table module "${a}" ${t} a table definition with duplicate column names`);if(!n.length)throw new RangeError(`Virtual table module "${a}" ${t} a table definition with zero columns`);let i;if(Kr.call(e,"parameters")){if(i=e.parameters,!Array.isArray(i)||!(i=[...i]).every(l=>typeof l=="string"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "parameters" property (should be an array of strings)`)}else i=kd(r);if(i.length!==new Set(i).size)throw new TypeError(`Virtual table module "${a}" ${t} a table definition with duplicate parameter names`);if(i.length>32)throw new RangeError(`Virtual table module "${a}" ${t} a table definition with more than the maximum number of 32 parameters`);for(let l of i)if(n.includes(l))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with column "${l}" which was ambiguously defined as both a column and parameter`);let s=2;if(Kr.call(e,"safeIntegers")){let l=e.safeIntegers;if(typeof l!="boolean")throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "safeIntegers" property (should be a boolean)`);s=+l}let o=!1;if(Kr.call(e,"directOnly")&&(o=e.directOnly,typeof o!="boolean"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "directOnly" property (should be a boolean)`);return[`CREATE TABLE x(${[...i.map(nu).map(l=>`${l} HIDDEN`),...n.map(nu)].join(", ")});`,Rd(r,new Map(n.map((l,c)=>[l,i.length+c])),a),i,s,o]}function Rd(e,t,a){return function*(...n){let i=n.map(s=>Buffer.isBuffer(s)?Buffer.from(s):s);for(let s=0;s<t.size;++s)i.push(null);for(let s of e(...n))if(Array.isArray(s))Ld(s,i,t.size,a),yield i;else if(typeof s=="object"&&s!==null)Dd(s,i,t,a),yield i;else throw new TypeError(`Virtual table module "${a}" yielded something that isn't a valid row object`)}}function Ld(e,t,a,r){if(e.length!==a)throw new TypeError(`Virtual table module "${r}" yielded a row with an incorrect number of columns`);let n=t.length-a;for(let i=0;i<a;++i)t[i+n]=e[i]}function Dd(e,t,a,r){let n=0;for(let i of Object.keys(e)){let s=a.get(i);if(s===void 0)throw new TypeError(`Virtual table module "${r}" yielded a row with an undeclared column "${i}"`);t[s]=e[i],n+=1}if(n!==a.size)throw new TypeError(`Virtual table module "${r}" yielded a row with missing columns`)}function kd({length:e}){if(!Number.isInteger(e)||e<0)throw new TypeError("Expected function.length to be a positive integer");let t=[];for(let a=0;a<e;++a)t.push(`$${a+1}`);return t}var{hasOwnProperty:Kr}=Object.prototype,{apply:Ud}=Function.prototype,Pd=Object.getPrototypeOf(function*(){}),nu=e=>`"${e.replace(/"/g,'""')}"`,Od=e=>()=>e});var lu=V(($h,uu)=>{"use strict";var Vd=function(){};uu.exports=function(t,a){return Object.assign(new Vd,this)}});var pu=V((Yh,du)=>{"use strict";var Fd=require("fs"),cu=require("path"),Da=St(),Kd=zn(),fu;function He(e,t){if(new.target==null)return new He(e,t);let a;if(Buffer.isBuffer(e)&&(a=e,e=":memory:"),e==null&&(e=""),t==null&&(t={}),typeof e!="string")throw new TypeError("Expected first argument to be a string");if(typeof t!="object")throw new TypeError("Expected second argument to be an options object");if("readOnly"in t)throw new TypeError('Misspelled option "readOnly" should be "readonly"');if("memory"in t)throw new TypeError('Option "memory" was removed in v7.0.0 (use ":memory:" filename instead)');let r=e.trim(),n=r===""||r===":memory:",i=Da.getBooleanOption(t,"readonly"),s=Da.getBooleanOption(t,"fileMustExist"),o="timeout"in t?t.timeout:5e3,u="verbose"in t?t.verbose:null,l="nativeBinding"in t?t.nativeBinding:null;if(i&&n&&!a)throw new TypeError("In-memory/temporary databases cannot be readonly");if(!Number.isInteger(o)||o<0)throw new TypeError('Expected the "timeout" option to be a positive integer');if(o>2147483647)throw new RangeError('Option "timeout" cannot be greater than 2147483647');if(u!=null&&typeof u!="function")throw new TypeError('Expected the "verbose" option to be a function');if(l!=null&&typeof l!="string"&&typeof l!="object")throw new TypeError('Expected the "nativeBinding" option to be a string or addon object');let c;if(l==null?c=fu||(fu=qo()("better_sqlite3.node")):typeof l=="string"?c=(typeof __non_webpack_require__=="function"?__non_webpack_require__:require)(cu.resolve(l).replace(/(\.node)?$/,".node")):c=l,c.isInitialized||(c.setErrorConstructor(Kd),c.isInitialized=!0),!n&&!r.startsWith("file:")&&!Fd.existsSync(cu.dirname(r)))throw new TypeError("Cannot open database because the directory does not exist");Object.defineProperties(this,{[Da.cppdb]:{value:new c.Database(r,e,n,i,s,o,u||null,a||null)},...rr.getters})}var rr=Mo();He.prototype.prepare=rr.prepare;He.prototype.transaction=zo();He.prototype.pragma=jo();He.prototype.backup=Wo();He.prototype.serialize=Jo();He.prototype.function=eu();He.prototype.aggregate=au();He.prototype.table=ou();He.prototype.loadExtension=rr.loadExtension;He.prototype.exec=rr.exec;He.prototype.close=rr.close;He.prototype.defaultSafeIntegers=rr.defaultSafeIntegers;He.prototype.unsafeMode=rr.unsafeMode;He.prototype[Da.inspect]=lu();du.exports=He});var hu=V((Wh,$n)=>{"use strict";$n.exports=pu();$n.exports.SqliteError=zn()});var mu=V((Xh,vu)=>{var Yn=require("fs"),Wn=require("path"),{DATA_DIR:Xn}=ir(),yu=Wn.join(Xn,"db","data.sqlite"),qd=Wn.join(Xn,"db.json"),Md=Wn.join(Xn,"db.json.migrated"),ka=null,gu=!1;function Hd(){if(ka)return ka;if(gu)return null;try{if(!Yn.existsSync(yu))return null;let e=hu();return ka=new e(yu,{readonly:!0,fileMustExist:!0}),ka}catch{return gu=!0,null}}function Gd(){for(let e of[qd,Md])if(Yn.existsSync(e))try{return JSON.parse(Yn.readFileSync(e,"utf-8"))}catch{}return null}function zd(e){let t=Hd();if(t)try{let r=t.prepare("SELECT value FROM kv WHERE scope = 'mitmAlias' AND key = ?").get(e);if(r)return JSON.parse(r.value)}catch{}return Gd()?.mitmAlias?.[e]||null}vu.exports={getMitmAlias:zd}});var Ua=V((ey,xu)=>{var{log:Jh,err:Zh}=zt(),Cu="http://127.0.0.1:20128",Qd=String(process.env.MITM_ROUTER_BASE||Cu).trim().replace(/\/+$/,"")||Cu,Eu=process.env.ROUTER_API_KEY,jd=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function $d(e,t="/v1/chat/completions",a={}){let r={};for(let[i,s]of Object.entries(a))jd.has(i.toLowerCase())||(r[i]=s);return await fetch(`${Qd}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...Eu&&{Authorization:`Bearer ${Eu}`}},body:JSON.stringify(e)})}async function Yd(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,i={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(i["X-Accel-Buffering"]="no"),t.writeHead(n,i),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let s=e.body.getReader(),o=new TextDecoder;for(;;){let{done:u,value:l}=await s.read();if(u){a&&a.end(),t.end();break}a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}xu.exports={fetchRouter:$d,pipeSSE:Yd}});var Tu=V((ty,Su)=>{var{err:Wd,createResponseDumper:Xd}=zt(),{fetchRouter:Jd,pipeSSE:Zd}=Ua();async function ep(e,t,a,r){let n=Xd(e,"intercept-antigravity"),i=e.url.includes(":streamGenerateContent");try{let s=JSON.parse(a.toString());s.model&&(s.model=r);let o=await Jd(s,"/v1/chat/completions",e.headers);await Zd(o,t,n)}catch(s){Wd(`[antigravity] ${s.message}`),n&&(n.writeChunk(`
27
+ `)),o.tries=a,o}Ko.exports=xr=gd;xr.getFileName=function(t){var a=Error.prepareStackTrace,r=Error.stackTraceLimit,n={},i;Error.stackTraceLimit=10,Error.prepareStackTrace=function(o,u){for(var l=0,c=u.length;l<c;l++)if(i=u[l].getFileName(),i!==__filename)if(t){if(i!==t)return}else return},Error.captureStackTrace(n),n.stack,Error.prepareStackTrace=a,Error.stackTraceLimit=r;var s="file://";return i.indexOf(s)===0&&(i=hd(i)),i};xr.getRoot=function(t){for(var a=yd(t),r;;){if(a==="."&&(a=process.cwd()),Vo(wa(a,"package.json"))||Vo(wa(a,"node_modules")))return a;if(r===a)throw new Error('Could not find module root given file: "'+t+'". Do you have a `package.json` file? ');r=a,a=wa(a,"..")}}});var Mo=V(Mt=>{"use strict";var{cppdb:ft}=St();Mt.prepare=function(t){return this[ft].prepare(t,this,!1)};Mt.exec=function(t){return this[ft].exec(t),this};Mt.close=function(){return this[ft].close(),this};Mt.loadExtension=function(...t){return this[ft].loadExtension(...t),this};Mt.defaultSafeIntegers=function(...t){return this[ft].defaultSafeIntegers(...t),this};Mt.unsafeMode=function(...t){return this[ft].unsafeMode(...t),this};Mt.getters={name:{get:function(){return this[ft].name},enumerable:!0},open:{get:function(){return this[ft].open},enumerable:!0},inTransaction:{get:function(){return this[ft].inTransaction},enumerable:!0},readonly:{get:function(){return this[ft].readonly},enumerable:!0},memory:{get:function(){return this[ft].memory},enumerable:!0}}});var zo=V((qh,Go)=>{"use strict";var{cppdb:vd}=St(),Ho=new WeakMap;Go.exports=function(t){if(typeof t!="function")throw new TypeError("Expected first argument to be a function");let a=this[vd],r=md(a,this),{apply:n}=Function.prototype,i={default:{value:Na(n,t,a,r.default)},deferred:{value:Na(n,t,a,r.deferred)},immediate:{value:Na(n,t,a,r.immediate)},exclusive:{value:Na(n,t,a,r.exclusive)},database:{value:this,enumerable:!0}};return Object.defineProperties(i.default.value,i),Object.defineProperties(i.deferred.value,i),Object.defineProperties(i.immediate.value,i),Object.defineProperties(i.exclusive.value,i),i.default.value};var md=(e,t)=>{let a=Ho.get(e);if(!a){let r={commit:e.prepare("COMMIT",t,!1),rollback:e.prepare("ROLLBACK",t,!1),savepoint:e.prepare("SAVEPOINT ` _bs3. `",t,!1),release:e.prepare("RELEASE ` _bs3. `",t,!1),rollbackTo:e.prepare("ROLLBACK TO ` _bs3. `",t,!1)};Ho.set(e,a={default:Object.assign({begin:e.prepare("BEGIN",t,!1)},r),deferred:Object.assign({begin:e.prepare("BEGIN DEFERRED",t,!1)},r),immediate:Object.assign({begin:e.prepare("BEGIN IMMEDIATE",t,!1)},r),exclusive:Object.assign({begin:e.prepare("BEGIN EXCLUSIVE",t,!1)},r)})}return a},Na=(e,t,a,{begin:r,commit:n,rollback:i,savepoint:s,release:o,rollbackTo:u})=>function(){let c,f,y;a.inTransaction?(c=s,f=o,y=u):(c=r,f=n,y=i),c.run();try{let v=e.call(t,this,arguments);if(v&&typeof v.then=="function")throw new TypeError("Transaction function cannot return a promise");return f.run(),v}catch(v){throw a.inTransaction&&(y.run(),y!==i&&f.run()),v}}});var jo=V((Mh,Qo)=>{"use strict";var{getBooleanOption:Cd,cppdb:Ed}=St();Qo.exports=function(t,a){if(a==null&&(a={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof a!="object")throw new TypeError("Expected second argument to be an options object");let r=Cd(a,"simple"),n=this[Ed].prepare(`PRAGMA ${t}`,this,!0);return r?n.pluck().get():n.all()}});var Wo=V((Hh,Yo)=>{"use strict";var xd=require("fs"),Sd=require("path"),{promisify:Td}=require("util"),{cppdb:Id}=St(),$o=Td(xd.access);Yo.exports=async function(t,a){if(a==null&&(a={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof a!="object")throw new TypeError("Expected second argument to be an options object");t=t.trim();let r="attached"in a?a.attached:"main",n="progress"in a?a.progress:null;if(!t)throw new TypeError("Backup filename cannot be an empty string");if(t===":memory:")throw new TypeError('Invalid backup filename ":memory:"');if(typeof r!="string")throw new TypeError('Expected the "attached" option to be a string');if(!r)throw new TypeError('The "attached" option cannot be an empty string');if(n!=null&&typeof n!="function")throw new TypeError('Expected the "progress" option to be a function');await $o(Sd.dirname(t)).catch(()=>{throw new TypeError("Cannot save backup because the directory does not exist")});let i=await $o(t).then(()=>!1,()=>!0);return Ad(this[Id].backup(this,r,t,i),n||null)};var Ad=(e,t)=>{let a=0,r=!0;return new Promise((n,i)=>{setImmediate(function s(){try{let o=e.transfer(a);if(!o.remainingPages){e.close(),n(o);return}if(r&&(r=!1,a=100),t){let u=t(o);if(u!==void 0)if(typeof u=="number"&&u===u)a=Math.max(0,Math.min(2147483647,Math.round(u)));else throw new TypeError("Expected progress callback to return a number or undefined")}setImmediate(s)}catch(o){e.close(),i(o)}})})}});var Jo=V((Gh,Xo)=>{"use strict";var{cppdb:bd}=St();Xo.exports=function(t){if(t==null&&(t={}),typeof t!="object")throw new TypeError("Expected first argument to be an options object");let a="attached"in t?t.attached:"main";if(typeof a!="string")throw new TypeError('Expected the "attached" option to be a string');if(!a)throw new TypeError('The "attached" option cannot be an empty string');return this[bd].serialize(a)}});var eu=V((zh,Zo)=>{"use strict";var{getBooleanOption:Ra,cppdb:Bd}=St();Zo.exports=function(t,a,r){if(a==null&&(a={}),typeof a=="function"&&(r=a,a={}),typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof r!="function")throw new TypeError("Expected last argument to be a function");if(typeof a!="object")throw new TypeError("Expected second argument to be an options object");if(!t)throw new TypeError("User-defined function name cannot be an empty string");let n="safeIntegers"in a?+Ra(a,"safeIntegers"):2,i=Ra(a,"deterministic"),s=Ra(a,"directOnly"),o=Ra(a,"varargs"),u=-1;if(!o){if(u=r.length,!Number.isInteger(u)||u<0)throw new TypeError("Expected function.length to be a positive integer");if(u>100)throw new RangeError("User-defined functions cannot have more than 100 arguments")}return this[Bd].function(r,t,u,n,i,s),this}});var au=V((Qh,ru)=>{"use strict";var{getBooleanOption:La,cppdb:wd}=St();ru.exports=function(t,a){if(typeof t!="string")throw new TypeError("Expected first argument to be a string");if(typeof a!="object"||a===null)throw new TypeError("Expected second argument to be an options object");if(!t)throw new TypeError("User-defined function name cannot be an empty string");let r="start"in a?a.start:null,n=jn(a,"step",!0),i=jn(a,"inverse",!1),s=jn(a,"result",!1),o="safeIntegers"in a?+La(a,"safeIntegers"):2,u=La(a,"deterministic"),l=La(a,"directOnly"),c=La(a,"varargs"),f=-1;if(!c&&(f=Math.max(tu(n),i?tu(i):0),f>0&&(f-=1),f>100))throw new RangeError("User-defined functions cannot have more than 100 arguments");return this[wd].aggregate(r,n,i,s,t,f,o,u,l),this};var jn=(e,t,a)=>{let r=t in e?e[t]:null;if(typeof r=="function")return r;if(r!=null)throw new TypeError(`Expected the "${t}" option to be a function`);if(a)throw new TypeError(`Missing required option "${t}"`);return null},tu=({length:e})=>{if(Number.isInteger(e)&&e>=0)return e;throw new TypeError("Expected function.length to be a positive integer")}});var ou=V((jh,su)=>{"use strict";var{cppdb:_d}=St();su.exports=function(t,a){if(typeof t!="string")throw new TypeError("Expected first argument to be a string");if(!t)throw new TypeError("Virtual table module name cannot be an empty string");let r=!1;if(typeof a=="object"&&a!==null)r=!0,a=Od(iu(a,"used",t));else{if(typeof a!="function")throw new TypeError("Expected second argument to be a function or a table definition object");a=Nd(a)}return this[_d].table(a,t,r),this};function Nd(e){return function(a,r,n,...i){let s={module:a,database:r,table:n},o=Ud.call(e,s,i);if(typeof o!="object"||o===null)throw new TypeError(`Virtual table module "${a}" did not return a table definition object`);return iu(o,"returned",a)}}function iu(e,t,a){if(!Kr.call(e,"rows"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition without a "rows" property`);if(!Kr.call(e,"columns"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition without a "columns" property`);let r=e.rows;if(typeof r!="function"||Object.getPrototypeOf(r)!==Pd)throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "rows" property (should be a generator function)`);let n=e.columns;if(!Array.isArray(n)||!(n=[...n]).every(l=>typeof l=="string"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "columns" property (should be an array of strings)`);if(n.length!==new Set(n).size)throw new TypeError(`Virtual table module "${a}" ${t} a table definition with duplicate column names`);if(!n.length)throw new RangeError(`Virtual table module "${a}" ${t} a table definition with zero columns`);let i;if(Kr.call(e,"parameters")){if(i=e.parameters,!Array.isArray(i)||!(i=[...i]).every(l=>typeof l=="string"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "parameters" property (should be an array of strings)`)}else i=kd(r);if(i.length!==new Set(i).size)throw new TypeError(`Virtual table module "${a}" ${t} a table definition with duplicate parameter names`);if(i.length>32)throw new RangeError(`Virtual table module "${a}" ${t} a table definition with more than the maximum number of 32 parameters`);for(let l of i)if(n.includes(l))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with column "${l}" which was ambiguously defined as both a column and parameter`);let s=2;if(Kr.call(e,"safeIntegers")){let l=e.safeIntegers;if(typeof l!="boolean")throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "safeIntegers" property (should be a boolean)`);s=+l}let o=!1;if(Kr.call(e,"directOnly")&&(o=e.directOnly,typeof o!="boolean"))throw new TypeError(`Virtual table module "${a}" ${t} a table definition with an invalid "directOnly" property (should be a boolean)`);return[`CREATE TABLE x(${[...i.map(nu).map(l=>`${l} HIDDEN`),...n.map(nu)].join(", ")});`,Rd(r,new Map(n.map((l,c)=>[l,i.length+c])),a),i,s,o]}function Rd(e,t,a){return function*(...n){let i=n.map(s=>Buffer.isBuffer(s)?Buffer.from(s):s);for(let s=0;s<t.size;++s)i.push(null);for(let s of e(...n))if(Array.isArray(s))Ld(s,i,t.size,a),yield i;else if(typeof s=="object"&&s!==null)Dd(s,i,t,a),yield i;else throw new TypeError(`Virtual table module "${a}" yielded something that isn't a valid row object`)}}function Ld(e,t,a,r){if(e.length!==a)throw new TypeError(`Virtual table module "${r}" yielded a row with an incorrect number of columns`);let n=t.length-a;for(let i=0;i<a;++i)t[i+n]=e[i]}function Dd(e,t,a,r){let n=0;for(let i of Object.keys(e)){let s=a.get(i);if(s===void 0)throw new TypeError(`Virtual table module "${r}" yielded a row with an undeclared column "${i}"`);t[s]=e[i],n+=1}if(n!==a.size)throw new TypeError(`Virtual table module "${r}" yielded a row with missing columns`)}function kd({length:e}){if(!Number.isInteger(e)||e<0)throw new TypeError("Expected function.length to be a positive integer");let t=[];for(let a=0;a<e;++a)t.push(`$${a+1}`);return t}var{hasOwnProperty:Kr}=Object.prototype,{apply:Ud}=Function.prototype,Pd=Object.getPrototypeOf(function*(){}),nu=e=>`"${e.replace(/"/g,'""')}"`,Od=e=>()=>e});var lu=V(($h,uu)=>{"use strict";var Vd=function(){};uu.exports=function(t,a){return Object.assign(new Vd,this)}});var pu=V((Yh,du)=>{"use strict";var Fd=require("fs"),cu=require("path"),Da=St(),Kd=zn(),fu;function He(e,t){if(new.target==null)return new He(e,t);let a;if(Buffer.isBuffer(e)&&(a=e,e=":memory:"),e==null&&(e=""),t==null&&(t={}),typeof e!="string")throw new TypeError("Expected first argument to be a string");if(typeof t!="object")throw new TypeError("Expected second argument to be an options object");if("readOnly"in t)throw new TypeError('Misspelled option "readOnly" should be "readonly"');if("memory"in t)throw new TypeError('Option "memory" was removed in v7.0.0 (use ":memory:" filename instead)');let r=e.trim(),n=r===""||r===":memory:",i=Da.getBooleanOption(t,"readonly"),s=Da.getBooleanOption(t,"fileMustExist"),o="timeout"in t?t.timeout:5e3,u="verbose"in t?t.verbose:null,l="nativeBinding"in t?t.nativeBinding:null;if(i&&n&&!a)throw new TypeError("In-memory/temporary databases cannot be readonly");if(!Number.isInteger(o)||o<0)throw new TypeError('Expected the "timeout" option to be a positive integer');if(o>2147483647)throw new RangeError('Option "timeout" cannot be greater than 2147483647');if(u!=null&&typeof u!="function")throw new TypeError('Expected the "verbose" option to be a function');if(l!=null&&typeof l!="string"&&typeof l!="object")throw new TypeError('Expected the "nativeBinding" option to be a string or addon object');let c;if(l==null?c=fu||(fu=qo()("better_sqlite3.node")):typeof l=="string"?c=(typeof __non_webpack_require__=="function"?__non_webpack_require__:require)(cu.resolve(l).replace(/(\.node)?$/,".node")):c=l,c.isInitialized||(c.setErrorConstructor(Kd),c.isInitialized=!0),!n&&!r.startsWith("file:")&&!Fd.existsSync(cu.dirname(r)))throw new TypeError("Cannot open database because the directory does not exist");Object.defineProperties(this,{[Da.cppdb]:{value:new c.Database(r,e,n,i,s,o,u||null,a||null)},...rr.getters})}var rr=Mo();He.prototype.prepare=rr.prepare;He.prototype.transaction=zo();He.prototype.pragma=jo();He.prototype.backup=Wo();He.prototype.serialize=Jo();He.prototype.function=eu();He.prototype.aggregate=au();He.prototype.table=ou();He.prototype.loadExtension=rr.loadExtension;He.prototype.exec=rr.exec;He.prototype.close=rr.close;He.prototype.defaultSafeIntegers=rr.defaultSafeIntegers;He.prototype.unsafeMode=rr.unsafeMode;He.prototype[Da.inspect]=lu();du.exports=He});var hu=V((Wh,$n)=>{"use strict";$n.exports=pu();$n.exports.SqliteError=zn()});var mu=V((Xh,vu)=>{var Yn=require("fs"),Wn=require("path"),{DATA_DIR:Xn}=ir(),yu=Wn.join(Xn,"db","data.sqlite"),qd=Wn.join(Xn,"db.json"),Md=Wn.join(Xn,"db.json.migrated"),ka=null,gu=!1;function Hd(){if(ka)return ka;if(gu)return null;try{if(!Yn.existsSync(yu))return null;let e=hu();return ka=new e(yu,{readonly:!0,fileMustExist:!0}),ka}catch{return gu=!0,null}}function Gd(){for(let e of[qd,Md])if(Yn.existsSync(e))try{return JSON.parse(Yn.readFileSync(e,"utf-8"))}catch{}return null}function zd(e){let t=Hd();if(t)try{let r=t.prepare("SELECT value FROM kv WHERE scope = 'mitmAlias' AND key = ?").get(e);if(r)return JSON.parse(r.value)}catch{}return Gd()?.mitmAlias?.[e]||null}vu.exports={getMitmAlias:zd}});var Ua=V((ey,xu)=>{var{log:Jh,err:Zh}=zt(),Cu="http://localhost:20128",Qd=String(process.env.MITM_ROUTER_BASE||Cu).trim().replace(/\/+$/,"")||Cu,Eu=process.env.ROUTER_API_KEY,jd=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function $d(e,t="/v1/chat/completions",a={}){let r={};for(let[i,s]of Object.entries(a))jd.has(i.toLowerCase())||(r[i]=s);return await fetch(`${Qd}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...Eu&&{Authorization:`Bearer ${Eu}`}},body:JSON.stringify(e)})}async function Yd(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,i={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(i["X-Accel-Buffering"]="no"),t.writeHead(n,i),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let s=e.body.getReader(),o=new TextDecoder;for(;;){let{done:u,value:l}=await s.read();if(u){a&&a.end(),t.end();break}a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}xu.exports={fetchRouter:$d,pipeSSE:Yd}});var Tu=V((ty,Su)=>{var{err:Wd,createResponseDumper:Xd}=zt(),{fetchRouter:Jd,pipeSSE:Zd}=Ua();async function ep(e,t,a,r){let n=Xd(e,"intercept-antigravity"),i=e.url.includes(":streamGenerateContent");try{let s=JSON.parse(a.toString());s.model&&(s.model=r);let o=await Jd(s,"/v1/chat/completions",e.headers);await Zd(o,t,n)}catch(s){Wd(`[antigravity] ${s.message}`),n&&(n.writeChunk(`
28
28
  [ERROR] ${s.message}
29
29
  `),n.end()),i?(t.headersSent||t.writeHead(200,{"Content-Type":"text/event-stream"}),t.end(`data: ${JSON.stringify({error:{message:s.message}})}\r
30
30
  \r
package/cli.js CHANGED
@@ -53,7 +53,8 @@ try { ensureSqliteRuntime({ silent: true }); } catch {}
53
53
 
54
54
  // Configuration constants
55
55
  const APP_NAME = pkg.name; // Use from package.json
56
- const GLOBAL_INSTALL_CMD = `npm i -g ${APP_NAME} --prefer-online`;
56
+ const INSTALL_CMD_LATEST = `npm i -g ${APP_NAME}@latest --prefer-online`;
57
+
57
58
  const DEFAULT_PORT = 20128;
58
59
  const DEFAULT_HOST = "0.0.0.0";
59
60
  const MAX_PORT_ATTEMPTS = 10;
@@ -306,6 +307,10 @@ function killMitmByPidFile() {
306
307
  if (!waitForExit(pid, 1500)) {
307
308
  try { execSync(`taskkill /F /T /PID ${pid}`, { stdio: "ignore", windowsHide: true, timeout: 3000 }); } catch { }
308
309
  }
310
+ // Last-resort: PowerShell Stop-Process (sometimes succeeds where taskkill fails on admin processes)
311
+ if (!waitForExit(pid, 500)) {
312
+ try { execSync(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${pid} -Force"`, { stdio: "ignore", windowsHide: true, timeout: 3000 }); } catch { }
313
+ }
309
314
  } else {
310
315
  // SIGTERM via cached sudo token first
311
316
  try { execSync(`sudo -n kill -TERM ${pid} 2>/dev/null`, { stdio: "ignore", timeout: 2000 }); }
@@ -479,7 +484,7 @@ async function showInterfaceMenu(latestVersion) {
479
484
 
480
485
  clearScreen();
481
486
 
482
- const displayHost = host === DEFAULT_HOST ? "127.0.0.1" : host;
487
+ const displayHost = host === DEFAULT_HOST ? "localhost" : host;
483
488
 
484
489
  // Detect tunnel/local mode for server URL display
485
490
  let serverUrl;
@@ -520,7 +525,7 @@ const MAX_RESTARTS = 2;
520
525
  const RESTART_RESET_MS = 30000; // Reset counter if alive > 30s
521
526
 
522
527
  function startServer(latestVersion) {
523
- const displayHost = host === DEFAULT_HOST ? "127.0.0.1" : host;
528
+ const displayHost = host === DEFAULT_HOST ? "localhost" : host;
524
529
  const url = `http://${displayHost}:${port}/dashboard`;
525
530
 
526
531
  let restartCount = 0;
@@ -651,19 +656,16 @@ function startServer(latestVersion) {
651
656
 
652
657
  if (choice === "update") {
653
658
  isShuttingDown = true;
659
+ const { clearScreen } = require("./src/cli/utils/display");
660
+ clearScreen();
661
+ console.log(`\n⬆ Update v${pkg.version} → v${latestVersion}\n`);
662
+ console.log(`Run this after exit:\n`);
663
+ console.log(` \x1b[33m${INSTALL_CMD_LATEST}\x1b[0m\n`);
654
664
  cleanup();
655
- // Kill ALL lingering processes (server/next-server/cloudflared/tray) to release file locks on Windows
656
665
  await killAllAppProcesses(port);
657
666
  await killProcessOnPort(port);
658
- await new Promise(r => setTimeout(r, 1500));
659
- const { clearScreen } = require("./src/cli/utils/display");
660
- clearScreen();
661
- console.log(`\n⬆ New version: v${latestVersion} · you are on v${pkg.version}\n`);
662
- console.log("Run this command to update (9Router is stopped so file locks are released):\n");
663
- console.log(` ${GLOBAL_INSTALL_CMD}\n`);
664
- console.log("After npm finishes, start 9Router again with:\n");
665
- console.log(` ${APP_NAME}\n`);
666
- process.exit(0);
667
+ setTimeout(() => process.exit(0), 200);
668
+ return;
667
669
  } else if (choice === "web") {
668
670
  openBrowser(url);
669
671
  // Wait for user to come back
@@ -1,12 +1,11 @@
1
- // Shared logic: ensure sql.js + better-sqlite3 are installed in
2
- // USER_DATA_DIR/runtime/node_modules so they can be hot-replaced
3
- // without touching the (possibly Windows-locked) global install dir.
1
+ // Ensure better-sqlite3 is installed in USER_DATA_DIR/runtime/node_modules
2
+ // (user-writable, avoids Windows EBUSY locks during npm i -g updates).
3
+ // sql.js is bundled in bin/app already; node:sqlite / bun:sqlite are built-in.
4
4
  const { execSync, spawnSync } = require("child_process");
5
5
  const fs = require("fs");
6
6
  const os = require("os");
7
7
  const path = require("path");
8
8
 
9
- const SQL_JS_VERSION = "1.14.1";
10
9
  const BETTER_SQLITE3_VERSION = "12.6.2";
11
10
 
12
11
  function getDataDir() {
@@ -35,7 +34,7 @@ function ensureRuntimeDir() {
35
34
  name: "9router-runtime",
36
35
  version: "1.0.0",
37
36
  private: true,
38
- description: "User-writable runtime deps for 9router (sql.js + better-sqlite3)",
37
+ description: "User-writable runtime deps for 9router (better-sqlite3 native binary)",
39
38
  }, null, 2));
40
39
  }
41
40
  return dir;
@@ -76,36 +75,24 @@ function npmInstall(pkgs, opts = {}) {
76
75
  return res.status === 0;
77
76
  }
78
77
 
79
- // Public: ensure runtime SQLite deps. Called from cli.js startup AND postinstall.
78
+ // Public: ensure better-sqlite3 native module is installed in user-writable
79
+ // runtime dir. sql.js is bundled in bin/app already; node:sqlite is built-in.
80
+ // This is purely a *speed optimization* — app works without it via fallbacks.
80
81
  function ensureSqliteRuntime({ silent = false } = {}) {
81
82
  ensureRuntimeDir();
82
83
 
83
- const needSqlJs = !hasModule("sql.js");
84
84
  const needBetterSqlite = !hasModule("better-sqlite3") || !isBetterSqliteBinaryValid();
85
-
86
- if (!needSqlJs && !needBetterSqlite) {
87
- if (!silent) console.log("[9router][runtime] SQLite deps OK");
88
- return { sqljs: true, betterSqlite: hasModule("better-sqlite3") && isBetterSqliteBinaryValid() };
89
- }
90
-
91
- // sql.js — required
92
- if (needSqlJs) {
93
- const ok = npmInstall([`sql.js@${SQL_JS_VERSION}`], { silent });
94
- if (!ok && !silent) console.warn("[9router][runtime] sql.js install failed");
85
+ if (!needBetterSqlite) {
86
+ if (!silent) console.log("[9router][runtime] better-sqlite3 OK");
87
+ return { betterSqlite: true };
95
88
  }
96
89
 
97
- // better-sqlite3 optional (skip on failure)
98
- let betterOk = !needBetterSqlite;
99
- if (needBetterSqlite) {
100
- betterOk = npmInstall([`better-sqlite3@${BETTER_SQLITE3_VERSION}`], { optional: true, silent });
101
- if (!betterOk && !silent) {
102
- console.warn("[9router][runtime] better-sqlite3 install failed (will use sql.js fallback)");
103
- }
90
+ const ok = npmInstall([`better-sqlite3@${BETTER_SQLITE3_VERSION}`], { optional: true, silent });
91
+ if (!ok && !silent) {
92
+ console.warn("[9router][runtime] better-sqlite3 install failed (will use node:sqlite or sql.js fallback)");
104
93
  }
105
-
106
94
  return {
107
- sqljs: hasModule("sql.js"),
108
- betterSqlite: betterOk && hasModule("better-sqlite3") && isBetterSqliteBinaryValid(),
95
+ betterSqlite: ok && hasModule("better-sqlite3") && isBetterSqliteBinaryValid(),
109
96
  };
110
97
  }
111
98
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "9router",
3
- "version": "0.4.26",
3
+ "version": "0.4.28",
4
4
  "description": "9Router CLI - Start and manage 9Router server",
5
5
  "bin": {
6
6
  "9router": "./cli.js"
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[505],{24021:(e,a,i)=>{i.d(a,{jY:()=>l,pp:()=>p});var t=i(48605);let n={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},o=(...e)=>e.map(e=>({...n[e],type:"tts"})),s=o("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),r=o("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),m=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(e=>({id:e,name:e,type:"tts"})),d={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":r,"tts-1":s,"tts-1-hd":s},allVoices:r},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":r,"openai/tts-1":s,"openai/tts-1-hd":s},allVoices:r},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:t.I},gemini:{models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-2.5-flash-preview-tts":m,"gemini-2.5-pro-preview-tts":m},allVoices:m}};function l(e,a){let i=d[e];return i?.voices&&(i.voices[a]||i.allVoices)||null}function p(){let e={};for(let[a,i]of Object.entries(d))i.models&&(e[`${a}-tts-models`]=i.models),i.allVoices&&(e[`${a}-tts-voices`]=i.allVoices),i.defaults&&(e[a]=i.defaults);return e["openai-tts-voices"]=d.openai.allVoices,e["openrouter-tts-voices"]=d.openrouter.allVoices,e}},43202:(e,a,i)=>{i.d(a,{Q2:()=>t.Q2,fg:()=>t.fg,vQ:()=>n,MA:()=>t.MA,UY:()=>m,Nu:()=>o,zN:()=>t.zN,B2:()=>r,h0:()=>s});var t=i(82495);i(69633);let n={name:"9Router Proxy",description:"AI Infrastructure Management",version:"0.4.26"},o={changelogUrl:"https://raw.githubusercontent.com/decolua/9router/refs/heads/master/CHANGELOG.md"},s={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},r={storageKey:"theme",defaultTheme:"system"},m={maxLines:200,pollIntervalMs:1e3}},48605:(e,a,i)=>{i.d(a,{I:()=>t});let t=[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},55348:(e,a,i)=>{i.d(a,{CL:()=>o,QC:()=>s,Xn:()=>n,YZ:()=>t});let t=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],n="en",o="locale";function s(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":n}},69633:(e,a,i)=>{i.d(a,{KC:()=>t.KC,Xg:()=>t.Xg});var t=i(94718);Object.entries(i(82495).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(t.vq).flatMap(([e,a])=>a.map(a=>({provider:e,model:a.id,name:a.name})))},82495:(e,a,i)=>{i.d(a,{DI:()=>p,IS:()=>t,JH:()=>l,MA:()=>b,Q2:()=>u,br:()=>m,fg:()=>r,gC:()=>g,gb:()=>h,jO:()=>w,mq:()=>c,nJ:()=>n,o5:()=>v,rj:()=>d,s9:()=>o,wG:()=>f,wb:()=>x,zN:()=>s,zt:()=>y});let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"}},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981",mediaPriority:999,deprecated:!0,deprecationNotice:"Qwen OAuth free tier was discontinued by Alibaba on 2026-04-15. New connections will not work.",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]}},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Gemini CLI is designed exclusively for Gemini CLI. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"}},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},opencode:{id:"opencode",alias:"oc",name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC",noAuth:!0,passthroughModels:!0,modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"}}},n={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0,serviceKinds:["llm","embedding","tts","imageToText"],embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"openai/text-embedding-3-small",name:"Text Embedding 3 Small (OpenRouter)",dimensions:1536},{id:"openai/text-embedding-3-large",name:"Text Embedding 3 Large (OpenRouter)",dimensions:3072},{id:"openai/text-embedding-ada-002",name:"Text Embedding Ada 002 (OpenRouter)",dimensions:1536}]}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"},serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"fastpitch",name:"FastPitch"},{id:"tacotron2",name:"Tacotron2"}]},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",mediaPriority:1,website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"},serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}]},searchViaChat:{defaultModel:"gemini-2.5-flash",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",models:[{id:"text-embedding-004",name:"Text Embedding 004",dimensions:768},{id:"embedding-001",name:"Embedding 001",dimensions:768}]},ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts",models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS"}]}},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"},serviceKinds:["llm","image"],hasProviderSpecificData:!0},byteplus:{id:"byteplus",alias:"bpm",name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"},serviceKinds:["llm"]}},o={extended:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4},effort:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},s={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"}},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"AG is designed exclusively for Antigravity IDE. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"}},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6",thinkingConfig:o.effort,serviceKinds:["llm","image"],kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."},website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"}},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333",serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",dimensions:3072}]},website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"}},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}}},r={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k2.5",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","image","imageToText","webSearch"],searchViaChat:{defaultModel:"MiniMax-M2.7",pricingUrl:"https://www.minimaxi.com/document/price"}},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},"xiaomi-mimo":{id:"xiaomi-mimo",alias:"mimo",name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://xiaomimimo.com"}},"volcengine-ark":{id:"volcengine-ark",alias:"ark",name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"},serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],thinkingConfig:o.effort,searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"},ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"tts-1",name:"TTS-1"},{id:"tts-1-hd",name:"TTS-1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe"}]},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]}},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"},serviceKinds:["llm","imageToText"]},"opencode-go":{id:"opencode-go",alias:"ocg",name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then $10/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},azure:{id:"azure",alias:"azure",name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"},hasProviderSpecificData:!0},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},commandcode:{id:"commandcode",alias:"cmc",name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"},serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]}},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"},serviceKinds:["llm","imageToText","webSearch"],searchViaChat:{defaultModel:"grok-4.20-reasoning",pricingUrl:"https://x.ai/api#pricing"}},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"},serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]}},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"},serviceKinds:["llm","webSearch"],searchConfig:{baseUrl:"https://api.perplexity.ai/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]}},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]}},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]}},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]}},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"},serviceKinds:["stt","imageToText","tts"],ttsConfig:{baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[]},sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]}},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"},serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",format:"assemblyai",async:!0,models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]}},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"},serviceKinds:["image"]},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]}},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]}},"local-device":{id:"local-device",alias:"local-device",name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},"google-tts":{id:"google-tts",alias:"google-tts",name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},"edge-tts":{id:"edge-tts",alias:"edge-tts",name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},coqui:{id:"coqui",alias:"coqui",name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]}},tortoise:{id:"tortoise",alias:"tortoise",name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]}},inworld:{id:"inworld",alias:"inworld",name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},"voyage-ai":{id:"voyage-ai",alias:"voyage",name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"voyage-3-large",name:"Voyage 3 Large",dimensions:1024},{id:"voyage-3.5",name:"Voyage 3.5",dimensions:1024},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",dimensions:1024},{id:"voyage-code-3",name:"Voyage Code 3",dimensions:1024},{id:"voyage-finance-2",name:"Voyage Finance 2",dimensions:1024},{id:"voyage-law-2",name:"Voyage Law 2",dimensions:1024},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",dimensions:1024}]}},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui",serviceKinds:["image"]},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI",serviceKinds:["image"]},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"},serviceKinds:["image","imageToText","tts","stt"],hiddenKinds:["tts"],ttsConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},sttConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]}},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"},serviceKinds:["llm"]},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},tavily:{id:"tavily",alias:"tavily",name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},"brave-search":{id:"brave-search",alias:"brave",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},serper:{id:"serper",alias:"serper",name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},exa:{id:"exa",alias:"exa",name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},searxng:{id:"searxng",alias:"searxng",name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},"google-pse":{id:"google-pse",alias:"gpse",name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},linkup:{id:"linkup",alias:"linkup",name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},searchapi:{id:"searchapi",alias:"searchapi",name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},youcom:{id:"youcom",alias:"youcom",name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},firecrawl:{id:"firecrawl",alias:"firecrawl",name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},"fal-ai":{id:"fal-ai",alias:"fal",name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run/fal-ai/flux/schnell",method:"POST",authType:"apikey",authHeader:"key"}},"stability-ai":{id:"stability-ai",alias:"stability",name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v1/user/account",method:"GET",authType:"apikey",authHeader:"bearer"}},"black-forest-labs":{id:"black-forest-labs",alias:"bfl",name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1/get_result?id=ping",method:"GET",authType:"apikey",authHeader:"x-key"}},recraft:{id:"recraft",alias:"recraft",name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"},serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/users/me",method:"GET",authType:"apikey",authHeader:"bearer"}},topaz:{id:"topaz",alias:"topaz",name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"},serviceKinds:["image"]},runwayml:{id:"runwayml",alias:"runway",name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"},serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1/organization",method:"GET",authType:"apikey",authHeader:"bearer",extraHeaders:{"X-Runway-Version":"2024-11-06"}}},"aws-polly":{id:"aws-polly",alias:"polly",name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"},serviceKinds:["tts"],hasProviderSpecificData:!0,ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]}},"jina-ai":{id:"jina-ai",alias:"jina",name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},"jina-reader":{id:"jina-reader",alias:"jina",name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}}},m={"grok-web":{id:"grok-web",alias:"gw",name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",passthroughModels:!0,serviceKinds:["llm"]},"perplexity-web":{id:"perplexity-web",alias:"pw",name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",serviceKinds:["llm"]}},d=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to Image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to Text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text To Speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech To Text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web Search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web Fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/video/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}],l="openai-compatible-",p="anthropic-compatible-";function c(e){return"string"==typeof e&&e.startsWith(l)}function h(e){return"string"==typeof e&&e.startsWith(p)}function g(e){return"string"==typeof e&&e.startsWith("custom-embedding-")}let u={...t,...n,...s,...r,...m},b={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"},cookie:{id:"cookie",name:"Browser Cookie",icon:"cookie"}};function y(e){for(let a of Object.values(u))if(a.alias===e||a.id===e)return a;return null}function f(e){let a=u[e];return a?.alias||e}function v(e){return Object.values(u).filter(a=>!(!(a.serviceKinds??["llm"]).includes(e)||a.hidden||a.hiddenKinds?.includes(e))).sort((e,a)=>(e.mediaPriority??100)-(a.mediaPriority??100))}Object.values(u).reduce((e,a)=>(e[a.alias]=a.id,e),{}),Object.values(u).reduce((e,a)=>(e[a.id]=a.alias,e),{});let x=["claude","antigravity","kiro","github","codex","kimi-coding","ollama","gemini-cli","glm","glm-cn","minimax","minimax-cn"],w=["glm","glm-cn","minimax","minimax-cn"]},83789:(e,a,i)=>{i.d(a,{A:()=>r});var t=i(2074),n=i(11472),o=i(43202);function s(e){let a=document.documentElement,i=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?i:e)?a.classList.add("dark"):a.classList.remove("dark")}let r=(0,t.v)((0,n.Zr)((e,a)=>({theme:o.B2.defaultTheme,setTheme:a=>{e({theme:a}),s(a)},toggleTheme:()=>{let i="dark"===a().theme?"light":"dark";e({theme:i}),s(i)},initTheme:()=>{s(a().theme)}}),{name:o.B2.storageKey}))},84502:(e,a,i)=>{i.d(a,{FE:()=>c,Tl:()=>d,wn:()=>h});var t=i(55348);let n={},o=t.Xn,s=[];function r(){if("u"<typeof document)return t.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${t.CL}=`)),a=e?decodeURIComponent(e.split("=")[1]):t.Xn;return(0,t.QC)(a)}async function m(e){if("en"===e){n={};return}try{let a=await fetch(`/i18n/literals/${e}.json`);n=await a.json()}catch(e){console.error("Failed to load translations:",e),n={}}}function d(e){if(!e||"string"!=typeof e)return e;let a=e.trim();return a&&"en"!==o&&n[a]||e}function l(e){if(!e.nodeValue||!e.nodeValue.trim())return;let a=e.parentElement;if(!a)return;let i=a;for(;i;){if(i.hasAttribute&&i.hasAttribute("data-i18n-skip"))return;i=i.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(a.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let t=d(e._originalText);t!==e.nodeValue&&(e.nodeValue=t)}function p(e){let a;if(!e)return;let i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),t=[];for(;a=i.nextNode();)t.push(a);t.forEach(l)}async function c(){o=r(),await m(o),p(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?p(e):e.nodeType===Node.TEXT_NODE&&l(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function h(){o=r(),await m(o),s.forEach(e=>e()),p(document.body)}},94718:(e,a,i)=>{i.d(a,{Xg:()=>c,vq:()=>l,KC:()=>h});var t=i(390),n=i(89651);let o={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},s="https://api.kimi.com/coding/v1/messages",r={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,t.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,t.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,t.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,t.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:n.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:n.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,t.platform)()}/${(0,t.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...o}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:s,format:"claude",headers:{...o}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...o}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...o}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:s,format:"claude",headers:{...o},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...o}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};var m=i(24021);let d="-review",l={cc:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.3-image",name:"GPT 5.3 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.2-image",name:"GPT 5.2 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]}].flatMap(e=>"llm"!==(e.type||"llm")||e.id.endsWith(d)?[e]:[e,{...e,id:`${e.id}${d}`,name:`${e.name} Review`,upstreamModelId:e.upstreamModelId||e.id,quotaFamily:"review"}]),gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",type:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",type:"embedding"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"}],cu:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],"opencode-go":[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude"},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude"}],oc:[],cl:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",type:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",type:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",type:"embedding"},{id:"tts-1",name:"TTS-1",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"whisper-1",name:"Whisper 1",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-image-1",name:"GPT Image 1",type:"image",params:["n","size","quality","response_format"]},{id:"dall-e-3",name:"DALL-E 3",type:"image",params:["size","quality","style","response_format"]},{id:"dall-e-2",name:"DALL-E 2",type:"image",params:["n","size","response_format"]}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",type:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",type:"image",params:[]},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",type:"image",params:[]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",type:"image",params:[]},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",type:"stt",params:["language","prompt"]},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",type:"stt",params:["language","prompt"]}],openrouter:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",type:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",type:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",type:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",type:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",type:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",type:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",type:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",type:"image",params:["size","quality","style","response_format"]},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",type:"image",params:["n","size","quality","response_format"]},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",type:"image",params:["n","size"]},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",type:"image",params:["n","size"]}],glm:[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",type:"image",params:["n","size","response_format"]}],blackbox:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Legacy)"},{id:"claude-opus-4-6",name:"Claude Opus 4.6 (Legacy)"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-v3-671b",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"o1",name:"OpenAI o1"},{id:"o3-mini",name:"OpenAI o3-mini"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"}],"minimax-cn":[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"volcengine-ark":[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"},{id:"MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"Kimi-K2.5",name:"Kimi-K2.5"},{id:"GLM-4.7",name:"GLM-4.7"},{id:"DeepSeek-V3.2",name:"DeepSeek-V3.2"}],"cloudflare-ai":[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"},{id:"@cf/black-forest-labs/flux-2-klein-9b",name:"FLUX.2 Klein 9B",type:"image",params:["size"]},{id:"@cf/black-forest-labs/flux-2-klein-4b",name:"FLUX.2 Klein 4B",type:"image",params:["size"]},{id:"@cf/black-forest-labs/flux-2-dev",name:"FLUX.2 Dev",type:"image",params:["size"]},{id:"@cf/leonardo/lucid-origin",name:"Lucid Origin",type:"image",params:["size"]},{id:"@cf/leonardo/phoenix-1.0",name:"Phoenix 1.0",type:"image",params:["size"]},{id:"@cf/black-forest-labs/flux-1-schnell",name:"FLUX.1 Schnell",type:"image",params:["size"]},{id:"@cf/bytedance/stable-diffusion-xl-lightning",name:"SDXL Lightning",type:"image",params:["size"]},{id:"@cf/lykon/dreamshaper-8-lcm",name:"DreamShaper 8 LCM",type:"image",params:["size"]},{id:"@cf/runwayml/stable-diffusion-v1-5-img2img",name:"Stable Diffusion v1.5 Img2Img",type:"image",params:["size"],capabilities:["edit"]},{id:"@cf/runwayml/stable-diffusion-v1-5-inpainting",name:"Stable Diffusion v1.5 Inpainting",type:"image",params:["size"],capabilities:["edit","mask"]},{id:"@cf/stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",type:"image",params:["size"]}],byteplus:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],deepseek:[{id:"deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],commandcode:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"}],groq:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",type:"stt",params:["language","response_format","temperature","prompt"]}],xai:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}],mistral:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",type:"embedding"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",type:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",type:"embedding"}],fireworks:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",type:"embedding"}],cerebras:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}],nvidia:[{id:"minimaxai/minimax-m2.7",name:"Minimax M2.7"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",type:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",type:"stt",params:["language"]}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",type:"embedding"}],"voyage-ai":[{id:"voyage-3-large",name:"Voyage 3 Large",type:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",type:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",type:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",type:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",type:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",type:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",type:"embedding"}],siliconflow:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}],"xiaomi-mimo":[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}],hyperbolic:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}],"grok-web":[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],"perplexity-web":[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}],...(0,m.pp)(),nanobanana:[{id:"nanobanana-flash",name:"NanoBanana Flash",type:"image",params:["n","size"]},{id:"nanobanana-pro",name:"NanoBanana Pro",type:"image",params:["n","size"]}],sdwebui:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",type:"image",params:["n","size"]},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",type:"image",params:["n","size"]}],comfyui:[{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"sdxl",name:"SDXL",type:"image",params:["n","size"]}],huggingface:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",type:"image",params:[]},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",type:"image",params:[]},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",type:"stt",params:["language"]},{id:"openai/whisper-small",name:"Whisper Small (HF)",type:"stt",params:["language"]}],deepgram:[{id:"nova-3",name:"Nova 3",type:"stt",params:["language"]},{id:"nova-2",name:"Nova 2",type:"stt",params:["language"]},{id:"whisper-large",name:"Whisper Large",type:"stt",params:["language"]}],assemblyai:[{id:"universal-3-pro",name:"Universal 3 Pro",type:"stt",params:["language"]},{id:"universal-2",name:"Universal 2",type:"stt",params:["language"]}],"fal-ai":[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",type:"image",params:["n","size"]},{id:"fal-ai/flux/dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",type:"image",params:["n","size"]},{id:"fal-ai/recraft-v3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",type:"image",params:["n","size","style"]},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",type:"image",params:["n","size"]}],"stability-ai":[{id:"stable-image-ultra",name:"Stable Image Ultra",type:"image",params:["size"]},{id:"stable-image-core",name:"Stable Image Core",type:"image",params:["size","style"]},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",type:"image",params:["size"]},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",type:"image",params:["size"]},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",type:"image",params:["size"]}],"black-forest-labs":[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",type:"image",params:["n","size"]},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",type:"image",params:["size"]},{id:"flux-pro",name:"FLUX Pro",type:"image",params:["n","size"]},{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",type:"image",params:["size"],capabilities:["edit"]},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",type:"image",params:["size"],capabilities:["edit"]}],recraft:[{id:"recraftv3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"recraftv2",name:"Recraft V2",type:"image",params:["n","size","style"]}],runwayml:[{id:"gen4_image",name:"Gen-4 Image",type:"image",params:["size"]},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",type:"image",params:["size"]},{id:"gen4_turbo",name:"Gen-4 Turbo",type:"video",params:[]},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",type:"video",params:[]}]},p={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",opencode:"oc",vertex:"vertex","vertex-partner":"vertex-partner"},c=Object.fromEntries(Object.keys(r).map(e=>[e,p[e]||e]));function h(e){return l[c[e]||e]||[]}},98814:(e,a,i)=>{i.d(a,{ThemeProvider:()=>s});var t=i(73365),n=i(1521),o=i(83789);function s({children:e}){let{initTheme:a}=(0,o.A)();return(0,n.useEffect)(()=>{a()},[a]),(0,t.jsx)(t.Fragment,{children:e})}}}]);