9router 0.4.20 → 0.4.26

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 (835) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +7 -5
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/routes-manifest.json +12 -0
  5. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  6. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +12 -12
  21. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  33. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  36. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  51. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  57. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  60. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/_global-error/page.js +3 -3
  66. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/_global-error.html +1 -1
  68. package/app/.next/server/app/_global-error.rsc +1 -1
  69. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  70. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  71. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  72. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  73. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  74. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  75. package/app/.next/server/app/_not-found/page.js +2 -2
  76. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  77. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/_not-found.html +1 -1
  79. package/app/.next/server/app/_not-found.rsc +18 -17
  80. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +18 -17
  81. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  82. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +7 -6
  83. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  84. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  85. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  86. package/app/.next/server/app/api/auth/login/route.js +1 -1
  87. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  88. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  89. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +9 -0
  90. package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -0
  91. package/app/.next/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -0
  92. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  93. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  95. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  97. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -32
  98. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  101. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -0
  102. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -0
  103. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -0
  104. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  105. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  106. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  107. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  108. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  109. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  110. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  112. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  114. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  116. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  118. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/combos/route.js +1 -1
  120. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/health/route.js +1 -1
  122. package/app/.next/server/app/api/init/route.js +1 -1
  123. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  125. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/keys/route.js +1 -1
  127. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/locale/route.js +1 -1
  129. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  130. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  132. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  133. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  134. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  136. package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/models/alias/route.js +1 -1
  138. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/models/availability/route.js +1 -1
  140. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/models/custom/route.js +1 -1
  142. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  144. package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  145. package/app/.next/server/app/api/models/route.js +1 -1
  146. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/models/test/route.js +1 -1
  148. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  150. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  152. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  153. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  155. package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  157. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  159. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  160. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  162. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  164. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/pricing/route.js +1 -1
  166. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  168. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  169. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  170. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  172. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  173. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  175. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  177. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  179. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  180. package/app/.next/server/app/api/providers/client/route.js +1 -1
  181. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  183. package/app/.next/server/app/api/providers/route.js +1 -1
  184. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  186. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  187. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  189. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  190. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  191. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  193. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  195. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  196. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  197. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  198. package/app/.next/server/app/api/settings/database/route.js +1 -1
  199. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  201. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  202. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/settings/route.js +1 -1
  204. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  205. package/app/.next/server/app/api/shutdown/route.js +1 -1
  206. package/app/.next/server/app/api/tags/route.js +1 -1
  207. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  208. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  210. package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/translator/load/route.js +1 -1
  212. package/app/.next/server/app/api/translator/save/route.js +1 -1
  213. package/app/.next/server/app/api/translator/send/route.js +1 -1
  214. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  216. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  218. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  220. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  221. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  222. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +15 -1
  224. package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  226. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  228. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +3 -3
  230. package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +15 -1
  232. package/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  234. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  236. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  238. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/usage/history/route.js +1 -1
  240. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  242. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  243. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  244. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  246. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  248. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  249. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  250. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  251. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  252. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  254. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  255. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  256. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  258. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  259. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  261. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  262. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  263. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  264. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  265. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  266. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  267. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  268. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  270. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
  271. package/app/.next/server/app/api/v1/models/route.js +1 -1
  272. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  273. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  274. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  276. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/v1/route.js +1 -1
  278. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  279. package/app/.next/server/app/api/v1/search/route.js +1 -1
  280. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  282. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  284. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  285. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  286. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  287. package/app/.next/server/app/api/version/route.js +1 -1
  288. package/app/.next/server/app/api/version/update/route.js +1 -1
  289. package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
  290. package/app/.next/server/app/callback/page.js +2 -2
  291. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  292. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/callback.html +1 -1
  294. package/app/.next/server/app/callback.rsc +22 -21
  295. package/app/.next/server/app/callback.segments/_full.segment.rsc +22 -21
  296. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  297. package/app/.next/server/app/callback.segments/_index.segment.rsc +7 -6
  298. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  299. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  300. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  301. package/app/.next/server/app/dashboard/basic-chat.html +1 -1
  302. package/app/.next/server/app/dashboard/basic-chat.rsc +20 -19
  303. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  304. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  305. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  306. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  307. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +20 -19
  308. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  309. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +7 -6
  310. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  311. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  312. package/app/.next/server/app/dashboard/cli-tools.rsc +21 -20
  313. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  314. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  315. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  316. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  317. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +21 -20
  318. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  319. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +7 -6
  320. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  321. package/app/.next/server/app/dashboard/combos.html +1 -1
  322. package/app/.next/server/app/dashboard/combos.rsc +23 -22
  323. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  325. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +23 -22
  328. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  329. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +7 -6
  330. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  331. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  332. package/app/.next/server/app/dashboard/endpoint.rsc +21 -20
  333. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  334. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  335. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  336. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  337. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +21 -20
  338. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  339. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +7 -6
  340. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  341. package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
  342. package/app/.next/server/app/dashboard/media-providers/web.rsc +25 -22
  343. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  344. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  345. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  346. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  347. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  348. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +25 -22
  349. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  350. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +7 -6
  351. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  352. package/app/.next/server/app/dashboard/mitm.html +1 -1
  353. package/app/.next/server/app/dashboard/mitm.rsc +20 -19
  354. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  355. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  356. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  357. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  358. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +20 -19
  359. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  360. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +7 -6
  361. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  362. package/app/.next/server/app/dashboard/profile.html +1 -1
  363. package/app/.next/server/app/dashboard/profile.rsc +24 -22
  364. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  365. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  366. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  367. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  368. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +24 -22
  369. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  370. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +7 -6
  371. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  372. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  373. package/app/.next/server/app/dashboard/providers/new.rsc +25 -22
  374. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  375. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  376. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  377. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  378. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  379. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +25 -22
  380. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  381. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +7 -6
  382. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  383. package/app/.next/server/app/dashboard/providers.html +1 -1
  384. package/app/.next/server/app/dashboard/providers.rsc +24 -22
  385. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  386. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  387. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  388. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  389. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +24 -22
  390. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  391. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +7 -6
  392. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  393. package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
  394. package/app/.next/server/app/dashboard/proxy-pools.rsc +24 -22
  395. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  396. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  397. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  398. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  399. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +24 -22
  400. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  401. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +7 -6
  402. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  403. package/app/.next/server/app/dashboard/quota.html +2 -2
  404. package/app/.next/server/app/dashboard/quota.rsc +21 -20
  405. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  406. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  407. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  408. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  409. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +21 -20
  410. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  411. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +7 -6
  412. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  413. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  414. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  415. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  416. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  417. package/app/.next/server/app/dashboard/settings/pricing.rsc +22 -21
  418. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +22 -21
  419. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  420. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +7 -6
  421. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  422. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  423. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  425. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  426. package/app/.next/server/app/dashboard/skills.html +1 -1
  427. package/app/.next/server/app/dashboard/skills.rsc +23 -22
  428. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  429. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  430. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  431. package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  432. package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +23 -22
  433. package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  434. package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +7 -6
  435. package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  436. package/app/.next/server/app/dashboard/translator.html +1 -1
  437. package/app/.next/server/app/dashboard/translator.rsc +24 -22
  438. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  439. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  440. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  441. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  442. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +24 -22
  443. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  444. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +7 -6
  445. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  446. package/app/.next/server/app/dashboard/usage.html +1 -1
  447. package/app/.next/server/app/dashboard/usage.rsc +23 -22
  448. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  449. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  450. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  451. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  452. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +23 -22
  453. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  454. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +7 -6
  455. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  456. package/app/.next/server/app/dashboard.html +1 -1
  457. package/app/.next/server/app/dashboard.rsc +21 -20
  458. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  459. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  460. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  461. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +21 -20
  462. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
  463. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +7 -6
  464. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  465. package/app/.next/server/app/favicon.ico/route.js +1 -1
  466. package/app/.next/server/app/index.html +1 -1
  467. package/app/.next/server/app/index.rsc +17 -16
  468. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  469. package/app/.next/server/app/index.segments/_full.segment.rsc +17 -16
  470. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  471. package/app/.next/server/app/index.segments/_index.segment.rsc +7 -6
  472. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  473. package/app/.next/server/app/landing/page.js +2 -2
  474. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  475. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  476. package/app/.next/server/app/landing.html +1 -1
  477. package/app/.next/server/app/landing.rsc +22 -21
  478. package/app/.next/server/app/landing.segments/_full.segment.rsc +22 -21
  479. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  480. package/app/.next/server/app/landing.segments/_index.segment.rsc +7 -6
  481. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  482. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  483. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  484. package/app/.next/server/app/login/page.js +2 -2
  485. package/app/.next/server/app/login/page.js.nft.json +1 -1
  486. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  487. package/app/.next/server/app/login.html +1 -1
  488. package/app/.next/server/app/login.rsc +22 -21
  489. package/app/.next/server/app/login.segments/_full.segment.rsc +22 -21
  490. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  491. package/app/.next/server/app/login.segments/_index.segment.rsc +7 -6
  492. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  493. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  494. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  495. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  496. package/app/.next/server/app/page.js +2 -2
  497. package/app/.next/server/app/page.js.nft.json +1 -1
  498. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  499. package/app/.next/server/app-paths-manifest.json +7 -5
  500. package/app/.next/server/chunks/1249.js +1 -1
  501. package/app/.next/server/chunks/1301.js +1 -1
  502. package/app/.next/server/chunks/1574.js +2 -2
  503. package/app/.next/server/chunks/2049.js +1 -1
  504. package/app/.next/server/chunks/21.js +1 -1
  505. package/app/.next/server/chunks/2212.js +32 -0
  506. package/app/.next/server/chunks/3630.js +9 -0
  507. package/app/.next/server/chunks/3774.js +3 -3
  508. package/app/.next/server/chunks/4116.js +1 -0
  509. package/app/.next/server/chunks/450.js +2 -2
  510. package/app/.next/server/chunks/4839.js +1 -0
  511. package/app/.next/server/chunks/4892.js +13 -0
  512. package/app/.next/server/chunks/5159.js +1 -0
  513. package/app/.next/server/chunks/5221.js +1 -1
  514. package/app/.next/server/chunks/5445.js +1 -0
  515. package/app/.next/server/chunks/586.js +1 -1
  516. package/app/.next/server/chunks/593.js +9 -0
  517. package/app/.next/server/chunks/6263.js +1 -1
  518. package/app/.next/server/chunks/6283.js +1 -0
  519. package/app/.next/server/chunks/6502.js +9 -0
  520. package/app/.next/server/chunks/6890.js +3 -3
  521. package/app/.next/server/chunks/7061.js +9 -0
  522. package/app/.next/server/chunks/7171.js +9 -0
  523. package/app/.next/server/chunks/7301.js +1 -0
  524. package/app/.next/server/chunks/7810.js +1 -0
  525. package/app/.next/server/chunks/8035.js +1 -1
  526. package/app/.next/server/chunks/8202.js +1 -1
  527. package/app/.next/server/chunks/8367.js +29 -0
  528. package/app/.next/server/chunks/8647.js +1 -0
  529. package/app/.next/server/chunks/9060.js +9 -0
  530. package/app/.next/server/chunks/9737.js +1 -0
  531. package/app/.next/server/middleware-build-manifest.js +1 -1
  532. package/app/.next/server/middleware.js +12 -4
  533. package/app/.next/server/pages/404.html +1 -1
  534. package/app/.next/server/pages/500.html +1 -1
  535. package/app/.next/server/server-reference-manifest.js +1 -1
  536. package/app/.next/server/server-reference-manifest.json +1 -1
  537. package/app/.next/static/chunks/1939-5f1c000b260c0698.js +23 -0
  538. package/app/.next/static/chunks/4156-773921135dfe2c75.js +7 -0
  539. package/app/.next/static/chunks/505-47d92a147b3d6af5.js +1 -0
  540. package/app/.next/static/chunks/8035-c87b74c7e1a7cf78.js +3 -0
  541. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-8ff504b85ad321a1.js +1 -0
  542. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-82f41d609dfb2f59.js → page-015ed627bb40b0d1.js} +12 -12
  543. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-7a43c4f097f69c0b.js +1 -0
  544. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-29ce6662637d64e4.js → page-7890b74e481f9d92.js} +1 -1
  545. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-d632fe470928df04.js +1 -0
  546. package/app/.next/static/chunks/app/(dashboard)/{layout-14ad56e827498f3d.js → layout-dca35f311527549c.js} +1 -1
  547. package/app/.next/static/chunks/app/_global-error/page-20fa0affdf8859be.js +1 -0
  548. package/app/.next/static/chunks/app/api/auth/login/route-20fa0affdf8859be.js +1 -0
  549. package/app/.next/static/chunks/app/api/auth/logout/route-20fa0affdf8859be.js +1 -0
  550. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-20fa0affdf8859be.js +1 -0
  551. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-20fa0affdf8859be.js +1 -0
  552. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-20fa0affdf8859be.js +1 -0
  553. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-20fa0affdf8859be.js +1 -0
  554. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-20fa0affdf8859be.js +1 -0
  555. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-20fa0affdf8859be.js +1 -0
  556. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-20fa0affdf8859be.js +1 -0
  557. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-20fa0affdf8859be.js +1 -0
  558. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-20fa0affdf8859be.js +1 -0
  559. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-20fa0affdf8859be.js +1 -0
  560. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-20fa0affdf8859be.js +1 -0
  561. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-20fa0affdf8859be.js +1 -0
  562. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-20fa0affdf8859be.js +1 -0
  563. package/app/.next/static/chunks/app/api/cloud/auth/route-20fa0affdf8859be.js +1 -0
  564. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-20fa0affdf8859be.js +1 -0
  565. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-20fa0affdf8859be.js +1 -0
  566. package/app/.next/static/chunks/app/api/cloud/models/alias/route-20fa0affdf8859be.js +1 -0
  567. package/app/.next/static/chunks/app/api/combos/[id]/route-20fa0affdf8859be.js +1 -0
  568. package/app/.next/static/chunks/app/api/combos/route-20fa0affdf8859be.js +1 -0
  569. package/app/.next/static/chunks/app/api/health/route-20fa0affdf8859be.js +1 -0
  570. package/app/.next/static/chunks/app/api/init/route-20fa0affdf8859be.js +1 -0
  571. package/app/.next/static/chunks/app/api/keys/[id]/route-20fa0affdf8859be.js +1 -0
  572. package/app/.next/static/chunks/app/api/keys/route-20fa0affdf8859be.js +1 -0
  573. package/app/.next/static/chunks/app/api/locale/route-20fa0affdf8859be.js +1 -0
  574. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-20fa0affdf8859be.js +1 -0
  575. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-20fa0affdf8859be.js +1 -0
  576. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-20fa0affdf8859be.js +1 -0
  577. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-20fa0affdf8859be.js +1 -0
  578. package/app/.next/static/chunks/app/api/models/alias/route-20fa0affdf8859be.js +1 -0
  579. package/app/.next/static/chunks/app/api/models/availability/route-20fa0affdf8859be.js +1 -0
  580. package/app/.next/static/chunks/app/api/models/custom/route-20fa0affdf8859be.js +1 -0
  581. package/app/.next/static/chunks/app/api/models/disabled/route-20fa0affdf8859be.js +1 -0
  582. package/app/.next/static/chunks/app/api/models/route-20fa0affdf8859be.js +1 -0
  583. package/app/.next/static/chunks/app/api/models/test/route-20fa0affdf8859be.js +1 -0
  584. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-20fa0affdf8859be.js +1 -0
  585. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-20fa0affdf8859be.js +1 -0
  586. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-20fa0affdf8859be.js +1 -0
  587. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-20fa0affdf8859be.js +1 -0
  588. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-20fa0affdf8859be.js +1 -0
  589. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-20fa0affdf8859be.js +1 -0
  590. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-20fa0affdf8859be.js +1 -0
  591. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-20fa0affdf8859be.js +1 -0
  592. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-20fa0affdf8859be.js +1 -0
  593. package/app/.next/static/chunks/app/api/pricing/route-20fa0affdf8859be.js +1 -0
  594. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-20fa0affdf8859be.js +1 -0
  595. package/app/.next/static/chunks/app/api/provider-nodes/route-20fa0affdf8859be.js +1 -0
  596. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-20fa0affdf8859be.js +1 -0
  597. package/app/.next/static/chunks/app/api/providers/[id]/models/route-20fa0affdf8859be.js +1 -0
  598. package/app/.next/static/chunks/app/api/providers/[id]/route-20fa0affdf8859be.js +1 -0
  599. package/app/.next/static/chunks/app/api/providers/[id]/test/route-20fa0affdf8859be.js +1 -0
  600. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-20fa0affdf8859be.js +1 -0
  601. package/app/.next/static/chunks/app/api/providers/client/route-20fa0affdf8859be.js +1 -0
  602. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-20fa0affdf8859be.js +1 -0
  603. package/app/.next/static/chunks/app/api/providers/route-20fa0affdf8859be.js +1 -0
  604. package/app/.next/static/chunks/app/api/providers/suggested-models/route-20fa0affdf8859be.js +1 -0
  605. package/app/.next/static/chunks/app/api/providers/test-batch/route-20fa0affdf8859be.js +1 -0
  606. package/app/.next/static/chunks/app/api/providers/validate/route-20fa0affdf8859be.js +1 -0
  607. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-20fa0affdf8859be.js +1 -0
  608. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-20fa0affdf8859be.js +1 -0
  609. package/app/.next/static/chunks/app/api/proxy-pools/route-20fa0affdf8859be.js +1 -0
  610. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-20fa0affdf8859be.js +1 -0
  611. package/app/.next/static/chunks/app/api/settings/database/route-20fa0affdf8859be.js +1 -0
  612. package/app/.next/static/chunks/app/api/settings/proxy-test/route-20fa0affdf8859be.js +1 -0
  613. package/app/.next/static/chunks/app/api/settings/require-login/route-20fa0affdf8859be.js +1 -0
  614. package/app/.next/static/chunks/app/api/settings/route-20fa0affdf8859be.js +1 -0
  615. package/app/.next/static/chunks/app/api/shutdown/route-20fa0affdf8859be.js +1 -0
  616. package/app/.next/static/chunks/app/api/tags/route-20fa0affdf8859be.js +1 -0
  617. package/app/.next/static/chunks/app/api/translator/console-logs/route-20fa0affdf8859be.js +1 -0
  618. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-20fa0affdf8859be.js +1 -0
  619. package/app/.next/static/chunks/app/api/translator/load/route-20fa0affdf8859be.js +1 -0
  620. package/app/.next/static/chunks/app/api/translator/save/route-20fa0affdf8859be.js +1 -0
  621. package/app/.next/static/chunks/app/api/translator/send/route-20fa0affdf8859be.js +1 -0
  622. package/app/.next/static/chunks/app/api/translator/translate/route-20fa0affdf8859be.js +1 -0
  623. package/app/.next/static/chunks/app/api/tunnel/disable/route-20fa0affdf8859be.js +1 -0
  624. package/app/.next/static/chunks/app/api/tunnel/enable/route-20fa0affdf8859be.js +1 -0
  625. package/app/.next/static/chunks/app/api/tunnel/status/route-20fa0affdf8859be.js +1 -0
  626. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-20fa0affdf8859be.js +1 -0
  627. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-20fa0affdf8859be.js +1 -0
  628. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-20fa0affdf8859be.js +1 -0
  629. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-20fa0affdf8859be.js +1 -0
  630. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-20fa0affdf8859be.js +1 -0
  631. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-20fa0affdf8859be.js +1 -0
  632. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-20fa0affdf8859be.js +1 -0
  633. package/app/.next/static/chunks/app/api/usage/chart/route-20fa0affdf8859be.js +1 -0
  634. package/app/.next/static/chunks/app/api/usage/history/route-20fa0affdf8859be.js +1 -0
  635. package/app/.next/static/chunks/app/api/usage/providers/route-20fa0affdf8859be.js +1 -0
  636. package/app/.next/static/chunks/app/api/usage/request-details/route-20fa0affdf8859be.js +1 -0
  637. package/app/.next/static/chunks/app/api/usage/request-logs/route-20fa0affdf8859be.js +1 -0
  638. package/app/.next/static/chunks/app/api/usage/stats/route-20fa0affdf8859be.js +1 -0
  639. package/app/.next/static/chunks/app/api/usage/stream/route-20fa0affdf8859be.js +1 -0
  640. package/app/.next/static/chunks/app/api/v1/api/chat/route-20fa0affdf8859be.js +1 -0
  641. package/app/.next/static/chunks/app/api/v1/audio/speech/route-20fa0affdf8859be.js +1 -0
  642. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-20fa0affdf8859be.js +1 -0
  643. package/app/.next/static/chunks/app/api/v1/audio/voices/route-20fa0affdf8859be.js +1 -0
  644. package/app/.next/static/chunks/app/api/v1/chat/completions/route-20fa0affdf8859be.js +1 -0
  645. package/app/.next/static/chunks/app/api/v1/embeddings/route-20fa0affdf8859be.js +1 -0
  646. package/app/.next/static/chunks/app/api/v1/images/generations/route-20fa0affdf8859be.js +1 -0
  647. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-20fa0affdf8859be.js +1 -0
  648. package/app/.next/static/chunks/app/api/v1/messages/route-20fa0affdf8859be.js +1 -0
  649. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-20fa0affdf8859be.js +1 -0
  650. package/app/.next/static/chunks/app/api/v1/models/info/route-20fa0affdf8859be.js +1 -0
  651. package/app/.next/static/chunks/app/api/v1/models/route-20fa0affdf8859be.js +1 -0
  652. package/app/.next/static/chunks/app/api/v1/responses/compact/route-20fa0affdf8859be.js +1 -0
  653. package/app/.next/static/chunks/app/api/v1/responses/route-20fa0affdf8859be.js +1 -0
  654. package/app/.next/static/chunks/app/api/v1/route-20fa0affdf8859be.js +1 -0
  655. package/app/.next/static/chunks/app/api/v1/search/route-20fa0affdf8859be.js +1 -0
  656. package/app/.next/static/chunks/app/api/v1/web/fetch/route-20fa0affdf8859be.js +1 -0
  657. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-20fa0affdf8859be.js +1 -0
  658. package/app/.next/static/chunks/app/api/v1beta/models/route-20fa0affdf8859be.js +1 -0
  659. package/app/.next/static/chunks/app/api/version/route-20fa0affdf8859be.js +1 -0
  660. package/app/.next/static/chunks/app/api/version/update/route-20fa0affdf8859be.js +1 -0
  661. package/app/.next/static/chunks/app/landing/{page-297a1c9230927b6f.js → page-34e119eac6b7e1a4.js} +1 -1
  662. package/app/.next/static/chunks/app/manifest.webmanifest/route-20fa0affdf8859be.js +1 -0
  663. package/app/.next/static/chunks/app/page-20fa0affdf8859be.js +1 -0
  664. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-20fa0affdf8859be.js +1 -0
  665. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-20fa0affdf8859be.js +1 -0
  666. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-20fa0affdf8859be.js +1 -0
  667. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-20fa0affdf8859be.js +1 -0
  668. package/app/.next/static/css/5d8cd780e73c8876.css +1 -0
  669. package/app/.next/static/gkZl0mznmfSjxMQgK_CRr/_buildManifest.js +1 -0
  670. package/app/package.json +3 -4
  671. package/app/src/lib/db/adapters/betterSqliteAdapter.js +55 -0
  672. package/app/src/lib/db/adapters/sqljsAdapter.js +114 -0
  673. package/app/src/lib/db/migrate.js +248 -0
  674. package/app/src/mitm/server.js +43 -41
  675. package/cli.js +9 -3
  676. package/hooks/postinstall.js +10 -68
  677. package/hooks/sqliteRuntime.js +127 -0
  678. package/package.json +2 -1
  679. package/app/.next/server/chunks/126.js +0 -2
  680. package/app/.next/server/chunks/2141.js +0 -1
  681. package/app/.next/server/chunks/2503.js +0 -15
  682. package/app/.next/server/chunks/253.js +0 -1
  683. package/app/.next/server/chunks/2566.js +0 -1
  684. package/app/.next/server/chunks/304.js +0 -1
  685. package/app/.next/server/chunks/3656.js +0 -1
  686. package/app/.next/server/chunks/514.js +0 -15
  687. package/app/.next/server/chunks/6782.js +0 -1
  688. package/app/.next/server/chunks/7770.js +0 -1
  689. package/app/.next/server/chunks/8193.js +0 -1
  690. package/app/.next/server/chunks/8515.js +0 -1
  691. package/app/.next/server/chunks/8525.js +0 -1
  692. package/app/.next/server/chunks/8710.js +0 -1
  693. package/app/.next/static/chunks/1939-b2a5b6699b8bf3d5.js +0 -23
  694. package/app/.next/static/chunks/4156-cc8090a3b79e0545.js +0 -7
  695. package/app/.next/static/chunks/505-87d01d8c08b1bf87.js +0 -1
  696. package/app/.next/static/chunks/8035-1f56df5774b5cc34.js +0 -3
  697. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-a6fe1644188a6348.js +0 -1
  698. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-5cb5ae93c4288788.js +0 -1
  699. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-1c3e2ce342940999.js +0 -1
  700. package/app/.next/static/chunks/app/_global-error/page-23420dc99d53d479.js +0 -1
  701. package/app/.next/static/chunks/app/api/auth/login/route-23420dc99d53d479.js +0 -1
  702. package/app/.next/static/chunks/app/api/auth/logout/route-23420dc99d53d479.js +0 -1
  703. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-23420dc99d53d479.js +0 -1
  704. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-23420dc99d53d479.js +0 -1
  705. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-23420dc99d53d479.js +0 -1
  706. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-23420dc99d53d479.js +0 -1
  707. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-23420dc99d53d479.js +0 -1
  708. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-23420dc99d53d479.js +0 -1
  709. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-23420dc99d53d479.js +0 -1
  710. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-23420dc99d53d479.js +0 -1
  711. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-23420dc99d53d479.js +0 -1
  712. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-23420dc99d53d479.js +0 -1
  713. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-23420dc99d53d479.js +0 -1
  714. package/app/.next/static/chunks/app/api/cloud/auth/route-23420dc99d53d479.js +0 -1
  715. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-23420dc99d53d479.js +0 -1
  716. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-23420dc99d53d479.js +0 -1
  717. package/app/.next/static/chunks/app/api/cloud/models/alias/route-23420dc99d53d479.js +0 -1
  718. package/app/.next/static/chunks/app/api/combos/[id]/route-23420dc99d53d479.js +0 -1
  719. package/app/.next/static/chunks/app/api/combos/route-23420dc99d53d479.js +0 -1
  720. package/app/.next/static/chunks/app/api/health/route-23420dc99d53d479.js +0 -1
  721. package/app/.next/static/chunks/app/api/init/route-23420dc99d53d479.js +0 -1
  722. package/app/.next/static/chunks/app/api/keys/[id]/route-23420dc99d53d479.js +0 -1
  723. package/app/.next/static/chunks/app/api/keys/route-23420dc99d53d479.js +0 -1
  724. package/app/.next/static/chunks/app/api/locale/route-23420dc99d53d479.js +0 -1
  725. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-23420dc99d53d479.js +0 -1
  726. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-23420dc99d53d479.js +0 -1
  727. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-23420dc99d53d479.js +0 -1
  728. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-23420dc99d53d479.js +0 -1
  729. package/app/.next/static/chunks/app/api/models/alias/route-23420dc99d53d479.js +0 -1
  730. package/app/.next/static/chunks/app/api/models/availability/route-23420dc99d53d479.js +0 -1
  731. package/app/.next/static/chunks/app/api/models/custom/route-23420dc99d53d479.js +0 -1
  732. package/app/.next/static/chunks/app/api/models/disabled/route-23420dc99d53d479.js +0 -1
  733. package/app/.next/static/chunks/app/api/models/route-23420dc99d53d479.js +0 -1
  734. package/app/.next/static/chunks/app/api/models/test/route-23420dc99d53d479.js +0 -1
  735. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-23420dc99d53d479.js +0 -1
  736. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-23420dc99d53d479.js +0 -1
  737. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-23420dc99d53d479.js +0 -1
  738. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-23420dc99d53d479.js +0 -1
  739. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-23420dc99d53d479.js +0 -1
  740. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-23420dc99d53d479.js +0 -1
  741. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-23420dc99d53d479.js +0 -1
  742. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-23420dc99d53d479.js +0 -1
  743. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-23420dc99d53d479.js +0 -1
  744. package/app/.next/static/chunks/app/api/pricing/route-23420dc99d53d479.js +0 -1
  745. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-23420dc99d53d479.js +0 -1
  746. package/app/.next/static/chunks/app/api/provider-nodes/route-23420dc99d53d479.js +0 -1
  747. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-23420dc99d53d479.js +0 -1
  748. package/app/.next/static/chunks/app/api/providers/[id]/models/route-23420dc99d53d479.js +0 -1
  749. package/app/.next/static/chunks/app/api/providers/[id]/route-23420dc99d53d479.js +0 -1
  750. package/app/.next/static/chunks/app/api/providers/[id]/test/route-23420dc99d53d479.js +0 -1
  751. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-23420dc99d53d479.js +0 -1
  752. package/app/.next/static/chunks/app/api/providers/client/route-23420dc99d53d479.js +0 -1
  753. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-23420dc99d53d479.js +0 -1
  754. package/app/.next/static/chunks/app/api/providers/route-23420dc99d53d479.js +0 -1
  755. package/app/.next/static/chunks/app/api/providers/suggested-models/route-23420dc99d53d479.js +0 -1
  756. package/app/.next/static/chunks/app/api/providers/test-batch/route-23420dc99d53d479.js +0 -1
  757. package/app/.next/static/chunks/app/api/providers/validate/route-23420dc99d53d479.js +0 -1
  758. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-23420dc99d53d479.js +0 -1
  759. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-23420dc99d53d479.js +0 -1
  760. package/app/.next/static/chunks/app/api/proxy-pools/route-23420dc99d53d479.js +0 -1
  761. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-23420dc99d53d479.js +0 -1
  762. package/app/.next/static/chunks/app/api/settings/database/route-23420dc99d53d479.js +0 -1
  763. package/app/.next/static/chunks/app/api/settings/proxy-test/route-23420dc99d53d479.js +0 -1
  764. package/app/.next/static/chunks/app/api/settings/require-login/route-23420dc99d53d479.js +0 -1
  765. package/app/.next/static/chunks/app/api/settings/route-23420dc99d53d479.js +0 -1
  766. package/app/.next/static/chunks/app/api/shutdown/route-23420dc99d53d479.js +0 -1
  767. package/app/.next/static/chunks/app/api/tags/route-23420dc99d53d479.js +0 -1
  768. package/app/.next/static/chunks/app/api/translator/console-logs/route-23420dc99d53d479.js +0 -1
  769. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-23420dc99d53d479.js +0 -1
  770. package/app/.next/static/chunks/app/api/translator/load/route-23420dc99d53d479.js +0 -1
  771. package/app/.next/static/chunks/app/api/translator/save/route-23420dc99d53d479.js +0 -1
  772. package/app/.next/static/chunks/app/api/translator/send/route-23420dc99d53d479.js +0 -1
  773. package/app/.next/static/chunks/app/api/translator/translate/route-23420dc99d53d479.js +0 -1
  774. package/app/.next/static/chunks/app/api/tunnel/disable/route-23420dc99d53d479.js +0 -1
  775. package/app/.next/static/chunks/app/api/tunnel/enable/route-23420dc99d53d479.js +0 -1
  776. package/app/.next/static/chunks/app/api/tunnel/status/route-23420dc99d53d479.js +0 -1
  777. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-23420dc99d53d479.js +0 -1
  778. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-23420dc99d53d479.js +0 -1
  779. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-23420dc99d53d479.js +0 -1
  780. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-23420dc99d53d479.js +0 -1
  781. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-23420dc99d53d479.js +0 -1
  782. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-23420dc99d53d479.js +0 -1
  783. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-23420dc99d53d479.js +0 -1
  784. package/app/.next/static/chunks/app/api/usage/chart/route-23420dc99d53d479.js +0 -1
  785. package/app/.next/static/chunks/app/api/usage/history/route-23420dc99d53d479.js +0 -1
  786. package/app/.next/static/chunks/app/api/usage/providers/route-23420dc99d53d479.js +0 -1
  787. package/app/.next/static/chunks/app/api/usage/request-details/route-23420dc99d53d479.js +0 -1
  788. package/app/.next/static/chunks/app/api/usage/request-logs/route-23420dc99d53d479.js +0 -1
  789. package/app/.next/static/chunks/app/api/usage/stats/route-23420dc99d53d479.js +0 -1
  790. package/app/.next/static/chunks/app/api/usage/stream/route-23420dc99d53d479.js +0 -1
  791. package/app/.next/static/chunks/app/api/v1/api/chat/route-23420dc99d53d479.js +0 -1
  792. package/app/.next/static/chunks/app/api/v1/audio/speech/route-23420dc99d53d479.js +0 -1
  793. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-23420dc99d53d479.js +0 -1
  794. package/app/.next/static/chunks/app/api/v1/audio/voices/route-23420dc99d53d479.js +0 -1
  795. package/app/.next/static/chunks/app/api/v1/chat/completions/route-23420dc99d53d479.js +0 -1
  796. package/app/.next/static/chunks/app/api/v1/embeddings/route-23420dc99d53d479.js +0 -1
  797. package/app/.next/static/chunks/app/api/v1/images/generations/route-23420dc99d53d479.js +0 -1
  798. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-23420dc99d53d479.js +0 -1
  799. package/app/.next/static/chunks/app/api/v1/messages/route-23420dc99d53d479.js +0 -1
  800. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-23420dc99d53d479.js +0 -1
  801. package/app/.next/static/chunks/app/api/v1/models/info/route-23420dc99d53d479.js +0 -1
  802. package/app/.next/static/chunks/app/api/v1/models/route-23420dc99d53d479.js +0 -1
  803. package/app/.next/static/chunks/app/api/v1/responses/compact/route-23420dc99d53d479.js +0 -1
  804. package/app/.next/static/chunks/app/api/v1/responses/route-23420dc99d53d479.js +0 -1
  805. package/app/.next/static/chunks/app/api/v1/route-23420dc99d53d479.js +0 -1
  806. package/app/.next/static/chunks/app/api/v1/search/route-23420dc99d53d479.js +0 -1
  807. package/app/.next/static/chunks/app/api/v1/web/fetch/route-23420dc99d53d479.js +0 -1
  808. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-23420dc99d53d479.js +0 -1
  809. package/app/.next/static/chunks/app/api/v1beta/models/route-23420dc99d53d479.js +0 -1
  810. package/app/.next/static/chunks/app/api/version/route-23420dc99d53d479.js +0 -1
  811. package/app/.next/static/chunks/app/api/version/update/route-23420dc99d53d479.js +0 -1
  812. package/app/.next/static/chunks/app/manifest.webmanifest/route-23420dc99d53d479.js +0 -1
  813. package/app/.next/static/chunks/app/page-23420dc99d53d479.js +0 -1
  814. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-23420dc99d53d479.js +0 -1
  815. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-23420dc99d53d479.js +0 -1
  816. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-23420dc99d53d479.js +0 -1
  817. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23420dc99d53d479.js +0 -1
  818. package/app/.next/static/css/313a62036a09d576.css +0 -1
  819. package/app/.next/static/g6K-sXverqaFK0NMbiAzn/_buildManifest.js +0 -1
  820. package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  821. package/app/node_modules/better-sqlite3/lib/database.js +0 -90
  822. package/app/node_modules/better-sqlite3/lib/index.js +0 -3
  823. package/app/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  824. package/app/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  825. package/app/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  826. package/app/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  827. package/app/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  828. package/app/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  829. package/app/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  830. package/app/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  831. package/app/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  832. package/app/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  833. package/app/node_modules/better-sqlite3/lib/util.js +0 -12
  834. package/app/node_modules/better-sqlite3/package.json +0 -59
  835. /package/app/.next/static/{g6K-sXverqaFK0NMbiAzn → gkZl0mznmfSjxMQgK_CRr}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- exports.id=3656,exports.ids=[3656],exports.modules={7468:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},12e3:(a,b,c)=>{var d,e,f,g=c(29021),h=c(15325),i=c(55946),j=c(12628),k=c(28354);function l(a,b){Object.defineProperty(a,d,{get:function(){return b}})}"function"==typeof Symbol&&"function"==typeof Symbol.for?(d=Symbol.for("graceful-fs.queue"),e=Symbol.for("graceful-fs.previous")):(d="___graceful-fs.queue",e="___graceful-fs.previous");var m=function(){};function n(a){h(a),a.gracefulify=n,a.createReadStream=function(b,c){return new a.ReadStream(b,c)},a.createWriteStream=function(b,c){return new a.WriteStream(b,c)};var b=a.readFile;a.readFile=function(a,c,d){return"function"==typeof c&&(d=c,c=null),function a(c,d,e,f){return b(c,d,function(b){b&&("EMFILE"===b.code||"ENFILE"===b.code)?o([a,[c,d,e],b,f||Date.now(),Date.now()]):"function"==typeof e&&e.apply(this,arguments)})}(a,c,d)};var c=a.writeFile;a.writeFile=function(a,b,d,e){return"function"==typeof d&&(e=d,d=null),function a(b,d,e,f,g){return c(b,d,e,function(c){c&&("EMFILE"===c.code||"ENFILE"===c.code)?o([a,[b,d,e,f],c,g||Date.now(),Date.now()]):"function"==typeof f&&f.apply(this,arguments)})}(a,b,d,e)};var d=a.appendFile;d&&(a.appendFile=function(a,b,c,e){return"function"==typeof c&&(e=c,c=null),function a(b,c,e,f,g){return d(b,c,e,function(d){d&&("EMFILE"===d.code||"ENFILE"===d.code)?o([a,[b,c,e,f],d,g||Date.now(),Date.now()]):"function"==typeof f&&f.apply(this,arguments)})}(a,b,c,e)});var e=a.copyFile;e&&(a.copyFile=function(a,b,c,d){return"function"==typeof c&&(d=c,c=0),function a(b,c,d,f,g){return e(b,c,d,function(e){e&&("EMFILE"===e.code||"ENFILE"===e.code)?o([a,[b,c,d,f],e,g||Date.now(),Date.now()]):"function"==typeof f&&f.apply(this,arguments)})}(a,b,c,d)});var f=a.readdir;a.readdir=function(a,b,c){"function"==typeof b&&(c=b,b=null);var d=g.test(process.version)?function(a,b,c,d){return f(a,e(a,b,c,d))}:function(a,b,c,d){return f(a,b,e(a,b,c,d))};return d(a,b,c);function e(a,b,c,e){return function(f,g){f&&("EMFILE"===f.code||"ENFILE"===f.code)?o([d,[a,b,c],f,e||Date.now(),Date.now()]):(g&&g.sort&&g.sort(),"function"==typeof c&&c.call(this,f,g))}}};var g=/^v[0-5]\./;if("v0.8"===process.version.substr(0,4)){var j=i(a);q=j.ReadStream,r=j.WriteStream}var k=a.ReadStream;k&&(q.prototype=Object.create(k.prototype),q.prototype.open=function(){var a=this;t(a.path,a.flags,a.mode,function(b,c){b?(a.autoClose&&a.destroy(),a.emit("error",b)):(a.fd=c,a.emit("open",c),a.read())})});var l=a.WriteStream;l&&(r.prototype=Object.create(l.prototype),r.prototype.open=function(){var a=this;t(a.path,a.flags,a.mode,function(b,c){b?(a.destroy(),a.emit("error",b)):(a.fd=c,a.emit("open",c))})}),Object.defineProperty(a,"ReadStream",{get:function(){return q},set:function(a){q=a},enumerable:!0,configurable:!0}),Object.defineProperty(a,"WriteStream",{get:function(){return r},set:function(a){r=a},enumerable:!0,configurable:!0});var m=q;Object.defineProperty(a,"FileReadStream",{get:function(){return m},set:function(a){m=a},enumerable:!0,configurable:!0});var p=r;function q(a,b){return this instanceof q?(k.apply(this,arguments),this):q.apply(Object.create(q.prototype),arguments)}function r(a,b){return this instanceof r?(l.apply(this,arguments),this):r.apply(Object.create(r.prototype),arguments)}Object.defineProperty(a,"FileWriteStream",{get:function(){return p},set:function(a){p=a},enumerable:!0,configurable:!0});var s=a.open;function t(a,b,c,d){return"function"==typeof c&&(d=c,c=null),function a(b,c,d,e,f){return s(b,c,d,function(g,h){g&&("EMFILE"===g.code||"ENFILE"===g.code)?o([a,[b,c,d,e],g,f||Date.now(),Date.now()]):"function"==typeof e&&e.apply(this,arguments)})}(a,b,c,d)}return a.open=t,a}function o(a){m("ENQUEUE",a[0].name,a[1]),g[d].push(a),q()}function p(){for(var a=Date.now(),b=0;b<g[d].length;++b)g[d][b].length>2&&(g[d][b][3]=a,g[d][b][4]=a);q()}function q(){if(clearTimeout(f),f=void 0,0!==g[d].length){var a=g[d].shift(),b=a[0],c=a[1],e=a[2],h=a[3],i=a[4];if(void 0===h)m("RETRY",b.name,c),b.apply(null,c);else if(Date.now()-h>=6e4){m("TIMEOUT",b.name,c);var j=c.pop();"function"==typeof j&&j.call(null,e)}else Date.now()-i>=Math.min(1.2*Math.max(i-h,1),100)?(m("RETRY",b.name,c),b.apply(null,c.concat([h]))):g[d].push(a);void 0===f&&(f=setTimeout(q,0))}}k.debuglog?m=k.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(m=function(){var a=k.format.apply(k,arguments);console.error(a="GFS4: "+a.split(/\n/).join("\nGFS4: "))}),!g[d]&&(l(g,global[d]||[]),g.close=function(a){function b(b,c){return a.call(g,b,function(a){a||p(),"function"==typeof c&&c.apply(this,arguments)})}return Object.defineProperty(b,e,{value:a}),b}(g.close),g.closeSync=function(a){function b(b){a.apply(g,arguments),p()}return Object.defineProperty(b,e,{value:a}),b}(g.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){m(g[d]),c(12412).equal(g[d].length,0)})),global[d]||l(global,g[d]),a.exports=n(j(g)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!g.__patched&&(a.exports=n(g),g.__patched=!0)},12628:a=>{"use strict";a.exports=function(a){if(null===a||"object"!=typeof a)return a;if(a instanceof Object)var c={__proto__:b(a)};else var c=Object.create(null);return Object.getOwnPropertyNames(a).forEach(function(b){Object.defineProperty(c,b,Object.getOwnPropertyDescriptor(a,b))}),c};var b=Object.getPrototypeOf||function(a){return a.__proto__}},15325:(a,b,c)=>{var d=c(81115),e=process.cwd,f=null,g=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return f||(f=e.call(process)),f};try{process.cwd()}catch(a){}if("function"==typeof process.chdir){var h=process.chdir;process.chdir=function(a){f=null,h.call(process,a)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,h)}a.exports=function(a){var b,c,e;function f(b){return b?function(c,d,e){return b.call(a,c,d,function(a){m(a)&&(a=null),e&&e.apply(this,arguments)})}:b}function h(b){return b?function(c,d){try{return b.call(a,c,d)}catch(a){if(!m(a))throw a}}:b}function i(b){return b?function(c,d,e,f){return b.call(a,c,d,e,function(a){m(a)&&(a=null),f&&f.apply(this,arguments)})}:b}function j(b){return b?function(c,d,e){try{return b.call(a,c,d,e)}catch(a){if(!m(a))throw a}}:b}function k(b){return b?function(c,d,e){function f(a,b){b&&(b.uid<0&&(b.uid+=0x100000000),b.gid<0&&(b.gid+=0x100000000)),e&&e.apply(this,arguments)}return"function"==typeof d&&(e=d,d=null),d?b.call(a,c,d,f):b.call(a,c,f)}:b}function l(b){return b?function(c,d){var e=d?b.call(a,c,d):b.call(a,c);return e&&(e.uid<0&&(e.uid+=0x100000000),e.gid<0&&(e.gid+=0x100000000)),e}:b}function m(a){return!a||"ENOSYS"===a.code||(!process.getuid||0!==process.getuid())&&("EINVAL"===a.code||"EPERM"===a.code)}d.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&((c=a).lchmod=function(a,b,e){c.open(a,d.O_WRONLY|d.O_SYMLINK,b,function(a,d){if(a){e&&e(a);return}c.fchmod(d,b,function(a){c.close(d,function(b){e&&e(a||b)})})})},c.lchmodSync=function(a,b){var e,f=c.openSync(a,d.O_WRONLY|d.O_SYMLINK,b),g=!0;try{e=c.fchmodSync(f,b),g=!1}finally{if(g)try{c.closeSync(f)}catch(a){}else c.closeSync(f)}return e}),a.lutimes||(e=a,d.hasOwnProperty("O_SYMLINK")&&e.futimes?(e.lutimes=function(a,b,c,f){e.open(a,d.O_SYMLINK,function(a,d){if(a){f&&f(a);return}e.futimes(d,b,c,function(a){e.close(d,function(b){f&&f(a||b)})})})},e.lutimesSync=function(a,b,c){var f,g=e.openSync(a,d.O_SYMLINK),h=!0;try{f=e.futimesSync(g,b,c),h=!1}finally{if(h)try{e.closeSync(g)}catch(a){}else e.closeSync(g)}return f}):e.futimes&&(e.lutimes=function(a,b,c,d){d&&process.nextTick(d)},e.lutimesSync=function(){})),a.chown=i(a.chown),a.fchown=i(a.fchown),a.lchown=i(a.lchown),a.chmod=f(a.chmod),a.fchmod=f(a.fchmod),a.lchmod=f(a.lchmod),a.chownSync=j(a.chownSync),a.fchownSync=j(a.fchownSync),a.lchownSync=j(a.lchownSync),a.chmodSync=h(a.chmodSync),a.fchmodSync=h(a.fchmodSync),a.lchmodSync=h(a.lchmodSync),a.stat=k(a.stat),a.fstat=k(a.fstat),a.lstat=k(a.lstat),a.statSync=l(a.statSync),a.fstatSync=l(a.fstatSync),a.lstatSync=l(a.lstatSync),a.chmod&&!a.lchmod&&(a.lchmod=function(a,b,c){c&&process.nextTick(c)},a.lchmodSync=function(){}),a.chown&&!a.lchown&&(a.lchown=function(a,b,c,d){d&&process.nextTick(d)},a.lchownSync=function(){}),"win32"===g&&(a.rename="function"!=typeof a.rename?a.rename:function(b){function c(c,d,e){var f=Date.now(),g=0;b(c,d,function h(i){if(i&&("EACCES"===i.code||"EPERM"===i.code||"EBUSY"===i.code)&&Date.now()-f<6e4){setTimeout(function(){a.stat(d,function(a,f){a&&"ENOENT"===a.code?b(c,d,h):e(i)})},g),g<100&&(g+=10);return}e&&e(i)})}return Object.setPrototypeOf&&Object.setPrototypeOf(c,b),c}(a.rename)),a.read="function"!=typeof a.read?a.read:function(b){function c(c,d,e,f,g,h){var i;if(h&&"function"==typeof h){var j=0;i=function(k,l,m){if(k&&"EAGAIN"===k.code&&j<10)return j++,b.call(a,c,d,e,f,g,i);h.apply(this,arguments)}}return b.call(a,c,d,e,f,g,i)}return Object.setPrototypeOf&&Object.setPrototypeOf(c,b),c}(a.read),a.readSync="function"!=typeof a.readSync?a.readSync:(b=a.readSync,function(c,d,e,f,g){for(var h=0;;)try{return b.call(a,c,d,e,f,g)}catch(a){if("EAGAIN"===a.code&&h<10){h++;continue}throw a}})}},37873:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(7468);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},42754:a=>{a.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&a.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&a.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},43159:a=>{"use strict";let b=Symbol();a.exports.probe=function(a,c,d){let e=c[b];if(e)return c.stat(a,(a,b)=>{if(a)return d(a);d(null,b.mtime,e)});let f=new Date(1e3*Math.ceil(Date.now()/1e3)+5);c.utimes(a,f,f,e=>{if(e)return d(e);c.stat(a,(a,e)=>{if(a)return d(a);let f=e.mtime.getTime()%1e3==0?"s":"ms";Object.defineProperty(c,b,{value:f}),d(null,e.mtime,f)})})},a.exports.getMtime=function(a){let b=Date.now();return"s"===a&&(b=1e3*Math.ceil(b/1e3)),new Date(b)}},45574:a=>{function b(a,b){"boolean"==typeof b&&(b={forever:b}),this._originalTimeouts=JSON.parse(JSON.stringify(a)),this._timeouts=a,this._options=b||{},this._maxRetryTime=b&&b.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}a.exports=b,b.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},b.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},b.prototype.retry=function(a){if(this._timeout&&clearTimeout(this._timeout),!a)return!1;var b=new Date().getTime();if(a&&b-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(a);var c=this._timeouts.shift();if(void 0===c)if(!this._cachedTimeouts)return!1;else this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),c=this._timeouts.shift();var d=this,e=setTimeout(function(){d._attempts++,d._operationTimeoutCb&&(d._timeout=setTimeout(function(){d._operationTimeoutCb(d._attempts)},d._operationTimeout),d._options.unref&&d._timeout.unref()),d._fn(d._attempts)},c);return this._options.unref&&e.unref(),!0},b.prototype.attempt=function(a,b){this._fn=a,b&&(b.timeout&&(this._operationTimeout=b.timeout),b.cb&&(this._operationTimeoutCb=b.cb));var c=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){c._operationTimeoutCb()},c._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},b.prototype.try=function(a){console.log("Using RetryOperation.try() is deprecated"),this.attempt(a)},b.prototype.start=function(a){console.log("Using RetryOperation.start() is deprecated"),this.attempt(a)},b.prototype.start=b.prototype.try,b.prototype.errors=function(){return this._errors},b.prototype.attempts=function(){return this._attempts},b.prototype.mainError=function(){if(0===this._errors.length)return null;for(var a={},b=null,c=0,d=0;d<this._errors.length;d++){var e=this._errors[d],f=e.message,g=(a[f]||0)+1;a[f]=g,g>=c&&(b=e,c=g)}return b}},46971:(a,b,c)=>{"use strict";let d=c(33873),e=c(12e3),f=c(55726),g=c(51087),h=c(43159),i={};function j(a,b){return b.lockfilePath||`${a}.lock`}function k(a,b,c){if(!b.realpath)return c(null,d.resolve(a));b.fs.realpath(a,c)}function l(a,b){return a.mtime.getTime()<Date.now()-b.stale}function m(a,b,c){b.fs.rmdir(j(a,b),a=>{if(a&&"ENOENT"!==a.code)return c(a);c()})}function n(a,b,c){b.released=!0,b.updateTimeout&&clearTimeout(b.updateTimeout),i[a]===b&&delete i[a],b.options.onCompromised(c)}function o(a,b,c){k(a,b={fs:e,realpath:!0,...b},(a,d)=>{if(a)return c(a);let e=i[d];if(!e)return c(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));e.updateTimeout&&clearTimeout(e.updateTimeout),e.released=!0,delete i[d],m(d,b,c)})}g(()=>{for(let a in i){let b=i[a].options;try{b.fs.rmdirSync(j(a,b))}catch(a){}}}),a.exports.lock=function(a,b,c){(b={stale:1e4,update:null,realpath:!0,retries:0,fs:e,onCompromised:a=>{throw a},...b}).retries=b.retries||0,b.retries="number"==typeof b.retries?{retries:b.retries}:b.retries,b.stale=Math.max(b.stale||0,2e3),b.update=null==b.update?b.stale/2:b.update||0,b.update=Math.max(Math.min(b.update,b.stale/2),1e3),k(a,b,(a,d)=>{if(a)return c(a);let e=f.operation(b.retries);e.attempt(()=>{!function a(b,c,d){let e=j(b,c);c.fs.mkdir(e,f=>f?"EEXIST"!==f.code?d(f):c.stale<=0?d(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:b})):void c.fs.stat(e,(e,f)=>e?"ENOENT"===e.code?a(b,{...c,stale:0},d):d(e):l(f,c)?void m(b,c,e=>{if(e)return d(e);a(b,{...c,stale:0},d)}):d(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:b}))):h.probe(e,c.fs,(a,b,f)=>{if(a)return c.fs.rmdir(e,()=>{}),d(a);d(null,b,f)}))}(d,b,(a,f,g)=>{if(e.retry(a))return;if(a)return c(e.mainError());let k=i[d]={lockfilePath:j(d,b),mtime:f,mtimePrecision:g,options:b,lastUpdate:Date.now()};!function a(b,c){let d=i[b];!d.updateTimeout&&(d.updateDelay=d.updateDelay||c.update,d.updateTimeout=setTimeout(()=>{d.updateTimeout=null,c.fs.stat(d.lockfilePath,(e,f)=>{let g=d.lastUpdate+c.stale<Date.now();if(e)return"ENOENT"===e.code||g?n(b,d,Object.assign(e,{code:"ECOMPROMISED"})):(d.updateDelay=1e3,a(b,c));if(d.mtime.getTime()!==f.mtime.getTime())return n(b,d,Object.assign(Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let i=h.getMtime(d.mtimePrecision);c.fs.utimes(d.lockfilePath,i,i,e=>{let f=d.lastUpdate+c.stale<Date.now();if(!d.released){if(e)return"ENOENT"===e.code||f?n(b,d,Object.assign(e,{code:"ECOMPROMISED"})):(d.updateDelay=1e3,a(b,c));d.mtime=i,d.lastUpdate=Date.now(),d.updateDelay=null,a(b,c)}})})},d.updateDelay),d.updateTimeout.unref&&d.updateTimeout.unref())}(d,b),c(null,a=>{if(k.released)return a&&a(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));o(d,{...b,realpath:!1},a)})})})})},a.exports.unlock=o,a.exports.check=function(a,b,c){(b={stale:1e4,realpath:!0,fs:e,...b}).stale=Math.max(b.stale||0,2e3),k(a,b,(a,d)=>{if(a)return c(a);b.fs.stat(j(d,b),(a,d)=>a?"ENOENT"===a.code?c(null,!1):c(a):c(null,!l(d,b)))})},a.exports.getLocks=function(){return i}},48128:(a,b,c)=>{"use strict";let d=c(46971),{toPromise:e,toSync:f,toSyncOptions:g}=c(65739);async function h(a,b){let c=await e(d.lock)(a,b);return e(c)}a.exports=h,a.exports.lock=h,a.exports.unlock=function(a,b){return e(d.unlock)(a,b)},a.exports.lockSync=function(a,b){let c=f(d.lock)(a,g(b));return f(c)},a.exports.unlockSync=function(a,b){return f(d.unlock)(a,g(b))},a.exports.check=function(a,b){return e(d.check)(a,b)},a.exports.checkSync=function(a,b){return f(d.check)(a,g(b))}},51087:(a,b,c)=>{var d=global.process;let e=function(a){return a&&"object"==typeof a&&"function"==typeof a.removeListener&&"function"==typeof a.emit&&"function"==typeof a.reallyExit&&"function"==typeof a.listeners&&"function"==typeof a.kill&&"number"==typeof a.pid&&"function"==typeof a.on};if(e(d)){var f,g=c(12412),h=c(42754),i=/^win/i.test(d.platform),j=c(94735);"function"!=typeof j&&(j=j.EventEmitter),d.__signal_exit_emitter__?f=d.__signal_exit_emitter__:((f=d.__signal_exit_emitter__=new j).count=0,f.emitted={}),f.infinite||(f.setMaxListeners(1/0),f.infinite=!0),a.exports=function(a,b){if(!e(global.process))return function(){};g.equal(typeof a,"function","a callback must be provided for exit handler"),!1===n&&o();var c="exit";return b&&b.alwaysLast&&(c="afterexit"),f.on(c,a),function(){f.removeListener(c,a),0===f.listeners("exit").length&&0===f.listeners("afterexit").length&&k()}};var k=function(){n&&e(global.process)&&(n=!1,h.forEach(function(a){try{d.removeListener(a,m[a])}catch(a){}}),d.emit=r,d.reallyExit=p,f.count-=1)};a.exports.unload=k;var l=function(a,b,c){f.emitted[a]||(f.emitted[a]=!0,f.emit(a,b,c))},m={};h.forEach(function(a){m[a]=function(){e(global.process)&&d.listeners(a).length===f.count&&(k(),l("exit",null,a),l("afterexit",null,a),i&&"SIGHUP"===a&&(a="SIGINT"),d.kill(d.pid,a))}}),a.exports.signals=function(){return h};var n=!1,o=function(){!n&&e(global.process)&&(n=!0,f.count+=1,h=h.filter(function(a){try{return d.on(a,m[a]),!0}catch(a){return!1}}),d.emit=s,d.reallyExit=q)};a.exports.load=o;var p=d.reallyExit,q=function(a){e(global.process)&&(d.exitCode=a||0,l("exit",d.exitCode,null),l("afterexit",d.exitCode,null),p.call(d,d.exitCode))},r=d.emit,s=function(a,b){if(!("exit"===a&&e(global.process)))return r.apply(this,arguments);void 0!==b&&(d.exitCode=b);var c=r.apply(this,arguments);return l("exit",d.exitCode,null),l("afterexit",d.exitCode,null),c}}else a.exports=function(){return function(){}}},55726:(a,b,c)=>{a.exports=c(77908)},55946:(a,b,c)=>{var d=c(27910).Stream;a.exports=function(a){return{ReadStream:function b(c,e){if(!(this instanceof b))return new b(c,e);d.call(this);var f=this;this.path=c,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536;for(var g=Object.keys(e=e||{}),h=0,i=g.length;h<i;h++){var j=g[h];this[j]=e[j]}if(this.encoding&&this.setEncoding(this.encoding),void 0!==this.start){if("number"!=typeof this.start)throw TypeError("start must be a Number");if(void 0===this.end)this.end=1/0;else if("number"!=typeof this.end)throw TypeError("end must be a Number");if(this.start>this.end)throw Error("start must be <= end");this.pos=this.start}null!==this.fd?process.nextTick(function(){f._read()}):a.open(this.path,this.flags,this.mode,function(a,b){if(a){f.emit("error",a),f.readable=!1;return}f.fd=b,f.emit("open",b),f._read()})},WriteStream:function b(c,e){if(!(this instanceof b))return new b(c,e);d.call(this),this.path=c,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0;for(var f=Object.keys(e=e||{}),g=0,h=f.length;g<h;g++){var i=f[g];this[i]=e[i]}if(void 0!==this.start){if("number"!=typeof this.start)throw TypeError("start must be a Number");if(this.start<0)throw Error("start must be >= zero");this.pos=this.start}this.busy=!1,this._queue=[],null===this.fd&&(this._open=a.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}}},65739:(a,b,c)=>{"use strict";let d=c(12e3);a.exports={toPromise:function(a){return(...b)=>new Promise((c,d)=>{b.push((a,b)=>{a?d(a):c(b)}),a(...b)})},toSync:function(a){return(...b)=>{let c,d;if(b.push((a,b)=>{c=a,d=b}),a(...b),c)throw c;return d}},toSyncOptions:function(a){var b;let c;if((a={...a}).fs=(c={...b=a.fs||d},["mkdir","realpath","stat","rmdir","utimes"].forEach(a=>{c[a]=(...c)=>{let d,e=c.pop();try{d=b[`${a}Sync`](...c)}catch(a){return e(a)}e(null,d)}}),c),"number"==typeof a.retries&&a.retries>0||a.retries&&"number"==typeof a.retries.retries&&a.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return a}}},77908:(a,b,c)=>{var d=c(45574);b.operation=function(a){return new d(b.timeouts(a),{forever:a&&a.forever,unref:a&&a.unref,maxRetryTime:a&&a.maxRetryTime})},b.timeouts=function(a){if(a instanceof Array)return[].concat(a);var b={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var c in a)b[c]=a[c];if(b.minTimeout>b.maxTimeout)throw Error("minTimeout is greater than maxTimeout");for(var d=[],e=0;e<b.retries;e++)d.push(this.createTimeout(e,b));return a&&a.forever&&!d.length&&d.push(this.createTimeout(e,b)),d.sort(function(a,b){return a-b}),d},b.createTimeout=function(a,b){var c=Math.round((b.randomize?Math.random()+1:1)*b.minTimeout*Math.pow(b.factor,a));return Math.min(c,b.maxTimeout)},b.wrap=function(a,c,d){if(c instanceof Array&&(d=c,c=null),!d)for(var e in d=[],a)"function"==typeof a[e]&&d.push(e);for(var f=0;f<d.length;f++){var g=d[f],h=a[g];a[g]=(function(d){var e=b.operation(c),f=Array.prototype.slice.call(arguments,1),g=f.pop();f.push(function(a){e.retry(a)||(a&&(arguments[0]=e.mainError()),g.apply(this,arguments))}),e.attempt(function(){d.apply(a,f)})}).bind(a,h),a[g].options=c}}}};
@@ -1,15 +0,0 @@
1
- "use strict";exports.id=514,exports.ids=[514],exports.modules={6021:(a,b,c)=>{c(33873),c(29021);let{MITM_DIR:d}=c(17893),{generateRootCA:e,loadRootCA:f,generateLeafCert:g}=c(89998);a.exports={generateCert:async function a(){return await e()},getCertForDomain:function(a){try{let b=f(),c=g(a,b);return{key:c.key,cert:c.cert}}catch(b){return console.error(`Failed to generate cert for ${a}:`,b.message),null}}}},28059:(a,b,c)=>{let d=c(29021),e=c(55511),{exec:f}=c(79646),{execWithPassword:g,isSudoAvailable:h}=c(98012),{runElevatedPowerShell:i,quotePs:j}=c(55757),{log:k,err:l}=c(93741),m="win32"===process.platform,n="darwin"===process.platform,o="/usr/local/share/ca-certificates",p="9Router MITM Root CA";function q(a){let b=d.readFileSync(a,"utf-8"),c=Buffer.from(b.replace(/-----[^-]+-----/g,"").replace(/\s/g,""),"base64");return e.createHash("sha1").update(c).digest("hex").toUpperCase().match(/.{2}/g).join(":")}async function r(a){var b,c;let e;return m?(b=a,new Promise(a=>{let c;try{c=q(b).replace(/:/g,"")}catch{return a(!1)}f(`certutil -store Root ${c}`,{windowsHide:!0},b=>{a(!b)})})):n?(c=a,new Promise(a=>{try{let b=q(c).replace(/:/g,"");f(`security verify-cert -c "${c}" -p ssl -k /Library/Keychains/System.keychain 2>/dev/null`,{windowsHide:!0},c=>{if(!c)return a(!0);f(`security dump-trust-settings -d 2>/dev/null | grep -i "${b}"`,{windowsHide:!0},(b,c)=>{a(!b&&!!c?.trim())})})}catch{a(!1)}})):(e=`${o}/9router-root-ca.crt`,Promise.resolve(d.existsSync(e)))}async function s(a,b){let c=`security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "${b}"`;try{await g(`security delete-certificate -c "9Router MITM Root CA" /Library/Keychains/System.keychain 2>/dev/null || true && ${c}`,a),k("\uD83D\uDD10 Cert: ✅ installed to system keychain")}catch(a){throw Error(a.message?.includes("canceled")?"User canceled authorization":"Certificate install failed")}}async function t(a){let b=`
2
- certutil -delstore Root ${j(p)} 2>$null | Out-Null
3
- $exit = & certutil -addstore Root ${j(a)} 2>&1
4
- if ($LASTEXITCODE -ne 0) { throw "certutil exit $LASTEXITCODE" }
5
- `;try{await i(b),k("\uD83D\uDD10 Cert: ✅ installed to Windows Root store")}catch(a){throw Error(`Failed to install certificate: ${a.message}`)}}async function u(a,b){let c=q(b).replace(/:/g,""),d=`security delete-certificate -Z "${c}" /Library/Keychains/System.keychain`;try{await g(d,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from system keychain")}catch(a){throw Error("Failed to uninstall certificate")}}async function v(){let a=`certutil -delstore Root ${j(p)}`;try{await i(a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Windows Root store")}catch(a){throw Error(`Failed to uninstall certificate: ${a.message}`)}}async function w(a,b){if(!h())return void k(`🔐 Cert: cannot install to system store without sudo — trust this file on clients: ${b}`);let c=`${o}/9router-root-ca.crt`,d=`cp "${b}" "${c}" && (update-ca-certificates 2>/dev/null || update-ca-trust 2>/dev/null || true)`;try{await g(d,a),k("\uD83D\uDD10 Cert: ✅ installed to Linux trust store")}catch(a){throw Error("Certificate install failed")}}async function x(a){if(!h())return;let b=`${o}/9router-root-ca.crt`,c=`rm -f "${b}" && (update-ca-certificates 2>/dev/null || update-ca-trust 2>/dev/null || true)`;try{await g(c,a),k("\uD83D\uDD10 Cert: ✅ uninstalled from Linux trust store")}catch(a){throw Error("Failed to uninstall certificate")}}a.exports={installCert:async function a(a,b){if(!d.existsSync(b))throw Error(`Certificate file not found: ${b}`);await r(b)?k("\uD83D\uDD10 Cert: already trusted ✅"):m?await t(b):n?await s(a,b):await w(a,b)},uninstallCert:async function a(a,b){await r(b)?m?await v():n?await u(a,b):await x(a):k("\uD83D\uDD10 Cert: not found in system store")},checkCertInstalled:r}},50514:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(33873),h=c(29021),i=c(21820),j=c(91645),k=c(55591),l=c(55511),{addDNSEntry:m,removeDNSEntry:n,removeAllDNSEntries:o,removeAllDNSEntriesSync:p,checkAllDNSStatus:q,TOOL_HOSTS:r,isSudoAvailable:s,isSudoPasswordRequired:t}=c(98012),{isAdmin:u}=c(55757),v="win32"===process.platform,w="darwin"===process.platform,{generateCert:x}=c(6021),{installCert:y,uninstallCert:z}=c(28059),{isCertExpired:A}=c(89998),{DATA_DIR:B,MITM_DIR:C}=c(17893),{log:D,err:E}=c(93741),F="http://localhost:20128";function G(a){return null==a||""===a?"''":`'${String(a).replace(/'/g,"'\\''")}'`}async function H(){if(!Z)return F;try{let a=await Z(),b=a&&null!=a.mitmRouterBaseUrl?String(a.mitmRouterBaseUrl).trim():"";if(!b)return F;let c=new URL(b);if("http:"!==c.protocol&&"https:"!==c.protocol)return F;return b.replace(/\/+$/,"")}catch{return F}}let I=g.join(C,".mitm.pid"),J=[5e3,1e4,2e4,3e4,6e4],K=0,L=0,M=!1;function N(){if(process.env.MITM_SERVER_PATH)return process.env.MITM_SERVER_PATH;let a=g.join(__dirname,"server.js");if(h.existsSync(a))return a;let b=g.join(process.cwd(),"src","mitm","server.js");if(h.existsSync(b))return b;let c=g.join(process.cwd(),"..","src","mitm","server.js");return h.existsSync(c)?c:b}function O(a){try{if(!a||!h.existsSync(a)||!a.includes(`${g.sep}node_modules${g.sep}`))return a;let b=g.join(B,"runtime","mitm"),c=g.join(b,"server.js");if(h.existsSync(c))try{if(h.statSync(a).size===h.statSync(c).size)return c}catch{}return h.mkdirSync(b,{recursive:!0}),h.copyFileSync(a,c),c}catch(b){try{D(`[MITM] runtime copy failed: ${b.message}`)}catch{}return a}}let P=O(N()),Q="aes-256-gcm",R="9router-mitm-pwd",S=null,T=null;function U(){return globalThis.__mitmSudoPassword||null}function V(a){globalThis.__mitmSudoPassword=a}function W(a){try{return process.kill(a,0),!0}catch(a){return"EACCES"===a.code}}function X(a,b=!1,e=null){if(v)d(`taskkill ${b?"/F ":""}/PID ${a}`,{windowsHide:!0},()=>{});else{let f=b?"SIGKILL":"SIGTERM",g=`pkill -${f} -P ${a} 2>/dev/null; kill -${f} ${a} 2>/dev/null`;if(e||s()){let{execWithPassword:a}=c(98012);a(g,e||"").catch(()=>d(g,{windowsHide:!0},()=>{}))}else d(g,{windowsHide:!0},()=>{})}}function Y(){try{let{machineIdSync:a}=c(20243),b=a();return l.createHash("sha256").update(b+R).digest()}catch{return l.createHash("sha256").update(R).digest()}}let Z=null,$=null;async function _(a,b){if($)try{let c,d,e,f,g,h={mitmEnabled:a};b&&(c=Y(),d=l.randomBytes(12),e=l.createCipheriv(Q,c,d),f=Buffer.concat([e.update(b,"utf8"),e.final()]),g=e.getAuthTag(),h.mitmSudoEncrypted=`${d.toString("hex")}:${g.toString("hex")}:${f.toString("hex")}`),await $(h)}catch(a){E(`Failed to save settings: ${a.message}`)}}async function aa(){if($)try{await $({mitmSudoEncrypted:null})}catch(a){E(`Failed to clear encrypted password: ${a.message}`)}}async function ab(){if(!Z)return null;try{let a=await Z();if(!a.mitmSudoEncrypted)return null;return function(a){try{let[b,c,d]=a.split(":");if(!b||!c||!d)return null;let e=Y(),f=l.createDecipheriv(Q,e,Buffer.from(b,"hex"));return f.setAuthTag(Buffer.from(c,"hex")),f.update(Buffer.from(d,"hex"))+f.final("utf8")}catch{return null}}(a.mitmSudoEncrypted)}catch{return null}}async function ac(a,b){if($&&Z)try{let c={...(await Z()).dnsToolEnabled||{},[a]:b};await $({dnsToolEnabled:c})}catch(a){E(`Failed to save DNS state: ${a.message}`)}}async function ad(){if(!Z)return{};try{return(await Z()).dnsToolEnabled||{}}catch{return{}}}async function ae(a){let b=await ad(),c=a||U()||await ab();for(let[a,d]of Object.entries(b))if(d&&r[a])try{await m(a,c)}catch(b){E(`DNS ${a}: restore failed — ${b.message}`)}}async function af(){return v?u():!(!u()&&t())||!!(U()||await ab())}function ag(a){return new Promise(a=>{v?d('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{windowsHide:!0},(b,c)=>{if(b)return a(null);let e=parseInt(c.trim(),10);if(!e||e<=4)return a(null);d(`tasklist /FI "PID eq ${e}" /FO CSV /NH`,{windowsHide:!0},(b,c)=>{let d=c?.match(/"([^"]+)"/);a({pid:e,name:d?d[1]:"unknown"})})}):d("lsof -nP -iTCP:443 -sTCP:LISTEN -t",{windowsHide:!0},(b,c)=>{if(b||!c?.trim())return a(null);let e=parseInt(c.trim().split("\n")[0],10);if(!e||isNaN(e))return a(null);d(`ps -p ${e} -o comm=`,{windowsHide:!0},(b,c)=>{a({pid:e,name:c?.trim()||"unknown"})})})})}async function ah(a){if(S&&!S.killed){try{S.kill("SIGKILL")}catch{}S=null,T=null}try{if(h.existsSync(I)){let b=parseInt(h.readFileSync(I,"utf-8").trim(),10);b&&W(b)&&(X(b,!0,a),await new Promise(a=>setTimeout(a,500))),h.unlinkSync(I)}}catch{}if(!v&&P)try{let b=P.replace(/'/g,"'\\''");if(a||s()){let{execWithPassword:d}=c(98012);await d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,a||"").catch(()=>{})}else d(`pkill -SIGKILL -f "${b}" 2>/dev/null || true`,{windowsHide:!0},()=>{});await new Promise(a=>setTimeout(a,500))}catch{}}async function ai(){let a=null!==S&&!S.killed,b=T;if(!a)try{if(h.existsSync(I)){let c=parseInt(h.readFileSync(I,"utf-8").trim(),10);c&&W(c)?(a=!0,b=c):h.unlinkSync(I)}}catch{}let d=q(),e=g.join(C,"rootCA.crt"),f=h.existsSync(e),{checkCertInstalled:i}=c(28059),j=!!f&&await i(e);return{running:a,pid:b,certExists:f,certTrusted:j,dnsStatus:d}}async function aj(a){if(M)return;if(Date.now()-L>=6e4&&(K=0),K>=5)return void E("Max restart attempts reached. Giving up.");let b=J[Math.min(K,J.length-1)];K++,M=!0,D(`Restarting in ${b/1e3}s... (${K}/5)`),await new Promise(a=>setTimeout(a,b));try{let b=Z?await Z():null;if(b&&!b.mitmEnabled){D("MITM disabled, skipping restart"),M=!1;return}let c=U()||await ab();if(!c&&!v){E("No cached password, cannot auto-restart"),M=!1;return}await al(a,c),D("\uD83D\uDD04 Restarted successfully"),K=0,M=!1}catch(b){E(`Restart attempt ${K}/5 failed: ${b.message}`),M=!1,aj(a)}}async function ak(a,b){if(a&&a.pid){if(v)try{f(`powershell -NonInteractive -WindowStyle Hidden -Command "Stop-Process -Id ${a.pid} -Force -ErrorAction SilentlyContinue"`,{windowsHide:!0})}catch{}else try{let{execWithPassword:d}=c(98012);b||s()?await d(`kill -9 ${a.pid}`,b||""):f(`kill -9 ${a.pid}`,{windowsHide:!0})}catch{}await new Promise(a=>setTimeout(a,800))}}async function al(a,b,d=!1){if(!S||S.killed)try{if(h.existsSync(I)){let a=parseInt(h.readFileSync(I,"utf-8").trim(),10);if(a&&W(a))return T=a,D(`♻️ Reusing existing process (PID: ${a})`),await _(!0,b),b&&V(b),{running:!0,pid:a};h.unlinkSync(I)}}catch{}if(S&&!S.killed)throw Error("MITM server is already running");if(await ah(b),!v){let a=await new Promise(a=>{let b=j.createServer();b.once("error",b=>{"EADDRINUSE"===b.code?a("in-use"):a("no-permission")}),b.once("listening",()=>{b.close(()=>a("free"))}),b.listen(443,"127.0.0.1")});if("in-use"===a||"no-permission"===a){let a=await ag(b);if(a){let c=a.name.includes("/")?a.name.split("/").filter(Boolean).pop():a.name;if(d)D(`Killing process on port 443 (PID ${a.pid}, name=${c})...`),await ak(a,b);else{let b=Error(`Port 443 is already in use by "${c}" (PID ${a.pid}).`);throw b.code="PORT_443_BUSY",b.portOwner={pid:a.pid,name:c},b}}}}let l=g.join(C,"rootCA.crt"),m=g.join(C,"rootCA.key"),n=h.existsSync(l)&&h.existsSync(m);if(!n||A(l)){if(n){D("\uD83D\uDD10 Cert expired — uninstalling old cert...");let a=b||U()||await ab();try{await z(a,l)}catch{}}D("\uD83D\uDD10 Generating Root CA..."),await x()}let{checkCertInstalled:o}=c(28059),p=await o(l),r=!v&&!w&&!s();if(p)D("\uD83D\uDD10 Cert: already trusted ✅");else{D("\uD83D\uDD10 Cert: not trusted → installing...");let a=b||U()||await ab();if(r)D(`🔐 Cert: skipping system trust (no sudo). Install ${l} as a trusted CA on machines that use this proxy.`);else{if(!a&&t())throw Error("Sudo password required to install Root CA certificate");try{await y(a,l),D("\uD83D\uDD10 Cert: ✅ trusted")}catch(a){throw Error(`Failed to trust certificate: ${a.message}`)}}}let u=P;if((!u||!h.existsSync(u))&&(D(`[MITM] server.js missing at ${u} → recopying`),!(u=O(N()))||!h.existsSync(u)))throw Error(`MITM server.js not found at ${u}. Reinstall 9router.`);let B=await H();if(D(`🚀 Starting server... (router: ${B})`),v){let c=await ag(b);if(c)if(d)D(`Killing process on port 443 (PID ${c.pid}, name=${c.name})...`),await ak(c,b);else{let a=Error(`Port 443 is already in use by "${c.name}" (PID ${c.pid}).`);throw a.code="PORT_443_BUSY",a.portOwner={pid:c.pid,name:c.name},a}S=e(process.execPath,[u],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}}),$&&await $({mitmCertInstalled:!0}).catch(()=>{})}else s()?((S=e("sudo",["-S","-E","sh","-c",[`HOME=${G(i.homedir())}`,`ROUTER_API_KEY=${G(a)}`,`MITM_ROUTER_BASE=${G(B)}`,"NODE_ENV=production",G(process.execPath),G(u)].join(" ")],{detached:!1,windowsHide:!0,stdio:["pipe","pipe","pipe"]})).stdin.write(`${b}
6
- `),S.stdin.end()):S=e(process.execPath,[u],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"],env:{...process.env,ROUTER_API_KEY:a,NODE_ENV:"production",MITM_ROUTER_BASE:B}});S&&(T=S.pid,h.writeFileSync(I,String(T)),L=Date.now());let F=null;S&&(S.stdout.on("data",a=>{process.stdout.write(a)}),S.stderr.on("data",a=>{let b=a.toString().trim();b&&(v||!b.includes("Password:")&&!b.includes("password for"))&&(E(b),F=b),!v&&(b.includes("incorrect password")||b.includes("no password was provided"))&&(V(null),aa(),M=!0)}),S.on("exit",b=>{D(`Server exited (code: ${b})`),S=null,T=null;try{h.unlinkSync(I)}catch{}0===b||M||aj(a)}));let J=await function(a=443){return new Promise(b=>{let c=Date.now()+8e3,d=()=>{let e=k.request({hostname:"127.0.0.1",port:a,path:"/_mitm_health",method:"GET",rejectUnauthorized:!1},a=>{let c="";a.on("data",a=>{c+=a}),a.on("end",()=>{try{let a=JSON.parse(c);b(!0===a.ok?{ok:!0,pid:a.pid||null}:null)}catch{b(null)}})});e.on("error",()=>{Date.now()<c?setTimeout(d,500):b(null)}),e.end()};d()})}(443);if(!J){if(S&&!S.killed){try{S.kill()}catch{}S=null}let a=function(){try{if(v){let a=f('powershell -NonInteractive -WindowStyle Hidden -Command "$c = Get-NetTCPConnection -LocalPort 443 -State Listen -ErrorAction SilentlyContinue | Select-Object -First 1; if ($c) { $c.OwningProcess } else { 0 }"',{encoding:"utf8",windowsHide:!0}).trim(),b=parseInt(a,10);if(b&&b>4){let a=f(`tasklist /FI "PID eq ${b}" /FO CSV /NH`,{encoding:"utf8",windowsHide:!0}).match(/"([^"]+)"/);if(a)return a[1].replace(".exe","")}}else{let a=f("lsof -i :443",{encoding:"utf8",windowsHide:!0}).trim().split("\n");if(a.length>1)return a[1].split(/\s+/)[0]}}catch{}return null}(),b=a?` Port 443 already in use by ${a}.`:"",c=F||`Check sudo password or port 443 access.${b}`;throw Error(`MITM server failed to start. ${c}`)}for(let[a,b]of($&&await $({mitmCertInstalled:!0}).catch(()=>{}),D(`✅ Server healthy (PID: ${T||J.pid})`),Object.entries(q())))D(`🌐 DNS ${a}: ${b?"✅ active":"❌ inactive"}`);return await _(!0,b),b&&V(b),{running:!0,pid:T}}async function am(a){M=!0,K=0,D("⏹ Stopping server...");let b=S,d=b&&!b.killed?b.pid:(()=>{try{return parseInt(h.readFileSync(I,"utf-8").trim(),10)}catch{return null}})();if(d&&W(d)&&(D(`Killing server (PID: ${d})...`),X(d,!1,a),await new Promise(a=>setTimeout(a,1e3)),W(d)&&X(d,!0,a)),S=null,T=null,v){let a=g.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"),b=Object.values(r).flat();try{let{isAdmin:d,runElevatedPowerShell:e,quotePs:f}=c(55757);if(d()){let d=h.readFileSync(a,"utf8"),e=d.split(/\r?\n/).filter(a=>!b.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";e!==d&&h.writeFileSync(a,e,"utf8");try{c(79646).execSync("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}D("\uD83C\uDF10 DNS: ✅ all tool hosts removed")}else{let c=b.map(f).join(","),d=`
7
- $hosts = @(${c})
8
- $lines = Get-Content -LiteralPath ${f(a)}
9
- $filtered = $lines | Where-Object {
10
- $line = $_
11
- -not ($hosts | Where-Object { $line -match [regex]::Escape($_) })
12
- }
13
- Set-Content -LiteralPath ${f(a)} -Value $filtered
14
- ipconfig /flushdns | Out-Null
15
- `;await e(d)}}catch(a){E(`Failed to clean hosts: ${a.message}`)}}else await o(a);try{h.unlinkSync(I)}catch{}return await _(!1,null),M=!1,{running:!1,pid:null}}async function an(a,b){if(!(await ai()).running)throw Error("MITM server is not running. Start the server first.");let c=b||U()||await ab();return await m(a,c),await ac(a,!0),{success:!0}}a.exports={getMitmStatus:ai,startServer:al,stopServer:am,enableToolDNS:an,disableToolDNS:async function a(a,b){let c=b||U()||await ab();return await n(a,c),await ac(a,!1),{success:!0}},trustCert:async function a(a){let b=g.join(C,"rootCA.crt");if(!h.existsSync(b))throw Error("Root CA not found. Start server first to generate it.");let{installCert:d}=c(28059);if(!v&&!w&&!s())return void D(`🔐 Cert: system trust unavailable (no sudo). Use file: ${b}`);let e=a||U()||await ab();if(!e&&t())throw Error("Sudo password required to trust certificate");await d(e,b),e&&V(e)},startMitm:al,stopMitm:am,getCachedPassword:U,setCachedPassword:V,loadEncryptedPassword:ab,clearEncryptedPassword:aa,isSudoPasswordRequired:t,initDbHooks:function(a,b){Z=a,$=b},restoreToolDNS:ae,hasDnsPrivilege:af,removeAllDNSEntriesSync:p}},89998:(a,b,c)=>{let d=c(33873),e=c(29021),f=c(65978),{MITM_DIR:g}=c(17893),h=d.join(g,"rootCA.key"),i=d.join(g,"rootCA.crt");function j(a){try{let b=f.pki.certificateFromPem(e.readFileSync(a,"utf8")),c=new Date(Date.now()+2592e6);return b.validity.notAfter<c}catch{return!0}}a.exports={generateRootCA:async function a(){let a=e.existsSync(h)&&e.existsSync(i);if(a&&!j(i))return console.log("✅ Root CA already exists"),{key:h,cert:i};if(a){console.log("\uD83D\uDD10 Root CA expired or expiring soon — regenerating...");try{e.unlinkSync(h)}catch{}try{e.unlinkSync(i)}catch{}}e.existsSync(g)||e.mkdirSync(g,{recursive:!0}),console.log("\uD83D\uDD10 Generating Root CA certificate...");let b=f.pki.rsa.generateKeyPair(2048),c=f.pki.createCertificate();c.publicKey=b.publicKey,c.serialNumber="01",c.validity.notBefore=new Date,c.validity.notAfter=new Date,c.validity.notAfter.setFullYear(c.validity.notBefore.getFullYear()+10);let d=[{name:"commonName",value:"9Router MITM Root CA"},{name:"organizationName",value:"9Router"},{name:"countryName",value:"US"}];c.setSubject(d),c.setIssuer(d),c.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),c.sign(b.privateKey,f.md.sha256.create());let k=f.pki.privateKeyToPem(b.privateKey),l=f.pki.certificateToPem(c);return e.writeFileSync(h,k),e.writeFileSync(i,l),console.log("✅ Root CA generated successfully"),{key:h,cert:i}},loadRootCA:function(){if(!e.existsSync(h)||!e.existsSync(i))throw Error("Root CA not found. Generate it first.");let a=e.readFileSync(h,"utf8"),b=e.readFileSync(i,"utf8");return{key:f.pki.privateKeyFromPem(a),cert:f.pki.certificateFromPem(b)}},generateLeafCert:function(a,b){let c=f.pki.rsa.generateKeyPair(2048),d=f.pki.createCertificate();return d.publicKey=c.publicKey,d.serialNumber=Math.floor(1e6*Math.random()).toString(),d.validity.notBefore=new Date,d.validity.notAfter=new Date,d.validity.notAfter.setFullYear(d.validity.notBefore.getFullYear()+1),d.setSubject([{name:"commonName",value:a}]),d.setIssuer(b.cert.subject.attributes),d.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:a},{type:2,value:`*.${a}`}]}]),d.sign(b.key,f.md.sha256.create()),{key:f.pki.privateKeyToPem(c.privateKey),cert:f.pki.certificateToPem(d)}},isCertExpired:j,ROOT_CA_CERT_PATH:i,ROOT_CA_KEY_PATH:h}}};
@@ -1 +0,0 @@
1
- exports.id=6782,exports.ids=[6782],exports.modules={932:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js","default")},8114:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Input.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Input.js","default")},13181:(a,b,c)=>{Promise.resolve().then(c.bind(c,89468)),Promise.resolve().then(c.bind(c,97617)),Promise.resolve().then(c.bind(c,69385)),Promise.resolve().then(c.bind(c,38868)),Promise.resolve().then(c.bind(c,82934)),Promise.resolve().then(c.bind(c,20535)),Promise.resolve().then(c.bind(c,91329)),Promise.resolve().then(c.bind(c,51283)),Promise.resolve().then(c.bind(c,39623)),Promise.resolve().then(c.bind(c,80959)),Promise.resolve().then(c.bind(c,78472)),Promise.resolve().then(c.bind(c,90537)),Promise.resolve().then(c.bind(c,87030)),Promise.resolve().then(c.bind(c,50258)),Promise.resolve().then(c.bind(c,8114)),Promise.resolve().then(c.bind(c,932)),Promise.resolve().then(c.bind(c,13377)),Promise.resolve().then(c.bind(c,65024)),Promise.resolve().then(c.bind(c,86241)),Promise.resolve().then(c.bind(c,68480)),Promise.resolve().then(c.bind(c,60864)),Promise.resolve().then(c.bind(c,59062)),Promise.resolve().then(c.bind(c,33335)),Promise.resolve().then(c.bind(c,73723)),Promise.resolve().then(c.bind(c,37218)),Promise.resolve().then(c.bind(c,69270)),Promise.resolve().then(c.bind(c,89439)),Promise.resolve().then(c.bind(c,15044)),Promise.resolve().then(c.bind(c,95031)),Promise.resolve().then(c.bind(c,81567)),Promise.resolve().then(c.bind(c,61357)),Promise.resolve().then(c.bind(c,22252)),Promise.resolve().then(c.bind(c,44846)),Promise.resolve().then(c.bind(c,87050)),Promise.resolve().then(c.bind(c,46127)),Promise.resolve().then(c.bind(c,86672)),Promise.resolve().then(c.bind(c,78249)),Promise.resolve().then(c.bind(c,85634))},13377:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js","default")},15044:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/OAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/OAuthModal.js","default")},20535:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ChangelogModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js","default")},22252:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Select.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Select.js","default")},24797:(a,b,c)=>{Promise.resolve().then(c.bind(c,66610)),Promise.resolve().then(c.bind(c,93447)),Promise.resolve().then(c.bind(c,92251)),Promise.resolve().then(c.bind(c,55590)),Promise.resolve().then(c.bind(c,75012)),Promise.resolve().then(c.bind(c,52149)),Promise.resolve().then(c.bind(c,49871)),Promise.resolve().then(c.bind(c,37421)),Promise.resolve().then(c.bind(c,18649)),Promise.resolve().then(c.bind(c,4565)),Promise.resolve().then(c.bind(c,61094)),Promise.resolve().then(c.bind(c,46411)),Promise.resolve().then(c.bind(c,27452)),Promise.resolve().then(c.bind(c,14504)),Promise.resolve().then(c.bind(c,31288)),Promise.resolve().then(c.bind(c,82774)),Promise.resolve().then(c.bind(c,60835)),Promise.resolve().then(c.bind(c,33446)),Promise.resolve().then(c.bind(c,60115)),Promise.resolve().then(c.bind(c,53142)),Promise.resolve().then(c.bind(c,77410)),Promise.resolve().then(c.bind(c,11892)),Promise.resolve().then(c.bind(c,44037)),Promise.resolve().then(c.bind(c,33809)),Promise.resolve().then(c.bind(c,9904)),Promise.resolve().then(c.bind(c,85600)),Promise.resolve().then(c.bind(c,16081)),Promise.resolve().then(c.bind(c,7274)),Promise.resolve().then(c.bind(c,37545)),Promise.resolve().then(c.bind(c,15769)),Promise.resolve().then(c.bind(c,39907)),Promise.resolve().then(c.bind(c,62490)),Promise.resolve().then(c.bind(c,71708)),Promise.resolve().then(c.bind(c,7268)),Promise.resolve().then(c.bind(c,81101)),Promise.resolve().then(c.bind(c,37922)),Promise.resolve().then(c.bind(c,11747)),Promise.resolve().then(c.bind(c,33265))},33335:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js","default")},37218:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js","default")},38868:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Button.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Button.js","default")},39623:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js","default")},44846:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Sidebar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Sidebar.js","default")},46127:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ThemeToggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js","default")},50258:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js","default")},51283:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js","default")},59062:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(92713);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Spinner() from the server but Spinner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","Spinner"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLoading() from the server but PageLoading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","PageLoading"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call Skeleton() from the server but Skeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","Skeleton"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CardSkeleton() from the server but CardSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Loading.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Loading.js","default")},60864:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js","default")},61357:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/SegmentedControl.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js","default")},65024:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js","default")},68480:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js","default")},69270:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js","default")},69385:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Badge.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Badge.js","default")},73723:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(92713);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Modal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Modal.js","default"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ConfirmModal() from the server but ConfirmModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Modal.js","ConfirmModal")},78249:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Tooltip.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Tooltip.js","default")},78472:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js","default")},80959:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Footer.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Footer.js","default")},81567:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/RequestLogger.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/RequestLogger.js","default")},82934:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Card.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Card.js","default")},85634:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/UsageStats.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/UsageStats.js","default")},86241:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js","default")},86672:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Toggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Toggle.js","default")},87030:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/HeaderMenu.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js","default")},89439:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js","default")},89468:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js","default")},90537:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Header.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Header.js","default")},91329:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ComboFormModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js","default")},95031:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js","default")},97617:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/shared/components/Avatar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/Avatar.js","default")},97934:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(22037);c(38868),c(8114),c(22252),c(82934),c(73723),c(59062),c(97617),c(69385),c(86672),c(46127),c(87050),c(44846),c(90537),c(80959),c(15044),c(37218),c(33335),c(91329),c(85634),c(86241),c(69270),c(87030),c(20535),c(81567),c(932),c(13377),c(65024),c(51283),c(50258),c(78472),c(39623),c(89468),c(89439),c(61357),c(78249),c(95031);var e=c(60864);function f({children:a}){return(0,d.jsx)(e.default,{children:a})}c(68480)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7770,exports.ids=[7770],exports.modules={37770:(a,b,c)=>{c.d(b,{CG:()=>ab,Dj:()=>$,Iq:()=>ad,K1:()=>am,KJ:()=>ap,L:()=>Z,L9:()=>X,Lh:()=>ae,Mc:()=>L,OM:()=>Q,Pc:()=>E,Q_:()=>I,Qu:()=>B,S8:()=>U,Uv:()=>Y,VT:()=>ar,XW:()=>ag,Xx:()=>ak,Yd:()=>J,ZO:()=>H,bI:()=>ai,c:()=>W,ek:()=>ah,fK:()=>O,fv:()=>S,getApiKeys:()=>ac,getPricingForModel:()=>ao,getProviderConnections:()=>z,getProviderNodes:()=>A,getSettings:()=>aj,ho:()=>D,hr:()=>G,i0:()=>C,iE:()=>M,jd:()=>_,o5:()=>R,oG:()=>aa,op:()=>K,r4:()=>an,uL:()=>V,ui:()=>F,updateProviderConnection:()=>N,uv:()=>T,yF:()=>aq,yg:()=>af,zP:()=>al});var d=c(34278),e=c(73865),f=c(37873),g=c(76760),h=c.n(g),i=c(73024),j=c.n(i),k=c(48128),l=c.n(k),m=c(81372);let n=h().join(m.n,"db.json");j().existsSync(m.n)||j().mkdirSync(m.n,{recursive:!0});let o={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,observabilityEnabled:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:1024,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full"};function p(){return{providerConnections:[],providerNodes:[],proxyPools:[],modelAliases:{},customModels:[],mitmAlias:{},combos:[],apiKeys:[],settings:{...o},pricing:{}}}function q(a){let b=p(),c=a&&"object"==typeof a?a:{},d=!1;for(let[a,e]of Object.entries(b)){if(void 0===c[a]||null===c[a]){c[a]=e,d=!0;continue}if("settings"===a&&("object"!=typeof c.settings||Array.isArray(c.settings))){c.settings={...e},d=!0;continue}if("settings"===a&&"object"==typeof c.settings&&!Array.isArray(c.settings))for(let[a,b]of Object.entries(e))void 0===c.settings[a]&&("outboundProxyEnabled"===a&&"string"==typeof c.settings.outboundProxyUrl&&c.settings.outboundProxyUrl.trim()?c.settings.outboundProxyEnabled=!0:c.settings[a]=b,d=!0);if("apiKeys"===a&&Array.isArray(c.apiKeys))for(let a of c.apiKeys)(void 0===a.isActive||null===a.isActive)&&(a.isActive=!0,d=!0)}return{data:c,changed:d}}j().existsSync(n)||j().writeFileSync(n,JSON.stringify(p(),null,2));let r=null,s={retries:{retries:15,minTimeout:50,maxTimeout:3e3},stale:1e4};class t{constructor(){this._queue=[],this._locked=!1}async acquire(){return this._locked?new Promise(a=>{this._queue.push(()=>a(()=>this._release()))}):(this._locked=!0,()=>this._release())}_release(){let a=this._queue.shift();a?a():this._locked=!1}}let u=new t;async function v(a,b){let c=await u.acquire(),d=null;try{d=await l().lock(n,s),await b()}catch(a){throw"ELOCKED"===a.code&&console.warn("[DB] File is locked, retrying..."),a}finally{if(d)try{await d()}catch(a){}c()}}async function w(a){await v(a,()=>a.read())}async function x(a){await v(a,()=>a.write())}async function y(){r||(r=new d.t(new e.Pv(n),p()));try{await w(r)}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),r.data=p(),await x(r);else throw a}if(r.data){let{data:a,changed:b}=q(r.data);r.data=a,b&&await x(r)}else r.data=p(),await x(r);return r}async function z(a={}){let b=(await y()).data.providerConnections||[];return a.provider&&(b=b.filter(b=>b.provider===a.provider)),void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),b.sort((a,b)=>(a.priority||999)-(b.priority||999)),b}async function A(a={}){let b=(await y()).data.providerNodes||[];return a.type&&(b=b.filter(b=>b.type===a.type)),b}async function B(a){return(await y()).data.providerNodes.find(b=>b.id===a)||null}async function C(a){let b=await y();b.data.providerNodes||(b.data.providerNodes=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return b.data.providerNodes.push(d),await x(b),d}async function D(a,b){let c=await y();c.data.providerNodes||(c.data.providerNodes=[]);let d=c.data.providerNodes.findIndex(b=>b.id===a);return -1===d?null:(c.data.providerNodes[d]={...c.data.providerNodes[d],...b,updatedAt:new Date().toISOString()},await x(c),c.data.providerNodes[d])}async function E(a){let b=await y();b.data.providerNodes||(b.data.providerNodes=[]);let c=b.data.providerNodes.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.providerNodes.splice(c,1);return await x(b),d}async function F(a={}){let b=(await y()).data.proxyPools||[];return void 0!==a.isActive&&(b=b.filter(b=>b.isActive===a.isActive)),a.testStatus&&(b=b.filter(b=>b.testStatus===a.testStatus)),b.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0))}async function G(a){return((await y()).data.proxyPools||[]).find(b=>b.id===a)||null}async function H(a){let b=await y();b.data.proxyPools||(b.data.proxyPools=[]);let c=new Date().toISOString(),d={id:a.id||(0,f.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return b.data.proxyPools.push(d),await x(b),d}async function I(a,b){let c=await y();c.data.proxyPools||(c.data.proxyPools=[]);let d=c.data.proxyPools.findIndex(b=>b.id===a);return -1===d?null:(c.data.proxyPools[d]={...c.data.proxyPools[d],...b,updatedAt:new Date().toISOString()},await x(c),c.data.proxyPools[d])}async function J(a){let b=await y();b.data.proxyPools||(b.data.proxyPools=[]);let c=b.data.proxyPools.findIndex(b=>b.id===a);if(-1===c)return null;let[d]=b.data.proxyPools.splice(c,1);return await x(b),d}async function K(a){let b=await y(),c=b.data.providerConnections.length;b.data.providerConnections=b.data.providerConnections.filter(b=>b.provider!==a);let d=c-b.data.providerConnections.length;return await x(b),d}async function L(a){return(await y()).data.providerConnections.find(b=>b.id===a)||null}async function M(a){let b=await y(),c=new Date().toISOString(),d=-1;if("oauth"===a.authType&&a.email?d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(d=b.data.providerConnections.findIndex(b=>b.provider===a.provider&&"apikey"===b.authType&&b.name===a.name)),-1!==d)return b.data.providerConnections[d]={...b.data.providerConnections[d],...a,updatedAt:c},await x(b),b.data.providerConnections[d];let e=a.name||null;if(!e&&"oauth"===a.authType)if(a.email)e=a.email;else{let c=b.data.providerConnections.filter(b=>b.provider===a.provider).length;e=`Account ${c+1}`}let g=a.priority;g||(g=b.data.providerConnections.filter(b=>b.provider===a.provider).reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let h={id:(0,f.A)(),provider:a.provider,authType:a.authType||"oauth",name:e,priority:g,isActive:void 0===a.isActive||a.isActive,createdAt:c,updatedAt:c};for(let b of["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount"])void 0!==a[b]&&null!==a[b]&&(h[b]=a[b]);return a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(h.providerSpecificData=a.providerSpecificData),b.data.providerConnections.push(h),await x(b),await P(a.provider),h}async function N(a,b){let c=await y(),d=c.data.providerConnections.findIndex(b=>b.id===a);if(-1===d)return null;let e=c.data.providerConnections[d].provider;return c.data.providerConnections[d]={...c.data.providerConnections[d],...b,updatedAt:new Date().toISOString()},await x(c),void 0!==b.priority&&await P(e),c.data.providerConnections[d]}async function O(a){let b=await y(),c=b.data.providerConnections.findIndex(b=>b.id===a);if(-1===c)return!1;let d=b.data.providerConnections[c].provider;return b.data.providerConnections.splice(c,1),await x(b),await P(d),!0}async function P(a){let b=await y();b.data.providerConnections&&(b.data.providerConnections.filter(b=>b.provider===a).sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}).forEach((a,b)=>{a.priority=b+1}),await x(b))}async function Q(){return(await y()).data.modelAliases||{}}async function R(a,b){let c=await y();c.data.modelAliases[a]=b,await x(c)}async function S(a){let b=await y();delete b.data.modelAliases[a],await x(b)}async function T(){return(await y()).data.customModels||[]}async function U({providerAlias:a,id:b,type:c="llm",name:d}){let e=await y();return e.data.customModels||(e.data.customModels=[]),!e.data.customModels.some(d=>d.providerAlias===a&&d.id===b&&(d.type||"llm")===c)&&(e.data.customModels.push({providerAlias:a,id:b,type:c,name:d||b}),await x(e),!0)}async function V({providerAlias:a,id:b,type:c="llm"}){let d=await y();d.data.customModels&&(d.data.customModels=d.data.customModels.filter(d=>d.providerAlias!==a||d.id!==b||(d.type||"llm")!==c),await x(d))}async function W(a){let b=(await y()).data.mitmAlias||{};return a?b[a]||{}:b}async function X(a,b){let c=await y();c.data.mitmAlias||(c.data.mitmAlias={}),c.data.mitmAlias[a]=b||{},await x(c)}async function Y(){return(await y()).data.combos||[]}async function Z(a){return((await y()).data.combos||[]).find(b=>b.id===a)||null}async function $(a){return((await y()).data.combos||[]).find(b=>b.name===a)||null}async function _(a){let b=await y();b.data.combos||(b.data.combos=[]);let c=new Date().toISOString(),d={id:(0,f.A)(),name:a.name,models:a.models||[],kind:a.kind||null,createdAt:c,updatedAt:c};return b.data.combos.push(d),await x(b),d}async function aa(a,b){let c=await y();c.data.combos||(c.data.combos=[]);let d=c.data.combos.findIndex(b=>b.id===a);return -1===d?null:(c.data.combos[d]={...c.data.combos[d],...b,updatedAt:new Date().toISOString()},await x(c),c.data.combos[d])}async function ab(a){let b=await y();if(!b.data.combos)return!1;let c=b.data.combos.findIndex(b=>b.id===a);return -1!==c&&(b.data.combos.splice(c,1),await x(b),!0)}async function ac(){return(await y()).data.apiKeys||[]}async function ad(a,b){if(!b)throw Error("machineId is required");let d=await y(),e=new Date().toISOString(),{generateApiKeyWithMachine:g}=await c.e(64).then(c.bind(c,50064)),h=g(b),i={id:(0,f.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:e};return d.data.apiKeys.push(i),await x(d),i}async function ae(a){let b=await y(),c=b.data.apiKeys.findIndex(b=>b.id===a);return -1!==c&&(b.data.apiKeys.splice(c,1),await x(b),!0)}async function af(a){return(await y()).data.apiKeys.find(b=>b.id===a)||null}async function ag(a,b){let c=await y(),d=c.data.apiKeys.findIndex(b=>b.id===a);return -1===d?null:(c.data.apiKeys[d]={...c.data.apiKeys[d],...b},await x(c),c.data.apiKeys[d])}async function ah(a){let b=(await y()).data.apiKeys.find(b=>b.key===a);return b&&!1!==b.isActive}async function ai(){let a=await y(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;for(let d of a.data.providerConnections){for(let a of b)(null===d[a]||void 0===d[a])&&(delete d[a],c++);d.providerSpecificData&&0===Object.keys(d.providerSpecificData).length&&(delete d.providerSpecificData,c++)}return c>0&&await x(a),c}async function aj(){return(await y()).data.settings||{cloudEnabled:!1}}async function ak(a){let b=await y();return b.data.settings={...b.data.settings,...a},await x(b),b.data.settings}async function al(){return(await y()).data||p()}async function am(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let{data:b}=q({...p(),...a,settings:{...p().settings,...a.settings&&"object"==typeof a.settings&&!Array.isArray(a.settings)?a.settings:{}}}),c=await y();return c.data=b,await x(c),c.data}async function an(){let a=(await y()).data.pricing||{},{PROVIDER_PRICING:b}=await c.e(1249).then(c.bind(c,61249)),d={};for(let[c,e]of Object.entries(b))if(d[c]={...e},a[c])for(let[b,e]of Object.entries(a[c]))d[c][b]=d[c][b]?{...d[c][b],...e}:e;for(let[b,c]of Object.entries(a))if(d[b])for(let[a,e]of Object.entries(c))d[b][a]||(d[b][a]=e);else d[b]={...c};return d}async function ao(a,b){if(!b)return null;let d=(await y()).data.pricing||{};if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await c.e(1249).then(c.bind(c,61249));return e(a,b)}async function ap(a){let b=await y();for(let[c,d]of(b.data.pricing||(b.data.pricing={}),Object.entries(a)))for(let[a,e]of(b.data.pricing[c]||(b.data.pricing[c]={}),Object.entries(d)))b.data.pricing[c][a]=e;return await x(b),b.data.pricing}async function aq(a,b){let c=await y();return c.data.pricing||(c.data.pricing={}),b?c.data.pricing[a]&&(delete c.data.pricing[a][b],0===Object.keys(c.data.pricing[a]).length&&delete c.data.pricing[a]):delete c.data.pricing[a],await x(c),c.data.pricing}async function ar(){let a=await y();return a.data.pricing={},await x(a),a.data.pricing}}};
@@ -1 +0,0 @@
1
- exports.id=8193,exports.ids=[8193],exports.modules={24429:()=>{},29737:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>r,vq:()=>l,fZ:()=>n,cY:()=>s,ux:()=>o,kt:()=>p,SM:()=>m});var d=c(62276);let e={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"}},f=(...a)=>a.map(a=>({...e[a],type:"tts"})),g=f("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),h=f("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),i=["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(a=>({id:a,name:a,type:"tts"})),j={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":h,"tts-1":g,"tts-1-hd":g},allVoices:h},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":h,"openai/tts-1":g,"openai/tts-1-hd":g},allVoices:h},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:[{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"}]},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":i,"gemini-2.5-pro-preview-tts":i},allVoices:i}},k="-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(a=>"llm"!==(a.type||"llm")||a.id.endsWith(k)?[a]:[a,{...a,id:`${a.id}${k}`,name:`${a.name} Review`,upstreamModelId:a.upstreamModelId||a.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"}],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-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)"}],...function(){let a={};for(let[b,c]of Object.entries(j))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=j.openai.allVoices,a["openrouter-tts-voices"]=j.openrouter.allVoices,a}(),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:[]}]};function m(a){return l[a]||[]}function n(a){let b=l[a];return b?.[0]?.id||null}function o(a,b){let c=l[a];if(!c)return null;let d=c.find(a=>a.id===b);return d?.targetFormat||null}function p(a,b){let c=l[a],d=c?.find(a=>a.id===b);return d?.upstreamModelId?d.upstreamModelId:"cx"===a&&"string"==typeof b&&b.endsWith(k)?b.slice(0,-k.length):b}let q={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"},r=Object.fromEntries(Object.keys(d.xq).map(a=>[a,q[a]||a]));function s(a,b){let c=l[a]?.find(a=>a.id===b);return c?.strip||[]}},62276:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>h,xq:()=>g});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={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,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.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:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.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,d.platform)()}/${(0,d.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:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},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:f,format:"claude",headers:{...e},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:{...e}},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"}};function h(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}},64749:()=>{}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8515,exports.ids=[8515],exports.modules={24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},55103:(a,b,c)=>{a.exports=c(44870)},60475:(a,b,c)=>{c.d(b,{oF:()=>q,tm:()=>p,vF:()=>o});var d=c(34278),e=c(73865),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(81372);let k=g().join(j.n,"disabledModels.json");i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let l={disabled:{}},m=null;async function n(){if(!m){let a=new e.Pv(k);m=new d.t(a,l);try{await m.read()}catch(a){if(a instanceof SyntaxError)m.data={...l},await m.write();else throw a}m.data&&"object"==typeof m.data||(m.data={...l}),m.data.disabled||(m.data.disabled={})}return m}async function o(){return(await n()).data.disabled||{}}async function p(a,b){if(!a||!Array.isArray(b))return;let c=await n(),d=new Set(c.data.disabled[a]||[]);b.forEach(a=>d.add(a)),c.data.disabled[a]=[...d],await c.write()}async function q(a,b){if(!a)return;let c=await n(),d=c.data.disabled[a]||[];if(Array.isArray(b)&&0!==b.length){let e=new Set(b),f=d.filter(a=>!e.has(a));0===f.length?delete c.data.disabled[a]:c.data.disabled[a]=f}else delete c.data.disabled[a];await c.write()}},61250:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>o,OPTIONS:()=>n,buildModelsList:()=>m});var d=c(24709),e=c(50021),f=c(37770),g=c(60475);let h=/[-_][0-9a-f]{8,}$/i,i={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function j(a){return a?.type&&i[a.type]||"llm"}async function k(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function l(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function m(a){let b=[];try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let c=[];try{c=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let i=[];try{i=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let m={};try{m=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let n={};try{n=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let o=(a,b)=>Array.isArray(n[a])&&n[a].includes(b),p=new Map;for(let a of b)p.has(a.provider)||p.set(a.provider,a);let q=[];for(let b of c){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),q.push(c)}if(0===b.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(l(b[c]||c,a))for(let b of e)a.includes(j(b))&&(o(c,b.id)||q.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of i){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&q.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,c]of p.entries()){if(!l(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),n=d.vq[f]||[],p=c?.providerSpecificData?.enabledModels,r=Array.isArray(p)&&p.length>0,s=(0,e.mq)(b)||(0,e.gb)(b),t=new Map(n.map(a=>[a.id,j(a)])),u=r?Array.from(new Set(p.filter(a=>"string"==typeof a&&""!==a.trim()))):n.map(a=>a.id);for(let d of(s&&0===u.length&&!h.test(b)&&(u=await k(c)),Array.from(new Set([...u.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...i.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===f||c===g||c===b}).map(a=>String(a.id).trim()).filter(a=>""!==a),...Object.values(m||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())])))){let b=t.get(d)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(d);a.includes(b)&&(o(g,d)||o(f,d)||q.push({id:`${g}/${d}`,object:"model",owned_by:g}))}let v=e.AI_PROVIDERS[b],w=[];if(a.includes("tts")&&Array.isArray(v?.ttsConfig?.models))for(let a of v.ttsConfig.models)a?.id&&w.push(a.id);if(a.includes("embedding")&&Array.isArray(v?.embeddingConfig?.models))for(let a of v.embeddingConfig.models)a?.id&&w.push(a.id);for(let a of w)o(g,a)||o(f,a)||q.push({id:`${g}/${a}`,object:"model",owned_by:g});a.includes("webSearch")&&v?.searchConfig&&q.push({id:`${g}/search`,object:"model",kind:"webSearch",owned_by:g}),a.includes("webFetch")&&v?.fetchConfig&&q.push({id:`${g}/fetch`,object:"model",kind:"webFetch",owned_by:g})}let r=[],s=new Set;for(let a of q)!a?.id||s.has(a.id)||(s.add(a.id),r.push(a));return r}async function n(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function o(){try{let a=await m(["llm"]);return Response.json({object:"list",data:a},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;d<b;d++)try{return await a()}catch(a){if(d<b-1)await new Promise(a=>setTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};
@@ -1 +0,0 @@
1
- exports.id=8525,exports.ids=[8525],exports.modules={23016:(a,b,c)=>{"use strict";c.d(b,{C8:()=>j,DR:()=>i,Uc:()=>f,cI:()=>h,eo:()=>g,gx:()=>d,v1:()=>e}),c(73714);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=64e3,g=32e3,h={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function i(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let j=["Please write a 5-10 word title for the following conversation:"]},24429:()=>{},64749:()=>{},73714:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},77301:(a,b,c)=>{"use strict";c.d(b,{Op:()=>N,Nq:()=>E,PE:()=>P});var d=c(4573),e=c(29807),f=c(23016);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}let j={token:null,tokenTime:0},k=0;async function l(){let a=Date.now();if(j.token&&a-j.tokenTime<66e4)return j.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return j.token={"f.sid":d,bl:e},j.tokenTime=a,j.token}let m={token:null,tokenTime:0},n=null,o=0;async function p(){let a=Date.now();if(m.token&&a-m.tokenTime<3e5)return m.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return m.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},m.tokenTime=a,m.token}async function q(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`<speak version='1.0' xml:lang='${d}'><voice xml:lang='${d}' xml:gender='${e}' name='${b}'><prosody rate='0.00%'>${a}</prosody></voice></speak>`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function r(){let a=Date.now();if(n&&a-o<864e5)return n;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return n=c,o=a,c}var s=c(31421),t=c(57975),u=c(51455),v=c(48161),w=c(76760);let x=(0,t.promisify)(s.execFile),y=null;async function z(){let{stdout:a}=await x("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function A(){let{stdout:a}=await x("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function B(){if(y)return y;try{let a="win32"===process.platform?await A():await z();return y=a,a}catch{return[]}}async function C(a,b){let c=await (0,u.mkdtemp)((0,w.join)((0,v.tmpdir)(),"tts-")),d=(0,w.join)(c,"out.aiff"),e=(0,w.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await x("say",c),await x("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,u.readFile)(e)).toString("base64")}finally{await (0,u.rm)(c,{recursive:!0,force:!0})}}let D=new Map;async function E(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=D.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return D.set(a,{voices:e,time:b}),e}let F="gemini-2.5-flash-preview-tts",G="Kore",H=["gemini-2.5-flash-preview-tts","gemini-2.5-pro-preview-tts"],I=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function J(){return I.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let K={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")}},L={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await l(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++k+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let m=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!m.ok)throw Error(`Google TTS failed: ${m.status}`);let n=JSON.parse(JSON.parse((await m.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await p(),f=await q(a,c,e);if((429===f.status||403===f.status)&&(m.token=null,m.tokenTime=0,e=await p(),f=await q(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await C(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e="gpt-4o-mini-tts",f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d="openai/gpt-4o-mini-tts",e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:F,voiceId:G};for(let b of H){if(a===b)return{modelId:b,voiceId:G};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:F,voiceId:a}}(b),m=`https://generativelanguage.googleapis.com/v1beta/models/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}}};async function M(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(21).then(c.bind(c,50021)),g=f[a]?.ttsConfig;if(!g)return null;let h=K[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{modelId:j,voiceId:k}=function(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}(d,g.models?.[0]?.id||"","",g.models||[]);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:j,voiceId:k})}let N={"edge-tts":r,"local-device":B,elevenlabs:E,gemini:J};function O(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function P({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let i=L[a]||null;if(i){let a=await i.synthesize(c.trim(),b,d,g,{language:h});if(void 0!==a.success)return a;return O(a.base64,a.format,g)}let j=await M(a,c.trim(),b,d);if(j)return O(j.base64,j.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8710,exports.ids=[8710],exports.modules={34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;d<b;d++)try{return await a()}catch(a){if(d<b-1)await new Promise(a=>setTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},94723:(a,b,c)=>{c.d(b,{Ay:()=>A});var d=c(55511),e=null;function f(a,b){if("number"!=typeof(a=a||r))throw Error("Illegal arguments: "+typeof a+", "+typeof b);a<4?a=4:a>31&&(a=31);var c=[];return c.push("$2b$"),a<10&&c.push("0"),c.push(a.toString()),c.push("$"),c.push(o(function(a){try{return crypto.getRandomValues(new Uint8Array(a))}catch{}try{return d.randomBytes(a)}catch{}if(!e)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return e(a)}(q),q)),c.join("")}function g(a,b,c){if("function"==typeof b&&(c=b,b=void 0),"function"==typeof a&&(c=a,a=void 0),void 0===a)a=r;else if("number"!=typeof a)throw Error("illegal arguments: "+typeof a);function d(b){k(function(){try{b(null,f(a))}catch(a){b(a)}})}if(!c)return new Promise(function(a,b){d(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);d(c)}function h(a,b){if(void 0===b&&(b=r),"number"==typeof b&&(b=f(b)),"string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return z(a,b)}function i(a,b,c,d){function e(c){"string"==typeof a&&"number"==typeof b?g(b,function(b,e){z(a,e,c,d)}):"string"==typeof a&&"string"==typeof b?z(a,b,c,d):k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b)))}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)}function j(a,b){for(var c=a.length^b.length,d=0;d<a.length;++d)c|=a.charCodeAt(d)^b.charCodeAt(d);return 0===c}var k="function"==typeof setImmediate?setImmediate:"object"==typeof scheduler&&"function"==typeof scheduler.postTask?scheduler.postTask.bind(scheduler):setTimeout;function l(a){for(var b=0,c=0,d=0;d<a.length;++d)(c=a.charCodeAt(d))<128?b+=1:c<2048?b+=2:(64512&c)==55296&&(64512&a.charCodeAt(d+1))==56320?(++d,b+=4):b+=3;return b}var m="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),n=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1];function o(a,b){var c,d,e=0,f=[];if(b<=0||b>a.length)throw Error("Illegal len: "+b);for(;e<b;){if(c=255&a[e++],f.push(m[c>>2&63]),c=(3&c)<<4,e>=b||(c|=(d=255&a[e++])>>4&15,f.push(m[63&c]),c=(15&d)<<2,e>=b)){f.push(m[63&c]);break}c|=(d=255&a[e++])>>6&3,f.push(m[63&c]),f.push(m[63&d])}return f.join("")}function p(a,b){var c,d,e,f,g,h=0,i=a.length,j=0,k=[];if(b<=0)throw Error("Illegal len: "+b);for(;h<i-1&&j<b&&(c=(g=a.charCodeAt(h++))<n.length?n[g]:-1,d=(g=a.charCodeAt(h++))<n.length?n[g]:-1,-1!=c&&-1!=d)&&(f=c<<2>>>0|(48&d)>>4,k.push(String.fromCharCode(f)),!(++j>=b||h>=i||-1==(e=(g=a.charCodeAt(h++))<n.length?n[g]:-1)||(f=(15&d)<<4>>>0|(60&e)>>2,k.push(String.fromCharCode(f)),++j>=b||h>=i)));){;f=(3&e)<<6>>>0|((g=a.charCodeAt(h++))<n.length?n[g]:-1),k.push(String.fromCharCode(f)),++j}var l=[];for(h=0;h<j;h++)l.push(k[h].charCodeAt(0));return l}var q=16,r=10,s=[0x243f6a88,0x85a308d3,0x13198a2e,0x3707344,0xa4093822,0x299f31d0,0x82efa98,0xec4e6c89,0x452821e6,0x38d01377,0xbe5466cf,0x34e90c6c,0xc0ac29b7,0xc97c50dd,0x3f84d5b5,0xb5470917,0x9216d5d9,0x8979fb1b],t=[0xd1310ba6,0x98dfb5ac,0x2ffd72db,0xd01adfb7,0xb8e1afed,0x6a267e96,0xba7c9045,0xf12c7f99,0x24a19947,0xb3916cf7,0x801f2e2,0x858efc16,0x636920d8,0x71574e69,0xa458fea3,0xf4933d7e,0xd95748f,0x728eb658,0x718bcd58,0x82154aee,0x7b54a41d,0xc25a59b5,0x9c30d539,0x2af26013,0xc5d1b023,0x286085f0,0xca417918,0xb8db38ef,0x8e79dcb0,0x603a180e,0x6c9e0e8b,0xb01e8a3e,0xd71577c1,0xbd314b27,0x78af2fda,0x55605c60,0xe65525f3,0xaa55ab94,0x57489862,0x63e81440,0x55ca396a,0x2aab10b6,0xb4cc5c34,0x1141e8ce,0xa15486af,0x7c72e993,0xb3ee1411,0x636fbc2a,0x2ba9c55d,0x741831f6,0xce5c3e16,0x9b87931e,0xafd6ba33,0x6c24cf5c,0x7a325381,0x28958677,0x3b8f4898,0x6b4bb9af,0xc4bfe81b,0x66282193,0x61d809cc,0xfb21a991,0x487cac60,0x5dec8032,0xef845d5d,0xe98575b1,0xdc262302,0xeb651b88,0x23893e81,0xd396acc5,0xf6d6ff3,0x83f44239,0x2e0b4482,0xa4842004,0x69c8f04a,0x9e1f9b5e,0x21c66842,0xf6e96c9a,0x670c9c61,0xabd388f0,0x6a51a0d2,0xd8542f68,0x960fa728,0xab5133a3,0x6eef0b6c,0x137a3be4,0xba3bf050,0x7efb2a98,0xa1f1651d,0x39af0176,0x66ca593e,0x82430e88,0x8cee8619,0x456f9fb4,0x7d84a5c3,0x3b8b5ebe,0xe06f75d8,0x85c12073,0x401a449f,0x56c16aa6,0x4ed3aa62,0x363f7706,0x1bfedf72,0x429b023d,0x37d0d724,0xd00a1248,0xdb0fead3,0x49f1c09b,0x75372c9,0x80991b7b,0x25d479d8,0xf6e8def7,0xe3fe501a,0xb6794c3b,0x976ce0bd,0x4c006ba,0xc1a94fb6,0x409f60c4,0x5e5c9ec2,0x196a2463,0x68fb6faf,0x3e6c53b5,0x1339b2eb,0x3b52ec6f,0x6dfc511f,0x9b30952c,0xcc814544,0xaf5ebd09,0xbee3d004,0xde334afd,0x660f2807,0x192e4bb3,0xc0cba857,0x45c8740f,0xd20b5f39,0xb9d3fbdb,0x5579c0bd,0x1a60320a,0xd6a100c6,0x402c7279,0x679f25fe,0xfb1fa3cc,0x8ea5e9f8,0xdb3222f8,0x3c7516df,0xfd616b15,0x2f501ec8,0xad0552ab,0x323db5fa,0xfd238760,0x53317b48,0x3e00df82,0x9e5c57bb,0xca6f8ca0,0x1a87562e,0xdf1769db,0xd542a8f6,0x287effc3,0xac6732c6,0x8c4f5573,0x695b27b0,0xbbca58c8,0xe1ffa35d,0xb8f011a0,0x10fa3d98,0xfd2183b8,0x4afcb56c,0x2dd1d35b,0x9a53e479,0xb6f84565,0xd28e49bc,0x4bfb9790,0xe1ddf2da,0xa4cb7e33,0x62fb1341,0xcee4c6e8,0xef20cada,0x36774c01,0xd07e9efe,0x2bf11fb4,0x95dbda4d,0xae909198,0xeaad8e71,0x6b93d5a0,0xd08ed1d0,0xafc725e0,0x8e3c5b2f,0x8e7594b7,0x8ff6e2fb,0xf2122b64,0x8888b812,0x900df01c,0x4fad5ea0,0x688fc31c,0xd1cff191,0xb3a8c1ad,0x2f2f2218,0xbe0e1777,0xea752dfe,0x8b021fa1,0xe5a0cc0f,0xb56f74e8,0x18acf3d6,0xce89e299,0xb4a84fe0,0xfd13e0b7,0x7cc43b81,0xd2ada8d9,0x165fa266,0x80957705,0x93cc7314,0x211a1477,0xe6ad2065,0x77b5fa86,0xc75442f5,0xfb9d35cf,0xebcdaf0c,0x7b3e89a0,0xd6411bd3,0xae1e7e49,2428461,0x2071b35e,0x226800bb,0x57b8e0af,0x2464369b,0xf009b91e,0x5563911d,0x59dfa6aa,0x78c14389,0xd95a537f,0x207d5ba2,0x2e5b9c5,0x83260376,0x6295cfa9,0x11c81968,0x4e734a41,0xb3472dca,0x7b14a94a,0x1b510052,0x9a532915,0xd60f573f,0xbc9bc6e4,0x2b60a476,0x81e67400,0x8ba6fb5,0x571be91f,0xf296ec6b,0x2a0dd915,0xb6636521,0xe7b9f9b6,0xff34052e,0xc5855664,0x53b02d5d,0xa99f8fa1,0x8ba4799,0x6e85076a,0x4b7a70e9,0xb5b32944,0xdb75092e,0xc4192623,290971e4,0x49a7df7d,0x9cee60b8,0x8fedb266,0xecaa8c71,0x699a17ff,0x5664526c,0xc2b19ee1,0x193602a5,0x75094c29,0xa0591340,0xe4183a3e,0x3f54989a,0x5b429d65,0x6b8fe4d6,0x99f73fd6,0xa1d29c07,0xefe830f5,0x4d2d38e6,0xf0255dc1,0x4cdd2086,0x8470eb26,0x6382e9c6,0x21ecc5e,0x9686b3f,0x3ebaefc9,0x3c971814,0x6b6a70a1,0x687f3584,0x52a0e286,0xb79c5305,0xaa500737,0x3e07841c,0x7fdeae5c,0x8e7d44ec,0x5716f2b8,0xb03ada37,0xf0500c0d,0xf01c1f04,0x200b3ff,0xae0cf51a,0x3cb574b2,0x25837a58,0xdc0921bd,0xd19113f9,0x7ca92ff6,0x94324773,0x22f54701,0x3ae5e581,0x37c2dadc,0xc8b57634,0x9af3dda7,0xa9446146,0xfd0030e,0xecc8c73e,0xa4751e41,0xe238cd99,0x3bea0e2f,0x3280bba1,0x183eb331,0x4e548b38,0x4f6db908,0x6f420d03,0xf60a04bf,0x2cb81290,0x24977c79,0x5679b072,0xbcaf89af,0xde9a771f,0xd9930810,0xb38bae12,0xdccf3f2e,0x5512721f,0x2e6b7124,0x501adde6,0x9f84cd87,0x7a584718,0x7408da17,0xbc9f9abc,0xe94b7d8c,0xec7aec3a,0xdb851dfa,0x63094366,0xc464c3d2,0xef1c1847,0x3215d908,0xdd433b37,0x24c2ba16,0x12a14d43,0x2a65c451,0x50940002,0x133ae4dd,0x71dff89e,0x10314e55,0x81ac77d6,0x5f11199b,0x43556f1,0xd7a3c76b,0x3c11183b,0x5924a509,0xf28fe6ed,0x97f1fbfa,0x9ebabf2c,0x1e153c6e,0x86e34570,0xeae96fb1,0x860e5e0a,0x5a3e2ab3,0x771fe71c,0x4e3d06fa,0x2965dcb9,0x99e71d0f,0x803e89d6,0x5266c825,0x2e4cc978,0x9c10b36a,0xc6150eba,0x94e2ea78,0xa5fc3c53,0x1e0a2df4,0xf2f74ea7,0x361d2b3d,0x1939260f,0x19c27960,0x5223a708,0xf71312b6,0xebadfe6e,0xeac31f66,0xe3bc4595,0xa67bc883,0xb17f37d1,0x18cff28,0xc332ddef,0xbe6c5aa5,0x65582185,0x68ab9802,0xeecea50f,0xdb2f953b,0x2aef7dad,0x5b6e2f84,0x1521b628,0x29076170,0xecdd4775,0x619f1510,0x13cca830,0xeb61bd96,0x334fe1e,0xaa0363cf,0xb5735c90,0x4c70a239,0xd59e9e0b,0xcbaade14,0xeecc86bc,0x60622ca7,0x9cab5cab,0xb2f3846e,0x648b1eaf,0x19bdf0ca,0xa02369b9,0x655abb50,0x40685a32,0x3c2ab4b3,0x319ee9d5,0xc021b8f7,0x9b540b19,0x875fa099,0x95f7997e,0x623d7da8,0xf837889a,0x97e32d77,0x11ed935f,0x16681281,0xe358829,0xc7e61fd6,0x96dedfa1,0x7858ba99,0x57f584a5,0x1b227263,0x9b83c3ff,0x1ac24696,0xcdb30aeb,0x532e3054,0x8fd948e4,0x6dbc3128,0x58ebf2ef,0x34c6ffea,0xfe28ed61,0xee7c3c73,0x5d4a14d9,0xe864b7e3,0x42105d14,0x203e13e0,0x45eee2b6,0xa3aaabea,0xdb6c4f15,0xfacb4fd0,0xc742f442,0xef6abbb5,0x654f3b1d,0x41cd2105,0xd81e799e,0x86854dc7,0xe44b476a,0x3d816250,0xcf62a1f2,0x5b8d2646,0xfc8883a0,0xc1c7b6a3,0x7f1524c3,0x69cb7492,0x47848a0b,0x5692b285,0x95bbf00,0xad19489d,0x1462b174,0x23820e00,0x58428d2a,0xc55f5ea,0x1dadf43e,0x233f7061,0x3372f092,0x8d937e41,0xd65fecf1,0x6c223bdb,0x7cde3759,0xcbee7460,0x4085f2a7,0xce77326e,0xa6078084,0x19f8509e,0xe8efd855,0x61d99735,0xa969a7aa,0xc50c06c2,0x5a04abfc,0x800bcadc,0x9e447a2e,0xc3453484,0xfdd56705,0xe1e9ec9,0xdb73dbd3,0x105588cd,0x675fda79,0xe3674340,0xc5c43465,0x713e38d8,0x3d28f89e,0xf16dff20,0x153e21e7,0x8fb03d4a,0xe6e39f2b,0xdb83adf7,0xe93d5a68,0x948140f7,0xf64c261c,0x94692934,0x411520f7,0x7602d4f7,0xbcf46b2e,0xd4a20068,0xd4082471,0x3320f46a,0x43b7d4b7,0x500061af,0x1e39f62e,0x97244546,0x14214f74,0xbf8b8840,0x4d95fc1d,0x96b591af,0x70f4ddd3,0x66a02f45,0xbfbc09ec,0x3bd9785,0x7fac6dd0,0x31cb8504,0x96eb27b3,0x55fd3941,0xda2547e6,0xabca0a9a,0x28507825,0x530429f4,0xa2c86da,0xe9b66dfb,0x68dc1462,0xd7486900,0x680ec0a4,0x27a18dee,0x4f3ffea2,0xe887ad8c,0xb58ce006,0x7af4d6b6,0xaace1e7c,0xd3375fec,0xce78a399,0x406b2a42,0x20fe9e35,0xd9f385b9,0xee39d7ab,0x3b124e8b,0x1dc9faf7,0x4b6d1856,0x26a36631,0xeae397b2,0x3a6efa74,0xdd5b4332,0x6841e7f7,0xca7820fb,0xfb0af54e,0xd8feb397,0x454056ac,0xba489527,0x55533a3a,0x20838d87,0xfe6ba9b7,0xd096954b,0x55a867bc,0xa1159a58,0xcca92963,0x99e1db33,0xa62a4a56,0x3f3125f9,0x5ef47e1c,0x9029317c,0xfdf8e802,0x4272f70,0x80bb155c,0x5282ce3,0x95c11548,0xe4c66d22,0x48c1133f,0xc70f86dc,0x7f9c9ee,0x41041f0f,0x404779a4,0x5d886e17,0x325f51eb,0xd59bc0d1,0xf2bcc18f,0x41113564,0x257b7834,0x602a9c60,0xdff8e8a3,0x1f636c1b,0xe12b4c2,0x2e1329e,0xaf664fd1,0xcad18115,0x6b2395e0,0x333e92e1,0x3b240b62,0xeebeb922,0x85b2a20e,0xe6ba0d99,0xde720c8c,0x2da2f728,0xd0127845,0x95b794fd,0x647d0862,0xe7ccf5f0,0x5449a36f,0x877d48fa,0xc39dfd27,0xf33e8d1e,0xa476341,0x992eff74,0x3a6f6eab,0xf4f8fd37,0xa812dc60,0xa1ebddf8,0x991be14c,0xdb6e6b0d,0xc67b5510,0x6d672c37,0x2765d43b,0xdcd0e804,0xf1290dc7,0xcc00ffa3,0xb5390f92,0x690fed0b,0x667b9ffb,0xcedb7d9c,0xa091cf0b,0xd9155ea3,0xbb132f88,0x515bad24,0x7b9479bf,0x763bd6eb,0x37392eb3,0xcc115979,0x8026e297,0xf42e312d,0x6842ada7,0xc66a2b3b,0x12754ccc,0x782ef11c,0x6a124237,0xb79251e7,0x6a1bbe6,0x4bfb6350,0x1a6b1018,0x11caedfa,0x3d25bdd8,0xe2e1c3c9,0x44421659,0xa121386,0xd90cec6e,0xd5abea2a,0x64af674e,0xda86a85f,0xbebfe988,0x64e4c3fe,0x9dbc8057,0xf0f7c086,0x60787bf8,0x6003604d,0xd1fd8346,0xf6381fb0,0x7745ae04,0xd736fccc,0x83426b33,0xf01eab71,0xb0804187,0x3c005e5f,0x77a057be,0xbde8ae24,0x55464299,0xbf582e61,0x4e58f48f,0xf2ddfda2,0xf474ef38,0x8789bdc2,0x5366f9c3,0xc8b38e74,0xb475f255,0x46fcd9b9,0x7aeb2661,0x8b1ddf84,0x846a0e79,0x915f95e2,0x466e598e,0x20b45770,0x8cd55591,0xc902de4c,0xb90bace1,0xbb8205d0,0x11a86248,0x7574a99e,0xb77f19b6,0xe0a9dc09,0x662d09a1,0xc4324633,0xe85a1f02,0x9f0be8c,0x4a99a025,0x1d6efe10,0x1ab93d1d,0xba5a4df,0xa186f20f,0x2868f169,0xdcb7da83,0x573906fe,0xa1e2ce9b,0x4fcd7f52,0x50115e01,0xa70683fa,0xa002b5c4,0xde6d027,0x9af88c27,0x773f8641,0xc3604c06,0x61a806b5,0xf0177a28,0xc0f586e0,6314154,0x30dc7d62,0x11e69ed7,0x2338ea63,0x53c2dd94,0xc2c21634,0xbbcbee56,0x90bcb6de,0xebfc7da1,0xce591d76,0x6f05e409,0x4b7c0188,0x39720a3d,0x7c927c24,0x86e3725f,0x724d9db9,0x1ac15bb4,0xd39eb8fc,0xed545578,0x8fca5b5,0xd83d7cd3,0x4dad0fc4,0x1e50ef5e,0xb161e6f8,0xa28514d9,0x6c51133c,0x6fd5c7e7,0x56e14ec4,0x362abfce,0xddc6c837,0xd79a3234,0x92638212,0x670efa8e,0x406000e0,0x3a39ce37,0xd3faf5cf,0xabc27737,0x5ac52d1b,0x5cb0679e,0x4fa33742,0xd3822740,0x99bc9bbe,0xd5118e9d,0xbf0f7315,0xd62d1c7e,0xc700c47b,0xb78c1b6b,0x21a19045,0xb26eb1be,0x6a366eb4,0x5748ab2f,0xbc946e79,0xc6a376d2,0x6549c2c8,0x530ff8ee,0x468dde7d,0xd5730a1d,0x4cd04dc6,0x2939bbdb,0xa9ba4650,0xac9526e8,0xbe5ee304,0xa1fad5f0,0x6a2d519a,0x63ef8ce2,0x9a86ee22,0xc089c2b8,0x43242ef6,0xa51e03aa,0x9cf2d0a4,0x83c061ba,0x9be96a4d,0x8fe51550,0xba645bd6,0x2826a2f9,0xa73a3ae1,0x4ba99586,0xef5562e9,0xc72fefd3,0xf752f7da,0x3f046f69,0x77fa0a59,0x80e4a915,0x87b08601,0x9b09e6ad,0x3b3ee593,0xe990fd5a,0x9e34d797,0x2cf0b7d9,0x22b8b51,0x96d5ac3a,0x17da67d,0xd1cf3ed6,0x7c7d2d28,0x1f9f25cf,0xadf2b89b,0x5ad6b472,0x5a88f54c,0xe029ac71,0xe019a5e6,0x47b0acfd,0xed93fa9b,0xe8d3c48d,0x283b57cc,0xf8d56629,0x79132e28,0x785f0191,0xed756055,0xf7960e44,0xe3d35e8c,0x15056dd4,0x88f46dba,0x3a16125,0x564f0bd,0xc3eb9e15,0x3c9057a2,0x97271aec,0xa93a072a,0x1b3f6d9b,0x1e6321f5,0xf59c66fb,0x26dcf319,0x7533d928,0xb155fdf5,0x3563482,0x8aba3cbb,0x28517711,0xc20ad9f8,0xabcc5167,0xccad925f,0x4de81751,0x3830dc8e,0x379d5862,0x9320f991,0xea7a90c2,0xfb3e7bce,0x5121ce64,0x774fbe32,0xa8b6e37e,0xc3293d46,0x48de5369,0x6413e680,0xa2ae0810,0xdd6db224,0x69852dfd,0x9072166,0xb39a460a,0x6445c0dd,0x586cdecf,0x1c20c8ae,0x5bbef7dd,0x1b588d40,0xccd2017f,0x6bb4e3bb,0xdda26a7e,0x3a59ff45,0x3e350a44,0xbcb4cdd5,0x72eacea8,0xfa6484bb,0x8d6612ae,0xbf3c6f47,0xd29be463,0x542f5d9e,0xaec2771b,0xf64e6370,0x740e0d8d,0xe75b1357,0xf8721671,0xaf537d5d,0x4040cb08,0x4eb4e2cc,0x34d2466a,0x115af84,3786409e3,0x95983a1d,0x6b89fb4,0xce6ea048,0x6f3f3b82,0x3520ab82,0x11a1d4b,0x277227f8,0x611560b1,0xe7933fdc,0xbb3a792b,0x344525bd,0xa08839e1,0x51ce794b,0x2f32c9b7,0xa01fbac9,0xe01cc87e,0xbcc7d1f6,0xcf0111c3,0xa1e8aac7,0x1a908749,0xd44fbd9a,0xd0dadecb,0xd50ada38,0x339c32a,0xc6913667,0x8df9317c,0xe0b12b4f,0xf79e59b7,0x43f5bb3a,0xf2d519ff,0x27d9459c,0xbf97222c,0x15e6fc2a,0xf91fc71,0x9b941525,0xfae59361,0xceb69ceb,0xc2a86459,0x12baa8d1,0xb6c1075e,0xe3056a0c,0x10d25065,0xcb03a442,0xe0ec6e0e,0x1698db3b,0x4c98a0be,0x3278e964,0x9f1f9532,0xe0d392df,0xd3a0342b,0x8971f21e,0x1b0a7441,0x4ba3348c,0xc5be7120,0xc37632d8,0xdf359f8d,0x9b992f2e,0xe60b6f47,0xfe3f11d,0xe54cda54,0x1edad891,0xce6279cf,0xcd3e7e6f,0x1618b166,0xfd2c1d05,0x848fd2c5,0xf6fb2299,0xf523f357,0xa6327623,0x93a83531,0x56cccd02,0xacf08162,0x5a75ebb5,0x6e163697,0x88d273cc,0xde966292,0x81b949d0,0x4c50901b,0x71c65614,0xe6c6c7bd,0x327a140a,0x45e1d006,0xc3f27b9a,0xc9aa53fd,0x62a80f00,0xbb25bfe2,0x35bdd2f6,0x71126905,0xb2040222,0xb6cbcf7c,0xcd769c2b,0x53113ec0,0x1640e3d3,0x38abbd60,0x2547adf0,0xba38209c,0xf746ce76,0x77afa1c5,0x20756060,0x85cbfe4e,0x8ae88dd8,0x7aaaf9b0,0x4cf9aa7e,0x1948c25c,0x2fb8a8c,0x1c36ae4,0xd6ebe1f9,0x90d4f869,0xa65cdea0,0x3f09252d,0xc208e69f,0xb74e6132,0xce77e25b,0x578fdfe3,0x3ac372e6],u=[0x4f727068,0x65616e42,0x65686f6c,0x64657253,0x63727944,0x6f756274];function v(a,b,c,d){var e=a[b],f=a[b+1];return e^=c[0],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[1],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[2],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[3],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[4],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[5],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[6],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[7],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[8],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[9],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[10],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[11],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[12],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[13],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[14],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[15],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[16],a[b]=f^c[17],a[b+1]=e,a}function w(a,b){for(var c=0,d=0;c<4;++c)d=d<<8|255&a[b],b=(b+1)%a.length;return{key:d,offp:b}}function x(a,b,c){for(var d,e=0,f=[0,0],g=b.length,h=c.length,i=0;i<g;i++)e=(d=w(a,e)).offp,b[i]=b[i]^d.key;for(i=0;i<g;i+=2)f=v(f,0,b,c),b[i]=f[0],b[i+1]=f[1];for(i=0;i<h;i+=2)f=v(f,0,b,c),c[i]=f[0],c[i+1]=f[1]}function y(a,b,c,d,e){var f,g,h=u.slice(),i=h.length;if(c<4||c>31){if(g=Error("Illegal number of rounds (4-31): "+c),d)return void k(d.bind(this,g));throw g}if(b.length!==q){if(g=Error("Illegal salt length: "+b.length+" != "+q),d)return void k(d.bind(this,g));throw g}c=1<<c>>>0;var j,l,m,n=0;function o(){if(e&&e(n/c),n<c)for(var f=Date.now();n<c&&(n+=1,x(a,j,l),x(b,j,l),!(Date.now()-f>100)););else{for(n=0;n<64;n++)for(m=0;m<i>>1;m++)v(h,m<<1,j,l);var g=[];for(n=0;n<i;n++)g.push((h[n]>>24&255)>>>0),g.push((h[n]>>16&255)>>>0),g.push((h[n]>>8&255)>>>0),g.push((255&h[n])>>>0);return d?void d(null,g):g}d&&k(o)}if("function"==typeof Int32Array?(j=new Int32Array(s),l=new Int32Array(t)):(j=s.slice(),l=t.slice()),!function(a,b,c,d){for(var e,f=0,g=[0,0],h=c.length,i=d.length,j=0;j<h;j++)f=(e=w(b,f)).offp,c[j]=c[j]^e.key;for(j=0,f=0;j<h;j+=2)f=(e=w(a,f)).offp,g[0]^=e.key,f=(e=w(a,f)).offp,g[1]^=e.key,g=v(g,0,c,d),c[j]=g[0],c[j+1]=g[1];for(j=0;j<i;j+=2)f=(e=w(a,f)).offp,g[0]^=e.key,f=(e=w(a,f)).offp,g[1]^=e.key,g=v(g,0,c,d),d[j]=g[0],d[j+1]=g[1]}(b,a,j,l),void 0!==d)o();else for(;;)if(void 0!==(f=o()))return f||[]}function z(a,b,c,d){if("string"!=typeof a||"string"!=typeof b){if(e=Error("Invalid string / salt: Not a string"),c)return void k(c.bind(this,e));throw e}if("$"!==b.charAt(0)||"2"!==b.charAt(1)){if(e=Error("Invalid salt version: "+b.substring(0,2)),c)return void k(c.bind(this,e));throw e}if("$"===b.charAt(2))f="\0",g=3;else{if("a"!==(f=b.charAt(2))&&"b"!==f&&"y"!==f||"$"!==b.charAt(3)){if(e=Error("Invalid salt revision: "+b.substring(2,4)),c)return void k(c.bind(this,e));throw e}g=4}if(b.charAt(g+2)>"$"){if(e=Error("Missing salt rounds"),c)return void k(c.bind(this,e));throw e}var e,f,g,h=10*parseInt(b.substring(g,g+1),10)+parseInt(b.substring(g+1,g+2),10),i=b.substring(g+3,g+25),j=function(a){for(var b,c,d=0,e=Array(l(a)),f=0,g=a.length;f<g;++f)(b=a.charCodeAt(f))<128?e[d++]=b:(b<2048?e[d++]=b>>6|192:((64512&b)==55296&&(64512&(c=a.charCodeAt(f+1)))==56320?(b=65536+((1023&b)<<10)+(1023&c),++f,e[d++]=b>>18|240,e[d++]=b>>12&63|128):e[d++]=b>>12|224,e[d++]=b>>6&63|128),e[d++]=63&b|128);return e}(a+=f>="a"?"\0":""),m=p(i,q);function n(a){var b=[];return b.push("$2"),f>="a"&&b.push(f),b.push("$"),h<10&&b.push("0"),b.push(h.toString()),b.push("$"),b.push(o(m,m.length)),b.push(o(a,4*u.length-1)),b.join("")}if(void 0===c)return n(y(j,m,h));y(j,m,h,function(a,b){a?c(a,null):c(null,n(b))},d)}let A={setRandomFallback:function(a){e=a},genSaltSync:f,genSalt:g,hashSync:h,hash:i,compareSync:function(a,b){if("string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return 60===b.length&&j(h(a,b.substring(0,b.length-31)),b)},compare:function(a,b,c,d){function e(c){"string"!=typeof a||"string"!=typeof b?k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b))):60!==b.length?k(c.bind(this,null,!1)):i(a,b.substring(0,29),function(a,d){a?c(a):c(null,j(d,b))},d)}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)},getRounds:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return parseInt(a.split("$")[2],10)},getSalt:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);if(60!==a.length)throw Error("Illegal hash length: "+a.length+" != 60");return a.substring(0,29)},truncates:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return l(a)>72},encodeBase64:function(a,b){return o(a,b)},decodeBase64:function(a,b){return p(a,b)}}}};