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
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6812],{54372:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>n});var r=l(94799),s=l(34023),a=l(77783),o=l(68305);function i(e={}){return{name:e.name||"",proxyUrl:e.proxyUrl||"",noProxy:e.noProxy||"",isActive:!1!==e.isActive,strictProxy:!0===e.strictProxy}}function n(){let[e,t]=(0,s.useState)([]),[l,n]=(0,s.useState)(!0),[d,c]=(0,s.useState)(!1),[x,p]=(0,s.useState)(!1),[m,h]=(0,s.useState)(!1),[u,y]=(0,s.useState)(!1),[g,f]=(0,s.useState)(!1),[j,b]=(0,s.useState)(!1),[v,k]=(0,s.useState)(null),[N,w]=(0,s.useState)(i()),[C,P]=(0,s.useState)(""),[$,D]=(0,s.useState)({vercelToken:"",projectName:"vercel-relay"}),[S,T]=(0,s.useState)({accountId:"",apiToken:"",projectName:"cloudflare-relay"}),[A,E]=(0,s.useState)({denoToken:"",orgDomain:"",projectName:""}),[I,U]=(0,s.useState)(!1),[O,z]=(0,s.useState)(!1),[F,W]=(0,s.useState)(!1),[R,_]=(0,s.useState)(null),[L,M]=(0,s.useState)([]),[q,V]=(0,s.useState)(!1),[J,B]=(0,s.useState)({current:0,total:0}),[G,H]=(0,s.useState)(!1),[Y,K]=(0,s.useState)(null),[Q,Z]=(0,s.useState)(1),[X,ee]=(0,s.useState)(20),et=(0,s.useRef)(null),el=(0,o.i)();(0,s.useEffect)(()=>{let e=e=>{et.current&&!et.current.contains(e.target)&&b(!1)};return j&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[j]);let er=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/proxy-pools?includeUsage=true",{cache:"no-store"}),l=await e.json();e.ok&&t(l.proxyPools||[])}catch(e){console.log("Error fetching proxy pools:",e)}finally{n(!1)}},[]);(0,s.useEffect)(()=>{er()},[er]);let es=()=>{k(null),w(i())},ea=()=>{es(),c(!0)},eo=()=>{c(!1),es()},ei=async()=>{let e={name:N.name.trim(),proxyUrl:N.proxyUrl.trim(),noProxy:N.noProxy.trim(),isActive:!0===N.isActive,strictProxy:!0===N.strictProxy};if(e.name&&e.proxyUrl){U(!0);try{let t=!!v,l=await fetch(t?`/api/proxy-pools/${v.id}`:"/api/proxy-pools",{method:t?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(l.ok)await er(),eo(),el.success(v?"Proxy pool updated":"Proxy pool created");else{let e=await l.json();el.error(e.error||"Failed to save proxy pool")}}catch(e){console.log("Error saving proxy pool:",e)}finally{U(!1)}}},en=async e=>{K({title:"Delete Proxy Pool",message:`Delete proxy pool "${e.name}"?`,onConfirm:async()=>{K(null);try{let l=await fetch(`/api/proxy-pools/${e.id}`,{method:"DELETE"});if(l.ok){t(t=>t.filter(t=>t.id!==e.id)),el.success("Proxy pool deleted");return}let r=await l.json();409===l.status?el.warning(`Cannot delete: ${r.boundConnectionCount||0} connection(s) are still using this pool.`):el.error(r.error||"Failed to delete proxy pool")}catch(e){console.log("Error deleting proxy pool:",e),el.error("Failed to delete proxy pool")}}})},ed=async e=>{_(e);try{let t=await fetch(`/api/proxy-pools/${e}/test`,{method:"POST"}),l=await t.json();if(!t.ok)return void el.error(l.error||"Failed to test proxy");await er(),el.success(l.ok?"Proxy test passed":"Proxy test failed")}catch(e){console.log("Error testing proxy pool:",e),el.error("Failed to test proxy")}finally{_(null)}},ec=async e=>{let l=!e.isActive;t(t=>t.map(t=>t.id===e.id?{...t,isActive:l}:t));try{(await fetch(`/api/proxy-pools/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:l})})).ok||(t(t=>t.map(t=>t.id===e.id?{...t,isActive:e.isActive}:t)),el.error("Failed to update active state"))}catch(l){console.log("Error toggling active:",l),t(t=>t.map(t=>t.id===e.id?{...t,isActive:e.isActive}:t))}},ex=Math.min(Q,Math.max(1,Math.ceil(e.length/X))),ep=e.slice((ex-1)*X,ex*X),em=ep.length>0&&ep.every(e=>L.includes(e.id)),eh=()=>M([]),eu=async t=>{let l=L.length>0?L:e.map(e=>e.id);if(0!==l.length){H(!0);try{let e=0,r=0;for(let s of l)try{(await fetch(`/api/proxy-pools/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok?e+=1:r+=1}catch{r+=1}await er(),el.success(`${t?"Activated":"Deactivated"} ${e}${r?`, failed ${r}`:""}`)}finally{H(!1)}}},ey=async()=>{0!==L.length&&K({title:"Delete Proxy Pools",message:`Delete ${L.length} proxy pool(s)?`,onConfirm:async()=>{K(null),H(!0);try{let e=0,t=0,l=0;for(let r of L)try{let s=await fetch(`/api/proxy-pools/${r}`,{method:"DELETE"});s.ok?e+=1:409===s.status?t+=1:l+=1}catch{l+=1}await er(),eh(),el.success(`Deleted ${e}${t?`, ${t} bound`:""}${l?`, ${l} failed`:""}`)}finally{H(!1)}}})},eg=async()=>{let t=L.length>0?e.filter(e=>L.includes(e.id)):e;if(0===t.length)return;V(!0),B({current:0,total:t.length});let l=0,r=[],s=0,a=[...t],o=async()=>{for(;a.length>0;){let e=a.shift();if(!e)break;try{let t=await fetch(`/api/proxy-pools/${e.id}/test`,{method:"POST"}),s=await t.json();t.ok&&s.ok?l+=1:r.push(e.id)}catch{r.push(e.id)}finally{B({current:s+=1,total:t.length})}}};await Promise.all(Array.from({length:Math.min(10,t.length)},o)),await er(),V(!1),B({current:0,total:0}),r.length>0?K({title:"Disable Dead Proxies",message:`Alive: ${l}, Dead: ${r.length}.
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6812],{57076:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>n});var r=l(95155),s=l(12115),a=l(35497),o=l(65921);function i(e={}){return{name:e.name||"",proxyUrl:e.proxyUrl||"",noProxy:e.noProxy||"",isActive:!1!==e.isActive,strictProxy:!0===e.strictProxy}}function n(){let[e,t]=(0,s.useState)([]),[l,n]=(0,s.useState)(!0),[d,c]=(0,s.useState)(!1),[x,p]=(0,s.useState)(!1),[m,h]=(0,s.useState)(!1),[u,y]=(0,s.useState)(!1),[g,f]=(0,s.useState)(!1),[j,b]=(0,s.useState)(!1),[v,k]=(0,s.useState)(null),[N,w]=(0,s.useState)(i()),[C,P]=(0,s.useState)(""),[$,D]=(0,s.useState)({vercelToken:"",projectName:"vercel-relay"}),[S,T]=(0,s.useState)({accountId:"",apiToken:"",projectName:"cloudflare-relay"}),[A,E]=(0,s.useState)({denoToken:"",orgDomain:"",projectName:""}),[I,U]=(0,s.useState)(!1),[O,z]=(0,s.useState)(!1),[F,W]=(0,s.useState)(!1),[R,_]=(0,s.useState)(null),[L,M]=(0,s.useState)([]),[q,V]=(0,s.useState)(!1),[J,B]=(0,s.useState)({current:0,total:0}),[G,H]=(0,s.useState)(!1),[Y,K]=(0,s.useState)(null),[Q,Z]=(0,s.useState)(1),[X,ee]=(0,s.useState)(20),et=(0,s.useRef)(null),el=(0,o.i)();(0,s.useEffect)(()=>{let e=e=>{et.current&&!et.current.contains(e.target)&&b(!1)};return j&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[j]);let er=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/proxy-pools?includeUsage=true",{cache:"no-store"}),l=await e.json();e.ok&&t(l.proxyPools||[])}catch(e){console.log("Error fetching proxy pools:",e)}finally{n(!1)}},[]);(0,s.useEffect)(()=>{er()},[er]);let es=()=>{k(null),w(i())},ea=()=>{es(),c(!0)},eo=()=>{c(!1),es()},ei=async()=>{let e={name:N.name.trim(),proxyUrl:N.proxyUrl.trim(),noProxy:N.noProxy.trim(),isActive:!0===N.isActive,strictProxy:!0===N.strictProxy};if(e.name&&e.proxyUrl){U(!0);try{let t=!!v,l=await fetch(t?`/api/proxy-pools/${v.id}`:"/api/proxy-pools",{method:t?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(l.ok)await er(),eo(),el.success(v?"Proxy pool updated":"Proxy pool created");else{let e=await l.json();el.error(e.error||"Failed to save proxy pool")}}catch(e){console.log("Error saving proxy pool:",e)}finally{U(!1)}}},en=async e=>{K({title:"Delete Proxy Pool",message:`Delete proxy pool "${e.name}"?`,onConfirm:async()=>{K(null);try{let l=await fetch(`/api/proxy-pools/${e.id}`,{method:"DELETE"});if(l.ok){t(t=>t.filter(t=>t.id!==e.id)),el.success("Proxy pool deleted");return}let r=await l.json();409===l.status?el.warning(`Cannot delete: ${r.boundConnectionCount||0} connection(s) are still using this pool.`):el.error(r.error||"Failed to delete proxy pool")}catch(e){console.log("Error deleting proxy pool:",e),el.error("Failed to delete proxy pool")}}})},ed=async e=>{_(e);try{let t=await fetch(`/api/proxy-pools/${e}/test`,{method:"POST"}),l=await t.json();if(!t.ok)return void el.error(l.error||"Failed to test proxy");await er(),el.success(l.ok?"Proxy test passed":"Proxy test failed")}catch(e){console.log("Error testing proxy pool:",e),el.error("Failed to test proxy")}finally{_(null)}},ec=async e=>{let l=!e.isActive;t(t=>t.map(t=>t.id===e.id?{...t,isActive:l}:t));try{(await fetch(`/api/proxy-pools/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:l})})).ok||(t(t=>t.map(t=>t.id===e.id?{...t,isActive:e.isActive}:t)),el.error("Failed to update active state"))}catch(l){console.log("Error toggling active:",l),t(t=>t.map(t=>t.id===e.id?{...t,isActive:e.isActive}:t))}},ex=Math.min(Q,Math.max(1,Math.ceil(e.length/X))),ep=e.slice((ex-1)*X,ex*X),em=ep.length>0&&ep.every(e=>L.includes(e.id)),eh=()=>M([]),eu=async t=>{let l=L.length>0?L:e.map(e=>e.id);if(0!==l.length){H(!0);try{let e=0,r=0;for(let s of l)try{(await fetch(`/api/proxy-pools/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok?e+=1:r+=1}catch{r+=1}await er(),el.success(`${t?"Activated":"Deactivated"} ${e}${r?`, failed ${r}`:""}`)}finally{H(!1)}}},ey=async()=>{0!==L.length&&K({title:"Delete Proxy Pools",message:`Delete ${L.length} proxy pool(s)?`,onConfirm:async()=>{K(null),H(!0);try{let e=0,t=0,l=0;for(let r of L)try{let s=await fetch(`/api/proxy-pools/${r}`,{method:"DELETE"});s.ok?e+=1:409===s.status?t+=1:l+=1}catch{l+=1}await er(),eh(),el.success(`Deleted ${e}${t?`, ${t} bound`:""}${l?`, ${l} failed`:""}`)}finally{H(!1)}}})},eg=async()=>{let t=L.length>0?e.filter(e=>L.includes(e.id)):e;if(0===t.length)return;V(!0),B({current:0,total:t.length});let l=0,r=[],s=0,a=[...t],o=async()=>{for(;a.length>0;){let e=a.shift();if(!e)break;try{let t=await fetch(`/api/proxy-pools/${e.id}/test`,{method:"POST"}),s=await t.json();t.ok&&s.ok?l+=1:r.push(e.id)}catch{r.push(e.id)}finally{B({current:s+=1,total:t.length})}}};await Promise.all(Array.from({length:Math.min(10,t.length)},o)),await er(),V(!1),B({current:0,total:0}),r.length>0?K({title:"Disable Dead Proxies",message:`Alive: ${l}, Dead: ${r.length}.
2
2
 
3
3
  Disable ${r.length} dead proxies?`,onConfirm:async()=>{K(null),H(!0);try{for(let e of r)try{await fetch(`/api/proxy-pools/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:!1})})}catch{}await er(),el.success(`Disabled ${r.length} dead proxies`)}finally{H(!1)}}}):el.success(`Health check done. Alive: ${l}, Dead: ${r.length}`)};(0,s.useEffect)(()=>{M(t=>t.filter(t=>e.some(e=>e.id===t)))},[e]),(0,s.useEffect)(()=>{Z(t=>Math.min(t,Math.max(1,Math.ceil(e.length/X))))},[e.length,X]);let ef=()=>{O||p(!1)},ej=()=>{F||h(!1)},eb=()=>{F||y(!1)},ev=()=>{F||f(!1)},ek=async()=>{if($.vercelToken.trim()){W(!0);try{let e=await fetch("/api/proxy-pools/vercel-deploy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify($)}),t=await e.json();e.ok?(await er(),ej(),el.success(`Deployed: ${t.deployUrl}`)):el.error(t.error||"Deploy failed")}catch(e){console.log("Error deploying Vercel relay:",e),el.error("Deploy failed")}finally{W(!1)}}},eN=async()=>{if(S.accountId.trim()&&S.apiToken.trim()){W(!0);try{let e=await fetch("/api/proxy-pools/cloudflare-deploy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(S)}),t=await e.json();e.ok?(await er(),eb(),el.success(`Deployed: ${t.deployUrl}`)):el.error(t.error||"Deploy failed")}catch(e){console.log("Error deploying Cloudflare relay:",e),el.error("Deploy failed")}finally{W(!1)}}},ew=async()=>{if(A.denoToken.trim()){W(!0);try{let e=await fetch("/api/proxy-pools/deno-deploy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(A)}),t=await e.json();e.ok?(await er(),ev(),el.success(`Deployed: ${t.deployUrl}`)):el.error(t.error||"Deploy failed")}catch(e){console.log("Error deploying Deno relay:",e),el.error("Deploy failed")}finally{W(!1)}}},eC=async()=>{let t=C.split(/\r?\n/).map(e=>e.trim()).filter(Boolean);if(0===t.length)return void el.warning("Please paste at least one proxy line.");let l=[],r=[];if(t.forEach((e,t)=>{try{let r=(e=>{let t=e.trim();if(!t)return null;if(t.includes("://")){let e=new URL(t),l=e.port?`${e.hostname}:${e.port}`:e.hostname;return{proxyUrl:e.toString(),name:`Imported ${l}`}}let l=t.split(":");if(4===l.length){let[e,t,r,s]=l;if(!e||!t||!r||!s)throw Error("Invalid host:port:user:pass format");return{proxyUrl:new URL(`http://${encodeURIComponent(r)}:${encodeURIComponent(s)}@${e}:${t}`).toString(),name:`Imported ${e}:${t}`}}throw Error("Unsupported format")})(e);r&&l.push({...r,lineNumber:t+1})}catch(e){r.push(`Line ${t+1}: ${e.message}`)}}),r.length>0)return void el.error(`Invalid proxy format:
4
- ${r.join("\n")}`);z(!0);try{let t=new Set(e.map(e=>`${(e.proxyUrl||"").trim()}|||${(e.noProxy||"").trim()}`)),r=0,s=0,a=0;for(let e of l){let l=`${e.proxyUrl}|||`;if(t.has(l)){s+=1;continue}(await fetch("/api/proxy-pools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e.name,proxyUrl:e.proxyUrl,noProxy:"",isActive:!0})})).ok?(r+=1,t.add(l)):a+=1}await er(),p(!1),el.success(`Batch import completed: Created ${r}, Skipped ${s}, Failed ${a}`)}catch(e){console.log("Error batch importing proxies:",e),el.error("Batch import failed")}finally{z(!1)}},eP=(0,s.useMemo)(()=>e.filter(e=>!0===e.isActive).length,[e]);return l?(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:gap-6 sm:px-0",children:[(0,r.jsx)(a.Qv,{}),(0,r.jsx)(a.Qv,{})]}):(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:gap-6 sm:px-0",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,r.jsx)("div",{className:"min-w-0",children:(0,r.jsx)("h1",{className:"text-xl font-semibold sm:text-2xl",children:"Proxy Pools"})}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,r.jsxs)("div",{className:"relative",ref:et,children:[(0,r.jsxs)(a.$n,{size:"sm",variant:"secondary",icon:"rocket_launch",onClick:()=>b(!j),children:["Deploy Relay",(0,r.jsx)("span",{className:"material-symbols-outlined ml-1 text-[18px]",children:j?"expand_less":"expand_more"})]}),j&&(0,r.jsxs)("div",{className:"absolute left-0 top-full z-50 mt-1 w-48 rounded-xl border border-black/10 bg-white p-1 shadow-xl dark:border-white/10 dark:bg-zinc-900 sm:left-auto sm:right-0",children:[(0,r.jsxs)("button",{onClick:()=>{T({accountId:"",apiToken:"",projectName:"cloudflare-relay"}),y(!0),b(!1)},className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-text-main transition-colors hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-orange-500",children:"cloud"}),"Cloudflare Relay"]}),(0,r.jsxs)("button",{onClick:()=>{D({vercelToken:"",projectName:"vercel-relay"}),h(!0),b(!1)},className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-text-main transition-colors hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-blue-500",children:"cloud_upload"}),"Vercel Relay"]}),(0,r.jsxs)("button",{onClick:()=>{E({denoToken:"",orgDomain:"",projectName:""}),f(!0),b(!1)},className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-text-main transition-colors hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-green-500",children:"terminal"}),"Deno Relay"]})]})]}),(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"upload",onClick:()=>{P(""),p(!0)},children:"Batch Import"}),(0,r.jsx)(a.$n,{size:"sm",icon:"add",onClick:ea,children:"Add Proxy Pool"})]})]}),(0,r.jsxs)(a.Zp,{children:[(0,r.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.length>0&&(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-text-muted cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:em,onChange:()=>M(e=>em?e.filter(e=>!ep.some(t=>t.id===e)):Array.from(new Set([...e,...ep.map(e=>e.id)]))),className:"size-4 rounded border-black/20 dark:border-white/20"}),em?"Unselect visible":"Select visible"]}),(0,r.jsxs)(a.Ex,{variant:"default",children:["Total: ",e.length]}),(0,r.jsxs)(a.Ex,{variant:"success",children:["Active: ",eP]})]}),(L.length>0||q)&&(0,r.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-lg border border-primary/30 bg-primary/5 px-3 py-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"checklist"}),(0,r.jsx)("span",{className:"text-xs font-medium text-primary",children:L.length>0?`${L.length} selected`:"All pools"}),(0,r.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,r.jsx)(a.$n,{size:"sm",icon:q?"progress_activity":"health_and_safety",onClick:eg,disabled:q||G||0===e.length,children:q?`Checking ${J.current}/${J.total}`:"Health Check"}),L.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"toggle_on",onClick:()=>eu(!0),disabled:G||q,children:"Activate"}),(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"toggle_off",onClick:()=>eu(!1),disabled:G||q,children:"Deactivate"}),(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:ey,disabled:G||q,children:"Delete"}),(0,r.jsx)(a.$n,{size:"sm",variant:"ghost",onClick:eh,disabled:G||q,children:"Clear"})]})]})]}),0===e.length?(0,r.jsxs)("div",{className:"text-center py-10",children:[(0,r.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No proxy pool entries yet"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create a proxy pool entry, then assign it to connections."}),(0,r.jsx)(a.$n,{icon:"add",onClick:ea,children:"Add Proxy Pool"})]}):(0,r.jsxs)("div",{className:"flex flex-col divide-y divide-black/[0.04] dark:divide-white/[0.05]",children:[ep.map(e=>{var t;return(0,r.jsxs)("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 min-w-0 flex-1",children:[(0,r.jsx)("input",{type:"checkbox",checked:L.includes(e.id),onChange:()=>{let t;return t=e.id,M(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},className:"mt-1 size-4 shrink-0 rounded border-black/20 dark:border-white/20"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,r.jsx)("p",{className:"min-w-0 max-w-full truncate text-sm font-medium sm:max-w-[18rem]",children:e.name}),(0,r.jsx)(a.Ex,{variant:"active"===(t=e.testStatus)?"success":"error"===t?"error":"default",size:"sm",dot:!0,children:e.testStatus||"unknown"}),(0,r.jsx)(a.Ex,{variant:e.isActive?"success":"default",size:"sm",children:e.isActive?"active":"inactive"}),"vercel"===e.type&&(0,r.jsx)(a.Ex,{variant:"default",size:"sm",children:"vercel relay"}),"cloudflare"===e.type&&(0,r.jsx)(a.Ex,{variant:"default",size:"sm",children:"cloudflare relay"}),(0,r.jsxs)(a.Ex,{variant:"default",size:"sm",children:[e.boundConnectionCount||0," bound"]})]}),(0,r.jsx)("p",{className:"text-xs text-text-muted truncate mt-1",children:e.proxyUrl}),e.noProxy?(0,r.jsxs)("p",{className:"text-xs text-text-muted truncate",children:["No proxy: ",e.noProxy]}):null,(0,r.jsxs)("p",{className:"text-[11px] text-text-muted mt-1",children:["Last tested: ",function(e){if(!e)return"Never";let t=new Date(e);return Number.isNaN(t.getTime())?"Never":t.toLocaleString()}(e.lastTestedAt),e.lastError?` \xb7 ${e.lastError}`:""]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,r.jsx)(a.lM,{size:"sm",checked:!0===e.isActive,onChange:()=>ec(e),title:e.isActive?"Disable":"Enable"}),(0,r.jsx)("button",{onClick:()=>ed(e.id),className:"p-2 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",title:"Test proxy",disabled:R===e.id,children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",style:R===e.id?{animation:"spin 1s linear infinite"}:void 0,children:R===e.id?"progress_activity":"science"})}),(0,r.jsx)("button",{onClick:()=>{k(e),w(i(e)),c(!0)},className:"p-2 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",title:"Edit",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,r.jsx)("button",{onClick:()=>en(e),className:"p-2 rounded hover:bg-red-500/10 text-red-500",title:"Delete",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)}),e.length>0&&(0,r.jsx)(a.dK,{currentPage:ex,pageSize:X,totalItems:e.length,onPageChange:Z,onPageSizeChange:e=>{ee(e),Z(1)}})]})]}),(0,r.jsx)(a.aF,{isOpen:x,title:"Batch Import Proxies",onClose:ef,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-sm font-medium text-text-main mb-1 block",children:"Paste Proxy List (One per line)"}),(0,r.jsx)("textarea",{value:C,onChange:e=>P(e.target.value),placeholder:"http://user:pass@127.0.0.1:7897\n127.0.0.1:7897:user:pass",className:"w-full min-h-[180px] py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Supported formats: protocol://user:pass@host:port, host:port:user:pass"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:eC,disabled:!C.trim()||O,children:O?"Importing...":"Import"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:ef,disabled:O,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:m,title:"Deploy Vercel Relay",onClose:ej,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"rounded-lg bg-blue-500/5 border border-blue-500/10 p-3 flex flex-col gap-1.5",children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Vercel Relay?"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys an edge relay function to Vercel. All AI provider requests will be forwarded through Vercel's edge network, masking your real IP from providers."}),(0,r.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,r.jsx)("li",{children:"Your IP is replaced by Vercel's dynamic edge IPs (hundreds of IPs across 20+ global regions)"}),(0,r.jsx)("li",{children:"Vercel serves millions of apps — providers can't block Vercel IPs without affecting legitimate traffic"}),(0,r.jsx)("li",{children:"Free tier: 100GB bandwidth/month, 500K edge invocations"}),(0,r.jsx)("li",{children:"Deploy multiple relays on different accounts for more IP diversity"})]})]}),(0,r.jsx)(a.pd,{label:"Vercel API Token",value:$.vercelToken,onChange:e=>D(t=>({...t,vercelToken:e.target.value})),placeholder:"your-vercel-api-token",hint:(0,r.jsxs)(r.Fragment,{children:["Token is used once for deployment and not stored. ",(0,r.jsx)("a",{href:"https://vercel.com/account/tokens",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Get token →"})]}),type:"password"}),(0,r.jsx)(a.pd,{label:"Project Name",value:$.projectName,onChange:e=>D(t=>({...t,projectName:e.target.value})),placeholder:"my-relay",hint:"Unique name for your Vercel project. Leave empty for auto-generated name."}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:ek,disabled:!$.vercelToken.trim()||F,children:F?"Deploying... (may take ~1 min)":"Deploy"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:ej,disabled:F,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:u,title:"Deploy Cloudflare Relay",onClose:eb,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"rounded-lg bg-orange-500/5 border border-orange-500/10 p-3 flex flex-col gap-1.5",children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Cloudflare Relay?"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys a Cloudflare Worker as a proxy relay. All AI provider requests will be forwarded through Cloudflare's global edge network."}),(0,r.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,r.jsx)("li",{children:"High performance global routing and IP masking via Cloudflare Workers"}),(0,r.jsx)("li",{children:"Free tier: 100,000 requests per day"}),(0,r.jsx)("li",{children:"Requires Cloudflare Account ID and a Workers API Token (Edit Workers permission)"})]}),(0,r.jsxs)("div",{className:"mt-2 pt-2 border-t border-orange-500/10 text-xs text-text-muted",children:[(0,r.jsx)("p",{className:"font-medium text-text-main mb-1",children:"How to generate your API Token:"}),(0,r.jsxs)("ol",{className:"list-decimal pl-4 space-y-0.5",children:[(0,r.jsxs)("li",{children:["Go to ",(0,r.jsx)("b",{children:"My Profile"})," → ",(0,r.jsx)("b",{children:"API Tokens"})," → ",(0,r.jsx)("b",{children:"Create Token"})]}),(0,r.jsxs)("li",{children:["Scroll down to ",(0,r.jsx)("b",{children:"Custom Token"})," and click ",(0,r.jsx)("b",{children:"Get started"})]}),(0,r.jsxs)("li",{children:["Under ",(0,r.jsx)("b",{children:"Permissions"}),": Account | Workers Scripts | Edit"]}),(0,r.jsxs)("li",{children:["Under ",(0,r.jsx)("b",{children:"Account Resources"}),": Include | Account | ",(0,r.jsx)("i",{children:"Your Account Name"})]}),(0,r.jsxs)("li",{children:["Click ",(0,r.jsx)("b",{children:"Continue to summary"})," → ",(0,r.jsx)("b",{children:"Create Token"})]})]})]})]}),(0,r.jsx)(a.pd,{label:"Account ID",value:S.accountId,onChange:e=>T(t=>({...t,accountId:e.target.value})),placeholder:"your-cloudflare-account-id",hint:(0,r.jsx)(r.Fragment,{children:"Found on the right side of the Cloudflare dashboard overview page."})}),(0,r.jsx)(a.pd,{label:"API Token",value:S.apiToken,onChange:e=>T(t=>({...t,apiToken:e.target.value})),placeholder:"your-cloudflare-api-token",hint:(0,r.jsxs)(r.Fragment,{children:['Requires "Workers Scripts: Edit" permission. ',(0,r.jsx)("a",{href:"https://dash.cloudflare.com/profile/api-tokens",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Get token →"})]}),type:"password"}),(0,r.jsx)(a.pd,{label:"Worker Name",value:S.projectName,onChange:e=>T(t=>({...t,projectName:e.target.value})),placeholder:"my-relay",hint:"Unique name for your Cloudflare Worker. Leave empty for auto-generated name."}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:eN,disabled:!S.accountId.trim()||!S.apiToken.trim()||F,children:F?"Deploying...":"Deploy Worker"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:eb,disabled:F,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:g,title:"Deploy Deno Relay",onClose:ev,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"rounded-lg bg-black/5 dark:bg-white/5 border border-black/10 dark:border-white/10 p-3 flex flex-col gap-1.5",children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Deno Relay?"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys a relay worker to Deno Deploy's global edge network. All AI provider requests are forwarded through Deno's edge, masking your real IP."}),(0,r.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,r.jsx)("li",{children:"Deno Deploy v2 runs on a high-performance global edge network"}),(0,r.jsx)("li",{children:"Free tier: 1M requests & 100GiB outbound traffic per month"}),(0,r.jsx)("li",{children:"No per-request CPU time limits (unlike Vercel/Cloudflare)"}),(0,r.jsx)("li",{children:"Support up to 20 active apps & 50 custom domains"}),(0,r.jsx)("li",{children:"Deploy multiple relays for maximum IP diversity"})]}),(0,r.jsxs)("div",{className:"mt-2 pt-2 border-t border-black/10 dark:border-white/10 text-xs text-text-muted",children:[(0,r.jsx)("p",{className:"font-medium text-text-main mb-1",children:"How to generate API token:"}),(0,r.jsxs)("ol",{className:"list-decimal pl-4 space-y-0.5",children:[(0,r.jsxs)("li",{children:["Go to ",(0,r.jsx)("b",{children:"console.deno.com"})]}),(0,r.jsxs)("li",{children:["Select your ",(0,r.jsx)("b",{children:"Organization"})," → ",(0,r.jsx)("b",{children:"Settings"})," → ",(0,r.jsx)("b",{children:"Organization Tokens"})]}),(0,r.jsxs)("li",{children:["Create a ",(0,r.jsx)("b",{children:"Organization Token"})," (prefix ",(0,r.jsx)("b",{children:"ddo_"}),")"]})]})]})]}),(0,r.jsx)(a.pd,{label:"Deno Deploy API Token",value:A.denoToken,onChange:e=>E(t=>({...t,denoToken:e.target.value})),placeholder:"ddo_xxxxxxxxxxxxxxxx",hint:(0,r.jsx)(r.Fragment,{children:"Token is used once for deployment, not stored. Found in Organization Settings."}),type:"password"}),(0,r.jsx)(a.pd,{label:"Organization Domain",value:A.orgDomain,onChange:e=>E(t=>({...t,orgDomain:e.target.value})),placeholder:"your-org.deno.net",hint:"Organization's default domain. Your relay URL will be in the format: https://my-relay.your-org.deno.net"}),(0,r.jsx)(a.pd,{label:"App Name",value:A.projectName,onChange:e=>E(t=>({...t,projectName:e.target.value})),placeholder:"deno-relay",hint:"Unique app name. Leave empty for auto-generated name."}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:ew,disabled:!A.denoToken.trim()||!A.orgDomain.trim()||F,children:F?"Deploying...":"Deploy Relay"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:ev,disabled:F,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:d,title:v?"Edit Proxy Pool":"Add Proxy Pool",onClose:eo,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(a.pd,{label:"Name",value:N.name,onChange:e=>w(t=>({...t,name:e.target.value})),placeholder:"Office Proxy"}),(0,r.jsx)(a.pd,{label:"Proxy URL",value:N.proxyUrl,onChange:e=>w(t=>({...t,proxyUrl:e.target.value})),placeholder:"http://127.0.0.1:7897"}),(0,r.jsx)(a.pd,{label:"No Proxy",value:N.noProxy,onChange:e=>w(t=>({...t,noProxy:e.target.value})),placeholder:"localhost,127.0.0.1,.internal",hint:"Comma-separated hosts/domains to bypass proxy"}),(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border/50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium text-sm",children:"Active"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Inactive pools are ignored by runtime resolution."})]}),(0,r.jsx)(a.lM,{checked:!0===N.isActive,onChange:()=>w(e=>({...e,isActive:!e.isActive})),disabled:I})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border/50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium text-sm",children:"Strict Proxy"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Fail request if proxy is unreachable instead of falling back to direct."})]}),(0,r.jsx)(a.lM,{checked:!0===N.strictProxy,onChange:()=>w(e=>({...e,strictProxy:!e.strictProxy})),disabled:I})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:ei,disabled:!N.name.trim()||!N.proxyUrl.trim()||I,children:I?"Saving...":"Save"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:eo,disabled:I,children:"Cancel"})]})]})}),(0,r.jsx)(a.uo,{isOpen:!!Y,onClose:()=>K(null),onConfirm:Y?.onConfirm,title:Y?.title||"Confirm",message:Y?.message,variant:"danger"})]})}},62567:(e,t,l)=>{Promise.resolve().then(l.bind(l,54372))}},e=>{e.O(0,[9118,3986,6656,7813,7783,7408,1858,7358],()=>e(e.s=62567)),_N_E=e.O()}]);
4
+ ${r.join("\n")}`);z(!0);try{let t=new Set(e.map(e=>`${(e.proxyUrl||"").trim()}|||${(e.noProxy||"").trim()}`)),r=0,s=0,a=0;for(let e of l){let l=`${e.proxyUrl}|||`;if(t.has(l)){s+=1;continue}(await fetch("/api/proxy-pools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e.name,proxyUrl:e.proxyUrl,noProxy:"",isActive:!0})})).ok?(r+=1,t.add(l)):a+=1}await er(),p(!1),el.success(`Batch import completed: Created ${r}, Skipped ${s}, Failed ${a}`)}catch(e){console.log("Error batch importing proxies:",e),el.error("Batch import failed")}finally{z(!1)}},eP=(0,s.useMemo)(()=>e.filter(e=>!0===e.isActive).length,[e]);return l?(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:gap-6 sm:px-0",children:[(0,r.jsx)(a.Qv,{}),(0,r.jsx)(a.Qv,{})]}):(0,r.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:gap-6 sm:px-0",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,r.jsx)("div",{className:"min-w-0",children:(0,r.jsx)("h1",{className:"text-xl font-semibold sm:text-2xl",children:"Proxy Pools"})}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,r.jsxs)("div",{className:"relative",ref:et,children:[(0,r.jsxs)(a.$n,{size:"sm",variant:"secondary",icon:"rocket_launch",onClick:()=>b(!j),children:["Deploy Relay",(0,r.jsx)("span",{className:"material-symbols-outlined ml-1 text-[18px]",children:j?"expand_less":"expand_more"})]}),j&&(0,r.jsxs)("div",{className:"absolute left-0 top-full z-50 mt-1 w-48 rounded-xl border border-black/10 bg-white p-1 shadow-xl dark:border-white/10 dark:bg-zinc-900 sm:left-auto sm:right-0",children:[(0,r.jsxs)("button",{onClick:()=>{T({accountId:"",apiToken:"",projectName:"cloudflare-relay"}),y(!0),b(!1)},className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-text-main transition-colors hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-orange-500",children:"cloud"}),"Cloudflare Relay"]}),(0,r.jsxs)("button",{onClick:()=>{D({vercelToken:"",projectName:"vercel-relay"}),h(!0),b(!1)},className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-text-main transition-colors hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-blue-500",children:"cloud_upload"}),"Vercel Relay"]}),(0,r.jsxs)("button",{onClick:()=>{E({denoToken:"",orgDomain:"",projectName:""}),f(!0),b(!1)},className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm text-text-main transition-colors hover:bg-black/5 dark:hover:bg-white/5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-green-500",children:"terminal"}),"Deno Relay"]})]})]}),(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"upload",onClick:()=>{P(""),p(!0)},children:"Batch Import"}),(0,r.jsx)(a.$n,{size:"sm",icon:"add",onClick:ea,children:"Add Proxy Pool"})]})]}),(0,r.jsxs)(a.Zp,{children:[(0,r.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[e.length>0&&(0,r.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-text-muted cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:em,onChange:()=>M(e=>em?e.filter(e=>!ep.some(t=>t.id===e)):Array.from(new Set([...e,...ep.map(e=>e.id)]))),className:"size-4 rounded border-black/20 dark:border-white/20"}),em?"Unselect visible":"Select visible"]}),(0,r.jsxs)(a.Ex,{variant:"default",children:["Total: ",e.length]}),(0,r.jsxs)(a.Ex,{variant:"success",children:["Active: ",eP]})]}),(L.length>0||q)&&(0,r.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-lg border border-primary/30 bg-primary/5 px-3 py-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"checklist"}),(0,r.jsx)("span",{className:"text-xs font-medium text-primary",children:L.length>0?`${L.length} selected`:"All pools"}),(0,r.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,r.jsx)(a.$n,{size:"sm",icon:q?"progress_activity":"health_and_safety",onClick:eg,disabled:q||G||0===e.length,children:q?`Checking ${J.current}/${J.total}`:"Health Check"}),L.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"toggle_on",onClick:()=>eu(!0),disabled:G||q,children:"Activate"}),(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"toggle_off",onClick:()=>eu(!1),disabled:G||q,children:"Deactivate"}),(0,r.jsx)(a.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:ey,disabled:G||q,children:"Delete"}),(0,r.jsx)(a.$n,{size:"sm",variant:"ghost",onClick:eh,disabled:G||q,children:"Clear"})]})]})]}),0===e.length?(0,r.jsxs)("div",{className:"text-center py-10",children:[(0,r.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No proxy pool entries yet"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create a proxy pool entry, then assign it to connections."}),(0,r.jsx)(a.$n,{icon:"add",onClick:ea,children:"Add Proxy Pool"})]}):(0,r.jsxs)("div",{className:"flex flex-col divide-y divide-black/[0.04] dark:divide-white/[0.05]",children:[ep.map(e=>{var t;return(0,r.jsxs)("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 min-w-0 flex-1",children:[(0,r.jsx)("input",{type:"checkbox",checked:L.includes(e.id),onChange:()=>{let t;return t=e.id,M(e=>e.includes(t)?e.filter(e=>e!==t):[...e,t])},className:"mt-1 size-4 shrink-0 rounded border-black/20 dark:border-white/20"}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,r.jsx)("p",{className:"min-w-0 max-w-full truncate text-sm font-medium sm:max-w-[18rem]",children:e.name}),(0,r.jsx)(a.Ex,{variant:"active"===(t=e.testStatus)?"success":"error"===t?"error":"default",size:"sm",dot:!0,children:e.testStatus||"unknown"}),(0,r.jsx)(a.Ex,{variant:e.isActive?"success":"default",size:"sm",children:e.isActive?"active":"inactive"}),"vercel"===e.type&&(0,r.jsx)(a.Ex,{variant:"default",size:"sm",children:"vercel relay"}),"cloudflare"===e.type&&(0,r.jsx)(a.Ex,{variant:"default",size:"sm",children:"cloudflare relay"}),(0,r.jsxs)(a.Ex,{variant:"default",size:"sm",children:[e.boundConnectionCount||0," bound"]})]}),(0,r.jsx)("p",{className:"text-xs text-text-muted truncate mt-1",children:e.proxyUrl}),e.noProxy?(0,r.jsxs)("p",{className:"text-xs text-text-muted truncate",children:["No proxy: ",e.noProxy]}):null,(0,r.jsxs)("p",{className:"text-[11px] text-text-muted mt-1",children:["Last tested: ",function(e){if(!e)return"Never";let t=new Date(e);return Number.isNaN(t.getTime())?"Never":t.toLocaleString()}(e.lastTestedAt),e.lastError?` \xb7 ${e.lastError}`:""]})]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,r.jsx)(a.lM,{size:"sm",checked:!0===e.isActive,onChange:()=>ec(e),title:e.isActive?"Disable":"Enable"}),(0,r.jsx)("button",{onClick:()=>ed(e.id),className:"p-2 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",title:"Test proxy",disabled:R===e.id,children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",style:R===e.id?{animation:"spin 1s linear infinite"}:void 0,children:R===e.id?"progress_activity":"science"})}),(0,r.jsx)("button",{onClick:()=>{k(e),w(i(e)),c(!0)},className:"p-2 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",title:"Edit",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,r.jsx)("button",{onClick:()=>en(e),className:"p-2 rounded hover:bg-red-500/10 text-red-500",title:"Delete",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)}),e.length>0&&(0,r.jsx)(a.dK,{currentPage:ex,pageSize:X,totalItems:e.length,onPageChange:Z,onPageSizeChange:e=>{ee(e),Z(1)}})]})]}),(0,r.jsx)(a.aF,{isOpen:x,title:"Batch Import Proxies",onClose:ef,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-sm font-medium text-text-main mb-1 block",children:"Paste Proxy List (One per line)"}),(0,r.jsx)("textarea",{value:C,onChange:e=>P(e.target.value),placeholder:"http://user:pass@127.0.0.1:7897\n127.0.0.1:7897:user:pass",className:"w-full min-h-[180px] py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Supported formats: protocol://user:pass@host:port, host:port:user:pass"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:eC,disabled:!C.trim()||O,children:O?"Importing...":"Import"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:ef,disabled:O,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:m,title:"Deploy Vercel Relay",onClose:ej,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"rounded-lg bg-blue-500/5 border border-blue-500/10 p-3 flex flex-col gap-1.5",children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Vercel Relay?"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys an edge relay function to Vercel. All AI provider requests will be forwarded through Vercel's edge network, masking your real IP from providers."}),(0,r.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,r.jsx)("li",{children:"Your IP is replaced by Vercel's dynamic edge IPs (hundreds of IPs across 20+ global regions)"}),(0,r.jsx)("li",{children:"Vercel serves millions of apps — providers can't block Vercel IPs without affecting legitimate traffic"}),(0,r.jsx)("li",{children:"Free tier: 100GB bandwidth/month, 500K edge invocations"}),(0,r.jsx)("li",{children:"Deploy multiple relays on different accounts for more IP diversity"})]})]}),(0,r.jsx)(a.pd,{label:"Vercel API Token",value:$.vercelToken,onChange:e=>D(t=>({...t,vercelToken:e.target.value})),placeholder:"your-vercel-api-token",hint:(0,r.jsxs)(r.Fragment,{children:["Token is used once for deployment and not stored. ",(0,r.jsx)("a",{href:"https://vercel.com/account/tokens",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Get token →"})]}),type:"password"}),(0,r.jsx)(a.pd,{label:"Project Name",value:$.projectName,onChange:e=>D(t=>({...t,projectName:e.target.value})),placeholder:"my-relay",hint:"Unique name for your Vercel project. Leave empty for auto-generated name."}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:ek,disabled:!$.vercelToken.trim()||F,children:F?"Deploying... (may take ~1 min)":"Deploy"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:ej,disabled:F,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:u,title:"Deploy Cloudflare Relay",onClose:eb,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"rounded-lg bg-orange-500/5 border border-orange-500/10 p-3 flex flex-col gap-1.5",children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Cloudflare Relay?"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys a Cloudflare Worker as a proxy relay. All AI provider requests will be forwarded through Cloudflare's global edge network."}),(0,r.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,r.jsx)("li",{children:"High performance global routing and IP masking via Cloudflare Workers"}),(0,r.jsx)("li",{children:"Free tier: 100,000 requests per day"}),(0,r.jsx)("li",{children:"Requires Cloudflare Account ID and a Workers API Token (Edit Workers permission)"})]}),(0,r.jsxs)("div",{className:"mt-2 pt-2 border-t border-orange-500/10 text-xs text-text-muted",children:[(0,r.jsx)("p",{className:"font-medium text-text-main mb-1",children:"How to generate your API Token:"}),(0,r.jsxs)("ol",{className:"list-decimal pl-4 space-y-0.5",children:[(0,r.jsxs)("li",{children:["Go to ",(0,r.jsx)("b",{children:"My Profile"})," → ",(0,r.jsx)("b",{children:"API Tokens"})," → ",(0,r.jsx)("b",{children:"Create Token"})]}),(0,r.jsxs)("li",{children:["Scroll down to ",(0,r.jsx)("b",{children:"Custom Token"})," and click ",(0,r.jsx)("b",{children:"Get started"})]}),(0,r.jsxs)("li",{children:["Under ",(0,r.jsx)("b",{children:"Permissions"}),": Account | Workers Scripts | Edit"]}),(0,r.jsxs)("li",{children:["Under ",(0,r.jsx)("b",{children:"Account Resources"}),": Include | Account | ",(0,r.jsx)("i",{children:"Your Account Name"})]}),(0,r.jsxs)("li",{children:["Click ",(0,r.jsx)("b",{children:"Continue to summary"})," → ",(0,r.jsx)("b",{children:"Create Token"})]})]})]})]}),(0,r.jsx)(a.pd,{label:"Account ID",value:S.accountId,onChange:e=>T(t=>({...t,accountId:e.target.value})),placeholder:"your-cloudflare-account-id",hint:(0,r.jsx)(r.Fragment,{children:"Found on the right side of the Cloudflare dashboard overview page."})}),(0,r.jsx)(a.pd,{label:"API Token",value:S.apiToken,onChange:e=>T(t=>({...t,apiToken:e.target.value})),placeholder:"your-cloudflare-api-token",hint:(0,r.jsxs)(r.Fragment,{children:['Requires "Workers Scripts: Edit" permission. ',(0,r.jsx)("a",{href:"https://dash.cloudflare.com/profile/api-tokens",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Get token →"})]}),type:"password"}),(0,r.jsx)(a.pd,{label:"Worker Name",value:S.projectName,onChange:e=>T(t=>({...t,projectName:e.target.value})),placeholder:"my-relay",hint:"Unique name for your Cloudflare Worker. Leave empty for auto-generated name."}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:eN,disabled:!S.accountId.trim()||!S.apiToken.trim()||F,children:F?"Deploying...":"Deploy Worker"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:eb,disabled:F,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:g,title:"Deploy Deno Relay",onClose:ev,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"rounded-lg bg-black/5 dark:bg-white/5 border border-black/10 dark:border-white/10 p-3 flex flex-col gap-1.5",children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Deno Relay?"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys a relay worker to Deno Deploy's global edge network. All AI provider requests are forwarded through Deno's edge, masking your real IP."}),(0,r.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,r.jsx)("li",{children:"Deno Deploy v2 runs on a high-performance global edge network"}),(0,r.jsx)("li",{children:"Free tier: 1M requests & 100GiB outbound traffic per month"}),(0,r.jsx)("li",{children:"No per-request CPU time limits (unlike Vercel/Cloudflare)"}),(0,r.jsx)("li",{children:"Support up to 20 active apps & 50 custom domains"}),(0,r.jsx)("li",{children:"Deploy multiple relays for maximum IP diversity"})]}),(0,r.jsxs)("div",{className:"mt-2 pt-2 border-t border-black/10 dark:border-white/10 text-xs text-text-muted",children:[(0,r.jsx)("p",{className:"font-medium text-text-main mb-1",children:"How to generate API token:"}),(0,r.jsxs)("ol",{className:"list-decimal pl-4 space-y-0.5",children:[(0,r.jsxs)("li",{children:["Go to ",(0,r.jsx)("b",{children:"console.deno.com"})]}),(0,r.jsxs)("li",{children:["Select your ",(0,r.jsx)("b",{children:"Organization"})," → ",(0,r.jsx)("b",{children:"Settings"})," → ",(0,r.jsx)("b",{children:"Organization Tokens"})]}),(0,r.jsxs)("li",{children:["Create a ",(0,r.jsx)("b",{children:"Organization Token"})," (prefix ",(0,r.jsx)("b",{children:"ddo_"}),")"]})]})]})]}),(0,r.jsx)(a.pd,{label:"Deno Deploy API Token",value:A.denoToken,onChange:e=>E(t=>({...t,denoToken:e.target.value})),placeholder:"ddo_xxxxxxxxxxxxxxxx",hint:(0,r.jsx)(r.Fragment,{children:"Token is used once for deployment, not stored. Found in Organization Settings."}),type:"password"}),(0,r.jsx)(a.pd,{label:"Organization Domain",value:A.orgDomain,onChange:e=>E(t=>({...t,orgDomain:e.target.value})),placeholder:"your-org.deno.net",hint:"Organization's default domain. Your relay URL will be in the format: https://my-relay.your-org.deno.net"}),(0,r.jsx)(a.pd,{label:"App Name",value:A.projectName,onChange:e=>E(t=>({...t,projectName:e.target.value})),placeholder:"deno-relay",hint:"Unique app name. Leave empty for auto-generated name."}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:ew,disabled:!A.denoToken.trim()||!A.orgDomain.trim()||F,children:F?"Deploying...":"Deploy Relay"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:ev,disabled:F,children:"Cancel"})]})]})}),(0,r.jsx)(a.aF,{isOpen:d,title:v?"Edit Proxy Pool":"Add Proxy Pool",onClose:eo,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(a.pd,{label:"Name",value:N.name,onChange:e=>w(t=>({...t,name:e.target.value})),placeholder:"Office Proxy"}),(0,r.jsx)(a.pd,{label:"Proxy URL",value:N.proxyUrl,onChange:e=>w(t=>({...t,proxyUrl:e.target.value})),placeholder:"http://127.0.0.1:7897"}),(0,r.jsx)(a.pd,{label:"No Proxy",value:N.noProxy,onChange:e=>w(t=>({...t,noProxy:e.target.value})),placeholder:"localhost,127.0.0.1,.internal",hint:"Comma-separated hosts/domains to bypass proxy"}),(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border/50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium text-sm",children:"Active"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Inactive pools are ignored by runtime resolution."})]}),(0,r.jsx)(a.lM,{checked:!0===N.isActive,onChange:()=>w(e=>({...e,isActive:!e.isActive})),disabled:I})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border/50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium text-sm",children:"Strict Proxy"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Fail request if proxy is unreachable instead of falling back to direct."})]}),(0,r.jsx)(a.lM,{checked:!0===N.strictProxy,onChange:()=>w(e=>({...e,strictProxy:!e.strictProxy})),disabled:I})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,r.jsx)(a.$n,{fullWidth:!0,onClick:ei,disabled:!N.name.trim()||!N.proxyUrl.trim()||I,children:I?"Saving...":"Save"}),(0,r.jsx)(a.$n,{fullWidth:!0,variant:"ghost",onClick:eo,disabled:I,children:"Cancel"})]})]})}),(0,r.jsx)(a.uo,{isOpen:!!Y,onClose:()=>K(null),onConfirm:Y?.onConfirm,title:Y?.title||"Confirm",message:Y?.message,variant:"danger"})]})}},67371:(e,t,l)=>{Promise.resolve().then(l.bind(l,57076))}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=67371)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7414],{24946:(e,t,s)=>{Promise.resolve().then(s.bind(s,47902))},47902:(e,t,s)=>{"use strict";s.d(t,{default:()=>j});var a=s(94799),l=s(34023),r=s(37888),i=s(76020),d=s(29746),n=s(47497),o=s(29406),x=s(52939),c=s(67370),m=s(77783);let p=e=>e>=1e6?`${(e/1e6).toFixed(2)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),h=[{id:"today",label:"Today"},{id:"yesterday",label:"Yesterday"},{id:"last7d",label:"7 days"},{id:"last30d",label:"30 days"},{id:"all",label:"All time"}],u={applied:"Prompt exceeded threshold",below_threshold:"Below size threshold",not_profitable:"Compression not profitable",below_min_chars:"Below minimum chars",below_min_tokens:"Below minimum tokens",unsupported_model:"Model not in allowlist",unsupported_format:"Non-Claude request format",timeout:"Compression timed out",transform_error:"Transform error",passthrough:"Passthrough",disabled:"Disabled",not_installed:"Not installed"};function g({label:e,value:t,sub:s,tone:l}){return(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsx)("p",{className:"text-xs text-text-muted uppercase tracking-wide",children:e}),(0,a.jsx)("p",{className:`text-xl font-semibold mt-1 ${l||""}`,children:t}),s&&(0,a.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:s})]})}function j(){let[e,t]=(0,l.useState)(null),[s,j]=(0,l.useState)(null),[b,f]=(0,l.useState)(null),[N,y]=(0,l.useState)(null),[v,w]=(0,l.useState)("last7d"),[k,S]=(0,l.useState)(!0),P=(0,l.useCallback)(async()=>{S(!0);try{let[e,s,a]=await Promise.all([fetch("/api/pxpipe/status",{headers:{"Cache-Control":"no-store"}}),fetch("/api/pxpipe/stats"),fetch("/api/pxpipe/logs?limit=50")]);t(await e.json()),f(await s.json()),y(await a.json());let l=await fetch("/api/pxpipe/health",{method:"POST"});j(await l.json())}catch{}finally{S(!1)}},[]);(0,l.useEffect)(()=>{P()},[P]);let E=b?.windows?.[v],$=e?e.installed?s?.healthy?"Healthy":e.running?"Running":"Stopped":"Not installed":"—";return(0,a.jsxs)("div",{className:"space-y-6 p-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",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:"image"}),"PXPIPE Dashboard"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("a",{href:"/dashboard/token-saver",className:"text-xs text-primary underline hover:opacity-80",children:"Token Saver settings"}),(0,a.jsx)(m.$n,{size:"sm",variant:"ghost",onClick:P,disabled:k,children:k?"Refreshing…":"Refresh"})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-3",children:[(0,a.jsx)(g,{label:"Status",value:$,tone:s?.healthy?"text-success":e?.installed?"text-warning":"text-text-muted",sub:e?.enabled?"Enabled in pipeline":"Disabled in pipeline"}),(0,a.jsx)(g,{label:"Version",value:e?.version?`v${e.version}`:"—",sub:"pxpipe-proxy"}),(0,a.jsx)(g,{label:"Uptime",value:(e=>{if(!e||e<=0)return"—";let t=Math.floor(e/6e4),s=Math.floor(t/60);return s>0?`${s}h${String(t%60).padStart(2,"0")}m`:`${t}m`})(e?.uptimeMs),sub:"module loaded"}),(0,a.jsx)(g,{label:"Requests",value:E?E.requests.toLocaleString():"—"}),(0,a.jsx)(g,{label:"Compressed",value:E?E.compressed.toLocaleString():"—",tone:"text-success"}),(0,a.jsx)(g,{label:"Bypassed",value:E?E.bypassed.toLocaleString():"—"})]}),(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3 mb-4",children:[(0,a.jsx)("h3",{className:"font-medium",children:"Token savings (estimated)"}),(0,a.jsx)("div",{className:"flex items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1",children:h.map(e=>(0,a.jsx)("button",{onClick:()=>w(e.id),className:`px-3 py-1 rounded-md text-xs font-medium transition-colors ${v===e.id?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:e.label},e.id))})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-center",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Original tokens"}),(0,a.jsx)("p",{className:"text-lg font-semibold",children:E?p(E.tokensBeforeEst):"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"After PXPIPE"}),(0,a.jsx)("p",{className:"text-lg font-semibold",children:E?p(E.tokensAfterEst):"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Saved"}),(0,a.jsx)("p",{className:"text-lg font-semibold text-success",children:E?p(E.tokensSavedEst):"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Reduction"}),(0,a.jsx)("p",{className:"text-lg font-semibold text-success",children:E?`${E.savedPct}%`:"—"})]})]}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-3",children:["Estimates from body size before/after imaging; billed usage per request (recorded on the Usage page) remains the ground truth. Images generated:"," ",E?E.imagesGenerated.toLocaleString():"—"," \xb7 avg compression time:"," ",E?`${E.avgCompressionMs}ms`:"—"," \xb7 errors: ",E?E.errors:"—"]})]}),(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsx)("h3",{className:"font-medium mb-3",children:"Tokens saved — last 30 days"}),b?.timeline?.some(e=>e.tokensSavedEst>0)?(0,a.jsx)(r.u,{width:"100%",height:220,children:(0,a.jsxs)(i.Q,{data:b.timeline,margin:{top:4,right:8,left:0,bottom:0},children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:"gradPxpipe",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"5%",stopColor:"#10b981",stopOpacity:.25}),(0,a.jsx)("stop",{offset:"95%",stopColor:"#10b981",stopOpacity:0})]})}),(0,a.jsx)(d.d,{strokeDasharray:"3 3",strokeOpacity:.2}),(0,a.jsx)(n.W,{dataKey:"date",tick:{fontSize:11},tickFormatter:e=>e.slice(5)}),(0,a.jsx)(o.h,{tick:{fontSize:11},tickFormatter:p,width:48}),(0,a.jsx)(x.m,{formatter:e=>[p(e),"Tokens saved"],labelFormatter:e=>e}),(0,a.jsx)(c.Gk,{type:"monotone",dataKey:"tokensSavedEst",stroke:"#10b981",fill:"url(#gradPxpipe)",strokeWidth:2})]})}):(0,a.jsx)("div",{className:"h-32 flex items-center justify-center text-text-muted text-sm",children:"No savings recorded yet — enable PXPIPE in the Token Saver and route a large Claude-format request."})]}),(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsx)("h3",{className:"font-medium mb-3",children:"History"}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full text-sm",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"text-left text-xs text-text-muted border-b border-border",children:[(0,a.jsx)("th",{className:"py-2 pr-3",children:"Time"}),(0,a.jsx)("th",{className:"py-2 pr-3",children:"Model"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Original"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Compressed"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Saved"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"%"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Duration"}),(0,a.jsx)("th",{className:"py-2",children:"Status"})]})}),(0,a.jsxs)("tbody",{children:[(b?.recent||[]).slice(0,50).map((e,t)=>(0,a.jsxs)("tr",{className:"border-b border-border/50",children:[(0,a.jsx)("td",{className:"py-1.5 pr-3 whitespace-nowrap text-text-muted",children:new Date(e.ts).toLocaleString()}),(0,a.jsx)("td",{className:"py-1.5 pr-3 font-mono text-xs",children:e.provider?`${e.provider}/${e.model}`:e.model||"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:e.applied?p(e.tokensBeforeEst):"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:e.applied?p(e.tokensAfterEst):"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs text-success",children:e.applied?p(e.tokensSavedEst):"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:e.applied?`${e.savedPct}%`:"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:null!=e.durationMs?`${e.durationMs}ms`:"—"}),(0,a.jsx)("td",{className:"py-1.5",children:(0,a.jsx)("span",{className:`text-xs px-2 py-0.5 rounded ${e.applied?"bg-success/15 text-success":"transform_error"===e.reason||"timeout"===e.reason?"bg-danger/15 text-danger":"bg-warning/15 text-warning"}`,title:e.detail||"",children:e.applied?"Compressed":u[e.reason]||e.reason})})]},`${e.ts}-${t}`)),(!b?.recent||0===b.recent.length)&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:8,className:"py-6 text-center text-text-muted text-sm",children:"No PXPIPE activity yet"})})]})]})})]}),(0,a.jsxs)(m.Zp,{className:"p-4",id:"logs",children:[(0,a.jsx)("h3",{className:"font-medium mb-3",children:"PXPIPE Logs"}),N?.installLog?(0,a.jsx)("pre",{className:"rounded bg-black/5 dark:bg-white/5 p-3 text-xs font-mono overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap",children:N.installLog}):(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"No install log yet."})]})]})}}},e=>{e.O(0,[9118,3986,6656,7813,7783,7408,1858,7358],()=>e(e.s=24946)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7414],{61838:(e,t,s)=>{Promise.resolve().then(s.bind(s,71470))},71470:(e,t,s)=>{"use strict";s.d(t,{default:()=>j});var a=s(95155),l=s(12115),r=s(21742),i=s(63346),d=s(77496),n=s(32539),o=s(59656),x=s(51037),c=s(31310),m=s(35497);let p=e=>e>=1e6?`${(e/1e6).toFixed(2)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),h=[{id:"today",label:"Today"},{id:"yesterday",label:"Yesterday"},{id:"last7d",label:"7 days"},{id:"last30d",label:"30 days"},{id:"all",label:"All time"}],u={applied:"Prompt exceeded threshold",below_threshold:"Below size threshold",not_profitable:"Compression not profitable",below_min_chars:"Below minimum chars",below_min_tokens:"Below minimum tokens",unsupported_model:"Model not in allowlist",unsupported_format:"Non-Claude request format",timeout:"Compression timed out",transform_error:"Transform error",passthrough:"Passthrough",disabled:"Disabled",not_installed:"Not installed"};function g({label:e,value:t,sub:s,tone:l}){return(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsx)("p",{className:"text-xs text-text-muted uppercase tracking-wide",children:e}),(0,a.jsx)("p",{className:`text-xl font-semibold mt-1 ${l||""}`,children:t}),s&&(0,a.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:s})]})}function j(){let[e,t]=(0,l.useState)(null),[s,j]=(0,l.useState)(null),[b,f]=(0,l.useState)(null),[N,y]=(0,l.useState)(null),[v,w]=(0,l.useState)("last7d"),[k,S]=(0,l.useState)(!0),P=(0,l.useCallback)(async()=>{S(!0);try{let[e,s,a]=await Promise.all([fetch("/api/pxpipe/status",{headers:{"Cache-Control":"no-store"}}),fetch("/api/pxpipe/stats"),fetch("/api/pxpipe/logs?limit=50")]);t(await e.json()),f(await s.json()),y(await a.json());let l=await fetch("/api/pxpipe/health",{method:"POST"});j(await l.json())}catch{}finally{S(!1)}},[]);(0,l.useEffect)(()=>{P()},[P]);let E=b?.windows?.[v],$=e?e.installed?s?.healthy?"Healthy":e.running?"Running":"Stopped":"Not installed":"—";return(0,a.jsxs)("div",{className:"space-y-6 p-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3",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:"image"}),"PXPIPE Dashboard"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("a",{href:"/dashboard/token-saver",className:"text-xs text-primary underline hover:opacity-80",children:"Token Saver settings"}),(0,a.jsx)(m.$n,{size:"sm",variant:"ghost",onClick:P,disabled:k,children:k?"Refreshing…":"Refresh"})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-3",children:[(0,a.jsx)(g,{label:"Status",value:$,tone:s?.healthy?"text-success":e?.installed?"text-warning":"text-text-muted",sub:e?.enabled?"Enabled in pipeline":"Disabled in pipeline"}),(0,a.jsx)(g,{label:"Version",value:e?.version?`v${e.version}`:"—",sub:"pxpipe-proxy"}),(0,a.jsx)(g,{label:"Uptime",value:(e=>{if(!e||e<=0)return"—";let t=Math.floor(e/6e4),s=Math.floor(t/60);return s>0?`${s}h${String(t%60).padStart(2,"0")}m`:`${t}m`})(e?.uptimeMs),sub:"module loaded"}),(0,a.jsx)(g,{label:"Requests",value:E?E.requests.toLocaleString():"—"}),(0,a.jsx)(g,{label:"Compressed",value:E?E.compressed.toLocaleString():"—",tone:"text-success"}),(0,a.jsx)(g,{label:"Bypassed",value:E?E.bypassed.toLocaleString():"—"})]}),(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between flex-wrap gap-3 mb-4",children:[(0,a.jsx)("h3",{className:"font-medium",children:"Token savings (estimated)"}),(0,a.jsx)("div",{className:"flex items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1",children:h.map(e=>(0,a.jsx)("button",{onClick:()=>w(e.id),className:`px-3 py-1 rounded-md text-xs font-medium transition-colors ${v===e.id?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:e.label},e.id))})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-center",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Original tokens"}),(0,a.jsx)("p",{className:"text-lg font-semibold",children:E?p(E.tokensBeforeEst):"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"After PXPIPE"}),(0,a.jsx)("p",{className:"text-lg font-semibold",children:E?p(E.tokensAfterEst):"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Saved"}),(0,a.jsx)("p",{className:"text-lg font-semibold text-success",children:E?p(E.tokensSavedEst):"—"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-xs text-text-muted",children:"Reduction"}),(0,a.jsx)("p",{className:"text-lg font-semibold text-success",children:E?`${E.savedPct}%`:"—"})]})]}),(0,a.jsxs)("p",{className:"text-xs text-text-muted mt-3",children:["Estimates from body size before/after imaging; billed usage per request (recorded on the Usage page) remains the ground truth. Images generated:"," ",E?E.imagesGenerated.toLocaleString():"—"," \xb7 avg compression time:"," ",E?`${E.avgCompressionMs}ms`:"—"," \xb7 errors: ",E?E.errors:"—"]})]}),(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsx)("h3",{className:"font-medium mb-3",children:"Tokens saved — last 30 days"}),b?.timeline?.some(e=>e.tokensSavedEst>0)?(0,a.jsx)(r.u,{width:"100%",height:220,children:(0,a.jsxs)(i.Q,{data:b.timeline,margin:{top:4,right:8,left:0,bottom:0},children:[(0,a.jsx)("defs",{children:(0,a.jsxs)("linearGradient",{id:"gradPxpipe",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,a.jsx)("stop",{offset:"5%",stopColor:"#10b981",stopOpacity:.25}),(0,a.jsx)("stop",{offset:"95%",stopColor:"#10b981",stopOpacity:0})]})}),(0,a.jsx)(d.d,{strokeDasharray:"3 3",strokeOpacity:.2}),(0,a.jsx)(n.W,{dataKey:"date",tick:{fontSize:11},tickFormatter:e=>e.slice(5)}),(0,a.jsx)(o.h,{tick:{fontSize:11},tickFormatter:p,width:48}),(0,a.jsx)(x.m,{formatter:e=>[p(e),"Tokens saved"],labelFormatter:e=>e}),(0,a.jsx)(c.Gk,{type:"monotone",dataKey:"tokensSavedEst",stroke:"#10b981",fill:"url(#gradPxpipe)",strokeWidth:2})]})}):(0,a.jsx)("div",{className:"h-32 flex items-center justify-center text-text-muted text-sm",children:"No savings recorded yet — enable PXPIPE in the Token Saver and route a large Claude-format request."})]}),(0,a.jsxs)(m.Zp,{className:"p-4",children:[(0,a.jsx)("h3",{className:"font-medium mb-3",children:"History"}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full text-sm",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"text-left text-xs text-text-muted border-b border-border",children:[(0,a.jsx)("th",{className:"py-2 pr-3",children:"Time"}),(0,a.jsx)("th",{className:"py-2 pr-3",children:"Model"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Original"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Compressed"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Saved"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"%"}),(0,a.jsx)("th",{className:"py-2 pr-3 text-right",children:"Duration"}),(0,a.jsx)("th",{className:"py-2",children:"Status"})]})}),(0,a.jsxs)("tbody",{children:[(b?.recent||[]).slice(0,50).map((e,t)=>(0,a.jsxs)("tr",{className:"border-b border-border/50",children:[(0,a.jsx)("td",{className:"py-1.5 pr-3 whitespace-nowrap text-text-muted",children:new Date(e.ts).toLocaleString()}),(0,a.jsx)("td",{className:"py-1.5 pr-3 font-mono text-xs",children:e.provider?`${e.provider}/${e.model}`:e.model||"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:e.applied?p(e.tokensBeforeEst):"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:e.applied?p(e.tokensAfterEst):"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs text-success",children:e.applied?p(e.tokensSavedEst):"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:e.applied?`${e.savedPct}%`:"—"}),(0,a.jsx)("td",{className:"py-1.5 pr-3 text-right font-mono text-xs",children:null!=e.durationMs?`${e.durationMs}ms`:"—"}),(0,a.jsx)("td",{className:"py-1.5",children:(0,a.jsx)("span",{className:`text-xs px-2 py-0.5 rounded ${e.applied?"bg-success/15 text-success":"transform_error"===e.reason||"timeout"===e.reason?"bg-danger/15 text-danger":"bg-warning/15 text-warning"}`,title:e.detail||"",children:e.applied?"Compressed":u[e.reason]||e.reason})})]},`${e.ts}-${t}`)),(!b?.recent||0===b.recent.length)&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:8,className:"py-6 text-center text-text-muted text-sm",children:"No PXPIPE activity yet"})})]})]})})]}),(0,a.jsxs)(m.Zp,{className:"p-4",id:"logs",children:[(0,a.jsx)("h3",{className:"font-medium mb-3",children:"PXPIPE Logs"}),N?.installLog?(0,a.jsx)("pre",{className:"rounded bg-black/5 dark:bg-white/5 p-3 text-xs font-mono overflow-x-auto max-h-64 overflow-y-auto whitespace-pre-wrap",children:N.installLog}):(0,a.jsx)("p",{className:"text-sm text-text-muted",children:"No install log yet."})]})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=61838)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3826],{75095:(e,t,a)=>{"use strict";a.d(t,{default:()=>P});var r=a(95155),n=a(12115),s=a(57250),i=a(42793);function l(e,t){return t&&0!==t?!e||e<0?100:e>=t?0:Math.round((t-e)/t*100):0}function o(e,t){if(!t||"object"!=typeof t)return[];let a=[];try{switch(e.toLowerCase()){case"github":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"antigravity":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:t.displayName||e,modelKey:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,remainingPercentage:t.remainingPercentage})});break;case"codex":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:e,used:t.used||0,total:t.total||0,remaining:t.remaining,resetAt:t.resetAt||null})});break;case"kiro":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"qoder":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{("organization"!==e||t&&0!==(Number(t.total)||0))&&a.push({name:"user"===e?"Personal":"organization"===e?"Organization":e,used:t.used||0,total:t.total||0,unit:t.unit,resetAt:t.resetAt||null})});break;case"autoclaw":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:"points"===e?"Points":e,used:t.used||0,total:t.total||0,unit:t.unit,resetAt:t.resetAt||null})});break;case"claude":t.message?a.push({name:"error",used:0,total:0,resetAt:null,message:t.message}):t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null})});break;case"grok-cli":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{let r=!0===t.unlimited||!(t.total>0)&&t.remainingPercentage>0;a.push({name:e,used:t.used||0,total:r?0:t.total||0,resetAt:t.resetAt||null,remainingPercentage:null!=t.remainingPercentage?t.remainingPercentage:r?100:void 0,unlimited:r})});break;case"cloudflare-ai":t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{let r=!0===t.unlimited||!(t.total>0);a.push({name:e,used:t.used||0,total:r?0:t.total||0,resetAt:t.resetAt||null,remainingPercentage:null!=t.remainingPercentage?t.remainingPercentage:100*!!r,unlimited:r})});break;default:t.quotas&&Object.entries(t.quotas).forEach(([e,t])=>{a.push({name:e,used:t.used||0,total:t.total||0,resetAt:t.resetAt||null,...null!=t.remainingPercentage?{remainingPercentage:t.remainingPercentage}:{},...!0===t.unlimited?{unlimited:!0}:{}})})}}catch(t){return console.error(`Error parsing quota data for ${e}:`,t),[]}let r=(0,i.KC)(e);if(r.length>0){let e=new Map(r.map((e,t)=>[e.id,t]));a.sort((t,a)=>{let r=t.modelKey||t.name,n=a.modelKey||a.name;return(e.get(r)??999)-(e.get(n)??999)})}return a}function c({quotas:e=[],compact:t=!1,sortMode:a="default",showSortLabel:s=!1}){let[i,o]=(0,n.useState)(1),d=(0,n.useMemo)(()=>e.map((e,t)=>({...e,index:t,remaining:function(e){if(e?.unlimited===!0)return e?.remainingPercentage!==void 0&&Number.isFinite(Number(e.remainingPercentage))?Math.max(0,Math.min(100,Math.round(Number(e.remainingPercentage)))):100;if(e?.remainingPercentage!==void 0&&Number.isFinite(Number(e.remainingPercentage)))return Math.max(0,Math.min(100,Math.round(Number(e.remainingPercentage))));if(e?.remaining!==void 0&&Number.isFinite(Number(e.remaining))){let t=Number(e.remaining);if(t>=0&&t<=100&&!(e.total>100&&t<=100&&null!=e.used))return e.total>0?l(e.used,e.total):Math.round(t)}return l(e?.used,e?.total)}(e)})),[e]),u=(0,n.useMemo)(()=>"remaining-asc"===a?[...d].sort((e,t)=>e.remaining-t.remaining||e.name.localeCompare(t.name)):"remaining-desc"===a?[...d].sort((e,t)=>t.remaining-e.remaining||e.name.localeCompare(t.name)):d,[d,a]),m=Math.max(1,Math.ceil(u.length/10));if((0,n.useEffect)(()=>{o(1)},[a,e]),(0,n.useEffect)(()=>{o(e=>Math.min(e,m))},[m]),!e||0===e.length)return null;let x=u.slice((i-1)*10,10*i),h=0===u.length?0:(i-1)*10+1,b=Math.min(10*i,u.length),p=t?"py-1 px-1.5":"py-2 px-3",g=t?"text-[11px]":"text-sm",f=t?"text-[11px]":"text-sm",v=t?"text-[10px] leading-tight":"text-xs";return(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"text-[10px] text-text-muted",children:[u.length," quota",u.length>1?"s":""]}),s&&(0,r.jsx)("div",{className:"rounded-md border border-black/10 bg-black/[0.02] px-2 py-1 text-[10px] text-text-muted dark:border-white/10 dark:bg-white/[0.03]",children:"Sorted by account remaining"})]}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsx)("table",{className:"w-full table-fixed text-left",children:(0,r.jsx)("tbody",{children:x.map(e=>{var a;let n=(a=e.remaining)>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:a>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},s=function(e){if(!e)return"-";try{let t="string"==typeof e?new Date(e):e,a=new Date,r=t-a;if(r<=0)return"-";let n=Math.ceil(r/6e4);if(n<60)return`${n}m`;let s=Math.floor(n/60),i=n%60;if(s<24)return`${s}h ${i}m`;let l=Math.floor(s/24);return`${l}d ${s%24}h ${i}m`}catch(e){return"-"}}(e.resetAt),i=function(e){if(!e)return null;try{let t=new Date(e),a=new Date,r=new Date(a.getFullYear(),a.getMonth(),a.getDate()),n=new Date(r);n.setDate(n.getDate()+1);let s="";s=t>=r&&t<n?"Today":t>=n&&t<new Date(n.getTime()+864e5)?"Tomorrow":t.toLocaleDateString("en-US",{month:"short",day:"numeric"});let i=t.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0});return`${s}, ${i}`}catch{return null}}(e.resetAt);return(0,r.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,r.jsx)("td",{className:`${p} w-[30%]`,children:(0,r.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,r.jsx)("span",{className:"text-[10px] shrink-0",children:n.emoji}),(0,r.jsx)("span",{className:`${g} font-medium text-text-primary truncate`,children:e.name})]})}),(0,r.jsx)("td",{className:`${p} w-[45%]`,children:(0,r.jsxs)("div",{className:t?"space-y-1":"space-y-1.5",children:[(0,r.jsx)("div",{className:`${t?"h-1":"h-1.5"} rounded-full overflow-hidden border ${n.bgLight} ${0===e.remaining?"border-black/10 dark:border-white/10":"border-transparent"}`,children:(0,r.jsx)("div",{className:`h-full transition-all duration-300 ${n.bg}`,style:{width:`${Math.min(e.remaining,100)}%`}})}),(0,r.jsxs)("div",{className:`flex items-center justify-between ${t?"text-[10px]":"text-xs"}`,children:[(0,r.jsx)("span",{className:"text-text-muted",children:!0!==e.unlimited&&e.total>0?`${e.used.toLocaleString()} / ${e.total.toLocaleString()}`:!0===e.unlimited?"Included / ∞":`${e.used.toLocaleString()} / ∞`}),(0,r.jsx)("span",{className:`font-medium ${n.text}`,children:Number.isFinite(e.remaining)?`${e.remaining}%`:"—"})]})]})}),(0,r.jsx)("td",{className:`${p} w-[25%]`,children:"-"!==s||i?t?(0,r.jsx)("div",{className:`${f} text-text-primary font-medium truncate`,title:i||"",children:"-"!==s?`in ${s}`:i}):(0,r.jsxs)("div",{className:"space-y-0.5",children:["-"!==s&&(0,r.jsxs)("div",{className:`${f} text-text-primary font-medium`,children:["in ",s]}),i&&(0,r.jsx)("div",{className:`${v} text-text-muted`,children:i})]}):(0,r.jsx)("div",{className:`${f} text-text-muted italic`,children:"N/A"})})]},`${e.name}-${e.index}`)})})})}),m>1&&(0,r.jsxs)("div",{className:"rounded-md border border-black/10 bg-black/[0.02] px-2 py-1.5 dark:border-white/10 dark:bg-white/[0.03]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2 text-[10px] text-text-muted",children:[(0,r.jsxs)("span",{children:["Showing ",h,"-",b," of ",u.length]}),(0,r.jsxs)("span",{children:["Page ",i," / ",m]})]}),(0,r.jsxs)("div",{className:"mt-1.5 flex items-center justify-end gap-1",children:[(0,r.jsx)("button",{type:"button",onClick:()=>o(e=>Math.max(1,e-1)),disabled:1===i,className:"flex h-6 items-center rounded-md border border-black/10 px-2 text-[10px] text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Prev"}),(0,r.jsx)("button",{type:"button",onClick:()=>o(e=>Math.min(m,e+1)),disabled:i===m,className:"flex h-6 items-center rounded-md border border-black/10 px-2 text-[10px] text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Next"})]})]})]})}var d=a(98542),u=a(84588),m=a(35497),x=a(52679);function h(e){let t=e=>"string"==typeof e&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);return t(e.email)?e.email:(t(e.name),e.name)}function b(e,t){let a=t[e.id]?.quotas?.[0];return a&&"number"==typeof a.remaining?a.remaining:1/0}function p(e){return x.Q2[e]?.name||e}function g(e){let t={};return e.forEach(e=>{t[e.id]=!0}),t}function f(e,t){let a=new Set(t.map(e=>e.id));return Object.fromEntries(Object.entries(e).filter(([e])=>a.has(e)))}async function v(e,t){return await e(t)}let y="quotaCacheData";function k(){try{let e=window.localStorage.getItem(y);return e?JSON.parse(e):{}}catch(e){return console.error("Error reading quota cache:",e),{}}}function w(e,t){try{let a=k();a[e]={...t,cachedAt:new Date().toISOString()},window.localStorage.setItem(y,JSON.stringify(a))}catch(e){console.error("Error writing quota cache:",e)}}let j="quotaAutoRefresh",N=[{value:"all",label:"All accounts"},{value:"active",label:"Active"},{value:"inactive",label:"Turned off"}],S=[{value:"single",label:"Satuan",icon:"account_circle"},{value:"bulk",label:"Bulk",icon:"stacks"}],C=[{value:"default",label:"Default quota order"},{value:"remaining-asc",label:"% quota: low to high"},{value:"remaining-desc",label:"% quota: high to low"}],$=[10,20,50,100];function P(){let[e,t]=(0,n.useState)([]),[a,i]=(0,n.useState)({}),[P,A]=(0,n.useState)({}),[q,E]=(0,n.useState)({}),[M,D]=(0,n.useState)(!0),[O,I]=(0,n.useState)(null),[T,_]=(0,n.useState)(!1),[F,L]=(0,n.useState)(!1),[z,U]=(0,n.useState)(60),[R,J]=(0,n.useState)(!0),[K,B]=(0,n.useState)(null),[Q,W]=(0,n.useState)(null),[G,H]=(0,n.useState)(!1),[Y,V]=(0,n.useState)(null),[X,Z]=(0,n.useState)([]),[ee,et]=(0,n.useState)("all"),[ea,er]=(0,n.useState)([]),[en,es]=(0,n.useState)("single"),[ei,el]=(0,n.useState)("all"),[eo,ec]=(0,n.useState)("default"),[ed,eu]=(0,n.useState)(!1),[em,ex]=(0,n.useState)(!1),[eh,eb]=(0,n.useState)(!1),[ep,eg]=(0,n.useState)({}),[ef,ev]=(0,n.useState)({}),[ey,ek]=(0,n.useState)(1),[ew,ej]=(0,n.useState)(20),[eN,eS]=(0,n.useState)(String(20)),[eC,e$]=(0,n.useState)({page:1,pageSize:20,total:0,totalPages:1}),[eP,eA]=(0,n.useState)({eligibleConnections:0,providerFilteredConnections:0}),eq=(0,n.useRef)(null),eE=(0,n.useRef)(null),eM=(0,n.useCallback)(async(e=ey)=>{try{var a,r;let n=new URLSearchParams({page:String(e),pageSize:String(ew),accountStatus:ei,sort:"priority"});"all"!==ee&&n.set("provider",ee);let s=await fetch(`/api/providers/client?${n.toString()}`);if(!s.ok)throw Error("Failed to fetch connections");let i=await s.json(),l=i.connections||[],o=(a=i.pagination,a||{page:1,pageSize:ew,total:0,totalPages:1}),c=function(e,t=0){return e||{eligibleConnections:t,providerFilteredConnections:t}}(i.totals,l.length);return t(l),er(i.providerOptions||[]),e$(o),eA(c),ek((r=i.pagination,r?.page||e)),l}catch(e){return console.error("Error fetching connections:",e),t([]),er([]),e$({page:1,pageSize:ew,total:0,totalPages:1}),eA({eligibleConnections:0,providerFilteredConnections:0}),[]}},[ei,ey,ew,ee]),eD=(0,n.useCallback)(async(e,t,a=!1)=>{A(t=>({...t,[e]:!0})),E(t=>({...t,[e]:null}));try{console.log(`[ProviderLimits] Fetching quota for ${t} (${e})`);let r=await fetch(`/api/usage/${e}${a?"?refresh=1":""}`);if(!r.ok){let a=(await r.json().catch(()=>({}))).error||r.statusText;if(404===r.status)return void console.warn(`[ProviderLimits] Connection not found for ${t}, skipping`);if(401===r.status){console.warn(`[ProviderLimits] Auth error for ${t}:`,a);let r={quotas:[],message:a};i(t=>({...t,[e]:r})),w(e,r);return}throw Error(`HTTP ${r.status}: ${a}`)}let n=await r.json();console.log(`[ProviderLimits] Got quota for ${t}:`,n);let s={quotas:o(t,n),plan:n.plan||null,message:n.message||null,raw:n};i(t=>({...t,[e]:s})),w(e,s)}catch(a){console.error(`[ProviderLimits] Error fetching quota for ${t} (${e}):`,a),E(t=>({...t,[e]:a.message||"Failed to fetch quota"}))}finally{A(t=>({...t,[e]:!1}))}},[]),eO=(0,n.useCallback)(async(e,t)=>{await eD(e,t),I(new Date)},[eD]),eI=(0,n.useCallback)(async(e,t=!1)=>{if(e&&"all"!==e){ev(t=>({...t,[e]:!0}));try{let a=`/api/usage/aggregate?provider=${encodeURIComponent(e)}${t?"&refresh=1":""}`,r=await fetch(a);if(!r.ok)throw Error("Failed to fetch aggregate");let n=await r.json(),s=o(e,n);eg(t=>({...t,[e]:{quotas:s,plan:n.plan||null,accountCount:n.accountCount||0,accountsWithQuota:n.accountsWithQuota||0,deadCount:n.deadCount||0}}))}catch(t){console.error(`[ProviderLimits] Aggregate fetch error for ${e}:`,t)}finally{ev(t=>({...t,[e]:!1}))}}},[]),eT=(0,n.useCallback)(async(e,t)=>{if("bulk"===en&&t){await eI(t,!0),I(new Date);return}e?.length&&(A(t=>({...t,...Object.fromEntries(e.map(e=>[e,!0]))})),await Promise.all(e.map(e=>eD(e,t))),I(new Date))},[eD,en,eI]),e_=(0,n.useCallback)(async e=>{if(confirm("Delete this connection?")){B(e);try{if((await fetch(`/api/providers/${e}`,{method:"DELETE"})).ok){i(t=>{let a={...t};return delete a[e],a}),A(t=>{let a={...t};return delete a[e],a}),E(t=>{let a={...t};return delete a[e],a});try{let t=k();t[e]&&(delete t[e],window.localStorage.setItem(y,JSON.stringify(t)))}catch(e){console.error("Error deleting cache entry:",e)}await v(eM,ey)}}catch(e){console.error("Error deleting connection:",e)}finally{B(null)}}},[eM,ey]),eF=(0,n.useCallback)(async(e,t)=>{W(e);try{(await fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})})).ok&&(i(e=>({...e})),await v(eM,ey))}catch(e){console.error("Error updating connection status:",e)}finally{W(null)}},[eM,ey]),eL=(0,n.useCallback)(async e=>{if(!Y?.id)return;let t=Y.id,a=Y.provider;try{(await fetch(`/api/providers/${t}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).ok&&(await eM(),H(!1),V(null),x.wb.includes(a)&&await eD(t,a))}catch(e){console.error("Error saving connection:",e)}},[Y,eM,eD]);(0,n.useEffect)(()=>{let e=!1;return fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}).then(e=>e.json()).then(t=>{!e&&t?.proxyPools&&Z(t.proxyPools)}).catch(()=>{}),()=>{e=!0}},[]);let ez=(0,n.useCallback)(async()=>{if(!F){L(!0),U(60);try{let e=await eM(ey);A(g(e)),E(t=>f(t,e)),i(t=>f(t,e)),await Promise.all(e.map(e=>eD(e.id,e.provider,!0))),"bulk"===en&&("all"!==ee?[ee]:ea.map(e=>e.value||e).filter(e=>"all"!==e)).forEach(e=>eI(e,!0)),I(new Date)}catch(e){console.error("Error refreshing all providers:",e)}finally{L(!1)}}},[F,eM,eD,ey,en,ee,ea,eI]);(0,n.useEffect)(()=>{(async()=>{J(!0);let e=await eM(ey);J(!1),A(g(e)),E(t=>f(t,e)),i(t=>f(t,e)),await Promise.all(e.map(e=>eD(e.id,e.provider))),I(new Date)})()},[eM,eD,ey]),(0,n.useEffect)(()=>{"bulk"!==en||("all"!==ee?[ee]:ea.map(e=>e.value||e).filter(e=>"all"!==e)).forEach(e=>eI(e))},[en,ee,ea,eI]),(0,n.useEffect)(()=>{let e=window.localStorage.getItem(j);D(null===e||"true"===e),_(!0)},[]),(0,n.useEffect)(()=>{T&&window.localStorage.setItem(j,String(M))},[M,T]),(0,n.useEffect)(()=>{if(!T||!M){eq.current&&(clearInterval(eq.current),eq.current=null),eE.current&&(clearInterval(eE.current),eE.current=null);return}return eq.current=setInterval(()=>{ez()},6e4),eE.current=setInterval(()=>{U(e=>e<=1?60:e-1)},1e3),()=>{eq.current&&clearInterval(eq.current),eE.current&&clearInterval(eE.current)}},[M,ez,T]),(0,n.useEffect)(()=>{let e=()=>{document.hidden?(eq.current&&(clearInterval(eq.current),eq.current=null),eE.current&&(clearInterval(eE.current),eE.current=null)):M&&T&&(eq.current=setInterval(ez,6e4),eE.current=setInterval(()=>{U(e=>e<=1?60:e-1)},1e3))};return document.addEventListener("visibilitychange",e),()=>{document.removeEventListener("visibilitychange",e)}},[M,ez,T]);let eU=(0,n.useMemo)(()=>(function(e,t,a,r,n){if("codex"===r&&"default"!==n)return[...e].sort((e,a)=>{let r=b(e,t),s=b(a,t),i="remaining-asc"===n?r-s:s-r;return 0!==i?i:(h(e)||"").localeCompare(h(a)||"")});if(!a)return e;let s=e=>{let a=(t[e.id]?.quotas||[]).map(e=>e.resetAt?new Date(e.resetAt).getTime():1/0).filter(e=>Number.isFinite(e));return a.length>0?Math.min(...a):1/0};return[...e].sort((e,t)=>{let a=s(e)-s(t);return 0!==a?a:(e.provider||"").localeCompare(t.provider||"")||(h(e)||"").localeCompare(h(t)||"")})})(e,a,ed,ee,eo),[e,a,ed,ee,eo]),eR=(0,n.useMemo)(()=>{let e;return e=new Map,eU.forEach(t=>{t.provider&&(e.has(t.provider)||e.set(t.provider,[]),e.get(t.provider).push(t))}),[...e.entries()].map(([e,t])=>(function(e,t,a,r,n){if(!t.length)return null;let s=[],i=[],l=null,o=!1;return t.forEach(e=>{let t=a[e.id];Array.isArray(t?.quotas)&&s.push(...t.quotas),t?.message&&!l&&(l=t.message),n[e.id]&&i.push(n[e.id]),r[e.id]&&(o=!0)}),{id:`${e}-aggregate`,provider:e,name:p(e),email:`${t.length} accounts`,isActive:t.some(e=>e.isActive??!0),isAggregate:!0,quota:{quotas:function(e=[]){let t=new Map;return e.forEach(e=>{if(!e?.name)return;let a=t.get(e.name)||{name:e.name,used:0,total:0,resetAt:e.resetAt||null,remainingPercentage:null,unlimited:!1,_pctSum:0,_pctCount:0};a.used+=Number(e.used)||0,a.total+=Number(e.total)||0,!0===e.unlimited&&(a.unlimited=!0),null!=e.remainingPercentage&&Number.isFinite(Number(e.remainingPercentage))&&(a._pctSum+=Number(e.remainingPercentage),a._pctCount+=1),e.resetAt&&(!a.resetAt||new Date(e.resetAt).getTime()<new Date(a.resetAt).getTime())&&(a.resetAt=e.resetAt),t.set(e.name,a)}),[...t.values()].map(e=>{let{_pctSum:t,_pctCount:a,...r}=e;return r.unlimited?(r.remainingPercentage=100,r.total=0):r.total>0?r.remainingPercentage=(r.total-r.used)/r.total*100:a>0?r.remainingPercentage=t/a:r.remainingPercentage=0,r})}(s),message:0===s.length&&l||null},isLoading:o,error:!s.length&&i.length>0?i[0]:null,connectionIds:t.map(e=>e.id)}})(e,t,a,P,q)).filter(Boolean)},[eU,a,P,q]),eJ=(0,n.useMemo)(()=>Object.keys(ep).length?eR.map(e=>{let t=ep[e.provider];return t&&t.quotas?.length?{...e,email:`${t.accountCount||e.connectionIds?.length||0} accounts`,quota:{...e.quota,quotas:t.quotas,message:null},isLoading:ef[e.provider]||!1}:e}):eR,[eR,ep,ef]),eK=(0,n.useMemo)(()=>"bulk"===en?eJ:eU,[en,eJ,eU]),eB=e=>{let t=a[e.id]?.quotas;return!!t?.length&&t.some(e=>!!e.total&&!(e.total<=0)&&5>=l(e.used,e.total))},eQ=(0,n.useCallback)(async(e,t)=>{if(e.length&&!eh){eb(!0);try{await Promise.all(e.map(e=>fetch(`/api/providers/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})}))),await v(eM,ey)}catch(e){console.error("Error bulk toggling connections:",e)}finally{eb(!1)}}},[eh,eM,ey]),eW="all"===ee?"All providers":ee,eG=eP.eligibleConnections>0,eH=eK.length>0,eY=eP.eligibleConnections?eP.providerFilteredConnections?{icon:"filter_alt_off",title:"No Accounts On This Page",description:"Try moving to another page or refreshing the current filters."}:{icon:"filter_alt_off",title:"No Accounts Match Current Filters",description:"all"===ee?"Try changing the account status filter to see more quota trackers.":`No ${"inactive"===ei?"turned off":"active"===ei?"active":"matching"} accounts found for ${ee}.`}:{icon:"cloud_off",title:"No Providers Connected",description:"Connect to providers with OAuth to track your API quota limits and usage."},eV=function(e){var t;let{start:a,end:r}=(t=e).total?{start:(t.page-1)*t.pageSize+1,end:Math.min(t.page*t.pageSize,t.total)}:{start:0,end:0};return`Showing ${a}-${r} of ${e.total}`}(eC),eX=!$.includes(ew);return R||eG?R||eH?(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsx)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-end",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>ex(e=>!e),className:"flex h-8 items-center justify-between gap-1 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-haspopup":"menu","aria-expanded":em,title:"Filter quota providers",children:[(0,r.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:["all"===ee?(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"apps"}):(0,r.jsx)(s.A,{src:`/providers/${ee}.png`,alt:ee,size:18,className:"size-[18px] rounded object-contain",fallbackText:ee.slice(0,2).toUpperCase()}),(0,r.jsx)("span",{className:"truncate capitalize hidden lg:inline",children:eW})]}),(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"expand_more"})]}),em&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",className:"fixed inset-0 z-30 bg-transparent","aria-label":"Close provider filter",onClick:()=>ex(!1)}),(0,r.jsxs)("div",{className:"absolute left-0 z-40 mt-2 w-64 overflow-hidden rounded-2xl border border-black/10 bg-surface/95 p-1.5 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10 dark:bg-surface/95 sm:w-72",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{"all"!==ee&&ek(1),et("all"),ex(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${"all"===ee?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[22px]",children:"apps"}),(0,r.jsx)("span",{className:"font-medium",children:"All providers"}),"all"===ee&&(0,r.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]}),(0,r.jsx)("div",{className:"my-1 h-px bg-black/10 dark:bg-white/10"}),(0,r.jsx)("div",{className:"max-h-72 overflow-y-auto pr-1",children:ea.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>{ee!==e&&ek(1),et(e),ex(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${ee===e?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,r.jsx)(s.A,{src:`/providers/${e}.png`,alt:e,size:24,className:"size-6 rounded-md object-contain",fallbackText:e.slice(0,2).toUpperCase()}),(0,r.jsx)("span",{className:"font-medium capitalize",children:e}),ee===e&&(0,r.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]},e))})]})]})]}),(0,r.jsx)("div",{className:"inline-flex h-8 overflow-hidden rounded-lg border border-black/10 bg-black/[0.02] dark:border-white/10 dark:bg-white/[0.03]",children:S.map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>es(e.value),"aria-pressed":en===e.value,className:`flex h-full items-center gap-1.5 px-2 text-xs transition-colors ${en===e.value?"bg-primary text-white":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,title:`Show quota in ${e.label} mode`,children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:e.icon}),(0,r.jsx)("span",{className:"hidden sm:inline",children:e.label})]},e.value))}),(0,r.jsx)("select",{value:ei,onChange:e=>{let t=e.target.value;ei!==t&&ek(1),el(t)},className:"h-8 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-label":"Filter accounts by status",children:N.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}),"codex"===ee&&(0,r.jsx)("select",{value:eo,onChange:e=>ec(e.target.value),className:"h-8 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-label":"Sort Codex quotas by remaining",children:C.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,r.jsxs)("button",{type:"button",onClick:()=>eu(e=>!e),"aria-pressed":ed,className:`flex h-8 shrink-0 items-center gap-1 rounded-lg border px-2 text-xs transition-colors ${ed?"border-amber-500/40 bg-amber-500/10 text-amber-500":"border-black/10 text-text-primary hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5"}`,title:"Sort accounts by earliest quota reset time",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"hourglass_top"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Expiring first"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{eQ(eU.filter(e=>(e.isActive??!0)&&eB(e)).map(e=>e.id),!1)},disabled:eh,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-red-500/30 px-2 text-xs text-red-500 transition-colors hover:bg-red-500/10 disabled:opacity-50",title:"Disable connections with depleted quota on the current page",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"block"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Turn off Empty"})]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{eQ(eU.filter(e=>!(e.isActive??!0)&&!eB(e)).map(e=>e.id),!0)},disabled:eh,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-emerald-500/30 px-2 text-xs text-emerald-500 transition-colors hover:bg-emerald-500/10 disabled:opacity-50",title:"Enable connections that still have quota on the current page",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"}),(0,r.jsx)("span",{className:"hidden sm:inline",children:"Turn on Available"})]}),(0,r.jsxs)("button",{onClick:()=>D(e=>!e),className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5",title:M?"Disable auto-refresh":"Enable auto-refresh",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[14px] ${M?"text-primary":"text-text-muted"}`,children:M?"toggle_on":"toggle_off"}),(0,r.jsx)("span",{className:"hidden text-text-primary sm:inline",children:"Auto-refresh"}),M&&(0,r.jsxs)("span",{className:"text-[10px] text-text-muted tabular-nums",children:["(",z,"s)"]})]}),(0,r.jsx)("button",{type:"button",onClick:ez,disabled:F,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5 disabled:opacity-50",title:"Refresh all",children:(0,r.jsx)("span",{className:`material-symbols-outlined text-[14px] ${F?"animate-spin":""}`,children:"refresh"})})]})}),ed&&(0,r.jsx)("div",{className:"rounded-xl border border-amber-500/20 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-300",children:"Expiring-first currently reorders accounts inside the current page. Cross-page ordering still follows backend pagination."}),(0,r.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:eK.map(e=>{let t=!0===e.isAggregate,n=t?e.quota:a[e.id],i=t?e.isLoading:P[e.id],l=t?e.error:q[e.id],o=!1===e.isActive,m=!t&&(K===e.id||Q===e.id);return(0,r.jsxs)(u.default,{padding:"none",className:`min-w-0 ${o?"opacity-60":""}`,children:[(0,r.jsx)("div",{className:"px-3 py-2 border-b border-black/10 dark:border-white/10",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,r.jsx)("div",{className:"w-8 h-8 shrink-0 rounded-md flex items-center justify-center overflow-hidden",children:(0,r.jsx)(s.A,{src:`/providers/${e.provider}.png`,alt:e.provider,size:32,className:"object-contain",fallbackText:e.provider?.slice(0,2).toUpperCase()||"PR"})}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-text-primary capitalize truncate",children:e.name||p(e.provider)}),h(e)?(0,r.jsx)("p",{className:"text-xs text-text-muted truncate",children:h(e)}):null]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,r.jsx)("button",{type:"button",onClick:()=>t?eT(e.connectionIds,e.provider):eO(e.id,e.provider),disabled:i||m,"aria-label":"Refresh quota",className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 transition-colors disabled:opacity-50",title:"Refresh quota",children:(0,r.jsx)("span",{className:`material-symbols-outlined text-[18px] text-text-muted ${i?"animate-spin":""}`,children:"refresh"})}),!t&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{type:"button",onClick:()=>{V(e),H(!0)},disabled:m,"aria-label":"Edit connection",className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary transition-colors disabled:opacity-50",title:"Edit connection",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,r.jsx)("button",{type:"button",onClick:()=>e_(e.id),disabled:m,"aria-label":"Delete connection",className:"p-1.5 rounded-lg hover:bg-red-500/10 text-red-500 transition-colors disabled:opacity-50",title:"Delete connection",children:(0,r.jsx)("span",{className:`material-symbols-outlined text-[18px] ${K===e.id?"animate-pulse":""}`,children:"delete"})}),(0,r.jsx)("div",{className:"inline-flex items-center pl-0.5",title:e.isActive??!0?"Disable connection":"Enable connection",children:(0,r.jsx)(d.default,{size:"sm",checked:e.isActive??!0,disabled:m,onChange:t=>eF(e.id,t)})})]})]})]})}),(0,r.jsx)("div",{className:"px-2 py-1.5",children:i?(0,r.jsx)("div",{className:"text-center py-5 text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[28px] animate-spin",children:"progress_activity"})}):l?(0,r.jsxs)("div",{className:"text-center py-5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[28px] text-red-500",children:"error"}),(0,r.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:l})]}):n?.quotas?.length>0?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(c,{quotas:n.quotas,compact:!0,sortMode:"default",showSortLabel:"codex"===e.provider&&"default"!==eo}),n?.message?(0,r.jsx)("p",{className:"px-1 text-[10px] text-text-muted",children:n.message}):null]}):n?.message?(0,r.jsx)("div",{className:"text-center py-5",children:(0,r.jsx)("p",{className:"text-xs text-text-muted",children:n.message})}):(0,r.jsx)("div",{className:"text-center py-5 text-text-muted",children:(0,r.jsx)("p",{className:"text-xs",children:"No quota data available"})})})]},e.id)})}),(0,r.jsx)("div",{className:"rounded-xl border border-black/10 bg-black/[0.02] px-3 py-2 dark:border-white/10 dark:bg-white/[0.03]",children:(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,r.jsx)("span",{className:"text-xs text-text-muted",children:eV}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsxs)("select",{value:eX?"custom":String(ew),onChange:e=>{let t=e.target.value;if("custom"===t)return;let a=Number.parseInt(t,10);Number.isFinite(a)&&(ek(1),ej(a),eS(String(a)))},className:"h-8 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-label":"Accounts per page",children:[$.map(e=>(0,r.jsxs)("option",{value:String(e),children:[e," / page"]},e)),(0,r.jsx)("option",{value:"custom",children:"Custom"})]}),(0,r.jsx)("input",{type:"number",min:"1",max:String(500),inputMode:"numeric",value:eN,onChange:e=>eS(e.target.value),onBlur:()=>{let e=Number.parseInt(eN,10);if(!Number.isFinite(e))return void eS(String(ew));let t=Math.min(500,Math.max(1,e));ek(1),ej(t),eS(String(t))},onKeyDown:e=>{if("Enter"!==e.key)return;let t=Number.parseInt(eN,10);if(!Number.isFinite(t))return void eS(String(ew));let a=Math.min(500,Math.max(1,t));ek(1),ej(a),eS(String(a))},className:"h-8 w-20 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary outline-none transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-label":"Custom accounts per page",placeholder:"Custom"}),(0,r.jsxs)("span",{className:"text-xs text-text-muted",children:["Page ",eC.page," / ",eC.totalPages]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,r.jsx)("button",{type:"button",onClick:()=>ek(1),disabled:eC.page<=1||R||F,className:"flex h-8 items-center rounded-lg border border-black/10 px-3 text-xs text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"First Page"}),(0,r.jsx)("button",{type:"button",onClick:()=>ek(e=>Math.max(1,e-1)),disabled:eC.page<=1||R||F,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-black/10 text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5","aria-label":"Previous accounts page",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"chevron_left"})}),(0,r.jsx)("button",{type:"button",onClick:()=>ek(e=>Math.min(eC.totalPages,e+1)),disabled:eC.page>=eC.totalPages||R||F,className:"flex h-8 w-8 items-center justify-center rounded-lg border border-black/10 text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5","aria-label":"Next accounts page",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"chevron_right"})}),(0,r.jsx)("button",{type:"button",onClick:()=>ek(eC.totalPages),disabled:eC.page>=eC.totalPages||R||F,className:"flex h-8 items-center rounded-lg border border-black/10 px-3 text-xs text-text-primary transition-colors hover:bg-black/5 disabled:cursor-not-allowed disabled:opacity-40 dark:border-white/10 dark:hover:bg-white/5",children:"Last Page"})]})]})}),(0,r.jsx)(m.wI,{isOpen:G,connection:Y,proxyPools:X,onSave:eL,onClose:()=>{H(!1),V(null)}})]}):(0,r.jsx)(u.default,{padding:"lg",children:(0,r.jsxs)("div",{className:"text-center py-12",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[64px] text-text-muted opacity-20",children:eY.icon}),(0,r.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-primary",children:eY.title}),(0,r.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-md mx-auto",children:eY.description})]})}):(0,r.jsx)(u.default,{padding:"lg",children:(0,r.jsxs)("div",{className:"text-center py-12",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[64px] text-text-muted opacity-20",children:"cloud_off"}),(0,r.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-primary",children:"No Providers Connected"}),(0,r.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-md mx-auto",children:"Connect to providers with OAuth to track your API quota limits and usage."})]})})}},79326:(e,t,a)=>{Promise.resolve().then(a.bind(a,75095)),Promise.resolve().then(a.bind(a,25086))}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=79326)),_N_E=e.O()}]);
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3570],{7364:(e,t,r)=>{"use strict";r.d(t,{D:()=>c});var n=r(34023),a=r(77813);function s(e){let t=window.matchMedia("(prefers-color-scheme: dark)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function l(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function i(){return!1}function c(){let{theme:e,setTheme:t,toggleTheme:r,initTheme:c}=(0,a.A)(),o=(0,n.useSyncExternalStore)(s,l,i);(0,n.useEffect)(()=>{c()},[c]),(0,n.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>c();return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e,c]);let d="dark"===e||"system"===e&&o;return{theme:e,setTheme:t,toggleTheme:r,isDark:d}}},46085:(e,t,r)=>{"use strict";r.d(t,{default:()=>u});var n=r(94799),a=r(34023),s=r(53060),l=r(81716),i=r(28292),c=r(7364);r(69311);let o="#E56A4A",d={light:{background:"#f7f7f6",foreground:"#262626",cursor:o,cursorAccent:"#f7f7f6",selectionBackground:"rgba(229, 106, 74, 0.25)",black:"#262626",red:"#b91c1c",green:"#15803d",yellow:"#a16207",blue:"#1d4ed8",magenta:"#7e22ce",cyan:"#0e7490",white:"#e5e5e5",brightBlack:"#737373",brightRed:"#dc2626",brightGreen:"#16a34a",brightYellow:"#ca8a04",brightBlue:"#2563eb",brightMagenta:"#9333ea",brightCyan:"#0891b2",brightWhite:"#fafafa"},dark:{background:"#0d0d0d",foreground:"#e8e8e8",cursor:o,cursorAccent:"#0d0d0d",selectionBackground:"rgba(229, 106, 74, 0.35)",black:"#1a1a1a",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#22d3ee",white:"#e5e5e5",brightBlack:"#737373",brightRed:"#fca5a5",brightGreen:"#86efac",brightYellow:"#fde68a",brightBlue:"#93c5fd",brightMagenta:"#d8b4fe",brightCyan:"#67e8f9",brightWhite:"#fafafa"}};function u(){let{isDark:e}=(0,c.D)(),t=(0,a.useRef)(e),r=(0,a.useRef)(null),o=(0,a.useRef)(null),u=(0,a.useRef)(null),m=(0,a.useRef)(""),h=(0,a.useRef)(""),b=(0,a.useRef)(null),f=(0,a.useRef)([]),x=(0,a.useRef)(null),p=(0,a.useRef)(!1),g=(0,a.useRef)(""),[w,y]=(0,a.useState)("checking"),[k,v]=(0,a.useState)(""),[j,N]=(0,a.useState)(!1),[E,C]=(0,a.useState)(""),[S,A]=(0,a.useState)(""),[L,T]=(0,a.useState)("connecting"),[R,O]=(0,a.useState)("Starting shell…"),[F,$]=(0,a.useState)({shell:"",mode:""}),D=(0,a.useCallback)(async()=>{v("");try{let e=await fetch("/api/terminal/auth/status",{cache:"no-store",credentials:"same-origin"}),t=await e.json().catch(()=>({}));if(403===e.status){v(t?.error||"Access forbidden."),y("unlock");return}if(401===e.status){v("Log in to the dashboard first."),y("unlock");return}if(!t.configured)return void y("setup");if(t.unlocked)return void y("open");y("unlock")}catch(e){v(e?.message||"Failed to check terminal lock"),y("unlock")}},[]);(0,a.useEffect)(()=>{D()},[D]);let M=async e=>{e.preventDefault(),N(!0),v("");try{let e=await fetch("/api/terminal/auth/setup",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({password:E,confirm:S})}),t=await e.json().catch(()=>({}));if(!e.ok)return void v(t.error||"Setup failed");C(""),A(""),y("open")}catch(e){v(e?.message||"Setup failed")}finally{N(!1)}},z=async e=>{e.preventDefault(),N(!0),v("");try{let e=await fetch("/api/terminal/auth/unlock",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({password:E})}),t=await e.json().catch(()=>({}));if(!e.ok)return void v(t.error||"Unlock failed");C(""),y("open")}catch(e){v(e?.message||"Unlock failed")}finally{N(!1)}},P=async()=>{try{await fetch("/api/terminal/auth/unlock",{method:"DELETE",credentials:"same-origin"})}catch{}let e=m.current;if(m.current="",e&&fetch(`/api/terminal/session/${e}`,{method:"DELETE",credentials:"same-origin",keepalive:!0}).catch(()=>{}),b.current){try{b.current.close()}catch{}b.current=null}C(""),y("unlock")},B=(0,a.useCallback)(async()=>{let e=m.current;if(!e||0===f.current.length)return;let t=f.current.join("");f.current=[];try{let r=await fetch(`/api/terminal/session/${e}/input`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t}),cache:"no-store",credentials:"same-origin"});!r.ok&&o.current&&(423===r.status?(o.current.write("\r\n\x1b[31m[terminal locked]\x1b[0m\r\n"),y("unlock")):(403===r.status||401===r.status)&&o.current.write(`\r
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3570],{1620:(e,t,r)=>{"use strict";r.d(t,{D:()=>c});var n=r(12115),a=r(90085);function s(e){let t=window.matchMedia("(prefers-color-scheme: dark)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function l(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function i(){return!1}function c(){let{theme:e,setTheme:t,toggleTheme:r,initTheme:c}=(0,a.A)(),o=(0,n.useSyncExternalStore)(s,l,i);(0,n.useEffect)(()=>{c()},[c]),(0,n.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>c();return t.addEventListener("change",r),()=>t.removeEventListener("change",r)},[e,c]);let d="dark"===e||"system"===e&&o;return{theme:e,setTheme:t,toggleTheme:r,isDark:d}}},35765:(e,t,r)=>{"use strict";r.d(t,{default:()=>u});var n=r(95155),a=r(12115),s=r(8422),l=r(63606),i=r(52414),c=r(1620);r(82407);let o="#E56A4A",d={light:{background:"#f7f7f6",foreground:"#262626",cursor:o,cursorAccent:"#f7f7f6",selectionBackground:"rgba(229, 106, 74, 0.25)",black:"#262626",red:"#b91c1c",green:"#15803d",yellow:"#a16207",blue:"#1d4ed8",magenta:"#7e22ce",cyan:"#0e7490",white:"#e5e5e5",brightBlack:"#737373",brightRed:"#dc2626",brightGreen:"#16a34a",brightYellow:"#ca8a04",brightBlue:"#2563eb",brightMagenta:"#9333ea",brightCyan:"#0891b2",brightWhite:"#fafafa"},dark:{background:"#0d0d0d",foreground:"#e8e8e8",cursor:o,cursorAccent:"#0d0d0d",selectionBackground:"rgba(229, 106, 74, 0.35)",black:"#1a1a1a",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#22d3ee",white:"#e5e5e5",brightBlack:"#737373",brightRed:"#fca5a5",brightGreen:"#86efac",brightYellow:"#fde68a",brightBlue:"#93c5fd",brightMagenta:"#d8b4fe",brightCyan:"#67e8f9",brightWhite:"#fafafa"}};function u(){let{isDark:e}=(0,c.D)(),t=(0,a.useRef)(e),r=(0,a.useRef)(null),o=(0,a.useRef)(null),u=(0,a.useRef)(null),m=(0,a.useRef)(""),h=(0,a.useRef)(""),b=(0,a.useRef)(null),f=(0,a.useRef)([]),x=(0,a.useRef)(null),p=(0,a.useRef)(!1),g=(0,a.useRef)(""),[w,y]=(0,a.useState)("checking"),[k,v]=(0,a.useState)(""),[j,N]=(0,a.useState)(!1),[E,C]=(0,a.useState)(""),[S,A]=(0,a.useState)(""),[L,T]=(0,a.useState)("connecting"),[R,O]=(0,a.useState)("Starting shell…"),[F,$]=(0,a.useState)({shell:"",mode:""}),D=(0,a.useCallback)(async()=>{v("");try{let e=await fetch("/api/terminal/auth/status",{cache:"no-store",credentials:"same-origin"}),t=await e.json().catch(()=>({}));if(403===e.status){v(t?.error||"Access forbidden."),y("unlock");return}if(401===e.status){v("Log in to the dashboard first."),y("unlock");return}if(!t.configured)return void y("setup");if(t.unlocked)return void y("open");y("unlock")}catch(e){v(e?.message||"Failed to check terminal lock"),y("unlock")}},[]);(0,a.useEffect)(()=>{D()},[D]);let M=async e=>{e.preventDefault(),N(!0),v("");try{let e=await fetch("/api/terminal/auth/setup",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({password:E,confirm:S})}),t=await e.json().catch(()=>({}));if(!e.ok)return void v(t.error||"Setup failed");C(""),A(""),y("open")}catch(e){v(e?.message||"Setup failed")}finally{N(!1)}},z=async e=>{e.preventDefault(),N(!0),v("");try{let e=await fetch("/api/terminal/auth/unlock",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"same-origin",body:JSON.stringify({password:E})}),t=await e.json().catch(()=>({}));if(!e.ok)return void v(t.error||"Unlock failed");C(""),y("open")}catch(e){v(e?.message||"Unlock failed")}finally{N(!1)}},P=async()=>{try{await fetch("/api/terminal/auth/unlock",{method:"DELETE",credentials:"same-origin"})}catch{}let e=m.current;if(m.current="",e&&fetch(`/api/terminal/session/${e}`,{method:"DELETE",credentials:"same-origin",keepalive:!0}).catch(()=>{}),b.current){try{b.current.close()}catch{}b.current=null}C(""),y("unlock")},B=(0,a.useCallback)(async()=>{let e=m.current;if(!e||0===f.current.length)return;let t=f.current.join("");f.current=[];try{let r=await fetch(`/api/terminal/session/${e}/input`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:t}),cache:"no-store",credentials:"same-origin"});!r.ok&&o.current&&(423===r.status?(o.current.write("\r\n\x1b[31m[terminal locked]\x1b[0m\r\n"),y("unlock")):(403===r.status||401===r.status)&&o.current.write(`\r
2
2
  \x1b[31m[input blocked: ${r.status}]\x1b[0m\r
3
3
  `))}catch{}},[]),U=(0,a.useCallback)(e=>{e&&m.current&&(f.current.push(e),x.current||(x.current=setTimeout(()=>{x.current=null,B()},8)))},[B]),q=(0,a.useCallback)(e=>{let t=o.current;if(!t)return;let r=h.current;if(!("pipe"===r||!r))return void U(e);if("\x03"===e){g.current="",t.write("^C\r\n"),U("\x03\n");return}if("\r"===e||"\n"===e||"\r\n"===e){let e=g.current;g.current="",t.write("\r\n"),U(`${e}
4
- `);return}if(""===e||"\b"===e){g.current.length>0&&(g.current=g.current.slice(0,-1),t.write("\b \b"));return}32>e.charCodeAt(0)||e.startsWith("\x1b")||(g.current+=e,t.write(e))},[U]),J=(0,a.useCallback)(async()=>{let e=m.current,t=o.current;if(e&&t)try{await fetch(`/api/terminal/session/${e}/resize`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:t.cols,rows:t.rows}),cache:"no-store",credentials:"same-origin"})}catch{}},[]),_=(0,a.useCallback)(()=>{try{o.current?.focus()}catch{}},[]),I=(0,a.useCallback)((e,t)=>{if(b.current)try{b.current.close()}catch{}let r=new EventSource(`/api/terminal/session/${e}/stream`,{withCredentials:!0});b.current=r,r.onopen=()=>{p.current||(T("ready"),O("Connected — click terminal & type"),_())},r.onmessage=e=>{let r;if(!p.current){try{r=JSON.parse(e.data)}catch{return}"data"===r.type&&"string"==typeof r.data?t.write(r.data):"ready"===r.type?(h.current=r.mode||h.current,$({shell:r.shell||"",mode:r.mode||""}),T(!1===r.alive?"closed":"ready"),O(!1===r.alive?"Shell exited":"Connected — click terminal & type"),_()):"exit"===r.type&&(T("closed"),O("Shell exited"),t.write("\r\n\x1b[90m[session ended]\x1b[0m\r\n"))}},r.onerror=()=>{p.current||(T(e=>"ready"===e?"connecting":e),O("Reconnecting…"))}},[_]),W=(0,a.useCallback)(async(e,t)=>{let r;T("connecting"),O("Starting shell…"),g.current="";try{t.fit()}catch{}let n=e.cols||120,a=e.rows||40;try{r=await fetch("/api/terminal/session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:n,rows:a}),cache:"no-store",credentials:"same-origin"})}catch(t){T("error"),O(t?.message||"Failed to reach server"),e.writeln(`\x1b[31mFailed to create session: ${t?.message||"network error"}\x1b[0m`);return}if(403===r.status){T("forbidden"),O("Forbidden"),e.writeln("\x1b[33mTerminal access forbidden.\x1b[0m");return}if(401===r.status){T("error"),O("Unauthorized"),e.writeln("\x1b[31mUnauthorized — log in to the dashboard first.\x1b[0m");return}if(423===r.status){T("error"),O("Locked"),y("unlock");return}let s=await r.json().catch(()=>({}));if(!r.ok||!s?.session?.id){T("error"),O(s?.error||"Create failed"),e.writeln(`\x1b[31m${s?.error||"Failed to create terminal session"}\x1b[0m`);return}m.current=s.session.id,h.current=s.session.mode||"pipe",$({shell:s.session.shell||"",mode:s.session.mode||""}),I(s.session.id,e),_()},[I,_]),Y=(0,a.useCallback)(async()=>{let e=m.current;if(m.current="",h.current="",g.current="",f.current=[],b.current){try{b.current.close()}catch{}b.current=null}e&&fetch(`/api/terminal/session/${e}`,{method:"DELETE",credentials:"same-origin"}).catch(()=>{});let t=o.current,r=u.current;t&&r&&(t.reset(),t.clear(),await W(t,r))},[W]);if((0,a.useEffect)(()=>{if("open"!==w)return;p.current=!1;let e=r.current;if(!e)return;let n=new s.B({cursorBlink:!0,cursorStyle:"bar",fontSize:13,fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',lineHeight:1.25,scrollback:5e3,allowProposedApi:!0,disableStdin:!1,theme:d[t.current?"dark":"light"]}),a=new l.Y,c=new i.c;n.loadAddon(a),n.loadAddon(c),n.open(e);try{e.tabIndex=0;let t=e.querySelector("textarea");t&&(t.tabIndex=0,t.setAttribute("autocomplete","off"),t.setAttribute("spellcheck","false"))}catch{}o.current=n,u.current=a;try{a.fit()}catch{}let h=n.onData(e=>q(e)),f=()=>{try{a.fit(),J()}catch{}},g=()=>_();e.addEventListener("mousedown",g),e.addEventListener("click",g),e.addEventListener("focus",_);let y="u">typeof ResizeObserver?new ResizeObserver(f):null;return y?.observe(e),window.addEventListener("resize",f),requestAnimationFrame(()=>{try{a.fit()}catch{}_()}),W(n,a),()=>{p.current=!0,y?.disconnect(),window.removeEventListener("resize",f),e.removeEventListener("mousedown",g),e.removeEventListener("click",g),e.removeEventListener("focus",_);try{h.dispose()}catch{}if(x.current&&(clearTimeout(x.current),x.current=null),b.current){try{b.current.close()}catch{}b.current=null}let t=m.current;m.current="",t&&fetch(`/api/terminal/session/${t}`,{method:"DELETE",keepalive:!0,credentials:"same-origin"}).catch(()=>{});try{n.dispose()}catch{}o.current=null,u.current=null}},[w,q,J,W,_]),(0,a.useEffect)(()=>{t.current=e,o.current&&(o.current.options.theme=d[e?"dark":"light"])},[e]),"checking"===w)return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full items-center justify-center bg-bg text-sm text-text-muted",children:"Checking terminal lock…"});if("setup"===w||"unlock"===w){let e="setup"===w;return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full flex-col items-center justify-center bg-bg px-4",children:(0,n.jsxs)("div",{className:"w-full max-w-md rounded-2xl border border-border-subtle bg-surface p-6 shadow-xl",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,n.jsx)("div",{className:"flex size-10 items-center justify-center rounded-xl bg-[color:var(--brand,#E56A4A)]/15 text-[color:var(--brand,#E56A4A)]",children:(0,n.jsx)("span",{className:"material-symbols-outlined text-[22px]",children:e?"key":"lock"})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-base font-semibold text-text-main",children:e?"Set terminal password":"Unlock terminal"}),(0,n.jsx)("p",{className:"text-xs text-text-muted",children:e?"First time — pick a password different from dashboard login.":"Dashboard login is not enough. Enter your terminal password."})]})]}),(0,n.jsxs)("form",{onSubmit:e?M:z,className:"space-y-3",children:[e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"block space-y-1",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"New terminal password"}),(0,n.jsx)("input",{type:"password",autoFocus:!0,autoComplete:"new-password",value:E,onChange:e=>C(e.target.value),className:"w-full rounded-lg border border-border-subtle bg-bg-alt px-3 py-2.5 text-sm text-text-main outline-none focus:border-[color:var(--brand,#E56A4A)]/60",placeholder:"Min 6 characters",required:!0,minLength:6})]}),(0,n.jsxs)("label",{className:"block space-y-1",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"Confirm"}),(0,n.jsx)("input",{type:"password",autoComplete:"new-password",value:S,onChange:e=>A(e.target.value),className:"w-full rounded-lg border border-border-subtle bg-bg-alt px-3 py-2.5 text-sm text-text-main outline-none focus:border-[color:var(--brand,#E56A4A)]/60",placeholder:"Repeat password",required:!0,minLength:6})]}),(0,n.jsxs)("p",{className:"text-[11px] leading-relaxed text-text-muted",children:["Must ",(0,n.jsx)("strong",{className:"text-text-main",children:"not"})," match the dashboard password. Unlock lasts ~4 hours on this browser."]})]}):(0,n.jsxs)("label",{className:"block space-y-1",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"Terminal password"}),(0,n.jsx)("input",{type:"password",autoFocus:!0,autoComplete:"current-password",value:E,onChange:e=>C(e.target.value),className:"w-full rounded-lg border border-border-subtle bg-bg-alt px-3 py-2.5 text-sm text-text-main outline-none focus:border-[color:var(--brand,#E56A4A)]/60",placeholder:"••••••••",required:!0})]}),k?(0,n.jsx)("p",{role:"alert",className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-700 dark:text-red-300",children:k}):null,(0,n.jsx)("button",{type:"submit",disabled:j,className:"w-full rounded-lg bg-[color:var(--brand,#E56A4A)] px-3 py-2.5 text-sm font-semibold text-white transition hover:brightness-110 disabled:opacity-50",children:j?"Please wait…":e?"Save & open terminal":"Unlock"})]}),"unlock"===w?(0,n.jsxs)("p",{className:"mt-3 text-center text-[11px] leading-relaxed text-text-muted",children:["Forgot terminal password? On the host run CLI →"," ",(0,n.jsx)("code",{className:"text-text-main",children:"Settings → Clear Terminal Password"})," ","then set a new one here. Reset is not available in the browser."]}):null,(0,n.jsx)("p",{className:"mt-4 text-center text-[11px] text-text-muted",children:"Protected by dashboard login + terminal password"})]})})}return(0,n.jsxs)("div",{className:"flex h-full min-h-0 w-full flex-col bg-bg",children:[(0,n.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border-subtle px-4 py-2.5",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:`inline-block size-2 rounded-full ${"ready"===L?"bg-emerald-500":"connecting"===L?"bg-amber-400 animate-pulse":"forbidden"===L?"bg-amber-500":"bg-red-500"}`}),(0,n.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Terminal"})]}),(0,n.jsxs)("span",{role:"status","aria-live":"polite",className:"truncate text-xs text-text-muted",children:[R,F.shell?` \xb7 ${F.shell}`:"",F.mode?` \xb7 ${F.mode}`:""]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:P,className:"rounded-lg border border-border-subtle bg-surface px-3 py-1.5 text-xs font-medium text-text-muted transition hover:border-border hover:text-text-main",title:"Lock terminal (require password again)",children:"Lock"}),(0,n.jsx)("button",{type:"button",onClick:Y,className:"rounded-lg border border-border-subtle bg-surface px-3 py-1.5 text-xs font-medium text-text-main transition hover:border-[color:var(--brand,#E56A4A)]/50 hover:bg-bg-alt",children:"New session"})]})]}),(0,n.jsx)("div",{className:"relative min-h-0 flex-1",onMouseDown:_,children:(0,n.jsx)("div",{ref:r,className:"absolute inset-0 px-2 py-2 outline-none"})}),(0,n.jsx)("div",{className:"shrink-0 border-t border-border-subtle px-4 py-1.5 text-[11px] text-text-muted",children:"Dashboard login + terminal password \xb7 click the black area then type \xb7 idle sessions close after 30m"})]})}},98137:(e,t,r)=>{Promise.resolve().then(r.bind(r,46085))}},e=>{e.O(0,[7262,7209,1096,7813,7408,1858,7358],()=>e(e.s=98137)),_N_E=e.O()}]);
4
+ `);return}if(""===e||"\b"===e){g.current.length>0&&(g.current=g.current.slice(0,-1),t.write("\b \b"));return}32>e.charCodeAt(0)||e.startsWith("\x1b")||(g.current+=e,t.write(e))},[U]),J=(0,a.useCallback)(async()=>{let e=m.current,t=o.current;if(e&&t)try{await fetch(`/api/terminal/session/${e}/resize`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:t.cols,rows:t.rows}),cache:"no-store",credentials:"same-origin"})}catch{}},[]),_=(0,a.useCallback)(()=>{try{o.current?.focus()}catch{}},[]),I=(0,a.useCallback)((e,t)=>{if(b.current)try{b.current.close()}catch{}let r=new EventSource(`/api/terminal/session/${e}/stream`,{withCredentials:!0});b.current=r,r.onopen=()=>{p.current||(T("ready"),O("Connected — click terminal & type"),_())},r.onmessage=e=>{let r;if(!p.current){try{r=JSON.parse(e.data)}catch{return}"data"===r.type&&"string"==typeof r.data?t.write(r.data):"ready"===r.type?(h.current=r.mode||h.current,$({shell:r.shell||"",mode:r.mode||""}),T(!1===r.alive?"closed":"ready"),O(!1===r.alive?"Shell exited":"Connected — click terminal & type"),_()):"exit"===r.type&&(T("closed"),O("Shell exited"),t.write("\r\n\x1b[90m[session ended]\x1b[0m\r\n"))}},r.onerror=()=>{p.current||(T(e=>"ready"===e?"connecting":e),O("Reconnecting…"))}},[_]),W=(0,a.useCallback)(async(e,t)=>{let r;T("connecting"),O("Starting shell…"),g.current="";try{t.fit()}catch{}let n=e.cols||120,a=e.rows||40;try{r=await fetch("/api/terminal/session",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cols:n,rows:a}),cache:"no-store",credentials:"same-origin"})}catch(t){T("error"),O(t?.message||"Failed to reach server"),e.writeln(`\x1b[31mFailed to create session: ${t?.message||"network error"}\x1b[0m`);return}if(403===r.status){T("forbidden"),O("Forbidden"),e.writeln("\x1b[33mTerminal access forbidden.\x1b[0m");return}if(401===r.status){T("error"),O("Unauthorized"),e.writeln("\x1b[31mUnauthorized — log in to the dashboard first.\x1b[0m");return}if(423===r.status){T("error"),O("Locked"),y("unlock");return}let s=await r.json().catch(()=>({}));if(!r.ok||!s?.session?.id){T("error"),O(s?.error||"Create failed"),e.writeln(`\x1b[31m${s?.error||"Failed to create terminal session"}\x1b[0m`);return}m.current=s.session.id,h.current=s.session.mode||"pipe",$({shell:s.session.shell||"",mode:s.session.mode||""}),I(s.session.id,e),_()},[I,_]),Y=(0,a.useCallback)(async()=>{let e=m.current;if(m.current="",h.current="",g.current="",f.current=[],b.current){try{b.current.close()}catch{}b.current=null}e&&fetch(`/api/terminal/session/${e}`,{method:"DELETE",credentials:"same-origin"}).catch(()=>{});let t=o.current,r=u.current;t&&r&&(t.reset(),t.clear(),await W(t,r))},[W]);if((0,a.useEffect)(()=>{if("open"!==w)return;p.current=!1;let e=r.current;if(!e)return;let n=new s.B({cursorBlink:!0,cursorStyle:"bar",fontSize:13,fontFamily:'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',lineHeight:1.25,scrollback:5e3,allowProposedApi:!0,disableStdin:!1,theme:d[t.current?"dark":"light"]}),a=new l.Y,c=new i.c;n.loadAddon(a),n.loadAddon(c),n.open(e);try{e.tabIndex=0;let t=e.querySelector("textarea");t&&(t.tabIndex=0,t.setAttribute("autocomplete","off"),t.setAttribute("spellcheck","false"))}catch{}o.current=n,u.current=a;try{a.fit()}catch{}let h=n.onData(e=>q(e)),f=()=>{try{a.fit(),J()}catch{}},g=()=>_();e.addEventListener("mousedown",g),e.addEventListener("click",g),e.addEventListener("focus",_);let y="u">typeof ResizeObserver?new ResizeObserver(f):null;return y?.observe(e),window.addEventListener("resize",f),requestAnimationFrame(()=>{try{a.fit()}catch{}_()}),W(n,a),()=>{p.current=!0,y?.disconnect(),window.removeEventListener("resize",f),e.removeEventListener("mousedown",g),e.removeEventListener("click",g),e.removeEventListener("focus",_);try{h.dispose()}catch{}if(x.current&&(clearTimeout(x.current),x.current=null),b.current){try{b.current.close()}catch{}b.current=null}let t=m.current;m.current="",t&&fetch(`/api/terminal/session/${t}`,{method:"DELETE",keepalive:!0,credentials:"same-origin"}).catch(()=>{});try{n.dispose()}catch{}o.current=null,u.current=null}},[w,q,J,W,_]),(0,a.useEffect)(()=>{t.current=e,o.current&&(o.current.options.theme=d[e?"dark":"light"])},[e]),"checking"===w)return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full items-center justify-center bg-bg text-sm text-text-muted",children:"Checking terminal lock…"});if("setup"===w||"unlock"===w){let e="setup"===w;return(0,n.jsx)("div",{className:"flex h-full min-h-0 w-full flex-col items-center justify-center bg-bg px-4",children:(0,n.jsxs)("div",{className:"w-full max-w-md rounded-2xl border border-border-subtle bg-surface p-6 shadow-xl",children:[(0,n.jsxs)("div",{className:"mb-4 flex items-center gap-3",children:[(0,n.jsx)("div",{className:"flex size-10 items-center justify-center rounded-xl bg-[color:var(--brand,#E56A4A)]/15 text-[color:var(--brand,#E56A4A)]",children:(0,n.jsx)("span",{className:"material-symbols-outlined text-[22px]",children:e?"key":"lock"})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"text-base font-semibold text-text-main",children:e?"Set terminal password":"Unlock terminal"}),(0,n.jsx)("p",{className:"text-xs text-text-muted",children:e?"First time — pick a password different from dashboard login.":"Dashboard login is not enough. Enter your terminal password."})]})]}),(0,n.jsxs)("form",{onSubmit:e?M:z,className:"space-y-3",children:[e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("label",{className:"block space-y-1",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"New terminal password"}),(0,n.jsx)("input",{type:"password",autoFocus:!0,autoComplete:"new-password",value:E,onChange:e=>C(e.target.value),className:"w-full rounded-lg border border-border-subtle bg-bg-alt px-3 py-2.5 text-sm text-text-main outline-none focus:border-[color:var(--brand,#E56A4A)]/60",placeholder:"Min 6 characters",required:!0,minLength:6})]}),(0,n.jsxs)("label",{className:"block space-y-1",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"Confirm"}),(0,n.jsx)("input",{type:"password",autoComplete:"new-password",value:S,onChange:e=>A(e.target.value),className:"w-full rounded-lg border border-border-subtle bg-bg-alt px-3 py-2.5 text-sm text-text-main outline-none focus:border-[color:var(--brand,#E56A4A)]/60",placeholder:"Repeat password",required:!0,minLength:6})]}),(0,n.jsxs)("p",{className:"text-[11px] leading-relaxed text-text-muted",children:["Must ",(0,n.jsx)("strong",{className:"text-text-main",children:"not"})," match the dashboard password. Unlock lasts ~4 hours on this browser."]})]}):(0,n.jsxs)("label",{className:"block space-y-1",children:[(0,n.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-text-muted",children:"Terminal password"}),(0,n.jsx)("input",{type:"password",autoFocus:!0,autoComplete:"current-password",value:E,onChange:e=>C(e.target.value),className:"w-full rounded-lg border border-border-subtle bg-bg-alt px-3 py-2.5 text-sm text-text-main outline-none focus:border-[color:var(--brand,#E56A4A)]/60",placeholder:"••••••••",required:!0})]}),k?(0,n.jsx)("p",{role:"alert",className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-700 dark:text-red-300",children:k}):null,(0,n.jsx)("button",{type:"submit",disabled:j,className:"w-full rounded-lg bg-[color:var(--brand,#E56A4A)] px-3 py-2.5 text-sm font-semibold text-white transition hover:brightness-110 disabled:opacity-50",children:j?"Please wait…":e?"Save & open terminal":"Unlock"})]}),"unlock"===w?(0,n.jsxs)("p",{className:"mt-3 text-center text-[11px] leading-relaxed text-text-muted",children:["Forgot terminal password? On the host run CLI →"," ",(0,n.jsx)("code",{className:"text-text-main",children:"Settings → Clear Terminal Password"})," ","then set a new one here. Reset is not available in the browser."]}):null,(0,n.jsx)("p",{className:"mt-4 text-center text-[11px] text-text-muted",children:"Protected by dashboard login + terminal password"})]})})}return(0,n.jsxs)("div",{className:"flex h-full min-h-0 w-full flex-col bg-bg",children:[(0,n.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 border-b border-border-subtle px-4 py-2.5",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:`inline-block size-2 rounded-full ${"ready"===L?"bg-emerald-500":"connecting"===L?"bg-amber-400 animate-pulse":"forbidden"===L?"bg-amber-500":"bg-red-500"}`}),(0,n.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Terminal"})]}),(0,n.jsxs)("span",{role:"status","aria-live":"polite",className:"truncate text-xs text-text-muted",children:[R,F.shell?` \xb7 ${F.shell}`:"",F.mode?` \xb7 ${F.mode}`:""]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("button",{type:"button",onClick:P,className:"rounded-lg border border-border-subtle bg-surface px-3 py-1.5 text-xs font-medium text-text-muted transition hover:border-border hover:text-text-main",title:"Lock terminal (require password again)",children:"Lock"}),(0,n.jsx)("button",{type:"button",onClick:Y,className:"rounded-lg border border-border-subtle bg-surface px-3 py-1.5 text-xs font-medium text-text-main transition hover:border-[color:var(--brand,#E56A4A)]/50 hover:bg-bg-alt",children:"New session"})]})]}),(0,n.jsx)("div",{className:"relative min-h-0 flex-1",onMouseDown:_,children:(0,n.jsx)("div",{ref:r,className:"absolute inset-0 px-2 py-2 outline-none"})}),(0,n.jsx)("div",{className:"shrink-0 border-t border-border-subtle px-4 py-1.5 text-[11px] text-text-muted",children:"Dashboard login + terminal password \xb7 click the black area then type \xb7 idle sessions close after 30m"})]})}},51445:(e,t,r)=>{Promise.resolve().then(r.bind(r,35765))}},e=>{e.O(0,[1838,1507,5472,85,8441,3794,7358],()=>e(e.s=51445)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9839],{62213:(e,t,a)=>{Promise.resolve().then(a.bind(a,70323))},70323:(e,t,a)=>{"use strict";a.d(t,{default:()=>x});var s=a(95155),l=a(12115),r=a(35497),n=a(11059),i=a(73006);let o=["zh-CN","zh-TW"],c=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"},{id:"wenyan-lite",label:"文 Lite",desc:"Classical Chinese, light compression",wenyan:!0},{id:"wenyan",label:"文 Full",desc:"Maximum 文言文, 80-90% reduction",wenyan:!0},{id:"wenyan-ultra",label:"文 Ultra",desc:"Extreme classical compression",wenyan:!0}],d=[{id:"lite",label:"Lite",desc:"Build asked, name lazier option"},{id:"full",label:"Full",desc:"Ladder enforced: stdlib/native first"},{id:"ultra",label:"Ultra",desc:"YAGNI extremist, deletion first"}];function x(){let[e,t]=(0,l.useState)(!0),[a,x]=(0,l.useState)(!1),[m,h]=(0,l.useState)("http://localhost:8787"),[p,u]=(0,l.useState)({installed:!1,running:!1,python:null,loading:!0}),[f,g]=(0,l.useState)(!1),[b,j]=(0,l.useState)(!1),[y,v]=(0,l.useState)(""),[N,w]=(0,l.useState)({version:null,extras:{code:!1,ml:!1},available:["code","ml"],loading:!1}),[k,C]=(0,l.useState)([]),[S,E]=(0,l.useState)(!1),[P,T]=(0,l.useState)(""),[$,I]=(0,l.useState)(null),[R,O]=(0,l.useState)(""),[L,U]=(0,l.useState)(null),[H,M]=(0,l.useState)(!1),[_,A]=(0,l.useState)(!0),[D,F]=(0,l.useState)(!1),B=(0,l.useRef)(null),[J,W]=(0,l.useState)(!1),[z,G]=(0,l.useState)("full"),[K,X]=(0,l.useState)(!1),[q,Y]=(0,l.useState)("full"),[Z,Q]=(0,l.useState)(!1),[V,ee]=(0,l.useState)(25e3),[et,ea]=(0,l.useState)({installed:!1,installing:!1,running:!1,version:null,loading:!0}),[es,el]=(0,l.useState)(null),[er,en]=(0,l.useState)(!1),[ei,eo]=(0,l.useState)(!1),[ec,ed]=(0,l.useState)(""),[ex,em]=(0,l.useState)("en"),{copied:eh,copy:ep}=(0,n.C)();(0,l.useEffect)(()=>(em((0,i.kk)()),(0,i.oQ)(()=>em((0,i.kk)()))),[]);let eu=o.includes(ex),ef=eu?c:c.filter(e=>!e.wenyan);(0,l.useEffect)(()=>{let e=c.find(e=>e.id===z);e?.wenyan&&!eu&&(G("ultra"),eg({cavemanLevel:"ultra"}))},[eu,z]);let eg=async e=>{try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch(e){console.log("Error updating setting:",e)}},eb=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rtkEnabled:e})})).ok&&t(e)}catch(e){console.log("Error updating rtkEnabled:",e)}},ej=async()=>{let e=m.trim()||"http://localhost:8787";h(e),await eg({headroomUrl:e}),ey()},ey=(0,l.useCallback)(async()=>{u(e=>({...e,loading:!0}));try{let e=await fetch("/api/headroom/status",{headers:{"Cache-Control":"no-store"}}),t=await e.json();if(u({...t,loading:!1}),!t?.installed){w({version:null,extras:{code:!1,ml:!1},available:["code","ml"],loading:!1}),C([]);return}try{let e=await fetch("/api/headroom/extras",{headers:{"Cache-Control":"no-store"}});if(!e.ok)throw Error("extras status failed");let t=await e.json();w(e=>({...e,version:t.version??null,extras:t.extras||{code:!1,ml:!1},available:t.available||["code","ml"],loading:!1})),C([])}catch{w({version:null,extras:{code:!1,ml:!1},available:["code","ml"],loading:!1}),C([])}}catch{u({installed:!1,running:!1,python:null,loading:!1}),w({version:null,extras:{code:!1,ml:!1},available:["code","ml"],loading:!1}),C([])}},[]),ev=(0,l.useCallback)(async()=>{v(""),j(!0);try{let e=await fetch("/api/headroom/start",{method:"POST"}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Failed to start proxy");await ey()}catch(e){v(e.message)}finally{j(!1)}},[ey]),eN=(0,l.useCallback)(async()=>{j(!0);try{await fetch("/api/headroom/stop",{method:"POST"}),await ey()}finally{j(!1)}},[ey]),ew=(0,l.useCallback)(()=>{O(""),B.current&&clearInterval(B.current);let e=async()=>{try{let e=await fetch("/api/headroom/extras?log=1",{headers:{"Cache-Control":"no-store"}}),t=await e.json().catch(()=>({}));"string"==typeof t.log&&O(t.log)}catch{}};e(),B.current=setInterval(e,1500)},[]),ek=(0,l.useCallback)(()=>{B.current&&(clearInterval(B.current),B.current=null)},[]);(0,l.useEffect)(()=>()=>ek(),[ek]);let eC=(0,l.useCallback)(async()=>{if(0!==k.length){E(!0),T(""),ew();try{let e=await fetch("/api/headroom/extras",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({extras:k})}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Install failed");w(e=>({...e,version:t.version??e.version,extras:t.extras||e.extras})),C([])}catch(e){T(e.message)}finally{ek(),E(!1)}}},[k,ew,ek]),eS=(0,l.useCallback)(async e=>{I(e),T(""),ew();try{let t=await fetch("/api/headroom/extras",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({extras:[e]})}),a=await t.json().catch(()=>({}));if(!t.ok)throw Error(a.error||"Remove failed");w(e=>({...e,version:a.version??e.version,extras:a.extras||e.extras}))}catch(e){T(e.message)}finally{ek(),I(null)}},[ew,ek]),eE=(0,l.useCallback)(()=>{if(0!==k.length){if(k.includes("ml"))return void U({title:"Install [ml]",message:"[ml] downloads ~1 GB (torch + huggingface-hub). Continue?",confirmText:"Install",variant:"primary",onConfirm:eC});eC()}},[k,eC]),eP=(0,l.useCallback)(e=>{U({title:`Remove [${e}]`,message:`Remove [${e}] and its packages?`,confirmText:"Remove",variant:"danger",onConfirm:()=>eS(e)})},[eS]),eT=(0,l.useCallback)(async(e,t)=>{if(T(""),"code"===e&&M(t),"ml"===e&&A(t),await eg({["code"===e?"headroomCodeAware":"headroomKompress"]:t}),p.running){F(!0);try{let e=await fetch("/api/headroom/restart",{method:"POST"}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t.error||"Restart failed");await ey()}catch(e){T(e.message)}finally{F(!1)}}},[p.running,ey]),e$=(0,l.useCallback)(async()=>{ea(e=>({...e,loading:!0}));try{let e=await fetch("/api/pxpipe/status",{headers:{"Cache-Control":"no-store"}}),t=await e.json();ea({...t,loading:!1}),"number"==typeof t.minChars&&ee(t.minChars)}catch{ea({installed:!1,installing:!1,running:!1,version:null,loading:!1})}},[]),eI=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/pxpipe/health",{method:"POST"});el(await e.json())}catch(e){el({healthy:!1,checks:[],error:e.message})}},[]),eR=(0,l.useCallback)(async e=>{ed(""),eo(!0);try{let t=await fetch(`/api/pxpipe/${e}`,{method:"POST"}),a=await t.json().catch(()=>({}));if(!t.ok)throw Error(a.error||`PXPIPE ${e} failed`);await e$(),await eI()}catch(e){ed(e.message)}finally{eo(!1)}},[e$,eI]);(0,l.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/settings");if(e.ok){let a=await e.json();t(!1!==a.rtkEnabled),x(!!a.headroomEnabled),h(a.headroomUrl||"http://localhost:8787"),M(!0===a.headroomCodeAware),A(!1!==a.headroomKompress),W(!!a.cavemanEnabled),G(a.cavemanLevel||"full"),X(!!a.ponytailEnabled),Y(a.ponytailLevel||"full"),Q(!!a.pxpipeEnabled),"number"==typeof a.pxpipeMinChars&&ee(a.pxpipeMinChars),ey(),e$().then(eI)}}catch{}})()},[ey,e$,eI]);let eO=!!p.running,eL=p.loading?"Checking…":eO?"Running":!1===p.localUrl||p.installed?!1!==p.localUrl?"Stopped":"External":"Not installed",eU=!1!==p.localUrl,eH=!!p.canStart,eM=eU&&!!p.managedPid,e_=es?.healthy===!0,eA=et.loading?"Checking…":et.installing?"Installing…":et.installed?e_?"Healthy":et.running?"Running":"Stopped":"Not installed";return e_||et.running,(0,s.jsxs)("div",{className:"space-y-6 p-6",children:[(0,s.jsxs)(r.Zp,{id:"rtk",children:[(0,s.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,s.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-primary",children:"bolt"}),"Token Saver"]})}),(0,s.jsxs)("div",{className:"flex items-center justify-between pt-2 pb-4 border-b border-border gap-4",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:"font-medium",children:["Compress tool output"," ",(0,s.jsx)("a",{href:"https://github.com/rtk-ai/rtk",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(RTK)"})]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"git/grep/ls/tree/logs → 60-90% fewer input tokens"})]}),(0,s.jsx)(r.lM,{checked:e,onChange:()=>eb(!e)})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between py-4 gap-4 flex-wrap",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[(0,s.jsxs)("p",{className:"font-medium",children:["Compress context"," ",(0,s.jsx)("a",{href:"https://github.com/chopratejas/headroom",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Headroom)"})]}),(0,s.jsx)("span",{className:`text-xs px-2 py-0.5 rounded ${eO?"bg-success/15 text-success":"bg-warning/15 text-warning"}`,children:eL}),(0,s.jsx)("button",{type:"button",onClick:()=>g(!0),className:"text-xs text-primary underline hover:opacity-80",children:eO?"Manage":"Setup"})]}),(0,s.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Compress prompts via /v1/compress before routing to the model"})]}),(0,s.jsx)(r.lM,{checked:a&&eO,disabled:!eO,onChange:()=>{var e;let t;return e=!a,void(h(t=m.trim()||"http://localhost:8787"),x(e),eg({headroomEnabled:e,headroomUrl:t}))}})]}),p.installed&&(0,s.jsxs)("div",{className:"mb-3 ml-1 pl-3 pb-4 border-l-2 border-border",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:["Compression extras",N.version?` \xb7 v${N.version}`:"",":"]}),N.available.map(e=>{let t=!!N.extras[e],a=k.includes(e),l="code"===e?"tree-sitter AST compression for code responses":"Kompress-v2 HF model for prose/agentic traces (~+1GB)";if(t){let t="code"===e?H:_;return(0,s.jsxs)("div",{className:"flex items-center gap-1.5 text-xs px-2 py-1 rounded border border-success/40 bg-success/5 text-text",title:l,children:[(0,s.jsx)(r.lM,{size:"sm",checked:t,disabled:D,onChange:()=>eT(e,!t)}),(0,s.jsxs)("span",{className:"font-medium",children:["[",e,"]"]}),(0,s.jsx)("button",{type:"button",onClick:()=>eP(e),disabled:$===e,className:"ml-1 text-error underline hover:opacity-80 disabled:opacity-50",title:`Uninstall [${e}]`,children:$===e?"Uninstalling…":"Uninstall"})]},e)}return(0,s.jsxs)("label",{className:`flex items-center gap-1.5 text-xs px-2 py-1 rounded border cursor-pointer transition-colors ${a?"border-primary bg-primary/10 text-primary":"border-border text-text-muted hover:bg-surface-2"}`,title:l,children:[(0,s.jsx)("input",{type:"checkbox",className:"w-3 h-3",checked:a,onChange:()=>{C(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}}),(0,s.jsxs)("span",{className:"font-medium",children:["[",e,"]"]}),(0,s.jsx)("span",{className:"opacity-70",children:"not installed"})]},e)}),k.length>0&&(0,s.jsx)("button",{onClick:eE,disabled:S,className:"text-xs px-2.5 py-1 rounded bg-primary text-white hover:opacity-90 disabled:opacity-50",children:S?"Installing…":`Install [proxy,${k.join(",")}]`})]}),P&&(0,s.jsx)("p",{className:"text-xs text-error mt-1",children:P}),D&&(0,s.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Restarting proxy…"}),(S||$)&&R&&(0,s.jsx)("pre",{className:"mt-2 max-h-32 overflow-auto rounded bg-surface-2 p-2 text-[10px] leading-tight text-text-muted whitespace-pre-wrap",children:R}),(0,s.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Installing adds the package; use ",(0,s.jsx)("code",{children:"on"}),"/",(0,s.jsx)("code",{children:"off"})," ","to activate it (restarts the proxy). Default install is"," ",(0,s.jsx)("code",{children:"[proxy]"})," only (SmartCrusher for JSON). Adding"," ",(0,s.jsx)("code",{children:"[code]"})," enables AST compression (Python/JS/TS/Go/Rust/Java/C/C++/Perl). Adding ",(0,s.jsx)("code",{children:"[ml]"})," ","enables the Kompress-v2 HF model for prose/agentic traces but adds ~1 GB (torch + huggingface-hub)."]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between pt-4 border-t border-border gap-4 flex-wrap",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:"font-medium",children:["Compress LLM output"," ",(0,s.jsx)("a",{href:"https://github.com/JuliusBrussee/caveman",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Caveman)"})]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Terse-style system prompt → ~65% fewer output tokens (up to 87%)"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[J&&(0,s.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,s.jsx)("div",{className:"flex items-center gap-1.5",children:ef.map(e=>(0,s.jsx)("button",{onClick:()=>{var t;G(t=e.id),eg({cavemanLevel:t})},className:`px-3 py-1.5 rounded text-xs font-medium border transition-colors ${z===e.id?"bg-primary text-white border-primary":"bg-transparent border-border text-text-muted hover:bg-surface-2"}`,title:e.desc,children:e.label},e.id))}),(0,s.jsx)("p",{className:"text-xs text-primary",children:c.find(e=>e.id===z)?.desc})]}),(0,s.jsx)(r.lM,{checked:J,onChange:()=>{var e;W(e=!J),eg({cavemanEnabled:e})}})]})]}),(0,s.jsxs)("div",{className:"flex items-center justify-between pt-4 mt-4 border-t border-border gap-4 flex-wrap",children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsxs)("p",{className:"font-medium",children:["Lazy senior dev"," ",(0,s.jsx)("a",{href:"https://github.com/DietrichGebert/ponytail",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Ponytail)"})]}),(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Bias the model toward minimal code: YAGNI, reuse stdlib, deletion over addition"})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[K&&(0,s.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,s.jsx)("div",{className:"flex items-center gap-1.5",children:d.map(e=>(0,s.jsx)("button",{onClick:()=>{var t;Y(t=e.id),eg({ponytailLevel:t})},className:`px-3 py-1.5 rounded text-xs font-medium border transition-colors ${q===e.id?"bg-primary text-white border-primary":"bg-transparent border-border text-text-muted hover:bg-surface-2"}`,title:e.desc,children:e.label},e.id))}),(0,s.jsx)("p",{className:"text-xs text-primary",children:d.find(e=>e.id===q)?.desc})]}),(0,s.jsx)(r.lM,{checked:K,onChange:()=>{var e;X(e=!K),eg({ponytailEnabled:e})}})]})]}),!1]}),(0,s.jsx)(r.aF,{isOpen:f,title:eO?"Headroom":"Setup Headroom",onClose:()=>g(!1),children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,s.jsx)("span",{children:"Status"}),(0,s.jsx)("span",{className:eO?"text-success":"text-warning",children:eL})]}),eO&&(0,s.jsx)("a",{href:"/api/headroom/proxy/dashboard",target:"_blank",rel:"noreferrer",className:"w-full rounded border border-border px-4 py-2 text-center text-sm hover:bg-surface-2",children:"Open Headroom Dashboard"}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("p",{className:"text-sm font-medium",children:"Proxy URL"}),(0,s.jsx)(r.pd,{value:m,onChange:e=>h(e.target.value),onBlur:ej,placeholder:"http://localhost:8787",className:"font-mono text-sm"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Use a local proxy for Start/Stop, or an external Docker sidecar like http://headroom:8787."})]}),eM?(0,s.jsx)(r.$n,{onClick:eN,variant:"ghost",fullWidth:!0,disabled:b,children:b?"Stopping…":"Stop Headroom"}):eO?(0,s.jsx)("p",{className:"text-sm text-success",children:"Headroom proxy is reachable. You can enable the token saver."}):eH?(0,s.jsx)(r.$n,{onClick:ev,fullWidth:!0,disabled:b,children:b?"Starting…":"Start Headroom"}):eU?p.python?(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("p",{className:"text-sm font-medium",children:"Install then click Start:"}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("pre",{className:"flex-1 rounded bg-black/5 dark:bg-white/5 p-2 text-xs font-mono overflow-x-auto",children:'pip install "headroom-ai[proxy]"'}),(0,s.jsx)(r.$n,{size:"sm",variant:"ghost",onClick:()=>ep('pip install "headroom-ai[proxy]"'),children:eh?"Copied":"Copy"})]})]}):(0,s.jsx)("p",{className:"text-sm text-warning",children:"Python ≥ 3.10 required for local managed mode. Install Python first, or use an external proxy URL."}):(0,s.jsx)("p",{className:"text-sm text-warning",children:"Start Headroom separately at the configured URL, then recheck."}),y&&(0,s.jsx)("p",{className:"text-sm text-warning",children:y}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(r.$n,{onClick:()=>ey(),variant:"ghost",fullWidth:!0,children:"Recheck"}),(0,s.jsx)(r.$n,{onClick:()=>g(!1),fullWidth:!0,children:"Done"})]})]})}),(0,s.jsx)(r.aF,{isOpen:!1,title:et.installed?"PXPIPE":"Setup PXPIPE",onClose:()=>en(!1),children:(0,s.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,s.jsx)("p",{className:"text-sm text-text-muted",children:"Compress prompts using multimodal encoding. Runs in-process — no extra server or environment variables required."}),(0,s.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,s.jsx)("span",{children:"Status"}),(0,s.jsxs)("span",{className:e_||et.running?"text-success":"text-warning",children:[eA,et.version?` \xb7 v${et.version}`:""]})]}),es?.checks?.length>0&&(0,s.jsxs)("div",{className:"flex flex-col gap-1 rounded border border-border p-3",children:[(0,s.jsx)("p",{className:"text-sm font-medium mb-1",children:"Health check"}),es.checks.map(e=>(0,s.jsxs)("div",{className:"flex items-center justify-between text-xs",children:[(0,s.jsxs)("span",{className:e.ok?"text-success":"text-warning",children:[e.ok?"●":"○"," ",e.label]}),e.detail&&(0,s.jsx)("span",{className:"text-text-muted font-mono truncate max-w-[50%]",children:e.detail})]},e.id)),es.error&&(0,s.jsx)("p",{className:"text-xs text-warning mt-1",children:es.error})]}),et.installed?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[et.running?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.$n,{onClick:()=>eR("restart"),variant:"ghost",disabled:ei,children:"Restart"}),(0,s.jsx)(r.$n,{onClick:()=>eR("stop"),variant:"ghost",disabled:ei,children:"Stop"})]}):(0,s.jsx)(r.$n,{onClick:()=>eR("start"),disabled:ei,children:ei?"Starting…":"Start"}),(0,s.jsx)(r.$n,{onClick:()=>eR("install"),variant:"ghost",disabled:ei,children:"Repair"}),(0,s.jsx)("a",{href:"/dashboard/pxpipe#logs",className:"col-span-2 rounded border border-border px-4 py-2 text-center text-sm hover:bg-surface-2",children:"Open Logs"})]}):(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsx)("p",{className:"text-sm text-warning",children:"PXPIPE is not installed."}),(0,s.jsx)(r.$n,{onClick:()=>eR("install"),fullWidth:!0,disabled:ei||et.installing,children:ei||et.installing?"Installing…":"Install"}),(0,s.jsxs)("p",{className:"text-xs text-text-muted",children:["Installs the npm package ",(0,s.jsx)("code",{className:"font-mono",children:"pxpipe-proxy"})," into the ZevaiRouter data directory. May take a few minutes."]})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsx)("p",{className:"text-sm font-medium",children:"Minimum prompt size (chars)"}),(0,s.jsx)(r.pd,{value:String(V),onChange:e=>ee(e.target.value),onBlur:()=>{let e=Math.max(0,Number(V)||25e3);ee(e),eg({pxpipeMinChars:e})},placeholder:"25000",className:"font-mono text-sm"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:"Requests smaller than this bypass PXPIPE and are sent as-is."})]}),ec&&(0,s.jsx)("p",{className:"text-sm text-warning",children:ec}),(0,s.jsxs)("div",{className:"flex gap-2",children:[(0,s.jsx)(r.$n,{onClick:()=>e$().then(eI),variant:"ghost",fullWidth:!0,children:"Recheck"}),(0,s.jsx)(r.$n,{onClick:()=>en(!1),fullWidth:!0,children:"Done"})]})]})}),(0,s.jsx)(r.uo,{isOpen:!!L,onClose:()=>U(null),onConfirm:()=>{let e=L?.onConfirm;U(null),e?.()},title:L?.title,message:L?.message,confirmText:L?.confirmText,variant:L?.variant})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=62213)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3528],{5214:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return r.workAsyncStorageInstance}});let r=n(17828)},17828:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,n(64054).createAsyncLocalStorage)()},21957:(e,t,n)=>{"use strict";function r({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return r}}),n(95155),n(47650),n(5214),n(2451),n(53887)},41112:(e,t,n)=>{"use strict";function r({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return r}}),n(1980)},64054:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return o},createSnapshot:function(){return d}};for(var r in n)Object.defineProperty(t,r,{enumerable:!0,get:n[r]});let a=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class s{disable(){throw a}getStore(){}run(){throw a}exit(){throw a}enterWith(){throw a}static bind(e){return e}}let l="u">typeof globalThis&&globalThis.AsyncLocalStorage;function o(){return l?new l:new s}function i(e){return l?l.bind(e):s.bind(e)}function d(){return l?l.snapshot():function(e,...t){return e(...t)}}},68635:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let r=n(95155),a=n(12115),s=n(41112);function l(e){return{default:e&&"default"in e?e.default:e}}n(21957);let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},i=function(e){let t={...o,...e},n=(0,a.lazy)(()=>t.loader().then(l)),i=t.loading;function d(e){let l=i?(0,r.jsx)(i,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?a.Suspense:a.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:[null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(d,{...o?{fallback:l}:{},children:c})}return d.displayName="LoadableComponent",d}},69472:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(95155),a=n(12115),s=n(35497),l=n(11059),o=n(75707);let i=n.n(o)()(()=>n.e(8202).then(n.bind(n,28202)),{loadableGenerated:{webpack:()=>[28202]},ssr:!1}),d=[{id:1,label:"Client Request",file:"1_req_client.json",lang:"json",desc:"Raw request from client"},{id:2,label:"Source Body",file:"2_req_source.json",lang:"json",desc:"After initial conversion"},{id:3,label:"OpenAI Intermediate",file:"3_req_openai.json",lang:"json",desc:"source → openai"},{id:4,label:"Target Request",file:"4_req_target.json",lang:"json",desc:"openai → target + URL + headers"},{id:5,label:"Provider Response",file:"5_res_provider.txt",lang:"text",desc:"Raw SSE from provider"},{id:6,label:"OpenAI Response",file:"6_res_openai.txt",lang:"text",desc:"target → openai (response)"},{id:7,label:"Client Response",file:"7_res_client.txt",lang:"text",desc:"Final response to client"}],c={minimap:{enabled:!1},fontSize:12,lineNumbers:"on",scrollBeyondLastLine:!1,wordWrap:"on",automaticLayout:!0};function u(){let[e,t]=(0,a.useState)({}),[n,o]=(0,a.useState)({1:!0}),[u,f]=(0,a.useState)({}),[m,x]=(0,a.useState)(null),g=(e,t)=>f(n=>({...n,[e]:t})),h=(e,n)=>t(t=>({...t,[e]:n})),b=e=>o(t=>{let n={};return d.forEach(e=>{n[e.id]=!1}),n[e]=!0,n}),y=async e=>{let t=d.find(t=>t.id===e);g(`load-${e}`,!0);try{let n=await fetch(`/api/translator/load?file=${t.file}`),r=await n.json();r.success?(h(e,r.content),1===e&&await j(r.content)):alert(r.error||"File not found")}catch(e){alert(e.message)}g(`load-${e}`,!1)},j=async e=>{try{let t="string"==typeof e?JSON.parse(e):e,n=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:1,body:t})}),r=await n.json();r.success&&x(r.result)}catch{}},_=(e,t)=>fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:e,content:t})}).catch(()=>{}),v=async()=>{g("toOpenAI",!0);try{let t=e[1],n=JSON.parse(t);_("1_req_client.json",t),_("2_req_source.json",JSON.stringify({timestamp:new Date().toISOString(),headers:{},body:n.body||n},null,2));let r=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:2,body:n})}),a=await r.json();if(!a.success)return void alert(a.error);let s=JSON.stringify(a.result.body,null,2);h(3,s),b(3)}catch(e){alert(e.message)}g("toOpenAI",!1)},O=async()=>{g("toTarget",!0);try{let t=e[3],n=JSON.parse(t);_("3_req_openai.json",t);let r=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:3,body:{...n,provider:m?.provider,model:m?.model}})}),a=await r.json();if(!a.success)return void alert(a.error);let s={...a.result,provider:m?.provider,model:m?.model};h(4,JSON.stringify(s,null,2)),b(4)}catch(e){alert(e.message)}g("toTarget",!1)},S=async()=>{g("send",!0);try{let t=e[4],n=JSON.parse(t);_("4_req_target.json",t);let r=n.provider||m?.provider,a=n.model||m?.model;if(!r||!a)return void alert("Missing provider or model. Please run step 1 first to detect them.");let s=await fetch("/api/translator/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:r,model:a,body:n.body||n})});if(!s.ok){let e=await s.json().catch(()=>({error:s.statusText}));alert(e.error||"Send failed");return}let l=s.body.getReader(),o=new TextDecoder,i="";for(;;){let{done:e,value:t}=await l.read();if(e)break;i+=o.decode(t,{stream:!0})}h(5,i),b(5),await fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:"5_res_provider.txt",content:i})})}catch(e){alert(e.message)}finally{g("send",!1)}},{copy:w}=(0,l.C)(),N=async t=>{e[t]&&w(e[t],`translator-step-${t}`)};return(0,r.jsxs)("div",{className:"p-8 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Translator Debug"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Replay request flow — matches log files"})]}),m&&(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:[(0,r.jsx)(p,{label:"src",value:m.sourceFormat,color:"blue"}),(0,r.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,r.jsx)(p,{label:"dst",value:m.targetFormat,color:"orange"}),(0,r.jsx)(p,{label:"provider",value:m.provider,color:"green"}),(0,r.jsx)(p,{label:"model",value:m.model,color:"purple"})]})]}),d.map(t=>{var a;let l=1===(a=t.id)?(0,r.jsx)(s.$n,{size:"sm",icon:"arrow_forward",loading:u.toOpenAI,onClick:v,children:"→ OpenAI"}):3===a?(0,r.jsx)(s.$n,{size:"sm",icon:"arrow_forward",loading:u.toTarget,onClick:O,children:"→ Target"}):4===a?(0,r.jsx)(s.$n,{size:"sm",icon:"send",loading:u.send,onClick:S,children:"Send"}):null,d=!!n[t.id],p=e[t.id]||"";return(0,r.jsx)(s.Zp,{children:(0,r.jsxs)("div",{className:"p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("button",{onClick:()=>{let e;return e=t.id,o(t=>({...t,[e]:!t[e]}))},className:"flex items-center gap-2 flex-1 text-left group",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px] text-text-muted group-hover:text-primary transition-colors",children:d?"expand_more":"chevron_right"}),(0,r.jsx)("span",{className:"text-xs font-mono text-text-muted/60 w-4",children:t.id}),(0,r.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:t.label}),(0,r.jsx)("span",{className:"text-xs text-text-muted/60 font-mono",children:t.file}),p&&(0,r.jsxs)("span",{className:"text-xs text-green-500",children:["(",p.length," chars)"]})]}),!d&&(0,r.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,r.jsx)(s.$n,{size:"sm",variant:"ghost",icon:"folder_open",loading:u[`load-${t.id}`],onClick:()=>y(t.id)}),l]})]}),d&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"border border-border rounded-lg overflow-hidden",children:(0,r.jsx)(i,{height:"400px",defaultLanguage:"text"===t.lang?"plaintext":"json",value:p,onChange:e=>{h(t.id,e||""),1===t.id&&j(e||"")},theme:"vs-dark",options:c})}),(0,r.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,r.jsx)(s.$n,{size:"sm",variant:"outline",icon:"folder_open",loading:u[`load-${t.id}`],onClick:()=>y(t.id),children:"Load"}),(0,r.jsx)(s.$n,{size:"sm",variant:"outline",icon:"data_object",onClick:()=>(t=>{try{let n=JSON.parse(e[t]);h(t,JSON.stringify(n,null,2))}catch{}})(t.id),children:"Format"}),(0,r.jsx)(s.$n,{size:"sm",variant:"outline",icon:"content_copy",onClick:()=>N(t.id),children:"Copy"}),l]})]})]})},t.id)})]})}function p({label:e,value:t,color:n}){return(0,r.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-mono ${{blue:"bg-blue-500/10 text-blue-500",orange:"bg-orange-500/10 text-orange-500",green:"bg-green-500/10 text-green-500",purple:"bg-purple-500/10 text-purple-500"}[n]}`,children:[(0,r.jsxs)("span",{className:"text-text-muted/70 font-sans text-[10px]",children:[e,":"]}),t]})}},75707:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let r=n(73623)._(n(68635));function a(e,t){let n={};"function"==typeof e&&(n.loader=e);let a={...n,...t};return(0,r.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},86081:(e,t,n)=>{Promise.resolve().then(n.bind(n,69472))}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=86081)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2825],{15090:(e,t,s)=>{Promise.resolve().then(s.bind(s,73314))},73314:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>N});var a=s(95155),l=s(12115),r=s(73321),n=s(35497),i=s(84588),o=s(92542),d=s(31474);function c({isOpen:e,onClose:t,title:s,children:r,width:n="md",className:i}){let o={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"};return((0,l.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,l.useEffect)(()=>{let s=s=>{"Escape"===s.key&&e&&t()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e)?(0,a.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:t,"aria-hidden":"true"}),(0,a.jsxs)("div",{className:(0,d.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle",o[n]||o.md,i),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,a.jsx)("div",{className:"flex items-center gap-3",children:s&&(0,a.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})}),(0,a.jsx)("button",{type:"button",onClick:t,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,a.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:r})]})]}):null}var x=s(50378),m=s(52679);let p=null,u=null;async function h(){if(p&&u)return{providerNameCache:p,providerNodesCache:u};let e=await fetch("/api/provider-nodes"),t=(await e.json()).nodes||[];for(let e of(u={},t))u[e.id]=e.name;return{providerNameCache:p={...m.Q2,...u},providerNodesCache:u}}function f(e,t){if(!e||!t)return e;let s=t[e];if("string"==typeof s)return s;if(s?.name)return s.name;let a=(0,m.zt)(e)||m.Q2[e];return a?.name||e}function b({title:e,children:t,defaultOpen:s=!1,icon:r=null}){let[n,i]=(0,l.useState)(s);return(0,a.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>i(!n),className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:r}),(0,a.jsx)("span",{className:"font-semibold text-sm text-text-main",children:e})]}),(0,a.jsx)("span",{className:(0,d.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",n?"rotate-90":""),children:"chevron_right"})]}),n&&(0,a.jsx)("div",{className:"p-4 border-t border-black/5 dark:border-white/5",children:t})]})}function g(e){let t=e?.prompt_tokens||e?.input_tokens||0,s=e?.cached_tokens||e?.cache_read_input_tokens||0;return t<s?s:t}function j(){let[e,t]=(0,l.useState)([]),[s,r]=(0,l.useState)({page:1,pageSize:20,totalItems:0,totalPages:0}),[n,m]=(0,l.useState)(!1),[p,u]=(0,l.useState)(null),[j,v]=(0,l.useState)(!1),[N,w]=(0,l.useState)([]),[k,y]=(0,l.useState)(null),[S,D]=(0,l.useState)({provider:"",startDate:"",endDate:""}),C=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/usage/providers"),t=await e.json();w(t.providers||[]);let s=await h();y(s.providerNameCache)}catch(e){console.error("Failed to fetch providers:",e)}},[]),P=(0,l.useCallback)(async()=>{m(!0);try{let e=new URLSearchParams({page:s.page.toString(),pageSize:s.pageSize.toString()});S.provider&&e.append("provider",S.provider),S.startDate&&e.append("startDate",S.startDate),S.endDate&&e.append("endDate",S.endDate);let a=await fetch(`/api/usage/request-details?${e}`),l=await a.json();t(l.details||[]),r(e=>({...e,...l.pagination}))}catch(e){console.error("Failed to fetch request details:",e)}finally{m(!1)}},[s.page,s.pageSize,S]);return(0,l.useEffect)(()=>{C()},[C]),(0,l.useEffect)(()=>{P()},[P]),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,a.jsx)(i.default,{padding:"md",children:(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,a.jsxs)("select",{id:"provider-filter",value:S.provider,onChange:e=>D({...S,provider:e.target.value}),className:(0,d.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","w-full min-w-0 cursor-pointer"),style:{colorScheme:"auto"},children:[(0,a.jsx)("option",{value:"",children:"All Providers"}),N.map(e=>(0,a.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,a.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:S.startDate,onChange:e=>D({...S,startDate:e.target.value}),className:(0,d.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,a.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,a.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:S.endDate,onChange:e=>D({...S,endDate:e.target.value}),className:(0,d.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,a.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,a.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,a.jsx)(o.default,{variant:"ghost",onClick:()=>{D({provider:"",startDate:"",endDate:""})},disabled:!S.provider&&!S.startDate&&!S.endDate,className:"w-full",children:"Clear Filters"})]})]})}),(0,a.jsxs)(i.default,{padding:"none",children:[(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,a.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,a.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,a.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,a.jsx)("tbody",{children:n?(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:(0,a.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]",children:"progress_activity"}),"Loading..."]})})}):0===e.length?(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:"No request details found"})}):e.map((e,t)=>(0,a.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,a.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(e.timestamp).toLocaleString()}),(0,a.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:e.model}),(0,a.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,a.jsx)("span",{className:"font-medium",children:f(e.provider,k)})}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:g(e.tokens).toLocaleString()}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:e.tokens?.completion_tokens?.toLocaleString()||0}),(0,a.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,a.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,a.jsxs)("div",{children:["TTFT: ",(0,a.jsxs)("span",{className:"font-mono",children:[e.latency?.ttft||0,"ms"]})]}),(0,a.jsxs)("div",{children:["Total: ",(0,a.jsxs)("span",{className:"font-mono",children:[e.latency?.total||0,"ms"]})]})]})}),(0,a.jsx)("td",{className:"p-4 text-center",children:(0,a.jsx)(o.default,{variant:"outline",size:"sm",onClick:()=>{u(e),v(!0)},children:"Detail"})})]},`${e.id}-${t}`))})]})}),!n&&e.length>0&&(0,a.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,a.jsx)(x.default,{currentPage:s.page,pageSize:s.pageSize,totalItems:s.totalItems,onPageChange:e=>{r(t=>({...t,page:e}))},onPageSizeChange:e=>{r(t=>({...t,pageSize:e,page:1}))}})})]}),(0,a.jsx)(c,{isOpen:j,onClose:()=>v(!1),title:"Request Details",width:"lg",children:p&&(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,a.jsx)("span",{className:"break-all font-mono text-text-main",children:p.id})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,a.jsx)("span",{className:"text-text-main",children:new Date(p.timestamp).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,a.jsx)("span",{className:"text-text-main font-medium",children:f(p.provider,k)})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:p.model})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,a.jsx)("span",{className:(0,d.cn)("font-medium","success"===p.status?"text-green-600":"text-red-600"),children:p.status})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,a.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",p.latency?.ttft||0,"ms / Total ",p.latency?.total||0,"ms"]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:g(p.tokens).toLocaleString()})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,a.jsx)("span",{className:"text-text-main font-mono",children:p.tokens?.completion_tokens?.toLocaleString()||0})]})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)(b,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(p.request,null,2)})}),p.providerRequest&&(0,a.jsx)(b,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(p.providerRequest,null,2)})}),p.providerResponse&&(0,a.jsx)(b,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof p.providerResponse?JSON.stringify(p.providerResponse,null,2):p.providerResponse})}),(0,a.jsxs)(b,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[p.response?.thinking&&(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,a.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:p.response.thinking})]}),(0,a.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,a.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:p.response?.content||"[No content]"})]})]})]})})]})}let v=[{value:"today",label:"Today"},{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function N(){return(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)(n.Qv,{}),children:(0,a.jsx)(w,{})})}function w(){let e=(0,r.useSearchParams)(),t=(0,r.useRouter)(),[s,i]=(0,l.useState)("today"),o=e.get("tab"),d=o&&["overview","logs","details"].includes(o)?o:"overview";return(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-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,a.jsx)(n.Iz,{options:[{value:"overview",label:"Overview"},{value:"details",label:"Details"}],value:d,onChange:s=>{if(s===d)return;let a=new URLSearchParams(e);a.set("tab",s),t.push(`/dashboard/usage?${a.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===d&&(0,a.jsx)(n.Iz,{options:v,value:s,onChange:i,size:"sm",className:"w-full sm:w-auto"})]}),"overview"===d&&(0,a.jsx)(l.Suspense,{fallback:(0,a.jsx)(n.Qv,{}),children:(0,a.jsx)(n.jK,{period:s,setPeriod:i,hidePeriodSelector:!0})}),"logs"===d&&(0,a.jsx)(n.gM,{}),"details"===d&&(0,a.jsx)(j,{})]})}}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=15090)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{54828:(e,s,n)=>{Promise.resolve().then(n.bind(n,96748)),Promise.resolve().then(n.bind(n,56319)),Promise.resolve().then(n.bind(n,56061)),Promise.resolve().then(n.bind(n,39835)),Promise.resolve().then(n.bind(n,92542)),Promise.resolve().then(n.bind(n,84588)),Promise.resolve().then(n.bind(n,40197)),Promise.resolve().then(n.bind(n,50382)),Promise.resolve().then(n.bind(n,21286)),Promise.resolve().then(n.bind(n,45455)),Promise.resolve().then(n.bind(n,30815)),Promise.resolve().then(n.bind(n,73579)),Promise.resolve().then(n.bind(n,92173)),Promise.resolve().then(n.bind(n,95088)),Promise.resolve().then(n.bind(n,8823)),Promise.resolve().then(n.bind(n,80752)),Promise.resolve().then(n.bind(n,23936)),Promise.resolve().then(n.bind(n,11910)),Promise.resolve().then(n.bind(n,61500)),Promise.resolve().then(n.bind(n,62899)),Promise.resolve().then(n.bind(n,94230)),Promise.resolve().then(n.bind(n,21931)),Promise.resolve().then(n.bind(n,91450)),Promise.resolve().then(n.bind(n,7648)),Promise.resolve().then(n.bind(n,25086)),Promise.resolve().then(n.bind(n,28815)),Promise.resolve().then(n.bind(n,28058)),Promise.resolve().then(n.bind(n,81127)),Promise.resolve().then(n.bind(n,72908)),Promise.resolve().then(n.bind(n,4823)),Promise.resolve().then(n.bind(n,90882)),Promise.resolve().then(n.bind(n,50378)),Promise.resolve().then(n.bind(n,51825)),Promise.resolve().then(n.bind(n,23615)),Promise.resolve().then(n.bind(n,28067)),Promise.resolve().then(n.bind(n,98)),Promise.resolve().then(n.bind(n,92622)),Promise.resolve().then(n.bind(n,21110)),Promise.resolve().then(n.bind(n,38587)),Promise.resolve().then(n.bind(n,98542)),Promise.resolve().then(n.bind(n,97677)),Promise.resolve().then(n.bind(n,4809))}},e=>{e.O(0,[2574,3862,2018,85,5497,8441,3794,7358],()=>e(e.s=54828)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,122,174,204,335,342,387,501,516,543,552,641,649,675,742,747,748,869,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1321,1337,1382,1446,1451,1512,1557,1566,1659,1666,1674,1697,1747,1860,1898,1907,1910,1945,1946,1949,2015,2074,2121,2154,2198,2284,2296,2366,2536,2757,2772,2785,2795,2797,2833,2845,2919,2922,3025,3038,3078,3079,3224,3295,3397,3399,3472,3549,3562,3568,3648,3705,3883,3888,4010,4057,4061,4093,4245,4286,4422,4444,4527,4612,4656,4674,4745,4761,4829,4896,4993,5018,5033,5107,5162,5177,5211,5226,5338,5460,5466,5568,5637,5685,5745,5746,5805,5922,5965,5990,6089,6091,6102,6107,6121,6268,6278,6319,6454,6463,6479,6529,6580,6594,6644,6664,6724,6740,6743,6776,6819,6872,6919,6988,7046,7111,7131,7158,7208,7241,7254,7306,7311,7423,7429,7445,7473,7508,7520,7758,7777,7824,7851,7858,8018,8026,8057,8141,8165,8167,8200,8207,8246,8264,8338,8453,8489,8573,8648,8736,8791,8814,8826,8870,8879,8918,8948,8974,8975,9027,9056,9069,9088,9120,9123,9141,9199,9321,9338,9359,9461,9515,9606,9678,9709,9762,9817,9903],{83093:()=>{}},_=>{_.O(0,[7408,1858,7358],()=>_(_.s=83093)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,122,174,204,335,342,387,501,516,543,552,641,649,675,742,747,748,869,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1321,1337,1382,1446,1451,1512,1557,1566,1659,1666,1674,1697,1747,1860,1898,1907,1910,1945,1946,1949,2015,2074,2121,2154,2198,2284,2296,2366,2536,2757,2772,2785,2795,2797,2833,2845,2919,2922,3025,3038,3078,3079,3224,3295,3397,3399,3472,3549,3562,3568,3648,3705,3883,3888,4010,4057,4061,4093,4245,4286,4422,4444,4527,4612,4656,4674,4745,4761,4829,4896,4993,5018,5033,5107,5162,5177,5211,5226,5338,5460,5466,5568,5637,5685,5745,5746,5805,5922,5965,5990,6089,6091,6102,6107,6121,6268,6278,6319,6454,6463,6479,6529,6580,6594,6644,6664,6724,6740,6743,6776,6819,6872,6919,6988,7046,7111,7131,7158,7208,7241,7254,7306,7311,7423,7429,7445,7473,7508,7520,7758,7777,7824,7851,7858,8018,8026,8057,8141,8165,8167,8200,8207,8246,8264,8338,8453,8489,8573,8648,8736,8791,8814,8826,8870,8879,8918,8948,8974,8975,9027,9056,9069,9088,9120,9123,9141,9199,9321,9338,9359,9461,9515,9606,9678,9709,9762,9817,9903],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9492],{9541:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(35949),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35949:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(95155),n=l(37356);function o({status:e,message:t}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:`${e}: ${t}`}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:e}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:t})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},37356:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},70269:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(9541)}])}},e=>{e.O(0,[8441,3794,7358],()=>e(e.s=70269)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,122,174,204,335,342,387,501,516,543,552,641,649,675,742,747,748,869,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1321,1337,1382,1446,1451,1512,1557,1566,1659,1666,1674,1697,1747,1860,1898,1907,1910,1945,1946,1949,2015,2074,2121,2154,2198,2284,2296,2366,2536,2757,2772,2785,2795,2797,2833,2845,2919,2922,3025,3038,3078,3079,3224,3295,3397,3399,3472,3549,3562,3568,3648,3705,3883,3888,4010,4057,4061,4093,4245,4286,4422,4444,4527,4612,4656,4674,4745,4761,4829,4896,4993,5018,5033,5107,5162,5177,5211,5226,5338,5460,5466,5568,5637,5685,5745,5746,5805,5922,5965,5990,6089,6091,6102,6107,6121,6268,6278,6319,6454,6463,6479,6529,6580,6594,6644,6664,6724,6740,6743,6776,6819,6872,6919,6988,7046,7111,7131,7158,7208,7241,7254,7306,7311,7423,7429,7445,7473,7508,7520,7758,7777,7824,7851,7858,8018,8026,8057,8141,8165,8167,8200,8207,8246,8264,8338,8453,8489,8573,8648,8736,8791,8814,8826,8870,8879,8918,8948,8974,8975,9027,9056,9069,9088,9120,9123,9141,9199,9321,9338,9359,9461,9515,9606,9678,9709,9762,9817,9903],{83093:()=>{}},_=>{_.O(0,[7408,1858,7358],()=>_(_.s=83093)),_N_E=_.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[39,122,174,204,335,342,387,501,516,543,552,641,649,675,742,747,748,869,907,931,948,992,997,1077,1088,1091,1110,1118,1200,1288,1321,1337,1382,1446,1451,1512,1557,1566,1659,1666,1674,1697,1747,1860,1898,1907,1910,1945,1946,1949,2015,2074,2121,2154,2198,2284,2296,2366,2536,2757,2772,2785,2795,2797,2833,2845,2919,2922,3025,3038,3078,3079,3224,3295,3397,3399,3472,3549,3562,3568,3648,3705,3883,3888,4010,4057,4061,4093,4245,4286,4422,4444,4527,4612,4656,4674,4745,4761,4829,4896,4993,5018,5033,5107,5162,5177,5211,5226,5338,5460,5466,5568,5637,5685,5745,5746,5805,5922,5965,5990,6089,6091,6102,6107,6121,6268,6278,6319,6454,6463,6479,6529,6580,6594,6644,6664,6724,6740,6743,6776,6819,6872,6919,6988,7046,7111,7131,7158,7208,7241,7254,7306,7311,7423,7429,7445,7473,7508,7520,7758,7777,7824,7851,7858,8018,8026,8057,8141,8165,8167,8200,8207,8246,8264,8338,8453,8489,8573,8648,8736,8791,8814,8826,8870,8879,8918,8948,8974,8975,9027,9056,9069,9088,9120,9123,9141,9199,9321,9338,9359,9461,9515,9606,9678,9709,9762,9817,9903],{84441:()=>{}},_=>{_.O(0,[8441,3794,7358],()=>_(_.s=84441)),_N_E=_.O()}]);