zevairouter 1.0.124 → 1.0.126

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 (1425) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +7 -7
  4. package/cli/app/.next-cli-build/build-manifest.json +6 -6
  5. package/cli/app/.next-cli-build/react-loadable-manifest.json +2 -2
  6. package/cli/app/.next-cli-build/required-server-files.json +0 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +3 -3
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +4 -4
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  86. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  89. package/cli/app/.next-cli-build/server/app/_global-error.rsc +7 -7
  90. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +7 -7
  91. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  92. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  93. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +3 -3
  94. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +3 -3
  95. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  96. package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  97. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  98. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  99. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  100. package/cli/app/.next-cli-build/server/app/_not-found.rsc +12 -12
  101. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +12 -12
  102. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +4 -4
  103. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +7 -7
  104. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  105. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  106. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +3 -3
  107. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  124. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  126. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  130. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  198. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  200. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
  212. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  288. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +2 -2
  362. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  368. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  370. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  374. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  376. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  378. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  380. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  382. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  384. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  385. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  386. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  388. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  391. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  393. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  397. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  399. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  401. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  403. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  414. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  420. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  426. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  428. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  429. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  435. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  439. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +3 -3
  442. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  445. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  454. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  456. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  459. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  460. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  461. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  467. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +2 -2
  474. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  478. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  481. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  482. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  483. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  487. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  488. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  489. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  490. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  491. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  492. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  493. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  494. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  495. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  496. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  497. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  498. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  499. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  500. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  501. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  502. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  503. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  504. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  505. package/cli/app/.next-cli-build/server/app/callback/page.js +2 -2
  506. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  507. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  508. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  509. package/cli/app/.next-cli-build/server/app/callback.rsc +14 -14
  510. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +14 -14
  511. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +4 -4
  512. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +7 -7
  513. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +3 -3
  514. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  515. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +3 -3
  516. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  517. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +16 -16
  518. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +4 -4
  519. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +3 -3
  520. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  521. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  522. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +16 -16
  523. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +4 -4
  524. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +7 -7
  525. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +4 -4
  526. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  527. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +15 -15
  528. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  529. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +3 -3
  530. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  531. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  532. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +15 -15
  533. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +4 -4
  534. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +7 -7
  535. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +4 -4
  536. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  537. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +15 -15
  538. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  539. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +3 -3
  540. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  541. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  542. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +15 -15
  543. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +4 -4
  544. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +7 -7
  545. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +4 -4
  546. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  547. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +16 -16
  548. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
  549. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +3 -3
  550. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  551. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  552. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +16 -16
  553. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +4 -4
  554. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +7 -7
  555. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +4 -4
  556. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  557. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +16 -16
  558. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +4 -4
  559. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +3 -3
  560. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  561. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  562. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +16 -16
  563. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +4 -4
  564. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +7 -7
  565. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +4 -4
  566. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  567. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +15 -15
  568. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  569. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +3 -3
  570. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  571. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  572. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +15 -15
  573. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +4 -4
  574. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +7 -7
  575. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +4 -4
  576. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  577. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +16 -16
  578. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +4 -4
  579. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +3 -3
  580. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +3 -3
  581. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  582. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  583. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +16 -16
  584. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +4 -4
  585. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +7 -7
  586. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +4 -4
  587. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  588. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +15 -15
  589. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  590. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +3 -3
  591. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  592. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  593. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +15 -15
  594. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +4 -4
  595. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +7 -7
  596. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +4 -4
  597. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  598. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +15 -15
  599. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +3 -3
  600. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +3 -3
  601. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  602. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  603. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +15 -15
  604. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +4 -4
  605. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +7 -7
  606. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +4 -4
  607. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  608. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +16 -16
  609. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
  610. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +3 -3
  611. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  612. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  613. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +16 -16
  614. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +4 -4
  615. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +7 -7
  616. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +4 -4
  617. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  618. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +16 -16
  619. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
  620. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +3 -3
  621. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
  622. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  623. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  624. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +16 -16
  625. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +4 -4
  626. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +7 -7
  627. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +4 -4
  628. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  629. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +16 -16
  630. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  631. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +3 -3
  632. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  633. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  634. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +16 -16
  635. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +4 -4
  636. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +7 -7
  637. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +4 -4
  638. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  639. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +16 -16
  640. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
  641. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +3 -3
  642. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  643. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  644. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +16 -16
  645. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +4 -4
  646. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +7 -7
  647. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +4 -4
  648. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  649. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +15 -15
  650. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  651. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +3 -3
  652. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  653. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  654. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +15 -15
  655. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +4 -4
  656. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +7 -7
  657. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +4 -4
  658. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  659. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +16 -16
  660. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  661. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +3 -3
  662. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  663. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  664. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +16 -16
  665. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +4 -4
  666. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +7 -7
  667. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +4 -4
  668. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  669. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  670. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  671. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  672. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +14 -14
  673. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +14 -14
  674. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +4 -4
  675. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +7 -7
  676. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +3 -3
  677. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  678. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +3 -3
  679. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +3 -3
  680. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +3 -3
  681. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  682. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +15 -15
  683. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  684. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +3 -3
  685. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  686. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  687. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +15 -15
  688. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +4 -4
  689. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +7 -7
  690. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +4 -4
  691. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  692. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +16 -16
  693. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
  694. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +3 -3
  695. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  696. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  697. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +16 -16
  698. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +4 -4
  699. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +7 -7
  700. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +4 -4
  701. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  702. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +16 -16
  703. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
  704. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +3 -3
  705. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  706. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  707. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +16 -16
  708. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +4 -4
  709. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +7 -7
  710. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +4 -4
  711. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  712. package/cli/app/.next-cli-build/server/app/dashboard.rsc +15 -15
  713. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  714. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +3 -3
  715. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -5
  716. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +15 -15
  717. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +4 -4
  718. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +7 -7
  719. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +4 -4
  720. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  721. package/cli/app/.next-cli-build/server/app/index.rsc +12 -12
  722. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  723. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +12 -12
  724. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +4 -4
  725. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +7 -7
  726. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +3 -3
  727. package/cli/app/.next-cli-build/server/app/landing/page.js +2 -2
  728. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  729. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  730. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  731. package/cli/app/.next-cli-build/server/app/landing.rsc +14 -14
  732. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +14 -14
  733. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +4 -4
  734. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +7 -7
  735. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +3 -3
  736. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  737. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +3 -3
  738. package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
  739. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  740. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  741. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  742. package/cli/app/.next-cli-build/server/app/login.rsc +15 -15
  743. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +15 -15
  744. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +4 -4
  745. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +7 -7
  746. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +4 -4
  747. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
  748. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +3 -3
  749. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  750. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  751. package/cli/app/.next-cli-build/server/app/page.js +2 -2
  752. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  753. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  754. package/cli/app/.next-cli-build/server/app-paths-manifest.json +7 -7
  755. package/cli/app/.next-cli-build/server/chunks/{1779.js → 1019.js} +1 -1
  756. package/cli/app/.next-cli-build/server/chunks/1188.js +1 -0
  757. package/cli/app/.next-cli-build/server/chunks/1396.js +1 -0
  758. package/cli/app/.next-cli-build/server/chunks/{7667.js → 1531.js} +1 -1
  759. package/cli/app/.next-cli-build/server/chunks/1656.js +1 -0
  760. package/cli/app/.next-cli-build/server/chunks/1671.js +1 -0
  761. package/cli/app/.next-cli-build/server/chunks/1813.js +1 -0
  762. package/cli/app/.next-cli-build/server/chunks/1818.js +1 -0
  763. package/cli/app/.next-cli-build/server/chunks/{4934.js → 1998.js} +1 -1
  764. package/cli/app/.next-cli-build/server/chunks/{8031.js → 2007.js} +1 -1
  765. package/cli/app/.next-cli-build/server/chunks/2130.js +1 -0
  766. package/cli/app/.next-cli-build/server/chunks/2409.js +1 -0
  767. package/cli/app/.next-cli-build/server/chunks/241.js +1 -0
  768. package/cli/app/.next-cli-build/server/chunks/2478.js +1 -0
  769. package/cli/app/.next-cli-build/server/chunks/2540.js +1 -0
  770. package/cli/app/.next-cli-build/server/chunks/{4493.js → 2693.js} +1 -1
  771. package/cli/app/.next-cli-build/server/chunks/{9293.js → 2722.js} +25 -25
  772. package/cli/app/.next-cli-build/server/chunks/3104.js +43 -0
  773. package/cli/app/.next-cli-build/server/chunks/3110.js +19 -0
  774. package/cli/app/.next-cli-build/server/chunks/3155.js +60 -0
  775. package/cli/app/.next-cli-build/server/chunks/{1023.js → 3159.js} +1 -1
  776. package/cli/app/.next-cli-build/server/chunks/318.js +183 -0
  777. package/cli/app/.next-cli-build/server/chunks/319.js +45 -0
  778. package/cli/app/.next-cli-build/server/chunks/{4619.js → 3331.js} +1 -1
  779. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -0
  780. package/cli/app/.next-cli-build/server/chunks/3487.js +1 -0
  781. package/cli/app/.next-cli-build/server/chunks/{2417.js → 3593.js} +1 -1
  782. package/cli/app/.next-cli-build/server/chunks/{8953.js → 4013.js} +1 -1
  783. package/cli/app/.next-cli-build/server/chunks/{1167.js → 4055.js} +1 -1
  784. package/cli/app/.next-cli-build/server/chunks/412.js +7 -0
  785. package/cli/app/.next-cli-build/server/chunks/{3552.js → 4136.js} +1 -1
  786. package/cli/app/.next-cli-build/server/chunks/415.js +1 -0
  787. package/cli/app/.next-cli-build/server/chunks/4177.js +1 -0
  788. package/cli/app/.next-cli-build/server/chunks/{1776.js → 4229.js} +1 -1
  789. package/cli/app/.next-cli-build/server/chunks/4253.js +3 -0
  790. package/cli/app/.next-cli-build/server/chunks/4404.js +1 -0
  791. package/cli/app/.next-cli-build/server/chunks/4491.js +1 -0
  792. package/cli/app/.next-cli-build/server/chunks/4632.js +1 -0
  793. package/cli/app/.next-cli-build/server/chunks/4650.js +17 -0
  794. package/cli/app/.next-cli-build/server/chunks/{4395.js → 4739.js} +1 -1
  795. package/cli/app/.next-cli-build/server/chunks/4741.js +20 -0
  796. package/cli/app/.next-cli-build/server/chunks/4746.js +7 -0
  797. package/cli/app/.next-cli-build/server/chunks/4765.js +24 -0
  798. package/cli/app/.next-cli-build/server/chunks/4780.js +1 -0
  799. package/cli/app/.next-cli-build/server/chunks/{4499.js → 5000.js} +2 -2
  800. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -0
  801. package/cli/app/.next-cli-build/server/chunks/507.js +1 -0
  802. package/cli/app/.next-cli-build/server/chunks/5217.js +1 -0
  803. package/cli/app/.next-cli-build/server/chunks/{3580.js → 5236.js} +1 -1
  804. package/cli/app/.next-cli-build/server/chunks/{9570.js → 5258.js} +1 -1
  805. package/cli/app/.next-cli-build/server/chunks/5373.js +66 -0
  806. package/cli/app/.next-cli-build/server/chunks/5433.js +1 -0
  807. package/cli/app/.next-cli-build/server/chunks/5573.js +1 -0
  808. package/cli/app/.next-cli-build/server/chunks/{3881.js → 5681.js} +1 -1
  809. package/cli/app/.next-cli-build/server/chunks/5852.js +8 -0
  810. package/cli/app/.next-cli-build/server/chunks/5949.js +51 -0
  811. package/cli/app/.next-cli-build/server/chunks/{2909.js → 6036.js} +1 -1
  812. package/cli/app/.next-cli-build/server/chunks/{6744.js → 6108.js} +1 -1
  813. package/cli/app/.next-cli-build/server/chunks/{8578.js → 6457.js} +2 -2
  814. package/cli/app/.next-cli-build/server/chunks/6652.js +1 -0
  815. package/cli/app/.next-cli-build/server/chunks/{5370.js → 6802.js} +1 -1
  816. package/cli/app/.next-cli-build/server/chunks/{1469.js → 6844.js} +1 -1
  817. package/cli/app/.next-cli-build/server/chunks/6935.js +1 -0
  818. package/cli/app/.next-cli-build/server/chunks/698.js +1 -0
  819. package/cli/app/.next-cli-build/server/chunks/{4341.js → 7341.js} +1 -1
  820. package/cli/app/.next-cli-build/server/chunks/7774.js +121 -0
  821. package/cli/app/.next-cli-build/server/chunks/7828.js +1 -0
  822. package/cli/app/.next-cli-build/server/chunks/{4880.js → 7965.js} +1 -1
  823. package/cli/app/.next-cli-build/server/chunks/7967.js +1 -0
  824. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -0
  825. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -0
  826. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -0
  827. package/cli/app/.next-cli-build/server/chunks/8450.js +1 -0
  828. package/cli/app/.next-cli-build/server/chunks/8520.js +1 -0
  829. package/cli/app/.next-cli-build/server/chunks/8590.js +1 -0
  830. package/cli/app/.next-cli-build/server/chunks/8895.js +67 -0
  831. package/cli/app/.next-cli-build/server/chunks/891.js +1 -0
  832. package/cli/app/.next-cli-build/server/chunks/8920.js +1 -0
  833. package/cli/app/.next-cli-build/server/chunks/8971.js +1 -0
  834. package/cli/app/.next-cli-build/server/chunks/915.js +63 -0
  835. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -0
  836. package/cli/app/.next-cli-build/server/chunks/{7741.js → 9528.js} +3 -3
  837. package/cli/app/.next-cli-build/server/chunks/9609.js +1 -0
  838. package/cli/app/.next-cli-build/server/chunks/9613.js +1 -0
  839. package/cli/app/.next-cli-build/server/chunks/9858.js +3 -0
  840. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  841. package/cli/app/.next-cli-build/server/middleware-react-loadable-manifest.js +1 -1
  842. package/cli/app/.next-cli-build/server/middleware.js +22 -22
  843. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  844. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  845. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  846. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  847. package/cli/app/.next-cli-build/static/chunks/{8434-db0f0049d0262e2e.js → 1992-b492aa3235a8c259.js} +1 -1
  848. package/cli/app/.next-cli-build/static/chunks/1a258343-33aee1e7d9aa500f.js +1 -0
  849. package/cli/app/.next-cli-build/static/chunks/2018-ef32f3ab3ea35dcd.js +66 -0
  850. package/cli/app/.next-cli-build/static/chunks/3794-907785a527d8128b.js +32 -0
  851. package/cli/app/.next-cli-build/static/chunks/{0937d497-33e2049988b7c22e.js → 4bd1b696-e356ca5ba0218e27.js} +1 -1
  852. package/cli/app/.next-cli-build/static/chunks/5242-bb1a1a7ec3bfb62f.js +1 -0
  853. package/cli/app/.next-cli-build/static/chunks/5472-544ea4e7aa338d84.js +1 -0
  854. package/cli/app/.next-cli-build/static/chunks/5497-7d1ff94cc58ff88b.js +7 -0
  855. package/cli/app/.next-cli-build/static/chunks/5950-482b14a8d993bcca.js +1 -0
  856. package/cli/app/.next-cli-build/static/chunks/{3539-25f16e696f32ccdf.js → 6069-6bce779705f69e62.js} +5 -5
  857. package/cli/app/.next-cli-build/static/chunks/7055-e60e20f43bfbe5f8.js +1 -0
  858. package/cli/app/.next-cli-build/static/chunks/{1768.ad4675e8c839dd60.js → 8202.1ffc6ce531e066ce.js} +1 -1
  859. package/cli/app/.next-cli-build/static/chunks/85-ce113d56030497e0.js +1 -0
  860. package/cli/app/.next-cli-build/static/chunks/979-224d95321cf78dbd.js +3 -0
  861. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/page-923e1225b9dcac58.js +1 -0
  862. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-c4a2045a626b6173.js +1 -0
  863. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-78f688c92bfd33f8.js +1 -0
  864. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-1fd20c51954e29a9.js +1 -0
  865. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-6b0b9cd44867512c.js +1 -0
  866. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-d07a4d1d78007f2f.js +1 -0
  867. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/context/page-327a9c6b4894c269.js +1 -0
  868. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-4444a33464a1d419.js +1 -0
  869. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-2365f7b85dd8967d.js → page-27ae2ac497b5fb7a.js} +2 -2
  870. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-104279ff16950493.js +1 -0
  871. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-939421769eec6d3b.js → page-599568329c50bcc8.js} +2 -2
  872. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-717f8f942951b934.js +1 -0
  873. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-f399c8cbafcff3cd.js +1 -0
  874. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-b5aa3e2a4b3c0b17.js +1 -0
  875. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-c7ac7e59cdef2ce8.js +1 -0
  876. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ff8862b4d59f7c46.js +1 -0
  877. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/{page-4bfe29eb86322368.js → page-97d30dea16ab149a.js} +2 -2
  878. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-499682de2c626a83.js +1 -0
  879. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-52ea5f73e4c01b92.js +1 -0
  880. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-69eefaf477523b7d.js → page-e08a36cec64b2567.js} +2 -2
  881. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-930e38c563b5c8a1.js → page-636747e49448e0e8.js} +1 -1
  882. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c1d6f8802c5c874d.js +1 -0
  883. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/terminal/{page-8da3399a4ed0af0d.js → page-d78611694b7915c0.js} +2 -2
  884. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-59f3cc8f19b08fa6.js +1 -0
  885. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-da741d27517645b1.js +1 -0
  886. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-26780f3f0df0345f.js +1 -0
  887. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-ded3017c321c14e3.js +1 -0
  888. package/cli/app/.next-cli-build/static/chunks/app/_global-error/{page-63a0542d75a38025.js → page-0958b3b629c68bd2.js} +1 -1
  889. package/cli/app/.next-cli-build/static/chunks/app/_not-found/page-311966a4d78dec6d.js +1 -0
  890. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/{route-63a0542d75a38025.js → route-0958b3b629c68bd2.js} +1 -1
  891. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-63a0542d75a38025.js → route-0958b3b629c68bd2.js} +1 -1
  892. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-63a0542d75a38025.js → route-0958b3b629c68bd2.js} +1 -1
  893. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-0958b3b629c68bd2.js +1 -0
  894. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-0958b3b629c68bd2.js +1 -0
  895. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-0958b3b629c68bd2.js +1 -0
  896. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-0958b3b629c68bd2.js +1 -0
  897. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-0958b3b629c68bd2.js +1 -0
  898. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-0958b3b629c68bd2.js +1 -0
  899. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-0958b3b629c68bd2.js +1 -0
  900. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-0958b3b629c68bd2.js +1 -0
  901. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-0958b3b629c68bd2.js +1 -0
  902. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-0958b3b629c68bd2.js +1 -0
  903. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-0958b3b629c68bd2.js +1 -0
  904. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-0958b3b629c68bd2.js +1 -0
  905. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-0958b3b629c68bd2.js +1 -0
  906. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-0958b3b629c68bd2.js +1 -0
  907. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-0958b3b629c68bd2.js +1 -0
  908. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-0958b3b629c68bd2.js +1 -0
  909. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-0958b3b629c68bd2.js +1 -0
  910. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-0958b3b629c68bd2.js +1 -0
  911. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-0958b3b629c68bd2.js +1 -0
  912. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-0958b3b629c68bd2.js +1 -0
  913. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-0958b3b629c68bd2.js +1 -0
  914. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-0958b3b629c68bd2.js +1 -0
  915. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-0958b3b629c68bd2.js +1 -0
  916. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-0958b3b629c68bd2.js +1 -0
  917. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-0958b3b629c68bd2.js +1 -0
  918. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-0958b3b629c68bd2.js +1 -0
  919. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-0958b3b629c68bd2.js +1 -0
  920. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-0958b3b629c68bd2.js +1 -0
  921. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-0958b3b629c68bd2.js +1 -0
  922. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-0958b3b629c68bd2.js +1 -0
  923. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-0958b3b629c68bd2.js +1 -0
  924. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-0958b3b629c68bd2.js +1 -0
  925. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-0958b3b629c68bd2.js +1 -0
  926. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-0958b3b629c68bd2.js +1 -0
  927. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-0958b3b629c68bd2.js +1 -0
  928. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-0958b3b629c68bd2.js +1 -0
  929. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-0958b3b629c68bd2.js +1 -0
  930. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-0958b3b629c68bd2.js +1 -0
  931. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-0958b3b629c68bd2.js +1 -0
  932. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-0958b3b629c68bd2.js +1 -0
  933. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-0958b3b629c68bd2.js +1 -0
  934. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-0958b3b629c68bd2.js +1 -0
  935. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-0958b3b629c68bd2.js +1 -0
  936. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-0958b3b629c68bd2.js +1 -0
  937. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-0958b3b629c68bd2.js +1 -0
  938. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-0958b3b629c68bd2.js +1 -0
  939. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-0958b3b629c68bd2.js +1 -0
  940. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-0958b3b629c68bd2.js +1 -0
  941. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-0958b3b629c68bd2.js +1 -0
  942. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-0958b3b629c68bd2.js +1 -0
  943. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-0958b3b629c68bd2.js +1 -0
  944. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-0958b3b629c68bd2.js +1 -0
  945. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-0958b3b629c68bd2.js +1 -0
  946. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-0958b3b629c68bd2.js +1 -0
  947. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-0958b3b629c68bd2.js +1 -0
  948. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-0958b3b629c68bd2.js +1 -0
  949. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-0958b3b629c68bd2.js +1 -0
  950. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  951. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  952. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  953. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  954. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-0958b3b629c68bd2.js +1 -0
  955. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  956. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  957. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  958. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  959. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/route-0958b3b629c68bd2.js +1 -0
  960. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  961. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  962. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  963. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  964. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-0958b3b629c68bd2.js +1 -0
  965. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  966. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  967. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  968. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  969. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-0958b3b629c68bd2.js +1 -0
  970. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-0958b3b629c68bd2.js +1 -0
  971. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-0958b3b629c68bd2.js +1 -0
  972. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  973. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  974. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  975. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  976. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-0958b3b629c68bd2.js +1 -0
  977. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-0958b3b629c68bd2.js +1 -0
  978. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-0958b3b629c68bd2.js +1 -0
  979. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-0958b3b629c68bd2.js +1 -0
  980. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-0958b3b629c68bd2.js +1 -0
  981. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-0958b3b629c68bd2.js +1 -0
  982. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-0958b3b629c68bd2.js +1 -0
  983. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  984. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  985. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  986. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  987. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-0958b3b629c68bd2.js +1 -0
  988. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-0958b3b629c68bd2.js +1 -0
  989. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-0958b3b629c68bd2.js +1 -0
  990. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  991. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  992. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  993. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  994. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-0958b3b629c68bd2.js +1 -0
  995. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-0958b3b629c68bd2.js +1 -0
  996. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-0958b3b629c68bd2.js +1 -0
  997. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-0958b3b629c68bd2.js +1 -0
  998. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-0958b3b629c68bd2.js +1 -0
  999. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-0958b3b629c68bd2.js +1 -0
  1000. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-0958b3b629c68bd2.js +1 -0
  1001. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-0958b3b629c68bd2.js +1 -0
  1002. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-0958b3b629c68bd2.js +1 -0
  1003. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-0958b3b629c68bd2.js +1 -0
  1004. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-0958b3b629c68bd2.js +1 -0
  1005. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-0958b3b629c68bd2.js +1 -0
  1006. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-0958b3b629c68bd2.js +1 -0
  1007. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-0958b3b629c68bd2.js +1 -0
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-0958b3b629c68bd2.js +1 -0
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-0958b3b629c68bd2.js +1 -0
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-0958b3b629c68bd2.js +1 -0
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-0958b3b629c68bd2.js +1 -0
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-0958b3b629c68bd2.js +1 -0
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-0958b3b629c68bd2.js +1 -0
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-0958b3b629c68bd2.js +1 -0
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-0958b3b629c68bd2.js +1 -0
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-0958b3b629c68bd2.js +1 -0
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-0958b3b629c68bd2.js +1 -0
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-0958b3b629c68bd2.js +1 -0
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-0958b3b629c68bd2.js +1 -0
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-0958b3b629c68bd2.js +1 -0
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-0958b3b629c68bd2.js +1 -0
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-0958b3b629c68bd2.js +1 -0
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-0958b3b629c68bd2.js +1 -0
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-0958b3b629c68bd2.js +1 -0
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-0958b3b629c68bd2.js +1 -0
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-0958b3b629c68bd2.js +1 -0
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-0958b3b629c68bd2.js +1 -0
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-0958b3b629c68bd2.js +1 -0
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-0958b3b629c68bd2.js +1 -0
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-0958b3b629c68bd2.js +1 -0
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-0958b3b629c68bd2.js +1 -0
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-0958b3b629c68bd2.js +1 -0
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-0958b3b629c68bd2.js +1 -0
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-0958b3b629c68bd2.js +1 -0
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-0958b3b629c68bd2.js +1 -0
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-0958b3b629c68bd2.js +1 -0
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-0958b3b629c68bd2.js +1 -0
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-0958b3b629c68bd2.js +1 -0
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-0958b3b629c68bd2.js +1 -0
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-0958b3b629c68bd2.js +1 -0
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-0958b3b629c68bd2.js +1 -0
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-0958b3b629c68bd2.js +1 -0
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-0958b3b629c68bd2.js +1 -0
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-0958b3b629c68bd2.js +1 -0
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-0958b3b629c68bd2.js +1 -0
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-0958b3b629c68bd2.js +1 -0
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-0958b3b629c68bd2.js +1 -0
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-0958b3b629c68bd2.js +1 -0
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-0958b3b629c68bd2.js +1 -0
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-0958b3b629c68bd2.js +1 -0
  1051. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-0958b3b629c68bd2.js +1 -0
  1052. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-0958b3b629c68bd2.js +1 -0
  1053. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-0958b3b629c68bd2.js +1 -0
  1054. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-0958b3b629c68bd2.js +1 -0
  1055. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-0958b3b629c68bd2.js +1 -0
  1056. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-0958b3b629c68bd2.js +1 -0
  1057. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-0958b3b629c68bd2.js +1 -0
  1058. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-0958b3b629c68bd2.js +1 -0
  1059. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-0958b3b629c68bd2.js +1 -0
  1060. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-0958b3b629c68bd2.js +1 -0
  1061. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-0958b3b629c68bd2.js +1 -0
  1062. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-0958b3b629c68bd2.js +1 -0
  1063. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-0958b3b629c68bd2.js +1 -0
  1064. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-0958b3b629c68bd2.js +1 -0
  1065. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-0958b3b629c68bd2.js +1 -0
  1066. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-0958b3b629c68bd2.js +1 -0
  1067. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-0958b3b629c68bd2.js +1 -0
  1068. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-0958b3b629c68bd2.js +1 -0
  1069. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-0958b3b629c68bd2.js +1 -0
  1070. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-0958b3b629c68bd2.js +1 -0
  1071. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-0958b3b629c68bd2.js +1 -0
  1072. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-0958b3b629c68bd2.js +1 -0
  1073. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-0958b3b629c68bd2.js +1 -0
  1074. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-0958b3b629c68bd2.js +1 -0
  1075. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-0958b3b629c68bd2.js +1 -0
  1076. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-0958b3b629c68bd2.js +1 -0
  1077. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-0958b3b629c68bd2.js +1 -0
  1078. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-0958b3b629c68bd2.js +1 -0
  1079. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-0958b3b629c68bd2.js +1 -0
  1080. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-0958b3b629c68bd2.js +1 -0
  1081. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-0958b3b629c68bd2.js +1 -0
  1082. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-0958b3b629c68bd2.js +1 -0
  1083. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-0958b3b629c68bd2.js +1 -0
  1084. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-0958b3b629c68bd2.js +1 -0
  1085. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-0958b3b629c68bd2.js +1 -0
  1086. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-0958b3b629c68bd2.js +1 -0
  1087. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-0958b3b629c68bd2.js +1 -0
  1088. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-0958b3b629c68bd2.js +1 -0
  1089. package/cli/app/.next-cli-build/static/chunks/app/callback/page-46f416e4d9761459.js +1 -0
  1090. package/cli/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-73d3a4f63b04d3b7.js +1 -0
  1091. package/cli/app/.next-cli-build/static/chunks/app/landing/page-c25b710b30674c8b.js +1 -0
  1092. package/cli/app/.next-cli-build/static/chunks/app/layout-877a5e197a59de85.js +1 -0
  1093. package/cli/app/.next-cli-build/static/chunks/app/login/page-6d5463b29f4c2091.js +1 -0
  1094. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-0958b3b629c68bd2.js +1 -0
  1095. package/cli/app/.next-cli-build/static/chunks/app/page-0958b3b629c68bd2.js +1 -0
  1096. package/cli/app/.next-cli-build/static/chunks/{fcafe1ac-fb00beefde649e9f.js → e868780c-9fd397bedad188d4.js} +1 -1
  1097. package/cli/app/.next-cli-build/static/chunks/framework-711ef29bc66f648c.js +1 -0
  1098. package/cli/app/.next-cli-build/static/chunks/main-1539aac2075bb2e7.js +5 -0
  1099. package/cli/app/.next-cli-build/static/chunks/main-app-19158719aba2802f.js +1 -0
  1100. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-0958b3b629c68bd2.js +1 -0
  1101. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-0958b3b629c68bd2.js +1 -0
  1102. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/global-error-af60171a653b28c7.js +1 -0
  1103. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-0958b3b629c68bd2.js +1 -0
  1104. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-0958b3b629c68bd2.js +1 -0
  1105. package/cli/app/.next-cli-build/static/chunks/{webpack-9c203f4468cc2f7c.js → webpack-948b910ed7afd0b8.js} +1 -1
  1106. package/cli/app/.next-cli-build/static/css/1f0d0f24ab2983b7.css +1 -0
  1107. package/cli/app/.next-cli-build/static/css/{f0a349c70ab9fca8.css → 30eaa31d38376b4f.css} +1 -1
  1108. package/cli/app/.next-cli-build/static/css/{008a05b0ad6b854a.css → e07f2bf4fa519943.css} +1 -1
  1109. package/cli/app/.next-cli-build/static/media/material-symbols-outlined.5445fd89.woff2 +0 -0
  1110. package/cli/app/CHANGELOG.md +14 -0
  1111. package/cli/app/package.json +1 -1
  1112. package/cli/app/server.js +1 -1
  1113. package/cli/package.json +1 -1
  1114. package/open-sse/config/providerModels.js +5 -2
  1115. package/open-sse/services/usage.js +8 -7
  1116. package/package.json +1 -1
  1117. package/src/app/(dashboard)/dashboard/automation/page.js +13 -109
  1118. package/src/shared/components/BulkAccountAutomationModal.js +15 -6
  1119. package/src/shared/constants/automationProviders.js +0 -2
  1120. package/cli/app/.next-cli-build/server/chunks/1046.js +0 -1
  1121. package/cli/app/.next-cli-build/server/chunks/1237.js +0 -51
  1122. package/cli/app/.next-cli-build/server/chunks/1500.js +0 -1
  1123. package/cli/app/.next-cli-build/server/chunks/1536.js +0 -1
  1124. package/cli/app/.next-cli-build/server/chunks/1586.js +0 -7
  1125. package/cli/app/.next-cli-build/server/chunks/1637.js +0 -3
  1126. package/cli/app/.next-cli-build/server/chunks/2027.js +0 -1
  1127. package/cli/app/.next-cli-build/server/chunks/2282.js +0 -1
  1128. package/cli/app/.next-cli-build/server/chunks/23.js +0 -63
  1129. package/cli/app/.next-cli-build/server/chunks/2423.js +0 -1
  1130. package/cli/app/.next-cli-build/server/chunks/2674.js +0 -121
  1131. package/cli/app/.next-cli-build/server/chunks/3174.js +0 -19
  1132. package/cli/app/.next-cli-build/server/chunks/3538.js +0 -1
  1133. package/cli/app/.next-cli-build/server/chunks/3560.js +0 -7
  1134. package/cli/app/.next-cli-build/server/chunks/3833.js +0 -1
  1135. package/cli/app/.next-cli-build/server/chunks/3871.js +0 -60
  1136. package/cli/app/.next-cli-build/server/chunks/3972.js +0 -1
  1137. package/cli/app/.next-cli-build/server/chunks/4014.js +0 -1
  1138. package/cli/app/.next-cli-build/server/chunks/4088.js +0 -1
  1139. package/cli/app/.next-cli-build/server/chunks/4293.js +0 -1
  1140. package/cli/app/.next-cli-build/server/chunks/4350.js +0 -1
  1141. package/cli/app/.next-cli-build/server/chunks/4441.js +0 -24
  1142. package/cli/app/.next-cli-build/server/chunks/4539.js +0 -1
  1143. package/cli/app/.next-cli-build/server/chunks/46.js +0 -17
  1144. package/cli/app/.next-cli-build/server/chunks/4607.js +0 -18
  1145. package/cli/app/.next-cli-build/server/chunks/4693.js +0 -1
  1146. package/cli/app/.next-cli-build/server/chunks/4959.js +0 -1
  1147. package/cli/app/.next-cli-build/server/chunks/497.js +0 -1
  1148. package/cli/app/.next-cli-build/server/chunks/5015.js +0 -67
  1149. package/cli/app/.next-cli-build/server/chunks/5337.js +0 -1
  1150. package/cli/app/.next-cli-build/server/chunks/5614.js +0 -8
  1151. package/cli/app/.next-cli-build/server/chunks/5747.js +0 -1
  1152. package/cli/app/.next-cli-build/server/chunks/5956.js +0 -1
  1153. package/cli/app/.next-cli-build/server/chunks/6041.js +0 -1
  1154. package/cli/app/.next-cli-build/server/chunks/6170.js +0 -3
  1155. package/cli/app/.next-cli-build/server/chunks/6220.js +0 -1
  1156. package/cli/app/.next-cli-build/server/chunks/6372.js +0 -1
  1157. package/cli/app/.next-cli-build/server/chunks/6408.js +0 -43
  1158. package/cli/app/.next-cli-build/server/chunks/6673.js +0 -1
  1159. package/cli/app/.next-cli-build/server/chunks/6714.js +0 -1
  1160. package/cli/app/.next-cli-build/server/chunks/733.js +0 -1
  1161. package/cli/app/.next-cli-build/server/chunks/7716.js +0 -1
  1162. package/cli/app/.next-cli-build/server/chunks/7729.js +0 -1
  1163. package/cli/app/.next-cli-build/server/chunks/7806.js +0 -1
  1164. package/cli/app/.next-cli-build/server/chunks/7870.js +0 -1
  1165. package/cli/app/.next-cli-build/server/chunks/8180.js +0 -1
  1166. package/cli/app/.next-cli-build/server/chunks/8182.js +0 -1
  1167. package/cli/app/.next-cli-build/server/chunks/8183.js +0 -1
  1168. package/cli/app/.next-cli-build/server/chunks/8227.js +0 -1
  1169. package/cli/app/.next-cli-build/server/chunks/83.js +0 -45
  1170. package/cli/app/.next-cli-build/server/chunks/8341.js +0 -1
  1171. package/cli/app/.next-cli-build/server/chunks/857.js +0 -1
  1172. package/cli/app/.next-cli-build/server/chunks/8669.js +0 -1
  1173. package/cli/app/.next-cli-build/server/chunks/8779.js +0 -1
  1174. package/cli/app/.next-cli-build/server/chunks/9001.js +0 -1
  1175. package/cli/app/.next-cli-build/server/chunks/906.js +0 -183
  1176. package/cli/app/.next-cli-build/server/chunks/9345.js +0 -1
  1177. package/cli/app/.next-cli-build/server/chunks/9901.js +0 -1
  1178. package/cli/app/.next-cli-build/server/chunks/9992.js +0 -66
  1179. package/cli/app/.next-cli-build/static/chunks/1096-6d775ecc28cf6340.js +0 -1
  1180. package/cli/app/.next-cli-build/static/chunks/1554-f9422191725f4f61.js +0 -1
  1181. package/cli/app/.next-cli-build/static/chunks/1858-5de22f4a0f7873ea.js +0 -32
  1182. package/cli/app/.next-cli-build/static/chunks/2b9ff8ee-8330dc76023de107.js +0 -1
  1183. package/cli/app/.next-cli-build/static/chunks/4391-0e471d2e761014ea.js +0 -3
  1184. package/cli/app/.next-cli-build/static/chunks/6656-0ca5257ec474f863.js +0 -66
  1185. package/cli/app/.next-cli-build/static/chunks/7783-7a4ed0063ec0fecc.js +0 -7
  1186. package/cli/app/.next-cli-build/static/chunks/7813-e1ba7449a3791419.js +0 -1
  1187. package/cli/app/.next-cli-build/static/chunks/8689-ee86215b9a3eb108.js +0 -1
  1188. package/cli/app/.next-cli-build/static/chunks/888-1894db92ff847dbb.js +0 -1
  1189. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/page-2ee85b86d7597651.js +0 -1
  1190. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-bad8ff5503e4f0b7.js +0 -1
  1191. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-3fb4f7227c4ab57f.js +0 -1
  1192. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-9459e82acdd078ac.js +0 -1
  1193. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-f411959991f96990.js +0 -1
  1194. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/page-1a77fd86f2a4922a.js +0 -1
  1195. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/context/page-63e5ceb81d87c300.js +0 -1
  1196. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-1a097de73412d440.js +0 -1
  1197. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-7427ee87015d1113.js +0 -1
  1198. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/page-ca761e638d38dae4.js +0 -1
  1199. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-eeb71d37d39b3586.js +0 -1
  1200. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-1c1a986664906bea.js +0 -1
  1201. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-284542c819665387.js +0 -1
  1202. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-30229a682f3cb8df.js +0 -1
  1203. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-71ca5c61fe011c5b.js +0 -1
  1204. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-fa8e4cba2691a844.js +0 -1
  1205. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-fb96c1c4474868b3.js +0 -1
  1206. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/page-ef6d294917d01201.js +0 -1
  1207. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/page-86b61948afed34e8.js +0 -1
  1208. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-b4939c80e73c7dfd.js +0 -1
  1209. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-2e14da9e57c3e171.js +0 -1
  1210. package/cli/app/.next-cli-build/static/chunks/app/_not-found/page-85ef61223793be87.js +0 -1
  1211. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-63a0542d75a38025.js +0 -1
  1212. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-63a0542d75a38025.js +0 -1
  1213. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-63a0542d75a38025.js +0 -1
  1214. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-63a0542d75a38025.js +0 -1
  1215. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-63a0542d75a38025.js +0 -1
  1216. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-63a0542d75a38025.js +0 -1
  1217. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-63a0542d75a38025.js +0 -1
  1218. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-63a0542d75a38025.js +0 -1
  1219. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-63a0542d75a38025.js +0 -1
  1220. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-63a0542d75a38025.js +0 -1
  1221. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-63a0542d75a38025.js +0 -1
  1222. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-63a0542d75a38025.js +0 -1
  1223. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-63a0542d75a38025.js +0 -1
  1224. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-63a0542d75a38025.js +0 -1
  1225. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-63a0542d75a38025.js +0 -1
  1226. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-63a0542d75a38025.js +0 -1
  1227. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-63a0542d75a38025.js +0 -1
  1228. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-63a0542d75a38025.js +0 -1
  1229. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-63a0542d75a38025.js +0 -1
  1230. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-63a0542d75a38025.js +0 -1
  1231. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-63a0542d75a38025.js +0 -1
  1232. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-63a0542d75a38025.js +0 -1
  1233. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-63a0542d75a38025.js +0 -1
  1234. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-63a0542d75a38025.js +0 -1
  1235. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-63a0542d75a38025.js +0 -1
  1236. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-63a0542d75a38025.js +0 -1
  1237. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-63a0542d75a38025.js +0 -1
  1238. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-63a0542d75a38025.js +0 -1
  1239. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-63a0542d75a38025.js +0 -1
  1240. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-63a0542d75a38025.js +0 -1
  1241. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-63a0542d75a38025.js +0 -1
  1242. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-63a0542d75a38025.js +0 -1
  1243. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-63a0542d75a38025.js +0 -1
  1244. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-63a0542d75a38025.js +0 -1
  1245. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-63a0542d75a38025.js +0 -1
  1246. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-63a0542d75a38025.js +0 -1
  1247. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-63a0542d75a38025.js +0 -1
  1248. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-63a0542d75a38025.js +0 -1
  1249. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-63a0542d75a38025.js +0 -1
  1250. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-63a0542d75a38025.js +0 -1
  1251. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-63a0542d75a38025.js +0 -1
  1252. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-63a0542d75a38025.js +0 -1
  1253. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-63a0542d75a38025.js +0 -1
  1254. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-63a0542d75a38025.js +0 -1
  1255. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-63a0542d75a38025.js +0 -1
  1256. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-63a0542d75a38025.js +0 -1
  1257. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-63a0542d75a38025.js +0 -1
  1258. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-63a0542d75a38025.js +0 -1
  1259. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-63a0542d75a38025.js +0 -1
  1260. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-63a0542d75a38025.js +0 -1
  1261. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-63a0542d75a38025.js +0 -1
  1262. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-63a0542d75a38025.js +0 -1
  1263. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-63a0542d75a38025.js +0 -1
  1264. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-63a0542d75a38025.js +0 -1
  1265. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-63a0542d75a38025.js +0 -1
  1266. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-63a0542d75a38025.js +0 -1
  1267. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-63a0542d75a38025.js +0 -1
  1268. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1269. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1270. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1271. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1272. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-63a0542d75a38025.js +0 -1
  1273. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1274. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1275. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1276. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1277. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/route-63a0542d75a38025.js +0 -1
  1278. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1279. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1280. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1281. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1282. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-63a0542d75a38025.js +0 -1
  1283. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1284. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1285. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1286. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1287. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-63a0542d75a38025.js +0 -1
  1288. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-63a0542d75a38025.js +0 -1
  1289. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-63a0542d75a38025.js +0 -1
  1290. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1291. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1292. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1293. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1294. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-63a0542d75a38025.js +0 -1
  1295. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-63a0542d75a38025.js +0 -1
  1296. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-63a0542d75a38025.js +0 -1
  1297. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-63a0542d75a38025.js +0 -1
  1298. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-63a0542d75a38025.js +0 -1
  1299. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-63a0542d75a38025.js +0 -1
  1300. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-63a0542d75a38025.js +0 -1
  1301. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1302. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1303. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1304. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1305. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-63a0542d75a38025.js +0 -1
  1306. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-63a0542d75a38025.js +0 -1
  1307. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-63a0542d75a38025.js +0 -1
  1308. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1309. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1310. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1311. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1312. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-63a0542d75a38025.js +0 -1
  1313. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-63a0542d75a38025.js +0 -1
  1314. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-63a0542d75a38025.js +0 -1
  1315. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-63a0542d75a38025.js +0 -1
  1316. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-63a0542d75a38025.js +0 -1
  1317. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-63a0542d75a38025.js +0 -1
  1318. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-63a0542d75a38025.js +0 -1
  1319. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-63a0542d75a38025.js +0 -1
  1320. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-63a0542d75a38025.js +0 -1
  1321. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-63a0542d75a38025.js +0 -1
  1322. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-63a0542d75a38025.js +0 -1
  1323. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-63a0542d75a38025.js +0 -1
  1324. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-63a0542d75a38025.js +0 -1
  1325. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-63a0542d75a38025.js +0 -1
  1326. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-63a0542d75a38025.js +0 -1
  1327. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-63a0542d75a38025.js +0 -1
  1328. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-63a0542d75a38025.js +0 -1
  1329. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-63a0542d75a38025.js +0 -1
  1330. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-63a0542d75a38025.js +0 -1
  1331. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-63a0542d75a38025.js +0 -1
  1332. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-63a0542d75a38025.js +0 -1
  1333. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-63a0542d75a38025.js +0 -1
  1334. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-63a0542d75a38025.js +0 -1
  1335. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-63a0542d75a38025.js +0 -1
  1336. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-63a0542d75a38025.js +0 -1
  1337. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-63a0542d75a38025.js +0 -1
  1338. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-63a0542d75a38025.js +0 -1
  1339. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-63a0542d75a38025.js +0 -1
  1340. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-63a0542d75a38025.js +0 -1
  1341. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-63a0542d75a38025.js +0 -1
  1342. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-63a0542d75a38025.js +0 -1
  1343. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-63a0542d75a38025.js +0 -1
  1344. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-63a0542d75a38025.js +0 -1
  1345. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-63a0542d75a38025.js +0 -1
  1346. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-63a0542d75a38025.js +0 -1
  1347. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-63a0542d75a38025.js +0 -1
  1348. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-63a0542d75a38025.js +0 -1
  1349. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-63a0542d75a38025.js +0 -1
  1350. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-63a0542d75a38025.js +0 -1
  1351. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-63a0542d75a38025.js +0 -1
  1352. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-63a0542d75a38025.js +0 -1
  1353. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-63a0542d75a38025.js +0 -1
  1354. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-63a0542d75a38025.js +0 -1
  1355. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-63a0542d75a38025.js +0 -1
  1356. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-63a0542d75a38025.js +0 -1
  1357. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-63a0542d75a38025.js +0 -1
  1358. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-63a0542d75a38025.js +0 -1
  1359. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-63a0542d75a38025.js +0 -1
  1360. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-63a0542d75a38025.js +0 -1
  1361. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-63a0542d75a38025.js +0 -1
  1362. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-63a0542d75a38025.js +0 -1
  1363. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-63a0542d75a38025.js +0 -1
  1364. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-63a0542d75a38025.js +0 -1
  1365. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-63a0542d75a38025.js +0 -1
  1366. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-63a0542d75a38025.js +0 -1
  1367. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-63a0542d75a38025.js +0 -1
  1368. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-63a0542d75a38025.js +0 -1
  1369. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-63a0542d75a38025.js +0 -1
  1370. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-63a0542d75a38025.js +0 -1
  1371. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-63a0542d75a38025.js +0 -1
  1372. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-63a0542d75a38025.js +0 -1
  1373. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-63a0542d75a38025.js +0 -1
  1374. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-63a0542d75a38025.js +0 -1
  1375. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-63a0542d75a38025.js +0 -1
  1376. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-63a0542d75a38025.js +0 -1
  1377. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-63a0542d75a38025.js +0 -1
  1378. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-63a0542d75a38025.js +0 -1
  1379. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-63a0542d75a38025.js +0 -1
  1380. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-63a0542d75a38025.js +0 -1
  1381. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-63a0542d75a38025.js +0 -1
  1382. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-63a0542d75a38025.js +0 -1
  1383. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-63a0542d75a38025.js +0 -1
  1384. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-63a0542d75a38025.js +0 -1
  1385. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-63a0542d75a38025.js +0 -1
  1386. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-63a0542d75a38025.js +0 -1
  1387. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-63a0542d75a38025.js +0 -1
  1388. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-63a0542d75a38025.js +0 -1
  1389. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-63a0542d75a38025.js +0 -1
  1390. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-63a0542d75a38025.js +0 -1
  1391. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-63a0542d75a38025.js +0 -1
  1392. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-63a0542d75a38025.js +0 -1
  1393. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-63a0542d75a38025.js +0 -1
  1394. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-63a0542d75a38025.js +0 -1
  1395. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-63a0542d75a38025.js +0 -1
  1396. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-63a0542d75a38025.js +0 -1
  1397. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-63a0542d75a38025.js +0 -1
  1398. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-63a0542d75a38025.js +0 -1
  1399. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-63a0542d75a38025.js +0 -1
  1400. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-63a0542d75a38025.js +0 -1
  1401. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-63a0542d75a38025.js +0 -1
  1402. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-63a0542d75a38025.js +0 -1
  1403. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-63a0542d75a38025.js +0 -1
  1404. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-63a0542d75a38025.js +0 -1
  1405. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-63a0542d75a38025.js +0 -1
  1406. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-63a0542d75a38025.js +0 -1
  1407. package/cli/app/.next-cli-build/static/chunks/app/callback/page-747616215eaffcc5.js +0 -1
  1408. package/cli/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-fc0526db0d6faea4.js +0 -1
  1409. package/cli/app/.next-cli-build/static/chunks/app/landing/page-a972ff4fc204488f.js +0 -1
  1410. package/cli/app/.next-cli-build/static/chunks/app/layout-195d8bc39318cb3f.js +0 -1
  1411. package/cli/app/.next-cli-build/static/chunks/app/login/page-ec9730458515625e.js +0 -1
  1412. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-63a0542d75a38025.js +0 -1
  1413. package/cli/app/.next-cli-build/static/chunks/app/page-63a0542d75a38025.js +0 -1
  1414. package/cli/app/.next-cli-build/static/chunks/framework-6b10028fc45b4fba.js +0 -1
  1415. package/cli/app/.next-cli-build/static/chunks/main-af2e4cf487829313.js +0 -5
  1416. package/cli/app/.next-cli-build/static/chunks/main-app-5349704f9863330d.js +0 -1
  1417. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-63a0542d75a38025.js +0 -1
  1418. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-63a0542d75a38025.js +0 -1
  1419. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/global-error-79da82ac351d0af0.js +0 -1
  1420. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-63a0542d75a38025.js +0 -1
  1421. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-63a0542d75a38025.js +0 -1
  1422. package/cli/app/.next-cli-build/static/css/e42a53c7486ca4f0.css +0 -1
  1423. package/cli/app/.next-cli-build/static/media/material-symbols-outlined.cf1f75f5.woff2 +0 -0
  1424. /package/cli/app/.next-cli-build/static/{YyXkaMCJ50p0A8GqlWRS_ → Z0U80pm6SJ5xtgUbMnxKJ}/_buildManifest.js +0 -0
  1425. /package/cli/app/.next-cli-build/static/{YyXkaMCJ50p0A8GqlWRS_ → Z0U80pm6SJ5xtgUbMnxKJ}/_ssgManifest.js +0 -0
@@ -0,0 +1,3 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[979],{90979:(e,t,s)=>{Promise.resolve().then(s.bind(s,95907))},95907:(e,t,s)=>{"use strict";s.d(t,{default:()=>p});var a=s(95155),l=s(12115),n=s(14051),r=s.n(n),i=s(98500),o=s.n(i),c=s(35497),d=s(11059);let m=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}];async function u(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async function x(...e){let t=e.filter(Boolean).map(u);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}function p({machineId:e}){let[t,s]=(0,l.useState)([]),[n,r]=(0,l.useState)(!0),[i,f]=(0,l.useState)(!1),[j,w]=(0,l.useState)(""),[k,v]=(0,l.useState)(null),[N,C]=(0,l.useState)(null),[S,T]=(0,l.useState)(null),[P,$]=(0,l.useState)(null),[_,E]=(0,l.useState)(!1),[A,U]=(0,l.useState)(!0),[D,I]=(0,l.useState)(!0),[O,F]=(0,l.useState)(!1),[R,L]=(0,l.useState)(!0),[q,W]=(0,l.useState)(!1),[K,M]=(0,l.useState)(!1),[z,J]=(0,l.useState)(""),[B,H]=(0,l.useState)(""),[V,Z]=(0,l.useState)(!1),[Q,X]=(0,l.useState)(""),[G,Y]=(0,l.useState)(null),[ee,et]=(0,l.useState)(!1),[es,ea]=(0,l.useState)(!1),[el,en]=(0,l.useState)(!1),[er,ei]=(0,l.useState)(!1),[eo,ec]=(0,l.useState)(""),[ed,em]=(0,l.useState)(!1),[eu,ex]=(0,l.useState)(""),[ep,eh]=(0,l.useState)(null),[eg,eb]=(0,l.useState)(""),[ey,ef]=(0,l.useState)(""),[ej,ew]=(0,l.useState)(null),[ek,ev]=(0,l.useState)(!1),[eN,eC]=(0,l.useState)([]),[eS,eT]=(0,l.useState)(""),[eP,e$]=(0,l.useState)(!1),[e_,eE]=(0,l.useState)(!1),[eA,eU]=(0,l.useState)(!1),eD=(0,l.useRef)(null),eI=(0,l.useRef)(0),eO=(0,l.useRef)(0),eF=(0,l.useRef)(!1),eR=(0,l.useRef)(!1),eL=(0,l.useRef)(!1),eq=(0,l.useRef)(!1),[eW,eK]=(0,l.useState)(!1),[eM,ez]=(0,l.useState)(!1),[eJ,eB]=(0,l.useState)(!1);(0,l.useEffect)(()=>{eB(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:eH,copy:eV}=(0,d.C)(),eZ=!A||!D,eQ=A?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,l.useEffect)(()=>{eD.current&&(eD.current.scrollTop=eD.current.scrollHeight)},[eN]),(0,l.useEffect)(()=>{e5(),eY()},[]),(0,l.useEffect)(()=>{if(!(q||el))return;let e=!q||K,t=!el||er,s=()=>{document.hidden||eG()};if(document.addEventListener("visibilitychange",s),e&&t)return()=>document.removeEventListener("visibilitychange",s);let a=setInterval(()=>{document.hidden||eG()},5e3);return()=>{clearInterval(a),document.removeEventListener("visibilitychange",s)}},[q,el,K,er]),(0,l.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(q&&(z||B)){let e=await x(B,z);eF.current=e,e?(eI.current=0,M(!0),eL.current||(eL.current=!0,eK(!0))):(eI.current+=1,eI.current>=5&&M(!1))}else eF.current=!1;if(el&&eo){let e=await u(eo);eR.current=e,e?(eO.current=0,ei(!0),eq.current||(eq.current=!0,ez(!0))):(eO.current+=1,eO.current>=5&&ei(!1))}else eR.current=!1}};if(!(q&&(z||B)||el&&eo))return;e();let t=!el||er;if((!q||K)&&t)return;let s=setInterval(e,1e4);return()=>clearInterval(s)},[q,z,B,el,eo,K,er]);let eX=(0,l.useCallback)((e,t,s,a,l,n)=>{t.current?(s.current=0,a(!0),l.current||(l.current=!0,n(!0))):(s.current+=1,s.current>=5&&a(!1))},[]),eG=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,a=t.tunnel?.tunnelUrl||"";J(a),H(t.tunnel?.publicUrl||""),W(s),eX(null,eF,eI,M,eL,eK);let l=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,n=t.tailscale?.tunnelUrl||"";ec(n),en(l),eX(null,eR,eO,ei,eq,ez)}catch{}},eY=async()=>{L(!0);try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e.ok){let t=await e.json();E(t.requireApiKey||!1),U(!1!==t.requireLogin),I(t.hasPassword||!1),F(t.tunnelDashboardAccess||!1)}if(t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,a=e.tunnel?.tunnelUrl||"";J(a),H(e.tunnel?.publicUrl||""),W(s),eX(null,eF,eI,M,eL,eK);let l=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,n=e.tailscale?.tunnelUrl||"";ec(n),en(l),eX(null,eR,eO,ei,eq,ez)}}catch(e){console.log("Error loading settings:",e)}finally{L(!1)}},e0=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:e})})).ok&&F(e)}catch(e){console.log("Error updating tunnelDashboardAccess:",e)}},e1=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:e})})).ok&&E(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e5=async()=>{try{let e=await fetch("/api/keys"),t=await e.json();e.ok&&s(t.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{r(!1)}},e2=async(...e)=>{Z(!0),X("Waiting for tunnel ready...");let t=e.filter(Boolean).map(e=>`${e}/api/health`),s=Date.now();for(;Date.now()-s<3e5;){if(await new Promise(e=>setTimeout(e,2e3)),await Promise.any(t.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1))return W(!0),Z(!1),X(""),!0;if((Date.now()-s)%1e4<2e3)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return Y({type:"error",message:"Tunnel process stopped unexpectedly."}),Z(!1),X(""),!1}}catch{}}return Y({type:"error",message:"Tunnel created but not reachable. Please try again."}),Z(!1),X(""),!1},e4=async()=>{et(!1),Z(!0),Y(null),X("Creating tunnel...");let e=!0;(async()=>{for(;e;){try{let t=await fetch("/api/tunnel/status");if(t.ok){let s=await t.json();s.download?.downloading?X(`Downloading cloudflared... ${s.download.progress}%`):e&&X("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let t=await fetch("/api/tunnel/enable",{method:"POST"});e=!1;let s=await t.json();if(!t.ok)return void Y({type:"error",message:s.error||"Failed to enable tunnel"});let a=s.tunnelUrl;if(!a)return void Y({type:"error",message:"No tunnel URL returned"});J(a),H(s.publicUrl||""),await e2(s.publicUrl,a)}catch(e){Y({type:"error",message:e.message})}finally{e=!1,Z(!1),X("")}},e3=async()=>{Z(!0),Y(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(W(!1),J(""),ea(!1),Y({type:"success",message:"Tunnel disabled"})):Y({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){Y({type:"error",message:e.message})}finally{Z(!1)}},e8=async()=>{ew(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return ew(t.installed),t}}catch{}return ew(!1),{installed:!1}},e6=async()=>{ev(!0),eh(null),eC([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:eS})});eT("");let t=e.body.getReader(),s=new TextDecoder,a="";for(;;){let{done:e,value:l}=await t.read();if(e)break;let n=(a+=s.decode(l,{stream:!0})).split("\n\n");for(let e of(a=n.pop()||"",n)){let t=e.split("\n"),s="progress",a=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{a=JSON.parse(e.slice(6))}catch{}if(a)if("progress"===s)eC(e=>[...e.slice(-50),a.message]);else if("done"===s){ew(!0),ev(!1),eE(!1),tt();return}else"error"===s&&eh({type:"error",message:a.error||"Install failed"})}}}catch(e){eh({type:"error",message:e.message})}finally{ev(!1)}},e9=async e=>{ex("Waiting for Tailscale ready...");let t=`${e}/api/health`,s=Date.now();for(;Date.now()-s<3e5;){await new Promise(e=>setTimeout(e,2e3));try{let e=await fetch(t,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}}return!1},e7=(e,t)=>{eb(e),ef(t)},te=()=>{eb(""),ef("")},tt=async()=>{eE(!1),e$(!0),em(!0),eh(null),ex("Connecting..."),te();try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ec(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);en(!0),eh(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.needsLogin&&t.authUrl){e7(t.authUrl,"Open Login Page"),ex('Login required — click "Open Login Page" to continue');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok&&(await e.json()).loggedIn){te(),ex("Starting funnel...");let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){ec(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);en(!0),eh(e?null:{type:"warning",message:"Connected but not reachable yet."})}else t.funnelNotEnabled&&t.enableUrl?await ts(t.enableUrl):eh({type:"error",message:t.error||"Failed to start funnel"});return}}catch{}}te(),eh({type:"error",message:"Login timed out. Please try again."});return}if(t.funnelNotEnabled&&t.enableUrl)return void await ts(t.enableUrl);eh({type:"error",message:t.error||"Failed to connect"})}catch(e){eh({type:"error",message:e.message})}finally{em(!1),e$(!1),ex(""),te()}},ts=async e=>{e7(e,"Open Funnel Settings"),ex('Click "Open Funnel Settings" to enable Funnel...');for(let e=0;e<40;e++){await new Promise(e=>setTimeout(e,3e3));try{let e=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),t=await e.json();if(e.ok&&t.success){te(),ec(t.tunnelUrl||"");let e=await e9(t.tunnelUrl);en(!0),eh(e?null:{type:"warning",message:"Connected but not reachable yet."});return}if(t.funnelNotEnabled)continue;if(t.error){te(),eh({type:"error",message:t.error});return}}catch{}}te(),eh({type:"error",message:"Timed out waiting for Funnel to be enabled."})},ta=async()=>{em(!0),eh(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(en(!1),ec(""),eU(!1),eh({type:"success",message:"Tailscale disabled"})):eh({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){eh({type:"error",message:e.message})}finally{em(!1)}},tl=async()=>{eh(null),eC([]);let e=await e8();e?.installed&&e?.hasCachedPassword?tt():eE(!0)},tn=async e=>{if(e.preventDefault(),j.trim()&&!S){T("create"),$(null);try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j})}),t=await e.json();if(!e.ok)throw Error(t.error||`Failed to create key (${e.status})`);v(t.key),await e5(),w(""),f(!1),$({type:"success",message:"API key created"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}},tr=async(e,t)=>{if(!S){T(`toggle:${e}`),$(null);try{let a=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})});if(!a.ok)throw Error(`Failed to update key (${a.status})`);s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s)),$({type:"success",message:"API key updated"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}},ti=async(e,t,a)=>{if(S)return;let l=""===a?0:Math.max(0,Number(a)||0);T(`budget:${e}`),$(null);try{let a=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[t]:l})});if(!a.ok)throw Error(`Failed to update budget (${a.status})`);s(s=>s.map(s=>s.id===e?{...s,[t]:l}:s)),$({type:"success",message:"Budget updated"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}},[to,tc]=(0,l.useState)("/v1");return((0,l.useEffect)(()=>{tc(`${window.location.origin}/v1`)},[]),n)?(0,a.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,a.jsx)(c.Qv,{}),(0,a.jsx)(c.Qv,{})]}):(0,a.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,a.jsxs)(c.Zp,{children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"api"}),"API Endpoint"]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)(h,{label:"Local",url:to,copyId:"local_url",copied:eH,onCopy:eV}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${q?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),q&&!V&&K?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.pd,{"aria-label":"Cloudflare Tunnel endpoint URL",value:`${B||z}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eV(`${B||z}/v1`,"tunnel_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===eH?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>ea(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!q||V||K?V?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),Q||"Creating tunnel..."]}),(0,a.jsx)("button",{onClick:()=>{Z(!1),X("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):G?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),G.message]}),(0,a.jsx)(c.$n,{size:"sm",icon:"cloud_upload",onClick:()=>et(!0),children:"Enable"})]}):R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,a.jsx)("button",{onClick:()=>L(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,a.jsx)(c.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{eZ?Y({type:"error",message:`Security required: ${eQ}`}):_?et(!0):Y({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eW?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,a.jsx)("button",{onClick:()=>ea(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${el?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),el&&!ed&&er?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.pd,{"aria-label":"Tailscale endpoint URL",value:`${eo}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>eV(`${eo}/v1`,"ts_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===eH?"check":"content_copy"})}),(0,a.jsx)("button",{onClick:()=>eU(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!el||ed||er?ed||eP?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eu||"Connecting..."]}),eg&&(0,a.jsx)(c.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(eg,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:ey||"Open"}),(0,a.jsx)("button",{onClick:()=>{em(!1),e$(!1),ex(""),te()},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ep?.type==="error"?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ep.message]}),(0,a.jsx)(c.$n,{size:"sm",icon:"vpn_lock",onClick:tl,children:"Enable"})]}):(0,a.jsx)(c.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{eZ?eh({type:"error",message:`Security required: ${eQ}`}):tl()},className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eM?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,a.jsx)("button",{onClick:()=>eU(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),eZ&&!q&&!el&&(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(y,{message:eQ,action:{label:"Open settings",href:"/dashboard/profile"}})}),(q||el)&&(0,a.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!_&&(0,a.jsx)(y,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!A||!D)&&(0,a.jsx)(y,{message:A?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:A?"Change password":"Enable",href:"/dashboard/profile"}})]}),(q||el)&&(0,a.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,a.jsx)(c.lM,{label:"Allow dashboard access via tunnel",checked:O,onChange:()=>e0(!O)}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,a.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,a.jsx)(b,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,a.jsx)(c.Zp,{id:"rtk",children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"bolt"}),"Token Saver"]}),(0,a.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"RTK, Caveman, Ponytail, Headroom, and PXPIPE live on the Token Saver page."})]}),(0,a.jsxs)(o(),{href:"/dashboard/token-saver",className:"shrink-0 inline-flex items-center gap-1.5 rounded-lg border border-border px-3 py-2 text-sm font-medium text-text-main hover:border-primary/40 hover:text-primary transition-colors",children:["Open",(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_forward"})]})]})}),(0,a.jsxs)(c.Zp,{id:"require-api-key",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"API Keys"]}),(0,a.jsx)(c.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}),P&&(0,a.jsx)("p",{role:"status",className:`mb-4 text-sm ${"error"===P.type?"text-red-500":"text-green-500"}`,children:P.message}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 pb-4 mb-4 border-b border-border",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,a.jsx)(c.lM,{label:"Require API key",checked:_,onChange:()=>e1(!_)})]}),eJ&&!_&&(0,a.jsx)("div",{className:"mb-4 -mt-2",children:(0,a.jsx)(y,{message:"Endpoint is exposed without an API key."})}),0===t.length?(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,a.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,a.jsx)(c.$n,{icon:"add",onClick:()=>f(!0),children:"Create Key"})]}):(0,a.jsx)("div",{className:"flex flex-col",children:t.map(e=>{var t;return(0,a.jsxs)("div",{className:`group flex flex-wrap items-center justify-between gap-3 py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,a.jsx)("div",{className:"flex items-center gap-2 mt-1",children:(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono",children:e.maskedKey||((t=e.key)?t.length>8?t.slice(0,8)+"...":t:"")})}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,a.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"}),(0,a.jsxs)("div",{className:"flex items-center gap-3 mt-2",children:[(0,a.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Daily $",(0,a.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:S===`budget:${e.id}`,defaultValue:e.budgetDaily||0,onBlur:t=>ti(e.id,"budgetDaily",t.target.value),className:"w-16 px-1 py-0.5 text-[11px] bg-transparent border border-border rounded",title:"Daily budget cap in USD (0 = unlimited)"})]}),(0,a.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Monthly $",(0,a.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:S===`budget:${e.id}`,defaultValue:e.budgetMonthly||0,onBlur:t=>ti(e.id,"budgetMonthly",t.target.value),className:"w-16 px-1 py-0.5 text-[11px] bg-transparent border border-border rounded",title:"Monthly budget cap in USD (0 = unlimited)"})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(c.lM,{size:"sm",disabled:S===`toggle:${e.id}`,checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?C({title:"Pause API Key",message:`Pause API key "${e.name}"?
2
+
3
+ This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{C(null),tr(e.id,t)}}):tr(e.id,t)},title:e.isActive?"Pause key":"Resume key"}),(0,a.jsx)("button",{disabled:S===`delete:${e.id}`,onClick:()=>{var t;return t=e.id,void(!S&&C({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{C(null),T(`delete:${t}`),$(null);try{let e=await fetch(`/api/keys/${t}`,{method:"DELETE"});if(!e.ok)throw Error(`Failed to delete key (${e.status})`);s(e=>e.filter(e=>e.id!==t)),setVisibleKeys(e=>{let s=new Set(e);return s.delete(t),s}),$({type:"success",message:"API key deleted"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}}))},className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-100 sm:opacity-0 sm:group-hover:opacity-100 transition-all",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)})})]}),(0,a.jsx)(c.aF,{isOpen:i,title:"Create API Key",onClose:()=>{f(!1),w("")},children:(0,a.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:tn,children:[(0,a.jsx)(c.pd,{label:"Key Name",value:j,onChange:e=>w(e.target.value),placeholder:"Production Key"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{type:"submit",fullWidth:!0,disabled:!j.trim()||"create"===S,children:"create"===S?"Creating...":"Create"}),(0,a.jsx)(c.$n,{type:"button",onClick:()=>{f(!1),w("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(c.aF,{isOpen:!!k,title:"API Key Created",onClose:()=>v(null),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,a.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,a.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.pd,{value:k||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)(c.$n,{variant:"secondary",icon:"created_key"===eH?"check":"content_copy",onClick:()=>eV(k,"created_key"),children:"created_key"===eH?"Copied!":"Copy"})]}),(0,a.jsx)(c.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,a.jsx)(c.aF,{isOpen:ee,title:"Enable Tunnel",onClose:()=>et(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local ZevaiRouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,a.jsx)("div",{className:"grid grid-cols-2 gap-3",children:m.map(e=>(0,a.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:e.icon}),(0,a.jsx)("p",{className:"text-xs font-semibold",children:e.title}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:e.desc})]},e.title))}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:e4,fullWidth:!0,children:"Start Tunnel"}),(0,a.jsx)(c.$n,{onClick:()=>et(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,a.jsx)(c.aF,{isOpen:es,title:"Disable Tunnel",onClose:()=>!V&&ea(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:e3,fullWidth:!0,disabled:V,variant:"danger",children:V?"Disabling...":"Disable"}),(0,a.jsx)(c.$n,{onClick:()=>ea(!1),variant:"ghost",fullWidth:!0,disabled:V,children:"Cancel"})]})]})}),(0,a.jsx)(c.aF,{isOpen:e_,title:"Tailscale Funnel",onClose:()=>{ek||(eE(!1),eT(""),eh(null))},children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ej&&(0,a.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ej&&!ek&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:e6,fullWidth:!0,children:"Install Tailscale"}),(0,a.jsx)(c.$n,{onClick:()=>eE(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ek&&(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),eN.length>0&&(0,a.jsx)("div",{ref:eD,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:eN.map((e,t)=>(0,a.jsx)("div",{children:e},t))})]}),!0===ej&&!ek&&(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:()=>tt(),fullWidth:!0,children:"Connect"}),(0,a.jsx)(c.$n,{onClick:()=>eE(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ep&&(0,a.jsx)(g,{status:ep})]})}),(0,a.jsx)(c.aF,{isOpen:eA,title:"Disable Tailscale",onClose:()=>!ed&&eU(!1),children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{onClick:ta,fullWidth:!0,disabled:ed,variant:"danger",children:ed?"Disabling...":"Disable"}),(0,a.jsx)(c.$n,{onClick:()=>eU(!1),variant:"ghost",fullWidth:!0,disabled:ed,children:"Cancel"})]})]})}),(0,a.jsx)(c.uo,{isOpen:!!N,onClose:()=>C(null),onConfirm:N?.onConfirm,title:N?.title||"Confirm",message:N?.message,variant:"danger"})]})}function h({label:e,url:t,copyId:s,copied:l,onCopy:n,badge:r,actions:i}){return(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${"CF"===r||"TS"===r?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:e}),(0,a.jsx)(c.pd,{"aria-label":`${e} endpoint URL`,value:t,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,a.jsx)("button",{onClick:()=>n(t,s),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:l===s?"check":"content_copy"})}),i]})}function g({status:e,className:t=""}){return(0,a.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,a.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function b({text:e}){return(0,a.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,a.jsx)("span",{className:"pointer-events-none absolute left-5 top-1/2 -translate-y-1/2 z-50 w-64 rounded bg-gray-900 dark:bg-gray-800 text-white text-xs px-2.5 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity shadow-lg",children:e})]})}function y({message:e,action:t}){return(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-xs flex-1",children:e}),t&&(0,a.jsx)("a",{href:t.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}p.propTypes={machineId:r().string.isRequired}}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8593],{7800:(e,t,s)=>{Promise.resolve().then(s.bind(s,20975))},20975:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>p});var o=s(95155),r=s(12115),n=s(35497),i=s(52679);function a({id:e,icon:t,size:s=22}){let[n,i]=(0,r.useState)(!1);return n?(0,o.jsx)("span",{className:"material-symbols-outlined text-primary",style:{fontSize:s},children:t}):(0,o.jsx)("img",{src:`/providers/${e}.png`,alt:"",width:s,height:s,className:"rounded object-contain",style:{width:s,height:s},onError:()=>i(!0)})}function l(e){return`${e} connection${1===e?"":"s"}`}function d({isOpen:e,onClose:t,onSuccess:s}){let[n,i]=(0,r.useState)(""),[a,l]=(0,r.useState)(!1),[c,x]=(0,r.useState)(null),m=async()=>{if(n.trim()){l(!0),x(null);try{let e=await fetch("/api/oauth/codebuddy/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:n})}),t=await e.json();x(t),t.success&&s?.()}catch(e){x({error:e.message})}finally{l(!1)}}};if(!e)return null;let p=null;if(c?.success){let e=[`Imported ${c.imported}/${c.total} tokens.`];if(c.failed&&e.push(`${c.failed} failed.`),c.formatCounts){let{"access-only":t,"with-refresh":s,"with-api-key":o}=c.formatCounts,r=[];o&&r.push(`${o} with API key`),s&&r.push(`${s} with refresh token`),t&&r.push(`${t} access-only`),r.length&&e.push(`(${r.join(", ")})`)}p=e.join(" ")}return(0,o.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:t,children:(0,o.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,o.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"CodeBuddy OAuth Token Import"}),(0,o.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste CodeBuddy OAuth tokens, one per line. Supports three formats:"}),(0,o.jsxs)("div",{className:"mb-3 space-y-2 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,o.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,o.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken"}),(0,o.jsx)("span",{children:"— access token only (24h expiry)"})]})]}),(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,o.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,o.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken:refreshToken"}),(0,o.jsx)("span",{children:"— enables auto-refresh"})]})]}),(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,o.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,o.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken:refreshToken:apiKey"}),(0,o.jsx)("span",{children:"— 365-day access"})]})]})]}),(0,o.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...:ak_abc123...",value:n,onChange:e=>i(e.target.value),disabled:a}),c&&(0,o.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(c.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:p||c.error||"Import failed"}),(0,o.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,o.jsx)("button",{type:"button",onClick:t,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,o.jsx)("button",{type:"button",onClick:m,disabled:a||!n.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:a?"Importing...":"Import Tokens"})]})]})})}function c({isOpen:e,onClose:t,onSuccess:s}){let[n,i]=(0,r.useState)(""),[a,l]=(0,r.useState)(!1),[d,x]=(0,r.useState)(null),m=async()=>{if(n.trim()){l(!0),x(null);try{let e=await fetch("/api/oauth/codebuddy-cn/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:n})}),t=await e.json();x(t),t.success&&s?.()}catch(e){x({error:e.message})}finally{l(!1)}}};if(!e)return null;let p=null;if(d?.success){let e=[`Imported ${d.imported}/${d.total} tokens.`];d.failed&&e.push(`${d.failed} failed.`),p=e.join(" ")}return(0,o.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:t,children:(0,o.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:e=>e.stopPropagation(),children:[(0,o.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"CodeBuddy CN OAuth Token Import"}),(0,o.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste CodeBuddy CN OAuth tokens, one per line. Supports:"}),(0,o.jsxs)("div",{className:"mb-3 space-y-1 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken"})," — access token only"]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken"})," — enables auto-refresh"]})]}),(0,o.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...",value:n,onChange:e=>i(e.target.value),disabled:a}),d&&(0,o.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(d.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:p||d.error||"Import failed"}),(0,o.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,o.jsx)("button",{type:"button",onClick:t,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,o.jsx)("button",{type:"button",onClick:m,disabled:a||!n.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:a?"Importing...":"Import Tokens"})]})]})})}let x={"single-token":"Token import","bulk-token":"Bulk token import","bulk-account":"Bulk accounts","device-oauth":"Device login",social:"Social login",oauth:"OAuth login"},m=[{id:"kiro",label:"Kiro AI",icon:"psychology_alt",description:"Token import, bulk import, and social login automation.",supportedModes:["single-token","bulk-token","bulk-account","social"],component:function({providerInfo:e,onRefresh:t}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(null),[d,c]=(0,r.useState)(null),x=e=>{c({...e,key:Date.now()}),i(!0)};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[{id:"bulk-account",title:"Auto Login Bulk",icon:"group_add",description:"Run bulk gmail|password automation with worker progress and manual assist.",action:()=>x({method:"import",importMode:"bulk-account"})},{id:"bulk-token",title:"Bulk Token",icon:"playlist_add",description:"Import many Kiro refresh tokens, one token per line.",action:()=>x({method:"import",importMode:"bulk-token"})},{id:"single-token",title:"Single Token",icon:"vpn_key",description:"Auto-detect or paste one Kiro refresh token.",action:()=>x({method:"import",importMode:"single-token"})},{id:"builder-id",title:"AWS Builder ID",icon:"shield",description:"Open the standard AWS Builder ID device login.",action:()=>x({method:"builder-id"})},{id:"idc",title:"AWS IDC",icon:"business",description:"Enter an IAM Identity Center start URL and region.",action:()=>x({method:"idc"})},{id:"google",title:"Google Login",icon:"account_circle",description:"Open Kiro social Google login with callback capture.",action:()=>x({method:"social",provider:"google"})}].map(e=>(0,o.jsxs)("button",{type:"button",onClick:e.action,className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:e.icon}),e.title]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:e.description})]},e.id))}),(0,o.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[a?.jobId&&(0,o.jsxs)(n.Ex,{variant:"default",children:["Bulk job: ",a.status]}),a?.jobId&&(0,o.jsx)(n.$n,{size:"sm",variant:"secondary",icon:"monitoring",onClick:()=>x({method:"import",importMode:"bulk-account"}),children:"Resume Bulk Progress"})]}),(0,o.jsx)(n.Mh,{isOpen:s,providerInfo:e,onSuccess:t,onRefresh:t,initialBulkJobId:a?.jobId||null,initialFlow:d,onBulkJobChange:l,onClose:()=>i(!1)})]})}},{id:"codebuddy",label:"CodeBuddy",icon:"smart_toy",description:"Bulk GSuite automation and browser OAuth polling login.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:e,onRefresh:t}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1),[c,x]=(0,r.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login + Generate Key"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk GSuite gmail|password login, create a CodeBuddy Access Key, and save it for model calls."})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"OAuth Token Import"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste OAuth tokens with optional refresh tokens and API keys for extended access."})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open CodeBuddy browser login and poll until the OAuth token is saved."})]})]}),(0,o.jsx)(d,{isOpen:c,onClose:()=>x(!1),onSuccess:t}),(0,o.jsx)(n.Go,{isOpen:a,provider:"codebuddy",title:"CodeBuddy Bulk GSuite Login + Access Key",serviceName:"CodeBuddy",onSuccess:t,onClose:()=>l(!1)}),(0,o.jsx)(n.LF,{isOpen:s,provider:"codebuddy",providerInfo:e,onSuccess:()=>{t?.(),i(!1)},onClose:()=>i(!1)})]})}},{id:"codebuddy-cn",label:"CodeBuddy CN",icon:"smart_toy",description:"Phone-number auto-registration via 5sim SMS, token import, and device OAuth.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:e,onRefresh:t}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1),[d,x]=(0,r.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"smartphone"}),"Auto Register (Phone)"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Bulk auto-register CodeBuddy CN accounts using 5sim virtual phone numbers (HK/China). Includes device-code token capture."})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"OAuth Token Import"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste pre-obtained CodeBuddy CN OAuth tokens with optional refresh tokens."})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>x(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open CodeBuddy CN browser login and poll until the OAuth token is saved."})]})]}),(0,o.jsx)(n.zE,{isOpen:s,onClose:()=>i(!1),onSuccess:t}),(0,o.jsx)(c,{isOpen:a,onClose:()=>l(!1),onSuccess:t}),(0,o.jsx)(n.LF,{isOpen:d,provider:"codebuddy-cn",providerInfo:e,onSuccess:()=>{t?.(),x(!1)},onClose:()=>x(!1)})]})}},{id:"qoder",label:"Qoder",icon:"code",description:"Bulk GSuite auto login via Google SSO and device flow.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:e,onRefresh:t}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google SSO with Qoder device flow."})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open Qoder device login in browser and poll until the token is saved."})]})]}),(0,o.jsx)(n.Go,{isOpen:s,provider:"qoder",title:"Qoder Bulk GSuite Auto Login",serviceName:"Qoder",onSuccess:t,onClose:()=>i(!1)}),(0,o.jsx)(n.LF,{isOpen:a,provider:"qoder",providerInfo:e,onSuccess:()=>{t?.(),l(!1)},onClose:()=>l(!1)})]})}},{id:"antigravity",label:"Antigravity",icon:"rocket_launch",description:"Bulk GSuite auto login via Google OAuth (authorization code).",supportedModes:["bulk-account","oauth"],component:function({providerInfo:e,onRefresh:t}){let[s,i]=(0,r.useState)(!1),[a,l]=(0,r.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,o.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google OAuth (authorization code) for Antigravity."})]}),(0,o.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"OAuth Login"]}),(0,o.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open Antigravity Google OAuth in browser and finish the consent manually."})]})]}),(0,o.jsx)(n.Go,{isOpen:s,provider:"antigravity",title:"Antigravity Bulk GSuite Auto Login",serviceName:"Antigravity",onSuccess:t,onClose:()=>i(!1)}),(0,o.jsx)(n.LF,{isOpen:a,provider:"antigravity",providerInfo:e,onSuccess:()=>{t?.(),l(!1)},onClose:()=>l(!1)})]})}},{id:"cloudflare-ai",label:"Cloudflare Workers AI",icon:"cloud",description:"Bulk Google login → Workers AI API token harvest for free-tier CF AI.",supportedModes:["bulk-account"],component:function({onRefresh:e}){let[t,s]=(0,r.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:(0,o.jsxs)("button",{type:"button",onClick:()=>s(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,o.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,o.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"cloud"}),"Bulk Workers AI Tokens"]}),(0,o.jsxs)("span",{className:"text-xs leading-relaxed text-text-muted",children:["Google login to Cloudflare dashboard → create Workers AI API token → save as"," ",(0,o.jsx)("code",{className:"text-[11px]",children:"cloudflare-ai"})," (accountId + token). Paste"," ",(0,o.jsx)("code",{className:"text-[11px]",children:"email:password"})," or ",(0,o.jsx)("code",{className:"text-[11px]",children:"email|password"}),". Residential proxy recommended."]})]})}),(0,o.jsx)(n.Go,{isOpen:t,provider:"cloudflare-ai",title:"Cloudflare Workers AI Bulk Token Harvest",serviceName:"Cloudflare Workers AI",accountsPlaceholder:"user@gmail.com:password\nuser2@gmail.com|password",onSuccess:e,onClose:()=>s(!1)})]})}}];function p(){let[e,t]=(0,r.useState)([]),[s,d]=(0,r.useState)(!0),[c,p]=(0,r.useState)(m[0].id),u=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/providers",{cache:"no-store"}),s=await e.json();e.ok&&t(s.connections||[])}catch(e){console.log("Error fetching automation connections:",e)}finally{d(!1)}},[]);(0,r.useEffect)(()=>{u()},[u]),(0,r.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get("provider");m.some(t=>t.id===e)&&p(e)},[]);let h=m.find(e=>e.id===c)||m[0],b=i.IS[h.id]||{id:h.id,name:h.label},g=h.component,f=(0,r.useMemo)(()=>{let t={};for(let s of m)t[s.id]=e.filter(e=>e.provider===s.id).length;return t},[e]);return s?(0,o.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,o.jsx)(n.Qv,{}),(0,o.jsx)(n.Qv,{})]}):(0,o.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,o.jsx)("div",{className:"flex flex-col gap-1",children:(0,o.jsx)("h1",{className:"text-2xl font-semibold",children:"Automation"})}),(0,o.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:m.map(e=>{let t=e.id===c;return(0,o.jsxs)("button",{type:"button",onClick:()=>p(e.id),className:`flex min-w-0 items-center gap-3 rounded-lg border px-4 py-3 text-left transition-colors ${t?"border-primary/50 bg-primary/10 text-primary":"border-border bg-surface text-text-main hover:border-primary/30 hover:bg-primary/5"}`,children:[(0,o.jsx)(a,{id:e.id,icon:e.icon,size:22}),(0,o.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,o.jsx)("span",{className:"block truncate text-sm font-semibold",children:e.label}),(0,o.jsx)("span",{className:"mt-0.5 block text-xs text-text-muted",children:l(f[e.id]||0)})]})]},e.id)})}),(0,o.jsx)(n.Zp,{children:(0,o.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,o.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,o.jsxs)("div",{className:"min-w-0",children:[(0,o.jsxs)("div",{className:"flex items-center gap-2",children:[(0,o.jsx)(a,{id:h.id,icon:h.icon,size:22}),(0,o.jsx)("h2",{className:"text-lg font-semibold",children:h.label})]}),(0,o.jsx)("span",{className:"mt-1 block text-xs leading-relaxed text-text-muted",children:h.description}),(0,o.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:h.supportedModes.map(e=>(0,o.jsx)(n.Ex,{variant:"default",size:"sm",children:x[e]},e))})]}),(0,o.jsx)(n.Ex,{variant:"success",children:l(f[h.id]||0)})]}),(0,o.jsx)(g,{providerInfo:b,onRefresh:u})]})})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=7800)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4465],{},_=>{_.O(0,[2574,3862,2018,1992,85,5497,5950,8441,3794,7358],()=>_(_.s=55950)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3554],{76713:(e,t,a)=>{Promise.resolve().then(a.bind(a,85309))},85309:(e,t,a)=>{"use strict";a.d(t,{default:()=>x});var s=a(95155),l=a(12115),r=a(98500),i=a.n(r),o=a(35497),n=a(3534),c=a(28777),d=a(43666);let u=a(41463).env.NEXT_PUBLIC_CLOUD_URL;function x({toolId:e,machineId:t}){let a=n.dM[e],[r,v]=(0,l.useState)([]),[m,h]=(0,l.useState)(!0),[p,b]=(0,l.useState)({}),[f,j]=(0,l.useState)(!1),[E,P]=(0,l.useState)(!1),[w,k]=(0,l.useState)(""),[g,N]=(0,l.useState)(!1),[_,y]=(0,l.useState)(""),[S,A]=(0,l.useState)([]);(0,l.useEffect)(()=>{let e=!0;return(async()=>{try{let[t,a,s,l]=await Promise.all([fetch("/api/providers"),fetch("/api/settings"),fetch("/api/tunnel/status"),fetch("/api/keys")]);if(!e)return;if(t.ok){let e=await t.json();v(e.connections||[])}if(a.ok){let e=await a.json();j(e.cloudEnabled||!1)}if(s.ok){let e=await s.json();P(!!(e.tunnel?.enabled||e.tunnel?.settingsEnabled)),k(e.tunnel?.publicUrl||""),N(!!(e.tailscale?.enabled||e.tailscale?.settingsEnabled)),y(e.tailscale?.tunnelUrl||"")}if(l.ok){let e=await l.json();A(e.keys||[])}}catch(e){console.log("Error loading tool data:",e)}finally{e&&h(!1)}})(),()=>{e=!1}},[]);let C=()=>r.filter(e=>!1!==e.isActive),U=(0,l.useCallback)((e,t,a)=>{b(s=>s[e]?.[t]===a?s:{...s,[e]:{...s[e],[t]:a}})},[]);return a?(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(i(),{href:"/dashboard/cli-tools",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("h1",{className:"text-xl font-semibold text-text-main sm:text-2xl",children:a.name}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:a.description})]}),m?(0,s.jsx)(o.Qv,{}):(()=>{let t,l,r,i=(t=C(),l=[],r=new Set,t.forEach(e=>{let t=c.Xg[e.provider]||e.provider;(0,c.KC)(e.provider).forEach(a=>{let s=`${t}/${a.id}`;r.has(s)||(r.add(s),l.push({value:s,label:`${t}/${a.id}`,provider:e.provider,alias:t,connectionName:e.name,modelId:a.id}))})}),l).length>0,o={tool:a,isExpanded:!0,onToggle:()=>{},baseUrl:E&&w?w:f&&u?u:window.location.origin,apiKeys:S,tunnelEnabled:E,tunnelPublicUrl:w,tailscaleEnabled:g,tailscaleUrl:_};switch(e){case"claude":return(0,s.jsx)(d.Tk,{...o,activeProviders:C(),modelMappings:p[e]||{},onModelMappingChange:(t,a)=>U(e,t,a),hasActiveProviders:i,cloudEnabled:f});case"codex":return(0,s.jsx)(d.Ah,{...o,activeProviders:C(),cloudEnabled:f});case"opencode":return(0,s.jsx)(d.qO,{...o,activeProviders:C(),cloudEnabled:f});case"cowork":return(0,s.jsx)(d.Q6,{...o,activeProviders:C(),hasActiveProviders:i,cloudEnabled:f,cloudUrl:u,tunnelEnabled:E,tunnelPublicUrl:w,tailscaleEnabled:g,tailscaleUrl:_});case"droid":return(0,s.jsx)(d.ZM,{...o,activeProviders:C(),hasActiveProviders:i,cloudEnabled:f});case"openclaw":return(0,s.jsx)(d.yZ,{...o,activeProviders:C(),hasActiveProviders:i,cloudEnabled:f});case"hermes":return(0,s.jsx)(d.RF,{...o,activeProviders:C(),hasActiveProviders:i,cloudEnabled:f});case"copilot":return(0,s.jsx)(d.h1,{...o,activeProviders:C(),cloudEnabled:f});case"cline":return(0,s.jsx)(d.aG,{...o,activeProviders:C(),cloudEnabled:f});case"kilo":return(0,s.jsx)(d.c9,{...o,activeProviders:C(),cloudEnabled:f});case"deepseek-tui":return(0,s.jsx)(d.lF,{...o,activeProviders:C(),hasActiveProviders:i,cloudEnabled:f});case"jcode":return(0,s.jsx)(d.mW,{...o,activeProviders:C(),hasActiveProviders:i,cloudEnabled:f});default:return(0,s.jsx)(d.a7,{toolId:e,...o,activeProviders:C(),cloudEnabled:f,tunnelEnabled:E})}})()]}):(0,s.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:px-0",children:[(0,s.jsxs)(i(),{href:"/dashboard/cli-tools",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary w-fit",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"arrow_back"}),"Back to CLI Tools"]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Tool not found or disabled."})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,6069,8441,3794,7358],()=>e(e.s=76713)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2326],{75882:(e,s,l)=>{"use strict";l.d(s,{default:()=>m});var t=l(95155),a=l(12115),r=l(35497),i=l(3534),n=l(43666),o=l(98500),c=l.n(o),d=l(5772);function x({toolId:e,tool:s,status:l}){let a=l?.error?{label:"Unavailable",cls:"bg-red-500/10 text-red-600 dark:text-red-400"}:l?l.installed?l.hasZevai?{label:"Connected",cls:"bg-green-500/10 text-green-600 dark:text-green-400"}:{label:"Not configured",cls:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400"}:{label:"Not installed",cls:"bg-gray-500/10 text-gray-500"}:{label:"Unknown",cls:"bg-gray-500/10 text-gray-500"};return(0,t.jsx)(c(),{href:`/dashboard/cli-tools/${e}`,className:"block",children:(0,t.jsx)(r.Zp,{padding:"sm",className:"h-full overflow-hidden hover:border-primary/50 transition-colors cursor-pointer",children:(0,t.jsx)("div",{className:"flex h-full flex-col gap-2",children:(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:s.image?(0,t.jsx)(d.default,{src:s.image,alt:s.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}}):s.icon?(0,t.jsx)("span",{className:"material-symbols-outlined text-[28px]",style:{color:s.color},children:s.icon}):null}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h3",{className:"font-medium text-sm truncate",children:s.name}),(0,t.jsx)("span",{className:`inline-block mt-1 px-1.5 py-0.5 text-[10px] font-medium rounded-full ${a.cls}`,children:a.label})]}),(0,t.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px] shrink-0",children:"chevron_right"})]})})})})}function m({machineId:e}){let[s,l]=(0,a.useState)(!0),[o,c]=(0,a.useState)({}),d=(0,a.useCallback)(async e=>{try{let s=await fetch("/api/cli-tools/all-statuses",{signal:e});s.ok&&c(await s.json())}catch(e){"AbortError"!==e.name&&console.log("Error fetching tool statuses:",e)}finally{e.aborted||l(!1)}},[]);if((0,a.useEffect)(()=>{let e=new AbortController;d(e.signal);let s=()=>{e.abort(),d((e=new AbortController).signal)};return window.addEventListener("focus",s),()=>{e.abort(),window.removeEventListener("focus",s)}},[d]),s)return(0,t.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:[(0,t.jsx)(r.Qv,{}),(0,t.jsx)(r.Qv,{}),(0,t.jsx)(r.Qv,{}),(0,t.jsx)(r.Qv,{}),(0,t.jsx)(r.Qv,{}),(0,t.jsx)(r.Qv,{})]});let g=Object.entries(i.dM),h=Object.entries(i.wn);return(0,t.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-1 sm:px-0",children:[(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:g.map(([e,s])=>(0,t.jsx)(x,{toolId:e,tool:s,status:o[e]},e))}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 sm:gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,t.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"security"}),(0,t.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"MITM Tools"})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 sm:gap-4",children:h.map(([e,s])=>(0,t.jsx)(n.gY,{tool:s},e))})]})]})}},81150:(e,s,l)=>{Promise.resolve().then(l.bind(l,75882))}},e=>{e.O(0,[2574,3862,2018,85,5497,6069,8441,3794,7358],()=>e(e.s=81150)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3649],{47295:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>x});var a=s(95155),l=s(12115),r=s(44923),o=s(87256),i=s(39768),n=s(5020),c=s(35497),d=s(11059);s(52679);let m=/^[a-zA-Z0-9_.\-]+$/;function x(){let[e,t]=(0,l.useState)([]),[s,r]=(0,l.useState)(!0),[o,i]=(0,l.useState)(!1),[n,m]=(0,l.useState)(null),[x,u]=(0,l.useState)([]),[b,g]=(0,l.useState)({}),[f,j]=(0,l.useState)(null),[y,v]=(0,l.useState)(1),[w,N]=(0,l.useState)(20),{copied:k,copy:C}=(0,d.C)();(0,l.useEffect)(()=>{S()},[]);let S=async()=>{try{let[e,s,a]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings")]),l=await e.json(),r=await s.json(),o=a.ok?await a.json():{};e.ok&&t((l.combos||[]).filter(e=>!e.kind)),s.ok&&u(r.connections||[]),g(o.comboStrategies||{})}catch(e){console.log("Error fetching data:",e)}finally{r(!1)}},E=async e=>{try{let t=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(t.ok)await S(),i(!1);else{let e=await t.json();alert(e.error||"Failed to create combo")}}catch(e){console.log("Error creating combo:",e)}},M=async(e,t)=>{try{let s=await fetch(`/api/combos/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(s.ok)await S(),m(null);else{let e=await s.json();alert(e.error||"Failed to update combo")}}catch(e){console.log("Error updating combo:",e)}},O=async s=>{j({title:"Delete Combo",message:"Delete this combo?",onConfirm:async()=>{j(null);try{(await fetch(`/api/combos/${s}`,{method:"DELETE"})).ok&&t(e.filter(e=>e.id!==s))}catch(e){console.log("Error deleting combo:",e)}}})},$=async(e,t)=>{try{let s={...b};t?s[e]={fallbackStrategy:"round-robin"}:delete s[e],await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:s})}),g(s)}catch(e){console.log("Error updating combo strategy:",e)}};(0,l.useEffect)(()=>{v(t=>Math.min(t,Math.max(1,Math.ceil(e.length/w))))},[e.length,w]);let _=Math.min(y,Math.max(1,Math.ceil(e.length/w))),D=e.slice((_-1)*w,_*w);return s?(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)(c.Qv,{}),(0,a.jsx)(c.Qv,{})]}):(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("h1",{className:"text-2xl font-semibold",children:"Combos"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Create model combos with fallback support"})]}),(0,a.jsx)(c.$n,{icon:"add",onClick:()=>i(!0),className:"w-full sm:w-auto",children:"Create Combo"})]}),0===e.length?(0,a.jsx)(c.Zp,{children:(0,a.jsxs)("div",{className:"text-center py-12",children:[(0,a.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"layers"})}),(0,a.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No combos yet"}),(0,a.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create model combos with fallback support"}),(0,a.jsx)(c.$n,{icon:"add",onClick:()=>i(!0),className:"w-full sm:w-auto",children:"Create Combo"})]})}):(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[D.map(e=>(0,a.jsx)(h,{combo:e,copied:k,onCopy:C,onEdit:()=>m(e),onDelete:()=>O(e.id),roundRobinEnabled:b[e.name]?.fallbackStrategy==="round-robin",onToggleRoundRobin:t=>$(e.name,t)},e.id)),(0,a.jsx)(c.dK,{currentPage:_,pageSize:w,totalItems:e.length,onPageChange:v,onPageSizeChange:e=>{N(e),v(1)}})]}),(0,a.jsx)(p,{isOpen:o,onClose:()=>i(!1),onSave:E,activeProviders:x},"create"),(0,a.jsx)(p,{isOpen:!!n,combo:n,onClose:()=>m(null),onSave:e=>M(n.id,e),activeProviders:x},n?.id||"new"),(0,a.jsx)(c.uo,{isOpen:!!f,onClose:()=>j(null),onConfirm:f?.onConfirm,title:f?.title||"Confirm",message:f?.message,variant:"danger"})]})}function h({combo:e,copied:t,onCopy:s,onEdit:l,onDelete:r,roundRobinEnabled:o,onToggleRoundRobin:i}){return(0,a.jsx)(c.Zp,{padding:"sm",className:"group",children:(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,a.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("code",{className:"block truncate font-mono text-sm font-medium",children:e.name}),(0,a.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===e.models.length?(0,a.jsx)("span",{className:"text-xs text-text-muted italic",children:"No models"}):e.models.slice(0,3).map((e,t)=>(0,a.jsx)("code",{className:"max-w-full truncate rounded bg-black/5 px-1.5 py-0.5 font-mono text-[10px] text-text-muted dark:bg-white/5 sm:max-w-[220px]",children:e},t)),e.models.length>3&&(0,a.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",e.models.length-3," more"]})]})]})]}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-1.5 rounded-lg bg-black/[0.02] px-2 py-1.5 dark:bg-white/[0.02] sm:justify-start sm:bg-transparent sm:px-0 sm:py-0 sm:dark:bg-transparent",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,a.jsx)(c.lM,{size:"sm",checked:o,onChange:i})]}),(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-1 sm:flex",children:[(0,a.jsxs)("button",{onClick:t=>{t.stopPropagation(),s(e.name,`combo-${e.id}`)},className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Copy combo name",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:t===`combo-${e.id}`?"check":"content_copy"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Copy"})]}),(0,a.jsxs)("button",{onClick:l,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Edit",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,a.jsxs)("button",{onClick:r,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 transition-colors hover:bg-red-500/10",title:"Delete",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]})]})]})})}function u({id:e,index:t,model:s,isFirst:r,isLast:n,onEdit:c,onMoveUp:d,onMoveDown:m,onRemove:x}){let{attributes:h,listeners:p,setNodeRef:b,transform:g,isDragging:f}=(0,o.gl)({id:e}),j={transform:i.Ks.Transform.toString(g),opacity:f?.4:1,zIndex:f?999:void 0},[y,v]=(0,l.useState)(!1),[w,N]=(0,l.useState)(s),k=()=>{let e=w.trim();e&&e!==s?c(e):N(s),v(!1)};return(0,a.jsxs)("div",{ref:b,style:j,className:`group flex min-w-0 items-center gap-1.5 rounded-md px-2 py-1 bg-black/[0.02] hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04] transition-colors ${f?"shadow-md ring-1 ring-primary/30":""}`,children:[(0,a.jsx)("button",{...h,...p,type:"button",className:"cursor-grab touch-none p-0.5 rounded text-text-muted hover:text-primary active:cursor-grabbing shrink-0",title:"Drag to reorder",children:(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:[(0,a.jsx)("circle",{cx:"9",cy:"4",r:"2"}),(0,a.jsx)("circle",{cx:"15",cy:"4",r:"2"}),(0,a.jsx)("circle",{cx:"9",cy:"12",r:"2"}),(0,a.jsx)("circle",{cx:"15",cy:"12",r:"2"}),(0,a.jsx)("circle",{cx:"9",cy:"20",r:"2"}),(0,a.jsx)("circle",{cx:"15",cy:"20",r:"2"})]})}),(0,a.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:t+1}),y?(0,a.jsx)("input",{autoFocus:!0,value:w,onChange:e=>N(e.target.value),onBlur:k,onKeyDown:e=>{"Enter"===e.key&&k(),"Escape"===e.key&&(N(s),v(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,a.jsx)("div",{className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>v(!0),title:"Click to edit",children:s}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,a.jsx)("button",{onClick:d,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,a.jsx)("button",{onClick:m,disabled:n,className:`p-0.5 rounded ${n?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,a.jsx)("button",{onClick:x,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function p({isOpen:e,combo:t,onClose:s,onSave:i,activeProviders:d,kindFilter:x=null}){let[h,b]=(0,l.useState)(t?.name||""),[g,f]=(0,l.useState)(t?.models||[]),[j,y]=(0,l.useState)(!1),[v,w]=(0,l.useState)(!1),[N,k]=(0,l.useState)(""),[C,S]=(0,l.useState)({}),E=(0,r.FR)((0,r.MS)(r.AN,{activationConstraint:{distance:5}}),(0,r.MS)(r.uN,{coordinateGetter:o.JR})),M=g.map((e,t)=>({uid:`item-${t}`,model:e})),O=async()=>{try{let e=await fetch("/api/models/alias");if(!e.ok)return;let t=await e.json();S(t.aliases||{})}catch(e){console.error("Error fetching modal data:",e)}};(0,l.useEffect)(()=>{e&&O()},[e]);let $=e=>e.trim()?m.test(e)?(k(""),!0):(k("Only letters, numbers, -, _ and . allowed"),!1):(k("Name is required"),!1),_=async()=>{$(h)&&(w(!0),await i({name:h.trim(),models:g}),w(!1))},D=!!t;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.aF,{isOpen:e,onClose:s,title:D?"Edit Combo":"Create Combo",children:(0,a.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(c.pd,{label:"Combo Name",value:h,onChange:e=>{let t=e.target.value;b(t),t?$(t):k("")},placeholder:"my-combo",error:N}),(0,a.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:"Only letters, numbers, -, _ and . allowed"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===g.length?(0,a.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,a.jsx)(r.Mp,{sensors:E,collisionDetection:r.fp,onDragEnd:e=>{let{active:t,over:s}=e;if(s&&t.id!==s.id){let e=M.findIndex(e=>e.uid===t.id),a=M.findIndex(e=>e.uid===s.id);-1!==e&&-1!==a&&f(t=>(0,o.be)(t,e,a))}},modifiers:[n.FN,n.gj],children:(0,a.jsx)(o.gB,{items:M.map(e=>e.uid),strategy:o._G,children:(0,a.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:M.map(({uid:e,model:t},s)=>(0,a.jsx)(u,{id:e,index:s,model:t,isFirst:0===s,isLast:s===M.length-1,onEdit:e=>{let t=[...g];t[s]=e,f(t)},onMoveUp:()=>(e=>{if(0===e)return;let t=[...g];[t[e-1],t[e]]=[t[e],t[e-1]],f(t)})(s),onMoveDown:()=>(e=>{if(e===g.length-1)return;let t=[...g];[t[e],t[e+1]]=[t[e+1],t[e]],f(t)})(s),onRemove:()=>{f(g.filter((e,t)=>t!==s))}},e))})})}),(0,a.jsxs)("button",{onClick:()=>y(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,a.jsx)(c.$n,{onClick:s,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,a.jsx)(c.$n,{onClick:_,fullWidth:!0,size:"sm",disabled:!h.trim()||!!N||v,children:v?"Saving...":D?"Save":"Create"})]})]})}),(0,a.jsx)(c.rq,{isOpen:j,onClose:()=>y(!1),onSelect:e=>{g.includes(e.value)||f([...g,e.value])},onDeselect:e=>{f(g.filter(t=>t!==e.value))},activeProviders:d,modelAliases:C,title:"Add Model to Combo",kindFilter:x,addedModelValues:g,closeOnSelect:!1})]})}},99892:(e,t,s)=>{Promise.resolve().then(s.bind(s,47295))}},e=>{e.O(0,[2574,3862,2018,7055,85,5497,8441,3794,7358],()=>e(e.s=99892)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[712],{16299:(e,t,l)=>{Promise.resolve().then(l.bind(l,44493))},44493:(e,t,l)=>{"use strict";l.d(t,{default:()=>o});var n=l(95155),s=l(12115),r=l(35497),a=l(90620);let c={LOG:"text-green-700 dark:text-green-400",INFO:"text-blue-700 dark:text-blue-400",WARN:"text-amber-700 dark:text-yellow-400",ERROR:"text-red-700 dark:text-red-400",DEBUG:"text-purple-700 dark:text-purple-400"};function o(){let[e,t]=(0,s.useState)([]),[l,o]=(0,s.useState)("connecting"),[i,d]=(0,s.useState)(0),[u,x]=(0,s.useState)(!1),[g,p]=(0,s.useState)(null),m=(0,s.useRef)(null),h=async()=>{if(!u){x(!0),p(null),t([]);try{let e=await fetch("/api/translator/console-logs",{method:"DELETE"});if(!e.ok)throw Error(`Failed to clear logs (${e.status})`)}catch(l){t(e),p(l.message||"Failed to clear console logs")}finally{x(!1)}}};return(0,s.useEffect)(()=>{let e=new EventSource("/api/translator/console-logs/stream");return e.onopen=()=>o("connected"),e.onmessage=e=>{try{let l=JSON.parse(e.data);"init"===l.type&&Array.isArray(l.logs)?t(l.logs.slice(-a.UY.maxLines)):"line"===l.type&&null!=l.line?t(e=>[...e,String(l.line)].slice(-a.UY.maxLines)):"clear"===l.type&&t([])}catch{p("Received an invalid console log event")}},e.onerror=()=>o("disconnected"),()=>e.close()},[i]),(0,s.useEffect)(()=>{m.current&&(m.current.scrollTop=m.current.scrollHeight)},[e]),(0,n.jsxs)(r.Zp,{className:"p-0 overflow-hidden",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2 border-b border-border bg-surface-2 px-4 py-3",children:[(0,n.jsxs)("div",{role:"status","aria-live":"polite",className:"flex items-center gap-2",children:[(0,n.jsx)("span",{"aria-hidden":"true",className:`size-2 rounded-full ${"connected"===l?"bg-green-500":"connecting"===l?"animate-pulse bg-yellow-500":"bg-red-500"}`}),(0,n.jsx)("span",{className:"text-sm capitalize text-text-muted",children:l})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:["disconnected"===l?(0,n.jsx)(r.$n,{size:"sm",variant:"outline",onClick:()=>{o("connecting"),p(null),d(e=>e+1)},children:"Reconnect"}):null,(0,n.jsx)(r.$n,{size:"sm",variant:"outline",icon:"delete",onClick:h,loading:u,disabled:0===e.length,children:"Clear"})]})]}),g?(0,n.jsx)("div",{role:"alert",className:"border-b border-border px-4 py-2 text-sm text-danger",children:g}):null,(0,n.jsx)("div",{ref:m,role:"log","aria-live":"polite","aria-relevant":"additions text",className:"h-[calc(100vh-220px)] overflow-y-auto bg-bg-alt p-4 font-mono text-xs text-text-main dark:bg-black",children:0===e.length?(0,n.jsx)("span",{className:"text-text-muted",children:"connecting"===l?"Connecting to console logs…":"disconnected"===l?"Console log stream disconnected.":"No console logs yet. Logs appear after routed requests."}):(0,n.jsx)("div",{className:"space-y-0.5",children:e.map((e,t)=>{let l,s,r;return(0,n.jsx)("div",{children:(r=c[(s=(l="string"==typeof e?e:String(e)).match(/\[(\w+)\]/g))?s[1]?.replace(/\[|\]/g,""):null]||"text-green-700 dark:text-green-400",(0,n.jsx)("span",{className:r,children:l}))},`${t}-${e}`)})})})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=16299)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9933],{7322:(e,t,s)=>{Promise.resolve().then(s.bind(s,33711))},33711:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>r});var a=s(95155),n=s(12115),l=s(35497);function i(e){let t=new TextEncoder().encode(e||"").length;return t<1024?`${t} B`:`${(t/1024).toFixed(1)} KB`}function r(){let[e,t]=(0,n.useState)(!1),[s,r]=(0,n.useState)([]),[d,c]=(0,n.useState)(!0),[o,m]=(0,n.useState)(!1),[x,h]=(0,n.useState)(null),[p,u]=(0,n.useState)(null),[f,b]=(0,n.useState)({type:"",message:""}),[g,j]=(0,n.useState)(!1),y=(0,n.useRef)(null),N=(0,n.useCallback)(async()=>{c(!0);try{let[e,s]=await Promise.all([fetch("/api/settings",{cache:"no-store"}),fetch("/api/context",{cache:"no-store"})]),a=await e.json(),n=await s.json();t(!!a.contextInjectionEnabled),r(Array.isArray(n.files)?n.files:[])}catch(e){b({type:"error",message:"Failed to load context files."})}finally{c(!1)}},[]);(0,n.useEffect)(()=>{N()},[N]);let v=async e=>{t(e);try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({contextInjectionEnabled:e})})}catch{t(!e),b({type:"error",message:"Failed to update global toggle."})}},w=async()=>{if(!x?.name?.trim())return void b({type:"error",message:"Name is required."});m(!0);try{x.id?await fetch(`/api/context/${x.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:x.name,content:x.content})}):await fetch("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:x.name,content:x.content,priority:s.length})}),h(null),await N(),b({type:"success",message:"Saved."})}catch{b({type:"error",message:"Failed to save."})}finally{m(!1)}},k=async(e,t)=>{r(s=>s.map(s=>s.id===e.id?{...s,enabled:t}:s));try{await fetch(`/api/context/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:t})})}catch{await N()}},C=async()=>{if(p)try{await fetch(`/api/context/${p.id}`,{method:"DELETE"}),u(null),await N()}catch{b({type:"error",message:"Failed to delete."})}},E=async e=>{let t=Array.from(e.target.files||[]);if(0!==t.length){j(!0),b({type:"",message:""});try{let e=await Promise.all(t.map(async e=>({name:e.name,content:await e.text()}))),s=await fetch("/api/context/bulk",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:e})}),a=await s.json();if(!s.ok)throw Error(a?.error||"Upload failed");await N(),b({type:"success",message:`Uploaded ${a.created} file(s) — all disabled by default. Enable the ones you want below.`})}catch(e){b({type:"error",message:e.message||"Upload failed."})}finally{j(!1),y.current&&(y.current.value="")}}},S=s.filter(e=>e.enabled).length,T=s.filter(e=>e.enabled).reduce((e,t)=>e+new TextEncoder().encode(t.content||"").length,0);return(0,a.jsxs)("div",{className:"max-w-4xl mx-auto space-y-6",children:[(0,a.jsxs)(l.Zp,{padding:"md",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-4 flex-wrap",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("h1",{className:"text-lg font-semibold text-text-main",children:"Context Injection"}),(0,a.jsx)("p",{className:"text-xs text-text-muted mt-1 max-w-xl",children:"Prepend your own context files (soul.md, agent.md, rules…) to the system prompt of every chat request routed through ZevaiRouter. Enabled files are injected in order, across all providers."})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,a.jsx)("span",{className:"text-sm text-text-muted",children:e?"On":"Off"}),(0,a.jsx)(l.lM,{checked:e,onChange:v})]})]}),e&&(0,a.jsxs)("p",{className:"text-[11px] text-text-muted mt-3",children:[S," file(s) active \xb7 ~",(T/1024).toFixed(1)," KB added to every request"]})]}),f.message&&(0,a.jsx)("div",{className:`text-xs px-3 py-2 rounded ${"error"===f.type?"text-red-500 bg-red-500/10":"text-green-600 bg-green-500/10"}`,children:f.message}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"Files"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("input",{ref:y,type:"file",multiple:!0,className:"hidden",onChange:E}),(0,a.jsxs)(l.$n,{variant:"ghost",size:"sm",onClick:()=>y.current?.click(),disabled:g,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] mr-1",children:"upload_file"}),g?"Uploading…":"Upload .md"]}),(0,a.jsxs)(l.$n,{size:"sm",onClick:()=>h({name:"",content:"",enabled:!0}),children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] mr-1",children:"add"}),"Add File"]})]})]}),d?(0,a.jsx)("div",{className:"text-sm text-text-muted",children:"Loading…"}):0===s.length?(0,a.jsx)(l.Zp,{padding:"md",children:(0,a.jsxs)("p",{className:"text-sm text-text-muted",children:["No context files yet. Click ",(0,a.jsx)("b",{children:"Add File"})," to create one (e.g. ",(0,a.jsx)("code",{children:"soul.md"}),")."]})}):(0,a.jsx)("div",{className:"space-y-2",children:s.map(e=>(0,a.jsxs)("div",{className:"flex items-start gap-3 p-4 rounded-[14px] border border-border-subtle bg-surface",children:[(0,a.jsx)("div",{className:"size-9 rounded-lg flex items-center justify-center shrink-0 bg-primary/10 text-primary",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"description"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,a.jsx)("h3",{className:"font-semibold text-sm text-text-main",children:e.name}),(0,a.jsx)(l.Ex,{variant:"default",size:"sm",children:i(e.content)}),!e.enabled&&(0,a.jsx)(l.Ex,{variant:"default",size:"sm",children:"disabled"})]}),(0,a.jsx)("p",{className:"text-xs text-text-muted mt-0.5 line-clamp-2 whitespace-pre-wrap",children:e.content?.slice(0,160)||"(empty)"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,a.jsx)(l.lM,{checked:e.enabled,onChange:t=>k(e,t),size:"sm"}),(0,a.jsx)("button",{onClick:()=>h({...e}),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5",title:"Edit",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,a.jsx)("button",{onClick:()=>u(e),className:"p-1.5 rounded-lg text-text-muted hover:bg-red-500/10 hover:text-red-500",title:"Delete",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id))}),x&&(0,a.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>h(null)}),(0,a.jsxs)("div",{className:"relative w-full max-w-2xl bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl flex flex-col max-h-[85vh]",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-text-main",children:x.id?"Edit File":"New Context File"}),(0,a.jsx)("button",{onClick:()=>h(null),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,a.jsxs)("div",{className:"p-4 space-y-3 overflow-y-auto flex-1",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"Name"}),(0,a.jsx)(l.pd,{placeholder:"soul.md",value:x.name,onChange:e=>h(t=>({...t,name:e.target.value}))})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-sm font-medium",children:"Content (markdown / plain text)"}),(0,a.jsx)("textarea",{className:"w-full mt-1 rounded-lg border border-border bg-surface-2 p-3 font-mono text-xs text-text-main min-h-[280px] resize-y focus:outline-none focus:ring-2 focus:ring-primary/40",placeholder:"You are a helpful assistant with the following persona…",value:x.content,onChange:e=>h(t=>({...t,content:e.target.value}))}),(0,a.jsxs)("p",{className:"text-[11px] text-text-muted mt-1",children:[i(x.content)," \xb7 injected into the system prompt"]})]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-2 p-3 border-t border-black/5 dark:border-white/5",children:[(0,a.jsx)(l.$n,{variant:"ghost",size:"sm",onClick:()=>h(null),children:"Cancel"}),(0,a.jsx)(l.$n,{size:"sm",onClick:w,disabled:o,children:o?"Saving…":"Save"})]})]})]}),(0,a.jsx)(l.uo,{isOpen:!!p,title:"Delete context file?",message:`"${p?.name}" will be permanently removed.`,confirmText:"Delete",variant:"danger",onConfirm:C,onClose:()=>u(null)})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=7322)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6099],{},_=>{_.O(0,[2574,3862,2018,85,5497,979,8441,3794,7358],()=>_(_.s=90979)),_N_E=_.O()}]);
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[182],{45793:(e,t,s)=>{Promise.resolve().then(s.bind(s,96148))},96148:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>O});var a=s(94799),r=s(1727),o=s(68202),l=s.n(o),n=s(34023),i=s(77783),d=s(94994),c=s(45303),m=s(31225),p=s(33379),u=s(78525),x=s.n(u);function h({until:e}){let[t,s]=(0,n.useState)("");return((0,n.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let a=Math.floor(t/1e3);a<60?s(`${a}s`):a<3600?s(`${Math.floor(a/60)}m ${a%60}s`):s(`${Math.floor(a/3600)}h ${Math.floor(a%3600/60)}m`)};t();let a=setInterval(t,1e3);return()=>clearInterval(a)},[e]),t)?(0,a.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function b({connection:e,proxyPools:t,isOAuth:s,isFirst:r,isLast:o,onMoveUp:l,onMoveDown:d,onToggleActive:c,onUpdateProxy:m,onEdit:p,onDelete:u}){let[x,f]=(0,n.useState)(!1),[g,y]=(0,n.useState)(!1),[v,j]=(0,n.useState)(!1),w=(0,n.useRef)(null),N=new Map((t||[]).map(e=>[e.id,e])),k=e.providerSpecificData?.proxyPoolId||null,S=k?N.get(k):null,C=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,$=!!k||C,_=S?`Pool: ${S.name}`:k?`Pool: ${k} (inactive/missing)`:C?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",P="",A=S?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;if(A)try{let e=new URL(A);P=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{P=A}let T=S?.noProxy||e.providerSpecificData?.connectionNoProxy||"",I=S?.isActive===!0?"success":k||C?"error":"default",E=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(Boolean).sort()[0]||null;(0,n.useEffect)(()=>{let t=()=>{j(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let s=E?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[E]),(0,n.useEffect)(()=>{if(!x)return;let e=e=>{w.current&&!w.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[x]);let R="unavailable"!==e.testStatus||v?e.testStatus:"active",O=s?e.name||e.email||e.displayName||"OAuth Account":e.name,M=async e=>{y(!0);try{await m("__none__"===e?null:e)}finally{y(!1),f(!1)}};return(0,a.jsxs)("div",{className:`group flex flex-col gap-3 p-2 rounded-lg sm:flex-row sm:items-center sm:justify-between hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex w-full min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("button",{onClick:l,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,a.jsx)("button",{onClick:d,disabled:o,className:`p-0.5 rounded ${o?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,a.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:s?"lock":"key"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium truncate",children:O}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-1",children:[(0,a.jsx)(i.Ex,{variant:!1===e.isActive?"default":"active"===R||"success"===R?"success":"error"===R||"expired"===R||"unavailable"===R?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":R||"Unknown"}),$&&(0,a.jsx)(i.Ex,{variant:I,size:"sm",children:"Proxy"}),v&&!1!==e.isActive&&(0,a.jsx)(h,{until:E}),e.lastError&&!1!==e.isActive&&(0,a.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]})]}),$&&(0,a.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:_,children:_}),P&&(0,a.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:P}),T&&(0,a.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:T,children:["no_proxy: ",T]})]})]})]}),(0,a.jsxs)("div",{className:"flex w-full flex-wrap items-center justify-between gap-2 sm:w-auto sm:justify-end",children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(t||[]).length>0&&(0,a.jsxs)("div",{className:"relative",ref:w,children:[(0,a.jsxs)("button",{onClick:()=>f(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${$?"text-primary":"text-text-muted hover:text-primary"}`,disabled:g,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:g?"progress_activity":"lan"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),x&&(0,a.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,a.jsx)("button",{onClick:()=>M("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!k?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,a.jsx)("button",{onClick:()=>M(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${k===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,a.jsxs)("button",{onClick:p,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,a.jsxs)("button",{onClick:u,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,a.jsx)(i.lM,{size:"sm",checked:e.isActive??!0,onChange:c,title:e.isActive??!0?"Disable":"Enable"})]})]})}function f({isOpen:e,provider:t,providerName:s,proxyPools:r,onSave:o,onClose:l}){let d="__none__",[c,m]=(0,n.useState)({name:"",apiKey:"",priority:1,proxyPoolId:d}),[p,u]=(0,n.useState)(!1),[x,h]=(0,n.useState)(null),[b,g]=(0,n.useState)(!1),y=async()=>{u(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:c.apiKey})}),s=await e.json();h(s.valid?"success":"failed")}catch{h("failed")}finally{u(!1)}},v=async()=>{if(t&&c.apiKey){g(!0);try{let e=!1;try{u(!0),h(null);let s=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:c.apiKey})});e=!!(await s.json()).valid,h(e?"success":"failed")}catch{h("failed")}finally{u(!1)}await o({name:c.name,apiKey:c.apiKey,priority:c.priority,proxyPoolId:c.proxyPoolId===d?null:c.proxyPoolId,testStatus:e?"active":"unknown"})}finally{g(!1)}}};return t?(0,a.jsx)(i.aF,{isOpen:e,title:`Add ${s||t} API Key`,onClose:l,children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Name"}),(0,a.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.name,onChange:e=>m({...c,name:e.target.value}),placeholder:"Production Key"})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"API Key"}),(0,a.jsx)("input",{type:"password",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.apiKey,onChange:e=>m({...c,apiKey:e.target.value})})]}),(0,a.jsx)("div",{className:"pt-6",children:(0,a.jsx)(i.$n,{onClick:y,disabled:!c.apiKey||p||b,variant:"secondary",children:p?"Checking...":"Check"})})]}),x&&(0,a.jsx)(i.Ex,{variant:"success"===x?"success":"error",children:"success"===x?"Valid":"Invalid"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Priority"}),(0,a.jsx)("input",{type:"number",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.priority,onChange:e=>m({...c,priority:Number.parseInt(e.target.value)||1})})]}),(0,a.jsx)(i.l6,{label:"Proxy Pool",value:c.proxyPoolId,onChange:e=>m({...c,proxyPoolId:e.target.value}),options:[{value:d,label:"None"},...(r||[]).map(e=>({value:e.id,label:e.name}))]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:v,fullWidth:!0,disabled:!c.name||!c.apiKey||b,children:b?"Saving...":"Save"}),(0,a.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function g({providerId:e,isOAuth:t}){let[s,r]=(0,n.useState)([]),[o,l]=(0,n.useState)([]),[d,c]=(0,n.useState)(!0),[m,p]=(0,n.useState)(!1),[u,x]=(0,n.useState)(!1),[h,y]=(0,n.useState)(null),[v,j]=(0,n.useState)(null),[w,N]=(0,n.useState)("1"),[k,S]=(0,n.useState)(null),C=(0,n.useCallback)(async()=>{try{let[t,s,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),o=await t.json(),n=await s.json(),i=a.ok?await a.json():{};t.ok&&r((o.connections||[]).filter(t=>t.provider===e)),s.ok&&l(n.proxyPools||[]);let d=(i.providerStrategies||{})[e]||{};j(d.fallbackStrategy||null),N(null!=d.stickyRoundRobinLimit?String(d.stickyRoundRobinLimit):"1")}catch(e){console.log("ConnectionsCard fetch error:",e)}finally{c(!1)}},[e]);(0,n.useEffect)(()=>{C()},[C]);let $=async(t,s)=>{try{let a=await fetch("/api/settings",{cache:"no-store"}),r=(a.ok?await a.json():{}).providerStrategies||{},o={};t&&(o.fallbackStrategy=t),"round-robin"===t&&""!==s&&(o.stickyRoundRobinLimit=Number(s)||3);let l={...r};0===Object.keys(o).length?delete l[e]:l[e]=o,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:l})})}catch(e){console.log("saveStrategy error:",e)}},_=async(e,t)=>{let a=[...s];[a[e],a[t]]=[a[t],a[e]],r(a);try{await Promise.all([fetch(`/api/providers/${a[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${a[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch{await C()}},P=async e=>{S({title:"Delete Connection",message:"Delete this connection?",onConfirm:async()=>{S(null);try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&r(t=>t.filter(t=>t.id!==e))}catch(e){console.log("delete error:",e)}}})},A=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&r(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("toggle error:",e)}},T=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&r(s=>s.map(s=>s.id===e?{...s,providerSpecificData:{...s.providerSpecificData,proxyPoolId:t||null}}:s))}catch(e){console.log("proxy error:",e)}},I=async t=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,...t})})).ok&&(await C(),p(!1))}catch(e){console.log("save apikey error:",e)}},E=async e=>{try{(await fetch(`/api/providers/${h.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await C(),x(!1))}catch(e){console.log("update connection error:",e)}};return d?(0,a.jsx)(i.Zp,{children:(0,a.jsx)("div",{className:"h-20 animate-pulse bg-black/5 rounded-lg"})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,a.jsx)(i.lM,{checked:"round-robin"===v,onChange:e=>{let t=e?"round-robin":null;j(t),e&&!w&&N("1"),$(t,e?w||"1":w)}}),"round-robin"===v&&(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,a.jsx)("input",{type:"number",min:1,value:w,onChange:e=>{N(e.target.value),$("round-robin",e.target.value)},className:"w-16 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),0===s.length?(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"No connections yet"}),(0,a.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>p(!0),children:"Add Connection"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:s.map((e,r)=>(0,a.jsx)(b,{connection:e,proxyPools:o,isOAuth:t,isFirst:0===r,isLast:r===s.length-1,onMoveUp:()=>_(r,r-1),onMoveDown:()=>_(r,r+1),onToggleActive:t=>A(e.id,t),onUpdateProxy:t=>T(e.id,t),onEdit:()=>{y(e),x(!0)},onDelete:()=>P(e.id)},e.id))}),(0,a.jsx)("div",{className:"mt-4 flex justify-stretch sm:justify-start",children:(0,a.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>p(!0),children:"Add"})})]})]}),(0,a.jsx)(f,{isOpen:m,provider:e,proxyPools:o,onSave:I,onClose:()=>p(!1)}),(0,a.jsx)(i.wI,{isOpen:u,connection:h,proxyPools:o,onSave:E,onClose:()=>x(!1)}),(0,a.jsx)(i.uo,{isOpen:!!k,onClose:()=>S(null),onConfirm:k?.onConfirm,title:k?.title||"Confirm",message:k?.message,variant:"danger"})]})}function y({model:e,fullModel:t,copied:s,onCopy:r,testStatus:o,isCustom:l,isFree:n,onDeleteAlias:i,onTest:d,isTesting:c}){let m="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,a.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-base",style:m?{color:m}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),e.name&&(0,a.jsx)("span",{className:"text-[9px] text-text-muted/70 italic pl-1",children:e.name})]}),d&&(0,a.jsxs)("div",{className:"relative group/btn",children:[(0,a.jsx)("button",{onClick:d,disabled:c,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${c?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",style:c?{animation:"spin 1s linear infinite"}:void 0,children:c?"progress_activity":"science"})}),(0,a.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:c?"Testing...":"Test"})]}),(0,a.jsxs)("div",{className:"relative group/btn",children:[(0,a.jsx)("button",{onClick:()=>r(t,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:s===`model-${e.id}`?"check":"content_copy"})}),(0,a.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:s===`model-${e.id}`?"Copied!":"Copy"})]}),n&&(0,a.jsx)("span",{className:"text-[10px] font-bold text-green-500 bg-green-500/10 px-1.5 py-0.5 rounded",children:"FREE"}),l&&(0,a.jsx)("button",{onClick:i,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function v({isOpen:e,onSave:t,onClose:s}){let[r,o]=(0,n.useState)(""),l=()=>{r.trim()&&(t(r.trim()),o(""))};return(0,a.jsx)(i.aF,{isOpen:e,title:"Add Custom Model",onClose:s,children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,a.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:r,onChange:e=>o(e.target.value),onKeyDown:e=>"Enter"===e.key&&l(),placeholder:"e.g. tts-1-hd",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:l,fullWidth:!0,disabled:!r.trim(),children:"Add"}),(0,a.jsx)(i.$n,{onClick:s,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function j({providerId:e,kindFilter:t,providerAliasOverride:s}){let{copied:r,copy:o}=(0,p.C)(),[l,d]=(0,n.useState)({}),[u,x]=(0,n.useState)([]),[h,b]=(0,n.useState)({}),[f,g]=(0,n.useState)(null),[w,N]=(0,n.useState)(""),[k,S]=(0,n.useState)(!1),[C,$]=(0,n.useState)([]),_=s||(0,c.wG)(e),P=t||"llm",A=(0,n.useCallback)(async()=>{try{let[t,s,a]=await Promise.all([fetch("/api/models/alias"),fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/custom",{cache:"no-store"})]),r=await t.json(),o=await s.json(),l=await a.json();t.ok&&d(r.aliases||{}),s.ok&&$((o.connections||[]).filter(t=>t.provider===e)),a.ok&&x(l.models||[])}catch(e){console.log("ModelsCard fetch error:",e)}},[e]);(0,n.useEffect)(()=>{A()},[A]);let T=async(e,t)=>{let s=`${_}/${e}`;try{(await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:s,alias:t})})).ok&&await A()}catch(e){console.log("set alias error:",e)}},I=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await A()}catch(e){console.log("delete alias error:",e)}},E=async e=>{try{(await fetch("/api/models/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerAlias:_,id:e,type:P})})).ok&&(await A(),window.dispatchEvent(new CustomEvent("customModelChanged")))}catch(e){console.log("add custom model error:",e)}},R=async e=>{try{let t=new URLSearchParams({providerAlias:_,id:e,type:P});(await fetch(`/api/models/custom?${t}`,{method:"DELETE"})).ok&&(await A(),window.dispatchEvent(new CustomEvent("customModelChanged")))}catch(e){console.log("delete custom model error:",e)}},O=async e=>{if(!f){g(e);try{let s=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${_}/${e}`,kind:t})}),a=await s.json();b(t=>({...t,[e]:a.ok?"ok":"error"})),N(a.ok?"":a.error||"Model not reachable")}catch{b(t=>({...t,[e]:"error"})),N("Network error")}finally{g(null)}}},M=(0,m.KC)(e),K=t?M.filter(e=>e.kinds?e.kinds.includes(t):(e.type||"llm")===t):M,L=u.filter(e=>e.providerAlias===_&&(e.type||"llm")===P&&!K.some(t=>t.id===e.id));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,a.jsxs)("h2",{className:"text-lg font-semibold",children:["Models",t?` — ${t.toUpperCase()}`:""]})}),w&&(0,a.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:w}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-3",children:[K.map(e=>{let t=`${_}/${e.id}`,s=Object.entries(l).find(([,e])=>e===t)?.[0];return(0,a.jsx)(y,{model:e,fullModel:`${_}/${e.id}`,alias:s,copied:r,onCopy:o,onSetAlias:t=>T(e.id,t),onDeleteAlias:()=>I(s),testStatus:h[e.id],onTest:C.length>0?()=>O(e.id):void 0,isTesting:f===e.id,isFree:e.isFree},e.id)}),L.map(e=>(0,a.jsx)(y,{model:{id:e.id,name:e.name},fullModel:`${_}/${e.id}`,copied:r,onCopy:o,onSetAlias:()=>{},onDeleteAlias:()=>R(e.id),testStatus:h[e.id],onTest:C.length>0?()=>O(e.id):void 0,isTesting:f===e.id,isCustom:!0},`${e.id}-${e.type}`)),(0,a.jsxs)("button",{onClick:()=>S(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]})]})]}),(0,a.jsx)(v,{isOpen:k,onSave:async e=>{await E(e),S(!1)},onClose:()=>S(!1)})]})}h.propTypes={until:x().string.isRequired},b.propTypes={connection:x().shape({id:x().string,name:x().string,email:x().string,displayName:x().string,testStatus:x().string,isActive:x().bool,lastError:x().string,priority:x().number}).isRequired,proxyPools:x().array,isOAuth:x().bool.isRequired,isFirst:x().bool.isRequired,isLast:x().bool.isRequired,onMoveUp:x().func.isRequired,onMoveDown:x().func.isRequired,onToggleActive:x().func.isRequired,onUpdateProxy:x().func,onEdit:x().func.isRequired,onDelete:x().func.isRequired},f.propTypes={isOpen:x().bool.isRequired,provider:x().string,providerName:x().string,proxyPools:x().array,onSave:x().func.isRequired,onClose:x().func.isRequired},g.propTypes={providerId:x().string.isRequired,isOAuth:x().bool},y.propTypes={model:x().shape({id:x().string.isRequired}).isRequired,fullModel:x().string.isRequired,copied:x().string,onCopy:x().func.isRequired,testStatus:x().oneOf(["ok","error"]),isCustom:x().bool,isFree:x().bool,onDeleteAlias:x().func,onTest:x().func,isTesting:x().bool},v.propTypes={isOpen:x().bool.isRequired,onSave:x().func.isRequired,onClose:x().func.isRequired},j.propTypes={providerId:x().string.isRequired,kindFilter:x().string,providerAliasOverride:x().string};let w={"google-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"hardcoded"},openai:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openai-tts-models",voiceKey:"openai-tts-voices",voicesPerModel:!0},openrouter:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openrouter-tts-models",voiceKey:"openrouter-tts-voices",voicesPerModel:!0},elevenlabs:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"elevenlabs-tts-models",apiEndpoint:"/api/media-providers/tts/elevenlabs/voices"},"edge-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},"local-device":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},nvidia:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},hyperbolic:{hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"config"},deepgram:{hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/deepgram/voices"},huggingface:{hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"config"},cartesia:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},playht:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},coqui:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},tortoise:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},inworld:{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"inworld-tts-models",apiEndpoint:"/api/media-providers/tts/inworld/voices"},qwen:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},minimax:{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/minimax/voices",defaultVoiceId:"English_expressive_narrator"},"minimax-cn":{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/minimax/voices?provider=minimax-cn",defaultVoiceId:"English_expressive_narrator"},gemini:{hasLanguageDropdown:!1,hasLanguageHint:!0,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"gemini-tts-models",voiceKey:"gemini-tts-voices",voicesPerModel:!0}};var N=s(6013),k=s(94677);function S({label:e,children:t}){return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-1.5 sm:flex-row sm:items-center sm:gap-3",children:[(0,a.jsx)("span",{className:"w-full text-xs font-medium text-text-muted sm:w-20 sm:shrink-0",children:e}),(0,a.jsx)("div",{className:"w-full min-w-0 flex-1",children:t})]})}let C=`// Audio will appear here after running.
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[182],{40645:(e,t,s)=>{Promise.resolve().then(s.bind(s,94588))},94588:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>O});var a=s(95155),r=s(73321),o=s(98500),l=s.n(o),n=s(12115),i=s(35497),d=s(57250),c=s(52679),m=s(28777),p=s(11059),u=s(14051),x=s.n(u);function h({until:e}){let[t,s]=(0,n.useState)("");return((0,n.useEffect)(()=>{let t=()=>{let t=new Date(e).getTime()-Date.now();if(t<=0)return void s("");let a=Math.floor(t/1e3);a<60?s(`${a}s`):a<3600?s(`${Math.floor(a/60)}m ${a%60}s`):s(`${Math.floor(a/3600)}h ${Math.floor(a%3600/60)}m`)};t();let a=setInterval(t,1e3);return()=>clearInterval(a)},[e]),t)?(0,a.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",t]}):null}function b({connection:e,proxyPools:t,isOAuth:s,isFirst:r,isLast:o,onMoveUp:l,onMoveDown:d,onToggleActive:c,onUpdateProxy:m,onEdit:p,onDelete:u}){let[x,f]=(0,n.useState)(!1),[g,y]=(0,n.useState)(!1),[v,j]=(0,n.useState)(!1),w=(0,n.useRef)(null),N=new Map((t||[]).map(e=>[e.id,e])),k=e.providerSpecificData?.proxyPoolId||null,S=k?N.get(k):null,C=e.providerSpecificData?.connectionProxyEnabled===!0&&!!e.providerSpecificData?.connectionProxyUrl,$=!!k||C,_=S?`Pool: ${S.name}`:k?`Pool: ${k} (inactive/missing)`:C?`Legacy: ${e.providerSpecificData?.connectionProxyUrl}`:"",P="",A=S?.proxyUrl||e.providerSpecificData?.connectionProxyUrl;if(A)try{let e=new URL(A);P=`${e.protocol}//${e.hostname}${e.port?`:${e.port}`:""}`}catch{P=A}let T=S?.noProxy||e.providerSpecificData?.connectionNoProxy||"",I=S?.isActive===!0?"success":k||C?"error":"default",E=Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(Boolean).sort()[0]||null;(0,n.useEffect)(()=>{let t=()=>{j(!!Object.entries(e).filter(([e])=>e.startsWith("modelLock_")).map(([,e])=>e).filter(e=>e&&new Date(e).getTime()>Date.now()).sort()[0])};t();let s=E?setInterval(t,1e3):null;return()=>{s&&clearInterval(s)}},[E]),(0,n.useEffect)(()=>{if(!x)return;let e=e=>{w.current&&!w.current.contains(e.target)&&f(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[x]);let R="unavailable"!==e.testStatus||v?e.testStatus:"active",O=s?e.name||e.email||e.displayName||"OAuth Account":e.name,M=async e=>{y(!0);try{await m("__none__"===e?null:e)}finally{y(!1),f(!1)}};return(0,a.jsxs)("div",{className:`group flex flex-col gap-3 p-2 rounded-lg sm:flex-row sm:items-center sm:justify-between hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===e.isActive?"opacity-60":""}`,children:[(0,a.jsxs)("div",{className:"flex w-full min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,a.jsxs)("div",{className:"flex flex-col",children:[(0,a.jsx)("button",{onClick:l,disabled:r,className:`p-0.5 rounded ${r?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,a.jsx)("button",{onClick:d,disabled:o,className:`p-0.5 rounded ${o?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,a.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:s?"lock":"key"}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-sm font-medium truncate",children:O}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-1",children:[(0,a.jsx)(i.Ex,{variant:!1===e.isActive?"default":"active"===R||"success"===R?"success":"error"===R||"expired"===R||"unavailable"===R?"error":"default",size:"sm",dot:!0,children:!1===e.isActive?"disabled":R||"Unknown"}),$&&(0,a.jsx)(i.Ex,{variant:I,size:"sm",children:"Proxy"}),v&&!1!==e.isActive&&(0,a.jsx)(h,{until:E}),e.lastError&&!1!==e.isActive&&(0,a.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:e.lastError,children:e.lastError}),(0,a.jsxs)("span",{className:"text-xs text-text-muted",children:["#",e.priority]})]}),$&&(0,a.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:_,children:_}),P&&(0,a.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:P}),T&&(0,a.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:T,children:["no_proxy: ",T]})]})]})]}),(0,a.jsxs)("div",{className:"flex w-full flex-wrap items-center justify-between gap-2 sm:w-auto sm:justify-end",children:[(0,a.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(t||[]).length>0&&(0,a.jsxs)("div",{className:"relative",ref:w,children:[(0,a.jsxs)("button",{onClick:()=>f(e=>!e),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${$?"text-primary":"text-text-muted hover:text-primary"}`,disabled:g,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:g?"progress_activity":"lan"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),x&&(0,a.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,a.jsx)("button",{onClick:()=>M("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!k?"text-primary font-medium":"text-text-main"}`,children:"None"}),(t||[]).map(e=>(0,a.jsx)("button",{onClick:()=>M(e.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${k===e.id?"text-primary font-medium":"text-text-main"}`,children:e.name},e.id))]})]}),(0,a.jsxs)("button",{onClick:p,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,a.jsxs)("button",{onClick:u,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,a.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,a.jsx)(i.lM,{size:"sm",checked:e.isActive??!0,onChange:c,title:e.isActive??!0?"Disable":"Enable"})]})]})}function f({isOpen:e,provider:t,providerName:s,proxyPools:r,onSave:o,onClose:l}){let d="__none__",[c,m]=(0,n.useState)({name:"",apiKey:"",priority:1,proxyPoolId:d}),[p,u]=(0,n.useState)(!1),[x,h]=(0,n.useState)(null),[b,g]=(0,n.useState)(!1),y=async()=>{u(!0);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:c.apiKey})}),s=await e.json();h(s.valid?"success":"failed")}catch{h("failed")}finally{u(!1)}},v=async()=>{if(t&&c.apiKey){g(!0);try{let e=!1;try{u(!0),h(null);let s=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t,apiKey:c.apiKey})});e=!!(await s.json()).valid,h(e?"success":"failed")}catch{h("failed")}finally{u(!1)}await o({name:c.name,apiKey:c.apiKey,priority:c.priority,proxyPoolId:c.proxyPoolId===d?null:c.proxyPoolId,testStatus:e?"active":"unknown"})}finally{g(!1)}}};return t?(0,a.jsx)(i.aF,{isOpen:e,title:`Add ${s||t} API Key`,onClose:l,children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Name"}),(0,a.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.name,onChange:e=>m({...c,name:e.target.value}),placeholder:"Production Key"})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"API Key"}),(0,a.jsx)("input",{type:"password",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.apiKey,onChange:e=>m({...c,apiKey:e.target.value})})]}),(0,a.jsx)("div",{className:"pt-6",children:(0,a.jsx)(i.$n,{onClick:y,disabled:!c.apiKey||p||b,variant:"secondary",children:p?"Checking...":"Check"})})]}),x&&(0,a.jsx)(i.Ex,{variant:"success"===x?"success":"error",children:"success"===x?"Valid":"Invalid"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Priority"}),(0,a.jsx)("input",{type:"number",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:c.priority,onChange:e=>m({...c,priority:Number.parseInt(e.target.value)||1})})]}),(0,a.jsx)(i.l6,{label:"Proxy Pool",value:c.proxyPoolId,onChange:e=>m({...c,proxyPoolId:e.target.value}),options:[{value:d,label:"None"},...(r||[]).map(e=>({value:e.id,label:e.name}))]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:v,fullWidth:!0,disabled:!c.name||!c.apiKey||b,children:b?"Saving...":"Save"}),(0,a.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function g({providerId:e,isOAuth:t}){let[s,r]=(0,n.useState)([]),[o,l]=(0,n.useState)([]),[d,c]=(0,n.useState)(!0),[m,p]=(0,n.useState)(!1),[u,x]=(0,n.useState)(!1),[h,y]=(0,n.useState)(null),[v,j]=(0,n.useState)(null),[w,N]=(0,n.useState)("1"),[k,S]=(0,n.useState)(null),C=(0,n.useCallback)(async()=>{try{let[t,s,a]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),o=await t.json(),n=await s.json(),i=a.ok?await a.json():{};t.ok&&r((o.connections||[]).filter(t=>t.provider===e)),s.ok&&l(n.proxyPools||[]);let d=(i.providerStrategies||{})[e]||{};j(d.fallbackStrategy||null),N(null!=d.stickyRoundRobinLimit?String(d.stickyRoundRobinLimit):"1")}catch(e){console.log("ConnectionsCard fetch error:",e)}finally{c(!1)}},[e]);(0,n.useEffect)(()=>{C()},[C]);let $=async(t,s)=>{try{let a=await fetch("/api/settings",{cache:"no-store"}),r=(a.ok?await a.json():{}).providerStrategies||{},o={};t&&(o.fallbackStrategy=t),"round-robin"===t&&""!==s&&(o.stickyRoundRobinLimit=Number(s)||3);let l={...r};0===Object.keys(o).length?delete l[e]:l[e]=o,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:l})})}catch(e){console.log("saveStrategy error:",e)}},_=async(e,t)=>{let a=[...s];[a[e],a[t]]=[a[t],a[e]],r(a);try{await Promise.all([fetch(`/api/providers/${a[e].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:e})}),fetch(`/api/providers/${a[t].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:t})})])}catch{await C()}},P=async e=>{S({title:"Delete Connection",message:"Delete this connection?",onConfirm:async()=>{S(null);try{(await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok&&r(t=>t.filter(t=>t.id!==e))}catch(e){console.log("delete error:",e)}}})},A=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&r(s=>s.map(s=>s.id===e?{...s,isActive:t}:s))}catch(e){console.log("toggle error:",e)}},T=async(e,t)=>{try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:t||null})})).ok&&r(s=>s.map(s=>s.id===e?{...s,providerSpecificData:{...s.providerSpecificData,proxyPoolId:t||null}}:s))}catch(e){console.log("proxy error:",e)}},I=async t=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e,...t})})).ok&&(await C(),p(!1))}catch(e){console.log("save apikey error:",e)}},E=async e=>{try{(await fetch(`/api/providers/${h.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await C(),x(!1))}catch(e){console.log("update connection error:",e)}};return d?(0,a.jsx)(i.Zp,{children:(0,a.jsx)("div",{className:"h-20 animate-pulse bg-black/5 rounded-lg"})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,a.jsx)(i.lM,{checked:"round-robin"===v,onChange:e=>{let t=e?"round-robin":null;j(t),e&&!w&&N("1"),$(t,e?w||"1":w)}}),"round-robin"===v&&(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,a.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,a.jsx)("input",{type:"number",min:1,value:w,onChange:e=>{N(e.target.value),$("round-robin",e.target.value)},className:"w-16 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),0===s.length?(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"No connections yet"}),(0,a.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>p(!0),children:"Add Connection"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:s.map((e,r)=>(0,a.jsx)(b,{connection:e,proxyPools:o,isOAuth:t,isFirst:0===r,isLast:r===s.length-1,onMoveUp:()=>_(r,r-1),onMoveDown:()=>_(r,r+1),onToggleActive:t=>A(e.id,t),onUpdateProxy:t=>T(e.id,t),onEdit:()=>{y(e),x(!0)},onDelete:()=>P(e.id)},e.id))}),(0,a.jsx)("div",{className:"mt-4 flex justify-stretch sm:justify-start",children:(0,a.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>p(!0),children:"Add"})})]})]}),(0,a.jsx)(f,{isOpen:m,provider:e,proxyPools:o,onSave:I,onClose:()=>p(!1)}),(0,a.jsx)(i.wI,{isOpen:u,connection:h,proxyPools:o,onSave:E,onClose:()=>x(!1)}),(0,a.jsx)(i.uo,{isOpen:!!k,onClose:()=>S(null),onConfirm:k?.onConfirm,title:k?.title||"Confirm",message:k?.message,variant:"danger"})]})}function y({model:e,fullModel:t,copied:s,onCopy:r,testStatus:o,isCustom:l,isFree:n,onDeleteAlias:i,onTest:d,isTesting:c}){let m="ok"===o?"#22c55e":"error"===o?"#ef4444":void 0;return(0,a.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===o?"border-green-500/40":"error"===o?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-base",style:m?{color:m}:void 0,children:"ok"===o?"check_circle":"error"===o?"cancel":"smart_toy"}),(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:t}),e.name&&(0,a.jsx)("span",{className:"text-[9px] text-text-muted/70 italic pl-1",children:e.name})]}),d&&(0,a.jsxs)("div",{className:"relative group/btn",children:[(0,a.jsx)("button",{onClick:d,disabled:c,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${c?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",style:c?{animation:"spin 1s linear infinite"}:void 0,children:c?"progress_activity":"science"})}),(0,a.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:c?"Testing...":"Test"})]}),(0,a.jsxs)("div",{className:"relative group/btn",children:[(0,a.jsx)("button",{onClick:()=>r(t,`model-${e.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:s===`model-${e.id}`?"check":"content_copy"})}),(0,a.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:s===`model-${e.id}`?"Copied!":"Copy"})]}),n&&(0,a.jsx)("span",{className:"text-[10px] font-bold text-green-500 bg-green-500/10 px-1.5 py-0.5 rounded",children:"FREE"}),l&&(0,a.jsx)("button",{onClick:i,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function v({isOpen:e,onSave:t,onClose:s}){let[r,o]=(0,n.useState)(""),l=()=>{r.trim()&&(t(r.trim()),o(""))};return(0,a.jsx)(i.aF,{isOpen:e,title:"Add Custom Model",onClose:s,children:(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,a.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:r,onChange:e=>o(e.target.value),onKeyDown:e=>"Enter"===e.key&&l(),placeholder:"e.g. tts-1-hd",autoFocus:!0})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(i.$n,{onClick:l,fullWidth:!0,disabled:!r.trim(),children:"Add"}),(0,a.jsx)(i.$n,{onClick:s,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function j({providerId:e,kindFilter:t,providerAliasOverride:s}){let{copied:r,copy:o}=(0,p.C)(),[l,d]=(0,n.useState)({}),[u,x]=(0,n.useState)([]),[h,b]=(0,n.useState)({}),[f,g]=(0,n.useState)(null),[w,N]=(0,n.useState)(""),[k,S]=(0,n.useState)(!1),[C,$]=(0,n.useState)([]),_=s||(0,c.wG)(e),P=t||"llm",A=(0,n.useCallback)(async()=>{try{let[t,s,a]=await Promise.all([fetch("/api/models/alias"),fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/custom",{cache:"no-store"})]),r=await t.json(),o=await s.json(),l=await a.json();t.ok&&d(r.aliases||{}),s.ok&&$((o.connections||[]).filter(t=>t.provider===e)),a.ok&&x(l.models||[])}catch(e){console.log("ModelsCard fetch error:",e)}},[e]);(0,n.useEffect)(()=>{A()},[A]);let T=async(e,t)=>{let s=`${_}/${e}`;try{(await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:s,alias:t})})).ok&&await A()}catch(e){console.log("set alias error:",e)}},I=async e=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(e)}`,{method:"DELETE"})).ok&&await A()}catch(e){console.log("delete alias error:",e)}},E=async e=>{try{(await fetch("/api/models/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerAlias:_,id:e,type:P})})).ok&&(await A(),window.dispatchEvent(new CustomEvent("customModelChanged")))}catch(e){console.log("add custom model error:",e)}},R=async e=>{try{let t=new URLSearchParams({providerAlias:_,id:e,type:P});(await fetch(`/api/models/custom?${t}`,{method:"DELETE"})).ok&&(await A(),window.dispatchEvent(new CustomEvent("customModelChanged")))}catch(e){console.log("delete custom model error:",e)}},O=async e=>{if(!f){g(e);try{let s=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${_}/${e}`,kind:t})}),a=await s.json();b(t=>({...t,[e]:a.ok?"ok":"error"})),N(a.ok?"":a.error||"Model not reachable")}catch{b(t=>({...t,[e]:"error"})),N("Network error")}finally{g(null)}}},M=(0,m.KC)(e),K=t?M.filter(e=>e.kinds?e.kinds.includes(t):(e.type||"llm")===t):M,L=u.filter(e=>e.providerAlias===_&&(e.type||"llm")===P&&!K.some(t=>t.id===e.id));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.Zp,{children:[(0,a.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,a.jsxs)("h2",{className:"text-lg font-semibold",children:["Models",t?` — ${t.toUpperCase()}`:""]})}),w&&(0,a.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:w}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-3",children:[K.map(e=>{let t=`${_}/${e.id}`,s=Object.entries(l).find(([,e])=>e===t)?.[0];return(0,a.jsx)(y,{model:e,fullModel:`${_}/${e.id}`,alias:s,copied:r,onCopy:o,onSetAlias:t=>T(e.id,t),onDeleteAlias:()=>I(s),testStatus:h[e.id],onTest:C.length>0?()=>O(e.id):void 0,isTesting:f===e.id,isFree:e.isFree},e.id)}),L.map(e=>(0,a.jsx)(y,{model:{id:e.id,name:e.name},fullModel:`${_}/${e.id}`,copied:r,onCopy:o,onSetAlias:()=>{},onDeleteAlias:()=>R(e.id),testStatus:h[e.id],onTest:C.length>0?()=>O(e.id):void 0,isTesting:f===e.id,isCustom:!0},`${e.id}-${e.type}`)),(0,a.jsxs)("button",{onClick:()=>S(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]})]})]}),(0,a.jsx)(v,{isOpen:k,onSave:async e=>{await E(e),S(!1)},onClose:()=>S(!1)})]})}h.propTypes={until:x().string.isRequired},b.propTypes={connection:x().shape({id:x().string,name:x().string,email:x().string,displayName:x().string,testStatus:x().string,isActive:x().bool,lastError:x().string,priority:x().number}).isRequired,proxyPools:x().array,isOAuth:x().bool.isRequired,isFirst:x().bool.isRequired,isLast:x().bool.isRequired,onMoveUp:x().func.isRequired,onMoveDown:x().func.isRequired,onToggleActive:x().func.isRequired,onUpdateProxy:x().func,onEdit:x().func.isRequired,onDelete:x().func.isRequired},f.propTypes={isOpen:x().bool.isRequired,provider:x().string,providerName:x().string,proxyPools:x().array,onSave:x().func.isRequired,onClose:x().func.isRequired},g.propTypes={providerId:x().string.isRequired,isOAuth:x().bool},y.propTypes={model:x().shape({id:x().string.isRequired}).isRequired,fullModel:x().string.isRequired,copied:x().string,onCopy:x().func.isRequired,testStatus:x().oneOf(["ok","error"]),isCustom:x().bool,isFree:x().bool,onDeleteAlias:x().func,onTest:x().func,isTesting:x().bool},v.propTypes={isOpen:x().bool.isRequired,onSave:x().func.isRequired,onClose:x().func.isRequired},j.propTypes={providerId:x().string.isRequired,kindFilter:x().string,providerAliasOverride:x().string};let w={"google-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"hardcoded"},openai:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openai-tts-models",voiceKey:"openai-tts-voices",voicesPerModel:!0},openrouter:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openrouter-tts-models",voiceKey:"openrouter-tts-voices",voicesPerModel:!0},elevenlabs:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"elevenlabs-tts-models",apiEndpoint:"/api/media-providers/tts/elevenlabs/voices"},"edge-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},"local-device":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},nvidia:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},hyperbolic:{hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"config"},deepgram:{hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/deepgram/voices"},huggingface:{hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"config"},cartesia:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},playht:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},coqui:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},tortoise:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},inworld:{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"inworld-tts-models",apiEndpoint:"/api/media-providers/tts/inworld/voices"},qwen:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},minimax:{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/minimax/voices",defaultVoiceId:"English_expressive_narrator"},"minimax-cn":{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/minimax/voices?provider=minimax-cn",defaultVoiceId:"English_expressive_narrator"},gemini:{hasLanguageDropdown:!1,hasLanguageHint:!0,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"gemini-tts-models",voiceKey:"gemini-tts-voices",voicesPerModel:!0}};var N=s(717),k=s(91781);function S({label:e,children:t}){return(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-1.5 sm:flex-row sm:items-center sm:gap-3",children:[(0,a.jsx)("span",{className:"w-full text-xs font-medium text-text-muted sm:w-20 sm:shrink-0",children:e}),(0,a.jsx)("div",{className:"w-full min-w-0 flex-1",children:t})]})}let C=`// Audio will appear here after running.
2
2
  // Example JSON response (response_format=json):
3
3
  {
4
4
  "format": "mp3",
@@ -56,4 +56,4 @@
56
56
  -F "temperature=${k}"`:""}${h.includes("prompt")&&v?` \\
57
57
  -F "prompt=${v}"`:""}`,Q=async()=>{if(!b||!G)return;D(!0),q(""),K(null);let e=Date.now();try{let t=new FormData;t.append("file",b),t.append("model",G),h.includes("language")&&g&&t.append("language",g),h.includes("response_format")&&t.append("response_format",w),h.includes("temperature")&&k&&t.append("temperature",k),h.includes("prompt")&&v&&t.append("prompt",v);let s={};$&&(s.Authorization=`Bearer ${$}`);let a=await fetch("/api/v1/audio/transcriptions",{method:"POST",headers:s,body:t});B(Date.now()-e);let r=(a.headers.get("content-type")||"").includes("application/json")?await a.json():await a.text();if(!a.ok)return void q(r?.error?.message||r?.error||r||`HTTP ${a.status}`);K(r)}catch(e){q(e.message||"Network error")}finally{D(!1)}},Z="string"==typeof M?M:M?JSON.stringify(M,null,2):`{
58
58
  "text": "Hello world..."
59
- }`;return(0,a.jsxs)(i.Zp,{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,a.jsxs)("div",{className:"flex flex-col gap-2.5",children:[l.length>0?(0,a.jsx)(S,{label:"Model",children:(0,a.jsx)("select",{value:d,onChange:e=>u(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:l.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name||e.id},e.id))})}):(0,a.jsx)(S,{label:"Model",children:(0,a.jsx)("input",{value:d,onChange:e=>u(e.target.value),placeholder:"Enter model id",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),(0,a.jsx)(S,{label:"Endpoint",children:(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,a.jsxs)("span",{className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[W,"/v1/audio/transcriptions"]}),E&&(0,a.jsxs)("button",{onClick:()=>A(e=>!e),title:P?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${P?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,a.jsx)(S,{label:"API Key",children:(0,a.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:$?`${$.slice(0,8)}${"•".repeat(Math.min(20,$.length-8))}`:(0,a.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),(0,a.jsx)(S,{label:"Audio File",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("input",{type:"file",accept:"audio/*,video/mp4,.m4a,.mp3,.wav,.ogg,.flac,.webm,.opus",onChange:e=>f(e.target.files?.[0]||null),className:"w-full text-xs text-text-muted file:mr-2 file:py-1 file:px-2.5 file:rounded-lg file:border file:border-border file:bg-background file:text-text-main hover:file:bg-sidebar file:cursor-pointer"}),b&&(0,a.jsxs)("span",{className:"text-xs text-text-muted font-mono",children:[b.name," \xb7 ",(b.size/1024).toFixed(1)," KB"]})]})}),h.includes("language")&&(0,a.jsx)(S,{label:"Language",children:(0,a.jsx)("input",{value:g,onChange:e=>y(e.target.value),placeholder:"e.g. en, vi, ja (auto-detect if empty)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),h.includes("prompt")&&(0,a.jsx)(S,{label:"Prompt",children:(0,a.jsx)("input",{value:v,onChange:e=>j(e.target.value),placeholder:"optional context to improve accuracy",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),h.includes("temperature")&&(0,a.jsx)(S,{label:"Temperature",children:(0,a.jsx)("input",{type:"number",step:"0.1",min:"0",max:"1",value:k,onChange:e=>C(e.target.value),placeholder:"0 - 1 (default 0)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),h.includes("response_format")&&(0,a.jsx)(S,{label:"Response Format",children:(0,a.jsxs)("select",{value:w,onChange:e=>N(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,a.jsx)("option",{value:"json",children:"json"}),(0,a.jsx)("option",{value:"text",children:"text"}),(0,a.jsx)("option",{value:"srt",children:"srt"}),(0,a.jsx)("option",{value:"verbose_json",children:"verbose_json"}),(0,a.jsx)("option",{value:"vtt",children:"vtt"})]})}),(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,a.jsxs)("button",{onClick:()=>z(Y),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:J?"check":"content_copy"}),J?"Copied":"Copy"]}),(0,a.jsxs)("button",{onClick:Q,disabled:U||!b||!G,className:"flex w-full sm:w-auto items-center justify-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:U?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),U?"Transcribing...":"Run"]})]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:Y})]}),F&&(0,a.jsx)("p",{className:"text-xs text-red-500 break-words",children:F}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,a.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",M&&L&&(0,a.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",L,"ms"]})]}),M&&(0,a.jsxs)("button",{onClick:()=>H(Z),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:V?"check":"content_copy"}),V?"Copied":"Copy"]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all opacity-70",children:Z})]})]})]})}function O(){let{kind:e,id:t}=(0,r.useParams)(),s=(0,r.useRouter)(),o=c.rj.find(t=>t.id===e),m=(0,c.gC)(t)&&"embedding"===e,p=async()=>{if(confirm("Delete this Custom Embedding node?"))try{(await fetch(`/api/provider-nodes/${t}`,{method:"DELETE"})).ok&&s.push(`/dashboard/media-providers/${e}`)}catch(e){console.log("Error deleting custom embedding node:",e)}},[u,x]=(0,n.useState)(null),[h,b]=(0,n.useState)(m),[f,y]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{if(!m)return;let e=!1;return fetch("/api/provider-nodes",{cache:"no-store"}).then(e=>e.json()).then(s=>{e||(x((s.nodes||[]).find(e=>e.id===t)||null),b(!1))}).catch(()=>{e||b(!1)}),()=>{e=!0}},[t,m]),!o)return(0,r.notFound)();let v=c.Q2[t],w=m?u?{id:t,name:u.name||"Custom Embedding",color:"#6366F1",textIcon:"CE"}:null:v;if(!m&&!v||m&&!h&&!u)return(0,r.notFound)();if(m&&h)return(0,a.jsx)("div",{className:"text-text-muted text-sm py-12 text-center",children:"Loading..."});let N=m?["embedding"]:w.serviceKinds??["llm"];return m||N.includes(e)?(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)(l(),{href:`/dashboard/media-providers/${e}`,className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),o.label]}),(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-4",children:[(0,a.jsx)("div",{className:"size-12 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${w.color}15`},children:(0,a.jsx)(d.A,{src:`/providers/${w.id}.png`,alt:w.name,size:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",fallbackText:w.textIcon||w.id.slice(0,2).toUpperCase(),fallbackColor:w.color})}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3",children:[(0,a.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:w.name}),!m&&w.notice?.apiKeyUrl&&(0,a.jsxs)("a",{href:w.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 mt-1 flex-wrap",children:[m&&(0,a.jsxs)(i.Ex,{variant:"default",size:"sm",children:["Custom \xb7 ",u?.prefix]}),N.map(t=>(0,a.jsx)(i.Ex,{variant:t===e?"primary":"default",size:"sm",children:t.toUpperCase()},t))]})]}),m&&(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,a.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>y(!0),children:"Edit"}),(0,a.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:p,children:"Delete"})]})]})]}),!m&&w.kindNotice?.[e]&&(0,a.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 rounded-lg bg-amber-500/10 border border-amber-500/30 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px] mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-sm",children:w.kindNotice[e]})]}),!m&&w.notice?.text&&!w.deprecated&&(0,a.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-2 sm:flex-row sm:items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-blue-500 shrink-0",children:"info"}),(0,a.jsx)("p",{className:"min-w-0 flex-1 text-xs leading-relaxed text-blue-600 dark:text-blue-400",children:w.notice.text}),w.notice.apiKeyUrl&&(0,a.jsx)("a",{href:w.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex justify-center rounded bg-blue-500 px-2 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600 sm:py-0.5",children:"Get API Key →"})]}),!m&&w.noAuth?(0,a.jsx)(i.gw,{providerId:t}):(0,a.jsx)(g,{providerId:t,isOAuth:!1}),"tts"!==e&&"webSearch"!==e&&"webFetch"!==e&&(0,a.jsx)(j,{providerId:t,kindFilter:e,providerAliasOverride:m?u?.prefix:void 0}),!m&&(w.searchConfig||w.fetchConfig||w.ttsConfig||w.sttConfig||w.embeddingConfig||w.searchViaChat)&&(0,a.jsx)(i.Wx,{config:"webFetch"===e?w.fetchConfig:"tts"===e?w.ttsConfig:"stt"===e?w.sttConfig:"embedding"===e?w.embeddingConfig:w.searchConfig||{mode:"chat-completions",defaultModel:w.searchViaChat?.defaultModel,pricingUrl:w.searchViaChat?.pricingUrl,freeTier:w.searchViaChat?.freeTier},provider:w,title:`${o.label} Config`}),"embedding"===e&&(0,a.jsx)(T,{providerId:t,customAlias:u?.prefix}),"tts"===e&&(0,a.jsx)(I,{providerId:t}),"stt"===e&&!m&&(0,a.jsx)(R,{providerId:t}),!m&&A[e]&&(0,a.jsx)(E,{providerId:t,kind:e}),m&&(0,a.jsx)(i.x0,{isOpen:f,node:u,onClose:()=>y(!1),onSaved:e=>{x(e),y(!1)}})]}):(0,r.notFound)()}}},e=>{e.O(0,[9118,3986,6656,7813,7783,7408,1858,7358],()=>e(e.s=45793)),_N_E=e.O()}]);
59
+ }`;return(0,a.jsxs)(i.Zp,{children:[(0,a.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,a.jsxs)("div",{className:"flex flex-col gap-2.5",children:[l.length>0?(0,a.jsx)(S,{label:"Model",children:(0,a.jsx)("select",{value:d,onChange:e=>u(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:l.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name||e.id},e.id))})}):(0,a.jsx)(S,{label:"Model",children:(0,a.jsx)("input",{value:d,onChange:e=>u(e.target.value),placeholder:"Enter model id",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),(0,a.jsx)(S,{label:"Endpoint",children:(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,a.jsxs)("span",{className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[W,"/v1/audio/transcriptions"]}),E&&(0,a.jsxs)("button",{onClick:()=>A(e=>!e),title:P?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${P?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,a.jsx)(S,{label:"API Key",children:(0,a.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:$?`${$.slice(0,8)}${"•".repeat(Math.min(20,$.length-8))}`:(0,a.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),(0,a.jsx)(S,{label:"Audio File",children:(0,a.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,a.jsx)("input",{type:"file",accept:"audio/*,video/mp4,.m4a,.mp3,.wav,.ogg,.flac,.webm,.opus",onChange:e=>f(e.target.files?.[0]||null),className:"w-full text-xs text-text-muted file:mr-2 file:py-1 file:px-2.5 file:rounded-lg file:border file:border-border file:bg-background file:text-text-main hover:file:bg-sidebar file:cursor-pointer"}),b&&(0,a.jsxs)("span",{className:"text-xs text-text-muted font-mono",children:[b.name," \xb7 ",(b.size/1024).toFixed(1)," KB"]})]})}),h.includes("language")&&(0,a.jsx)(S,{label:"Language",children:(0,a.jsx)("input",{value:g,onChange:e=>y(e.target.value),placeholder:"e.g. en, vi, ja (auto-detect if empty)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),h.includes("prompt")&&(0,a.jsx)(S,{label:"Prompt",children:(0,a.jsx)("input",{value:v,onChange:e=>j(e.target.value),placeholder:"optional context to improve accuracy",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),h.includes("temperature")&&(0,a.jsx)(S,{label:"Temperature",children:(0,a.jsx)("input",{type:"number",step:"0.1",min:"0",max:"1",value:k,onChange:e=>C(e.target.value),placeholder:"0 - 1 (default 0)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),h.includes("response_format")&&(0,a.jsx)(S,{label:"Response Format",children:(0,a.jsxs)("select",{value:w,onChange:e=>N(e.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,a.jsx)("option",{value:"json",children:"json"}),(0,a.jsx)("option",{value:"text",children:"text"}),(0,a.jsx)("option",{value:"srt",children:"srt"}),(0,a.jsx)("option",{value:"verbose_json",children:"verbose_json"}),(0,a.jsx)("option",{value:"vtt",children:"vtt"})]})}),(0,a.jsxs)("div",{className:"mt-1",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,a.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,a.jsxs)("button",{onClick:()=>z(Y),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:J?"check":"content_copy"}),J?"Copied":"Copy"]}),(0,a.jsxs)("button",{onClick:Q,disabled:U||!b||!G,className:"flex w-full sm:w-auto items-center justify-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:U?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),U?"Transcribing...":"Run"]})]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:Y})]}),F&&(0,a.jsx)("p",{className:"text-xs text-red-500 break-words",children:F}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,a.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",M&&L&&(0,a.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",L,"ms"]})]}),M&&(0,a.jsxs)("button",{onClick:()=>H(Z),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:V?"check":"content_copy"}),V?"Copied":"Copy"]})]}),(0,a.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all opacity-70",children:Z})]})]})]})}function O(){let{kind:e,id:t}=(0,r.useParams)(),s=(0,r.useRouter)(),o=c.rj.find(t=>t.id===e),m=(0,c.gC)(t)&&"embedding"===e,p=async()=>{if(confirm("Delete this Custom Embedding node?"))try{(await fetch(`/api/provider-nodes/${t}`,{method:"DELETE"})).ok&&s.push(`/dashboard/media-providers/${e}`)}catch(e){console.log("Error deleting custom embedding node:",e)}},[u,x]=(0,n.useState)(null),[h,b]=(0,n.useState)(m),[f,y]=(0,n.useState)(!1);if((0,n.useEffect)(()=>{if(!m)return;let e=!1;return fetch("/api/provider-nodes",{cache:"no-store"}).then(e=>e.json()).then(s=>{e||(x((s.nodes||[]).find(e=>e.id===t)||null),b(!1))}).catch(()=>{e||b(!1)}),()=>{e=!0}},[t,m]),!o)return(0,r.notFound)();let v=c.Q2[t],w=m?u?{id:t,name:u.name||"Custom Embedding",color:"#6366F1",textIcon:"CE"}:null:v;if(!m&&!v||m&&!h&&!u)return(0,r.notFound)();if(m&&h)return(0,a.jsx)("div",{className:"text-text-muted text-sm py-12 text-center",children:"Loading..."});let N=m?["embedding"]:w.serviceKinds??["llm"];return m||N.includes(e)?(0,a.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)(l(),{href:`/dashboard/media-providers/${e}`,className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),o.label]}),(0,a.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-4",children:[(0,a.jsx)("div",{className:"size-12 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${w.color}15`},children:(0,a.jsx)(d.A,{src:`/providers/${w.id}.png`,alt:w.name,size:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",fallbackText:w.textIcon||w.id.slice(0,2).toUpperCase(),fallbackColor:w.color})}),(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3",children:[(0,a.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:w.name}),!m&&w.notice?.apiKeyUrl&&(0,a.jsxs)("a",{href:w.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1.5 mt-1 flex-wrap",children:[m&&(0,a.jsxs)(i.Ex,{variant:"default",size:"sm",children:["Custom \xb7 ",u?.prefix]}),N.map(t=>(0,a.jsx)(i.Ex,{variant:t===e?"primary":"default",size:"sm",children:t.toUpperCase()},t))]})]}),m&&(0,a.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,a.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>y(!0),children:"Edit"}),(0,a.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:p,children:"Delete"})]})]})]}),!m&&w.kindNotice?.[e]&&(0,a.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 rounded-lg bg-amber-500/10 border border-amber-500/30 text-amber-700 dark:text-amber-400",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px] mt-0.5",children:"warning"}),(0,a.jsx)("p",{className:"text-sm",children:w.kindNotice[e]})]}),!m&&w.notice?.text&&!w.deprecated&&(0,a.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-2 sm:flex-row sm:items-center",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] text-blue-500 shrink-0",children:"info"}),(0,a.jsx)("p",{className:"min-w-0 flex-1 text-xs leading-relaxed text-blue-600 dark:text-blue-400",children:w.notice.text}),w.notice.apiKeyUrl&&(0,a.jsx)("a",{href:w.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex justify-center rounded bg-blue-500 px-2 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600 sm:py-0.5",children:"Get API Key →"})]}),!m&&w.noAuth?(0,a.jsx)(i.gw,{providerId:t}):(0,a.jsx)(g,{providerId:t,isOAuth:!1}),"tts"!==e&&"webSearch"!==e&&"webFetch"!==e&&(0,a.jsx)(j,{providerId:t,kindFilter:e,providerAliasOverride:m?u?.prefix:void 0}),!m&&(w.searchConfig||w.fetchConfig||w.ttsConfig||w.sttConfig||w.embeddingConfig||w.searchViaChat)&&(0,a.jsx)(i.Wx,{config:"webFetch"===e?w.fetchConfig:"tts"===e?w.ttsConfig:"stt"===e?w.sttConfig:"embedding"===e?w.embeddingConfig:w.searchConfig||{mode:"chat-completions",defaultModel:w.searchViaChat?.defaultModel,pricingUrl:w.searchViaChat?.pricingUrl,freeTier:w.searchViaChat?.freeTier},provider:w,title:`${o.label} Config`}),"embedding"===e&&(0,a.jsx)(T,{providerId:t,customAlias:u?.prefix}),"tts"===e&&(0,a.jsx)(I,{providerId:t}),"stt"===e&&!m&&(0,a.jsx)(R,{providerId:t}),!m&&A[e]&&(0,a.jsx)(E,{providerId:t,kind:e}),m&&(0,a.jsx)(i.x0,{isOpen:f,node:u,onClose:()=>y(!1),onSaved:e=>{x(e),y(!1)}})]}):(0,r.notFound)()}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=40645)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6620],{2885:(e,s,t)=>{Promise.resolve().then(t.bind(t,16144))},16144:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>f});var i=t(95155),r=t(73321),a=t(98500),n=t.n(a),o=t(12115),l=t(35497),c=t(57250),d=t(52679);let m=new Set([]),x={image:"image-combo",tts:"tts-combo"};function h(e){let s=Object.entries(e).some(([e,s])=>e.startsWith("modelLock_")&&s&&new Date(s).getTime()>Date.now());return"unavailable"!==e.testStatus||s?e.testStatus:"active"}function p({provider:e,kind:s,connections:t,isCustom:r,onToggle:a}){let o=d.Q2[e.id],m=!!o?.noAuth,x=t.filter(s=>s.provider===e.id),u=x.filter(e=>{let s=h(e);return"active"===s||"success"===s}).length,f=x.filter(e=>{let s=h(e);return"error"===s||"expired"===s||"unavailable"===s}).length,g=x.length,j=g>0&&x.every(e=>!1===e.isActive);return(0,i.jsx)(n(),{href:`/dashboard/media-providers/${s}/${e.id}`,className:"group",children:(0,i.jsx)(l.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${j?"opacity-50":""}`,children:(0,i.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,i.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,i.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${e.color?.length>7?e.color:(e.color??"#888")+"15"}`},children:(0,i.jsx)(c.A,{src:`/providers/${e.id}.png`,alt:e.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:e.textIcon||e.id.slice(0,2).toUpperCase(),fallbackColor:e.color})}),(0,i.jsxs)("div",{className:"min-w-0",children:[(0,i.jsx)("h3",{className:"font-semibold text-sm",children:e.name}),(0,i.jsxs)("div",{className:"flex items-center gap-2 mt-0.5 flex-wrap",children:[r&&(0,i.jsx)(l.Ex,{variant:"default",size:"sm",children:"Custom"}),m?(0,i.jsx)(l.Ex,{variant:"success",size:"sm",children:"Ready"}):j?(0,i.jsx)(l.Ex,{variant:"default",size:"sm",children:"Disabled"}):0===g?(0,i.jsx)("span",{className:"text-xs text-text-muted",children:"No connections"}):(0,i.jsxs)(i.Fragment,{children:[u>0&&(0,i.jsxs)(l.Ex,{variant:"success",size:"sm",dot:!0,children:[u," Connected"]}),f>0&&(0,i.jsxs)(l.Ex,{variant:"error",size:"sm",dot:!0,children:[f," Error"]}),0===u&&0===f&&(0,i.jsxs)(l.Ex,{variant:"default",size:"sm",children:[g," Added"]})]})]})]})]}),g>0&&(0,i.jsx)("div",{className:"shrink-0 opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:s=>{s.preventDefault(),s.stopPropagation(),a&&a(e.id,j)},children:(0,i.jsx)(l.lM,{size:"sm",checked:!j,onChange:()=>{},title:j?"Enable provider":"Disable provider"})})]})})})}function u({combos:e}){return 0===e.length?null:(0,i.jsx)("div",{className:"flex flex-col gap-2",children:e.map(e=>(0,i.jsx)(n(),{href:`/dashboard/media-providers/combo/${e.id}`,children:(0,i.jsx)(l.Zp,{padding:"xs",className:"hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors cursor-pointer",children:(0,i.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"}),(0,i.jsx)("code",{className:"text-sm font-mono font-medium flex-1 truncate",children:e.name}),(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-1 sm:shrink-0",children:[e.models.slice(0,6).map((e,s)=>{let t="string"==typeof e?e.split("/")[0]:"",r=d.Q2[t];return(0,i.jsx)("div",{title:r?.name||e,className:"size-5 rounded flex items-center justify-center",style:{backgroundColor:`${r?.color??"#888"}15`},children:(0,i.jsx)(c.A,{src:`/providers/${t}.png`,alt:r?.name||t,size:18,className:"object-contain rounded max-w-[18px] max-h-[18px]",fallbackText:r?.textIcon||t.slice(0,2).toUpperCase(),fallbackColor:r?.color})},`${e}-${s}`)}),e.models.length>6&&(0,i.jsxs)("span",{className:"text-[10px] text-text-muted ml-1",children:["+",e.models.length-6]})]}),(0,i.jsx)("span",{className:"text-[11px] text-text-muted shrink-0",children:e.models.length}),(0,i.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[16px]",children:"chevron_right"})]})})},e.id))})}function f(){let{kind:e}=(0,r.useParams)(),s=(0,r.useRouter)(),[t,a]=(0,o.useState)([]),[n,c]=(0,o.useState)([]),[h,f]=(0,o.useState)([]),[g,j]=(0,o.useState)(!1);(0,o.useEffect)(()=>{("webSearch"===e||"webFetch"===e)&&s.replace("/dashboard/media-providers/web")},[e,s]);let b=d.rj.find(s=>s.id===e),v="embedding"===e,N=m.has(e);if((0,o.useEffect)(()=>{b&&(fetch("/api/providers",{cache:"no-store"}).then(e=>e.json()).then(e=>a(e.connections||[])).catch(()=>{}),v&&fetch("/api/provider-nodes",{cache:"no-store"}).then(e=>e.json()).then(e=>c((e.nodes||[]).filter(e=>"custom-embedding"===e.type))).catch(()=>{}),N&&fetch("/api/combos",{cache:"no-store"}).then(e=>e.json()).then(e=>f(e.combos||[])).catch(()=>{}))},[v,N,b]),!b)return(0,r.notFound)();let y=(0,d.o5)(e),k=h.filter(s=>s.kind===e),w=n.map(e=>({id:e.id,name:e.name||"Custom Embedding",color:"#6366F1",textIcon:"CE"})),C=[...y,...w],$=async(e,s)=>{let i=t.filter(s=>s.provider===e);a(t=>t.map(t=>t.provider===e?{...t,isActive:s}:t)),await Promise.allSettled(i.map(e=>fetch(`/api/providers/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:s})})))},E=async()=>{let t=x[e]||`${e}-combo`,i=t,r=1,a=new Set(h.map(e=>e.name));for(;a.has(i);)i=`${t}-${r++}`;let n=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:i,models:[],kind:e})});if(n.ok){let e=await n.json();s.push(`/dashboard/media-providers/combo/${e.id}`)}else alert((await n.json()).error||"Failed to create combo")};return(0,i.jsxs)("div",{className:"flex flex-col gap-6",children:[(v||N)&&(0,i.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[N&&(0,i.jsx)(l.$n,{size:"sm",icon:"add",onClick:E,children:"Create Combo"}),v&&(0,i.jsx)(l.$n,{size:"sm",icon:"add",onClick:()=>j(!0),children:"Add Custom Embedding"})]}),N&&k.length>0&&(0,i.jsx)(u,{combos:k}),0===C.length?(0,i.jsxs)("div",{className:"text-center py-12 border border-dashed border-border rounded-xl text-text-muted text-sm",children:["No providers support ",(0,i.jsx)("strong",{children:b.label})," yet."]}):(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[y.map(s=>(0,i.jsx)(p,{provider:s,kind:e,connections:t,onToggle:$},s.id)),w.map(s=>(0,i.jsx)(p,{provider:s,kind:e,connections:t,isCustom:!0,onToggle:$},s.id))]}),v&&(0,i.jsx)(l.x0,{isOpen:g,onClose:()=>j(!1),onCreated:e=>{c(s=>[...s,e]),j(!1)}})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=2885)),_N_E=e.O()}]);