@yina-npm/openrouterx 0.4.20 → 0.4.21

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 (561) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +6 -3
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/routes-manifest.json +18 -0
  5. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -2
  6. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js.nft.json +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -2
  9. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js.nft.json +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  12. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  18. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  21. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
  27. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  33. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  57. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  60. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  69. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/user/page.js +3 -3
  72. package/app/.next/server/app/(dashboard)/dashboard/user/page.js.nft.json +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/_global-error/page.js +3 -3
  75. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/_global-error.html +1 -1
  77. package/app/.next/server/app/_global-error.rsc +1 -1
  78. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  80. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  81. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next/server/app/_not-found/page.js +2 -2
  85. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/_not-found.html +1 -1
  87. package/app/.next/server/app/_not-found.rsc +4 -4
  88. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  89. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  90. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  91. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  92. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  93. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/app/.next/server/app/api/auth/login/route.js +1 -1
  95. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  96. package/app/.next/server/app/api/auth/me/route.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  98. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  101. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  102. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -0
  103. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -0
  104. package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -0
  105. package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  106. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  107. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  108. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  109. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  110. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  111. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  112. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  113. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  114. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  115. package/app/.next/server/app/api/combos/route.js +1 -1
  116. package/app/.next/server/app/api/health/route.js +1 -1
  117. package/app/.next/server/app/api/init/route.js +1 -1
  118. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  119. package/app/.next/server/app/api/keys/route.js +1 -1
  120. package/app/.next/server/app/api/locale/route.js +1 -1
  121. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  122. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  123. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  124. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  125. package/app/.next/server/app/api/models/alias/route.js +1 -1
  126. package/app/.next/server/app/api/models/availability/route.js +1 -1
  127. package/app/.next/server/app/api/models/custom/route.js +1 -1
  128. package/app/.next/server/app/api/models/disabled/route.js +1 -1
  129. package/app/.next/server/app/api/models/route.js +1 -1
  130. package/app/.next/server/app/api/models/test/route.js +1 -1
  131. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  132. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  133. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  134. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  135. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  136. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  137. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  138. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  139. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  140. package/app/.next/server/app/api/pricing/route.js +1 -1
  141. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  142. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  143. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  144. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  145. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  146. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  147. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  148. package/app/.next/server/app/api/providers/client/route.js +1 -1
  149. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  150. package/app/.next/server/app/api/providers/route.js +1 -1
  151. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  152. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  153. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  154. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  155. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  156. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  157. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  158. package/app/.next/server/app/api/settings/database/route.js +1 -1
  159. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  160. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  161. package/app/.next/server/app/api/settings/route.js +1 -1
  162. package/app/.next/server/app/api/shutdown/route.js +1 -1
  163. package/app/.next/server/app/api/tags/route.js +1 -1
  164. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  165. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  166. package/app/.next/server/app/api/translator/load/route.js +1 -1
  167. package/app/.next/server/app/api/translator/save/route.js +1 -1
  168. package/app/.next/server/app/api/translator/send/route.js +1 -1
  169. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  170. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  171. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  172. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  173. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  174. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  175. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  176. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +3 -3
  177. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +1 -1
  178. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  179. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  180. package/app/.next/server/app/api/usage/api-keys/route.js +1 -1
  181. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  182. package/app/.next/server/app/api/usage/history/route.js +1 -1
  183. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  184. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  185. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  186. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  187. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  188. package/app/.next/server/app/api/usage/stream/route.js +2 -2
  189. package/app/.next/server/app/api/users/[id]/route.js +1 -1
  190. package/app/.next/server/app/api/users/route.js +1 -1
  191. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  192. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  193. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  194. package/app/.next/server/app/api/v1/audio/voices/route.js +1 -0
  195. package/app/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -0
  196. package/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -0
  197. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  198. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  199. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  200. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  201. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  202. package/app/.next/server/app/api/v1/models/[kind]/route.js +1 -1
  203. package/app/.next/server/app/api/v1/models/info/route.js +1 -0
  204. package/app/.next/server/app/api/v1/models/info/route.js.nft.json +1 -0
  205. package/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -0
  206. package/app/.next/server/app/api/v1/models/route.js +1 -1
  207. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  208. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  209. package/app/.next/server/app/api/v1/route.js +1 -1
  210. package/app/.next/server/app/api/v1/search/route.js +1 -1
  211. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  212. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  213. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  214. package/app/.next/server/app/api/version/route.js +1 -1
  215. package/app/.next/server/app/api/version/update/route.js +1 -1
  216. package/app/.next/server/app/callback/page.js +2 -2
  217. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/callback.html +1 -1
  219. package/app/.next/server/app/callback.rsc +4 -4
  220. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  221. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  222. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  223. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  224. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  225. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  226. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  227. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  228. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  229. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  230. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  231. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  233. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  234. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  235. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  236. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  237. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  238. package/app/.next/server/app/favicon.ico/route.js +1 -1
  239. package/app/.next/server/app/index.html +1 -1
  240. package/app/.next/server/app/index.rsc +4 -4
  241. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  242. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  243. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  244. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  245. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  246. package/app/.next/server/app/landing/page.js +2 -2
  247. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/landing.html +1 -1
  249. package/app/.next/server/app/landing.rsc +4 -4
  250. package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
  251. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  252. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  253. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  254. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  255. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  256. package/app/.next/server/app/login/page.js +2 -2
  257. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/login.html +1 -1
  259. package/app/.next/server/app/login.rsc +5 -5
  260. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  261. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  262. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  263. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  264. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  265. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  266. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  267. package/app/.next/server/app/page.js +2 -2
  268. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  269. package/app/.next/server/app-paths-manifest.json +6 -3
  270. package/app/.next/server/chunks/2343.js +1 -1
  271. package/app/.next/server/chunks/3855.js +1 -1
  272. package/app/.next/server/chunks/3913.js +1 -1
  273. package/app/.next/server/chunks/412.js +6 -6
  274. package/app/.next/server/chunks/4122.js +1 -1
  275. package/app/.next/server/chunks/4989.js +1 -1
  276. package/app/.next/server/chunks/5627.js +2 -2
  277. package/app/.next/server/chunks/5681.js +1 -1
  278. package/app/.next/server/chunks/6182.js +3 -3
  279. package/app/.next/server/chunks/6774.js +1 -0
  280. package/app/.next/server/chunks/7595.js +1 -1
  281. package/app/.next/server/chunks/7937.js +3 -3
  282. package/app/.next/server/chunks/9547.js +23 -0
  283. package/app/.next/server/middleware-build-manifest.js +1 -1
  284. package/app/.next/server/middleware.js +1 -1
  285. package/app/.next/server/pages/404.html +1 -1
  286. package/app/.next/server/pages/500.html +1 -1
  287. package/app/.next/server/server-reference-manifest.js +1 -1
  288. package/app/.next/server/server-reference-manifest.json +1 -1
  289. package/app/.next/static/2TCKT7FIN7PE7ZJ20oAeb/_buildManifest.js +1 -0
  290. package/app/.next/static/chunks/{1321-764b2073673fc333.js → 1321-b84130cd27e8b78c.js} +1 -1
  291. package/app/.next/static/chunks/1a258343-5938f676ed376386.js +1 -0
  292. package/app/.next/static/chunks/2336-5b3617dc05c223ff.js +23 -0
  293. package/app/.next/static/chunks/5497-a2d728c63029180e.js +7 -0
  294. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-ba226c8b3c01dd8d.js → page-bd677c182bc2aae9.js} +1 -1
  295. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-cee4e0a7455b73ca.js → page-32b908ea6b23f583.js} +1 -1
  296. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-28a10e3cb86b9581.js → page-82cfc464b5e01f4f.js} +2 -2
  297. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-99260106103e6a4e.js → page-4473f52ad379b661.js} +1 -1
  298. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-d1c369e2c3fb727b.js +1 -0
  299. package/app/.next/static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js +1 -0
  300. package/app/.next/static/chunks/app/_global-error/page-d1c369e2c3fb727b.js +1 -0
  301. package/app/.next/static/chunks/app/api/auth/login/route-d1c369e2c3fb727b.js +1 -0
  302. package/app/.next/static/chunks/app/api/auth/logout/route-d1c369e2c3fb727b.js +1 -0
  303. package/app/.next/static/chunks/app/api/auth/me/route-d1c369e2c3fb727b.js +1 -0
  304. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d1c369e2c3fb727b.js +1 -0
  305. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-d1c369e2c3fb727b.js +1 -0
  306. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-d1c369e2c3fb727b.js +1 -0
  307. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-d1c369e2c3fb727b.js +1 -0
  308. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-d1c369e2c3fb727b.js +1 -0
  309. package/app/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d1c369e2c3fb727b.js +1 -0
  310. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-d1c369e2c3fb727b.js +1 -0
  311. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-d1c369e2c3fb727b.js +1 -0
  312. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-d1c369e2c3fb727b.js +1 -0
  313. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-d1c369e2c3fb727b.js +1 -0
  314. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-d1c369e2c3fb727b.js +1 -0
  315. package/app/.next/static/chunks/app/api/cloud/auth/route-d1c369e2c3fb727b.js +1 -0
  316. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-d1c369e2c3fb727b.js +1 -0
  317. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-d1c369e2c3fb727b.js +1 -0
  318. package/app/.next/static/chunks/app/api/cloud/models/alias/route-d1c369e2c3fb727b.js +1 -0
  319. package/app/.next/static/chunks/app/api/combos/[id]/route-d1c369e2c3fb727b.js +1 -0
  320. package/app/.next/static/chunks/app/api/combos/route-d1c369e2c3fb727b.js +1 -0
  321. package/app/.next/static/chunks/app/api/health/route-d1c369e2c3fb727b.js +1 -0
  322. package/app/.next/static/chunks/app/api/init/route-d1c369e2c3fb727b.js +1 -0
  323. package/app/.next/static/chunks/app/api/keys/[id]/route-d1c369e2c3fb727b.js +1 -0
  324. package/app/.next/static/chunks/app/api/keys/route-d1c369e2c3fb727b.js +1 -0
  325. package/app/.next/static/chunks/app/api/locale/route-d1c369e2c3fb727b.js +1 -0
  326. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d1c369e2c3fb727b.js +1 -0
  327. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d1c369e2c3fb727b.js +1 -0
  328. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-d1c369e2c3fb727b.js +1 -0
  329. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-d1c369e2c3fb727b.js +1 -0
  330. package/app/.next/static/chunks/app/api/models/alias/route-d1c369e2c3fb727b.js +1 -0
  331. package/app/.next/static/chunks/app/api/models/availability/route-d1c369e2c3fb727b.js +1 -0
  332. package/app/.next/static/chunks/app/api/models/custom/route-d1c369e2c3fb727b.js +1 -0
  333. package/app/.next/static/chunks/app/api/models/disabled/route-d1c369e2c3fb727b.js +1 -0
  334. package/app/.next/static/chunks/app/api/models/route-d1c369e2c3fb727b.js +1 -0
  335. package/app/.next/static/chunks/app/api/models/test/route-d1c369e2c3fb727b.js +1 -0
  336. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-d1c369e2c3fb727b.js +1 -0
  337. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-d1c369e2c3fb727b.js +1 -0
  338. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-d1c369e2c3fb727b.js +1 -0
  339. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-d1c369e2c3fb727b.js +1 -0
  340. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-d1c369e2c3fb727b.js +1 -0
  341. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-d1c369e2c3fb727b.js +1 -0
  342. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-d1c369e2c3fb727b.js +1 -0
  343. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-d1c369e2c3fb727b.js +1 -0
  344. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-d1c369e2c3fb727b.js +1 -0
  345. package/app/.next/static/chunks/app/api/pricing/route-d1c369e2c3fb727b.js +1 -0
  346. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-d1c369e2c3fb727b.js +1 -0
  347. package/app/.next/static/chunks/app/api/provider-nodes/route-d1c369e2c3fb727b.js +1 -0
  348. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-d1c369e2c3fb727b.js +1 -0
  349. package/app/.next/static/chunks/app/api/providers/[id]/models/route-d1c369e2c3fb727b.js +1 -0
  350. package/app/.next/static/chunks/app/api/providers/[id]/route-d1c369e2c3fb727b.js +1 -0
  351. package/app/.next/static/chunks/app/api/providers/[id]/test/route-d1c369e2c3fb727b.js +1 -0
  352. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-d1c369e2c3fb727b.js +1 -0
  353. package/app/.next/static/chunks/app/api/providers/client/route-d1c369e2c3fb727b.js +1 -0
  354. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-d1c369e2c3fb727b.js +1 -0
  355. package/app/.next/static/chunks/app/api/providers/route-d1c369e2c3fb727b.js +1 -0
  356. package/app/.next/static/chunks/app/api/providers/suggested-models/route-d1c369e2c3fb727b.js +1 -0
  357. package/app/.next/static/chunks/app/api/providers/test-batch/route-d1c369e2c3fb727b.js +1 -0
  358. package/app/.next/static/chunks/app/api/providers/validate/route-d1c369e2c3fb727b.js +1 -0
  359. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-d1c369e2c3fb727b.js +1 -0
  360. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-d1c369e2c3fb727b.js +1 -0
  361. package/app/.next/static/chunks/app/api/proxy-pools/route-d1c369e2c3fb727b.js +1 -0
  362. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-d1c369e2c3fb727b.js +1 -0
  363. package/app/.next/static/chunks/app/api/settings/database/route-d1c369e2c3fb727b.js +1 -0
  364. package/app/.next/static/chunks/app/api/settings/proxy-test/route-d1c369e2c3fb727b.js +1 -0
  365. package/app/.next/static/chunks/app/api/settings/require-login/route-d1c369e2c3fb727b.js +1 -0
  366. package/app/.next/static/chunks/app/api/settings/route-d1c369e2c3fb727b.js +1 -0
  367. package/app/.next/static/chunks/app/api/shutdown/route-d1c369e2c3fb727b.js +1 -0
  368. package/app/.next/static/chunks/app/api/tags/route-d1c369e2c3fb727b.js +1 -0
  369. package/app/.next/static/chunks/app/api/translator/console-logs/route-d1c369e2c3fb727b.js +1 -0
  370. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-d1c369e2c3fb727b.js +1 -0
  371. package/app/.next/static/chunks/app/api/translator/load/route-d1c369e2c3fb727b.js +1 -0
  372. package/app/.next/static/chunks/app/api/translator/save/route-d1c369e2c3fb727b.js +1 -0
  373. package/app/.next/static/chunks/app/api/translator/send/route-d1c369e2c3fb727b.js +1 -0
  374. package/app/.next/static/chunks/app/api/translator/translate/route-d1c369e2c3fb727b.js +1 -0
  375. package/app/.next/static/chunks/app/api/tunnel/disable/route-d1c369e2c3fb727b.js +1 -0
  376. package/app/.next/static/chunks/app/api/tunnel/enable/route-d1c369e2c3fb727b.js +1 -0
  377. package/app/.next/static/chunks/app/api/tunnel/status/route-d1c369e2c3fb727b.js +1 -0
  378. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-d1c369e2c3fb727b.js +1 -0
  379. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-d1c369e2c3fb727b.js +1 -0
  380. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-d1c369e2c3fb727b.js +1 -0
  381. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-d1c369e2c3fb727b.js +1 -0
  382. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-d1c369e2c3fb727b.js +1 -0
  383. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-d1c369e2c3fb727b.js +1 -0
  384. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-d1c369e2c3fb727b.js +1 -0
  385. package/app/.next/static/chunks/app/api/usage/api-keys/route-d1c369e2c3fb727b.js +1 -0
  386. package/app/.next/static/chunks/app/api/usage/chart/route-d1c369e2c3fb727b.js +1 -0
  387. package/app/.next/static/chunks/app/api/usage/history/route-d1c369e2c3fb727b.js +1 -0
  388. package/app/.next/static/chunks/app/api/usage/logs/route-d1c369e2c3fb727b.js +1 -0
  389. package/app/.next/static/chunks/app/api/usage/providers/route-d1c369e2c3fb727b.js +1 -0
  390. package/app/.next/static/chunks/app/api/usage/request-details/route-d1c369e2c3fb727b.js +1 -0
  391. package/app/.next/static/chunks/app/api/usage/request-logs/route-d1c369e2c3fb727b.js +1 -0
  392. package/app/.next/static/chunks/app/api/usage/stats/route-d1c369e2c3fb727b.js +1 -0
  393. package/app/.next/static/chunks/app/api/usage/stream/route-d1c369e2c3fb727b.js +1 -0
  394. package/app/.next/static/chunks/app/api/users/[id]/route-d1c369e2c3fb727b.js +1 -0
  395. package/app/.next/static/chunks/app/api/users/route-d1c369e2c3fb727b.js +1 -0
  396. package/app/.next/static/chunks/app/api/v1/api/chat/route-d1c369e2c3fb727b.js +1 -0
  397. package/app/.next/static/chunks/app/api/v1/audio/speech/route-d1c369e2c3fb727b.js +1 -0
  398. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-d1c369e2c3fb727b.js +1 -0
  399. package/app/.next/static/chunks/app/api/v1/audio/voices/route-d1c369e2c3fb727b.js +1 -0
  400. package/app/.next/static/chunks/app/api/v1/chat/completions/route-d1c369e2c3fb727b.js +1 -0
  401. package/app/.next/static/chunks/app/api/v1/embeddings/route-d1c369e2c3fb727b.js +1 -0
  402. package/app/.next/static/chunks/app/api/v1/images/generations/route-d1c369e2c3fb727b.js +1 -0
  403. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-d1c369e2c3fb727b.js +1 -0
  404. package/app/.next/static/chunks/app/api/v1/messages/route-d1c369e2c3fb727b.js +1 -0
  405. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-d1c369e2c3fb727b.js +1 -0
  406. package/app/.next/static/chunks/app/api/v1/models/info/route-d1c369e2c3fb727b.js +1 -0
  407. package/app/.next/static/chunks/app/api/v1/models/route-d1c369e2c3fb727b.js +1 -0
  408. package/app/.next/static/chunks/app/api/v1/responses/compact/route-d1c369e2c3fb727b.js +1 -0
  409. package/app/.next/static/chunks/app/api/v1/responses/route-d1c369e2c3fb727b.js +1 -0
  410. package/app/.next/static/chunks/app/api/v1/route-d1c369e2c3fb727b.js +1 -0
  411. package/app/.next/static/chunks/app/api/v1/search/route-d1c369e2c3fb727b.js +1 -0
  412. package/app/.next/static/chunks/app/api/v1/web/fetch/route-d1c369e2c3fb727b.js +1 -0
  413. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-d1c369e2c3fb727b.js +1 -0
  414. package/app/.next/static/chunks/app/api/v1beta/models/route-d1c369e2c3fb727b.js +1 -0
  415. package/app/.next/static/chunks/app/api/version/route-d1c369e2c3fb727b.js +1 -0
  416. package/app/.next/static/chunks/app/api/version/update/route-d1c369e2c3fb727b.js +1 -0
  417. package/app/.next/static/chunks/app/manifest.webmanifest/route-d1c369e2c3fb727b.js +1 -0
  418. package/app/.next/static/chunks/app/page-d1c369e2c3fb727b.js +1 -0
  419. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-d1c369e2c3fb727b.js +1 -0
  420. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-d1c369e2c3fb727b.js +1 -0
  421. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-d1c369e2c3fb727b.js +1 -0
  422. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-d1c369e2c3fb727b.js +1 -0
  423. package/app/.next/static/css/48caf49054c81db9.css +1 -0
  424. package/app/package.json +1 -1
  425. package/app/src/lib/updater/updater.js +6 -2
  426. package/app/src/mitm/dns/dnsConfig.js +1 -1
  427. package/app/src/mitm/handlers/kiro.js +385 -6
  428. package/app/src/mitm/manager.js +12 -3
  429. package/app/src/mitm/paths.js +7 -3
  430. package/cli.js +4 -3
  431. package/package.json +1 -1
  432. package/app/.next/server/chunks/212.js +0 -1
  433. package/app/.next/server/chunks/2238.js +0 -23
  434. package/app/.next/static/V2uXdl1SgLstSOcrQU5I9/_buildManifest.js +0 -1
  435. package/app/.next/static/chunks/1a258343-4878413fb430abba.js +0 -1
  436. package/app/.next/static/chunks/4295-99e90be71bb8d50c.js +0 -23
  437. package/app/.next/static/chunks/5497-27af7f632895d68e.js +0 -7
  438. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-badb7034e478a358.js +0 -1
  439. package/app/.next/static/chunks/app/(dashboard)/layout-edd266e7233eb314.js +0 -1
  440. package/app/.next/static/chunks/app/_global-error/page-badb7034e478a358.js +0 -1
  441. package/app/.next/static/chunks/app/api/auth/login/route-badb7034e478a358.js +0 -1
  442. package/app/.next/static/chunks/app/api/auth/logout/route-badb7034e478a358.js +0 -1
  443. package/app/.next/static/chunks/app/api/auth/me/route-badb7034e478a358.js +0 -1
  444. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-badb7034e478a358.js +0 -1
  445. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-badb7034e478a358.js +0 -1
  446. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-badb7034e478a358.js +0 -1
  447. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-badb7034e478a358.js +0 -1
  448. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-badb7034e478a358.js +0 -1
  449. package/app/.next/static/chunks/app/api/cli-tools/cowork-settings/route-badb7034e478a358.js +0 -1
  450. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-badb7034e478a358.js +0 -1
  451. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-badb7034e478a358.js +0 -1
  452. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-badb7034e478a358.js +0 -1
  453. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-badb7034e478a358.js +0 -1
  454. package/app/.next/static/chunks/app/api/cloud/auth/route-badb7034e478a358.js +0 -1
  455. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-badb7034e478a358.js +0 -1
  456. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-badb7034e478a358.js +0 -1
  457. package/app/.next/static/chunks/app/api/cloud/models/alias/route-badb7034e478a358.js +0 -1
  458. package/app/.next/static/chunks/app/api/combos/[id]/route-badb7034e478a358.js +0 -1
  459. package/app/.next/static/chunks/app/api/combos/route-badb7034e478a358.js +0 -1
  460. package/app/.next/static/chunks/app/api/health/route-badb7034e478a358.js +0 -1
  461. package/app/.next/static/chunks/app/api/init/route-badb7034e478a358.js +0 -1
  462. package/app/.next/static/chunks/app/api/keys/[id]/route-badb7034e478a358.js +0 -1
  463. package/app/.next/static/chunks/app/api/keys/route-badb7034e478a358.js +0 -1
  464. package/app/.next/static/chunks/app/api/locale/route-badb7034e478a358.js +0 -1
  465. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-badb7034e478a358.js +0 -1
  466. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-badb7034e478a358.js +0 -1
  467. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-badb7034e478a358.js +0 -1
  468. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-badb7034e478a358.js +0 -1
  469. package/app/.next/static/chunks/app/api/models/alias/route-badb7034e478a358.js +0 -1
  470. package/app/.next/static/chunks/app/api/models/availability/route-badb7034e478a358.js +0 -1
  471. package/app/.next/static/chunks/app/api/models/custom/route-badb7034e478a358.js +0 -1
  472. package/app/.next/static/chunks/app/api/models/disabled/route-badb7034e478a358.js +0 -1
  473. package/app/.next/static/chunks/app/api/models/route-badb7034e478a358.js +0 -1
  474. package/app/.next/static/chunks/app/api/models/test/route-badb7034e478a358.js +0 -1
  475. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-badb7034e478a358.js +0 -1
  476. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-badb7034e478a358.js +0 -1
  477. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-badb7034e478a358.js +0 -1
  478. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-badb7034e478a358.js +0 -1
  479. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-badb7034e478a358.js +0 -1
  480. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-badb7034e478a358.js +0 -1
  481. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-badb7034e478a358.js +0 -1
  482. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-badb7034e478a358.js +0 -1
  483. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-badb7034e478a358.js +0 -1
  484. package/app/.next/static/chunks/app/api/pricing/route-badb7034e478a358.js +0 -1
  485. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-badb7034e478a358.js +0 -1
  486. package/app/.next/static/chunks/app/api/provider-nodes/route-badb7034e478a358.js +0 -1
  487. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-badb7034e478a358.js +0 -1
  488. package/app/.next/static/chunks/app/api/providers/[id]/models/route-badb7034e478a358.js +0 -1
  489. package/app/.next/static/chunks/app/api/providers/[id]/route-badb7034e478a358.js +0 -1
  490. package/app/.next/static/chunks/app/api/providers/[id]/test/route-badb7034e478a358.js +0 -1
  491. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-badb7034e478a358.js +0 -1
  492. package/app/.next/static/chunks/app/api/providers/client/route-badb7034e478a358.js +0 -1
  493. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-badb7034e478a358.js +0 -1
  494. package/app/.next/static/chunks/app/api/providers/route-badb7034e478a358.js +0 -1
  495. package/app/.next/static/chunks/app/api/providers/suggested-models/route-badb7034e478a358.js +0 -1
  496. package/app/.next/static/chunks/app/api/providers/test-batch/route-badb7034e478a358.js +0 -1
  497. package/app/.next/static/chunks/app/api/providers/validate/route-badb7034e478a358.js +0 -1
  498. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-badb7034e478a358.js +0 -1
  499. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-badb7034e478a358.js +0 -1
  500. package/app/.next/static/chunks/app/api/proxy-pools/route-badb7034e478a358.js +0 -1
  501. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-badb7034e478a358.js +0 -1
  502. package/app/.next/static/chunks/app/api/settings/database/route-badb7034e478a358.js +0 -1
  503. package/app/.next/static/chunks/app/api/settings/proxy-test/route-badb7034e478a358.js +0 -1
  504. package/app/.next/static/chunks/app/api/settings/require-login/route-badb7034e478a358.js +0 -1
  505. package/app/.next/static/chunks/app/api/settings/route-badb7034e478a358.js +0 -1
  506. package/app/.next/static/chunks/app/api/shutdown/route-badb7034e478a358.js +0 -1
  507. package/app/.next/static/chunks/app/api/tags/route-badb7034e478a358.js +0 -1
  508. package/app/.next/static/chunks/app/api/translator/console-logs/route-badb7034e478a358.js +0 -1
  509. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-badb7034e478a358.js +0 -1
  510. package/app/.next/static/chunks/app/api/translator/load/route-badb7034e478a358.js +0 -1
  511. package/app/.next/static/chunks/app/api/translator/save/route-badb7034e478a358.js +0 -1
  512. package/app/.next/static/chunks/app/api/translator/send/route-badb7034e478a358.js +0 -1
  513. package/app/.next/static/chunks/app/api/translator/translate/route-badb7034e478a358.js +0 -1
  514. package/app/.next/static/chunks/app/api/tunnel/disable/route-badb7034e478a358.js +0 -1
  515. package/app/.next/static/chunks/app/api/tunnel/enable/route-badb7034e478a358.js +0 -1
  516. package/app/.next/static/chunks/app/api/tunnel/status/route-badb7034e478a358.js +0 -1
  517. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-badb7034e478a358.js +0 -1
  518. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-badb7034e478a358.js +0 -1
  519. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-badb7034e478a358.js +0 -1
  520. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-badb7034e478a358.js +0 -1
  521. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-badb7034e478a358.js +0 -1
  522. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-badb7034e478a358.js +0 -1
  523. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-badb7034e478a358.js +0 -1
  524. package/app/.next/static/chunks/app/api/usage/api-keys/route-badb7034e478a358.js +0 -1
  525. package/app/.next/static/chunks/app/api/usage/chart/route-badb7034e478a358.js +0 -1
  526. package/app/.next/static/chunks/app/api/usage/history/route-badb7034e478a358.js +0 -1
  527. package/app/.next/static/chunks/app/api/usage/logs/route-badb7034e478a358.js +0 -1
  528. package/app/.next/static/chunks/app/api/usage/providers/route-badb7034e478a358.js +0 -1
  529. package/app/.next/static/chunks/app/api/usage/request-details/route-badb7034e478a358.js +0 -1
  530. package/app/.next/static/chunks/app/api/usage/request-logs/route-badb7034e478a358.js +0 -1
  531. package/app/.next/static/chunks/app/api/usage/stats/route-badb7034e478a358.js +0 -1
  532. package/app/.next/static/chunks/app/api/usage/stream/route-badb7034e478a358.js +0 -1
  533. package/app/.next/static/chunks/app/api/users/[id]/route-badb7034e478a358.js +0 -1
  534. package/app/.next/static/chunks/app/api/users/route-badb7034e478a358.js +0 -1
  535. package/app/.next/static/chunks/app/api/v1/api/chat/route-badb7034e478a358.js +0 -1
  536. package/app/.next/static/chunks/app/api/v1/audio/speech/route-badb7034e478a358.js +0 -1
  537. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-badb7034e478a358.js +0 -1
  538. package/app/.next/static/chunks/app/api/v1/chat/completions/route-badb7034e478a358.js +0 -1
  539. package/app/.next/static/chunks/app/api/v1/embeddings/route-badb7034e478a358.js +0 -1
  540. package/app/.next/static/chunks/app/api/v1/images/generations/route-badb7034e478a358.js +0 -1
  541. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-badb7034e478a358.js +0 -1
  542. package/app/.next/static/chunks/app/api/v1/messages/route-badb7034e478a358.js +0 -1
  543. package/app/.next/static/chunks/app/api/v1/models/[kind]/route-badb7034e478a358.js +0 -1
  544. package/app/.next/static/chunks/app/api/v1/models/route-badb7034e478a358.js +0 -1
  545. package/app/.next/static/chunks/app/api/v1/responses/compact/route-badb7034e478a358.js +0 -1
  546. package/app/.next/static/chunks/app/api/v1/responses/route-badb7034e478a358.js +0 -1
  547. package/app/.next/static/chunks/app/api/v1/route-badb7034e478a358.js +0 -1
  548. package/app/.next/static/chunks/app/api/v1/search/route-badb7034e478a358.js +0 -1
  549. package/app/.next/static/chunks/app/api/v1/web/fetch/route-badb7034e478a358.js +0 -1
  550. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-badb7034e478a358.js +0 -1
  551. package/app/.next/static/chunks/app/api/v1beta/models/route-badb7034e478a358.js +0 -1
  552. package/app/.next/static/chunks/app/api/version/route-badb7034e478a358.js +0 -1
  553. package/app/.next/static/chunks/app/api/version/update/route-badb7034e478a358.js +0 -1
  554. package/app/.next/static/chunks/app/manifest.webmanifest/route-badb7034e478a358.js +0 -1
  555. package/app/.next/static/chunks/app/page-badb7034e478a358.js +0 -1
  556. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-badb7034e478a358.js +0 -1
  557. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-badb7034e478a358.js +0 -1
  558. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-badb7034e478a358.js +0 -1
  559. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-badb7034e478a358.js +0 -1
  560. package/app/.next/static/css/76d369cc5468e708.css +0 -1
  561. /package/app/.next/static/{V2uXdl1SgLstSOcrQU5I9 → 2TCKT7FIN7PE7ZJ20oAeb}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"98":{"*":{"id":"4770","name":"*","chunks":[],"async":false}},"4823":{"*":{"id":"50585","name":"*","chunks":[],"async":false}},"7648":{"*":{"id":"85306","name":"*","chunks":[],"async":false}},"11910":{"*":{"id":"83552","name":"*","chunks":[],"async":false}},"12572":{"*":{"id":"57422","name":"*","chunks":[],"async":false}},"15615":{"*":{"id":"14731","name":"*","chunks":[],"async":false}},"16144":{"*":{"id":"40410","name":"*","chunks":[],"async":false}},"17169":{"*":{"id":"39672","name":"*","chunks":[],"async":false}},"17721":{"*":{"id":"25927","name":"*","chunks":[],"async":false}},"21110":{"*":{"id":"19308","name":"*","chunks":[],"async":false}},"21931":{"*":{"id":"267","name":"*","chunks":[],"async":false}},"22662":{"*":{"id":"23296","name":"*","chunks":[],"async":false}},"23132":{"*":{"id":"28403","name":"*","chunks":[],"async":false}},"23615":{"*":{"id":"91809","name":"*","chunks":[],"async":false}},"23879":{"*":{"id":"34965","name":"*","chunks":[],"async":false}},"23936":{"*":{"id":"79488","name":"*","chunks":[],"async":false}},"25086":{"*":{"id":"74812","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"28067":{"*":{"id":"91099","name":"*","chunks":[],"async":false}},"28815":{"*":{"id":"39645","name":"*","chunks":[],"async":false}},"30815":{"*":{"id":"51109","name":"*","chunks":[],"async":false}},"36548":{"*":{"id":"23048","name":"*","chunks":[],"async":false}},"36894":{"*":{"id":"48076","name":"*","chunks":[],"async":false}},"38587":{"*":{"id":"53845","name":"*","chunks":[],"async":false}},"40197":{"*":{"id":"11229","name":"*","chunks":[],"async":false}},"44493":{"*":{"id":"81157","name":"*","chunks":[],"async":false}},"47295":{"*":{"id":"76653","name":"*","chunks":[],"async":false}},"50433":{"*":{"id":"95745","name":"*","chunks":[],"async":false}},"51825":{"*":{"id":"11633","name":"*","chunks":[],"async":false}},"56061":{"*":{"id":"75171","name":"*","chunks":[],"async":false}},"56319":{"*":{"id":"25919","name":"*","chunks":[],"async":false}},"57076":{"*":{"id":"19388","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"59884":{"*":{"id":"19598","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"61500":{"*":{"id":"86209","name":"*","chunks":[],"async":false}},"62899":{"*":{"id":"5291","name":"*","chunks":[],"async":false}},"64082":{"*":{"id":"94558","name":"*","chunks":[],"async":false}},"64561":{"*":{"id":"61377","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"71088":{"*":{"id":"16316","name":"*","chunks":[],"async":false}},"72908":{"*":{"id":"83352","name":"*","chunks":[],"async":false}},"73579":{"*":{"id":"51585","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"74891":{"*":{"id":"86739","name":"*","chunks":[],"async":false}},"75228":{"*":{"id":"50692","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"80752":{"*":{"id":"3236","name":"*","chunks":[],"async":false}},"81127":{"*":{"id":"95145","name":"*","chunks":[],"async":false}},"81772":{"*":{"id":"40074","name":"*","chunks":[],"async":false}},"83016":{"*":{"id":"14412","name":"*","chunks":[],"async":false}},"84509":{"*":{"id":"65732","name":"*","chunks":[],"async":false}},"84588":{"*":{"id":"17660","name":"*","chunks":[],"async":false}},"85941":{"*":{"id":"18968","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87304":{"*":{"id":"14144","name":"*","chunks":[],"async":false}},"88512":{"*":{"id":"73180","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"90882":{"*":{"id":"79346","name":"*","chunks":[],"async":false}},"91450":{"*":{"id":"53838","name":"*","chunks":[],"async":false}},"92173":{"*":{"id":"48781","name":"*","chunks":[],"async":false}},"92542":{"*":{"id":"99070","name":"*","chunks":[],"async":false}},"92622":{"*":{"id":"42196","name":"*","chunks":[],"async":false}},"94230":{"*":{"id":"56110","name":"*","chunks":[],"async":false}},"94588":{"*":{"id":"7870","name":"*","chunks":[],"async":false}},"94635":{"*":{"id":"5211","name":"*","chunks":[],"async":false}},"95088":{"*":{"id":"43182","name":"*","chunks":[],"async":false}},"95892":{"*":{"id":"37900","name":"*","chunks":[],"async":false}},"95907":{"*":{"id":"43173","name":"*","chunks":[],"async":false}},"96748":{"*":{"id":"67738","name":"*","chunks":[],"async":false}},"97677":{"*":{"id":"32971","name":"*","chunks":[],"async":false}},"98542":{"*":{"id":"95514","name":"*","chunks":[],"async":false}},"98572":{"*":{"id":"31402","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":35154,"name":"*","chunks":["1321","static/chunks/1321-764b2073673fc333.js","7177","static/chunks/app/layout-88b42fda4d7c38d2.js"],"async":false},"/Users/bytedance/Documents/9router/src/app/globals.css":{"id":51743,"name":"*","chunks":["1321","static/chunks/1321-764b2073673fc333.js","7177","static/chunks/app/layout-88b42fda4d7c38d2.js"],"async":false},"/Users/bytedance/Documents/9router/src/i18n/RuntimeI18nProvider.js":{"id":94635,"name":"*","chunks":["1321","static/chunks/1321-764b2073673fc333.js","7177","static/chunks/app/layout-88b42fda4d7c38d2.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ThemeProvider.js":{"id":21110,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/app/callback/page.js":{"id":59884,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/dashboard/settings/pricing/page.js":{"id":87304,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/landing/page.js":{"id":85941,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/login/page.js":{"id":83016,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/AddCustomEmbeddingModal.js":{"id":96748,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/AddCustomImageModal.js":{"id":98572,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Avatar.js":{"id":56319,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Badge.js":{"id":56061,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Button.js":{"id":92542,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Card.js":{"id":84588,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ChangelogModal.js":{"id":40197,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/CursorAuthModal.js":{"id":30815,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/EditConnectionModal.js":{"id":73579,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Footer.js":{"id":92173,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/GitLabAuthModal.js":{"id":95088,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Header.js":{"id":74891,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/HeaderMenu.js":{"id":80752,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/IFlowCookieModal.js":{"id":23936,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Input.js":{"id":11910,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/KiroAuthModal.js":{"id":61500,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/KiroOAuthWrapper.js":{"id":62899,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/KiroSocialOAuthModal.js":{"id":94230,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/LanguageSwitcher.js":{"id":21931,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/layouts/AuthLayout.js":{"id":91450,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/layouts/DashboardLayout.js":{"id":7648,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Loading.js":{"id":25086,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ManualConfigModal.js":{"id":28815,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Modal.js":{"id":81127,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ModelSelectModal.js":{"id":72908,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/NineRemoteButton.js":{"id":36548,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/NoAuthProxyCard.js":{"id":4823,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/OAuthModal.js":{"id":90882,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ProviderInfoCard.js":{"id":51825,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/RequestLogger.js":{"id":23615,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/SegmentedControl.js":{"id":28067,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Select.js":{"id":98,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Sidebar.js":{"id":92622,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ThemeToggle.js":{"id":38587,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Toggle.js":{"id":98542,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Tooltip.js":{"id":97677,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/UsageStats.js":{"id":23132,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/UserRoleProvider.js":{"id":95892,"name":"*","chunks":["3862","static/chunks/1a258343-4878413fb430abba.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-764b2073673fc333.js","5497","static/chunks/5497-27af7f632895d68e.js","9305","static/chunks/app/(dashboard)/layout-edd266e7233eb314.js"],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/admin/keys/page.js":{"id":36894,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/admin/users/page.js":{"id":17169,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":88512,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":75228,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/combos/page.js":{"id":47295,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":95907,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":94588,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":16144,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":22662,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":71088,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":23879,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":15615,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/quota/page.js":{"id":84509,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/skills/page.js":{"id":64082,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/usage/page.js":{"id":81772,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/user/page.js":{"id":50433,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":44493,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/profile/page.js":{"id":64561,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":17721,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":57076,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js":{"id":12572,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/bytedance/Documents/9router/src/":[],"/Users/bytedance/Documents/9router/src/app/layout":[{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"},{"inlined":false,"path":"static/css/76d369cc5468e708.css"}],"/Users/bytedance/Documents/9router/src/app/page":[],"/Users/bytedance/Documents/9router/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"98":{"*":{"id":"83784","name":"*","chunks":[],"async":false}},"4823":{"*":{"id":"5843","name":"*","chunks":[],"async":false}},"7648":{"*":{"id":"61780","name":"*","chunks":[],"async":false}},"11910":{"*":{"id":"71230","name":"*","chunks":[],"async":false}},"12572":{"*":{"id":"44030","name":"*","chunks":[],"async":false}},"15615":{"*":{"id":"24885","name":"*","chunks":[],"async":false}},"16144":{"*":{"id":"6452","name":"*","chunks":[],"async":false}},"17169":{"*":{"id":"24684","name":"*","chunks":[],"async":false}},"17721":{"*":{"id":"93110","name":"*","chunks":[],"async":false}},"21110":{"*":{"id":"89886","name":"*","chunks":[],"async":false}},"21931":{"*":{"id":"45205","name":"*","chunks":[],"async":false}},"22662":{"*":{"id":"50254","name":"*","chunks":[],"async":false}},"23132":{"*":{"id":"2422","name":"*","chunks":[],"async":false}},"23615":{"*":{"id":"19083","name":"*","chunks":[],"async":false}},"23879":{"*":{"id":"8523","name":"*","chunks":[],"async":false}},"23936":{"*":{"id":"80342","name":"*","chunks":[],"async":false}},"25086":{"*":{"id":"92082","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"28067":{"*":{"id":"54065","name":"*","chunks":[],"async":false}},"28815":{"*":{"id":"70603","name":"*","chunks":[],"async":false}},"30815":{"*":{"id":"40167","name":"*","chunks":[],"async":false}},"36548":{"*":{"id":"29674","name":"*","chunks":[],"async":false}},"36894":{"*":{"id":"7314","name":"*","chunks":[],"async":false}},"38587":{"*":{"id":"40515","name":"*","chunks":[],"async":false}},"40197":{"*":{"id":"33811","name":"*","chunks":[],"async":false}},"44493":{"*":{"id":"99259","name":"*","chunks":[],"async":false}},"47295":{"*":{"id":"35447","name":"*","chunks":[],"async":false}},"50433":{"*":{"id":"79235","name":"*","chunks":[],"async":false}},"51743":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"51825":{"*":{"id":"81923","name":"*","chunks":[],"async":false}},"56061":{"*":{"id":"33893","name":"*","chunks":[],"async":false}},"56319":{"*":{"id":"70061","name":"*","chunks":[],"async":false}},"57076":{"*":{"id":"23450","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"59884":{"*":{"id":"3604","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"61500":{"*":{"id":"82448","name":"*","chunks":[],"async":false}},"62899":{"*":{"id":"14285","name":"*","chunks":[],"async":false}},"64082":{"*":{"id":"40852","name":"*","chunks":[],"async":false}},"64561":{"*":{"id":"50047","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"71088":{"*":{"id":"93918","name":"*","chunks":[],"async":false}},"72908":{"*":{"id":"94582","name":"*","chunks":[],"async":false}},"73579":{"*":{"id":"70139","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"74891":{"*":{"id":"92669","name":"*","chunks":[],"async":false}},"75228":{"*":{"id":"79518","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"80752":{"*":{"id":"29354","name":"*","chunks":[],"async":false}},"81127":{"*":{"id":"10079","name":"*","chunks":[],"async":false}},"81772":{"*":{"id":"87149","name":"*","chunks":[],"async":false}},"83016":{"*":{"id":"65674","name":"*","chunks":[],"async":false}},"84509":{"*":{"id":"16736","name":"*","chunks":[],"async":false}},"84588":{"*":{"id":"7290","name":"*","chunks":[],"async":false}},"85941":{"*":{"id":"852","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87304":{"*":{"id":"93870","name":"*","chunks":[],"async":false}},"88512":{"*":{"id":"79286","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"90882":{"*":{"id":"3080","name":"*","chunks":[],"async":false}},"91450":{"*":{"id":"64420","name":"*","chunks":[],"async":false}},"92173":{"*":{"id":"49123","name":"*","chunks":[],"async":false}},"92542":{"*":{"id":"45512","name":"*","chunks":[],"async":false}},"92622":{"*":{"id":"26866","name":"*","chunks":[],"async":false}},"94230":{"*":{"id":"87228","name":"*","chunks":[],"async":false}},"94588":{"*":{"id":"69296","name":"*","chunks":[],"async":false}},"94635":{"*":{"id":"85117","name":"*","chunks":[],"async":false}},"95088":{"*":{"id":"64148","name":"*","chunks":[],"async":false}},"95892":{"*":{"id":"76978","name":"*","chunks":[],"async":false}},"95907":{"*":{"id":"51747","name":"*","chunks":[],"async":false}},"96748":{"*":{"id":"18200","name":"*","chunks":[],"async":false}},"97677":{"*":{"id":"18421","name":"*","chunks":[],"async":false}},"98542":{"*":{"id":"70092","name":"*","chunks":[],"async":false}},"98572":{"*":{"id":"26288","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"98":{"*":{"id":"4770","name":"*","chunks":[],"async":false}},"4823":{"*":{"id":"50585","name":"*","chunks":[],"async":false}},"7648":{"*":{"id":"85306","name":"*","chunks":[],"async":false}},"11910":{"*":{"id":"83552","name":"*","chunks":[],"async":false}},"12572":{"*":{"id":"57422","name":"*","chunks":[],"async":false}},"15615":{"*":{"id":"14731","name":"*","chunks":[],"async":false}},"16144":{"*":{"id":"40410","name":"*","chunks":[],"async":false}},"17169":{"*":{"id":"39672","name":"*","chunks":[],"async":false}},"17721":{"*":{"id":"25927","name":"*","chunks":[],"async":false}},"21110":{"*":{"id":"19308","name":"*","chunks":[],"async":false}},"21931":{"*":{"id":"267","name":"*","chunks":[],"async":false}},"22662":{"*":{"id":"23296","name":"*","chunks":[],"async":false}},"23132":{"*":{"id":"28403","name":"*","chunks":[],"async":false}},"23615":{"*":{"id":"91809","name":"*","chunks":[],"async":false}},"23879":{"*":{"id":"34965","name":"*","chunks":[],"async":false}},"23936":{"*":{"id":"79488","name":"*","chunks":[],"async":false}},"25086":{"*":{"id":"74812","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"81921","name":"*","chunks":[],"async":false}},"28067":{"*":{"id":"91099","name":"*","chunks":[],"async":false}},"28815":{"*":{"id":"39645","name":"*","chunks":[],"async":false}},"30815":{"*":{"id":"51109","name":"*","chunks":[],"async":false}},"36548":{"*":{"id":"23048","name":"*","chunks":[],"async":false}},"36894":{"*":{"id":"48076","name":"*","chunks":[],"async":false}},"38587":{"*":{"id":"53845","name":"*","chunks":[],"async":false}},"40197":{"*":{"id":"11229","name":"*","chunks":[],"async":false}},"44493":{"*":{"id":"81157","name":"*","chunks":[],"async":false}},"45455":{"*":{"id":"62727","name":"*","chunks":[],"async":false}},"47295":{"*":{"id":"76653","name":"*","chunks":[],"async":false}},"50433":{"*":{"id":"95745","name":"*","chunks":[],"async":false}},"51825":{"*":{"id":"11633","name":"*","chunks":[],"async":false}},"56061":{"*":{"id":"75171","name":"*","chunks":[],"async":false}},"56319":{"*":{"id":"25919","name":"*","chunks":[],"async":false}},"57076":{"*":{"id":"19388","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"35421","name":"*","chunks":[],"async":false}},"59884":{"*":{"id":"19598","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"60440","name":"*","chunks":[],"async":false}},"61500":{"*":{"id":"86209","name":"*","chunks":[],"async":false}},"62899":{"*":{"id":"5291","name":"*","chunks":[],"async":false}},"64082":{"*":{"id":"94558","name":"*","chunks":[],"async":false}},"64561":{"*":{"id":"61377","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"82265","name":"*","chunks":[],"async":false}},"71088":{"*":{"id":"16316","name":"*","chunks":[],"async":false}},"72908":{"*":{"id":"83352","name":"*","chunks":[],"async":false}},"73579":{"*":{"id":"51585","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"61335","name":"*","chunks":[],"async":false}},"74891":{"*":{"id":"86739","name":"*","chunks":[],"async":false}},"75228":{"*":{"id":"50692","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"84342","name":"*","chunks":[],"async":false}},"80752":{"*":{"id":"3236","name":"*","chunks":[],"async":false}},"81127":{"*":{"id":"95145","name":"*","chunks":[],"async":false}},"81772":{"*":{"id":"40074","name":"*","chunks":[],"async":false}},"83016":{"*":{"id":"14412","name":"*","chunks":[],"async":false}},"84509":{"*":{"id":"65732","name":"*","chunks":[],"async":false}},"84588":{"*":{"id":"17660","name":"*","chunks":[],"async":false}},"85941":{"*":{"id":"18968","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"74661","name":"*","chunks":[],"async":false}},"87304":{"*":{"id":"14144","name":"*","chunks":[],"async":false}},"88512":{"*":{"id":"73180","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"70664","name":"*","chunks":[],"async":false}},"90882":{"*":{"id":"79346","name":"*","chunks":[],"async":false}},"91450":{"*":{"id":"53838","name":"*","chunks":[],"async":false}},"92173":{"*":{"id":"48781","name":"*","chunks":[],"async":false}},"92542":{"*":{"id":"99070","name":"*","chunks":[],"async":false}},"92622":{"*":{"id":"42196","name":"*","chunks":[],"async":false}},"94230":{"*":{"id":"56110","name":"*","chunks":[],"async":false}},"94588":{"*":{"id":"7870","name":"*","chunks":[],"async":false}},"94635":{"*":{"id":"5211","name":"*","chunks":[],"async":false}},"95088":{"*":{"id":"43182","name":"*","chunks":[],"async":false}},"95892":{"*":{"id":"37900","name":"*","chunks":[],"async":false}},"95907":{"*":{"id":"43173","name":"*","chunks":[],"async":false}},"96748":{"*":{"id":"67738","name":"*","chunks":[],"async":false}},"97677":{"*":{"id":"32971","name":"*","chunks":[],"async":false}},"98542":{"*":{"id":"95514","name":"*","chunks":[],"async":false}},"98572":{"*":{"id":"31402","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":27123,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/client-page.js":{"id":61304,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/client-segment.js":{"id":78616,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":64777,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/layout-router.js":{"id":57121,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":74581,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":90484,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":86869,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":35154,"name":"*","chunks":["1321","static/chunks/1321-b84130cd27e8b78c.js","7177","static/chunks/app/layout-88b42fda4d7c38d2.js"],"async":false},"/Users/bytedance/Documents/9router/src/app/globals.css":{"id":51743,"name":"*","chunks":["1321","static/chunks/1321-b84130cd27e8b78c.js","7177","static/chunks/app/layout-88b42fda4d7c38d2.js"],"async":false},"/Users/bytedance/Documents/9router/src/i18n/RuntimeI18nProvider.js":{"id":94635,"name":"*","chunks":["1321","static/chunks/1321-b84130cd27e8b78c.js","7177","static/chunks/app/layout-88b42fda4d7c38d2.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ThemeProvider.js":{"id":21110,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/app/callback/page.js":{"id":59884,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/dashboard/settings/pricing/page.js":{"id":87304,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/landing/page.js":{"id":85941,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/login/page.js":{"id":83016,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/AddCustomEmbeddingModal.js":{"id":96748,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/AddCustomImageModal.js":{"id":98572,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Avatar.js":{"id":56319,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Badge.js":{"id":56061,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Button.js":{"id":92542,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Card.js":{"id":84588,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ChangelogModal.js":{"id":40197,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ComboFormModal.js":{"id":45455,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/CursorAuthModal.js":{"id":30815,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/EditConnectionModal.js":{"id":73579,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Footer.js":{"id":92173,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/GitLabAuthModal.js":{"id":95088,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Header.js":{"id":74891,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/HeaderMenu.js":{"id":80752,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/IFlowCookieModal.js":{"id":23936,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Input.js":{"id":11910,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/KiroAuthModal.js":{"id":61500,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/KiroOAuthWrapper.js":{"id":62899,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/KiroSocialOAuthModal.js":{"id":94230,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/LanguageSwitcher.js":{"id":21931,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/layouts/AuthLayout.js":{"id":91450,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/layouts/DashboardLayout.js":{"id":7648,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Loading.js":{"id":25086,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ManualConfigModal.js":{"id":28815,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Modal.js":{"id":81127,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ModelSelectModal.js":{"id":72908,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/NineRemoteButton.js":{"id":36548,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/NoAuthProxyCard.js":{"id":4823,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/OAuthModal.js":{"id":90882,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ProviderInfoCard.js":{"id":51825,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/RequestLogger.js":{"id":23615,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/SegmentedControl.js":{"id":28067,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Select.js":{"id":98,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Sidebar.js":{"id":92622,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/ThemeToggle.js":{"id":38587,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Toggle.js":{"id":98542,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/Tooltip.js":{"id":97677,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/UsageStats.js":{"id":23132,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/shared/components/UserRoleProvider.js":{"id":95892,"name":"*","chunks":["3862","static/chunks/1a258343-5938f676ed376386.js","1051","static/chunks/1051-a791905d1279a341.js","1321","static/chunks/1321-b84130cd27e8b78c.js","5497","static/chunks/5497-a2d728c63029180e.js","9305","static/chunks/app/(dashboard)/layout-7ea5a7abc543b04d.js"],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/admin/keys/page.js":{"id":36894,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/admin/users/page.js":{"id":17169,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":88512,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":75228,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/combos/page.js":{"id":47295,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":95907,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":94588,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":16144,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":22662,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":71088,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":23879,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":15615,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/quota/page.js":{"id":84509,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/skills/page.js":{"id":64082,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/usage/page.js":{"id":81772,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/user/page.js":{"id":50433,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":44493,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/profile/page.js":{"id":64561,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":17721,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/providers/page.js":{"id":12572,"name":"*","chunks":[],"async":false},"/Users/bytedance/Documents/9router/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":57076,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/bytedance/Documents/9router/src/":[],"/Users/bytedance/Documents/9router/src/app/layout":[{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"},{"inlined":false,"path":"static/css/48caf49054c81db9.css"}],"/Users/bytedance/Documents/9router/src/app/page":[],"/Users/bytedance/Documents/9router/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"98":{"*":{"id":"83784","name":"*","chunks":[],"async":false}},"4823":{"*":{"id":"5843","name":"*","chunks":[],"async":false}},"7648":{"*":{"id":"61780","name":"*","chunks":[],"async":false}},"11910":{"*":{"id":"71230","name":"*","chunks":[],"async":false}},"12572":{"*":{"id":"44030","name":"*","chunks":[],"async":false}},"15615":{"*":{"id":"24885","name":"*","chunks":[],"async":false}},"16144":{"*":{"id":"6452","name":"*","chunks":[],"async":false}},"17169":{"*":{"id":"24684","name":"*","chunks":[],"async":false}},"17721":{"*":{"id":"93110","name":"*","chunks":[],"async":false}},"21110":{"*":{"id":"89886","name":"*","chunks":[],"async":false}},"21931":{"*":{"id":"45205","name":"*","chunks":[],"async":false}},"22662":{"*":{"id":"50254","name":"*","chunks":[],"async":false}},"23132":{"*":{"id":"2422","name":"*","chunks":[],"async":false}},"23615":{"*":{"id":"19083","name":"*","chunks":[],"async":false}},"23879":{"*":{"id":"8523","name":"*","chunks":[],"async":false}},"23936":{"*":{"id":"80342","name":"*","chunks":[],"async":false}},"25086":{"*":{"id":"92082","name":"*","chunks":[],"async":false}},"27123":{"*":{"id":"95547","name":"*","chunks":[],"async":false}},"28067":{"*":{"id":"54065","name":"*","chunks":[],"async":false}},"28815":{"*":{"id":"70603","name":"*","chunks":[],"async":false}},"30815":{"*":{"id":"40167","name":"*","chunks":[],"async":false}},"36548":{"*":{"id":"29674","name":"*","chunks":[],"async":false}},"36894":{"*":{"id":"7314","name":"*","chunks":[],"async":false}},"38587":{"*":{"id":"40515","name":"*","chunks":[],"async":false}},"40197":{"*":{"id":"33811","name":"*","chunks":[],"async":false}},"44493":{"*":{"id":"99259","name":"*","chunks":[],"async":false}},"45455":{"*":{"id":"20493","name":"*","chunks":[],"async":false}},"47295":{"*":{"id":"35447","name":"*","chunks":[],"async":false}},"50433":{"*":{"id":"79235","name":"*","chunks":[],"async":false}},"51743":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"51825":{"*":{"id":"81923","name":"*","chunks":[],"async":false}},"56061":{"*":{"id":"33893","name":"*","chunks":[],"async":false}},"56319":{"*":{"id":"70061","name":"*","chunks":[],"async":false}},"57076":{"*":{"id":"23450","name":"*","chunks":[],"async":false}},"57121":{"*":{"id":"98099","name":"*","chunks":[],"async":false}},"59884":{"*":{"id":"3604","name":"*","chunks":[],"async":false}},"61304":{"*":{"id":"15098","name":"*","chunks":[],"async":false}},"61500":{"*":{"id":"82448","name":"*","chunks":[],"async":false}},"62899":{"*":{"id":"14285","name":"*","chunks":[],"async":false}},"64082":{"*":{"id":"40852","name":"*","chunks":[],"async":false}},"64561":{"*":{"id":"50047","name":"*","chunks":[],"async":false}},"64777":{"*":{"id":"33859","name":"*","chunks":[],"async":false}},"71088":{"*":{"id":"93918","name":"*","chunks":[],"async":false}},"72908":{"*":{"id":"94582","name":"*","chunks":[],"async":false}},"73579":{"*":{"id":"70139","name":"*","chunks":[],"async":false}},"74581":{"*":{"id":"16237","name":"*","chunks":[],"async":false}},"74891":{"*":{"id":"92669","name":"*","chunks":[],"async":false}},"75228":{"*":{"id":"79518","name":"*","chunks":[],"async":false}},"78616":{"*":{"id":"47644","name":"*","chunks":[],"async":false}},"80752":{"*":{"id":"29354","name":"*","chunks":[],"async":false}},"81127":{"*":{"id":"10079","name":"*","chunks":[],"async":false}},"81772":{"*":{"id":"87149","name":"*","chunks":[],"async":false}},"83016":{"*":{"id":"65674","name":"*","chunks":[],"async":false}},"84509":{"*":{"id":"16736","name":"*","chunks":[],"async":false}},"84588":{"*":{"id":"7290","name":"*","chunks":[],"async":false}},"85941":{"*":{"id":"852","name":"*","chunks":[],"async":false}},"86869":{"*":{"id":"36675","name":"*","chunks":[],"async":false}},"87304":{"*":{"id":"93870","name":"*","chunks":[],"async":false}},"88512":{"*":{"id":"79286","name":"*","chunks":[],"async":false}},"90484":{"*":{"id":"98562","name":"*","chunks":[],"async":false}},"90882":{"*":{"id":"3080","name":"*","chunks":[],"async":false}},"91450":{"*":{"id":"64420","name":"*","chunks":[],"async":false}},"92173":{"*":{"id":"49123","name":"*","chunks":[],"async":false}},"92542":{"*":{"id":"45512","name":"*","chunks":[],"async":false}},"92622":{"*":{"id":"26866","name":"*","chunks":[],"async":false}},"94230":{"*":{"id":"87228","name":"*","chunks":[],"async":false}},"94588":{"*":{"id":"69296","name":"*","chunks":[],"async":false}},"94635":{"*":{"id":"85117","name":"*","chunks":[],"async":false}},"95088":{"*":{"id":"64148","name":"*","chunks":[],"async":false}},"95892":{"*":{"id":"76978","name":"*","chunks":[],"async":false}},"95907":{"*":{"id":"51747","name":"*","chunks":[],"async":false}},"96748":{"*":{"id":"18200","name":"*","chunks":[],"async":false}},"97677":{"*":{"id":"18421","name":"*","chunks":[],"async":false}},"98542":{"*":{"id":"70092","name":"*","chunks":[],"async":false}},"98572":{"*":{"id":"26288","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}};
@@ -9,6 +9,7 @@
9
9
  "/api/cli-tools/claude-settings/route": "app/api/cli-tools/claude-settings/route.js",
10
10
  "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
11
11
  "/api/cli-tools/copilot-settings/route": "app/api/cli-tools/copilot-settings/route.js",
12
+ "/api/cli-tools/cowork-mcp-registry/route": "app/api/cli-tools/cowork-mcp-registry/route.js",
12
13
  "/api/cli-tools/cowork-settings/route": "app/api/cli-tools/cowork-settings/route.js",
13
14
  "/api/cli-tools/droid-settings/route": "app/api/cli-tools/droid-settings/route.js",
14
15
  "/api/cli-tools/hermes-settings/route": "app/api/cli-tools/hermes-settings/route.js",
@@ -76,12 +77,14 @@
76
77
  "/api/users/route": "app/api/users/route.js",
77
78
  "/api/v1/api/chat/route": "app/api/v1/api/chat/route.js",
78
79
  "/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js",
80
+ "/api/v1/audio/voices/route": "app/api/v1/audio/voices/route.js",
79
81
  "/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js",
80
82
  "/api/v1/embeddings/route": "app/api/v1/embeddings/route.js",
81
83
  "/api/v1/images/generations/route": "app/api/v1/images/generations/route.js",
82
84
  "/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js",
83
85
  "/api/v1/messages/route": "app/api/v1/messages/route.js",
84
86
  "/api/v1/models/[kind]/route": "app/api/v1/models/[kind]/route.js",
87
+ "/api/v1/models/info/route": "app/api/v1/models/info/route.js",
85
88
  "/api/v1/models/route": "app/api/v1/models/route.js",
86
89
  "/api/v1/responses/compact/route": "app/api/v1/responses/compact/route.js",
87
90
  "/api/v1/responses/route": "app/api/v1/responses/route.js",
@@ -107,9 +110,9 @@
107
110
  "/api/proxy-pools/[id]/route": "app/api/proxy-pools/[id]/route.js",
108
111
  "/api/proxy-pools/[id]/test/route": "app/api/proxy-pools/[id]/test/route.js",
109
112
  "/api/proxy-pools/route": "app/api/proxy-pools/route.js",
110
- "/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js",
111
113
  "/api/settings/database/route": "app/api/settings/database/route.js",
112
114
  "/api/settings/proxy-test/route": "app/api/settings/proxy-test/route.js",
115
+ "/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js",
113
116
  "/api/settings/route": "app/api/settings/route.js",
114
117
  "/api/translator/console-logs/stream/route": "app/api/translator/console-logs/stream/route.js",
115
118
  "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
@@ -142,6 +145,6 @@
142
145
  "/(dashboard)/dashboard/console-log/page": "app/(dashboard)/dashboard/console-log/page.js",
143
146
  "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
144
147
  "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js",
145
- "/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js",
146
- "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js"
148
+ "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
149
+ "/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js"
147
150
  }
@@ -1 +1 @@
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=j.filter(a=>(0,g.iI)(c,a.provider)))}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=c.filter(a=>(0,g.iI)(b,a.provider)))}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})}}},9132:(a,b,c)=>{c.d(b,{Mv:()=>j,RG:()=>h,iI:()=>i});var d=c(68658),e=c(89718),f=c(54200);function g(a,b){return a&&"sub_user"===a.role?{role:"sub_user",userId:a.id,username:a.username||null,permissions:Array.isArray(a.permissions)?a.permissions:[],allowedProviders:(0,f.cc)(a),source:b}:null}async function h(a,b=null){let c=b||function(a){let b=a?.headers?.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a?.headers?.get("x-api-key");return c||null}(a);if(c){let a=await (0,e.y7)(c);if(a?.userId){let b=g(await (0,e.kl)(a.userId),"api_key");if(b)return b}}let f=await (0,d.f1)(a);if(!f||"sub_user"!==f.role||!f.userId)return null;let i=await (0,e.kl)(f.userId);return i?g(i,"cookie"):g({id:f.userId,username:f.username||null,role:f.role,permissions:f.permissions||[],allowedProviders:f.allowedProviders},"cookie")}function i(a,b){return!a||"sub_user"!==a.role||a.allowedProviders.includes(b)}function j(a,b){return b&&"sub_user"===b.role?a.filter(a=>i(b,a.provider)):a}},38775:(a,b,c)=>{c.d(b,{d_:()=>g,mA:()=>f});var d=c(89718),e=c(40669);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);if(e)return{provider:e.id,model:b.model};let f=(await (0,d.getProviderNodes)({type:"custom-image"})).find(a=>a.prefix===b.providerAlias);return f?{provider:f.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},40669:(a,b,c)=>{c.d(b,{Xh:()=>e,js:()=>f});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",ocg:"opencode-go",el:"elevenlabs",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};function e(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function f(a,b){let c=e(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let f="function"==typeof b?await b():b,g=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,f);return g||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},49120:(a,b,c)=>{c.d(b,{n:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);function j(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}let k=function(){if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=j("openrouterx"),b=j("9router");return!e().existsSync(a)&&e().existsSync(b)?b:a}()},54200:(a,b,c)=>{c.d(b,{cc:()=>f,vJ:()=>e});let d=["codex","alicode"];function e(a){return Array.isArray(a)?Array.from(new Set(a.map(a=>"string"==typeof a?a.trim():"").filter(Boolean))):[]}function f(a,b=d){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"allowedProviders")?e(a.allowedProviders):e(b)}},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:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},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
+ "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=j.filter(a=>(0,g.iI)(c,a.provider)))}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=c.filter(a=>(0,g.iI)(b,a.provider)))}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})}}},9132:(a,b,c)=>{c.d(b,{Mv:()=>j,RG:()=>h,iI:()=>i});var d=c(68658),e=c(89718),f=c(54200);function g(a,b){return a&&"sub_user"===a.role?{role:"sub_user",userId:a.id,username:a.username||null,permissions:Array.isArray(a.permissions)?a.permissions:[],allowedProviders:(0,f.cc)(a),source:b}:null}async function h(a,b=null){let c=b||function(a){let b=a?.headers?.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a?.headers?.get("x-api-key");return c||null}(a);if(c){let a=await (0,e.y7)(c);if(a?.userId){let b=g(await (0,e.kl)(a.userId),"api_key");if(b)return b}}let f=await (0,d.f1)(a);if(!f||"sub_user"!==f.role||!f.userId)return null;let i=await (0,e.kl)(f.userId);return i?g(i,"cookie"):g({id:f.userId,username:f.username||null,role:f.role,permissions:f.permissions||[],allowedProviders:f.allowedProviders},"cookie")}function i(a,b){return!a||"sub_user"!==a.role||a.allowedProviders.includes(b)}function j(a,b){return b&&"sub_user"===b.role?a.filter(a=>i(b,a.provider)):a}},38775:(a,b,c)=>{c.d(b,{d_:()=>g,mA:()=>f});var d=c(89718),e=c(40669);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);if(e)return{provider:e.id,model:b.model};let f=(await (0,d.getProviderNodes)({type:"custom-image"})).find(a=>a.prefix===b.providerAlias);return f?{provider:f.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},40669:(a,b,c)=>{c.d(b,{Xh:()=>e,js:()=>f});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",ocg:"opencode-go",el:"elevenlabs",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};function e(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function f(a,b){let c=e(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let f="function"==typeof b?await b():b,g=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,f);return g||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},49120:(a,b,c)=>{c.d(b,{n:()=>i}),c(29021);var d,e=c(33873),f=c.n(e),g=c(21820),h=c.n(g);let i=process.env.DATA_DIR?process.env.DATA_DIR:(d="openrouterx","win32"===process.platform?f().join(process.env.APPDATA||f().join(h().homedir(),"AppData","Roaming"),d):f().join(h().homedir(),`.${d}`))},54200:(a,b,c)=>{c.d(b,{cc:()=>f,vJ:()=>e});let d=["codex","alicode"];function e(a){return Array.isArray(a)?Array.from(new Set(a.map(a=>"string"==typeof a?a.trim():"").filter(Boolean))):[]}function f(a,b=d){return a&&"object"==typeof a&&Object.prototype.hasOwnProperty.call(a,"allowedProviders")?e(a.allowedProviders):e(b)}},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:()=>f}),c(23211);var d=c(69614);c(89718),c(54603);let e=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function f(a){let b=a.cookies.get("auth_token")?.value;if(!b)return null;try{let{payload:a}=await (0,d.V)(b,e);return a}catch{return null}}},69614:(a,b,c)=>{c.d(b,{V:()=>p});var d=c(88888),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},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 +1 @@
1
- "use strict";exports.id=3855,exports.ids=[3855],exports.modules={3179:(a,b,c)=>{c.d(b,{Al:()=>y,Dd:()=>w,es:()=>C,fn:()=>D,nN:()=>F,ss:()=>E});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.n,"bin"),p="cloudflared",q="win32"===k().platform(),r=q?`${p}.exe`:p,s=g().join(o,r),t={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"}},u={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},v={downloading:!1,progress:0};function w(){return{downloading:v.downloading,progress:v.progress}}let x=null;async function y(){return x||(x=z().finally(()=>{x=null}))}async function z(){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=t[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||u[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;v.downloading=!0,v.progress=0,b.on("data",a=>{i+=a.length,h>0&&(v.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{v.downloading=!1,v.progress=100,g.close(()=>d(c))}),g.on("error",a=>{v.downloading=!1,v.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{v.downloading=!1,v.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 A=null,B=null;function C(a){B=a}async function D(a,b){let c=await y(),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=(0,l.spawn)(c,["tunnel","--url",`http://localhost:${a}`,"--config",f,"--no-autoupdate"],{detached:!1,windowsHide:!0,stdio:["ignore","pipe","pipe"]});return A=j,(0,m.xS)(j.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(),a({child:j,tunnelUrl:g});return}g!==f&&(f=g,b&&b(g))}};j.stdout.on("data",g),j.stderr.on("data",g),j.on("error",a=>{d||(d=!0,clearTimeout(e),i(),c(a))}),j.on("exit",(a,b)=>{if(A=null,(0,m.r4)(),!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}B&&B(),i()})})}function E(a){if(A){try{A.kill()}catch(a){}A=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 F(){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=6e4,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){try{return await Promise.race([i.resolve4(a),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]),!0}catch{return!1}}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:()=>x,Jv:()=>u,Qn:()=>o,Rg:()=>t,cb:()=>s,mh:()=>v,oN:()=>p,rH:()=>w});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}async function q(a,b){await fetch(`${l}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function r(a,b){if(a.cancelled)throw Error(`${b} cancelled`)}async function s(a=20128){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{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0}}}(0,g.ss)(a),r(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||(await q(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);r(b,"tunnel");let n=`https://r${j}.9router.com`;return await q(j,m),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:m}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:m}),await (0,k.tm)(n,b),{success:!0,tunnelUrl:m,shortId:j,publicUrl:n}}finally{m.spawnInProgress=!1}}async function t(){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:""}),{success:!0}}async function u(){let a=(0,f.C7)(),b=(0,g.nN)(),c=await (0,i.getSettings)(),d=a?.shortId||"",e=d?`https://r${d}.9router.com`:"";return{enabled:!0===c.tunnelEnabled&&b,settingsEnabled:!0===c.tunnelEnabled,tunnelUrl:a?.tunnelUrl||"",shortId:d,publicUrl:e,running:b}}async function v(a=20128){n.cancelToken={cancelled:!1},n.activeLocalPort=a,n.spawnInProgress=!0;let b=n.cancelToken;try{let c=(0,j.getCachedPassword)()||await (0,j.loadEncryptedPassword)()||"";await (0,h.OZ)(c),r(b,"tailscale");let d=(0,f.C7)(),e=d?.shortId||(0,f.jd)();if(!(0,h.a$)()){let a=await (0,h.c$)(e);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}r(b,"tailscale"),(0,h.PZ)();let g=await (0,h.LC)(a);if(r(b,"tailscale"),g.funnelNotEnabled)return{success:!1,funnelNotEnabled:!0,enableUrl:g.enableUrl};if(!(0,h.a$)()||!(0,h.Kp)())return(0,h.PZ)(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};return await (0,i.Xx)({tailscaleEnabled:!0,tailscaleUrl:g.tunnelUrl}),await (0,k.tm)(g.tunnelUrl,b),{success:!0,tunnelUrl:g.tunnelUrl}}finally{n.spawnInProgress=!1}}async function w(){return n.cancelToken.cancelled=!0,(0,h.PZ)(),await (0,i.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function x(){let a=await (0,i.getSettings)(),b=(0,h.Kp)();return{enabled:!0===a.tailscaleEnabled&&b,settingsEnabled:!0===a.tailscaleEnabled,tunnelUrl:a.tailscaleUrl||"",running:b}}}};
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.n,"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,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(),a({child:o,tunnelUrl:g});return}g!==f&&(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)(),!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=6e4,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){try{return await Promise.race([i.resolve4(a),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]),!0}catch{return!1}}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:()=>x,Jv:()=>u,Qn:()=>o,Rg:()=>t,cb:()=>s,mh:()=>v,oN:()=>p,rH:()=>w});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}async function q(a,b){await fetch(`${l}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function r(a,b){if(a.cancelled)throw Error(`${b} cancelled`)}async function s(a=20128){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{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0}}}(0,g.ss)(a),r(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||(await q(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);r(b,"tunnel");let n=`https://r${j}.9router.com`;return await q(j,m),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:m}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:m}),await (0,k.tm)(n,b),{success:!0,tunnelUrl:m,shortId:j,publicUrl:n}}finally{m.spawnInProgress=!1}}async function t(){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:""}),{success:!0}}async function u(){let a=(0,f.C7)(),b=(0,g.nN)(),c=await (0,i.getSettings)(),d=a?.shortId||"",e=d?`https://r${d}.9router.com`:"";return{enabled:!0===c.tunnelEnabled&&b,settingsEnabled:!0===c.tunnelEnabled,tunnelUrl:a?.tunnelUrl||"",shortId:d,publicUrl:e,running:b}}async function v(a=20128){n.cancelToken={cancelled:!1},n.activeLocalPort=a,n.spawnInProgress=!0;let b=n.cancelToken;try{let c=(0,j.getCachedPassword)()||await (0,j.loadEncryptedPassword)()||"";await (0,h.OZ)(c),r(b,"tailscale");let d=(0,f.C7)(),e=d?.shortId||(0,f.jd)();if(!(0,h.a$)()){let a=await (0,h.c$)(e);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}r(b,"tailscale"),(0,h.PZ)();let g=await (0,h.LC)(a);if(r(b,"tailscale"),g.funnelNotEnabled)return{success:!1,funnelNotEnabled:!0,enableUrl:g.enableUrl};if(!(0,h.a$)()||!(0,h.Kp)())return(0,h.PZ)(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};return await (0,i.Xx)({tailscaleEnabled:!0,tailscaleUrl:g.tunnelUrl}),await (0,k.tm)(g.tunnelUrl,b),{success:!0,tunnelUrl:g.tunnelUrl}}finally{n.spawnInProgress=!1}}async function w(){return n.cancelToken.cancelled=!0,(0,h.PZ)(),await (0,i.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function x(){let a=await (0,i.getSettings)(),b=(0,h.Kp)();return{enabled:!0===a.tailscaleEnabled&&b,settingsEnabled:!0===a.tailscaleEnabled,tunnelUrl:a.tailscaleUrl||"",running:b}}}};