@yina-npm/openrouterx 0.4.35 → 0.4.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1042) hide show
  1. package/README.md +1176 -254
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +8 -6
  4. package/app/.next/build-manifest.json +4 -4
  5. package/app/.next/prerender-manifest.json +3 -3
  6. package/app/.next/required-server-files.json +18 -5
  7. package/app/.next/routes-manifest.json +38 -24
  8. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
  12. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +24 -0
  18. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -0
  19. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -0
  20. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  21. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  27. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page.js +2 -2
  33. package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/focus-ui/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +10 -10
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  42. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/network-analysis/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  57. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  60. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +4 -4
  69. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  72. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  75. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  78. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  81. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/user/page.js +3 -3
  84. package/app/.next/server/app/(dashboard)/dashboard/user/page.js.nft.json +1 -1
  85. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/_global-error/page.js +3 -3
  87. package/app/.next/server/app/_global-error/page.js.nft.json +1 -1
  88. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/_global-error.html +1 -1
  90. package/app/.next/server/app/_global-error.rsc +1 -1
  91. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  92. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  93. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  94. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  95. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  96. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/app/.next/server/app/_not-found/page.js +2 -2
  98. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  99. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/_not-found.html +1 -1
  101. package/app/.next/server/app/_not-found.rsc +5 -6
  102. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -6
  103. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  104. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  105. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  106. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  107. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -4
  108. package/app/.next/server/app/api/auth/login/route.js +1 -1
  109. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  110. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  112. package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/auth/me/route.js +1 -1
  115. package/app/.next/server/app/api/auth/me/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  118. package/app/.next/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/auth/oidc/start/route.js +1 -1
  121. package/app/.next/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/auth/oidc/test/route.js +1 -1
  124. package/app/.next/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/auth/status/route.js +1 -1
  127. package/app/.next/server/app/api/auth/status/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/cli-tools/all-statuses/route.js +10 -2
  130. package/app/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  133. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js +1 -1
  136. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/cli-tools/antigravity-mitm/inject-auth/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js +1 -1
  139. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/cli-tools/antigravity-mitm/restart/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  142. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js +1 -1
  145. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/cli-tools/antigravity-mitm/test/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  148. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  151. package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/cli-tools/codex-settings/activate-account/route.js +2 -0
  154. package/app/.next/server/app/api/{cloud/credentials/update → cli-tools/codex-settings/activate-account}/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/cli-tools/codex-settings/activate-account/route_client-reference-manifest.js +1 -0
  156. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  157. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  160. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  163. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  166. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -2
  169. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +9 -0
  172. package/app/.next/server/app/api/{cloud/auth → cli-tools/deepseek-tui-settings}/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -0
  174. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  175. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  178. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +3 -0
  181. package/app/.next/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -0
  182. package/app/.next/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -0
  183. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  184. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  187. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  190. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  193. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/combos/route.js +1 -1
  196. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/health/route.js +1 -1
  199. package/app/.next/server/app/api/health/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/init/route.js +1 -1
  202. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  205. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/keys/route.js +1 -1
  208. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/locale/route.js +1 -1
  211. package/app/.next/server/app/api/locale/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/api/mcp/[plugin]/message/route.js +3 -3
  214. package/app/.next/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js +4 -4
  217. package/app/.next/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  218. package/app/.next/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -1
  219. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  220. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  221. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -1
  222. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  223. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -1
  225. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  226. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js +1 -0
  229. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -0
  230. package/app/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -0
  231. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  232. package/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/models/alias/route.js +1 -1
  235. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  236. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/models/availability/route.js +1 -1
  238. package/app/.next/server/app/api/models/availability/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  240. package/app/.next/server/app/api/models/custom/route.js +1 -1
  241. package/app/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  242. package/app/.next/server/app/api/models/custom/route_client-reference-manifest.js +1 -1
  243. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  244. package/app/.next/server/app/api/models/disabled/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/models/disabled/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/api/models/route.js +1 -1
  247. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  248. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  249. package/app/.next/server/app/api/models/test/route.js +1 -1
  250. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  251. package/app/.next/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  252. package/app/.next/server/app/api/network-analysis/route.js +2 -2
  253. package/app/.next/server/app/api/network-analysis/route.js.nft.json +1 -1
  254. package/app/.next/server/app/api/network-analysis/route_client-reference-manifest.js +1 -1
  255. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  256. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  259. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  262. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  265. package/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  267. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  268. package/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  271. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  273. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  274. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  276. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  277. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  278. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  279. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  280. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  282. package/app/.next/server/app/api/pricing/route.js +1 -1
  283. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  284. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  285. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  286. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  287. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  288. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  289. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  290. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  291. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  292. package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  293. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  294. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  295. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  296. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  297. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  298. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  299. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  301. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  302. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  303. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  304. package/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/providers/client/route.js +1 -1
  307. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  310. package/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/providers/route.js +1 -1
  313. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  314. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  315. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  316. package/app/.next/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  317. package/app/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -1
  318. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  319. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  320. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  321. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  322. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  323. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  324. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  325. package/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  326. package/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  327. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  328. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  329. package/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  330. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  331. package/app/.next/server/app/api/proxy-pools/route.js.nft.json +1 -1
  332. package/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  333. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  334. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  335. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -1
  336. package/app/.next/server/app/api/settings/database/route.js +1 -1
  337. package/app/.next/server/app/api/settings/database/route.js.nft.json +1 -1
  338. package/app/.next/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  339. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  340. package/app/.next/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  341. package/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  343. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  344. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  345. package/app/.next/server/app/api/settings/route.js +1 -1
  346. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  347. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  348. package/app/.next/server/app/api/shutdown/route.js +1 -1
  349. package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
  350. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  351. package/app/.next/server/app/api/startup-notices/route.js +2 -0
  352. package/app/.next/server/app/api/startup-notices/route.js.nft.json +1 -0
  353. package/app/.next/server/app/api/startup-notices/route_client-reference-manifest.js +1 -0
  354. package/app/.next/server/app/api/tags/route.js +1 -1
  355. package/app/.next/server/app/api/tags/route.js.nft.json +1 -1
  356. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  357. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  358. package/app/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  359. package/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  360. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  361. package/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  362. package/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  363. package/app/.next/server/app/api/translator/load/route.js +1 -1
  364. package/app/.next/server/app/api/translator/load/route.js.nft.json +1 -1
  365. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  366. package/app/.next/server/app/api/translator/save/route.js +1 -1
  367. package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
  368. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  369. package/app/.next/server/app/api/translator/send/route.js +1 -1
  370. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  373. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  374. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  375. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  376. package/app/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  377. package/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  378. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  379. package/app/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  380. package/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  381. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  382. package/app/.next/server/app/api/tunnel/status/route.js.nft.json +1 -1
  383. package/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  384. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  385. package/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  386. package/app/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -1
  387. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  388. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  389. package/app/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -1
  390. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  391. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  392. package/app/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -1
  393. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +4 -4
  394. package/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  395. package/app/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -1
  396. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
  397. package/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  398. package/app/.next/server/app/api/tunnel/tailscale-login/route_client-reference-manifest.js +1 -1
  399. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  400. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  401. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js +1 -1
  402. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  403. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  404. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  406. package/app/.next/server/app/api/usage/api-keys/route.js.nft.json +1 -1
  407. package/app/.next/server/app/api/usage/api-keys/route_client-reference-manifest.js +1 -1
  408. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  409. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  410. package/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  411. package/app/.next/server/app/api/usage/history/route.js +1 -1
  412. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  413. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  415. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  416. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  417. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  418. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  419. package/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  420. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  421. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  422. package/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  423. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  424. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  425. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  426. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  427. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  428. package/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  429. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  430. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  431. package/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  433. package/app/.next/server/app/api/users/[id]/route.js.nft.json +1 -1
  434. package/app/.next/server/app/api/users/[id]/route_client-reference-manifest.js +1 -1
  435. package/app/.next/server/app/api/users/route.js +1 -1
  436. package/app/.next/server/app/api/users/route.js.nft.json +1 -1
  437. package/app/.next/server/app/api/users/route_client-reference-manifest.js +1 -1
  438. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  439. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  440. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  441. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  442. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  443. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  444. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  445. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  446. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  447. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -1
  448. package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  449. package/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -1
  450. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  451. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  452. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  453. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  454. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  455. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  456. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  457. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  458. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  459. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  460. package/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  461. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  462. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  463. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  464. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  465. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  466. package/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  467. package/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +1 -1
  468. package/app/.next/server/app/api/v1/models/info/route.js +1 -1
  469. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
  470. package/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -1
  471. package/app/.next/server/app/api/v1/models/route.js +1 -1
  472. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  473. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  474. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  475. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  476. package/app/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -1
  477. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  478. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  479. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  480. package/app/.next/server/app/api/v1/route.js +1 -1
  481. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  482. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  483. package/app/.next/server/app/api/v1/search/route.js +1 -1
  484. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  485. package/app/.next/server/app/api/v1/search/route_client-reference-manifest.js +1 -1
  486. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  487. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  488. package/app/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -1
  489. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  490. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  491. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  492. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  493. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  494. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  495. package/app/.next/server/app/api/version/route.js +1 -1
  496. package/app/.next/server/app/api/version/route.js.nft.json +1 -1
  497. package/app/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  498. package/app/.next/server/app/api/version/shutdown/route.js +1 -1
  499. package/app/.next/server/app/api/version/shutdown/route.js.nft.json +1 -1
  500. package/app/.next/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -1
  501. package/app/.next/server/app/api/version/update/route.js +1 -1
  502. package/app/.next/server/app/api/version/update/route.js.nft.json +1 -1
  503. package/app/.next/server/app/api/version/update/route_client-reference-manifest.js +1 -1
  504. package/app/.next/server/app/callback/page.js +2 -2
  505. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  506. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  507. package/app/.next/server/app/callback.html +1 -1
  508. package/app/.next/server/app/callback.rsc +6 -7
  509. package/app/.next/server/app/callback.segments/_full.segment.rsc +6 -7
  510. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  511. package/app/.next/server/app/callback.segments/_index.segment.rsc +5 -5
  512. package/app/.next/server/app/callback.segments/_tree.segment.rsc +3 -4
  513. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +2 -2
  514. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  515. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  516. package/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  517. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  518. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  519. package/app/.next/server/app/dashboard/settings/pricing.rsc +6 -7
  520. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -7
  521. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  522. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +5 -5
  523. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -4
  524. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  525. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  526. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  527. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  528. package/app/.next/server/app/favicon.ico/route.js +1 -1
  529. package/app/.next/server/app/favicon.ico/route.js.nft.json +1 -1
  530. package/app/.next/server/app/index.html +1 -1
  531. package/app/.next/server/app/index.rsc +5 -6
  532. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  533. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -6
  534. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  535. package/app/.next/server/app/index.segments/_index.segment.rsc +5 -5
  536. package/app/.next/server/app/index.segments/_tree.segment.rsc +3 -4
  537. package/app/.next/server/app/landing/page.js +2 -2
  538. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  539. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  540. package/app/.next/server/app/landing.html +1 -1
  541. package/app/.next/server/app/landing.rsc +6 -7
  542. package/app/.next/server/app/landing.segments/_full.segment.rsc +6 -7
  543. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  544. package/app/.next/server/app/landing.segments/_index.segment.rsc +5 -5
  545. package/app/.next/server/app/landing.segments/_tree.segment.rsc +3 -4
  546. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  547. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  548. package/app/.next/server/app/login/page.js +2 -2
  549. package/app/.next/server/app/login/page.js.nft.json +1 -1
  550. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  551. package/app/.next/server/app/login.html +1 -1
  552. package/app/.next/server/app/login.rsc +6 -7
  553. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -7
  554. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  555. package/app/.next/server/app/login.segments/_index.segment.rsc +5 -5
  556. package/app/.next/server/app/login.segments/_tree.segment.rsc +3 -4
  557. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  558. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  559. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  560. package/app/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  561. package/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  562. package/app/.next/server/app/page.js +2 -2
  563. package/app/.next/server/app/page.js.nft.json +1 -1
  564. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  565. package/app/.next/server/app-paths-manifest.json +8 -6
  566. package/app/.next/server/chunks/1350.js +4 -3
  567. package/app/.next/server/chunks/1476.js +1 -0
  568. package/app/.next/server/chunks/2415.js +17 -0
  569. package/app/.next/server/chunks/2506.js +4 -4
  570. package/app/.next/server/chunks/2560.js +1 -1
  571. package/app/.next/server/chunks/2574.js +1 -0
  572. package/app/.next/server/chunks/2722.js +58 -0
  573. package/app/.next/server/chunks/{9528.js → 2750.js} +2 -3
  574. package/app/.next/server/chunks/3110.js +56 -5
  575. package/app/.next/server/chunks/319.js +3 -3
  576. package/app/.next/server/chunks/3493.js +2 -1
  577. package/app/.next/server/chunks/3593.js +2 -2
  578. package/app/.next/server/chunks/412.js +5 -5
  579. package/app/.next/server/chunks/{9546.js → 4394.js} +1 -1
  580. package/app/.next/server/chunks/{9641.js → 4565.js} +2 -2
  581. package/app/.next/server/chunks/4664.js +1 -1
  582. package/app/.next/server/chunks/5217.js +1 -1
  583. package/app/.next/server/chunks/5330.js +7 -5
  584. package/app/.next/server/chunks/5681.js +1 -1
  585. package/app/.next/server/chunks/6001.js +1 -1
  586. package/app/.next/server/chunks/6393.js +1 -1
  587. package/app/.next/server/chunks/7177.js +1 -0
  588. package/app/.next/server/chunks/7595.js +1 -1
  589. package/app/.next/server/chunks/7774.js +2 -2
  590. package/app/.next/server/chunks/7828.js +1 -1
  591. package/app/.next/server/chunks/7930.js +3 -0
  592. package/app/.next/server/chunks/8520.js +1 -1
  593. package/app/.next/server/chunks/8574.js +1 -0
  594. package/app/.next/server/chunks/8651.js +9 -0
  595. package/app/.next/server/chunks/8750.js +1 -0
  596. package/app/.next/server/chunks/8760.js +1 -1
  597. package/app/.next/server/chunks/8895.js +25 -16
  598. package/app/.next/server/chunks/9095.js +1 -0
  599. package/app/.next/server/chunks/9718.js +1 -1
  600. package/app/.next/server/chunks/9856.js +1 -0
  601. package/app/.next/server/functions-config-manifest.json +2 -30
  602. package/app/.next/server/middleware-build-manifest.js +1 -1
  603. package/app/.next/server/middleware.js +2 -2
  604. package/app/.next/server/next-font-manifest.js +1 -1
  605. package/app/.next/server/next-font-manifest.json +1 -1
  606. package/app/.next/server/pages/404.html +1 -1
  607. package/app/.next/server/pages/500.html +1 -1
  608. package/app/.next/server/server-reference-manifest.js +1 -1
  609. package/app/.next/server/server-reference-manifest.json +1 -1
  610. package/app/.next/static/Q5oB2dEL7XeWBhjwqT_vo/_buildManifest.js +1 -0
  611. package/app/.next/static/chunks/1321-621ed3470478397e.js +1 -0
  612. package/app/.next/static/chunks/4072-cc92fb1222a2752b.js +3 -0
  613. package/app/.next/static/chunks/5095-c2bb7e2fc99ab8c3.js +2 -0
  614. package/app/.next/static/chunks/5497-bebd4378b1048022.js +7 -0
  615. package/app/.next/static/chunks/6069-7c51e16aef293430.js +58 -0
  616. package/app/.next/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
  617. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/keys/page-0d5b57da4abb6962.js +1 -0
  618. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/{page-2aa2cafdedb17bad.js → page-972703d59d2a3986.js} +1 -1
  619. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-277c4575cca57177.js → page-e1bd21507327d2bc.js} +1 -1
  620. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-efbd0b93d35d25cc.js +1 -0
  621. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-acbac7a67319955a.js +1 -0
  622. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-7fabe6d07b1f8823.js +1 -0
  623. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-d98ac191ef4ff7e6.js → page-55598932923e41ce.js} +1 -1
  624. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-c8f75b084231c080.js +1 -0
  625. package/app/.next/static/chunks/app/(dashboard)/dashboard/focus-ui/{page-90a2c72d1d8122a2.js → page-329b3a170ddd28c6.js} +1 -1
  626. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e43ee64cc1f1547c.js +59 -0
  627. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-3ab3cbba76b7cbad.js → page-c64dd1d0b2bd9caf.js} +1 -1
  628. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-c0ea5a27a13640b9.js → page-9586c0b67f30a21b.js} +2 -2
  629. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-c7fbf29bdbdabee9.js +1 -0
  630. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-e0f570e37fcc4d53.js +1 -0
  631. package/app/.next/static/chunks/app/(dashboard)/dashboard/network-analysis/page-0ad4db60f9d14f60.js +1 -0
  632. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-8fceba7ec6407143.js +1 -0
  633. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-f005d7a30159ce4f.js +1 -0
  634. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-c28344f1dd08e982.js → page-c3234f9c82b1a78e.js} +2 -2
  635. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-81f02e4a6ce21347.js → page-0bf3048423ab0128.js} +1 -1
  636. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-979e3e3663264d2b.js +1 -0
  637. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-5040868a50d977bf.js +4 -0
  638. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-f30757bcda3daba7.js → page-e089ffa4138753d7.js} +1 -1
  639. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-9202b5ce0650c3ab.js +1 -0
  640. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-814b95c8fc310a6a.js +1 -0
  641. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-18d6399108c458a6.js +1 -0
  642. package/app/.next/static/chunks/app/(dashboard)/dashboard/user/page-12765c664b3c1f6d.js +4 -0
  643. package/app/.next/static/chunks/app/(dashboard)/{layout-823fc1c94bc15026.js → layout-00b66bc0e6b38a14.js} +1 -1
  644. package/app/.next/static/chunks/app/_global-error/page-814b95c8fc310a6a.js +1 -0
  645. package/app/.next/static/chunks/app/_not-found/page-7927650ca4037264.js +1 -0
  646. package/app/.next/static/chunks/app/api/auth/login/route-814b95c8fc310a6a.js +1 -0
  647. package/app/.next/static/chunks/app/api/auth/logout/route-814b95c8fc310a6a.js +1 -0
  648. package/app/.next/static/chunks/app/api/auth/me/route-814b95c8fc310a6a.js +1 -0
  649. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-814b95c8fc310a6a.js +1 -0
  650. package/app/.next/static/chunks/app/api/auth/oidc/start/route-814b95c8fc310a6a.js +1 -0
  651. package/app/.next/static/chunks/app/api/auth/oidc/test/route-814b95c8fc310a6a.js +1 -0
  652. package/app/.next/static/chunks/app/api/auth/status/route-814b95c8fc310a6a.js +1 -0
  653. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-814b95c8fc310a6a.js +1 -0
  654. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-814b95c8fc310a6a.js +1 -0
  655. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-814b95c8fc310a6a.js +1 -0
  656. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-814b95c8fc310a6a.js +1 -0
  657. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-814b95c8fc310a6a.js +1 -0
  658. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-814b95c8fc310a6a.js +1 -0
  659. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-814b95c8fc310a6a.js +1 -0
  660. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-814b95c8fc310a6a.js +1 -0
  661. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/activate-account/route-814b95c8fc310a6a.js +1 -0
  662. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-814b95c8fc310a6a.js +1 -0
  663. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-814b95c8fc310a6a.js +1 -0
  664. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-814b95c8fc310a6a.js +1 -0
  665. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-814b95c8fc310a6a.js +1 -0
  666. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-814b95c8fc310a6a.js +1 -0
  667. package/app/.next/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-814b95c8fc310a6a.js +1 -0
  668. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-814b95c8fc310a6a.js +1 -0
  669. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-814b95c8fc310a6a.js +1 -0
  670. package/app/.next/static/chunks/app/api/cli-tools/jcode-settings/route-814b95c8fc310a6a.js +1 -0
  671. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-814b95c8fc310a6a.js +1 -0
  672. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-814b95c8fc310a6a.js +1 -0
  673. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-814b95c8fc310a6a.js +1 -0
  674. package/app/.next/static/chunks/app/api/combos/[id]/route-814b95c8fc310a6a.js +1 -0
  675. package/app/.next/static/chunks/app/api/combos/route-814b95c8fc310a6a.js +1 -0
  676. package/app/.next/static/chunks/app/api/health/route-814b95c8fc310a6a.js +1 -0
  677. package/app/.next/static/chunks/app/api/init/route-814b95c8fc310a6a.js +1 -0
  678. package/app/.next/static/chunks/app/api/keys/[id]/route-814b95c8fc310a6a.js +1 -0
  679. package/app/.next/static/chunks/app/api/keys/route-814b95c8fc310a6a.js +1 -0
  680. package/app/.next/static/chunks/app/api/locale/route-814b95c8fc310a6a.js +1 -0
  681. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-814b95c8fc310a6a.js +1 -0
  682. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-814b95c8fc310a6a.js +1 -0
  683. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-814b95c8fc310a6a.js +1 -0
  684. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-814b95c8fc310a6a.js +1 -0
  685. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-814b95c8fc310a6a.js +1 -0
  686. package/app/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-814b95c8fc310a6a.js +1 -0
  687. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-814b95c8fc310a6a.js +1 -0
  688. package/app/.next/static/chunks/app/api/models/alias/route-814b95c8fc310a6a.js +1 -0
  689. package/app/.next/static/chunks/app/api/models/availability/route-814b95c8fc310a6a.js +1 -0
  690. package/app/.next/static/chunks/app/api/models/custom/route-814b95c8fc310a6a.js +1 -0
  691. package/app/.next/static/chunks/app/api/models/disabled/route-814b95c8fc310a6a.js +1 -0
  692. package/app/.next/static/chunks/app/api/models/route-814b95c8fc310a6a.js +1 -0
  693. package/app/.next/static/chunks/app/api/models/test/route-814b95c8fc310a6a.js +1 -0
  694. package/app/.next/static/chunks/app/api/network-analysis/route-814b95c8fc310a6a.js +1 -0
  695. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-814b95c8fc310a6a.js +1 -0
  696. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-814b95c8fc310a6a.js +1 -0
  697. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-814b95c8fc310a6a.js +1 -0
  698. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-814b95c8fc310a6a.js +1 -0
  699. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-814b95c8fc310a6a.js +1 -0
  700. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-814b95c8fc310a6a.js +1 -0
  701. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-814b95c8fc310a6a.js +1 -0
  702. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-814b95c8fc310a6a.js +1 -0
  703. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-814b95c8fc310a6a.js +1 -0
  704. package/app/.next/static/chunks/app/api/pricing/route-814b95c8fc310a6a.js +1 -0
  705. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-814b95c8fc310a6a.js +1 -0
  706. package/app/.next/static/chunks/app/api/provider-nodes/route-814b95c8fc310a6a.js +1 -0
  707. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-814b95c8fc310a6a.js +1 -0
  708. package/app/.next/static/chunks/app/api/providers/[id]/models/route-814b95c8fc310a6a.js +1 -0
  709. package/app/.next/static/chunks/app/api/providers/[id]/route-814b95c8fc310a6a.js +1 -0
  710. package/app/.next/static/chunks/app/api/providers/[id]/test/route-814b95c8fc310a6a.js +1 -0
  711. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-814b95c8fc310a6a.js +1 -0
  712. package/app/.next/static/chunks/app/api/providers/client/route-814b95c8fc310a6a.js +1 -0
  713. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-814b95c8fc310a6a.js +1 -0
  714. package/app/.next/static/chunks/app/api/providers/route-814b95c8fc310a6a.js +1 -0
  715. package/app/.next/static/chunks/app/api/providers/suggested-models/route-814b95c8fc310a6a.js +1 -0
  716. package/app/.next/static/chunks/app/api/providers/test-batch/route-814b95c8fc310a6a.js +1 -0
  717. package/app/.next/static/chunks/app/api/providers/validate/route-814b95c8fc310a6a.js +1 -0
  718. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-814b95c8fc310a6a.js +1 -0
  719. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-814b95c8fc310a6a.js +1 -0
  720. package/app/.next/static/chunks/app/api/proxy-pools/route-814b95c8fc310a6a.js +1 -0
  721. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-814b95c8fc310a6a.js +1 -0
  722. package/app/.next/static/chunks/app/api/settings/database/route-814b95c8fc310a6a.js +1 -0
  723. package/app/.next/static/chunks/app/api/settings/proxy-test/route-814b95c8fc310a6a.js +1 -0
  724. package/app/.next/static/chunks/app/api/settings/require-login/route-814b95c8fc310a6a.js +1 -0
  725. package/app/.next/static/chunks/app/api/settings/route-814b95c8fc310a6a.js +1 -0
  726. package/app/.next/static/chunks/app/api/shutdown/route-814b95c8fc310a6a.js +1 -0
  727. package/app/.next/static/chunks/app/api/startup-notices/route-814b95c8fc310a6a.js +1 -0
  728. package/app/.next/static/chunks/app/api/tags/route-814b95c8fc310a6a.js +1 -0
  729. package/app/.next/static/chunks/app/api/translator/console-logs/route-814b95c8fc310a6a.js +1 -0
  730. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-814b95c8fc310a6a.js +1 -0
  731. package/app/.next/static/chunks/app/api/translator/load/route-814b95c8fc310a6a.js +1 -0
  732. package/app/.next/static/chunks/app/api/translator/save/route-814b95c8fc310a6a.js +1 -0
  733. package/app/.next/static/chunks/app/api/translator/send/route-814b95c8fc310a6a.js +1 -0
  734. package/app/.next/static/chunks/app/api/translator/translate/route-814b95c8fc310a6a.js +1 -0
  735. package/app/.next/static/chunks/app/api/tunnel/disable/route-814b95c8fc310a6a.js +1 -0
  736. package/app/.next/static/chunks/app/api/tunnel/enable/route-814b95c8fc310a6a.js +1 -0
  737. package/app/.next/static/chunks/app/api/tunnel/status/route-814b95c8fc310a6a.js +1 -0
  738. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-814b95c8fc310a6a.js +1 -0
  739. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-814b95c8fc310a6a.js +1 -0
  740. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-814b95c8fc310a6a.js +1 -0
  741. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-814b95c8fc310a6a.js +1 -0
  742. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-814b95c8fc310a6a.js +1 -0
  743. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-814b95c8fc310a6a.js +1 -0
  744. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-814b95c8fc310a6a.js +1 -0
  745. package/app/.next/static/chunks/app/api/usage/api-keys/route-814b95c8fc310a6a.js +1 -0
  746. package/app/.next/static/chunks/app/api/usage/chart/route-814b95c8fc310a6a.js +1 -0
  747. package/app/.next/static/chunks/app/api/usage/history/route-814b95c8fc310a6a.js +1 -0
  748. package/app/.next/static/chunks/app/api/usage/logs/route-814b95c8fc310a6a.js +1 -0
  749. package/app/.next/static/chunks/app/api/usage/providers/route-814b95c8fc310a6a.js +1 -0
  750. package/app/.next/static/chunks/app/api/usage/request-details/route-814b95c8fc310a6a.js +1 -0
  751. package/app/.next/static/chunks/app/api/usage/request-logs/route-814b95c8fc310a6a.js +1 -0
  752. package/app/.next/static/chunks/app/api/usage/stats/route-814b95c8fc310a6a.js +1 -0
  753. package/app/.next/static/chunks/app/api/usage/stream/route-814b95c8fc310a6a.js +1 -0
  754. package/app/.next/static/chunks/app/api/users/[id]/route-814b95c8fc310a6a.js +1 -0
  755. package/app/.next/static/chunks/app/api/users/route-814b95c8fc310a6a.js +1 -0
  756. package/app/.next/static/chunks/app/api/v1/api/chat/route-814b95c8fc310a6a.js +1 -0
  757. package/app/.next/static/chunks/app/api/v1/audio/speech/route-814b95c8fc310a6a.js +1 -0
  758. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-814b95c8fc310a6a.js +1 -0
  759. package/app/.next/static/chunks/app/api/v1/audio/voices/route-814b95c8fc310a6a.js +1 -0
  760. package/app/.next/static/chunks/app/api/v1/chat/completions/route-814b95c8fc310a6a.js +1 -0
  761. package/app/.next/static/chunks/app/api/v1/embeddings/route-814b95c8fc310a6a.js +1 -0
  762. package/app/.next/static/chunks/app/api/v1/images/generations/route-814b95c8fc310a6a.js +1 -0
  763. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-814b95c8fc310a6a.js +1 -0
  764. package/app/.next/static/chunks/app/api/v1/messages/route-814b95c8fc310a6a.js +1 -0
  765. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-814b95c8fc310a6a.js +1 -0
  766. package/app/.next/static/chunks/app/api/v1/models/info/route-814b95c8fc310a6a.js +1 -0
  767. package/app/.next/static/chunks/app/api/v1/models/route-814b95c8fc310a6a.js +1 -0
  768. package/app/.next/static/chunks/app/api/v1/responses/compact/route-814b95c8fc310a6a.js +1 -0
  769. package/app/.next/static/chunks/app/api/v1/responses/route-814b95c8fc310a6a.js +1 -0
  770. package/app/.next/static/chunks/app/api/v1/route-814b95c8fc310a6a.js +1 -0
  771. package/app/.next/static/chunks/app/api/v1/search/route-814b95c8fc310a6a.js +1 -0
  772. package/app/.next/static/chunks/app/api/v1/web/fetch/route-814b95c8fc310a6a.js +1 -0
  773. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-814b95c8fc310a6a.js +1 -0
  774. package/app/.next/static/chunks/app/api/v1beta/models/route-814b95c8fc310a6a.js +1 -0
  775. package/app/.next/static/chunks/app/api/version/route-814b95c8fc310a6a.js +1 -0
  776. package/app/.next/static/chunks/app/api/version/shutdown/route-814b95c8fc310a6a.js +1 -0
  777. package/app/.next/static/chunks/app/api/version/update/route-814b95c8fc310a6a.js +1 -0
  778. package/app/.next/static/chunks/app/callback/{page-0b64ce6d90bfa697.js → page-97a750f0d51c3dbe.js} +1 -1
  779. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-9d24273d41fadd28.js +1 -0
  780. package/app/.next/static/chunks/app/landing/{page-370c3195c36d6e66.js → page-bf42a9c80c1e6776.js} +1 -1
  781. package/app/.next/static/chunks/app/layout-2f20e93bb64f203d.js +1 -0
  782. package/app/.next/static/chunks/app/login/page-ef8d8c379c2ef99b.js +1 -0
  783. package/app/.next/static/chunks/app/manifest.webmanifest/route-814b95c8fc310a6a.js +1 -0
  784. package/app/.next/static/chunks/app/page-814b95c8fc310a6a.js +1 -0
  785. package/app/.next/static/chunks/main-app-d5f2701c08554961.js +1 -0
  786. package/app/.next/static/chunks/{main-2237af167d2c1c35.js → main-b8d198db3858ff3e.js} +3 -3
  787. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-814b95c8fc310a6a.js +1 -0
  788. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-814b95c8fc310a6a.js +1 -0
  789. package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-8d51a00b6c966622.js +1 -0
  790. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-814b95c8fc310a6a.js +1 -0
  791. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-814b95c8fc310a6a.js +1 -0
  792. package/app/.next/static/chunks/{webpack-786de0e184ffd859.js → webpack-b9b0d264958323b9.js} +1 -1
  793. package/app/.next/static/css/402ee8646e1afa89.css +1 -0
  794. package/app/.next/static/css/fe3b2b4e527f4e99.css +1 -0
  795. package/app/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  796. package/app/node_modules/sql.js/dist/sql-wasm.js +185 -0
  797. package/app/node_modules/sql.js/dist/sql-wasm.wasm +0 -0
  798. package/app/node_modules/sql.js/package.json +58 -0
  799. package/app/package.json +5 -1
  800. package/app/public/i18n/literals/ar.json +176 -173
  801. package/app/public/i18n/literals/bn.json +176 -173
  802. package/app/public/i18n/literals/cs.json +176 -173
  803. package/app/public/i18n/literals/da.json +176 -173
  804. package/app/public/i18n/literals/de.json +176 -173
  805. package/app/public/i18n/literals/el.json +176 -173
  806. package/app/public/i18n/literals/es.json +176 -173
  807. package/app/public/i18n/literals/fi.json +176 -173
  808. package/app/public/i18n/literals/fr.json +176 -173
  809. package/app/public/i18n/literals/he.json +176 -173
  810. package/app/public/i18n/literals/hi.json +176 -173
  811. package/app/public/i18n/literals/hu.json +176 -173
  812. package/app/public/i18n/literals/id.json +176 -173
  813. package/app/public/i18n/literals/it.json +176 -173
  814. package/app/public/i18n/literals/ja.json +176 -173
  815. package/app/public/i18n/literals/ko.json +176 -173
  816. package/app/public/i18n/literals/nl.json +176 -173
  817. package/app/public/i18n/literals/no.json +176 -173
  818. package/app/public/i18n/literals/pl.json +176 -173
  819. package/app/public/i18n/literals/pt-BR.json +176 -173
  820. package/app/public/i18n/literals/pt-PT.json +176 -173
  821. package/app/public/i18n/literals/ro.json +176 -173
  822. package/app/public/i18n/literals/ru.json +176 -173
  823. package/app/public/i18n/literals/sv.json +176 -173
  824. package/app/public/i18n/literals/th.json +176 -173
  825. package/app/public/i18n/literals/tl.json +176 -173
  826. package/app/public/i18n/literals/tr.json +176 -173
  827. package/app/public/i18n/literals/uk.json +176 -173
  828. package/app/public/i18n/literals/ur.json +176 -173
  829. package/app/public/i18n/literals/vi.json +176 -173
  830. package/app/public/i18n/literals/zh-CN.json +356 -359
  831. package/app/public/i18n/literals/zh-TW.json +184 -181
  832. package/app/public/providers/amp.png +0 -0
  833. package/app/public/providers/deepseek-tui.png +0 -0
  834. package/app/public/providers/jcode.png +0 -0
  835. package/app/public/providers/xiaomi-tokenplan.png +0 -0
  836. package/app/server.js +1 -1
  837. package/app/src/lib/db/migrate.js +56 -18
  838. package/app/src/mitm/config.js +16 -1
  839. package/app/src/mitm/handlers/antigravity.js +2 -1
  840. package/app/src/mitm/handlers/base.js +4 -1
  841. package/app/src/mitm/handlers/kiro.js +3 -1
  842. package/app/src/mitm/logger.js +11 -1
  843. package/app/src/mitm/server.js +18 -15
  844. package/hooks/postinstall.js +113 -22
  845. package/package.json +1 -1
  846. package/app/.next/server/app/api/cloud/auth/route.js +0 -1
  847. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +0 -1
  848. package/app/.next/server/app/api/cloud/credentials/update/route.js +0 -1
  849. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +0 -1
  850. package/app/.next/server/app/api/cloud/model/resolve/route.js +0 -1
  851. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +0 -1
  852. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +0 -1
  853. package/app/.next/server/app/api/cloud/models/alias/route.js +0 -1
  854. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +0 -1
  855. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +0 -1
  856. package/app/.next/server/chunks/1500.js +0 -1
  857. package/app/.next/server/chunks/2343.js +0 -1
  858. package/app/.next/server/chunks/3855.js +0 -1
  859. package/app/.next/server/chunks/4126.js +0 -1
  860. package/app/.next/server/chunks/4922.js +0 -9
  861. package/app/.next/server/chunks/5434.js +0 -1
  862. package/app/.next/server/chunks/5627.js +0 -17
  863. package/app/.next/server/chunks/702.js +0 -1
  864. package/app/.next/server/chunks/723.js +0 -44
  865. package/app/.next/server/chunks/8407.js +0 -3
  866. package/app/.next/server/chunks/9460.js +0 -1
  867. package/app/.next/static/chunks/1321-b764e2be7fc92cc1.js +0 -1
  868. package/app/.next/static/chunks/5095-ca2b12905f37ff4d.js +0 -1
  869. package/app/.next/static/chunks/5497-83030cc3d92a3519.js +0 -7
  870. package/app/.next/static/chunks/5769-77fa1ce7edb6f970.js +0 -3
  871. package/app/.next/static/chunks/5964-08d6048e026d4245.js +0 -44
  872. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/keys/page-c74a5ba01f1699c5.js +0 -1
  873. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1a36c238dc35c08e.js +0 -1
  874. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-f0bae00ac45dd4b0.js +0 -1
  875. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-d3de2fdaf4bf9b1e.js +0 -1
  876. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-73601a7b09338418.js +0 -59
  877. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-dcb9c64e0d95cee2.js +0 -1
  878. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-63735cb68f56f3b8.js +0 -1
  879. package/app/.next/static/chunks/app/(dashboard)/dashboard/network-analysis/page-9c41fc55ad37021e.js +0 -1
  880. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-5a350e79586a5c80.js +0 -1
  881. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-4c8ad9c53c665fe6.js +0 -1
  882. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-a2ab26878f90c869.js +0 -1
  883. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-67d99d453bfd8665.js +0 -4
  884. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/page-6dd35c79bb83388b.js +0 -1
  885. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-1172e1764d69e954.js +0 -1
  886. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-2e9ac7094c9d8bae.js +0 -1
  887. package/app/.next/static/chunks/app/(dashboard)/dashboard/user/page-86f6c9456e2e37bf.js +0 -4
  888. package/app/.next/static/chunks/app/_global-error/page-1172e1764d69e954.js +0 -1
  889. package/app/.next/static/chunks/app/_not-found/page-8fcd6ba05909a2de.js +0 -1
  890. package/app/.next/static/chunks/app/api/auth/login/route-1172e1764d69e954.js +0 -1
  891. package/app/.next/static/chunks/app/api/auth/logout/route-1172e1764d69e954.js +0 -1
  892. package/app/.next/static/chunks/app/api/auth/me/route-1172e1764d69e954.js +0 -1
  893. package/app/.next/static/chunks/app/api/auth/oidc/callback/route-1172e1764d69e954.js +0 -1
  894. package/app/.next/static/chunks/app/api/auth/oidc/start/route-1172e1764d69e954.js +0 -1
  895. package/app/.next/static/chunks/app/api/auth/oidc/test/route-1172e1764d69e954.js +0 -1
  896. package/app/.next/static/chunks/app/api/auth/status/route-1172e1764d69e954.js +0 -1
  897. package/app/.next/static/chunks/app/api/cli-tools/all-statuses/route-1172e1764d69e954.js +0 -1
  898. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-1172e1764d69e954.js +0 -1
  899. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/inject-auth/route-1172e1764d69e954.js +0 -1
  900. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/restart/route-1172e1764d69e954.js +0 -1
  901. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-1172e1764d69e954.js +0 -1
  902. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/test/route-1172e1764d69e954.js +0 -1
  903. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-1172e1764d69e954.js +0 -1
  904. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-1172e1764d69e954.js +0 -1
  905. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-1172e1764d69e954.js +0 -1
  906. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-1172e1764d69e954.js +0 -1
  907. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-1172e1764d69e954.js +0 -1
  908. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-1172e1764d69e954.js +0 -1
  909. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-1172e1764d69e954.js +0 -1
  910. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-1172e1764d69e954.js +0 -1
  911. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-1172e1764d69e954.js +0 -1
  912. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-1172e1764d69e954.js +0 -1
  913. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-1172e1764d69e954.js +0 -1
  914. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-1172e1764d69e954.js +0 -1
  915. package/app/.next/static/chunks/app/api/cloud/auth/route-1172e1764d69e954.js +0 -1
  916. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-1172e1764d69e954.js +0 -1
  917. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-1172e1764d69e954.js +0 -1
  918. package/app/.next/static/chunks/app/api/cloud/models/alias/route-1172e1764d69e954.js +0 -1
  919. package/app/.next/static/chunks/app/api/combos/[id]/route-1172e1764d69e954.js +0 -1
  920. package/app/.next/static/chunks/app/api/combos/route-1172e1764d69e954.js +0 -1
  921. package/app/.next/static/chunks/app/api/health/route-1172e1764d69e954.js +0 -1
  922. package/app/.next/static/chunks/app/api/init/route-1172e1764d69e954.js +0 -1
  923. package/app/.next/static/chunks/app/api/keys/[id]/route-1172e1764d69e954.js +0 -1
  924. package/app/.next/static/chunks/app/api/keys/route-1172e1764d69e954.js +0 -1
  925. package/app/.next/static/chunks/app/api/locale/route-1172e1764d69e954.js +0 -1
  926. package/app/.next/static/chunks/app/api/mcp/[plugin]/message/route-1172e1764d69e954.js +0 -1
  927. package/app/.next/static/chunks/app/api/mcp/[plugin]/sse/route-1172e1764d69e954.js +0 -1
  928. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-1172e1764d69e954.js +0 -1
  929. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-1172e1764d69e954.js +0 -1
  930. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-1172e1764d69e954.js +0 -1
  931. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-1172e1764d69e954.js +0 -1
  932. package/app/.next/static/chunks/app/api/models/alias/route-1172e1764d69e954.js +0 -1
  933. package/app/.next/static/chunks/app/api/models/availability/route-1172e1764d69e954.js +0 -1
  934. package/app/.next/static/chunks/app/api/models/custom/route-1172e1764d69e954.js +0 -1
  935. package/app/.next/static/chunks/app/api/models/disabled/route-1172e1764d69e954.js +0 -1
  936. package/app/.next/static/chunks/app/api/models/route-1172e1764d69e954.js +0 -1
  937. package/app/.next/static/chunks/app/api/models/test/route-1172e1764d69e954.js +0 -1
  938. package/app/.next/static/chunks/app/api/network-analysis/route-1172e1764d69e954.js +0 -1
  939. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-1172e1764d69e954.js +0 -1
  940. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-1172e1764d69e954.js +0 -1
  941. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-1172e1764d69e954.js +0 -1
  942. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-1172e1764d69e954.js +0 -1
  943. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-1172e1764d69e954.js +0 -1
  944. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-1172e1764d69e954.js +0 -1
  945. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-1172e1764d69e954.js +0 -1
  946. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-1172e1764d69e954.js +0 -1
  947. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-1172e1764d69e954.js +0 -1
  948. package/app/.next/static/chunks/app/api/pricing/route-1172e1764d69e954.js +0 -1
  949. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-1172e1764d69e954.js +0 -1
  950. package/app/.next/static/chunks/app/api/provider-nodes/route-1172e1764d69e954.js +0 -1
  951. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-1172e1764d69e954.js +0 -1
  952. package/app/.next/static/chunks/app/api/providers/[id]/models/route-1172e1764d69e954.js +0 -1
  953. package/app/.next/static/chunks/app/api/providers/[id]/route-1172e1764d69e954.js +0 -1
  954. package/app/.next/static/chunks/app/api/providers/[id]/test/route-1172e1764d69e954.js +0 -1
  955. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-1172e1764d69e954.js +0 -1
  956. package/app/.next/static/chunks/app/api/providers/client/route-1172e1764d69e954.js +0 -1
  957. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-1172e1764d69e954.js +0 -1
  958. package/app/.next/static/chunks/app/api/providers/route-1172e1764d69e954.js +0 -1
  959. package/app/.next/static/chunks/app/api/providers/suggested-models/route-1172e1764d69e954.js +0 -1
  960. package/app/.next/static/chunks/app/api/providers/test-batch/route-1172e1764d69e954.js +0 -1
  961. package/app/.next/static/chunks/app/api/providers/validate/route-1172e1764d69e954.js +0 -1
  962. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-1172e1764d69e954.js +0 -1
  963. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-1172e1764d69e954.js +0 -1
  964. package/app/.next/static/chunks/app/api/proxy-pools/route-1172e1764d69e954.js +0 -1
  965. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-1172e1764d69e954.js +0 -1
  966. package/app/.next/static/chunks/app/api/settings/database/route-1172e1764d69e954.js +0 -1
  967. package/app/.next/static/chunks/app/api/settings/proxy-test/route-1172e1764d69e954.js +0 -1
  968. package/app/.next/static/chunks/app/api/settings/require-login/route-1172e1764d69e954.js +0 -1
  969. package/app/.next/static/chunks/app/api/settings/route-1172e1764d69e954.js +0 -1
  970. package/app/.next/static/chunks/app/api/shutdown/route-1172e1764d69e954.js +0 -1
  971. package/app/.next/static/chunks/app/api/tags/route-1172e1764d69e954.js +0 -1
  972. package/app/.next/static/chunks/app/api/translator/console-logs/route-1172e1764d69e954.js +0 -1
  973. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-1172e1764d69e954.js +0 -1
  974. package/app/.next/static/chunks/app/api/translator/load/route-1172e1764d69e954.js +0 -1
  975. package/app/.next/static/chunks/app/api/translator/save/route-1172e1764d69e954.js +0 -1
  976. package/app/.next/static/chunks/app/api/translator/send/route-1172e1764d69e954.js +0 -1
  977. package/app/.next/static/chunks/app/api/translator/translate/route-1172e1764d69e954.js +0 -1
  978. package/app/.next/static/chunks/app/api/tunnel/disable/route-1172e1764d69e954.js +0 -1
  979. package/app/.next/static/chunks/app/api/tunnel/enable/route-1172e1764d69e954.js +0 -1
  980. package/app/.next/static/chunks/app/api/tunnel/status/route-1172e1764d69e954.js +0 -1
  981. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-1172e1764d69e954.js +0 -1
  982. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-1172e1764d69e954.js +0 -1
  983. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-1172e1764d69e954.js +0 -1
  984. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-1172e1764d69e954.js +0 -1
  985. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-1172e1764d69e954.js +0 -1
  986. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-1172e1764d69e954.js +0 -1
  987. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-1172e1764d69e954.js +0 -1
  988. package/app/.next/static/chunks/app/api/usage/api-keys/route-1172e1764d69e954.js +0 -1
  989. package/app/.next/static/chunks/app/api/usage/chart/route-1172e1764d69e954.js +0 -1
  990. package/app/.next/static/chunks/app/api/usage/history/route-1172e1764d69e954.js +0 -1
  991. package/app/.next/static/chunks/app/api/usage/logs/route-1172e1764d69e954.js +0 -1
  992. package/app/.next/static/chunks/app/api/usage/providers/route-1172e1764d69e954.js +0 -1
  993. package/app/.next/static/chunks/app/api/usage/request-details/route-1172e1764d69e954.js +0 -1
  994. package/app/.next/static/chunks/app/api/usage/request-logs/route-1172e1764d69e954.js +0 -1
  995. package/app/.next/static/chunks/app/api/usage/stats/route-1172e1764d69e954.js +0 -1
  996. package/app/.next/static/chunks/app/api/usage/stream/route-1172e1764d69e954.js +0 -1
  997. package/app/.next/static/chunks/app/api/users/[id]/route-1172e1764d69e954.js +0 -1
  998. package/app/.next/static/chunks/app/api/users/route-1172e1764d69e954.js +0 -1
  999. package/app/.next/static/chunks/app/api/v1/api/chat/route-1172e1764d69e954.js +0 -1
  1000. package/app/.next/static/chunks/app/api/v1/audio/speech/route-1172e1764d69e954.js +0 -1
  1001. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-1172e1764d69e954.js +0 -1
  1002. package/app/.next/static/chunks/app/api/v1/audio/voices/route-1172e1764d69e954.js +0 -1
  1003. package/app/.next/static/chunks/app/api/v1/chat/completions/route-1172e1764d69e954.js +0 -1
  1004. package/app/.next/static/chunks/app/api/v1/embeddings/route-1172e1764d69e954.js +0 -1
  1005. package/app/.next/static/chunks/app/api/v1/images/generations/route-1172e1764d69e954.js +0 -1
  1006. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-1172e1764d69e954.js +0 -1
  1007. package/app/.next/static/chunks/app/api/v1/messages/route-1172e1764d69e954.js +0 -1
  1008. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-1172e1764d69e954.js +0 -1
  1009. package/app/.next/static/chunks/app/api/v1/models/info/route-1172e1764d69e954.js +0 -1
  1010. package/app/.next/static/chunks/app/api/v1/models/route-1172e1764d69e954.js +0 -1
  1011. package/app/.next/static/chunks/app/api/v1/responses/compact/route-1172e1764d69e954.js +0 -1
  1012. package/app/.next/static/chunks/app/api/v1/responses/route-1172e1764d69e954.js +0 -1
  1013. package/app/.next/static/chunks/app/api/v1/route-1172e1764d69e954.js +0 -1
  1014. package/app/.next/static/chunks/app/api/v1/search/route-1172e1764d69e954.js +0 -1
  1015. package/app/.next/static/chunks/app/api/v1/web/fetch/route-1172e1764d69e954.js +0 -1
  1016. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-1172e1764d69e954.js +0 -1
  1017. package/app/.next/static/chunks/app/api/v1beta/models/route-1172e1764d69e954.js +0 -1
  1018. package/app/.next/static/chunks/app/api/version/route-1172e1764d69e954.js +0 -1
  1019. package/app/.next/static/chunks/app/api/version/shutdown/route-1172e1764d69e954.js +0 -1
  1020. package/app/.next/static/chunks/app/api/version/update/route-1172e1764d69e954.js +0 -1
  1021. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-0b53c6deac19b9be.js +0 -1
  1022. package/app/.next/static/chunks/app/layout-55318fbfdf7dfacb.js +0 -1
  1023. package/app/.next/static/chunks/app/login/page-65d3f9612064353f.js +0 -1
  1024. package/app/.next/static/chunks/app/manifest.webmanifest/route-1172e1764d69e954.js +0 -1
  1025. package/app/.next/static/chunks/app/page-1172e1764d69e954.js +0 -1
  1026. package/app/.next/static/chunks/main-app-5fb630e627076bfd.js +0 -1
  1027. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-1172e1764d69e954.js +0 -1
  1028. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-1172e1764d69e954.js +0 -1
  1029. package/app/.next/static/chunks/next/dist/client/components/builtin/global-error-8c0dda4490abacd4.js +0 -1
  1030. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-1172e1764d69e954.js +0 -1
  1031. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-1172e1764d69e954.js +0 -1
  1032. package/app/.next/static/css/16878fc1d2cbb11a.css +0 -1
  1033. package/app/.next/static/css/2e1b7d528c228ec3.css +0 -1
  1034. package/app/.next/static/foKo1xDQER7YWTSg2B-qB/_buildManifest.js +0 -1
  1035. package/app/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
  1036. package/app/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
  1037. package/app/.next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
  1038. package/app/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
  1039. package/app/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
  1040. package/app/.next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
  1041. package/app/.next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
  1042. /package/app/.next/static/{foKo1xDQER7YWTSg2B-qB → Q5oB2dEL7XeWBhjwqT_vo}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- exports.id=1500,exports.ids=[1500],exports.modules={962:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/src/shared/components/McpMarketplaceModal.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/mac/Documents/9router/src/shared/components/McpMarketplaceModal.js","default")},2422:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/UsageStats.js","default")},3080:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/OAuthModal.js","default")},5843:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/NoAuthProxyCard.js","default")},7290:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Card.js","default")},10079:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Modal.js","ConfirmModal")},14239:(a,b,c)=>{Promise.resolve().then(c.bind(c,18200)),Promise.resolve().then(c.bind(c,26288)),Promise.resolve().then(c.bind(c,70061)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,33811)),Promise.resolve().then(c.bind(c,20493)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,70139)),Promise.resolve().then(c.bind(c,49123)),Promise.resolve().then(c.bind(c,64148)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,29354)),Promise.resolve().then(c.bind(c,80342)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,45205)),Promise.resolve().then(c.bind(c,64420)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,962)),Promise.resolve().then(c.bind(c,10079)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,29674)),Promise.resolve().then(c.bind(c,5843)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,81923)),Promise.resolve().then(c.bind(c,19083)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,18421)),Promise.resolve().then(c.bind(c,2422)),Promise.resolve().then(c.bind(c,76978))},14285:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/KiroOAuthWrapper.js","default")},18200:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/AddCustomEmbeddingModal.js","default")},18421:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Tooltip.js","default")},19083:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/RequestLogger.js","default")},20493:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/ComboFormModal.js","default")},26288:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/src/shared/components/AddCustomImageModal.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/mac/Documents/9router/src/shared/components/AddCustomImageModal.js","default")},26866:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Sidebar.js","default")},29354:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/HeaderMenu.js","default")},29674:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/NineRemoteButton.js","default")},30508:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>k});var d=c(5735),e=c(65573),f=c(69614);c(45512),c(71230),c(83784),c(7290),c(10079),c(92082),c(70061),c(33893),c(70092),c(40515),c(89886),c(26866),c(92669),c(49123),c(3080),c(94582),c(70603),c(20493),c(962),c(2422),c(45205),c(29674),c(29354),c(33811),c(19083),c(82448),c(14285),c(87228),c(40167),c(80342),c(64148),c(70139),c(18200),c(26288),c(5843),c(54065),c(18421),c(81923);var g=c(61780);c(64420);var h=c(76978);let i=new TextEncoder().encode(process.env.JWT_SECRET||"openrouterx-default-secret-change-me");async function j(){try{let a=await (0,e.UL)(),b=a.get("auth_token")?.value;if(!b)return null;let{payload:c}=await (0,f.V)(b,i);return{role:c.role||null,userId:c.userId||null,displayName:c.displayName||null}}catch{return null}}async function k({children:a}){let b=await j();return(0,d.jsx)(h.UserRoleProvider,{role:b?.role,userId:b?.userId,displayName:b?.displayName,children:(0,d.jsx)(g.default,{children:a})})}},33811:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/ChangelogModal.js","default")},33893:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Badge.js","default")},40167:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/CursorAuthModal.js","default")},40515:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/ThemeToggle.js","default")},45205:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/LanguageSwitcher.js","default")},45512:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Button.js","default")},49123:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Footer.js","default")},51191:(a,b,c)=>{Promise.resolve().then(c.bind(c,67738)),Promise.resolve().then(c.bind(c,31402)),Promise.resolve().then(c.bind(c,25919)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,11229)),Promise.resolve().then(c.bind(c,62727)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,51585)),Promise.resolve().then(c.bind(c,48781)),Promise.resolve().then(c.bind(c,43182)),Promise.resolve().then(c.bind(c,86739)),Promise.resolve().then(c.bind(c,3236)),Promise.resolve().then(c.bind(c,79488)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,86209)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,267)),Promise.resolve().then(c.bind(c,53838)),Promise.resolve().then(c.bind(c,85306)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,20084)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,83352)),Promise.resolve().then(c.bind(c,23048)),Promise.resolve().then(c.bind(c,50585)),Promise.resolve().then(c.bind(c,79346)),Promise.resolve().then(c.bind(c,11633)),Promise.resolve().then(c.bind(c,91809)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,4770)),Promise.resolve().then(c.bind(c,42196)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,32971)),Promise.resolve().then(c.bind(c,28403)),Promise.resolve().then(c.bind(c,37900))},54065:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/SegmentedControl.js","default")},61780:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/layouts/DashboardLayout.js","default")},64148:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/GitLabAuthModal.js","default")},64420:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/layouts/AuthLayout.js","default")},70061:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Avatar.js","default")},70092:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Toggle.js","default")},70139:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/EditConnectionModal.js","default")},70603:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/ManualConfigModal.js","default")},71230:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Input.js","default")},76978:(a,b,c)=>{"use strict";c.d(b,{UserRoleProvider:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call UserRoleContext() from the server but UserRoleContext 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/mac/Documents/9router/src/shared/components/UserRoleProvider.js","UserRoleContext");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call UserRoleProvider() from the server but UserRoleProvider 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/mac/Documents/9router/src/shared/components/UserRoleProvider.js","UserRoleProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call useUserRole() from the server but useUserRole 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/mac/Documents/9router/src/shared/components/UserRoleProvider.js","useUserRole"),(0,d.registerClientReference)(function(){throw Error("Attempted to call useIsSuperAdmin() from the server but useIsSuperAdmin 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/mac/Documents/9router/src/shared/components/UserRoleProvider.js","useIsSuperAdmin")},80342:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/IFlowCookieModal.js","default")},81923:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/ProviderInfoCard.js","default")},82448:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/KiroAuthModal.js","default")},83784:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Select.js","default")},87228:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/KiroSocialOAuthModal.js","default")},92082:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(77943);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/mac/Documents/9router/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/mac/Documents/9router/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/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Loading.js","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Loading.js","default")},92669:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/Header.js","default")},94582:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/mac/Documents/9router/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/mac/Documents/9router/src/shared/components/ModelSelectModal.js","default")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2343,exports.ids=[2343],exports.modules={2574:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>p,OPTIONS:()=>o,buildModelsList:()=>n});var d=c(81329),e=c(75681),f=c(89718),g=c(9132),h=c(38775);let i=/[-_][0-9a-f]{8,}$/i,j={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function k(a){return a?.type&&j[a.type]||"llm"}async function l(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 m(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 n(a,b=null){let c=b?await (0,g.RG)(b):null,j=[];try{j=(j=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive),c&&(j=(0,g.Mv)(j,c))}catch(a){console.log("Could not fetch providers, returning all models")}let o=[];try{o=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let p=[];try{p=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let q={};try{q=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let r=new Map;for(let a of j)r.has(a.provider)||r.set(a.provider,a);let s=[],t=Math.floor(Date.now()/1e3);for(let b of o){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;if(c){let a=!0;for(let d of b.models||[]){let b=await (0,h.mA)(d);if(!b?.provider||!(0,g.iI)(c,b.provider)){a=!1;break}}if(!a)continue}let d={id:b.name,object:"model",created:t,owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(d.kind=b.kind),s.push(d)}if(0===j.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[e,f]of Object.entries(d.vq)){let d=b[e]||e;if((!c||(0,g.iI)(c,d))&&m(d,a))for(let b of f)a.includes(k(b))&&s.push({id:`${e}/${b.id}`,object:"model",created:t,owned_by:e})}for(let b of p){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let d=b.providerAlias;if(!d)continue;let e=String(b.id).trim();if(e){if(c){let a=await (0,h.mA)(`${d}/${e}`);if(!a?.provider||!(0,g.iI)(c,a.provider))continue}s.push({id:`${d}/${e}`,object:"model",created:t,owned_by:d})}}}else for(let[b,f]of r.entries()){if(c&&!(0,g.iI)(c,b)||!m(b,a))continue;let h=d.Xg[b]||b,j=(f?.providerSpecificData?.prefix||(0,e.wG)(b)||h).trim(),n=d.vq[h]||[],o=f?.providerSpecificData?.enabledModels,r=Array.isArray(o)&&o.length>0,u=(0,e.mq)(b)||(0,e.gb)(b),v=new Map(n.map(a=>[a.id,k(a)])),w=r?Array.from(new Set(o.filter(a=>"string"==typeof a&&""!==a.trim()))):n.map(a=>a.id);for(let c of(u&&0===w.length&&!i.test(b)&&(w=await l(f)),Array.from(new Set([...w.map(a=>a.startsWith(`${j}/`)?a.slice(j.length+1):a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...p.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===h||c===j||c===b}).map(a=>String(a.id).trim()).filter(a=>""!==a),...Object.values(q||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${j}/`)||a.startsWith(`${h}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${j}/`)?a.slice(j.length+1):a.startsWith(`${h}/`)?a.slice(h.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())])))){let b=v.get(c)||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"}(c);a.includes(b)&&s.push({id:`${j}/${c}`,object:"model",created:t,owned_by:j})}let x=e.AI_PROVIDERS[b],y=[];if(a.includes("tts")&&Array.isArray(x?.ttsConfig?.models))for(let a of x.ttsConfig.models)a?.id&&y.push(a.id);if(a.includes("embedding")&&Array.isArray(x?.embeddingConfig?.models))for(let a of x.embeddingConfig.models)a?.id&&y.push(a.id);for(let a of y)s.push({id:`${j}/${a}`,object:"model",created:t,owned_by:j});a.includes("webSearch")&&x?.searchConfig&&s.push({id:`${j}/search`,object:"model",kind:"webSearch",created:t,owned_by:j}),a.includes("webFetch")&&x?.fetchConfig&&s.push({id:`${j}/fetch`,object:"model",kind:"webFetch",created:t,owned_by:j})}let u=[],v=new Set;for(let a of s)!a?.id||v.has(a.id)||(v.add(a.id),u.push(a));return u}async function o(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function p(a){try{let b=await (0,g.RG)(a),c=[];try{c=(c=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive),b&&(c=(0,g.Mv)(c,b))}catch(a){console.log("Could not fetch providers, returning all models")}let j=[];try{j=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let k=new Map;for(let a of c)k.has(a.provider)||k.set(a.provider,a);let m=[],n=Math.floor(Date.now()/1e3);for(let a of j){if(b){let c=!0;for(let d of a.models||[]){let a=await (0,h.mA)(d);if(!a?.provider||!(0,g.iI)(b,a.provider)){c=!1;break}}if(!c)continue}m.push({id:a.name,object:"model",created:n,owned_by:"combo",permission:[],root:a.name,parent:null})}if(0===c.length)for(let[a,c]of Object.entries(d.vq)){let e=Object.entries(d.Xg).find(([b,c])=>c===a)?.[0]||a;if((0,g.iI)(b,e))for(let b of c)m.push({id:`${a}/${b.id}`,object:"model",created:n,owned_by:a,permission:[],root:b.id,parent:null})}else for(let[a,c]of k.entries()){if(!(0,g.iI)(b,a))continue;let f=d.Xg[a]||a,h=(c?.providerSpecificData?.prefix||(0,e.wG)(a)||f).trim(),j=d.vq[f]||[],k=c?.providerSpecificData?.enabledModels,o=Array.isArray(k)&&k.length>0,p=(0,e.mq)(a)||(0,e.gb)(a),q=o?Array.from(new Set(k.filter(a=>"string"==typeof a&&""!==a.trim()))):j.map(a=>a.id);for(let b of(p&&0===q.length&&!i.test(a)&&(q=await l(c)),q.map(b=>b.startsWith(`${h}/`)?b.slice(h.length+1):b.startsWith(`${f}/`)?b.slice(f.length+1):b.startsWith(`${a}/`)?b.slice(a.length+1):b).filter(a=>"string"==typeof a&&""!==a.trim())))m.push({id:`${h}/${b}`,object:"model",created:n,owned_by:h,permission:[],root:b,parent:null})}return Response.json({object:"list",data:m},{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})}}},49120:(a,b,c)=>{c.r(b),c.d(b,{APP_NAME:()=>j,DATA_DIR:()=>p,DB_FILE:()=>q,LEGACY_APP_NAME:()=>k,getDataDir:()=>o,getLegacyDataDir:()=>n,migrateLegacyDataFilesIfNeeded:()=>r});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="openrouterx",k="9router",l=["db.json","usage.json","log.txt","disabledModels.json","request-details.json"];function m(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}function n(){return m(k)}function o(){let a=process.env.DATA_DIR;if(!a)return m(j);try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable -> fallback ~/.${j}`),m(j);throw b}}let p=o(),q=g().join(p,"db.json");function r(){if(process.env.DATA_DIR)return!1;let a=n();if(a===p||!e().existsSync(a))return!1;let b=!1;for(let c of(e().existsSync(p)||e().mkdirSync(p,{recursive:!0}),l)){let d=g().join(a,c),f=g().join(p,c);e().existsSync(d)&&!e().existsSync(f)&&(e().copyFileSync(d,f),b=!0)}return b}r()},81329:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(44404);Object.entries(c(75681).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})))}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3855,exports.ids=[3855],exports.modules={3179:(a,b,c)=>{c.d(b,{Al:()=>A,Dd:()=>y,es:()=>E,fn:()=>F,nN:()=>H,ss:()=>G});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(55591),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(85567),n=c(49120);let o=g().join(n.DATA_DIR,"bin"),p="cloudflared",q="win32"===k().platform(),r=q?`${p}.exe`:p,s=g().join(o,r),t="http2",u=new Set(["http2","quic","auto"]),v={darwin:{x64:"cloudflared-darwin-amd64.tgz",arm64:"cloudflared-darwin-arm64.tgz"},win32:{x64:"cloudflared-windows-amd64.exe",ia32:"cloudflared-windows-386.exe",arm64:"cloudflared-windows-386.exe"},linux:{x64:"cloudflared-linux-amd64",arm64:"cloudflared-linux-arm64"}},w={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},x={downloading:!1,progress:0};function y(){return{downloading:x.downloading,progress:x.progress}}let z=null;async function A(){return z||(z=B().finally(()=>{z=null}))}async function B(){e().existsSync(o)||e().mkdirSync(o,{recursive:!0});let a=`${s}.tmp`;if(e().existsSync(a))try{e().unlinkSync(a)}catch{}if(e().existsSync(s))if(function(a){try{if(e().statSync(a).size<1048576)return!1;let b=e().openSync(a,"r"),c=Buffer.alloc(4);e().readSync(b,c,0,4,0),e().closeSync(b);let d=c.toString("hex");if(q)return d.startsWith("4d5a");if("darwin"===k().platform())return d.startsWith("cffaedfe")||d.startsWith("cefaedfe");return d.startsWith("7f454c46")}catch{return!1}}(s))return q||e().chmodSync(s,"755"),s;else console.log("[cloudflared] Invalid binary detected, re-downloading..."),e().unlinkSync(s);let b=function(){let a=k().platform(),b=k().arch(),c=v[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||w[a];return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),c=b.endsWith(".tgz"),d=c?g().join(o,"cloudflared.tgz.tmp"):a;return await function a(b,c){return new Promise((d,f)=>{let g=e().createWriteStream(c);i().get(b,b=>{if([301,302,303,307,308].includes(b.statusCode)){g.close(),e().unlinkSync(c),a(b.headers.location,c).then(d).catch(f);return}if(200!==b.statusCode){g.close(),e().unlinkSync(c),f(Error(`Download failed with status ${b.statusCode}`));return}let h=parseInt(b.headers["content-length"],10)||0,i=0;x.downloading=!0,x.progress=0,b.on("data",a=>{i+=a.length,h>0&&(x.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{x.downloading=!1,x.progress=100,g.close(()=>d(c))}),g.on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().existsSync(c)&&e().unlinkSync(c),f(a)})})}(b,d),c?((0,l.execSync)(`tar -xzf "${d}" -C "${o}"`,{stdio:"pipe",windowsHide:!0}),e().unlinkSync(d)):e().renameSync(d,s),q||e().chmodSync(s,"755"),s}let C=null,D=null;function E(a){D=a}async function F(a,b){let c=await A(),d=e().mkdtempSync(g().join(k().tmpdir(),"cloudflared-quick-")),f=g().join(d,"config.yml");e().writeFileSync(f,"# quick-tunnel config placeholder\n","utf8");let h=!1,i=()=>{if(!h){h=!0;try{e().rmSync(d,{recursive:!0,force:!0})}catch(a){}}},j=String(process.env.TUNNEL_TRANSPORT_PROTOCOL||process.env.CLOUDFLARED_PROTOCOL||t).trim().toLowerCase(),n=u.has(j)?j:t,o=(0,l.spawn)(c,["tunnel","--url",`http://127.0.0.1:${a}`,"--config",f,"--no-autoupdate"],{detached:!1,windowsHide:!0,cwd:k().tmpdir(),env:{...process.env,TUNNEL_TRANSPORT_PROTOCOL:n},stdio:["ignore","pipe","pipe"]});return C=o,(0,m.xS)(o.pid),new Promise((a,c)=>{let d=!1,e=setTimeout(()=>{d||(d=!0,i(),c(Error("Quick tunnel timed out")))},9e4),f=null,g=c=>{let g=function(a){let b=[];for(let c of a.matchAll(/https:\/\/([a-z0-9-]+)\.trycloudflare\.com/gi)){let a=c[1];"api"!==a&&b.push(`https://${a}.trycloudflare.com`)}return b.length?b[b.length-1]:null}(c.toString());if(g){if(!d){d=!0,f=g,clearTimeout(e),i(),console.log(`[Tunnel] cloudflared URL: ${g}`),a({child:o,tunnelUrl:g});return}g!==f&&(console.log(`[Tunnel] cloudflared URL changed: ${g}`),f=g,b&&b(g))}};o.stdout.on("data",g),o.stderr.on("data",g),o.on("error",a=>{d||(d=!0,clearTimeout(e),i(),c(a))}),o.on("exit",(a,b)=>{if(C=null,(0,m.r4)(),console.log(`[Tunnel] cloudflared exit code=${a} signal=${b}`),!d){d=!0,clearTimeout(e),i(),1===a?c(Error(`cloudflared exited with code ${a}. This often means: (1) the tunnel token is invalid or expired, (2) network connectivity issues, or (3) cloudflared cannot reach the local server.`)):2===a?c(Error(`cloudflared exited with code ${a}. Check that arguments are correct.`)):c(Error(`cloudflared exited with code ${a}`));return}D&&D(),i()})})}function G(a){if(C){try{C.kill()}catch(a){}C=null}let b=(0,m.Cr)();if(b){try{process.kill(b)}catch(a){}(0,m.r4)()}if(a)try{if(q){let b=`Get-CimInstance Win32_Process -Filter \\"Name='cloudflared.exe'\\" | Where-Object { $_.CommandLine -match ':${a}(\\D|$)' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;(0,l.execSync)(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${b}"`,{stdio:"ignore",windowsHide:!0})}else(0,l.execSync)(`pkill -f "cloudflared.*:${a}([^0-9]|$)" 2>/dev/null || true`,{stdio:"ignore",windowsHide:!0})}catch(a){}}function H(){let a=(0,m.Cr)();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}},47764:(a,b,c)=>{c.d(b,{DA:()=>h,Lh:()=>f,Ux:()=>d,cw:()=>g,rI:()=>i,t1:()=>e});let d={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3},e={host:"1.1.1.1",port:443,timeoutMs:3e3},f=18e4,g=2500,h=6e4,i=5e3},49204:(a,b,c)=>{c.d(b,{$c:()=>l,tm:()=>m,u7:()=>j});var d=c(91645),e=c.n(d),f=c(14985),g=c.n(f),h=c(47764);let i=new(g()).promises.Resolver;function j(){return new Promise(a=>{let b=new(e()).Socket,c=!1,d=d=>{if(!c){c=!0;try{b.destroy()}catch{}a(d)}};b.setTimeout(h.t1.timeoutMs),b.once("connect",()=>d(!0)),b.once("timeout",()=>d(!1)),b.once("error",()=>d(!1));try{b.connect(h.t1.port,h.t1.host)}catch{d(!1)}})}async function k(a,b){let c=a=>Promise.race([a(),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]).then(()=>!0).catch(()=>!1);return!!await c(()=>i.resolve4(a))||c(()=>g().promises.resolve4(a))}async function l(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await k(b,h.Ux.dnsTimeoutMs))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(h.Ux.fetchTimeoutMs)})).ok}catch{return!1}}async function m(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<h.Ux.timeoutMs;){if(b.cancelled)throw Error("cancelled");if(await l(a))return!0;await new Promise(a=>setTimeout(a,h.Ux.intervalMs))}throw Error(`Health check timeout after ${h.Ux.timeoutMs}ms`)}i.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"])},53855:(a,b,c)=>{c.d(b,{H4:()=>A,Jv:()=>x,Qn:()=>o,Rg:()=>w,cb:()=>v,mh:()=>y,oN:()=>p,rH:()=>z});var d=c(55511),e=c.n(d),f=c(85567),g=c(3179),h=c(12506),i=c(89718),j=c(96182),k=c(49204);(0,j.initDbHooks)(i.getSettings,i.Xx);let l=process.env.TUNNEL_WORKER_URL||"https://9router.com",m={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null},n={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function o(){return m}function p(){return n}let q={value:!1,url:null,fetchedAt:0,refreshing:!1},r={value:!1,url:null,fetchedAt:0,refreshing:!1};function s(a,b){return a.url!==b&&(a.value=!1,a.fetchedAt=0),Date.now()-a.fetchedAt>3e4&&function(a,b){if(!a.refreshing){if(!b){a.value=!1,a.url=null,a.fetchedAt=Date.now();return}a.refreshing=!0,(0,k.$c)(b).then(b=>{a.value=b}).catch(()=>{a.value=!1}).finally(()=>{a.url=b,a.fetchedAt=Date.now(),a.refreshing=!1})}}(a,b),a.value}async function t(a,b){await fetch(`${l}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function u(a,b){if(a.cancelled)throw Error(`${b} cancelled`)}async function v(a=20502){console.log(`[Tunnel] enable start (port=${a})`),m.cancelToken={cancelled:!1},m.activeLocalPort=a,m.spawnInProgress=!0;let b=m.cancelToken;try{if((0,g.nN)()){let a=(0,f.C7)();if(a?.tunnelUrl&&await (0,k.$c)(a.tunnelUrl)){let b=`https://r${a.shortId}.9router.com`;return console.log(`[Tunnel] already running, reuse: ${a.tunnelUrl}`),{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0}}}(0,g.ss)(a),console.log("[Tunnel] killed existing cloudflared"),u(b,"tunnel");let d=function(){try{let{machineIdSync:a}=c(19713),b=a();return e().createHash("sha256").update(b+"9router-tunnel-salt").digest("hex").substring(0,16)}catch(a){return e().randomUUID().replace(/-/g,"").substring(0,16)}}(),h=(0,f.C7)(),j=h?.shortId||(0,f.jd)(),l=async a=>{b.cancelled||(console.log(`[Tunnel] url updated: ${a}`),await t(j,a),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:a}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:a}))},{tunnelUrl:m}=await (0,g.fn)(a,l);console.log(`[Tunnel] spawned: ${m}`),u(b,"tunnel");let n=`https://r${j}.9router.com`;return await t(j,m),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:m}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:m}),console.log(`[Tunnel] registered shortId=${j} publicUrl=${n}`),await (0,k.tm)(m,b),console.log("[Tunnel] direct URL healthy"),await (0,k.tm)(n,b),console.log("[Tunnel] public URL healthy"),q.value=!0,q.url=m,q.fetchedAt=Date.now(),console.log("[Tunnel] enable success"),{success:!0,tunnelUrl:m,shortId:j,publicUrl:n}}catch(a){throw console.error(`[Tunnel] enable error: ${a.message}`),a}finally{m.spawnInProgress=!1}}async function w(){console.log("[Tunnel] disable"),m.cancelToken.cancelled=!0,(0,g.es)(null),(0,g.ss)(m.activeLocalPort);let a=(0,f.C7)();return a&&(0,f.LZ)({shortId:a.shortId,machineId:a.machineId,tunnelUrl:null}),await (0,i.Xx)({tunnelEnabled:!1,tunnelUrl:""}),q.value=!1,q.url=null,q.fetchedAt=Date.now(),{success:!0}}async function x(){let a=!0===(await (0,i.getSettings)()).tunnelEnabled,b=(0,f.C7)(),c=b?.shortId||"",d=c?`https://r${c}.9router.com`:"",e=b?.tunnelUrl||"",h=!!a&&(0,g.nN)(),j=!!a&&!!h&&s(q,e);return{enabled:a&&h,settingsEnabled:a,tunnelUrl:e,shortId:c,publicUrl:d,running:h,reachable:j}}async function y(a=20502){console.log(`[Tailscale] enable start (port=${a})`),n.cancelToken={cancelled:!1},n.activeLocalPort=a,n.spawnInProgress=!0;let b=n.cancelToken;try{let c,d=(0,j.getCachedPassword)()||await (0,j.loadEncryptedPassword)()||"";await (0,h.OZ)(d),console.log("[Tailscale] daemon ready"),u(b,"tailscale");let e=(0,f.C7)(),g=e?.shortId||(0,f.jd)(),l=(0,h.a$)();if(console.log(`[Tailscale] loggedIn=${l}`),!l){let a=await (0,h.c$)(g);if(a.authUrl)return console.log(`[Tailscale] needs login, authUrl=${a.authUrl}`),{success:!1,needsLogin:!0,authUrl:a.authUrl};console.log("[Tailscale] login resolved alreadyLoggedIn")}u(b,"tailscale"),(0,h.PZ)();try{console.log("[Tailscale] starting funnel"),c=await (0,h.LC)(a)}catch(a){if(console.error(`[Tailscale] funnel error: ${a.message}`),/NoState|unexpected state|not logged in|Logged ?out|NeedsLogin/i.test(a.message||"")){console.log("[Tailscale] retry via startLogin");let a=await (0,h.c$)(g);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}throw a}if(u(b,"tailscale"),c.funnelNotEnabled)return console.log(`[Tailscale] funnel not enabled, enableUrl=${c.enableUrl}`),{success:!1,funnelNotEnabled:!0,enableUrl:c.enableUrl};if(!(0,h.a$)()||!(0,h.hp)())return console.error("[Tailscale] strict probe failed (device removed?)"),(0,h.PZ)(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};await (0,i.Xx)({tailscaleEnabled:!0,tailscaleUrl:c.tunnelUrl}),console.log(`[Tailscale] funnel up: ${c.tunnelUrl}`);let m=new URL(c.tunnelUrl).hostname;await (0,h.S3)(m);let n=!1;try{await (0,k.tm)(c.tunnelUrl,b),n=!0}catch(a){if(!a.message.startsWith("Health check timeout"))throw a;console.warn("[Tailscale] health check timed out, will retry via watchdog")}return n&&(r.value=!0,r.url=c.tunnelUrl,r.fetchedAt=Date.now()),console.log(`[Tailscale] enable success (reachable=${n})`),{success:!0,tunnelUrl:c.tunnelUrl}}catch(a){throw console.error(`[Tailscale] enable error: ${a.message}`),a}finally{n.spawnInProgress=!1}}async function z(){return console.log("[Tailscale] disable"),n.cancelToken.cancelled=!0,(0,h.PZ)(),await (0,i.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),r.value=!1,r.url=null,r.fetchedAt=Date.now(),{success:!0}}async function A(){let a=await (0,i.getSettings)(),b=!0===a.tailscaleEnabled,c=a.tailscaleUrl||"",d=!!b&&(0,h.a$)(),e=!!d&&(0,h.Kp)(),f=!!b&&!!e&&s(r,c);return{enabled:b&&e,settingsEnabled:b,tunnelUrl:c,running:e,loggedIn:d,reachable:f}}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=4126,exports.ids=[4126],exports.modules={4126:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>B,GET:()=>y,POST:()=>A});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(68658),o=c(24424);let p=(0,g.promisify)(f.exec);async function q(a){let b=await (0,n.f1)(a);return b?{payload:b,response:null}:{payload:null,response:e.NextResponse.json({error:"Unauthorized"},{status:401})}}let r=()=>k().join(m().homedir(),".openclaw"),s=()=>k().join(r(),"openclaw.json"),t="openrouterx",u=/^openrouterx\//,v=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await p(a?"where openclaw":"which openclaw",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},w=async()=>{try{let a=s(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},x=async a=>{try{let b=k().join(a,"models.json"),c=await i().readFile(b,"utf-8"),d=JSON.parse(c),e=d?.providers?.[t]?.models;return e?.[0]?.id||null}catch{return null}};async function y(a){try{let{response:b}=await q(a);if(b)return b;if(!await v())return e.NextResponse.json({installed:!1,settings:null,message:"Open Claw CLI is not installed"});let c=await w(),d=c?.agents?.list||[],f=await Promise.all(d.map(async a=>{let b=a.agentDir?await x(a.agentDir):null;return{...a,currentModel:b}}));return e.NextResponse.json({installed:!0,settings:c,agents:f,hasOpenRouterX:!!c&&!!c.models&&!!c.models.providers&&!!c.models.providers[t],settingsPath:s()})}catch(a){return console.log("Error checking openclaw settings:",a),e.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}let z=async(a,b,c,d)=>{await i().mkdir(a,{recursive:!0});let e=k().join(a,"models.json"),f={};try{let a=await i().readFile(e,"utf-8");f=JSON.parse(a)}catch{}f.providers||(f.providers={}),f.providers[t]={baseUrl:c,apiKey:d||"your_api_key",api:"openai-completions",models:[{id:b,name:b.split("/").pop()||b}]},await i().writeFile(e,JSON.stringify(f,null,2))};async function A(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let{baseUrl:d,apiKey:f,model:g,agentModels:h={}}=await a.json();if(!d||!g)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let j=r(),k=s();await i().mkdir(j,{recursive:!0});let l={};try{let a=await i().readFile(k,"utf-8");l=JSON.parse(a)}catch{}l.agents||(l.agents={}),l.agents.defaults||(l.agents.defaults={}),l.agents.defaults.model||(l.agents.defaults.model={}),l.agents.defaults.models||(l.agents.defaults.models={}),l.models||(l.models={}),l.models.providers||(l.models.providers={});let m=d.endsWith("/v1")?d:`${d}/v1`,n=`${t}/${g}`;Object.keys(l.agents.defaults.models).filter(a=>u.test(a)).forEach(a=>{delete l.agents.defaults.models[a]}),l.agents.defaults.model.primary=n;let o=new Set([g]);return Object.values(h).forEach(a=>{a&&o.add(a)}),o.forEach(a=>{l.agents.defaults.models[`${t}/${a}`]={}}),l.agents.list&&(l.agents.list=l.agents.list.map(a=>{if(u.test(a.model||"")){let{model:b,...c}=a;return c}return a})),l.models.providers[t]={baseUrl:m,apiKey:f||"your_api_key",api:"openai-completions",models:[...o].map(a=>({id:a,name:a.split("/").pop()||a}))},l.agents.list&&(l.agents.list=l.agents.list.map(a=>{let b=h[a.id];return b?{...a,model:`${t}/${b}`}:a}),await Promise.all(l.agents.list.map(async a=>{if(!a.agentDir)return;let b=h[a.id];await z(a.agentDir,b||g,m,f)}))),await i().writeFile(k,JSON.stringify(l,null,2)),e.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:k})}catch(a){return console.log("Error updating openclaw settings:",a),e.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function B(a){try{let{payload:b,response:c}=await q(a);if(c)return c;if("super_admin"!==b.role)return e.NextResponse.json({error:"Forbidden"},{status:403});let d=s(),f={};try{let a=await i().readFile(d,"utf-8");f=JSON.parse(a)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}if(f.models&&f.models.providers&&(delete f.models.providers[t],0===Object.keys(f.models.providers).length&&delete f.models.providers),f.agents?.defaults?.models){for(let a of Object.keys(f.agents.defaults.models).filter(a=>u.test(a)))delete f.agents.defaults.models[a];0===Object.keys(f.agents.defaults.models).length&&delete f.agents.defaults.models}return u.test(f.agents?.defaults?.model?.primary||"")&&delete f.agents.defaults.model.primary,await i().writeFile(d,JSON.stringify(f,null,2)),e.NextResponse.json({success:!0,message:"OpenrouterX settings removed successfully"})}catch(a){return console.log("Error resetting openclaw settings:",a),e.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,o.D)([y,A,B]),(0,d.A)(y,"404e42d1c12fbd25b1c4a901274cd7ec7d8dbcfe34",null),(0,d.A)(A,"4036ee5d3ac666c3274badb5bcb9af2528fab8e4a9",null),(0,d.A)(B,"4051213b3a9cdfea8d6485cb34d96cbbb417787f79",null)},33792:(a,b,c)=>{c.d(b,{Dc:()=>i,OZ:()=>l,YK:()=>g,dY:()=>j,tm:()=>k});var d=c(86935),e=c(69614);let f=new TextEncoder().encode(process.env.JWT_SECRET||"openrouterx-default-secret-change-me");function g(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function h(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(f)}async function i(a){if(!a)return!1;try{return await (0,e.V)(a,f),!0}catch{return!1}}async function j(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,f);return b}catch{return null}}async function k(a,b,c={}){let d=await h(c);a.set("auth_token",d,{httpOnly:!0,secure:g(b),sameSite:"lax",path:"/"})}function l(a){a.delete("auth_token")}},54603:(a,b,c)=>{c.d(b,{Xj:()=>e});var d=c(19713);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}},68658:(a,b,c)=>{c.d(b,{f1:()=>e}),c(23211),c(89718);var d=c(33792);async function e(a){let b=a.cookies.get("auth_token")?.value;return(0,d.dY)(b)}c(54603)}};
@@ -1,9 +0,0 @@
1
- "use strict";exports.id=4922,exports.ids=[4922,9460],exports.modules={644:(a,b,c)=>{function d(a,b=null){if(null==a)return b;if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}function e(a){return JSON.stringify(a??null)}c.d(b,{q:()=>d,s:()=>e})},1129:(a,b,c)=>{c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
2
- VALUES(?, ?, ?, ?, ?, ?)
3
- ON CONFLICT(id) DO UPDATE SET
4
- type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},4922:(a,b,c)=>{c.d(b,{tm:()=>h,oF:()=>i,vF:()=>g});var d=c(36366);c(42655),c(5781),c(1129),c(74452),c(9460),c(97914);var e=c(644);let f="disabledModels";async function g(){let a=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[f]),b={};for(let c of a)b[c.key]=(0,e.q)(c.value,[]);return b}async function h(a,b){if(!a||!Array.isArray(b))return;let c=await (0,d.c)();c.transaction(()=>{let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[f,a]),g=[...new Set([...d&&(0,e.q)(d.value,[])||[],...b])];c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[f,a,(0,e.s)(g)])})}async function i(a,b){if(!a)return;let c=await (0,d.c)();c.transaction(()=>{if(!Array.isArray(b)||0===b.length)return void c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[f,a]);let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[f,a]),g=d&&(0,e.q)(d.value,[])||[],h=new Set(b),i=g.filter(a=>!h.has(a));0===i.length?c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[f,a]):c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[f,a,(0,e.s)(i)])})}var j=c(94735);c(62674),global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}}),global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0}),global._statsEmitter||(global._statsEmitter=new j.EventEmitter,global._statsEmitter.setMaxListeners(50)),global._pendingTimers||(global._pendingTimers={}),global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0}),global._pendingRequests,global._lastErrorProvider,global._pendingTimers,global._recentRing,global._connectionMapCache,global._statsEmitter;let k=null,l=0;async function m(){if(k&&Date.now()-l<5e3)return k;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,42655)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;k={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{k={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return l=Date.now(),k}let n=[],o=null,p=!1;function q(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function r(){if(!p&&0!==n.length){p=!0;try{for(;n.length>0;){let a=n.splice(0,n.length),b=await (0,d.c)(),c=await m();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:q(d.request,c.maxJsonSize),providerRequest:q(d.providerRequest,c.maxJsonSize),providerResponse:q(d.providerResponse,c.maxJsonSize),response:q(d.response,c.maxJsonSize)};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,e.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{p=!1}}}let s=async()=>{o&&(clearTimeout(o),o=null),n.length>0&&await r()};process.off("beforeExit",s),process.off("SIGINT",s),process.off("SIGTERM",s),process.off("exit",s),process.on("beforeExit",s),process.on("SIGINT",s),process.on("SIGTERM",s),process.on("exit",s)},5781:(a,b,c)=>{c.r(b),c.d(b,{cleanupProviderConnections:()=>r,createProviderConnection:()=>m,deleteProviderConnection:()=>o,deleteProviderConnectionsByProvider:()=>p,getProviderConnectionById:()=>k,getProviderConnections:()=>j,reorderProviderConnections:()=>q,updateProviderConnection:()=>n});var d=c(94755),e=c(36366),f=c(644);let g=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount"];function h(a){return a?{...(0,f.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function i(a,b){let c=function(a){let{id:b,provider:c,authType:d,name:e,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=a;return{id:b,provider:c,authType:d,name:e??null,email:g??null,priority:h??null,isActive:+(!1!==i),data:(0,f.s)(l),createdAt:j,updatedAt:k}}(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
5
- VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
6
- ON CONFLICT(id) DO UPDATE SET
7
- provider=excluded.provider, authType=excluded.authType, name=excluded.name,
8
- email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
9
- data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}async function j(a={}){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(h);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function k(a){return h((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function l(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(h);c.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)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function m(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{let e=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(h),j=null;if("oauth"===a.authType&&a.email?j=e.find(b=>"oauth"===b.authType&&b.email===a.email):"apikey"===a.authType&&a.name&&(j=e.find(b=>"apikey"===b.authType&&b.name===a.name)),j){let d={...j,...a,updatedAt:f};i(c,d),b=d;return}let k=a.name||null;k||"oauth"!==a.authType||(k=a.email||`Account ${e.length+1}`);let m=a.priority;m||(m=e.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let n={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:k,priority:m,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(n[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(n.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(n.email=a.email),i(c,n),l(c,a.provider),b=n}),b}async function n(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=h(e),g={...f,...b,updatedAt:new Date().toISOString()};i(d,g),void 0!==b.priority&&l(d,f.provider),c=g}),c}async function o(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),l(b,d.provider),c=!0)}),c}async function p(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n||0}async function q(a){let b=await (0,e.c)();b.transaction(()=>l(b,a))}async function r(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=h(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&i(a,e)}}),c}},9460:(a,b,c)=>{c.d(b,{getMitmAlias:()=>f}),c(36366);var d=c(22846);(0,d.U)("modelAliases"),(0,d.U)("customModels");let e=(0,d.U)("mitmAlias");async function f(a){return a?await e.get(a)||{}:await e.getAll()}},22846:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(36366),e=c(644);function f(a){return{async get(b,c=null){let f=(await (0,d.c)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.c)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.c)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},36366:(a,b,c)=>{c.d(b,{c:()=>k});var d=c(95658);global._dbAdapter||(global._dbAdapter={instance:null,initPromise:null,logged:!1});let e=global._dbAdapter;async function f(){if(!process.versions.bun)return null;try{let{createBunSqliteAdapter:a}=await c.e(4739).then(c.bind(c,24739));return await a(d.AL)}catch(a){return console.warn(`[DB] bun:sqlite unavailable: ${a.message}`),null}}async function g(){if(process.versions.bun)return null;try{let{createBetterSqliteAdapter:a}=await c.e(5258).then(c.bind(c,25258));return a(d.AL)}catch(a){return console.warn(`[DB] better-sqlite3 unavailable: ${a.message}`),null}}async function h(){if(process.versions.bun)return null;let[a,b]=process.versions.node.split(".").map(Number);if(a<22||22===a&&b<5)return null;try{let{createNodeSqliteAdapter:a}=await c.e(8520).then(c.bind(c,88520));return await a(d.AL)}catch(a){return console.warn(`[DB] node:sqlite unavailable: ${a.message}`),null}}async function i(){try{let{createSqlJsAdapter:a}=await c.e(3593).then(c.bind(c,53593));return await a(d.AL)}catch(a){return console.warn(`[DB] sql.js unavailable: ${a.message}`),null}}async function j(){(0,d.Jh)();let a=await f();if(a||(a=await g()),a||(a=await h()),a||(a=await i()),!a)throw Error("[DB] No SQLite driver available (bun/better/node/sql.js all failed)");e.logged||(console.log(`[DB] Driver: ${a.driver} | file: ${d.AL}`),e.logged=!0);let{runMigrationOnce:b}=await c.e(5217).then(c.bind(c,45217));return await b(a),a}async function k(){return e.instance?e.instance:(e.initPromise||(e.initPromise=j().then(a=>(e.instance=a,a))),e.initPromise)}},42655:(a,b,c)=>{c.d(b,{exportSettings:()=>i,getSettings:()=>h});var d=c(36366),e=c(644);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,authMode:"password",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",enableObservability:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20502",dnsToolEnabled:{},rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full"};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}async function h(){var a=await g();let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}async function i(){return await g()}},49120:(a,b,c)=>{c.r(b),c.d(b,{APP_NAME:()=>j,DATA_DIR:()=>p,DB_FILE:()=>q,LEGACY_APP_NAME:()=>k,getDataDir:()=>o,getLegacyDataDir:()=>n,migrateLegacyDataFilesIfNeeded:()=>r});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="openrouterx",k="9router",l=["db.json","usage.json","log.txt","disabledModels.json","request-details.json"];function m(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}function n(){return m(k)}function o(){let a=process.env.DATA_DIR;if(!a)return m(j);try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable -> fallback ~/.${j}`),m(j);throw b}}let p=o(),q=g().join(p,"db.json");function r(){if(process.env.DATA_DIR)return!1;let a=n();if(a===p||!e().existsSync(a))return!1;let b=!1;for(let c of(e().existsSync(p)||e().mkdirSync(p,{recursive:!0}),l)){let d=g().join(a,c),f=g().join(p,c);e().existsSync(d)&&!e().existsSync(f)&&(e().copyFileSync(d,f),b=!0)}return b}r()},62674:(a,b,c)=>{function d(a,b,c=null){let e=a.get("SELECT value FROM _meta WHERE key = ?",[b]);return e?e.value:c}function e(a,b,c){a.run("INSERT INTO _meta(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value",[b,String(c)])}c.d(b,{dy:()=>d,np:()=>e}),c(36366)},74452:(a,b,c)=>{c.r(b),c.d(b,{createApiKey:()=>i,deleteApiKey:()=>k,getApiKeyById:()=>h,getApiKeys:()=>g,updateApiKey:()=>j,validateApiKey:()=>l});var d=c(94755),e=c(36366);function f(a){return a?{id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt}:null}async function g(){return(await (0,e.c)()).all("SELECT * FROM apiKeys ORDER BY createdAt ASC").map(f)}async function h(a){return f((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE id = ?",[a]))}async function i(a,b){if(!b)throw Error("machineId is required");let f=await (0,e.c)(),{generateApiKeyWithMachine:g}=await c.e(6844).then(c.bind(c,86844)),h=g(b),i={id:(0,d.A)(),name:a,key:h.key,machineId:b,isActive:!0,createdAt:new Date().toISOString()};return f.run("INSERT INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[i.id,i.key,i.name,i.machineId,1,i.createdAt]),i}async function j(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM apiKeys WHERE id = ?",[a]);if(!e)return;let g={...f(e),...b};c.run("UPDATE apiKeys SET key = ?, name = ?, machineId = ?, isActive = ? WHERE id = ?",[g.key,g.name,g.machineId,+!!g.isActive,a]),d=g}),d}async function k(a){let b=(await (0,e.c)()).run("DELETE FROM apiKeys WHERE id = ?",[a]);return(b?.changes??0)>0}async function l(a){let b=(await (0,e.c)()).get("SELECT isActive FROM apiKeys WHERE key = ?",[a]);return!!b&&(1===b.isActive||!0===b.isActive)}},95658:(a,b,c)=>{c.d(b,{AL:()=>j,HG:()=>i,Jh:()=>m,KQ:()=>k,Or:()=>l});var d=c(76760),e=c.n(d),f=c(73024),g=c.n(f),h=c(49120);let i=e().join(h.DATA_DIR,"db"),j=e().join(i,"data.sqlite"),k=e().join(i,"backups"),l={main:e().join(h.DATA_DIR,"db.json"),usage:e().join(h.DATA_DIR,"usage.json"),disabled:e().join(h.DATA_DIR,"disabledModels.json"),details:e().join(h.DATA_DIR,"request-details.json")};function m(){for(let a of[h.DATA_DIR,i,k])g().existsSync(a)||g().mkdirSync(a,{recursive:!0})}},97914:(a,b,c)=>{c.d(b,{getPricingForModel:()=>f}),c(36366);let d=(0,c(22846).U)("pricing");async function e(){return await d.getAll()}async function f(a,b){if(!b)return null;let d=await e();if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:f}=await c.e(7341).then(c.bind(c,57341));return f(a,b)}}};
@@ -1 +0,0 @@
1
- exports.id=5434,exports.ids=[5434],exports.modules={3662:(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}]},41004:(a,b,c)=>{"use strict";c.d(b,{C8:()=>k,DR:()=>j,Uc:()=>g,cI:()=>i,eo:()=>h,gx:()=>d,v1:()=>e,xM:()=>f}),c(3662);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=18e4,g=64e3,h=32e3,i={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function j(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 k=["Please write a 5-10 word title for the following conversation:"]},78335:()=>{},81006:(a,b,c)=>{"use strict";c.d(b,{Op:()=>N,Nq:()=>E,PE:()=>P});var d=c(4573),e=c(43659),f=c(41004);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(5681).then(c.bind(c,75681)),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")}}},96487:()=>{}};
@@ -1,17 +0,0 @@
1
- "use strict";exports.id=5627,exports.ids=[5627],exports.modules={17511:a=>{a.exports={TARGET_HOSTS:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","daily-cloudcode-pa.sandbox.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","api2.cursor.sh","openrouter.ai","api.openrouter.ai"],URL_PATTERNS:{antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"],openrouter:["/models","/api/v1/models","/api/v1/key","/api/v1/auth/key","/chat/completions","/v1/chat/completions","/api/v1/chat/completions","/v1/messages","/responses","/api/v1/responses"]},MODEL_SYNONYMS:{antigravity:{"gemini-default":"gemini-3-flash","gemini-3-flash-agent":"gemini-3-flash","gemini-3.1-flash-lite":"gemini-3-flash",tab_flash_lite_preview:"gemini-3-flash","gemini-2.5-flash-lite":"gemini-3-flash","gemini-2.5-flash":"gemini-3-flash",__defaults:{"gemini-3.1-pro-high":"gemini-3.1-pro-high","gemini-3.1-pro-low":"gemini-3.1-pro-low","gemini-3-flash-agent":"cx/gpt-5.5","gemini-3-flash":"cx/gpt-5.5","claude-sonnet-4-6":"claude-sonnet-4-6","claude-opus-4-6-thinking":"claude-opus-4-6-thinking","gpt-oss-120b-medium":"gpt-oss-120b-medium"}}},LOG_BLACKLIST_URL_PARTS:["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"],getToolForHost:function(a){let b=(a||"").split(":")[0];return"api.individual.githubcopilot.com"===b?"copilot":"daily-cloudcode-pa.googleapis.com"===b||"cloudcode-pa.googleapis.com"===b||"daily-cloudcode-pa.sandbox.googleapis.com"===b?"antigravity":"q.us-east-1.amazonaws.com"===b?"kiro":"api2.cursor.sh"===b?"cursor":"openrouter.ai"===b||"api.openrouter.ai"===b?"openrouter":null}}},49120:(a,b,c)=>{c.r(b),c.d(b,{APP_NAME:()=>j,DATA_DIR:()=>p,DB_FILE:()=>q,LEGACY_APP_NAME:()=>k,getDataDir:()=>o,getLegacyDataDir:()=>n,migrateLegacyDataFilesIfNeeded:()=>r});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="openrouterx",k="9router",l=["db.json","usage.json","log.txt","disabledModels.json","request-details.json"];function m(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}function n(){return m(k)}function o(){let a=process.env.DATA_DIR;if(!a)return m(j);try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable -> fallback ~/.${j}`),m(j);throw b}}let p=o(),q=g().join(p,"db.json");function r(){if(process.env.DATA_DIR)return!1;let a=n();if(a===p||!e().existsSync(a))return!1;let b=!1;for(let c of(e().existsSync(p)||e().mkdirSync(p,{recursive:!0}),l)){let d=g().join(a,c),f=g().join(p,c);e().existsSync(d)&&!e().existsSync(f)&&(e().copyFileSync(d,f),b=!0)}return b}r()},64809:(a,b,c)=>{let{exec:d,execSync:e}=c(79646),f="win32"===process.platform;function g(){if(f)try{return e("net session >nul 2>&1",{windowsHide:!0,stdio:"ignore"}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function h(a){return`'${String(a).replace(/'/g,"''")}'`}a.exports={isAdmin:g,runElevatedPowerShell:function(a){if(!f)return Promise.reject(Error("Windows-only"));let b=Buffer.from(a,"utf16le").toString("base64");if(g())return new Promise((a,c)=>{d(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${b}`,{windowsHide:!0},(b,d,e)=>{b?c(Error(e||b.message)):a(d)})});let c=`
2
- $proc = Start-Process powershell -ArgumentList @(
3
- '-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass',
4
- '-WindowStyle','Hidden','-EncodedCommand','${b}'
5
- ) -Verb RunAs -Wait -PassThru -WindowStyle Hidden;
6
- if ($proc.ExitCode -ne 0) { throw "Elevated command exited with code $($proc.ExitCode)" }
7
- `;return new Promise((a,b)=>{d(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command ${h(c)}`,{windowsHide:!0},(c,d,e)=>{if(c){let a=e||c.message;a.includes("canceled by the user")||a.includes("operation was canceled")?b(Error("User canceled UAC prompt")):b(Error(a))}else a(d)})})},quotePs:h}},66936:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(29021),h=c(33873);c(21820);let{log:i,err:j}=c(87777),{TOOL_HOSTS:k}=c(85341),{runElevatedPowerShell:l,isAdmin:m}=c(64809);function n(a,b,c){let d=`${a}.openrouterx.new`,e=`${a}.openrouterx.bak`;try{g.writeFileSync(d,c,"utf8");try{g.unlinkSync(e)}catch{}g.renameSync(a,e);try{g.renameSync(d,a)}catch(c){try{g.renameSync(e,a)}catch{g.writeFileSync(a,b,"utf8")}throw c}try{g.unlinkSync(e)}catch{}}finally{try{g.unlinkSync(d)}catch{}}}let o="win32"===process.platform,p="darwin"===process.platform,q=o?h.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"):"/etc/hosts",r="com.apple/openrouterx-mitm-antigravity",s=["216.239.32.223","216.239.34.223","216.239.36.223","216.239.38.223"],t=["142.250.","142.251.","172.217."],u=o?["127.0.0.1"]:["127.0.0.1","::1"];function v(a=process.env){return"1"===String(a.OPENROUTERX_MITM_ANTIGRAVITY_PF||"").trim()}function w(a,b,c){return String(a||"").split(/\r?\n/).some(a=>(function(a,b,c){let d=String(a||"").trim();if(!d||d.startsWith("#"))return!1;let e=d.split(/\s+/);return e[0]===b&&e.slice(1).includes(c)})(a,c,b))}function x(a,b,c=u){return c.every(c=>w(a,b,c))}function y(a,b,c=u){return b.flatMap(b=>c.filter(c=>!w(a,b,c)).map(a=>`${a} ${b}`))}function z(){if(o)return!1;try{return f("command -v sudo",{stdio:"ignore",windowsHide:!0}),!0}catch{return!1}}function A(){if(o||!z())return!0;try{return f("sudo -n true",{stdio:"ignore",windowsHide:!0}),!0}catch{return!1}}function B(a,b){return new Promise((c,d)=>{let f=z(),g=f?e("sudo",["-S","sh","-c",a],{stdio:["pipe","pipe","pipe"],windowsHide:!0}):e("sh",["-c",a],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),h="",i="";g.stdout.on("data",a=>{h+=a}),g.stderr.on("data",a=>{i+=a}),g.on("close",a=>{0===a?c(h):d(Error(i||`Exit code ${a}`))}),f&&(g.stdin.write(`${b}
8
- `),g.stdin.end())})}async function C(a){o||(p?await B("dscacheutil -flushcache && killall -HUP mDNSResponder",a):await B("resolvectl flush-caches 2>/dev/null || true",a))}function D(a){return`'${String(a).replace(/'/g,"'\\''")}'`}async function E(){return[...s]}async function F(a){if(!p)return;if(!v()){await G(a),i("\uD83C\uDF10 PF antigravity: skipped (hosts-only mode; set OPENROUTERX_MITM_ANTIGRAVITY_PF=1 to opt in)");return}let b=await E();if(0===b.length)return;await H(a,b);let c=function(){if(!p)return"";try{return f("route -n get default 2>/dev/null | awk '/interface:/{print $2; exit}'",{encoding:"utf8",windowsHide:!0}).trim()||"en0"}catch{return"en0"}}(),d=`table <openrouterx_antigravity> persist { ${b.join(", ")} }
9
- rdr pass on ${c} inet proto tcp from any to <openrouterx_antigravity> port 443 -> 127.0.0.1 port 443
10
- `,e=`pfctl -E >/dev/null 2>&1 || true && printf '%s' ${D(d)} | pfctl -a ${D(r)} -f -`;await B(e,a),i(`🌐 PF antigravity: ✅ redirect active on ${c} (${b.length} IPs)`)}async function G(a){if(!p)return;let b=[...new Set([...await E(),...(function(){if(!p)return[];try{return[...f("ifconfig lo0",{encoding:"utf8",windowsHide:!0}).matchAll(/^\s+inet\s+(\d+\.\d+\.\d+\.\d+)\s+/gm)].map(a=>a[1])}catch{return[]}})().filter(a=>t.some(b=>a.startsWith(b)))])];await B(`pfctl -a ${D(r)} -F all >/dev/null 2>&1 || true`,a),await I(a,b),i("\uD83C\uDF10 PF antigravity: ✅ redirect removed")}async function H(a,b){if(!p||!b.length)return;let c=b.map(a=>`ifconfig lo0 alias ${a}/32 2>/dev/null || true`);await B(c.join("; "),a),i(`🌐 lo0 antigravity: ✅ aliases active (${b.length} IPs)`)}async function I(a,b){if(!p||!b.length)return;let c=b.map(a=>`ifconfig lo0 -alias ${a} 2>/dev/null || true`);await B(c.join("; "),a)}async function J(a,b){"antigravity"===a&&await F(b)}async function K(a,b){"antigravity"===a&&await G(b)}function L(a=null){try{let b=g.readFileSync(q,"utf8");if(a)return x(b,a);return k.antigravity.every(a=>x(b,a))}catch{return!1}}async function M(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=g.readFileSync(q,"utf8"),e=y(d,c);if(0===e.length){i(`🌐 DNS ${a}: already active`),await J(a,b);return}try{if(o){let a=d.replace(/[\r\n\s]+$/g,""),b=e.join("\r\n"),c=`${a}\r
11
- ${b}\r
12
- `;n(q,d,c),await l("ipconfig /flushdns | Out-Null")}else{let a=d.replace(/[\r\n\s]+$/g,""),c=e.join("\n"),f=`${a}
13
- ${c}
14
- `.replace(/'/g,"'\\''");await B(`printf '%s' '${f}' | tee ${q} > /dev/null`,b),await C(b)}await J(a,b),i(`🌐 DNS ${a}: ✅ added ${e.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function N(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>L(a));if(0===d.length){i(`🌐 DNS ${a}: already inactive`),await K(a,b);return}try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await B(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await C(b)}await K(a,b),i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function O(a){for(let b of Object.keys(k))try{await N(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:M,removeDNSEntry:N,removeAllDNSEntries:O,removeAllDNSEntriesSync:function(){try{if(p){try{f(`pfctl -a ${r} -F all >/dev/null 2>&1 || true`,{stdio:"ignore"})}catch{}for(let a of s)try{f(`ifconfig lo0 -alias ${a} 2>/dev/null || true`,{stdio:"ignore"})}catch{}}if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:B,isSudoAvailable:z,canRunSudoWithoutPassword:A,isSudoPasswordRequired:function(){return!o&&z()&&!A()},checkDNSEntry:L,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>x(a,b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}},getMissingHostsEntries:y,hostHasRequiredLoopbacks:x,isMacAntigravityPfRedirectEnabled:v}},82193:(a,b,c)=>{c(29021);let d=c(33873),e=c(21820),f="openrouterx",g=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?d.join(process.env.APPDATA||d.join(e.homedir(),"AppData","Roaming"),f):d.join(e.homedir(),`.${f}`),h=d.join(g,"mitm");a.exports={DATA_DIR:g,MITM_DIR:h}},85341:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","daily-cloudcode-pa.sandbox.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"],openrouter:["openrouter.ai","api.openrouter.ai"]}}},87777:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(82193),{LOG_BLACKLIST_URL_PARTS:h}=c(17511);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=function(){let a=[e.join(g,"logs","mitm"),e.join(c(21820).tmpdir(),"openrouterx","logs","mitm")];for(let b of a)try{return d.existsSync(b)||d.mkdirSync(b,{recursive:!0}),b}catch{}return a[1]}(),k=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function l(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function m(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(m(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:a.headers,body:i??b.toString("utf8")},null,2)),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(m(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,n={},o=[];return{writeHeader:(a,b)=>{i=a,n=b||{}},writeChunk:a=>{null!=a&&o.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(o),b=n["content-encoding"]||n["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(k.test(c))return;let e={...n};delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i}
15
- HEADERS: ${JSON.stringify(e,null,2)}
16
- ---BODY---
17
- ${c}`;d.writeFileSync(h,g)}catch{}},file:h}}}}};