@techysy/10router 1.1.0 → 1.1.1

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 (1028) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +11 -7
  3. package/app/.next-cli-build/build-manifest.json +3 -3
  4. package/app/.next-cli-build/prerender-manifest.json +26 -26
  5. package/app/.next-cli-build/react-loadable-manifest.json +1540 -0
  6. package/app/.next-cli-build/routes-manifest.json +24 -0
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +28 -28
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +8 -8
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  77. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  79. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  80. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  81. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  85. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/app/.next-cli-build/server/app/_not-found.rsc +5 -5
  89. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +5 -5
  90. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -5
  91. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  92. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  93. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  95. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  97. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  99. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  101. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  103. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  105. package/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  107. package/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  109. package/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js +1 -0
  115. package/app/.next-cli-build/server/app/api/auth/verify-password/route.js.nft.json +1 -0
  116. package/app/.next-cli-build/server/app/api/auth/verify-password/route_client-reference-manifest.js +1 -0
  117. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  118. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  124. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  126. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  130. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  132. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  136. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  138. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +2 -2
  140. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  144. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  146. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  148. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  150. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  152. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  156. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  158. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  160. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  166. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  168. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  170. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  172. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  174. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  176. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/keys/rotate/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/keys/rotate/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  180. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  182. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  184. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  186. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  188. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  190. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  192. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  194. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  200. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js +1 -0
  202. package/app/.next-cli-build/server/app/api/models/custom/bulk/route.js.nft.json +1 -0
  203. package/app/.next-cli-build/server/app/api/models/custom/bulk/route_client-reference-manifest.js +1 -0
  204. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  205. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  207. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  209. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  211. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  213. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  215. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js +1 -1
  217. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/checkin/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js +1 -1
  219. package/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/export/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  221. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  223. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  225. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  227. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  229. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  231. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  233. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js +1 -0
  245. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route.js.nft.json +1 -0
  246. package/app/.next-cli-build/server/app/api/oauth/transfer/export/route_client-reference-manifest.js +1 -0
  247. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js +1 -0
  248. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route.js.nft.json +1 -0
  249. package/app/.next-cli-build/server/app/api/oauth/transfer/import/route_client-reference-manifest.js +1 -0
  250. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/api-key/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  253. package/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  277. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  287. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  289. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  291. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  293. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  295. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  297. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  299. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  300. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  301. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  302. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  303. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  304. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  305. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  307. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  308. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  309. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  310. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js +1 -1
  311. package/app/.next-cli-build/server/app/api/settings/database/import-usage/route.js.nft.json +1 -1
  312. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  313. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  314. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  315. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  316. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  317. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  318. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  319. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  320. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  323. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  324. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  325. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  327. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  328. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  331. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  332. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  333. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  335. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  336. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +3 -3
  349. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  351. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  353. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  357. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  359. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  369. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  373. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  374. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  375. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  376. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  377. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  378. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  379. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  380. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  381. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  382. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  383. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  384. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  387. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  393. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  415. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/callback/page.js +1 -1
  423. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  425. package/app/.next-cli-build/server/app/callback.html +1 -1
  426. package/app/.next-cli-build/server/app/callback.rsc +5 -5
  427. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +5 -5
  428. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  429. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +5 -5
  430. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  431. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +7 -7
  432. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +7 -7
  433. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +7 -7
  434. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  435. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  436. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +7 -7
  437. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +7 -7
  438. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  439. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  440. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  441. package/app/.next-cli-build/server/app/dashboard/combos.rsc +7 -7
  442. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +7 -7
  443. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  444. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  445. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  446. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +7 -7
  447. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +7 -7
  448. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  449. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  450. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  451. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +7 -7
  452. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +7 -7
  453. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +7 -7
  454. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  455. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  456. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +7 -7
  457. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +7 -7
  458. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +7 -7
  459. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  460. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  461. package/app/.next-cli-build/server/app/dashboard/profile.rsc +7 -7
  462. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +7 -7
  463. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +7 -7
  464. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  465. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  466. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +7 -7
  467. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +7 -7
  468. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  469. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  470. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  471. package/app/.next-cli-build/server/app/dashboard/providers.rsc +7 -7
  472. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +7 -7
  473. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  474. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  475. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  476. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +7 -7
  477. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +7 -7
  478. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +7 -7
  479. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  480. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  481. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +7 -7
  482. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +7 -7
  483. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
  484. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  485. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  486. package/app/.next-cli-build/server/app/dashboard/quota.rsc +8 -8
  487. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +8 -8
  488. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +8 -8
  489. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  490. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +1 -1
  491. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  492. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  493. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  494. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  495. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  496. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  497. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +5 -5
  498. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  499. package/app/.next-cli-build/server/app/dashboard/skills.rsc +7 -7
  500. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +7 -7
  501. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +7 -7
  502. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  503. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +7 -7
  505. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  506. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  507. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  508. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  509. package/app/.next-cli-build/server/app/dashboard/translator.rsc +7 -7
  510. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +7 -7
  511. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  512. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  513. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  514. package/app/.next-cli-build/server/app/dashboard/usage.rsc +7 -7
  515. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +7 -7
  516. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  517. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  518. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  519. package/app/.next-cli-build/server/app/dashboard.rsc +7 -7
  520. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +7 -7
  521. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +7 -7
  522. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  523. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  524. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  525. package/app/.next-cli-build/server/app/index.html +1 -1
  526. package/app/.next-cli-build/server/app/index.rsc +5 -5
  527. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +5 -5
  528. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +5 -5
  529. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  530. package/app/.next-cli-build/server/app/landing/page.js +1 -1
  531. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  532. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  533. package/app/.next-cli-build/server/app/landing.html +1 -1
  534. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  535. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  536. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  537. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +6 -6
  538. package/app/.next-cli-build/server/app/login/page.js +1 -1
  539. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  540. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  541. package/app/.next-cli-build/server/app/login.html +1 -1
  542. package/app/.next-cli-build/server/app/login.rsc +6 -6
  543. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +6 -6
  544. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  545. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  546. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  547. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  548. package/app/.next-cli-build/server/app/page.js +1 -1
  549. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  550. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  551. package/app/.next-cli-build/server/app-paths-manifest.json +11 -7
  552. package/app/.next-cli-build/server/chunks/1159.js +1 -0
  553. package/app/.next-cli-build/server/chunks/1260.js +1 -1
  554. package/app/.next-cli-build/server/chunks/1377.js +1 -1
  555. package/app/.next-cli-build/server/chunks/1937.js +1 -1
  556. package/app/.next-cli-build/server/chunks/{3212.js → 2112.js} +1 -1
  557. package/app/.next-cli-build/server/chunks/2120.js +1 -0
  558. package/app/.next-cli-build/server/chunks/2132.js +1 -1
  559. package/app/.next-cli-build/server/chunks/2179.js +1 -1
  560. package/app/.next-cli-build/server/chunks/3651.js +92 -0
  561. package/app/.next-cli-build/server/chunks/3662.js +1 -1
  562. package/app/.next-cli-build/server/chunks/3879.js +1 -0
  563. package/app/.next-cli-build/server/chunks/3901.js +1 -0
  564. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  565. package/app/.next-cli-build/server/chunks/3962.js +1 -1
  566. package/app/.next-cli-build/server/chunks/4037.js +1 -1
  567. package/app/.next-cli-build/server/chunks/4049.js +1 -1
  568. package/app/.next-cli-build/server/chunks/4123.js +1 -1
  569. package/app/.next-cli-build/server/chunks/4293.js +1 -1
  570. package/app/.next-cli-build/server/chunks/436.js +1 -0
  571. package/app/.next-cli-build/server/chunks/4840.js +1 -0
  572. package/app/.next-cli-build/server/chunks/4862.js +1 -0
  573. package/app/.next-cli-build/server/chunks/4985.js +1 -1
  574. package/app/.next-cli-build/server/chunks/5182.js +1 -1
  575. package/app/.next-cli-build/server/chunks/5217.js +2 -2
  576. package/app/.next-cli-build/server/chunks/{318.js → 5330.js} +3 -3
  577. package/app/.next-cli-build/server/chunks/5433.js +1 -1
  578. package/app/.next-cli-build/server/chunks/5485.js +1 -0
  579. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  580. package/app/.next-cli-build/server/chunks/5781.js +2 -2
  581. package/app/.next-cli-build/server/chunks/595.js +1 -1
  582. package/app/.next-cli-build/server/chunks/6070.js +1 -1
  583. package/app/.next-cli-build/server/chunks/615.js +1 -1
  584. package/app/.next-cli-build/server/chunks/6212.js +1 -0
  585. package/app/.next-cli-build/server/chunks/6306.js +1 -1
  586. package/app/.next-cli-build/server/chunks/6326.js +1 -1
  587. package/app/.next-cli-build/server/chunks/6457.js +2 -2
  588. package/app/.next-cli-build/server/chunks/653.js +1 -1
  589. package/app/.next-cli-build/server/chunks/6871.js +1 -1
  590. package/app/.next-cli-build/server/chunks/6960.js +7 -0
  591. package/app/.next-cli-build/server/chunks/7239.js +1 -1
  592. package/app/.next-cli-build/server/chunks/7247.js +1 -1
  593. package/app/.next-cli-build/server/chunks/7322.js +2 -2
  594. package/app/.next-cli-build/server/chunks/7805.js +1 -1
  595. package/app/.next-cli-build/server/chunks/7843.js +51 -0
  596. package/app/.next-cli-build/server/chunks/8145.js +1 -1
  597. package/app/.next-cli-build/server/chunks/8410.js +1 -0
  598. package/app/.next-cli-build/server/chunks/8499.js +3 -53
  599. package/app/.next-cli-build/server/chunks/8546.js +1 -1
  600. package/app/.next-cli-build/server/chunks/8635.js +3 -0
  601. package/app/.next-cli-build/server/chunks/869.js +1 -1
  602. package/app/.next-cli-build/server/chunks/877.js +65 -0
  603. package/app/.next-cli-build/server/chunks/8838.js +1 -1
  604. package/app/.next-cli-build/server/chunks/8990.js +1 -1
  605. package/app/.next-cli-build/server/chunks/937.js +1 -0
  606. package/app/.next-cli-build/server/chunks/939.js +1 -0
  607. package/app/.next-cli-build/server/chunks/9609.js +1 -1
  608. package/app/.next-cli-build/server/chunks/9679.js +1 -0
  609. package/app/.next-cli-build/server/chunks/9713.js +1 -0
  610. package/app/.next-cli-build/server/instrumentation.js +1 -1
  611. package/app/.next-cli-build/server/instrumentation.js.nft.json +1 -1
  612. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  613. package/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  614. package/app/.next-cli-build/server/middleware.js +7 -7
  615. package/app/.next-cli-build/server/middleware.js.nft.json +1 -1
  616. package/app/.next-cli-build/server/pages/404.html +1 -1
  617. package/app/.next-cli-build/server/pages/500.html +1 -1
  618. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  619. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  620. package/app/.next-cli-build/static/ZVF_AsRusUqo_O-OyJWPo/_buildManifest.js +1 -0
  621. package/app/.next-cli-build/static/chunks/1243-220f1fd87235cb92.js +3 -0
  622. package/app/.next-cli-build/static/chunks/1321-ad1ba3dfb4f417dd.js +1 -0
  623. package/app/.next-cli-build/static/chunks/1728-9783950fd2b6ad81.js +65 -0
  624. package/app/.next-cli-build/static/chunks/3170-8dc71548e5b2cbf9.js +1 -0
  625. package/app/.next-cli-build/static/chunks/5497-8b67dd598415a05b.js +7 -0
  626. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-05baf24fe36fbd8f.js → page-5d45a84bf4178e23.js} +1 -1
  627. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-272386fb26fd75c3.js → page-d9b185c845eb0735.js} +1 -1
  628. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-f098adefd36910e1.js → page-baf9fb2b236ff509.js} +1 -1
  629. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/{page-a2a6c56b7776af70.js → page-395c2359af9bc2a9.js} +1 -1
  630. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-cfdc0f6cf601fb4f.js → page-30c02c5c5eefddbd.js} +1 -1
  631. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-c748c385fd4207db.js +1 -0
  632. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-df8dac9c150f9f1e.js +59 -0
  633. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-23a27239721d0c86.js → page-502e7efb917191b9.js} +1 -1
  634. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-11b1e63e5750aa80.js → page-244f4c72b60bf0a0.js} +2 -2
  635. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-fa0de4d9f54eb3ef.js → page-720b5ab2e46fc6bb.js} +1 -1
  636. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-d4b67cdea67b89d0.js → page-12cb89849a36b78d.js} +1 -1
  637. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-6abbed908eb3721a.js +1 -0
  638. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-d8fb1a26657cc67f.js +1 -0
  639. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-f9d2dd98fde8ba67.js +14 -0
  640. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-a04315501559f028.js → page-40e882239717e69f.js} +1 -1
  641. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-c1757ed34595dcdb.js → page-e5e78bb5f4aa4063.js} +1 -1
  642. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-46d86481868d6900.js → page-4f50d3385b23743f.js} +1 -1
  643. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-895a59d896e1399c.js → page-5f5434b22c7f7b73.js} +1 -1
  644. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-1ce31613b04ec926.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-e16aaf24dc525a49.js → page-6a0eb15b8664e682.js} +1 -1
  646. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-d17ab83ab811a84c.js → page-27bf96f0f2568f09.js} +1 -1
  647. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-346541a45bcf828f.js → page-b2a5c4828ff3f6e0.js} +1 -1
  648. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-f3c3284e4b3cb324.js → page-a442053054654766.js} +1 -1
  649. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-1cffa0a228a79ad6.js → layout-158175db070fe14c.js} +1 -1
  650. package/app/.next-cli-build/static/chunks/app/_global-error/page-73a852c9be713797.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-73a852c9be713797.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-73a852c9be713797.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-73a852c9be713797.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-73a852c9be713797.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-73a852c9be713797.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-73a852c9be713797.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-73a852c9be713797.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-73a852c9be713797.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-73a852c9be713797.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-73a852c9be713797.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-73a852c9be713797.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/auth/verify-password/route-73a852c9be713797.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-73a852c9be713797.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-73a852c9be713797.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-73a852c9be713797.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-73a852c9be713797.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-73a852c9be713797.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-73a852c9be713797.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-73a852c9be713797.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-73a852c9be713797.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-73a852c9be713797.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-73a852c9be713797.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-73a852c9be713797.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-73a852c9be713797.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-73a852c9be713797.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-73a852c9be713797.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-73a852c9be713797.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-73a852c9be713797.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-73a852c9be713797.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-73a852c9be713797.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-73a852c9be713797.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-73a852c9be713797.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/combos/route-73a852c9be713797.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-73a852c9be713797.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-73a852c9be713797.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-73a852c9be713797.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-73a852c9be713797.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-73a852c9be713797.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-73a852c9be713797.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/health/route-73a852c9be713797.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/init/route-73a852c9be713797.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-73a852c9be713797.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-73a852c9be713797.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/keys/route-73a852c9be713797.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/locale/route-73a852c9be713797.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-73a852c9be713797.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-73a852c9be713797.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-73a852c9be713797.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-73a852c9be713797.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-73a852c9be713797.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-73a852c9be713797.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-73a852c9be713797.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-73a852c9be713797.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-73a852c9be713797.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/models/custom/bulk/route-73a852c9be713797.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-73a852c9be713797.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-73a852c9be713797.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/models/route-73a852c9be713797.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/models/test/route-73a852c9be713797.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-73a852c9be713797.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-73a852c9be713797.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-73a852c9be713797.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-73a852c9be713797.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-73a852c9be713797.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-73a852c9be713797.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-73a852c9be713797.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-73a852c9be713797.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-73a852c9be713797.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-73a852c9be713797.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-73a852c9be713797.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-73a852c9be713797.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-73a852c9be713797.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-73a852c9be713797.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-73a852c9be713797.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-73a852c9be713797.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/export/route-73a852c9be713797.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/oauth/transfer/import/route-73a852c9be713797.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-73a852c9be713797.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-73a852c9be713797.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/pricing/route-73a852c9be713797.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-73a852c9be713797.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-73a852c9be713797.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-73a852c9be713797.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-73a852c9be713797.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-73a852c9be713797.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-73a852c9be713797.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-73a852c9be713797.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-73a852c9be713797.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-73a852c9be713797.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/providers/route-73a852c9be713797.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-73a852c9be713797.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-73a852c9be713797.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-73a852c9be713797.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-73a852c9be713797.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-73a852c9be713797.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-73a852c9be713797.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-73a852c9be713797.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-73a852c9be713797.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-73a852c9be713797.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-73a852c9be713797.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-73a852c9be713797.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-73a852c9be713797.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-73a852c9be713797.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-73a852c9be713797.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-73a852c9be713797.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-73a852c9be713797.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-73a852c9be713797.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-73a852c9be713797.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-73a852c9be713797.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-73a852c9be713797.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-73a852c9be713797.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/settings/route-73a852c9be713797.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-73a852c9be713797.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/tags/route-73a852c9be713797.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-73a852c9be713797.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-73a852c9be713797.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-73a852c9be713797.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-73a852c9be713797.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-73a852c9be713797.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-73a852c9be713797.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-73a852c9be713797.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-73a852c9be713797.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-73a852c9be713797.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-73a852c9be713797.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-73a852c9be713797.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-73a852c9be713797.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-73a852c9be713797.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-73a852c9be713797.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-73a852c9be713797.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-73a852c9be713797.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-73a852c9be713797.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-73a852c9be713797.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-73a852c9be713797.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-73a852c9be713797.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-73a852c9be713797.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-73a852c9be713797.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-73a852c9be713797.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-73a852c9be713797.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-73a852c9be713797.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-73a852c9be713797.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-73a852c9be713797.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-73a852c9be713797.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-73a852c9be713797.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-73a852c9be713797.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-73a852c9be713797.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-73a852c9be713797.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-73a852c9be713797.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-73a852c9be713797.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-73a852c9be713797.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-73a852c9be713797.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-73a852c9be713797.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/v1/route-73a852c9be713797.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-73a852c9be713797.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-73a852c9be713797.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-73a852c9be713797.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-73a852c9be713797.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-73a852c9be713797.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-73a852c9be713797.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-73a852c9be713797.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-73a852c9be713797.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/version/route-73a852c9be713797.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-73a852c9be713797.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/version/update/route-73a852c9be713797.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/landing/page-da7215e0796dbf9b.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/login/{page-f3c1df1fc132afda.js → page-0da5fcc5d841cbb9.js} +1 -1
  816. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-73a852c9be713797.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/page-73a852c9be713797.js +1 -0
  818. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-73a852c9be713797.js +1 -0
  819. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-73a852c9be713797.js +1 -0
  820. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-73a852c9be713797.js +1 -0
  821. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-73a852c9be713797.js +1 -0
  822. package/app/.next-cli-build/static/chunks/{webpack-f52125609b4734b6.js → webpack-77a7ed7beb6725df.js} +1 -1
  823. package/app/.next-cli-build/static/css/adecbbef384db8e1.css +1 -0
  824. package/app/custom-server.js +177 -167
  825. package/app/package.json +2 -1
  826. package/app/public/i18n/changelog/en.md +203 -179
  827. package/app/public/i18n/changelog/zh-CN.md +201 -177
  828. package/app/public/i18n/changelog/zh-TW.md +203 -179
  829. package/app/public/i18n/literals/zh-CN.json +85 -6
  830. package/app/public/i18n/literals/zh-TW.json +126 -4
  831. package/app/public/providers/amd.png +0 -0
  832. package/app/src/lib/consoleArchiveStandalone.mjs +73 -0
  833. package/app/src/sse/services/codebuddyCheckin.js +308 -54
  834. package/package.json +1 -1
  835. package/app/.next-cli-build/server/chunks/1636.js +0 -1
  836. package/app/.next-cli-build/server/chunks/2765.js +0 -1
  837. package/app/.next-cli-build/server/chunks/295.js +0 -1
  838. package/app/.next-cli-build/server/chunks/412.js +0 -7
  839. package/app/.next-cli-build/server/chunks/4665.js +0 -65
  840. package/app/.next-cli-build/server/chunks/525.js +0 -1
  841. package/app/.next-cli-build/server/chunks/6877.js +0 -1
  842. package/app/.next-cli-build/server/chunks/7211.js +0 -1
  843. package/app/.next-cli-build/server/chunks/7913.js +0 -92
  844. package/app/.next-cli-build/server/chunks/8363.js +0 -1
  845. package/app/.next-cli-build/server/chunks/8444.js +0 -3
  846. package/app/.next-cli-build/server/chunks/9896.js +0 -1
  847. package/app/.next-cli-build/static/chunks/1243-a9f0940294c15c24.js +0 -3
  848. package/app/.next-cli-build/static/chunks/1321-0167273f2d678ede.js +0 -1
  849. package/app/.next-cli-build/static/chunks/4614-de3422f98b83f305.js +0 -65
  850. package/app/.next-cli-build/static/chunks/5242-bb1a1a7ec3bfb62f.js +0 -1
  851. package/app/.next-cli-build/static/chunks/5497-a55c9d3d9f5b5cbf.js +0 -7
  852. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-36c5d10e7c244d2d.js +0 -1
  853. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-b475f81b3d89c963.js +0 -59
  854. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-237c096548d0981d.js +0 -1
  855. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-cd93d4f0b910293c.js +0 -1
  856. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-60c620ec082ed541.js +0 -14
  857. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c7ef8300ebeb4889.js +0 -1
  858. package/app/.next-cli-build/static/chunks/app/_global-error/page-f5ad4d359abeda22.js +0 -1
  859. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-f5ad4d359abeda22.js +0 -1
  860. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-f5ad4d359abeda22.js +0 -1
  861. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-f5ad4d359abeda22.js +0 -1
  862. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-f5ad4d359abeda22.js +0 -1
  863. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-f5ad4d359abeda22.js +0 -1
  864. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-f5ad4d359abeda22.js +0 -1
  865. package/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-f5ad4d359abeda22.js +0 -1
  866. package/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-f5ad4d359abeda22.js +0 -1
  867. package/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-f5ad4d359abeda22.js +0 -1
  868. package/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-f5ad4d359abeda22.js +0 -1
  869. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-f5ad4d359abeda22.js +0 -1
  870. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-f5ad4d359abeda22.js +0 -1
  871. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-f5ad4d359abeda22.js +0 -1
  872. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-f5ad4d359abeda22.js +0 -1
  873. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-f5ad4d359abeda22.js +0 -1
  874. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-f5ad4d359abeda22.js +0 -1
  875. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-f5ad4d359abeda22.js +0 -1
  876. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-f5ad4d359abeda22.js +0 -1
  877. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-f5ad4d359abeda22.js +0 -1
  878. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-f5ad4d359abeda22.js +0 -1
  879. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-f5ad4d359abeda22.js +0 -1
  880. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-f5ad4d359abeda22.js +0 -1
  881. package/app/.next-cli-build/static/chunks/app/api/cli-tools/devin-settings/route-f5ad4d359abeda22.js +0 -1
  882. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-f5ad4d359abeda22.js +0 -1
  883. package/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-f5ad4d359abeda22.js +0 -1
  884. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-f5ad4d359abeda22.js +0 -1
  885. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-f5ad4d359abeda22.js +0 -1
  886. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-f5ad4d359abeda22.js +0 -1
  887. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-f5ad4d359abeda22.js +0 -1
  888. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-f5ad4d359abeda22.js +0 -1
  889. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-f5ad4d359abeda22.js +0 -1
  890. package/app/.next-cli-build/static/chunks/app/api/combos/route-f5ad4d359abeda22.js +0 -1
  891. package/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-f5ad4d359abeda22.js +0 -1
  892. package/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-f5ad4d359abeda22.js +0 -1
  893. package/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-f5ad4d359abeda22.js +0 -1
  894. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-f5ad4d359abeda22.js +0 -1
  895. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-f5ad4d359abeda22.js +0 -1
  896. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-f5ad4d359abeda22.js +0 -1
  897. package/app/.next-cli-build/static/chunks/app/api/health/route-f5ad4d359abeda22.js +0 -1
  898. package/app/.next-cli-build/static/chunks/app/api/init/route-f5ad4d359abeda22.js +0 -1
  899. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-f5ad4d359abeda22.js +0 -1
  900. package/app/.next-cli-build/static/chunks/app/api/keys/rotate/route-f5ad4d359abeda22.js +0 -1
  901. package/app/.next-cli-build/static/chunks/app/api/keys/route-f5ad4d359abeda22.js +0 -1
  902. package/app/.next-cli-build/static/chunks/app/api/locale/route-f5ad4d359abeda22.js +0 -1
  903. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-f5ad4d359abeda22.js +0 -1
  904. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-f5ad4d359abeda22.js +0 -1
  905. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-f5ad4d359abeda22.js +0 -1
  906. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-f5ad4d359abeda22.js +0 -1
  907. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-f5ad4d359abeda22.js +0 -1
  908. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-f5ad4d359abeda22.js +0 -1
  909. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-f5ad4d359abeda22.js +0 -1
  910. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-f5ad4d359abeda22.js +0 -1
  911. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-f5ad4d359abeda22.js +0 -1
  912. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-f5ad4d359abeda22.js +0 -1
  913. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-f5ad4d359abeda22.js +0 -1
  914. package/app/.next-cli-build/static/chunks/app/api/models/route-f5ad4d359abeda22.js +0 -1
  915. package/app/.next-cli-build/static/chunks/app/api/models/test/route-f5ad4d359abeda22.js +0 -1
  916. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-f5ad4d359abeda22.js +0 -1
  917. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-f5ad4d359abeda22.js +0 -1
  918. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/checkin/route-f5ad4d359abeda22.js +0 -1
  919. package/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/export/route-f5ad4d359abeda22.js +0 -1
  920. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-f5ad4d359abeda22.js +0 -1
  921. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-f5ad4d359abeda22.js +0 -1
  922. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-f5ad4d359abeda22.js +0 -1
  923. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-f5ad4d359abeda22.js +0 -1
  924. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-f5ad4d359abeda22.js +0 -1
  925. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-f5ad4d359abeda22.js +0 -1
  926. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-f5ad4d359abeda22.js +0 -1
  927. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-f5ad4d359abeda22.js +0 -1
  928. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-f5ad4d359abeda22.js +0 -1
  929. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-f5ad4d359abeda22.js +0 -1
  930. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-f5ad4d359abeda22.js +0 -1
  931. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-f5ad4d359abeda22.js +0 -1
  932. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-f5ad4d359abeda22.js +0 -1
  933. package/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-f5ad4d359abeda22.js +0 -1
  934. package/app/.next-cli-build/static/chunks/app/api/pricing/route-f5ad4d359abeda22.js +0 -1
  935. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-f5ad4d359abeda22.js +0 -1
  936. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-f5ad4d359abeda22.js +0 -1
  937. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-f5ad4d359abeda22.js +0 -1
  938. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-f5ad4d359abeda22.js +0 -1
  939. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-f5ad4d359abeda22.js +0 -1
  940. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-f5ad4d359abeda22.js +0 -1
  941. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-f5ad4d359abeda22.js +0 -1
  942. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-f5ad4d359abeda22.js +0 -1
  943. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-f5ad4d359abeda22.js +0 -1
  944. package/app/.next-cli-build/static/chunks/app/api/providers/route-f5ad4d359abeda22.js +0 -1
  945. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-f5ad4d359abeda22.js +0 -1
  946. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-f5ad4d359abeda22.js +0 -1
  947. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-f5ad4d359abeda22.js +0 -1
  948. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-f5ad4d359abeda22.js +0 -1
  949. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-f5ad4d359abeda22.js +0 -1
  950. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-f5ad4d359abeda22.js +0 -1
  951. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-f5ad4d359abeda22.js +0 -1
  952. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-f5ad4d359abeda22.js +0 -1
  953. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-f5ad4d359abeda22.js +0 -1
  954. package/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-f5ad4d359abeda22.js +0 -1
  955. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-f5ad4d359abeda22.js +0 -1
  956. package/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-f5ad4d359abeda22.js +0 -1
  957. package/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-f5ad4d359abeda22.js +0 -1
  958. package/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-f5ad4d359abeda22.js +0 -1
  959. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-f5ad4d359abeda22.js +0 -1
  960. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-f5ad4d359abeda22.js +0 -1
  961. package/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-f5ad4d359abeda22.js +0 -1
  962. package/app/.next-cli-build/static/chunks/app/api/settings/database/import-usage/route-f5ad4d359abeda22.js +0 -1
  963. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-f5ad4d359abeda22.js +0 -1
  964. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-f5ad4d359abeda22.js +0 -1
  965. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-f5ad4d359abeda22.js +0 -1
  966. package/app/.next-cli-build/static/chunks/app/api/settings/route-f5ad4d359abeda22.js +0 -1
  967. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-f5ad4d359abeda22.js +0 -1
  968. package/app/.next-cli-build/static/chunks/app/api/tags/route-f5ad4d359abeda22.js +0 -1
  969. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-f5ad4d359abeda22.js +0 -1
  970. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-f5ad4d359abeda22.js +0 -1
  971. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-f5ad4d359abeda22.js +0 -1
  972. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-f5ad4d359abeda22.js +0 -1
  973. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-f5ad4d359abeda22.js +0 -1
  974. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-f5ad4d359abeda22.js +0 -1
  975. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-f5ad4d359abeda22.js +0 -1
  976. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-f5ad4d359abeda22.js +0 -1
  977. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-f5ad4d359abeda22.js +0 -1
  978. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-f5ad4d359abeda22.js +0 -1
  979. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-f5ad4d359abeda22.js +0 -1
  980. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-f5ad4d359abeda22.js +0 -1
  981. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-f5ad4d359abeda22.js +0 -1
  982. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-f5ad4d359abeda22.js +0 -1
  983. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-f5ad4d359abeda22.js +0 -1
  984. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-f5ad4d359abeda22.js +0 -1
  985. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-f5ad4d359abeda22.js +0 -1
  986. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-f5ad4d359abeda22.js +0 -1
  987. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-f5ad4d359abeda22.js +0 -1
  988. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-f5ad4d359abeda22.js +0 -1
  989. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-f5ad4d359abeda22.js +0 -1
  990. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-f5ad4d359abeda22.js +0 -1
  991. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-f5ad4d359abeda22.js +0 -1
  992. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-f5ad4d359abeda22.js +0 -1
  993. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-f5ad4d359abeda22.js +0 -1
  994. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-f5ad4d359abeda22.js +0 -1
  995. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-f5ad4d359abeda22.js +0 -1
  996. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-f5ad4d359abeda22.js +0 -1
  997. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-f5ad4d359abeda22.js +0 -1
  998. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-f5ad4d359abeda22.js +0 -1
  999. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-f5ad4d359abeda22.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-f5ad4d359abeda22.js +0 -1
  1001. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-f5ad4d359abeda22.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-f5ad4d359abeda22.js +0 -1
  1003. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-f5ad4d359abeda22.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-f5ad4d359abeda22.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-f5ad4d359abeda22.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/api/v1/route-f5ad4d359abeda22.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-f5ad4d359abeda22.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-f5ad4d359abeda22.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-f5ad4d359abeda22.js +0 -1
  1010. package/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-f5ad4d359abeda22.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-f5ad4d359abeda22.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-f5ad4d359abeda22.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-f5ad4d359abeda22.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-f5ad4d359abeda22.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/version/route-f5ad4d359abeda22.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-f5ad4d359abeda22.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/version/update/route-f5ad4d359abeda22.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/landing/page-abe5fbd51346146f.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-f5ad4d359abeda22.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/page-f5ad4d359abeda22.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-f5ad4d359abeda22.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-f5ad4d359abeda22.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-f5ad4d359abeda22.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-f5ad4d359abeda22.js +0 -1
  1025. package/app/.next-cli-build/static/css/87048d3b7e880a4f.css +0 -1
  1026. package/app/.next-cli-build/static/rBJbR_XYSlh3OgKbcSSXs/_buildManifest.js +0 -1
  1027. package/app/public/providers/apinex.png +0 -0
  1028. /package/app/.next-cli-build/static/{rBJbR_XYSlh3OgKbcSSXs → ZVF_AsRusUqo_O-OyJWPo}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=6457,exports.ids=[6457],exports.modules={66457:(a,b,c)=>{c.d(b,{rI:()=>bd,cw:()=>bb,Lh:()=>ba,Z2:()=>aq,Lx:()=>be,DA:()=>bc,u7:()=>a9,rH:()=>a5,Rg:()=>ae,mh:()=>a4,cb:()=>ad,Al:()=>J,jd:()=>o,Dd:()=>H,SF:()=>aB,oN:()=>a2,H4:()=>a6,Qn:()=>$,Jv:()=>af,A1:()=>aM,nN:()=>Q,si:()=>aT,D:()=>aJ,xh:()=>aC,a$:()=>aG,Kp:()=>aH,hp:()=>aI,ss:()=>P,C7:()=>m,X$:()=>aa,LC:()=>aX});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.nJ,"tunnel"),j=g().join(i,"state.json"),k="abcdefghijklmnpqrstuvwxyz23456789";function l(){e().existsSync(i)||e().mkdirSync(i,{recursive:!0})}function m(){try{if(e().existsSync(j))return JSON.parse(e().readFileSync(j,"utf8"))}catch{}return null}function n(a){l(),e().writeFileSync(j,JSON.stringify(a,null,2))}function o(){let a="";for(let b=0;b<6;b++)a+=k.charAt(Math.floor(Math.random()*k.length));return a}var p=c(55591),q=c.n(p),r=c(21820),s=c.n(r),t=c(79646);let u=g().join(i,"cloudflared.pid");function v(){try{if(e().existsSync(u))return parseInt(e().readFileSync(u,"utf8"))}catch{}return null}function w(a=null){try{if(!e().existsSync(u)||null!==a&&v()!==a)return!1;return e().unlinkSync(u),!0}catch{}return!1}let x=g().join(h.nJ,"bin"),y="cloudflared",z="win32"===s().platform(),A=z?`${y}.exe`:y,B=g().join(x,A),C="http2",D=new Set(["http2","quic","auto"]),E={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"}},F={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},G={downloading:!1,progress:0};function H(){return{downloading:G.downloading,progress:G.progress}}let I=null;async function J(){return I||(I=K().finally(()=>{I=null}))}async function K(){e().existsSync(x)||e().mkdirSync(x,{recursive:!0});let a=`${B}.tmp`;if(e().existsSync(a))try{e().unlinkSync(a)}catch{}if(e().existsSync(B))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(z)return d.startsWith("4d5a");if("darwin"===s().platform())return d.startsWith("cffaedfe")||d.startsWith("cefaedfe");return d.startsWith("7f454c46")}catch{return!1}}(B))return z||e().chmodSync(B,"755"),B;else console.log("[cloudflared] Invalid binary detected, re-downloading..."),e().unlinkSync(B);let b=function(){let a=s().platform(),b=s().arch(),c=E[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||F[a];return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),c=b.endsWith(".tgz"),d=c?g().join(x,"cloudflared.tgz.tmp"):a;return await function a(b,c){return new Promise((d,f)=>{let g=e().createWriteStream(c);q().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;G.downloading=!0,G.progress=0,b.on("data",a=>{i+=a.length,h>0&&(G.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{G.downloading=!1,G.progress=100,g.close(()=>d(c))}),g.on("error",a=>{G.downloading=!1,G.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{G.downloading=!1,G.progress=0,g.close(),e().existsSync(c)&&e().unlinkSync(c),f(a)})})}(b,d),c?((0,t.execSync)(`tar -xzf "${d}" -C "${x}"`,{stdio:"pipe",windowsHide:!0}),e().unlinkSync(d)):e().renameSync(d,B),z||e().chmodSync(B,"755"),B}let L=null,M=null,N=!1;async function O(a,b){var c;let d=await J(),f=e().mkdtempSync(g().join(s().tmpdir(),"cloudflared-quick-")),h=g().join(f,"config.yml");e().writeFileSync(h,"# quick-tunnel config placeholder\n","utf8");let i=!1,j=()=>{if(!i){i=!0;try{e().rmSync(f,{recursive:!0,force:!0})}catch(a){}}},k=String(process.env.TUNNEL_TRANSPORT_PROTOCOL||process.env.CLOUDFLARED_PROTOCOL||C).trim().toLowerCase(),m=D.has(k)?k:C,n=(0,t.spawn)(d,["tunnel","--url",`http://127.0.0.1:${a}`,"--config",h,"--no-autoupdate","--retries","99"],{detached:!1,windowsHide:!0,cwd:s().tmpdir(),env:{...process.env,TUNNEL_TRANSPORT_PROTOCOL:m},stdio:["ignore","pipe","pipe"]});return L=n,c=n.pid,l(),e().writeFileSync(u,c.toString()),new Promise((c,d)=>{let e=!1,f="",g=setTimeout(()=>{e||(e=!0,j(),d(Error(`Quick tunnel timed out. Last log: ${f.slice(-800)||"(empty)"}`)))},9e4),h=null,i=a=>{let d=a.toString();f=(f+d).slice(-4e3);let i=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}(d);if(i){if(!e){e=!0,h=i,clearTimeout(g),j(),console.log(`[Tunnel] cloudflared URL: ${i}`),c({child:n,tunnelUrl:i});return}i!==h&&(console.log(`[Tunnel] cloudflared URL changed: ${i}`),h=i,b&&b(i))}};n.stdout.on("data",i),n.stderr.on("data",i),n.on("error",a=>{e||(e=!0,clearTimeout(g),j(),d(a))}),n.on("exit",(b,c)=>{if(L===n&&(L=null),w(n.pid),N){N=!1,clearTimeout(g),j(),e||(e=!0,d(Error("cloudflared killed")));return}if(console.log(`[Tunnel] cloudflared exit code=${b} signal=${c}`),!e){e=!0,clearTimeout(g),j();let c=f.slice(-600).trim()||"(empty)";1===b?d(Error(`cloudflared quick tunnel exited (code 1). Common causes: (1) outbound port 7844 (TCP/UDP) blocked, (2) TryCloudflare service issue, (3) cannot reach 127.0.0.1:${a}, (4) protocol (http2/quic) blocked by network. Last log: ${c}`)):2===b?d(Error(`cloudflared exited (code 2). Bad arguments. Last log: ${c}`)):d(Error(`cloudflared exited (code ${b}). Last log: ${c}`));return}M&&M(),j()})})}function P(a){if(N=!0,L){try{L.kill()}catch(a){}L=null}let b=v();if(b){try{process.kill(b)}catch(a){}w()}if(a)try{if(z){let b=`Get-CimInstance Win32_Process -Filter \\"Name='cloudflared.exe'\\" | Where-Object { $_.CommandLine -match ':${a}(\\D|$)' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;(0,t.execSync)(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${b}"`,{stdio:"ignore",windowsHide:!0})}else(0,t.execSync)(`pkill -f "cloudflared.*:${a}([^0-9]|$)" 2>/dev/null || true`,{stdio:"ignore",windowsHide:!0})}catch(a){}}function Q(){let a=v();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}var R=c(14985),S=c.n(R);let T=new(S()).promises.Resolver;async function U(a,b){let c=a=>Promise.race([a(),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]).then(()=>!0).catch(()=>!1);return!!await c(()=>T.resolve4(a))||c(()=>S().promises.resolve4(a))}T.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"]);let V=process.env.TUNNEL_WORKER_URL||"https://abc-tunnel.us";async function W(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await U(b,2e3))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async function X(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<6e4;){if(b.cancelled)throw Error("cancelled");if(await W(a))return!0;await new Promise(a=>setTimeout(a,2e3))}throw Error("Health check timeout after 60000ms")}var Y=c(89718);let Z={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function $(){return Z}let _=null;function aa(a){_=a}async function ab(a,b){await fetch(`${V}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function ac(a){if(a.cancelled)throw Error("tunnel cancelled")}async function ad(a=20128){console.log(`[Tunnel] enable start (port=${a})`),Z.cancelToken={cancelled:!1},Z.activeLocalPort=a,Z.spawnInProgress=!0;let b=Z.cancelToken;try{if(Q()){let a=m();if(a?.tunnelUrl&&a?.shortId){let b=`https://r${a.shortId}.abc-tunnel.us`,[c,d]=await Promise.all([W(a.tunnelUrl),W(b)]);if(c&&d)return console.log(`[Tunnel] already running, reuse: ${a.tunnelUrl}`),{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0};console.log(`[Tunnel] stale (direct=${c} public=${d}), respawn`)}}P(a),console.log("[Tunnel] killed existing cloudflared"),ac(b);let c=m(),d=c?.shortId||o(),e=async a=>{b.cancelled||(console.log(`[Tunnel] url updated: ${a}`),await ab(d,a),n({shortId:d,tunnelUrl:a}),await (0,Y.Xx)({tunnelEnabled:!0,tunnelUrl:a}))};M=()=>{console.warn("[Tunnel] cloudflared exited unexpectedly, scheduling respawn"),_&&_()};let{tunnelUrl:f}=await O(a,e);console.log(`[Tunnel] spawned: ${f}`),ac(b);let g=`https://r${d}.abc-tunnel.us`;return await ab(d,f),n({shortId:d,tunnelUrl:f}),await (0,Y.Xx)({tunnelEnabled:!0,tunnelUrl:f}),console.log(`[Tunnel] registered shortId=${d} publicUrl=${g}`),await X(g,b),console.log("[Tunnel] public URL healthy"),await W(f)?console.log("[Tunnel] direct URL healthy"):console.warn("[Tunnel] direct URL not reachable yet, continuing via publicUrl"),console.log("[Tunnel] enable success"),{success:!0,tunnelUrl:f,shortId:d,publicUrl:g}}catch(a){throw/cloudflared killed|tunnel cancelled/.test(a.message)||console.error(`[Tunnel] enable error: ${a.message}`),a}finally{Z.spawnInProgress=!1}}async function ae(){console.log("[Tunnel] disable"),Z.cancelToken.cancelled=!0,M=null;try{P(Z.activeLocalPort)}catch(a){console.warn(`[Tunnel] kill warn: ${a.message}`)}w();let a=m();return a&&n({shortId:a.shortId,tunnelUrl:null}),await (0,Y.Xx)({tunnelEnabled:!1,tunnelUrl:""}),Z.spawnInProgress=!1,Z.activeLocalPort=null,{success:!0}}async function af(){let a=!0===(await (0,Y.getSettings)()).tunnelEnabled,b=m(),c=b?.shortId||"",d=c?`https://r${c}.abc-tunnel.us`:"",e=b?.tunnelUrl||"",f=!!a&&Q();return{enabled:a&&f,settingsEnabled:a,tunnelUrl:e,shortId:c,publicUrl:d,running:f}}var ag=c(55511),ah=c.n(ag),ai=c(28354),aj=c(66936);let ak=(0,ai.promisify)(t.exec),al=g().join(h.nJ,"bin"),am="darwin"===s().platform();s().platform();let an="win32"===s().platform(),ao=g().join(al,an?"tailscale.exe":"tailscale"),ap=g().join(h.nJ,"tailscale"),aq=g().join(ap,"tailscaled.sock"),ar=an?[]:["--socket",aq],as=an?null:"/var/run/tailscale/tailscaled.sock",at=as?["--socket",as]:[],au="C:\\Program Files\\Tailscale\\tailscale.exe",av=["/usr/local/bin/tailscale","/opt/homebrew/bin/tailscale","/usr/sbin/tailscale","/usr/bin/tailscale","/snap/bin/tailscale"],aw={value:void 0,fetchedAt:0,refreshing:!1},ax={value:!1,fetchedAt:0,refreshing:!1},ay={value:!1,fetchedAt:0,refreshing:!1},az={value:null,port:null,fetchedAt:0,refreshing:!1};function aA(){return e().existsSync(ao)?ao:an&&e().existsSync(au)?au:!an&&av.find(a=>e().existsSync(a))||null}function aB(){return Date.now()-aw.fetchedAt>1e4&&(aw.refreshing||(aw.refreshing=!0,ak(an?"where tailscale 2>nul":"which tailscale 2>/dev/null",{windowsHide:!0,timeout:1500,env:{...process.env,PATH:aN}}).then(({stdout:a})=>{aw.value=a.trim()||aA()}).catch(()=>{aw.value=aA()}).finally(()=>{aw.fetchedAt=Date.now(),aw.refreshing=!1}))),void 0===aw.value&&(e().existsSync(ao)?aw.value=ao:an&&e().existsSync(au)?aw.value=au:an?aw.value=null:aw.value=av.find(a=>e().existsSync(a))||null),aw.value}function aC(){return null!==aB()}function aD(...a){return[...ar,...a]}async function aE(){let a=aB();if(!a)return!1;try{let{stdout:b}=await ak(`"${a}" ${ar.join(" ")} status --json`,{windowsHide:!0,env:{...process.env,PATH:aN},timeout:5e3}),c=JSON.parse(b),d="Running"===c.BackendState&&c.Self?.Online===!0;return ay.value=d,ay.fetchedAt=Date.now(),d}catch{return!1}}async function aF(a){for(let b of[ar,at])try{let{stdout:c}=await ak(`"${a}" ${b.join(" ")} status --json`,{windowsHide:!0,env:{...process.env,PATH:aN},timeout:1500});return JSON.parse(c)}catch{}return null}function aG(){return Date.now()-ay.fetchedAt>1e4&&function(){if(ay.refreshing)return;let a=aB();if(!a){ay.value=!1,ay.fetchedAt=Date.now();return}ay.refreshing=!0,aF(a).then(a=>{ay.value=!!a&&"Running"===a.BackendState&&a.Self?.Online===!0}).catch(()=>{ay.value=!1}).finally(()=>{ay.fetchedAt=Date.now(),ay.refreshing=!1})}(),ay.value}function aH(){return Date.now()-ax.fetchedAt>1e4&&function(){if(ax.refreshing)return;let a=aB();if(!a){ax.value=!1,ax.fetchedAt=Date.now();return}ax.refreshing=!0,ak(`"${a}" ${ar.join(" ")} funnel status --json`,{windowsHide:!0,timeout:1500}).then(({stdout:a})=>{try{let b=JSON.parse(a);ax.value=Object.keys(b.AllowFunnel||{}).length>0}catch{ax.value=!1}}).catch(()=>{ax.value=!1}).finally(()=>{ax.fetchedAt=Date.now(),ax.refreshing=!1})}(),ax.value}async function aI(){let a=aB();if(!a)return!1;try{let{stdout:b}=await ak(`"${a}" ${ar.join(" ")} funnel status --json`,{windowsHide:!0,timeout:1500}),c=JSON.parse(b),d=Object.keys(c.AllowFunnel||{}).length>0;return ax.value=d,ax.fetchedAt=Date.now(),d}catch{return!1}}function aJ(){if(an||!as||!e().existsSync(as))return!1;let a=aB();if(!a)return!1;try{let b=(0,t.execSync)(`"${a}" ${at.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,env:{...process.env,PATH:aN},timeout:1500});return"Running"===JSON.parse(b).BackendState}catch{return!1}}function aK(){let a=aB();if(!a)return null;try{let b=(0,t.execSync)(`"${a}" ${ar.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,env:{...process.env,PATH:aN},timeout:5e3}),c=JSON.parse(b),d=c.Self?.DNSName?.replace(/\.$/,"");return d?`https://${d}`:null}catch{return null}}function aL(a){return(Date.now()-az.fetchedAt>1e4||az.port!==a)&&function(a){if(az.refreshing)return;let b=aB();b&&(az.refreshing=!0,ak(`"${b}" ${ar.join(" ")} status --json`,{windowsHide:!0,timeout:1500}).then(({stdout:a})=>{try{let b=JSON.parse(a),c=b.Self?.DNSName?.replace(/\.$/,"");az.value=c?`https://${c}`:null}catch{}}).catch(()=>{}).finally(()=>{az.port=a,az.fetchedAt=Date.now(),az.refreshing=!1}))}(a),az.value}async function aM(a,b,c){let d=c||(()=>{});return an?(await aQ(d),{success:!0}):(am?await aO(a,d):await aP(a,d),d("Starting daemon..."),await aU(a),d("Logging in..."),aW(b))}let aN=`/usr/local/bin:/opt/homebrew/bin:/usr/sbin:/usr/bin:/bin:/snap/bin:${process.env.PATH||""}`;async function aO(a,b){if(function(){try{return(0,t.execSync)("which brew",{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:aN}}),!0}catch{return!1}}()){b("Installing via Homebrew..."),await new Promise((a,c)=>{let d=(0,t.spawn)("brew",["install","tailscale"],{stdio:["ignore","pipe","pipe"],windowsHide:!0,env:{...process.env,PATH:aN}});d.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.on("close",b=>{0===b?a():c(Error(`brew install failed (code ${b})`))}),d.on("error",c)});return}let c=g().join(s().tmpdir(),"tailscale.pkg");b("Downloading Tailscale package..."),await new Promise((a,d)=>{let e=(0,t.spawn)("curl",["-fL","--progress-bar","https://pkgs.tailscale.com/stable/tailscale-latest.pkg","-o",c],{stdio:["ignore","pipe","pipe"],windowsHide:!0});e.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),e.on("close",b=>{0===b?a():d(Error("Download failed"))}),e.on("error",d)}),b("Installing package..."),await new Promise((d,e)=>{let f=(0,t.spawn)("sudo",["-S","installer","-pkg",c,"-target","/"],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),g="";f.stderr.on("data",a=>{g+=a.toString()}),f.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),f.on("close",a=>{try{(0,t.execSync)(`rm -f ${c}`,{stdio:"ignore",windowsHide:!0})}catch{}0===a?d():e(Error(g.includes("incorrect password")||g.includes("Sorry")?"Wrong sudo password":g||`Exit code ${a}`))}),f.on("error",e),f.stdin.write(`${a}
1
+ "use strict";exports.id=6457,exports.ids=[6457],exports.modules={66457:(a,b,c)=>{c.d(b,{rI:()=>bd,cw:()=>bb,Lh:()=>ba,Z2:()=>aq,Lx:()=>be,DA:()=>bc,u7:()=>a9,rH:()=>a5,Rg:()=>ae,mh:()=>a4,cb:()=>ad,Al:()=>J,jd:()=>o,Dd:()=>H,SF:()=>aB,oN:()=>a2,H4:()=>a6,Qn:()=>$,Jv:()=>af,A1:()=>aM,nN:()=>Q,si:()=>aT,D:()=>aJ,xh:()=>aC,a$:()=>aG,Kp:()=>aH,hp:()=>aI,ss:()=>P,C7:()=>m,X$:()=>aa,LC:()=>aX});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(49120);let i=g().join(h.nJ,"tunnel"),j=g().join(i,"state.json"),k="abcdefghijklmnpqrstuvwxyz23456789";function l(){e().existsSync(i)||e().mkdirSync(i,{recursive:!0})}function m(){try{if(e().existsSync(j))return JSON.parse(e().readFileSync(j,"utf8"))}catch{}return null}function n(a){l(),e().writeFileSync(j,JSON.stringify(a,null,2))}function o(){let a="";for(let b=0;b<6;b++)a+=k.charAt(Math.floor(Math.random()*k.length));return a}var p=c(55591),q=c.n(p),r=c(21820),s=c.n(r),t=c(79646);let u=g().join(i,"cloudflared.pid");function v(){try{if(e().existsSync(u))return parseInt(e().readFileSync(u,"utf8"))}catch{}return null}function w(a=null){try{if(!e().existsSync(u)||null!==a&&v()!==a)return!1;return e().unlinkSync(u),!0}catch{}return!1}let x=g().join(h.nJ,"bin"),y="cloudflared",z="win32"===s().platform(),A=z?`${y}.exe`:y,B=g().join(x,A),C="http2",D=new Set(["http2","quic","auto"]),E={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"}},F={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},G={downloading:!1,progress:0};function H(){return{downloading:G.downloading,progress:G.progress}}let I=null;async function J(){return I||(I=K().finally(()=>{I=null}))}async function K(){e().existsSync(x)||e().mkdirSync(x,{recursive:!0});let a=`${B}.tmp`;if(e().existsSync(a))try{e().unlinkSync(a)}catch{}if(e().existsSync(B))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(z)return d.startsWith("4d5a");if("darwin"===s().platform())return d.startsWith("cffaedfe")||d.startsWith("cefaedfe");return d.startsWith("7f454c46")}catch{return!1}}(B))return z||e().chmodSync(B,"755"),B;else console.log("[cloudflared] Invalid binary detected, re-downloading..."),e().unlinkSync(B);let b=function(){let a=s().platform(),b=s().arch(),c=E[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||F[a];return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),c=b.endsWith(".tgz"),d=c?g().join(x,"cloudflared.tgz.tmp"):a;return await function a(b,c){return new Promise((d,f)=>{let g=e().createWriteStream(c);q().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;G.downloading=!0,G.progress=0,b.on("data",a=>{i+=a.length,h>0&&(G.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{G.downloading=!1,G.progress=100,g.close(()=>d(c))}),g.on("error",a=>{G.downloading=!1,G.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{G.downloading=!1,G.progress=0,g.close(),e().existsSync(c)&&e().unlinkSync(c),f(a)})})}(b,d),c?((0,t.execSync)(`tar -xzf "${d}" -C "${x}"`,{stdio:"pipe",windowsHide:!0}),e().unlinkSync(d)):e().renameSync(d,B),z||e().chmodSync(B,"755"),B}let L=null,M=null,N=!1;async function O(a,b){var c;let d=await J(),f=e().mkdtempSync(g().join(s().tmpdir(),"cloudflared-quick-")),h=g().join(f,"config.yml");e().writeFileSync(h,"# quick-tunnel config placeholder\n","utf8");let i=!1,j=()=>{if(!i){i=!0;try{e().rmSync(f,{recursive:!0,force:!0})}catch(a){}}},k=String(process.env.TUNNEL_TRANSPORT_PROTOCOL||process.env.CLOUDFLARED_PROTOCOL||C).trim().toLowerCase(),m=D.has(k)?k:C,n=(0,t.spawn)(d,["tunnel","--url",`http://127.0.0.1:${a}`,"--config",h,"--no-autoupdate","--retries","99"],{detached:!1,windowsHide:!0,cwd:s().tmpdir(),env:{...process.env,TUNNEL_TRANSPORT_PROTOCOL:m},stdio:["ignore","pipe","pipe"]});return L=n,c=n.pid,l(),e().writeFileSync(u,c.toString()),new Promise((c,d)=>{let e=!1,f="",g=setTimeout(()=>{e||(e=!0,j(),d(Error(`Quick tunnel timed out. Last log: ${f.slice(-800)||"(empty)"}`)))},9e4),h=null,i=a=>{let d=a.toString();f=(f+d).slice(-4e3);let i=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}(d);if(i){if(!e){e=!0,h=i,clearTimeout(g),j(),console.log(`[Tunnel] cloudflared URL: ${i}`),c({child:n,tunnelUrl:i});return}i!==h&&(console.log(`[Tunnel] cloudflared URL changed: ${i}`),h=i,b&&b(i))}};n.stdout.on("data",i),n.stderr.on("data",i),n.on("error",a=>{e||(e=!0,clearTimeout(g),j(),d(a))}),n.on("exit",(b,c)=>{if(L===n&&(L=null),w(n.pid),N){N=!1,clearTimeout(g),j(),e||(e=!0,d(Error("cloudflared killed")));return}if(console.log(`[Tunnel] cloudflared exit code=${b} signal=${c}`),!e){e=!0,clearTimeout(g),j();let c=f.slice(-600).trim()||"(empty)";1===b?d(Error(`cloudflared quick tunnel exited (code 1). Common causes: (1) outbound port 7844 (TCP/UDP) blocked, (2) TryCloudflare service issue, (3) cannot reach 127.0.0.1:${a}, (4) protocol (http2/quic) blocked by network. Last log: ${c}`)):2===b?d(Error(`cloudflared exited (code 2). Bad arguments. Last log: ${c}`)):d(Error(`cloudflared exited (code ${b}). Last log: ${c}`));return}M&&M(),j()})})}function P(a){if(N=!0,L){try{L.kill()}catch(a){}L=null}let b=v();if(b){try{process.kill(b)}catch(a){}w()}if(a)try{if(z){let b=`Get-CimInstance Win32_Process -Filter \\"Name='cloudflared.exe'\\" | Where-Object { $_.CommandLine -match ':${a}(\\D|$)' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;(0,t.execSync)(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${b}"`,{stdio:"ignore",windowsHide:!0})}else(0,t.execSync)(`pkill -f "cloudflared.*:${a}([^0-9]|$)" 2>/dev/null || true`,{stdio:"ignore",windowsHide:!0})}catch(a){}}function Q(){let a=v();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}var R=c(14985),S=c.n(R);let T=new(S()).promises.Resolver;async function U(a,b){let c=a=>Promise.race([a(),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]).then(()=>!0).catch(()=>!1);return!!await c(()=>T.resolve4(a))||c(()=>S().promises.resolve4(a))}T.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"]);let V=process.env.TUNNEL_WORKER_URL||"https://abc-tunnel.us";async function W(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await U(b,2e3))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async function X(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<6e4;){if(b.cancelled)throw Error("cancelled");if(await W(a))return!0;await new Promise(a=>setTimeout(a,2e3))}throw Error("Health check timeout after 60000ms")}var Y=c(89718);let Z={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function $(){return Z}let _=null;function aa(a){_=a}async function ab(a,b){await fetch(`${V}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function ac(a){if(a.cancelled)throw Error("tunnel cancelled")}async function ad(a=20128){console.log(`[Tunnel] enable start (port=${a})`),Z.cancelToken={cancelled:!1},Z.activeLocalPort=a,Z.spawnInProgress=!0;let b=Z.cancelToken;try{if(Q()){let a=m();if(a?.tunnelUrl&&a?.shortId){let b=`https://r${a.shortId}.abc-tunnel.us`,[c,d]=await Promise.all([W(a.tunnelUrl),W(b)]);if(c&&d)return console.log(`[Tunnel] already running, reuse: ${a.tunnelUrl}`),{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0};console.log(`[Tunnel] stale (direct=${c} public=${d}), respawn`)}}P(a),console.log("[Tunnel] killed existing cloudflared"),ac(b);let c=m(),d=c?.shortId||o(),e=async a=>{b.cancelled||(console.log(`[Tunnel] url updated: ${a}`),await ab(d,a),n({shortId:d,tunnelUrl:a}),await (0,Y.updateSettings)({tunnelEnabled:!0,tunnelUrl:a}))};M=()=>{console.warn("[Tunnel] cloudflared exited unexpectedly, scheduling respawn"),_&&_()};let{tunnelUrl:f}=await O(a,e);console.log(`[Tunnel] spawned: ${f}`),ac(b);let g=`https://r${d}.abc-tunnel.us`;return await ab(d,f),n({shortId:d,tunnelUrl:f}),await (0,Y.updateSettings)({tunnelEnabled:!0,tunnelUrl:f}),console.log(`[Tunnel] registered shortId=${d} publicUrl=${g}`),await X(g,b),console.log("[Tunnel] public URL healthy"),await W(f)?console.log("[Tunnel] direct URL healthy"):console.warn("[Tunnel] direct URL not reachable yet, continuing via publicUrl"),console.log("[Tunnel] enable success"),{success:!0,tunnelUrl:f,shortId:d,publicUrl:g}}catch(a){throw/cloudflared killed|tunnel cancelled/.test(a.message)||console.error(`[Tunnel] enable error: ${a.message}`),a}finally{Z.spawnInProgress=!1}}async function ae(){console.log("[Tunnel] disable"),Z.cancelToken.cancelled=!0,M=null;try{P(Z.activeLocalPort)}catch(a){console.warn(`[Tunnel] kill warn: ${a.message}`)}w();let a=m();return a&&n({shortId:a.shortId,tunnelUrl:null}),await (0,Y.updateSettings)({tunnelEnabled:!1,tunnelUrl:""}),Z.spawnInProgress=!1,Z.activeLocalPort=null,{success:!0}}async function af(){let a=!0===(await (0,Y.getSettings)()).tunnelEnabled,b=m(),c=b?.shortId||"",d=c?`https://r${c}.abc-tunnel.us`:"",e=b?.tunnelUrl||"",f=!!a&&Q();return{enabled:a&&f,settingsEnabled:a,tunnelUrl:e,shortId:c,publicUrl:d,running:f}}var ag=c(55511),ah=c.n(ag),ai=c(28354),aj=c(66936);let ak=(0,ai.promisify)(t.exec),al=g().join(h.nJ,"bin"),am="darwin"===s().platform();s().platform();let an="win32"===s().platform(),ao=g().join(al,an?"tailscale.exe":"tailscale"),ap=g().join(h.nJ,"tailscale"),aq=g().join(ap,"tailscaled.sock"),ar=an?[]:["--socket",aq],as=an?null:"/var/run/tailscale/tailscaled.sock",at=as?["--socket",as]:[],au="C:\\Program Files\\Tailscale\\tailscale.exe",av=["/usr/local/bin/tailscale","/opt/homebrew/bin/tailscale","/usr/sbin/tailscale","/usr/bin/tailscale","/snap/bin/tailscale"],aw={value:void 0,fetchedAt:0,refreshing:!1},ax={value:!1,fetchedAt:0,refreshing:!1},ay={value:!1,fetchedAt:0,refreshing:!1},az={value:null,port:null,fetchedAt:0,refreshing:!1};function aA(){return e().existsSync(ao)?ao:an&&e().existsSync(au)?au:!an&&av.find(a=>e().existsSync(a))||null}function aB(){return Date.now()-aw.fetchedAt>1e4&&(aw.refreshing||(aw.refreshing=!0,ak(an?"where tailscale 2>nul":"which tailscale 2>/dev/null",{windowsHide:!0,timeout:1500,env:{...process.env,PATH:aN}}).then(({stdout:a})=>{aw.value=a.trim()||aA()}).catch(()=>{aw.value=aA()}).finally(()=>{aw.fetchedAt=Date.now(),aw.refreshing=!1}))),void 0===aw.value&&(e().existsSync(ao)?aw.value=ao:an&&e().existsSync(au)?aw.value=au:an?aw.value=null:aw.value=av.find(a=>e().existsSync(a))||null),aw.value}function aC(){return null!==aB()}function aD(...a){return[...ar,...a]}async function aE(){let a=aB();if(!a)return!1;try{let{stdout:b}=await ak(`"${a}" ${ar.join(" ")} status --json`,{windowsHide:!0,env:{...process.env,PATH:aN},timeout:5e3}),c=JSON.parse(b),d="Running"===c.BackendState&&c.Self?.Online===!0;return ay.value=d,ay.fetchedAt=Date.now(),d}catch{return!1}}async function aF(a){for(let b of[ar,at])try{let{stdout:c}=await ak(`"${a}" ${b.join(" ")} status --json`,{windowsHide:!0,env:{...process.env,PATH:aN},timeout:1500});return JSON.parse(c)}catch{}return null}function aG(){return Date.now()-ay.fetchedAt>1e4&&function(){if(ay.refreshing)return;let a=aB();if(!a){ay.value=!1,ay.fetchedAt=Date.now();return}ay.refreshing=!0,aF(a).then(a=>{ay.value=!!a&&"Running"===a.BackendState&&a.Self?.Online===!0}).catch(()=>{ay.value=!1}).finally(()=>{ay.fetchedAt=Date.now(),ay.refreshing=!1})}(),ay.value}function aH(){return Date.now()-ax.fetchedAt>1e4&&function(){if(ax.refreshing)return;let a=aB();if(!a){ax.value=!1,ax.fetchedAt=Date.now();return}ax.refreshing=!0,ak(`"${a}" ${ar.join(" ")} funnel status --json`,{windowsHide:!0,timeout:1500}).then(({stdout:a})=>{try{let b=JSON.parse(a);ax.value=Object.keys(b.AllowFunnel||{}).length>0}catch{ax.value=!1}}).catch(()=>{ax.value=!1}).finally(()=>{ax.fetchedAt=Date.now(),ax.refreshing=!1})}(),ax.value}async function aI(){let a=aB();if(!a)return!1;try{let{stdout:b}=await ak(`"${a}" ${ar.join(" ")} funnel status --json`,{windowsHide:!0,timeout:1500}),c=JSON.parse(b),d=Object.keys(c.AllowFunnel||{}).length>0;return ax.value=d,ax.fetchedAt=Date.now(),d}catch{return!1}}function aJ(){if(an||!as||!e().existsSync(as))return!1;let a=aB();if(!a)return!1;try{let b=(0,t.execSync)(`"${a}" ${at.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,env:{...process.env,PATH:aN},timeout:1500});return"Running"===JSON.parse(b).BackendState}catch{return!1}}function aK(){let a=aB();if(!a)return null;try{let b=(0,t.execSync)(`"${a}" ${ar.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,env:{...process.env,PATH:aN},timeout:5e3}),c=JSON.parse(b),d=c.Self?.DNSName?.replace(/\.$/,"");return d?`https://${d}`:null}catch{return null}}function aL(a){return(Date.now()-az.fetchedAt>1e4||az.port!==a)&&function(a){if(az.refreshing)return;let b=aB();b&&(az.refreshing=!0,ak(`"${b}" ${ar.join(" ")} status --json`,{windowsHide:!0,timeout:1500}).then(({stdout:a})=>{try{let b=JSON.parse(a),c=b.Self?.DNSName?.replace(/\.$/,"");az.value=c?`https://${c}`:null}catch{}}).catch(()=>{}).finally(()=>{az.port=a,az.fetchedAt=Date.now(),az.refreshing=!1}))}(a),az.value}async function aM(a,b,c){let d=c||(()=>{});return an?(await aQ(d),{success:!0}):(am?await aO(a,d):await aP(a,d),d("Starting daemon..."),await aU(a),d("Logging in..."),aW(b))}let aN=`/usr/local/bin:/opt/homebrew/bin:/usr/sbin:/usr/bin:/bin:/snap/bin:${process.env.PATH||""}`;async function aO(a,b){if(function(){try{return(0,t.execSync)("which brew",{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:aN}}),!0}catch{return!1}}()){b("Installing via Homebrew..."),await new Promise((a,c)=>{let d=(0,t.spawn)("brew",["install","tailscale"],{stdio:["ignore","pipe","pipe"],windowsHide:!0,env:{...process.env,PATH:aN}});d.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),d.on("close",b=>{0===b?a():c(Error(`brew install failed (code ${b})`))}),d.on("error",c)});return}let c=g().join(s().tmpdir(),"tailscale.pkg");b("Downloading Tailscale package..."),await new Promise((a,d)=>{let e=(0,t.spawn)("curl",["-fL","--progress-bar","https://pkgs.tailscale.com/stable/tailscale-latest.pkg","-o",c],{stdio:["ignore","pipe","pipe"],windowsHide:!0});e.stderr.on("data",a=>{let c=a.toString().trim();c&&b(c)}),e.on("close",b=>{0===b?a():d(Error("Download failed"))}),e.on("error",d)}),b("Installing package..."),await new Promise((d,e)=>{let f=(0,t.spawn)("sudo",["-S","installer","-pkg",c,"-target","/"],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),g="";f.stderr.on("data",a=>{g+=a.toString()}),f.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),f.on("close",a=>{try{(0,t.execSync)(`rm -f ${c}`,{stdio:"ignore",windowsHide:!0})}catch{}0===a?d():e(Error(g.includes("incorrect password")||g.includes("Sorry")?"Wrong sudo password":g||`Exit code ${a}`))}),f.on("error",e),f.stdin.write(`${a}
2
2
  `),f.stdin.end()})}async function aP(a,b){if("string"!=typeof a||a.includes("\n"))throw Error("Invalid sudo password");return b("Downloading install script..."),new Promise((c,d)=>{let f=(0,t.spawn)("curl",["-fsSL","https://tailscale.com/install.sh"],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),h="",i="";f.stdout.on("data",a=>{h+=a.toString()}),f.stderr.on("data",a=>{i+=a.toString()}),f.on("exit",f=>{if(0!==f)return d(Error(`Failed to download install script: ${i}`));b("Running install script...");let j=g().join(s().tmpdir(),`tailscale-install-${ah().randomBytes(8).toString("hex")}.sh`);try{e().writeFileSync(j,h,{mode:448})}catch(a){return d(Error(`Failed to write install script: ${a.message}`))}let k=()=>{try{e().unlinkSync(j)}catch{}},l=(0,t.spawn)("sudo",["-S","sh",j],{stdio:["pipe","pipe","pipe"],windowsHide:!0}),m="";l.stdout.on("data",a=>{let c=a.toString().trim();c&&b(c)}),l.stderr.on("data",a=>{m+=a.toString()}),l.on("close",a=>{k(),0===a?c():d(Error(m.includes("incorrect password")||m.includes("Sorry")?"Wrong sudo password":m||`Exit code ${a}`))}),l.on("error",a=>{k(),d(a)}),l.stdin.write(`${a}
3
3
  `),l.stdin.end()}),f.on("error",d)})}async function aQ(a){let b=g().join(s().tmpdir(),"tailscale-setup.msi");a("Downloading Tailscale installer..."),await new Promise((c,d)=>{let e=(0,t.spawn)("curl.exe",["-L","-#","-o",b,"https://pkgs.tailscale.com/stable/tailscale-setup-latest-amd64.msi"],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f="";e.stderr.on("data",b=>{let c=b.toString().match(/(\d+\.\d)%/);c&&c[1]!==f&&(f=c[1],a(`Downloading... ${f}%`))}),e.on("close",a=>0===a?c():d(Error("Download failed"))),e.on("error",d)}),a("Installing Tailscale (UAC prompt may appear)..."),await new Promise((c,d)=>{let f=`'/i','${b}','TS_NOLAUNCH=true','/quiet','/norestart'`,g=(0,t.spawn)("powershell",["-NoProfile","-NonInteractive","-Command",`Start-Process msiexec -ArgumentList ${f} -Verb RunAs -Wait`],{stdio:["ignore","pipe","pipe"],windowsHide:!0});g.stderr.on("data",b=>{let c=b.toString().trim();c&&a(c)}),g.on("close",a=>{try{e().unlinkSync(b)}catch{}0===a?c():d(Error(`msiexec failed (code ${a})`))}),g.on("error",d)}),a("Verifying installation...");let c=Date.now();for(;Date.now()-c<1e4;){if(e().existsSync(au))return void a("Installation complete.");await new Promise(a=>setTimeout(a,1e3))}throw Error("Installation finished but tailscale.exe not found")}async function aR(a){try{if(!e().existsSync(a))return void e().mkdirSync(a,{recursive:!0});let b=process.getuid(),c=process.getgid();if(!(()=>{let c=[a];for(;c.length;){let a=c.pop();try{let d=e().statSync(a);if(d.uid!==b)return!0;if(d.isDirectory())for(let b of e().readdirSync(a))c.push(g().join(a,b))}catch{}}return!1})())return;try{(0,t.execSync)(`chown -R ${b}:${c} "${a}"`,{stdio:"ignore",timeout:3e3})}catch{try{(0,t.execSync)(`sudo -n chown -R ${b}:${c} "${a}"`,{stdio:"ignore",timeout:3e3})}catch{}}}catch{}}function aS(){try{let a=(0,t.execSync)(`pgrep -af "tailscaled.*${aq}"`,{encoding:"utf8",timeout:2e3}).trim();if(!a)return null;return!a.includes("--tun=userspace-networking")}catch{return null}}function aT(){return null!==aS()}async function aU(a){if(an){let a=aB();console.log("[Tailscale] win: net start Tailscale");try{(0,t.execSync)("net start Tailscale",{stdio:"ignore",windowsHide:!0,timeout:1e4})}catch{}if(!a)return;for(let b=0;b<20;b++){try{let c=(0,t.execSync)(`"${a}" status --json`,{encoding:"utf8",windowsHide:!0,timeout:2e3}),d=JSON.parse(c);if(d.BackendState&&"NoState"!==d.BackendState)return void console.log(`[Tailscale] win: BackendState=${d.BackendState} after ${500*b}ms`)}catch{}await new Promise(a=>setTimeout(a,500))}console.log("[Tailscale] win: BackendState still NoState after poll");return}let b=aS(),c=!!a||!0===b;if(null!==b&&b===c)try{let a=aB()||"tailscale";(0,t.execSync)(`"${a}" ${ar.join(" ")} status --json`,{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:aN},timeout:3e3});return}catch{}try{(0,t.execSync)(`pkill -9 -f "tailscaled.*${aq}"`,{stdio:"ignore",timeout:3e3})}catch{}if(a)try{await (0,aj.execWithPassword)(`pkill -9 -f "tailscaled.*${aq}"`,a)}catch{}else try{(0,t.execSync)(`sudo -n pkill -9 -f "tailscaled.*${aq}"`,{stdio:"ignore",timeout:3e3})}catch{}await new Promise(a=>setTimeout(a,1500)),await aR(ap);let d=am?"/usr/local/bin/tailscaled":"tailscaled",e=[`--socket=${aq}`,`--statedir=${ap}`];if(c||e.push("--tun=userspace-networking"),c){let b=(0,t.spawn)("sudo",["-S",d,...e],{detached:!0,stdio:["pipe","ignore","ignore"],cwd:s().tmpdir(),env:{...process.env,PATH:aN}});b.stdin.write(`${a}
4
- `),b.stdin.end(),b.unref()}else(0,t.spawn)(d,e,{detached:!0,stdio:"ignore",cwd:s().tmpdir(),env:{...process.env,PATH:aN}}).unref();await new Promise(a=>setTimeout(a,3e3))}function aV(){let a=aB();if(!a)return null;try{let b=(0,t.execSync)(`"${a}" ${ar.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,timeout:2e3}),c=JSON.parse(b);if(c.AuthURL)return c.AuthURL;return null}catch{return null}}function aW(a){let b=aB();return b?new Promise((c,d)=>{if(aU("").catch(()=>{}),aG())return void c({alreadyLoggedIn:!0});let e=aD("up","--accept-routes");a&&e.push(`--hostname=${a}`);let f=(0,t.spawn)(b,e,{stdio:["ignore","pipe","pipe"],detached:!0,windowsHide:!0}),g=!1,h="",i=a=>{let b=a.match(/https:\/\/login\.tailscale\.com\/a\/[a-zA-Z0-9]+/);return b?b[0]:null},j=(a,b)=>{g||(g=!0,clearTimeout(l),clearInterval(k),console.log(`[Tailscale] login authUrl detected (${b})`),f.unref(),c({authUrl:a}))},k=setInterval(()=>{if(g)return;let a=aV();a&&j(a,"status")},500),l=setTimeout(()=>{if(g)return;g=!0,clearInterval(k),f.unref();let a=i(h)||aV();a?c({authUrl:a}):d(Error("tailscale up timed out without auth URL"))},15e3),m=a=>{let b=i(h+=a.toString());b&&j(b,"stdout")};f.stdout.on("data",m),f.stderr.on("data",m),f.on("error",a=>{g||(g=!0,clearTimeout(l),clearInterval(k),console.error(`[Tailscale] login spawn error: ${a.message}`),d(a))}),f.on("exit",a=>{if(g)return;console.log(`[Tailscale] login exit code=${a}`);let b=i(h)||aV();if(b)return void j(b,"exit");if(aG()){g=!0,clearTimeout(l),clearInterval(k),c({alreadyLoggedIn:!0});return}})}):Promise.reject(Error("Tailscale not installed"))}async function aX(a){let b=aB();if(!b)throw Error("Tailscale not installed");try{(0,t.execSync)(`"${b}" ${ar.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}return new Promise((c,d)=>{let e=(0,t.spawn)(b,aD("funnel","--bg",`${a}`),{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f=!1,g="",h=setTimeout(()=>{if(f)return;f=!0;let b=aK()||aL(a);b?c({tunnelUrl:b}):d(Error(`Tailscale funnel timed out: ${g.trim()||"no output"}`))},3e4),i=!1,j=a=>{if((g+=a.toString()).includes("Funnel is not enabled")&&(i=!0),i&&!f){let a=g.match(/https:\/\/login\.tailscale\.com\/[^\s]+/);if(a){f=!0,clearTimeout(h),e.kill(),c({funnelNotEnabled:!0,enableUrl:a[0]});return}}let b=aK();b&&!f&&(f=!0,clearTimeout(h),c({tunnelUrl:b}))};e.stdout.on("data",j),e.stderr.on("data",j),e.on("exit",b=>{if(f)return;f=!0,clearTimeout(h),console.log(`[Tailscale] funnel exit code=${b} output="${g.trim().slice(0,200)}"`);let e=aK()||aL(a);e?c({tunnelUrl:e}):d(Error(`tailscale funnel failed (code ${b}): ${g.trim()}`))}),e.on("error",a=>{f||(f=!0,clearTimeout(h),d(a))})})}async function aY(a){let b=aB();if(!b||!a)return;let c=g().join(ap,"certs");e().mkdirSync(c,{recursive:!0});let d=g().join(c,`${a}.crt`),f=g().join(c,`${a}.key`);try{await ak(`"${b}" ${ar.join(" ")} cert --cert-file "${d}" --key-file "${f}" "${a}"`,{windowsHide:!0,env:{...process.env,PATH:aN},timeout:3e4}),console.log(`[Tailscale] cert provisioned for ${a}`)}catch(a){console.warn(`[Tailscale] cert provision failed (non-fatal): ${a.message}`)}}function aZ(){let a=aB();if(a)try{(0,t.execSync)(`"${a}" ${ar.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}}async function a$(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await U(b,3e3))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(8e3)})).ok}catch{return!1}}async function a_(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<18e4;){if(b.cancelled)throw Error("cancelled");if(await a$(a))return!0;await new Promise(a=>setTimeout(a,2e3))}throw Error("Health check timeout after 180000ms")}var a0=c(96182);(0,a0.initDbHooks)(Y.getSettings,Y.Xx);let a1={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function a2(){return a1}function a3(a){if(a.cancelled)throw Error("tailscale cancelled")}async function a4(a=20128){console.log(`[Tailscale] enable start (port=${a})`),a1.cancelToken={cancelled:!1},a1.activeLocalPort=a,a1.spawnInProgress=!0;let b=a1.cancelToken;try{let c,d=(0,a0.getCachedPassword)()||await (0,a0.loadEncryptedPassword)()||"";await aU(d),console.log("[Tailscale] daemon ready"),a3(b);let e=m(),f=e?.shortId||o(),g=await aE();if(console.log(`[Tailscale] loggedIn=${g}`),!g){let a=await aW(f);if(a.authUrl)return console.log(`[Tailscale] needs login, authUrl=${a.authUrl}`),{success:!1,needsLogin:!0,authUrl:a.authUrl};console.log("[Tailscale] login resolved alreadyLoggedIn")}a3(b),aZ();try{console.log("[Tailscale] starting funnel"),c=await aX(a)}catch(a){if(console.error(`[Tailscale] funnel error: ${a.message}`),/NoState|unexpected state|not logged in|Logged ?out|NeedsLogin/i.test(a.message||"")){console.log("[Tailscale] retry via startLogin");let a=await aW(f);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}throw a}if(a3(b),c.funnelNotEnabled)return console.log(`[Tailscale] funnel not enabled, enableUrl=${c.enableUrl}`),{success:!1,funnelNotEnabled:!0,enableUrl:c.enableUrl};if(!await aE()||!await aI())return console.error("[Tailscale] strict probe failed (device removed?)"),aZ(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};await (0,Y.Xx)({tailscaleEnabled:!0,tailscaleUrl:c.tunnelUrl}),console.log(`[Tailscale] funnel up: ${c.tunnelUrl}`);let h=new URL(c.tunnelUrl).hostname;await aY(h);let i=!1;try{await a_(c.tunnelUrl,b),i=!0}catch(a){if(!a.message.startsWith("Health check timeout"))throw a;console.warn("[Tailscale] health check timed out, will retry via watchdog")}return console.log(`[Tailscale] enable success (reachable=${i})`),{success:!0,tunnelUrl:c.tunnelUrl}}catch(a){throw console.error(`[Tailscale] enable error: ${a.message}`),a}finally{a1.spawnInProgress=!1}}async function a5(){return console.log("[Tailscale] disable"),a1.cancelToken.cancelled=!0,aZ(),await (0,Y.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function a6(){let a=await (0,Y.getSettings)(),b=!0===a.tailscaleEnabled,c=a.tailscaleUrl||"",d=!!b&&aG(),e=!!d&&aH();return{enabled:b&&e,settingsEnabled:b,tunnelUrl:c,running:e,loggedIn:d}}var a7=c(91645),a8=c.n(a7);function a9(){return new Promise(a=>{let b=new(a8()).Socket,c=!1,d=d=>{if(!c){c=!0;try{b.destroy()}catch{}a(d)}};b.setTimeout(3e3),b.once("connect",()=>d(!0)),b.once("timeout",()=>d(!1)),b.once("error",()=>d(!1));try{b.connect(443,"1.1.1.1")}catch{d(!1)}})}let ba=12e4,bb=2500,bc=6e4,bd=5e3,be=/^(utun|awdl|llw|anpi|bridge|gif|stf|ipsec|ap|tun|tap|vmnet|veth|docker)/i}};
4
+ `),b.stdin.end(),b.unref()}else(0,t.spawn)(d,e,{detached:!0,stdio:"ignore",cwd:s().tmpdir(),env:{...process.env,PATH:aN}}).unref();await new Promise(a=>setTimeout(a,3e3))}function aV(){let a=aB();if(!a)return null;try{let b=(0,t.execSync)(`"${a}" ${ar.join(" ")} status --json`,{encoding:"utf8",windowsHide:!0,timeout:2e3}),c=JSON.parse(b);if(c.AuthURL)return c.AuthURL;return null}catch{return null}}function aW(a){let b=aB();return b?new Promise((c,d)=>{if(aU("").catch(()=>{}),aG())return void c({alreadyLoggedIn:!0});let e=aD("up","--accept-routes");a&&e.push(`--hostname=${a}`);let f=(0,t.spawn)(b,e,{stdio:["ignore","pipe","pipe"],detached:!0,windowsHide:!0}),g=!1,h="",i=a=>{let b=a.match(/https:\/\/login\.tailscale\.com\/a\/[a-zA-Z0-9]+/);return b?b[0]:null},j=(a,b)=>{g||(g=!0,clearTimeout(l),clearInterval(k),console.log(`[Tailscale] login authUrl detected (${b})`),f.unref(),c({authUrl:a}))},k=setInterval(()=>{if(g)return;let a=aV();a&&j(a,"status")},500),l=setTimeout(()=>{if(g)return;g=!0,clearInterval(k),f.unref();let a=i(h)||aV();a?c({authUrl:a}):d(Error("tailscale up timed out without auth URL"))},15e3),m=a=>{let b=i(h+=a.toString());b&&j(b,"stdout")};f.stdout.on("data",m),f.stderr.on("data",m),f.on("error",a=>{g||(g=!0,clearTimeout(l),clearInterval(k),console.error(`[Tailscale] login spawn error: ${a.message}`),d(a))}),f.on("exit",a=>{if(g)return;console.log(`[Tailscale] login exit code=${a}`);let b=i(h)||aV();if(b)return void j(b,"exit");if(aG()){g=!0,clearTimeout(l),clearInterval(k),c({alreadyLoggedIn:!0});return}})}):Promise.reject(Error("Tailscale not installed"))}async function aX(a){let b=aB();if(!b)throw Error("Tailscale not installed");try{(0,t.execSync)(`"${b}" ${ar.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}return new Promise((c,d)=>{let e=(0,t.spawn)(b,aD("funnel","--bg",`${a}`),{stdio:["ignore","pipe","pipe"],windowsHide:!0}),f=!1,g="",h=setTimeout(()=>{if(f)return;f=!0;let b=aK()||aL(a);b?c({tunnelUrl:b}):d(Error(`Tailscale funnel timed out: ${g.trim()||"no output"}`))},3e4),i=!1,j=a=>{if((g+=a.toString()).includes("Funnel is not enabled")&&(i=!0),i&&!f){let a=g.match(/https:\/\/login\.tailscale\.com\/[^\s]+/);if(a){f=!0,clearTimeout(h),e.kill(),c({funnelNotEnabled:!0,enableUrl:a[0]});return}}let b=aK();b&&!f&&(f=!0,clearTimeout(h),c({tunnelUrl:b}))};e.stdout.on("data",j),e.stderr.on("data",j),e.on("exit",b=>{if(f)return;f=!0,clearTimeout(h),console.log(`[Tailscale] funnel exit code=${b} output="${g.trim().slice(0,200)}"`);let e=aK()||aL(a);e?c({tunnelUrl:e}):d(Error(`tailscale funnel failed (code ${b}): ${g.trim()}`))}),e.on("error",a=>{f||(f=!0,clearTimeout(h),d(a))})})}async function aY(a){let b=aB();if(!b||!a)return;let c=g().join(ap,"certs");e().mkdirSync(c,{recursive:!0});let d=g().join(c,`${a}.crt`),f=g().join(c,`${a}.key`);try{await ak(`"${b}" ${ar.join(" ")} cert --cert-file "${d}" --key-file "${f}" "${a}"`,{windowsHide:!0,env:{...process.env,PATH:aN},timeout:3e4}),console.log(`[Tailscale] cert provisioned for ${a}`)}catch(a){console.warn(`[Tailscale] cert provision failed (non-fatal): ${a.message}`)}}function aZ(){let a=aB();if(a)try{(0,t.execSync)(`"${a}" ${ar.join(" ")} funnel --bg reset`,{stdio:"ignore",windowsHide:!0})}catch(a){}}async function a$(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await U(b,3e3))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(8e3)})).ok}catch{return!1}}async function a_(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-c<18e4;){if(b.cancelled)throw Error("cancelled");if(await a$(a))return!0;await new Promise(a=>setTimeout(a,2e3))}throw Error("Health check timeout after 180000ms")}var a0=c(96182);(0,a0.initDbHooks)(Y.getSettings,Y.updateSettings);let a1={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function a2(){return a1}function a3(a){if(a.cancelled)throw Error("tailscale cancelled")}async function a4(a=20128){console.log(`[Tailscale] enable start (port=${a})`),a1.cancelToken={cancelled:!1},a1.activeLocalPort=a,a1.spawnInProgress=!0;let b=a1.cancelToken;try{let c,d=(0,a0.getCachedPassword)()||await (0,a0.loadEncryptedPassword)()||"";await aU(d),console.log("[Tailscale] daemon ready"),a3(b);let e=m(),f=e?.shortId||o(),g=await aE();if(console.log(`[Tailscale] loggedIn=${g}`),!g){let a=await aW(f);if(a.authUrl)return console.log(`[Tailscale] needs login, authUrl=${a.authUrl}`),{success:!1,needsLogin:!0,authUrl:a.authUrl};console.log("[Tailscale] login resolved alreadyLoggedIn")}a3(b),aZ();try{console.log("[Tailscale] starting funnel"),c=await aX(a)}catch(a){if(console.error(`[Tailscale] funnel error: ${a.message}`),/NoState|unexpected state|not logged in|Logged ?out|NeedsLogin/i.test(a.message||"")){console.log("[Tailscale] retry via startLogin");let a=await aW(f);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}throw a}if(a3(b),c.funnelNotEnabled)return console.log(`[Tailscale] funnel not enabled, enableUrl=${c.enableUrl}`),{success:!1,funnelNotEnabled:!0,enableUrl:c.enableUrl};if(!await aE()||!await aI())return console.error("[Tailscale] strict probe failed (device removed?)"),aZ(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};await (0,Y.updateSettings)({tailscaleEnabled:!0,tailscaleUrl:c.tunnelUrl}),console.log(`[Tailscale] funnel up: ${c.tunnelUrl}`);let h=new URL(c.tunnelUrl).hostname;await aY(h);let i=!1;try{await a_(c.tunnelUrl,b),i=!0}catch(a){if(!a.message.startsWith("Health check timeout"))throw a;console.warn("[Tailscale] health check timed out, will retry via watchdog")}return console.log(`[Tailscale] enable success (reachable=${i})`),{success:!0,tunnelUrl:c.tunnelUrl}}catch(a){throw console.error(`[Tailscale] enable error: ${a.message}`),a}finally{a1.spawnInProgress=!1}}async function a5(){return console.log("[Tailscale] disable"),a1.cancelToken.cancelled=!0,aZ(),await (0,Y.updateSettings)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function a6(){let a=await (0,Y.getSettings)(),b=!0===a.tailscaleEnabled,c=a.tailscaleUrl||"",d=!!b&&aG(),e=!!d&&aH();return{enabled:b&&e,settingsEnabled:b,tunnelUrl:c,running:e,loggedIn:d}}var a7=c(91645),a8=c.n(a7);function a9(){return new Promise(a=>{let b=new(a8()).Socket,c=!1,d=d=>{if(!c){c=!0;try{b.destroy()}catch{}a(d)}};b.setTimeout(3e3),b.once("connect",()=>d(!0)),b.once("timeout",()=>d(!1)),b.once("error",()=>d(!1));try{b.connect(443,"1.1.1.1")}catch{d(!1)}})}let ba=12e4,bb=2500,bc=6e4,bd=5e3,be=/^(utun|awdl|llw|anpi|bridge|gif|stf|ipsec|ap|tun|tap|vmnet|veth|docker)/i}};
@@ -1 +1 @@
1
- exports.id=653,exports.ids=[653],exports.modules={17509:(a,b,c)=>{"use strict";c.d(b,{V:()=>n});var d=c(91356),e=c(80700),f=c(99129),g=c(73575),h=c(41570),i=c(44893),j=c(69052);async function k(a,b,c,i,k,l,m){let n=!1;"function"==typeof c&&(c=await c(k,a),n=!0);let o="string"==typeof m,p=(0,e.q)(l),q=(0,g.xW)(void 0!==i?(0,g.lF)(i):new Uint8Array,(0,g.lF)("."),o?b[2]??=(0,h.Fo)(m,"payload",f.Ye):m),r=(0,h.h2)(a.signature,"signature",f.Ye),s=await (0,j.d)(p,c,"verify");if(!await (0,d.M)(p,s,r,q))throw new f.h2;return[o?(0,h.h2)(m,"payload",f.Ye):m,k,o,s,n]}async function l(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:j,length:l}=a.split(".");if(3!==l)throw new f.Ye("Invalid Compact JWS");let m=function(a,b=void 0===a?{}:(0,h.OX)(a,f.Ye,"JWS Protected Header is invalid")){return b}(d),[n,o]=function(a,b,c){let d=(0,i.J0)(a,(0,i.nI)(f.Ye,i.qc,c[1],a,b)),e=b.alg;if("string"!=typeof e||!e)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(c[0]&&!c[0].has(e))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');return[d,e]}(m,m,b),p=n?e:function(a){try{return(0,g.lF)(a)}catch{throw new f.Ye("JWS Compact Serialization payload must use only ASCII characters")}}(e);return k({payload:e,protected:d,signature:j},b,c,d,m,o,p)}var m=c(17347);async function n(a,b,c){let d=await l(a,[c&&(0,i.Fw)("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,m.k6)(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}},30906:(a,b,c)=>{"use strict";let d;c.d(b,{gR:()=>F,hT:()=>E,Pf:()=>D,GY:()=>C,sP:()=>G,Ir:()=>B,Mj:()=>A,iw:()=>y,EJ:()=>z,Ui:()=>J,Rj:()=>K,HO:()=>H,x8:()=>I});var e=c(77598),f=c.n(e),g=c(99129),h=c(88783),i=c(80700),j=c(19035),k=c(20055);async function l(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=await (0,h.x)(c,{...b,alg:e,ext:!0});if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");d[e]=a}return d[e]}function m(a){let b;try{b=structuredClone(a)}catch{}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=new WeakMap;return Object.defineProperty(async(a,d)=>{let{alg:e,kid:f}={...a,...d?.header},h="string"==typeof e?i.p[e]:void 0;if(!h||h.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let j=b.keys.filter(a=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:l}=(0,k.Z)(a),m=Array.isArray(f)?[...f]:f;return(void 0===g||"boolean"==typeof g)&&(void 0===m||Array.isArray(m)&&m.every((a,b)=>"string"==typeof a&&m.indexOf(a)===b)&&m.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||l===b.crv)})(a,h,e,f)),{0:m,length:n}=j;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of j)try{yield await l(c,a,h)}catch{}},a}return l(c,m,h)},"jwks",{value:()=>structuredClone(b)})}("u"<typeof navigator||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.10");let n=Symbol();async function o(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{if("TimeoutError"===a.name)throw new g.xb;throw a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch{throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON")}}let p=Symbol();function q(a,b){return Number.isFinite(a)&&Date.now()<a+b}function r(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var s=c(17509),t=c(89718);let u="openid profile email",v="Sign in with OIDC";function w(a){return(a||"").trim().replace(/\/+$/,"")}function x(a){return(a||u).trim()||u}function y(a){let b=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(b)return w(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return w(new URL(a.url).origin)}function z(a){return!!(w(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function A(){let a=await (0,t.getSettings)();return["oidc","both"].includes(a.authMode)&&z(a)?{issuerUrl:w(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:x(a.oidcScopes),loginLabel:(a.oidcLoginLabel||v).trim()||v}:null}async function B(a){let b=`${w(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function C(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function D(){return f().randomBytes(16).toString("base64url")}function E(){return f().randomBytes(16).toString("base64url")}function F({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=u,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",x(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function H({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function I({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){let b,c,e;if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let f=new URL(a.href).href,h=(void 0)??{},i=h.timeoutDuration;if("number"==typeof i&&(!Number.isInteger(i)||i<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let k="number"==typeof i?i:5e3,l=r(h.cooldownDuration,3e4,"cooldownDuration"),s=r(h.cacheMaxAge,6e5,"cacheMaxAge"),t=new Headers(h.headers);d&&!t.has("User-Agent")&&t.set("User-Agent",d),t.has("accept")||t.set("accept","application/json, application/jwk-set+json");let u=h[n],v=h[p],w=0,x=0;if(v&&"object"==typeof v){let{uat:a,jwks:c}=v;q(a,s)&&(0,j.fV)(c)&&(b=a,e=m(c))}let y=async()=>{if(c&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(c=void 0),!c){let a=++w,d=c=o(f,t,AbortSignal.timeout(k),u).then(c=>{let d=m(c);if(a<=x)return;e=d;let f=Date.now();v&&(v.uat=f,v.jwks=c),b=f,x=a}).finally(()=>{c===d&&(c=void 0)})}await c};return Object.defineProperties(async(a,c)=>{e&&q(b,s)||await y();try{return await e(a,c)}catch(d){if(d instanceof g.BT&&!q(b,l))return await y(),e(a,c);throw d}},{coolingDown:{get:()=>q(b,l),enumerable:!0},fresh:{get:()=>q(b,s),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!c,enumerable:!0},jwks:{value:()=>e?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,s.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function J(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function K(a={}){return a.email||""}},33792:(a,b,c)=>{"use strict";c.d(b,{Dc:()=>s,YK:()=>q,dY:()=>t,nz:()=>v,tm:()=>u});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new Set(["change-me-to-a-long-random-secret","10router-default-secret-change-me","change-me-to-a-random-string","change-me"]),p=new TextEncoder().encode(function(){let a=process.env.JWT_SECRET;if(a){if(!o.has(a))return a;console.warn("[auth] JWT_SECRET is a known placeholder value — ignoring it. Leave JWT_SECRET unset (a random secret is generated to "+j().join(m.nJ,"jwt-secret")+") or set a long random value.")}let b=j().join(m.nJ,"jwt-secret");try{return h().readFileSync(b,"utf8").trim()}catch{}h().mkdirSync(m.nJ,{recursive:!0});let c=l().randomBytes(32).toString("hex");return h().writeFileSync(b,c,{mode:384}),c}());function q(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=String(a?.headers?.get?.("x-forwarded-proto")||"").split(",")[0].trim().toLowerCase();return b||"https"===c}async function r(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("86400s").sign(p)}async function s(a){if(!a)return!1;try{return await (0,e.V)(a,p),!0}catch{return!1}}async function t(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,p);return b}catch{return null}}async function u(a,b,c={}){let d=await r(c);a.set("auth_token",d,{httpOnly:!0,secure:q(b),sameSite:"lax",path:"/",maxAge:86400})}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.getSettings)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},78335:()=>{},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,getSettings:()=>d.mt,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(7805)},96487:()=>{}};
1
+ exports.id=653,exports.ids=[653],exports.modules={17509:(a,b,c)=>{"use strict";c.d(b,{V:()=>n});var d=c(91356),e=c(80700),f=c(99129),g=c(73575),h=c(41570),i=c(44893),j=c(69052);async function k(a,b,c,i,k,l,m){let n=!1;"function"==typeof c&&(c=await c(k,a),n=!0);let o="string"==typeof m,p=(0,e.q)(l),q=(0,g.xW)(void 0!==i?(0,g.lF)(i):new Uint8Array,(0,g.lF)("."),o?b[2]??=(0,h.Fo)(m,"payload",f.Ye):m),r=(0,h.h2)(a.signature,"signature",f.Ye),s=await (0,j.d)(p,c,"verify");if(!await (0,d.M)(p,s,r,q))throw new f.h2;return[o?(0,h.h2)(m,"payload",f.Ye):m,k,o,s,n]}async function l(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:j,length:l}=a.split(".");if(3!==l)throw new f.Ye("Invalid Compact JWS");let m=function(a,b=void 0===a?{}:(0,h.OX)(a,f.Ye,"JWS Protected Header is invalid")){return b}(d),[n,o]=function(a,b,c){let d=(0,i.J0)(a,(0,i.nI)(f.Ye,i.qc,c[1],a,b)),e=b.alg;if("string"!=typeof e||!e)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');if(c[0]&&!c[0].has(e))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');return[d,e]}(m,m,b),p=n?e:function(a){try{return(0,g.lF)(a)}catch{throw new f.Ye("JWS Compact Serialization payload must use only ASCII characters")}}(e);return k({payload:e,protected:d,signature:j},b,c,d,m,o,p)}var m=c(17347);async function n(a,b,c){let d=await l(a,[c&&(0,i.Fw)("algorithms",c.algorithms),c?.crit],b);if(!d[2])throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,m.k6)(d[1],d[0],c),protectedHeader:d[1]};return"function"==typeof b?{...e,key:d[3]}:e}},30906:(a,b,c)=>{"use strict";let d;c.d(b,{gR:()=>F,hT:()=>E,Pf:()=>D,GY:()=>C,sP:()=>G,Ir:()=>B,Mj:()=>A,iw:()=>y,EJ:()=>z,Ui:()=>J,Rj:()=>K,HO:()=>H,x8:()=>I});var e=c(77598),f=c.n(e),g=c(99129),h=c(88783),i=c(80700),j=c(19035),k=c(20055);async function l(a,b,c){let d=a.get(b)||a.set(b,{}).get(b),{alg:e}=c;if(void 0===d[e]){let a=await (0,h.x)(c,{...b,alg:e,ext:!0});if("public"!==a.type)throw new g.Dm("JSON Web Key Set members must be public keys");d[e]=a}return d[e]}function m(a){let b;try{b=structuredClone(a)}catch{}if(!(0,j.fV)(b))throw new g.Dm("JSON Web Key Set malformed");let c=new WeakMap;return Object.defineProperty(async(a,d)=>{let{alg:e,kid:f}={...a,...d?.header},h="string"==typeof e?i.p[e]:void 0;if(!h||h.secret)throw new g.T0('Unsupported "alg" value for a JSON Web Key Set');let j=b.keys.filter(a=>(function(a,b,c,d){let{kty:e,key_ops:f,ext:g,kid:h,alg:i,use:j,crv:l}=(0,k.Z)(a),m=Array.isArray(f)?[...f]:f;return(void 0===g||"boolean"==typeof g)&&(void 0===m||Array.isArray(m)&&m.every((a,b)=>"string"==typeof a&&m.indexOf(a)===b)&&m.includes("verify"))&&b.kty.includes(e)&&(void 0===d||"string"==typeof d&&d===h)&&(void 0===i?"AKP"!==e:c===i)&&(void 0===j||"sig"===j)&&(!b.crv||l===b.crv)})(a,h,e,f)),{0:m,length:n}=j;if(!n)throw new g.BT;if(1!==n){let a=new g.$4;throw a[Symbol.asyncIterator]=async function*(){for(let a of j)try{yield await l(c,a,h)}catch{}},a}return l(c,m,h)},"jwks",{value:()=>structuredClone(b)})}("u"<typeof navigator||!navigator.userAgent?.startsWith?.("Mozilla/5.0 "))&&(d="jose/v6.2.10");let n=Symbol();async function o(a,b,c,d=fetch){let e=await d(a,{method:"GET",signal:c,redirect:"manual",headers:b}).catch(a=>{if("TimeoutError"===a.name)throw new g.xb;throw a});if(200!==e.status)throw new g.i4("Expected 200 OK from the JSON Web Key Set HTTP response");try{return await e.json()}catch{throw new g.i4("Failed to parse the JSON Web Key Set HTTP response as JSON")}}let p=Symbol();function q(a,b){return Number.isFinite(a)&&Date.now()<a+b}function r(a,b,c){if(Number.isNaN(a))throw TypeError(`"${c}" option must not be NaN`);return"number"==typeof a?a:b}var s=c(17509),t=c(89718);let u="openid profile email",v="Sign in with OIDC";function w(a){return(a||"").trim().replace(/\/+$/,"")}function x(a){return(a||u).trim()||u}function y(a){let b=process.env.BASE_URL||process.env.NEXT_PUBLIC_BASE_URL||"";if(b)return w(b);let c=a?.headers?.get?.("x-forwarded-proto")||"",d=a?.headers?.get?.("x-forwarded-host")||a?.headers?.get?.("host")||"";if(d){let b=(c||new URL(a.url).protocol||"http:").replace(/:$/,"");return`${b}://${d}`.replace(/\/+$/,"")}return w(new URL(a.url).origin)}function z(a){return!!(w(a?.oidcIssuerUrl)&&(a?.oidcClientId||"").trim()&&(a?.oidcClientSecret||"").trim())}async function A(){let a=await (0,t.getSettings)();return["oidc","both"].includes(a.authMode)&&z(a)?{issuerUrl:w(a.oidcIssuerUrl),clientId:a.oidcClientId.trim(),clientSecret:a.oidcClientSecret.trim(),scopes:x(a.oidcScopes),loginLabel:(a.oidcLoginLabel||v).trim()||v}:null}async function B(a){let b=`${w(a)}/.well-known/openid-configuration`,c=await fetch(b,{cache:"no-store"});if(!c.ok)throw Error(`Failed to load OIDC discovery document from ${b}`);return await c.json()}function C(){let a=f().randomBytes(32).toString("base64url"),b=f().createHash("sha256").update(a).digest("base64url");return{verifier:a,challenge:b}}function D(){return f().randomBytes(16).toString("base64url")}function E(){return f().randomBytes(16).toString("base64url")}function F({authorizationEndpoint:a,clientId:b,redirectUri:c,scopes:d=u,state:e,nonce:f,codeChallenge:g}){let h=new URL(a);return h.searchParams.set("response_type","code"),h.searchParams.set("client_id",b),h.searchParams.set("redirect_uri",c),h.searchParams.set("scope",x(d)),h.searchParams.set("state",e),h.searchParams.set("nonce",f),h.searchParams.set("code_challenge",g),h.searchParams.set("code_challenge_method","S256"),h.toString()}async function G({tokenEndpoint:a,clientId:b,clientSecret:c,code:d,redirectUri:e,codeVerifier:f}){let g=new URLSearchParams({grant_type:"authorization_code",client_id:b,code:d,redirect_uri:e,code_verifier:f});c&&g.set("client_secret",c);let h=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:g}),i=await h.json().catch(()=>({}));if(!h.ok)throw Error(i?.error_description||i?.error||`OIDC token exchange failed (${h.status})`);return i}async function H({tokenEndpoint:a,clientId:b,clientSecret:c,redirectUri:d}){if(!c)return{tested:!1,valid:null,message:"No client secret was provided, so secret validation was skipped."};let e=new URLSearchParams({grant_type:"authorization_code",client_id:b,client_secret:c,code:"__oidc_test_invalid_code__",redirect_uri:d,code_verifier:"__oidc_test_invalid_verifier__"}),f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:e}),g=await f.json().catch(()=>({})),h=(g?.error||"").toLowerCase(),i=g?.error_description||g?.error||"";return f.ok?{tested:!0,valid:!0,message:"Client secret was accepted by the token endpoint.",raw:g}:"invalid_client"===h||"unauthorized_client"===h||/client.*(invalid|failed|mismatch)/i.test(i)?{tested:!0,valid:!1,message:i||"Client secret is not valid.",raw:g}:"invalid_grant"===h||"invalid_code"===h||/grant|code/i.test(i)?{tested:!0,valid:!0,message:"Client secret was accepted; the token exchange failed only because the test authorization code is invalid.",raw:g}:{tested:!0,valid:null,message:i||`Token endpoint responded with ${f.status}`,raw:g}}async function I({idToken:a,issuer:b,audience:c,jwksUri:e,nonce:f}){let h=function(a){let b,c,e;if(!(a instanceof URL))throw TypeError("url must be an instance of URL");let f=new URL(a.href).href,h=(void 0)??{},i=h.timeoutDuration;if("number"==typeof i&&(!Number.isInteger(i)||i<0))throw TypeError('"timeoutDuration" option must be a non-negative integer');let k="number"==typeof i?i:5e3,l=r(h.cooldownDuration,3e4,"cooldownDuration"),s=r(h.cacheMaxAge,6e5,"cacheMaxAge"),t=new Headers(h.headers);d&&!t.has("User-Agent")&&t.set("User-Agent",d),t.has("accept")||t.set("accept","application/json, application/jwk-set+json");let u=h[n],v=h[p],w=0,x=0;if(v&&"object"==typeof v){let{uat:a,jwks:c}=v;q(a,s)&&(0,j.fV)(c)&&(b=a,e=m(c))}let y=async()=>{if(c&&("u">typeof WebSocketPair||"u">typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||"u">typeof EdgeRuntime&&"vercel"===EdgeRuntime)&&(c=void 0),!c){let a=++w,d=c=o(f,t,AbortSignal.timeout(k),u).then(c=>{let d=m(c);if(a<=x)return;e=d;let f=Date.now();v&&(v.uat=f,v.jwks=c),b=f,x=a}).finally(()=>{c===d&&(c=void 0)})}await c};return Object.defineProperties(async(a,c)=>{e&&q(b,s)||await y();try{return await e(a,c)}catch(d){if(d instanceof g.BT&&!q(b,l))return await y(),e(a,c);throw d}},{coolingDown:{get:()=>q(b,l),enumerable:!0},fresh:{get:()=>q(b,s),enumerable:!0},reload:{value:y,enumerable:!0},reloading:{get:()=>!!c,enumerable:!0},jwks:{value:()=>e?.jwks(),enumerable:!0}})}(new URL(e)),{payload:i}=await (0,s.V)(a,h,{issuer:b,audience:c,nonce:f});return i}function J(a={}){return a.preferred_username||a.email||a.name||a.given_name||a.sub||"OIDC user"}function K(a={}){return a.email||""}},33792:(a,b,c)=>{"use strict";c.d(b,{Dc:()=>s,YK:()=>q,dY:()=>t,nz:()=>v,tm:()=>u});var d=c(8292),e=c(17509),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(49120),n=c(89718);let o=new Set(["change-me-to-a-long-random-secret","10router-default-secret-change-me","change-me-to-a-random-string","change-me"]),p=new TextEncoder().encode(function(){let a=process.env.JWT_SECRET;if(a){if(!o.has(a))return a;console.warn("[auth] JWT_SECRET is a known placeholder value — ignoring it. Leave JWT_SECRET unset (a random secret is generated to "+j().join(m.nJ,"jwt-secret")+") or set a long random value.")}let b=j().join(m.nJ,"jwt-secret");try{return h().readFileSync(b,"utf8").trim()}catch{}h().mkdirSync(m.nJ,{recursive:!0});let c=l().randomBytes(32).toString("hex");return h().writeFileSync(b,c,{mode:384}),c}());function q(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=String(a?.headers?.get?.("x-forwarded-proto")||"").split(",")[0].trim().toLowerCase();return b||"https"===c}async function r(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("86400s").sign(p)}async function s(a){if(!a)return!1;try{return await (0,e.V)(a,p),!0}catch{return!1}}async function t(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,p);return b}catch{return null}}async function u(a,b,c={}){let d=await r(c);a.set("auth_token",d,{httpOnly:!0,secure:q(b),sameSite:"lax",path:"/",maxAge:86400})}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.getSettings)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},78335:()=>{},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,getSettings:()=>d.mt,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,updateSettings:()=>d.Xx,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(7805)},96487:()=>{}};
@@ -1 +1 @@
1
- "use strict";exports.id=6871,exports.ids=[6871],exports.modules={76871:(a,b,c)=>{c.d(b,{PROVIDER_ID_TO_ALIAS:()=>w,PROVIDER_MODELS:()=>s});var d=c(69896),e=c(41534);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};function g(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}let h=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${g(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${g(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${g(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${g(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${g(a[1])}`]];function i(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of h){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}let j={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},k=(...a)=>a.map(a=>({...j[a],type:"tts"})),l=k("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),m=k("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),n=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),o={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":m,"tts-1":l,"tts-1-hd":l},allVoices:m},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":m,"openai/tts-1":l,"openai/tts-1-hd":l},allVoices:m},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":n,"gemini-2.5-flash-preview-tts":n,"gemini-2.5-pro-preview-tts":n},allVoices:n},"xiaomi-mimo":{models:[{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",type:"tts"}],voices:{"mimo-v2.5-tts":[{id:"mimo_default",name:"mimo_default"},{id:"冰糖",name:"冰糖"},{id:"茉莉",name:"茉莉"},{id:"苏打",name:"苏打"},{id:"白桦",name:"白桦"},{id:"Mia",name:"Mia"},{id:"Chloe",name:"Chloe"},{id:"Milo",name:"Milo"},{id:"Dean",name:"Dean"}].map(a=>({type:"tts",...a}))}}},p=["clientId","clientSecret","tokenUrl"],q=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),r={},s={},t={},u={};for(let a of d.default){a.transport&&(r[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of p)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(r[a.id].transports=a.transports)),void 0!==a.models&&(s[a.alias||a.id]=a.models.map(i)),a.oauth&&(t[a.id]=a.oauth);let b={};for(let c of q)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(u[a.id]=b)}Object.assign(s,function(){let a={};for(let[b,c]of Object.entries(o))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=o.openai.allVoices,a["openrouter-tts-voices"]=o.openrouter.allVoices,a}()),r["xiaomi-tokenplan"]?.regions,r["xiaomi-tokenplan"]?.defaultRegion;let v=Object.fromEntries(d.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),w=Object.fromEntries(Object.keys(r).map(a=>[a,v[a]||a]))}};
1
+ "use strict";exports.id=6871,exports.ids=[6871],exports.modules={76871:(a,b,c)=>{c.d(b,{PROVIDER_ID_TO_ALIAS:()=>w,PROVIDER_MODELS:()=>s});var d=c(90937),e=c(41534);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};function g(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}let h=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${g(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${g(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${g(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${g(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${g(a[1])}`]];function i(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of h){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}let j={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},k=(...a)=>a.map(a=>({...j[a],type:"tts"})),l=k("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),m=k("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),n=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),o={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":m,"tts-1":l,"tts-1-hd":l},allVoices:m},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":m,"openai/tts-1":l,"openai/tts-1-hd":l},allVoices:m},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":n,"gemini-2.5-flash-preview-tts":n,"gemini-2.5-pro-preview-tts":n},allVoices:n},"xiaomi-mimo":{models:[{id:"mimo-v2.5-tts",name:"MiMo V2.5 TTS",type:"tts"}],voices:{"mimo-v2.5-tts":[{id:"mimo_default",name:"mimo_default"},{id:"冰糖",name:"冰糖"},{id:"茉莉",name:"茉莉"},{id:"苏打",name:"苏打"},{id:"白桦",name:"白桦"},{id:"Mia",name:"Mia"},{id:"Chloe",name:"Chloe"},{id:"Milo",name:"Milo"},{id:"Dean",name:"Dean"}].map(a=>({type:"tts",...a}))}}},p=["clientId","clientSecret","tokenUrl"],q=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),r={},s={},t={},u={};for(let a of d.default){a.transport&&(r[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of p)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(r[a.id].transports=a.transports)),void 0!==a.models&&(s[a.alias||a.id]=a.models.map(i)),a.oauth&&(t[a.id]=a.oauth);let b={};for(let c of q)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(u[a.id]=b)}Object.assign(s,function(){let a={};for(let[b,c]of Object.entries(o))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=o.openai.allVoices,a["openrouter-tts-voices"]=o.openrouter.allVoices,a}()),r["xiaomi-tokenplan"]?.regions,r["xiaomi-tokenplan"]?.defaultRegion;let v=Object.fromEntries(d.default.filter(a=>a.alias&&a.alias!==a.id).map(a=>[a.id,a.alias])),w=Object.fromEntries(Object.keys(r).map(a=>[a,v[a]||a]))}};