zevairouter 1.0.192 → 1.0.193

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 (1297) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +50 -3
  3. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  4. package/cli/app/.next-cli-build/app-path-routes-manifest.json +21 -11
  5. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  6. package/cli/app/.next-cli-build/prerender-manifest.json +24 -0
  7. package/cli/app/.next-cli-build/routes-manifest.json +66 -0
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +17 -18
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +2 -2
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -0
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -0
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -0
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +2 -2
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  87. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  90. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  93. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  95. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  96. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  100. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  101. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  102. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  103. package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  104. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  106. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  107. package/cli/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  108. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  109. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  110. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  111. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  112. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  113. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  114. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +15 -2
  131. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +15 -0
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -0
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route_client-reference-manifest.js +1 -0
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  168. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -0
  186. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js.nft.json +1 -0
  187. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route_client-reference-manifest.js +1 -0
  188. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  215. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  217. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
  229. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  295. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -0
  315. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -0
  316. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route_client-reference-manifest.js +1 -0
  317. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -0
  332. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -0
  333. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route_client-reference-manifest.js +1 -0
  334. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  362. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  368. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  376. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  378. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  383. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  385. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  389. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  391. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  393. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  395. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  397. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  399. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  401. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  403. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  414. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  420. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  426. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  428. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  429. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  435. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  439. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  442. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  445. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  454. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  456. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -0
  459. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -0
  460. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route_client-reference-manifest.js +1 -0
  461. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  467. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  474. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  478. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  481. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  482. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  483. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  487. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  488. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  489. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  490. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  491. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  492. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  493. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  494. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  495. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  496. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  497. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  498. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  499. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  500. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  501. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  502. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  503. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  504. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  505. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  506. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  507. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  508. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  509. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  510. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  511. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -0
  512. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -0
  513. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route_client-reference-manifest.js +1 -0
  514. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -0
  515. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -0
  516. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route_client-reference-manifest.js +1 -0
  517. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -0
  518. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -0
  519. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route_client-reference-manifest.js +1 -0
  520. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -0
  521. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -0
  522. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -0
  523. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  524. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  525. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  526. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  527. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  528. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  529. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  530. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  531. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  532. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  533. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  534. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  535. package/cli/app/.next-cli-build/server/app/callback/page.js +2 -2
  536. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  537. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  538. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  539. package/cli/app/.next-cli-build/server/app/callback.rsc +4 -4
  540. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  541. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  542. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  543. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  544. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  545. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  546. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  547. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +6 -6
  548. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  549. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  550. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  551. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  552. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +6 -6
  553. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  554. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +4 -4
  555. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  556. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  557. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  558. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  559. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  560. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  561. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  562. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  563. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  564. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  565. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  566. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  567. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  568. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  569. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  570. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  571. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  572. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  573. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  574. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  575. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  576. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  577. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  578. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  579. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  580. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  581. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  582. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  583. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  584. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  585. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  586. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  587. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +6 -6
  588. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  589. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  590. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  591. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  592. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +6 -6
  593. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  594. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +4 -4
  595. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  596. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  597. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  598. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  599. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  600. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  601. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  602. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  603. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  604. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  605. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  606. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  607. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  608. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  609. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  610. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  611. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  612. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  613. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  614. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  615. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  616. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  617. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  618. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  619. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  620. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  621. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  622. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  623. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  624. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  625. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  626. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  627. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  628. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +6 -6
  629. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  630. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  631. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  632. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  633. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +6 -6
  634. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  635. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +4 -4
  636. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  637. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  638. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  639. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  640. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  641. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  642. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  643. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  644. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  645. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  646. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  647. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  648. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  649. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  650. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  651. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  652. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  653. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  654. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  655. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  656. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  657. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  658. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  659. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  660. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  661. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  662. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  663. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  664. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  665. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  666. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  667. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  668. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  669. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  670. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  671. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  672. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  673. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  674. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  675. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  676. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  677. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  678. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  679. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +6 -6
  680. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  681. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  682. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  683. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  684. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +6 -6
  685. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  686. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +4 -4
  687. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  688. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  689. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  690. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  691. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  692. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  693. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  694. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  695. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  696. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  697. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  698. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  699. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +5 -5
  700. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  701. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  702. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  703. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  704. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  705. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +5 -5
  706. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  707. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  708. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  709. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -0
  710. package/cli/app/.next-cli-build/server/app/dashboard/skills.meta +17 -0
  711. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +26 -0
  712. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +9 -0
  713. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +5 -0
  714. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +5 -0
  715. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +6 -0
  716. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +26 -0
  717. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +6 -0
  718. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +8 -0
  719. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +5 -0
  720. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  721. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +6 -6
  722. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  723. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  724. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  725. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  726. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +6 -6
  727. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  728. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +4 -4
  729. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  730. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  731. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  732. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  733. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  734. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  735. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  736. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  737. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  738. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  739. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  740. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  741. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  742. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  743. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  744. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  745. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  746. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  747. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  748. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  749. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  750. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  751. package/cli/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  752. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  753. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  754. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  755. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  756. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  757. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  758. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  759. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  760. package/cli/app/.next-cli-build/server/app/index.rsc +4 -4
  761. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  762. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  763. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  764. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  765. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  766. package/cli/app/.next-cli-build/server/app/landing/page.js +2 -2
  767. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  768. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  769. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  770. package/cli/app/.next-cli-build/server/app/landing.rsc +5 -5
  771. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +5 -5
  772. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  773. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  774. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  775. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  776. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  777. package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
  778. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  779. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  780. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  781. package/cli/app/.next-cli-build/server/app/login.rsc +5 -5
  782. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  783. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  784. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  785. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  786. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  787. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  788. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  789. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  790. package/cli/app/.next-cli-build/server/app/page.js +2 -2
  791. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  792. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  793. package/cli/app/.next-cli-build/server/app-paths-manifest.json +21 -11
  794. package/cli/app/.next-cli-build/server/chunks/1051.js +1 -1
  795. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  796. package/cli/app/.next-cli-build/server/chunks/241.js +1 -1
  797. package/cli/app/.next-cli-build/server/chunks/2594.js +1 -0
  798. package/cli/app/.next-cli-build/server/chunks/3110.js +2 -2
  799. package/cli/app/.next-cli-build/server/chunks/3245.js +1 -1
  800. package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
  801. package/cli/app/.next-cli-build/server/chunks/3999.js +2 -2
  802. package/cli/app/.next-cli-build/server/chunks/4055.js +1 -1
  803. package/cli/app/.next-cli-build/server/chunks/412.js +2 -2
  804. package/cli/app/.next-cli-build/server/chunks/4177.js +1 -1
  805. package/cli/app/.next-cli-build/server/chunks/4404.js +1 -1
  806. package/cli/app/.next-cli-build/server/chunks/4566.js +1 -1
  807. package/cli/app/.next-cli-build/server/chunks/4621.js +1 -1
  808. package/cli/app/.next-cli-build/server/chunks/4632.js +1 -1
  809. package/cli/app/.next-cli-build/server/chunks/4720.js +1 -1
  810. package/cli/app/.next-cli-build/server/chunks/4721.js +2 -2
  811. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  812. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  813. package/cli/app/.next-cli-build/server/chunks/5217.js +1 -1
  814. package/cli/app/.next-cli-build/server/chunks/5272.js +1 -0
  815. package/cli/app/.next-cli-build/server/chunks/5295.js +1 -1
  816. package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
  817. package/cli/app/.next-cli-build/server/chunks/5330.js +4 -4
  818. package/cli/app/.next-cli-build/server/chunks/5436.js +2 -2
  819. package/cli/app/.next-cli-build/server/chunks/5470.js +1 -1
  820. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  821. package/cli/app/.next-cli-build/server/chunks/5800.js +1 -1
  822. package/cli/app/.next-cli-build/server/chunks/6306.js +1 -0
  823. package/cli/app/.next-cli-build/server/chunks/6492.js +1 -1
  824. package/cli/app/.next-cli-build/server/chunks/6652.js +1 -1
  825. package/cli/app/.next-cli-build/server/chunks/{2607.js → 6814.js} +44 -30
  826. package/cli/app/.next-cli-build/server/chunks/7239.js +1 -1
  827. package/cli/app/.next-cli-build/server/chunks/7250.js +1 -1
  828. package/cli/app/.next-cli-build/server/chunks/7276.js +1 -1
  829. package/cli/app/.next-cli-build/server/chunks/7319.js +46 -46
  830. package/cli/app/.next-cli-build/server/chunks/7774.js +26 -26
  831. package/cli/app/.next-cli-build/server/chunks/8028.js +1 -1
  832. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  833. package/cli/app/.next-cli-build/server/chunks/8274.js +1 -1
  834. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  835. package/cli/app/.next-cli-build/server/chunks/8895.js +2 -2
  836. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  837. package/cli/app/.next-cli-build/server/chunks/8910.js +2 -0
  838. package/cli/app/.next-cli-build/server/chunks/9048.js +1 -1
  839. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  840. package/cli/app/.next-cli-build/server/chunks/9609.js +1 -1
  841. package/cli/app/.next-cli-build/server/functions-config-manifest.json +3 -0
  842. package/cli/app/.next-cli-build/server/instrumentation.js +1 -1
  843. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  844. package/cli/app/.next-cli-build/server/middleware.js +2 -2
  845. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  846. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  847. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  848. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  849. package/cli/app/.next-cli-build/static/chunks/5013-0a29f80c29f9d1df.js +70 -0
  850. package/cli/app/.next-cli-build/static/chunks/523-6328fbe601833f42.js +3 -0
  851. package/cli/app/.next-cli-build/static/chunks/{5497-6ca1837aad0c6a5d.js → 5497-065b18b00cc75f89.js} +2 -2
  852. package/cli/app/.next-cli-build/static/chunks/620-eff5be5f2102af92.js +1 -0
  853. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-bd827e591cfc8125.js → page-d0eab68d26a6c8dd.js} +1 -1
  854. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-80ae115554408efe.js → page-ad3a80f25ab53e9e.js} +1 -1
  855. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-c3d7b126bbcdeaa2.js +1 -0
  856. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-f12cb6a2bcaec9fe.js +58 -0
  857. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-146309ef654004c5.js → page-582192ff2deb4283.js} +2 -2
  858. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-9216318a6a117917.js → page-31ff11d0e98b18b4.js} +1 -1
  859. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-be7d9bbb3ce0bb40.js +3 -0
  860. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-45653981cfd3e9ff.js +1 -0
  861. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-0e14e25d17dbce65.js +1 -0
  862. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-70d91c4985cf0c22.js +1 -0
  863. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-291768216d5fb9ea.js +1 -0
  864. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-291768216d5fb9ea.js +1 -0
  865. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-291768216d5fb9ea.js +1 -0
  866. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-291768216d5fb9ea.js +1 -0
  867. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-291768216d5fb9ea.js +1 -0
  868. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-291768216d5fb9ea.js +1 -0
  869. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-291768216d5fb9ea.js +1 -0
  870. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-291768216d5fb9ea.js +1 -0
  871. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-291768216d5fb9ea.js +1 -0
  872. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-291768216d5fb9ea.js +1 -0
  873. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-291768216d5fb9ea.js +1 -0
  874. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-291768216d5fb9ea.js +1 -0
  875. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-291768216d5fb9ea.js +1 -0
  876. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-291768216d5fb9ea.js +1 -0
  877. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-291768216d5fb9ea.js +1 -0
  878. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-291768216d5fb9ea.js +1 -0
  879. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-291768216d5fb9ea.js +1 -0
  880. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-291768216d5fb9ea.js +1 -0
  881. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-291768216d5fb9ea.js +1 -0
  882. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-291768216d5fb9ea.js +1 -0
  883. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-291768216d5fb9ea.js +1 -0
  884. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-291768216d5fb9ea.js +1 -0
  885. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-291768216d5fb9ea.js +1 -0
  886. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-291768216d5fb9ea.js +1 -0
  887. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-291768216d5fb9ea.js +1 -0
  888. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-291768216d5fb9ea.js +1 -0
  889. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-291768216d5fb9ea.js +1 -0
  890. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-291768216d5fb9ea.js +1 -0
  891. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-291768216d5fb9ea.js +1 -0
  892. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-291768216d5fb9ea.js +1 -0
  893. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-291768216d5fb9ea.js +1 -0
  894. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-291768216d5fb9ea.js +1 -0
  895. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-291768216d5fb9ea.js +1 -0
  896. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-291768216d5fb9ea.js +1 -0
  897. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-291768216d5fb9ea.js +1 -0
  898. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-291768216d5fb9ea.js +1 -0
  899. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-291768216d5fb9ea.js +1 -0
  900. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-291768216d5fb9ea.js +1 -0
  901. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-291768216d5fb9ea.js +1 -0
  902. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-291768216d5fb9ea.js +1 -0
  903. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-291768216d5fb9ea.js +1 -0
  904. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-291768216d5fb9ea.js +1 -0
  905. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-291768216d5fb9ea.js +1 -0
  906. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-291768216d5fb9ea.js +1 -0
  907. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-291768216d5fb9ea.js +1 -0
  908. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-291768216d5fb9ea.js +1 -0
  909. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-291768216d5fb9ea.js +1 -0
  910. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-291768216d5fb9ea.js +1 -0
  911. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-291768216d5fb9ea.js +1 -0
  912. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-291768216d5fb9ea.js +1 -0
  913. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-291768216d5fb9ea.js +1 -0
  914. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-291768216d5fb9ea.js +1 -0
  915. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-291768216d5fb9ea.js +1 -0
  916. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-291768216d5fb9ea.js +1 -0
  917. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-291768216d5fb9ea.js +1 -0
  918. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-291768216d5fb9ea.js +1 -0
  919. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-291768216d5fb9ea.js +1 -0
  920. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-291768216d5fb9ea.js +1 -0
  921. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-291768216d5fb9ea.js +1 -0
  922. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-291768216d5fb9ea.js +1 -0
  923. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-291768216d5fb9ea.js +1 -0
  924. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-291768216d5fb9ea.js +1 -0
  925. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-291768216d5fb9ea.js +1 -0
  926. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-291768216d5fb9ea.js +1 -0
  927. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-291768216d5fb9ea.js +1 -0
  928. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  929. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  930. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  931. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  932. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-291768216d5fb9ea.js +1 -0
  933. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  934. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  935. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  936. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  937. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-291768216d5fb9ea.js +1 -0
  938. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  939. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  940. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  941. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  942. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-291768216d5fb9ea.js +1 -0
  943. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-291768216d5fb9ea.js +1 -0
  944. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-291768216d5fb9ea.js +1 -0
  945. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  946. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  947. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  948. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  949. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-291768216d5fb9ea.js +1 -0
  950. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-291768216d5fb9ea.js +1 -0
  951. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-291768216d5fb9ea.js +1 -0
  952. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-291768216d5fb9ea.js +1 -0
  953. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-291768216d5fb9ea.js +1 -0
  954. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-291768216d5fb9ea.js +1 -0
  955. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-291768216d5fb9ea.js +1 -0
  956. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  957. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  958. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  959. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  960. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-291768216d5fb9ea.js +1 -0
  961. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-291768216d5fb9ea.js +1 -0
  962. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-291768216d5fb9ea.js +1 -0
  963. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-291768216d5fb9ea.js +1 -0
  964. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-291768216d5fb9ea.js +1 -0
  965. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  966. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  967. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  968. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  969. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-291768216d5fb9ea.js +1 -0
  970. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-291768216d5fb9ea.js +1 -0
  971. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-291768216d5fb9ea.js +1 -0
  972. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-291768216d5fb9ea.js +1 -0
  973. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-291768216d5fb9ea.js +1 -0
  974. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-291768216d5fb9ea.js +1 -0
  975. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-291768216d5fb9ea.js +1 -0
  976. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-291768216d5fb9ea.js +1 -0
  977. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-291768216d5fb9ea.js +1 -0
  978. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-291768216d5fb9ea.js +1 -0
  979. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-291768216d5fb9ea.js +1 -0
  980. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-291768216d5fb9ea.js +1 -0
  981. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-291768216d5fb9ea.js +1 -0
  982. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-291768216d5fb9ea.js +1 -0
  983. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-291768216d5fb9ea.js +1 -0
  984. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-291768216d5fb9ea.js +1 -0
  985. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-291768216d5fb9ea.js +1 -0
  986. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-291768216d5fb9ea.js +1 -0
  987. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-291768216d5fb9ea.js +1 -0
  988. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-291768216d5fb9ea.js +1 -0
  989. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-291768216d5fb9ea.js +1 -0
  990. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-291768216d5fb9ea.js +1 -0
  991. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-291768216d5fb9ea.js +1 -0
  992. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-291768216d5fb9ea.js +1 -0
  993. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-291768216d5fb9ea.js +1 -0
  994. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-291768216d5fb9ea.js +1 -0
  995. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-291768216d5fb9ea.js +1 -0
  996. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-291768216d5fb9ea.js +1 -0
  997. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-291768216d5fb9ea.js +1 -0
  998. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-291768216d5fb9ea.js +1 -0
  999. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-291768216d5fb9ea.js +1 -0
  1000. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-291768216d5fb9ea.js +1 -0
  1001. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-291768216d5fb9ea.js +1 -0
  1002. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-291768216d5fb9ea.js +1 -0
  1003. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-291768216d5fb9ea.js +1 -0
  1004. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-291768216d5fb9ea.js +1 -0
  1005. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-291768216d5fb9ea.js +1 -0
  1006. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-291768216d5fb9ea.js +1 -0
  1007. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-291768216d5fb9ea.js +1 -0
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-291768216d5fb9ea.js +1 -0
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-291768216d5fb9ea.js +1 -0
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-291768216d5fb9ea.js +1 -0
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-291768216d5fb9ea.js +1 -0
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-291768216d5fb9ea.js +1 -0
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-291768216d5fb9ea.js +1 -0
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-291768216d5fb9ea.js +1 -0
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-291768216d5fb9ea.js +1 -0
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-291768216d5fb9ea.js +1 -0
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-291768216d5fb9ea.js +1 -0
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-291768216d5fb9ea.js +1 -0
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-291768216d5fb9ea.js +1 -0
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-291768216d5fb9ea.js +1 -0
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-291768216d5fb9ea.js +1 -0
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-291768216d5fb9ea.js +1 -0
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-291768216d5fb9ea.js +1 -0
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-291768216d5fb9ea.js +1 -0
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-291768216d5fb9ea.js +1 -0
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-291768216d5fb9ea.js +1 -0
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-291768216d5fb9ea.js +1 -0
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-291768216d5fb9ea.js +1 -0
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-291768216d5fb9ea.js +1 -0
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-291768216d5fb9ea.js +1 -0
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-291768216d5fb9ea.js +1 -0
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-291768216d5fb9ea.js +1 -0
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-291768216d5fb9ea.js +1 -0
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-291768216d5fb9ea.js +1 -0
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-291768216d5fb9ea.js +1 -0
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-291768216d5fb9ea.js +1 -0
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-291768216d5fb9ea.js +1 -0
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-291768216d5fb9ea.js +1 -0
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-291768216d5fb9ea.js +1 -0
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-291768216d5fb9ea.js +1 -0
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-291768216d5fb9ea.js +1 -0
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-291768216d5fb9ea.js +1 -0
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-291768216d5fb9ea.js +1 -0
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-291768216d5fb9ea.js +1 -0
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-291768216d5fb9ea.js +1 -0
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-291768216d5fb9ea.js +1 -0
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-291768216d5fb9ea.js +1 -0
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-291768216d5fb9ea.js +1 -0
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-291768216d5fb9ea.js +1 -0
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-291768216d5fb9ea.js +1 -0
  1051. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-291768216d5fb9ea.js +1 -0
  1052. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-291768216d5fb9ea.js +1 -0
  1053. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-291768216d5fb9ea.js +1 -0
  1054. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-291768216d5fb9ea.js +1 -0
  1055. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-291768216d5fb9ea.js +1 -0
  1056. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-291768216d5fb9ea.js +1 -0
  1057. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-291768216d5fb9ea.js +1 -0
  1058. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-291768216d5fb9ea.js +1 -0
  1059. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-291768216d5fb9ea.js +1 -0
  1060. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-291768216d5fb9ea.js +1 -0
  1061. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-291768216d5fb9ea.js +1 -0
  1062. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-291768216d5fb9ea.js +1 -0
  1063. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-291768216d5fb9ea.js +1 -0
  1064. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-291768216d5fb9ea.js +1 -0
  1065. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-291768216d5fb9ea.js +1 -0
  1066. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-291768216d5fb9ea.js +1 -0
  1067. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-291768216d5fb9ea.js +1 -0
  1068. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-291768216d5fb9ea.js +1 -0
  1069. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-291768216d5fb9ea.js +1 -0
  1070. package/cli/app/.next-cli-build/static/chunks/app/page-291768216d5fb9ea.js +1 -0
  1071. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-291768216d5fb9ea.js +1 -0
  1072. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-291768216d5fb9ea.js +1 -0
  1073. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-291768216d5fb9ea.js +1 -0
  1074. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-291768216d5fb9ea.js +1 -0
  1075. package/cli/app/.next-cli-build/static/css/0bac84af14d15099.css +1 -0
  1076. package/cli/app/.next-cli-build/static/r5teJm8bgs0FZjPHFVwj6/_buildManifest.js +1 -0
  1077. package/cli/app/CHANGELOG.md +16 -0
  1078. package/cli/app/package.json +5 -4
  1079. package/cli/app/src/lib/db/migrate.js +8 -2
  1080. package/cli/cli.js +14 -0
  1081. package/cli/package.json +1 -1
  1082. package/cli/src/cli/commands/xaiVideo.js +300 -0
  1083. package/package.json +5 -4
  1084. package/cli/app/.next-cli-build/static/EEihXestozORJ8znRIdjp/_buildManifest.js +0 -1
  1085. package/cli/app/.next-cli-build/static/chunks/523-24d141baca2cf3ac.js +0 -3
  1086. package/cli/app/.next-cli-build/static/chunks/620-249977f9b2e0b7fa.js +0 -1
  1087. package/cli/app/.next-cli-build/static/chunks/6617-24b58186724a353a.js +0 -56
  1088. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a24beb4d9b7bc1c2.js +0 -1
  1089. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-a17208b586055f9b.js +0 -59
  1090. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-5482865f680033fb.js +0 -3
  1091. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-7abc7eb028939fe1.js +0 -1
  1092. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-be41e2947cffd2de.js +0 -1
  1093. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-019be2a89a04d0df.js +0 -1
  1094. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-019be2a89a04d0df.js +0 -1
  1095. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-019be2a89a04d0df.js +0 -1
  1096. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-019be2a89a04d0df.js +0 -1
  1097. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-019be2a89a04d0df.js +0 -1
  1098. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-019be2a89a04d0df.js +0 -1
  1099. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-019be2a89a04d0df.js +0 -1
  1100. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-019be2a89a04d0df.js +0 -1
  1101. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-019be2a89a04d0df.js +0 -1
  1102. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-019be2a89a04d0df.js +0 -1
  1103. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-019be2a89a04d0df.js +0 -1
  1104. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-019be2a89a04d0df.js +0 -1
  1105. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-019be2a89a04d0df.js +0 -1
  1106. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-019be2a89a04d0df.js +0 -1
  1107. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-019be2a89a04d0df.js +0 -1
  1108. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-019be2a89a04d0df.js +0 -1
  1109. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-019be2a89a04d0df.js +0 -1
  1110. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-019be2a89a04d0df.js +0 -1
  1111. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-019be2a89a04d0df.js +0 -1
  1112. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-019be2a89a04d0df.js +0 -1
  1113. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-019be2a89a04d0df.js +0 -1
  1114. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-019be2a89a04d0df.js +0 -1
  1115. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-019be2a89a04d0df.js +0 -1
  1116. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-019be2a89a04d0df.js +0 -1
  1117. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-019be2a89a04d0df.js +0 -1
  1118. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-019be2a89a04d0df.js +0 -1
  1119. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-019be2a89a04d0df.js +0 -1
  1120. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-019be2a89a04d0df.js +0 -1
  1121. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-019be2a89a04d0df.js +0 -1
  1122. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-019be2a89a04d0df.js +0 -1
  1123. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-019be2a89a04d0df.js +0 -1
  1124. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-019be2a89a04d0df.js +0 -1
  1125. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-019be2a89a04d0df.js +0 -1
  1126. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-019be2a89a04d0df.js +0 -1
  1127. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-019be2a89a04d0df.js +0 -1
  1128. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-019be2a89a04d0df.js +0 -1
  1129. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-019be2a89a04d0df.js +0 -1
  1130. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-019be2a89a04d0df.js +0 -1
  1131. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-019be2a89a04d0df.js +0 -1
  1132. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-019be2a89a04d0df.js +0 -1
  1133. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-019be2a89a04d0df.js +0 -1
  1134. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-019be2a89a04d0df.js +0 -1
  1135. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-019be2a89a04d0df.js +0 -1
  1136. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-019be2a89a04d0df.js +0 -1
  1137. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-019be2a89a04d0df.js +0 -1
  1138. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-019be2a89a04d0df.js +0 -1
  1139. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-019be2a89a04d0df.js +0 -1
  1140. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-019be2a89a04d0df.js +0 -1
  1141. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-019be2a89a04d0df.js +0 -1
  1142. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-019be2a89a04d0df.js +0 -1
  1143. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-019be2a89a04d0df.js +0 -1
  1144. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-019be2a89a04d0df.js +0 -1
  1145. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-019be2a89a04d0df.js +0 -1
  1146. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-019be2a89a04d0df.js +0 -1
  1147. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-019be2a89a04d0df.js +0 -1
  1148. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-019be2a89a04d0df.js +0 -1
  1149. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-019be2a89a04d0df.js +0 -1
  1150. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-019be2a89a04d0df.js +0 -1
  1151. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-019be2a89a04d0df.js +0 -1
  1152. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-019be2a89a04d0df.js +0 -1
  1153. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-019be2a89a04d0df.js +0 -1
  1154. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-019be2a89a04d0df.js +0 -1
  1155. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-019be2a89a04d0df.js +0 -1
  1156. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1157. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1158. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1159. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1160. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-019be2a89a04d0df.js +0 -1
  1161. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1162. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1163. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1164. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1165. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-019be2a89a04d0df.js +0 -1
  1166. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1167. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1168. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1169. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1170. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-019be2a89a04d0df.js +0 -1
  1171. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-019be2a89a04d0df.js +0 -1
  1172. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-019be2a89a04d0df.js +0 -1
  1173. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1174. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1175. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1176. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1177. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-019be2a89a04d0df.js +0 -1
  1178. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-019be2a89a04d0df.js +0 -1
  1179. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-019be2a89a04d0df.js +0 -1
  1180. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-019be2a89a04d0df.js +0 -1
  1181. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-019be2a89a04d0df.js +0 -1
  1182. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-019be2a89a04d0df.js +0 -1
  1183. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-019be2a89a04d0df.js +0 -1
  1184. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1185. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1186. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1187. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1188. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-019be2a89a04d0df.js +0 -1
  1189. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-019be2a89a04d0df.js +0 -1
  1190. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-019be2a89a04d0df.js +0 -1
  1191. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-019be2a89a04d0df.js +0 -1
  1192. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1193. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1194. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1195. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1196. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-019be2a89a04d0df.js +0 -1
  1197. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-019be2a89a04d0df.js +0 -1
  1198. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-019be2a89a04d0df.js +0 -1
  1199. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-019be2a89a04d0df.js +0 -1
  1200. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-019be2a89a04d0df.js +0 -1
  1201. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-019be2a89a04d0df.js +0 -1
  1202. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-019be2a89a04d0df.js +0 -1
  1203. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-019be2a89a04d0df.js +0 -1
  1204. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-019be2a89a04d0df.js +0 -1
  1205. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-019be2a89a04d0df.js +0 -1
  1206. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-019be2a89a04d0df.js +0 -1
  1207. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-019be2a89a04d0df.js +0 -1
  1208. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-019be2a89a04d0df.js +0 -1
  1209. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-019be2a89a04d0df.js +0 -1
  1210. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-019be2a89a04d0df.js +0 -1
  1211. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-019be2a89a04d0df.js +0 -1
  1212. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-019be2a89a04d0df.js +0 -1
  1213. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-019be2a89a04d0df.js +0 -1
  1214. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-019be2a89a04d0df.js +0 -1
  1215. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-019be2a89a04d0df.js +0 -1
  1216. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-019be2a89a04d0df.js +0 -1
  1217. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-019be2a89a04d0df.js +0 -1
  1218. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-019be2a89a04d0df.js +0 -1
  1219. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-019be2a89a04d0df.js +0 -1
  1220. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-019be2a89a04d0df.js +0 -1
  1221. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-019be2a89a04d0df.js +0 -1
  1222. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-019be2a89a04d0df.js +0 -1
  1223. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-019be2a89a04d0df.js +0 -1
  1224. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-019be2a89a04d0df.js +0 -1
  1225. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-019be2a89a04d0df.js +0 -1
  1226. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-019be2a89a04d0df.js +0 -1
  1227. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-019be2a89a04d0df.js +0 -1
  1228. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-019be2a89a04d0df.js +0 -1
  1229. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-019be2a89a04d0df.js +0 -1
  1230. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-019be2a89a04d0df.js +0 -1
  1231. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-019be2a89a04d0df.js +0 -1
  1232. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-019be2a89a04d0df.js +0 -1
  1233. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-019be2a89a04d0df.js +0 -1
  1234. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-019be2a89a04d0df.js +0 -1
  1235. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-019be2a89a04d0df.js +0 -1
  1236. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-019be2a89a04d0df.js +0 -1
  1237. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-019be2a89a04d0df.js +0 -1
  1238. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-019be2a89a04d0df.js +0 -1
  1239. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-019be2a89a04d0df.js +0 -1
  1240. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-019be2a89a04d0df.js +0 -1
  1241. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-019be2a89a04d0df.js +0 -1
  1242. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-019be2a89a04d0df.js +0 -1
  1243. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-019be2a89a04d0df.js +0 -1
  1244. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-019be2a89a04d0df.js +0 -1
  1245. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-019be2a89a04d0df.js +0 -1
  1246. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-019be2a89a04d0df.js +0 -1
  1247. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-019be2a89a04d0df.js +0 -1
  1248. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-019be2a89a04d0df.js +0 -1
  1249. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-019be2a89a04d0df.js +0 -1
  1250. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-019be2a89a04d0df.js +0 -1
  1251. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-019be2a89a04d0df.js +0 -1
  1252. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-019be2a89a04d0df.js +0 -1
  1253. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-019be2a89a04d0df.js +0 -1
  1254. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-019be2a89a04d0df.js +0 -1
  1255. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-019be2a89a04d0df.js +0 -1
  1256. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-019be2a89a04d0df.js +0 -1
  1257. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-019be2a89a04d0df.js +0 -1
  1258. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-019be2a89a04d0df.js +0 -1
  1259. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-019be2a89a04d0df.js +0 -1
  1260. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-019be2a89a04d0df.js +0 -1
  1261. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-019be2a89a04d0df.js +0 -1
  1262. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-019be2a89a04d0df.js +0 -1
  1263. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-019be2a89a04d0df.js +0 -1
  1264. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-019be2a89a04d0df.js +0 -1
  1265. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-019be2a89a04d0df.js +0 -1
  1266. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-019be2a89a04d0df.js +0 -1
  1267. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-019be2a89a04d0df.js +0 -1
  1268. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-019be2a89a04d0df.js +0 -1
  1269. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-019be2a89a04d0df.js +0 -1
  1270. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-019be2a89a04d0df.js +0 -1
  1271. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-019be2a89a04d0df.js +0 -1
  1272. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-019be2a89a04d0df.js +0 -1
  1273. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-019be2a89a04d0df.js +0 -1
  1274. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-019be2a89a04d0df.js +0 -1
  1275. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-019be2a89a04d0df.js +0 -1
  1276. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-019be2a89a04d0df.js +0 -1
  1277. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-019be2a89a04d0df.js +0 -1
  1278. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-019be2a89a04d0df.js +0 -1
  1279. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-019be2a89a04d0df.js +0 -1
  1280. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-019be2a89a04d0df.js +0 -1
  1281. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-019be2a89a04d0df.js +0 -1
  1282. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-019be2a89a04d0df.js +0 -1
  1283. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-019be2a89a04d0df.js +0 -1
  1284. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-019be2a89a04d0df.js +0 -1
  1285. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-019be2a89a04d0df.js +0 -1
  1286. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-019be2a89a04d0df.js +0 -1
  1287. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-019be2a89a04d0df.js +0 -1
  1288. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-019be2a89a04d0df.js +0 -1
  1289. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-019be2a89a04d0df.js +0 -1
  1290. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-019be2a89a04d0df.js +0 -1
  1291. package/cli/app/.next-cli-build/static/chunks/app/page-019be2a89a04d0df.js +0 -1
  1292. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-019be2a89a04d0df.js +0 -1
  1293. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-019be2a89a04d0df.js +0 -1
  1294. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-019be2a89a04d0df.js +0 -1
  1295. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-019be2a89a04d0df.js +0 -1
  1296. package/cli/app/.next-cli-build/static/css/da8bb26878f01d92.css +0 -1
  1297. /package/cli/app/.next-cli-build/static/{EEihXestozORJ8znRIdjp → r5teJm8bgs0FZjPHFVwj6}/_ssgManifest.js +0 -0
@@ -0,0 +1,300 @@
1
+ /**
2
+ * `zevai xai video` — generate a Grok Imagine video through the local
3
+ * ZevaiRouter gateway and save the result as an MP4 file.
4
+ *
5
+ * Flow: POST /v1/videos/generations → poll GET /v1/videos/{request_id}
6
+ * until done/failed/timeout → download video.url → atomic rename.
7
+ *
8
+ * No OAuth tokens or Authorization headers are ever printed.
9
+ */
10
+
11
+ const http = require("http");
12
+ const https = require("https");
13
+ const fs = require("fs");
14
+ const path = require("path");
15
+
16
+ const DEFAULT_PORT = 1997;
17
+ const DEFAULT_HOST = "127.0.0.1";
18
+ const DEFAULT_MODEL = "xai/grok-imagine-video";
19
+ const DEFAULT_TIMEOUT_SEC = 600;
20
+ const DEFAULT_POLL_INTERVAL_MS = 5000;
21
+
22
+ const TERMINAL_STATUSES = new Set(["done", "failed", "completed", "error", "expired", "cancelled"]);
23
+ const FAILED_STATUSES = new Set(["failed", "error", "expired", "cancelled"]);
24
+
25
+ const HELP = `
26
+ Usage: zevai xai video --prompt "..." [options]
27
+
28
+ Generate a Grok Imagine video via your local ZevaiRouter gateway
29
+ (requires a connected xAI account — Grok Build OAuth or API key).
30
+
31
+ Options:
32
+ --prompt <text> Video description (required)
33
+ --output <file> Output MP4 path (default: video.mp4)
34
+ --model <id> Model (default: ${DEFAULT_MODEL})
35
+ --duration <seconds> Video duration
36
+ --aspect-ratio <ratio> e.g. 16:9, 9:16, 1:1
37
+ --resolution <res> 480p | 720p | 1080p
38
+ --image <path-or-url> Image input for image-to-video
39
+ --timeout <seconds> Max wait for the job (default: ${DEFAULT_TIMEOUT_SEC})
40
+ --port <port> Gateway port (default: ${DEFAULT_PORT})
41
+ --host <host> Gateway host (default: ${DEFAULT_HOST})
42
+ --api-key <key> ZevaiRouter API key (or env ZEVAI_API_KEY)
43
+ -h, --help Show this help
44
+ `;
45
+
46
+ function sanitizeText(text) {
47
+ return String(text ?? "").replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi, "Bearer [redacted]");
48
+ }
49
+
50
+ function parseArgs(argv) {
51
+ const opts = {
52
+ model: DEFAULT_MODEL,
53
+ output: "video.mp4",
54
+ timeoutSec: DEFAULT_TIMEOUT_SEC,
55
+ port: DEFAULT_PORT,
56
+ host: DEFAULT_HOST,
57
+ apiKey: process.env.ZEVAI_API_KEY || null,
58
+ pollIntervalMs: DEFAULT_POLL_INTERVAL_MS,
59
+ };
60
+ for (let i = 0; i < argv.length; i++) {
61
+ const a = argv[i];
62
+ const next = () => argv[++i];
63
+ if (a === "--prompt") opts.prompt = next();
64
+ else if (a === "--output" || a === "-o") opts.output = next();
65
+ else if (a === "--model") opts.model = next();
66
+ else if (a === "--duration") opts.duration = parseInt(next(), 10);
67
+ else if (a === "--aspect-ratio") opts.aspectRatio = next();
68
+ else if (a === "--resolution") opts.resolution = next();
69
+ else if (a === "--image") opts.image = next();
70
+ else if (a === "--timeout") opts.timeoutSec = parseInt(next(), 10) || DEFAULT_TIMEOUT_SEC;
71
+ else if (a === "--port" || a === "-p") opts.port = parseInt(next(), 10) || DEFAULT_PORT;
72
+ else if (a === "--host" || a === "-H") opts.host = next() || DEFAULT_HOST;
73
+ else if (a === "--api-key") opts.apiKey = next();
74
+ else if (a === "--poll-interval-ms") opts.pollIntervalMs = parseInt(next(), 10) || DEFAULT_POLL_INTERVAL_MS;
75
+ else if (a === "-h" || a === "--help") opts.help = true;
76
+ else {
77
+ throw new Error(`Unknown option: ${a}`);
78
+ }
79
+ }
80
+ return opts;
81
+ }
82
+
83
+ /** Local file path → base64 data URL; URLs pass through untouched. */
84
+ function imageInputToUrl(input) {
85
+ if (/^(https?:|data:)/i.test(input)) return input;
86
+ const buf = fs.readFileSync(input);
87
+ const ext = path.extname(input).toLowerCase();
88
+ const mime = ext === ".png" ? "image/png" : ext === ".webp" ? "image/webp" : "image/jpeg";
89
+ return `data:${mime};base64,${buf.toString("base64")}`;
90
+ }
91
+
92
+ /** Minimal JSON request against the local gateway. Returns { status, headers, body }. */
93
+ function gatewayRequest({ host, port, apiKey, method, reqPath, body, signal }) {
94
+ return new Promise((resolve, reject) => {
95
+ const payload = body ? JSON.stringify(body) : null;
96
+ const headers = { Accept: "application/json" };
97
+ if (payload) {
98
+ headers["Content-Type"] = "application/json";
99
+ headers["Content-Length"] = Buffer.byteLength(payload);
100
+ }
101
+ if (apiKey) headers.Authorization = `Bearer ${apiKey}`;
102
+
103
+ const req = http.request({ hostname: host, port, path: reqPath, method, headers, signal }, (res) => {
104
+ let data = "";
105
+ res.on("data", (c) => (data += c));
106
+ res.on("end", () => {
107
+ let parsed = null;
108
+ try { parsed = data ? JSON.parse(data) : null; } catch { /* keep raw */ }
109
+ resolve({ status: res.statusCode, headers: res.headers, body: parsed, raw: data });
110
+ });
111
+ });
112
+ req.on("error", reject);
113
+ if (payload) req.write(payload);
114
+ req.end();
115
+ });
116
+ }
117
+
118
+ const sleep = (ms, signal) =>
119
+ new Promise((resolve, reject) => {
120
+ const t = setTimeout(resolve, ms);
121
+ signal?.addEventListener?.("abort", () => { clearTimeout(t); reject(new Error("aborted")); }, { once: true });
122
+ });
123
+
124
+ /**
125
+ * Poll GET /v1/videos/{id} until a terminal status or deadline.
126
+ * @returns {Promise<object>} final poll body (status done) — throws on failed/timeout.
127
+ */
128
+ async function pollUntilDone({ host, port, apiKey, requestId, connectionId, timeoutSec, pollIntervalMs, signal, onProgress }) {
129
+ const deadline = Date.now() + timeoutSec * 1000;
130
+ while (true) {
131
+ if (signal?.aborted) throw new Error("aborted");
132
+ if (Date.now() > deadline) {
133
+ throw new Error(`Timed out after ${timeoutSec}s waiting for video job ${requestId}`);
134
+ }
135
+
136
+ const res = await gatewayRequestWithConnection({ host, port, apiKey, requestId, connectionId, signal });
137
+ if (res.status === 200 && res.body) {
138
+ const status = String(res.body.status || "").toLowerCase();
139
+ onProgress?.(status || "pending", res.body.progress);
140
+ if (FAILED_STATUSES.has(status)) {
141
+ const msg = res.body.error?.message || res.body.error || "video generation failed";
142
+ throw new Error(`Job ${requestId} failed: ${sanitizeText(typeof msg === "string" ? msg : JSON.stringify(msg))}`);
143
+ }
144
+ if (TERMINAL_STATUSES.has(status)) return res.body;
145
+ } else if (res.status >= 400 && res.status !== 429 && res.status !== 503) {
146
+ throw new Error(`Polling failed (HTTP ${res.status}): ${sanitizeText(res.raw?.slice(0, 300))}`);
147
+ }
148
+ await sleep(pollIntervalMs, signal);
149
+ }
150
+ }
151
+
152
+ function gatewayRequestWithConnection({ host, port, apiKey, requestId, connectionId, signal }) {
153
+ return new Promise((resolve, reject) => {
154
+ const headers = { Accept: "application/json" };
155
+ if (apiKey) headers.Authorization = `Bearer ${apiKey}`;
156
+ if (connectionId) headers["x-connection-id"] = connectionId;
157
+ const req = http.request(
158
+ { hostname: host, port, path: `/v1/videos/${encodeURIComponent(requestId)}`, method: "GET", headers, signal },
159
+ (res) => {
160
+ let data = "";
161
+ res.on("data", (c) => (data += c));
162
+ res.on("end", () => {
163
+ let parsed = null;
164
+ try { parsed = data ? JSON.parse(data) : null; } catch { /* keep raw */ }
165
+ resolve({ status: res.statusCode, body: parsed, raw: data });
166
+ });
167
+ }
168
+ );
169
+ req.on("error", reject);
170
+ req.end();
171
+ });
172
+ }
173
+
174
+ /**
175
+ * Download a URL to `outputPath` via a `.part` temp file with atomic rename.
176
+ * The temp file is removed on any failure.
177
+ */
178
+ async function downloadToFile(url, outputPath, { signal } = {}) {
179
+ const partPath = `${outputPath}.part`;
180
+ await new Promise((resolve, reject) => {
181
+ const cleanupAnd = (fn) => (err) => {
182
+ try { fs.unlinkSync(partPath); } catch { /* not created yet */ }
183
+ fn(err);
184
+ };
185
+ const get = (target, redirectsLeft) => {
186
+ const mod = target.startsWith("https:") ? https : http;
187
+ const req = mod.get(target, { signal }, (res) => {
188
+ if (res.statusCode >= 300 && res.statusCode < 400 && res.headers.location && redirectsLeft > 0) {
189
+ res.resume();
190
+ return get(new URL(res.headers.location, target).toString(), redirectsLeft - 1);
191
+ }
192
+ if (res.statusCode !== 200) {
193
+ res.resume();
194
+ return cleanupAnd(reject)(new Error(`Download failed: HTTP ${res.statusCode}`));
195
+ }
196
+ const out = fs.createWriteStream(partPath);
197
+ res.pipe(out);
198
+ out.on("finish", () => out.close(resolve));
199
+ out.on("error", cleanupAnd(reject));
200
+ res.on("error", cleanupAnd(reject));
201
+ });
202
+ req.on("error", cleanupAnd(reject));
203
+ };
204
+ get(url, 5);
205
+ });
206
+ fs.renameSync(partPath, outputPath);
207
+ }
208
+
209
+ async function run(argv) {
210
+ let opts;
211
+ try {
212
+ opts = parseArgs(argv);
213
+ } catch (err) {
214
+ console.error(`❌ ${err.message}`);
215
+ console.log(HELP);
216
+ return 1;
217
+ }
218
+ if (opts.help) {
219
+ console.log(HELP);
220
+ return 0;
221
+ }
222
+ if (!opts.prompt) {
223
+ console.error("❌ --prompt is required");
224
+ console.log(HELP);
225
+ return 1;
226
+ }
227
+
228
+ const controller = new AbortController();
229
+ const partPath = `${opts.output}.part`;
230
+ const onSigint = () => {
231
+ controller.abort();
232
+ try { fs.unlinkSync(partPath); } catch { /* absent */ }
233
+ console.error("\n✋ Cancelled");
234
+ process.exit(130);
235
+ };
236
+ process.on("SIGINT", onSigint);
237
+
238
+ try {
239
+ const body = { model: opts.model, prompt: opts.prompt };
240
+ if (opts.duration) body.duration = opts.duration;
241
+ if (opts.aspectRatio) body.aspect_ratio = opts.aspectRatio;
242
+ if (opts.resolution) body.resolution = opts.resolution;
243
+ if (opts.image) body.image = { url: imageInputToUrl(opts.image) };
244
+
245
+ console.log(`🎬 Requesting video (${opts.model})…`);
246
+ const create = await gatewayRequest({
247
+ host: opts.host, port: opts.port, apiKey: opts.apiKey,
248
+ method: "POST", reqPath: "/v1/videos/generations", body, signal: controller.signal,
249
+ });
250
+
251
+ if (create.status !== 200 || !create.body?.request_id) {
252
+ const detail = create.body?.error?.message || create.body?.error || create.raw || `HTTP ${create.status}`;
253
+ console.error(`❌ Create failed: ${sanitizeText(typeof detail === "string" ? detail : JSON.stringify(detail)).slice(0, 500)}`);
254
+ if (create.status === 400 && /No credentials/i.test(String(detail))) {
255
+ console.error(" Connect an xAI account first: dashboard → Providers → xAI (Grok).");
256
+ }
257
+ return 1;
258
+ }
259
+
260
+ const requestId = create.body.request_id;
261
+ const connectionId = create.headers["x-zevai-connection-id"] || null;
262
+ console.log(`📋 Job accepted: ${requestId}`);
263
+
264
+ let lastLine = "";
265
+ const result = await pollUntilDone({
266
+ host: opts.host, port: opts.port, apiKey: opts.apiKey,
267
+ requestId, connectionId,
268
+ timeoutSec: opts.timeoutSec, pollIntervalMs: opts.pollIntervalMs,
269
+ signal: controller.signal,
270
+ onProgress: (status, progress) => {
271
+ const line = `⏳ ${status}${Number.isFinite(progress) ? ` ${progress}%` : ""}`;
272
+ if (line !== lastLine) {
273
+ lastLine = line;
274
+ if (process.stdout.isTTY) process.stdout.write(`\r\x1b[K${line}`);
275
+ else console.log(line);
276
+ }
277
+ },
278
+ });
279
+ if (process.stdout.isTTY) process.stdout.write("\n");
280
+
281
+ const videoUrl = result.video?.url || result.video?.file_output?.public_url;
282
+ if (!videoUrl) {
283
+ console.error("❌ Job finished but no video URL was returned");
284
+ return 1;
285
+ }
286
+
287
+ console.log("⬇️ Downloading…");
288
+ await downloadToFile(videoUrl, opts.output, { signal: controller.signal });
289
+ console.log(`✅ Saved ${opts.output}`);
290
+ return 0;
291
+ } catch (err) {
292
+ if (process.stdout.isTTY) process.stdout.write("\n");
293
+ console.error(`❌ ${sanitizeText(err?.message || String(err))}`);
294
+ return 1;
295
+ } finally {
296
+ process.removeListener("SIGINT", onSigint);
297
+ }
298
+ }
299
+
300
+ module.exports = { run, parseArgs, pollUntilDone, downloadToFile, imageInputToUrl, sanitizeText };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter",
3
- "version": "1.0.192",
3
+ "version": "1.0.193",
4
4
  "description": "Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard",
5
5
  "bin": {
6
6
  "zevai": "cli/cli.js"
@@ -47,12 +47,13 @@
47
47
  "comment_optional_runtime": "Optional packages are installed into ~/.zevai/runtime instead of the published tarball. Automation uses CloakBrowser with playwright-core; ZEVAI_MINIMAL_POSTINSTALL=1 skips its browser download. Other lazy runtimes are better-sqlite3, node-pty, and systray2.",
48
48
  "overrides": {
49
49
  "body-parser": "^2.3.0",
50
- "brace-expansion": "5.0.8",
50
+ "brace-expansion": "5.0.9",
51
51
  "dompurify": "^3.4.12",
52
+ "ip-address": "^10.4.0",
52
53
  "postcss": "^8.5.10",
53
54
  "sharp": "^0.35.0"
54
55
  },
55
- "comment_overrides": "Security floors for transitive dependencies. ESLint's legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.8; modern minimatch uses 5.0.8 directly. Monaco still pins an old DOMPurify; Express and Next may resolve vulnerable body-parser/sharp releases. Recheck and remove overrides once parent packages require fixed versions.",
56
+ "comment_overrides": "Security floors for transitive dependencies. ESLint's legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.9; modern minimatch uses 5.0.9 directly. Monaco still pins an old DOMPurify; Express and Next may resolve vulnerable body-parser/sharp releases. Recheck and remove overrides once parent packages require fixed versions.",
56
57
  "devDependencies": {
57
58
  "@dnd-kit/core": "^6.3.1",
58
59
  "@dnd-kit/modifiers": "^9.0.0",
@@ -90,7 +91,7 @@
90
91
  "socks": "^2.8.9",
91
92
  "socks-proxy-agent": "^10.1.0",
92
93
  "tailwindcss": "^4",
93
- "undici": "^8.7.0",
94
+ "undici": "^8.10.0",
94
95
  "uuid": "^14.0.1",
95
96
  "vitest": "^4.1.10",
96
97
  "zustand": "^5.0.10"
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,s,t){return{__rewrites:{afterFiles:[{has:e,source:"/v1/v1/:path*",destination:s},{has:e,source:"/v1/v1",destination:t},{has:e,source:"/codex/:path*",destination:"/api/v1/responses"},{has:e,source:"/v1/:path*",destination:s},{has:e,source:"/v1",destination:t}],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:184,errorRate:1e-4,numBits:3528,numHashes:14,bitArray:[1,1,1,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,1,1,1,1,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,0,1,0,1,0,1,0,1,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,0,1,1,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,1,0,1,0,1,1,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0,1,1,1,0,1,0,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,1,1,0,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,0,1,1,0,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,0,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0,1,0,1,1,1,1,0,0,1,0,0,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,0,1,0,0,1,0,1,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,0,1,1,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,0,1,1,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,1,0,0,1,0,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,1,0,0,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,1,1,0,0,1,1,0,1,1,0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,1,1,1,0,1,0,1,1,1,0,1,0,0,0,0,1,1,1,0,1,0,1,0,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1,1,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,1,0,1,0,1,0,0,1,1,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,0,0,1,0,1,1,0,1,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,1,1,0,1,1,1,0,0,0,1,0,0,1,0,0,1,1,1,1,0,1,0,0,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,1,0,0,0,1,0,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,1,1,0,1,1,1,0,1,0,1,0,1,0,1,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1,1,0,0,1,0,0,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,1,0,1,1,1,1,1,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,0,1,1,1,1,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,0,1,1,1,1,1,0,1,0,0,0,1,0,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,1,1,1,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,0,1,0,0,0,1,1,1,0,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0,1,1,0,0,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,0,1,1,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1,0,1,0,1,1,0,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,1,1,0,1,0,0,1,0,1,1,0,1,1,1,0,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,1,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,1,1,0,1,1,1,0,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,0,0,1,0,1,1,0,0,0,1,0,1,1,0,1,0,0,1,0,0,1,1,0,1,0,1,1,0,0,1,0,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,1,0,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,0,0,1,0,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,1,1,0,0,1,0,0,0,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,1,0,0,1,1,1,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,1,1,1,0,1,0,1,1,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,0,1,0,0,0,0,1,0,1,1,0,0,1,1,1,0,0,0,1,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,0,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1,0,0,1,0,1,1,1,0,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,1,1,0,1,0,0,1,1,1,1,0,1,0,1,0,0,0,0,0,0,1,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,0,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,1,0,1,0,1,1,1,0,1,0,0,1,1,1,0,0,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,0,0,1,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,1,0,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,0,0,1,1,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,1,0,0,0,0,1,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,1,0,1,0,0,1,0,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,1,1,1,0,0,1,0,0,1,1,0,1,0,0,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,1,0,1,1,0,0,1,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,1,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,0,1,1,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,1,0,1,0,1,1,0,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,0,1,1,0,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,1]},__routerFilterDynamic:{numItems:25,errorRate:1e-4,numBits:480,numHashes:14,bitArray:[0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,1,1,0,1,0,0,1,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,1,0,0,0,1,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,0,0,1,0,0,1,0,1,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,1,0,1,0,1,1,0,0,0,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,1,1,0,1,1,0,1,0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,0,1,0,1,0,1,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,1,1,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,0,0,0,0]},sortedPages:["/_app"]}}(void 0,"/api/v1/:path*","/api/v1"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1,3 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[523],{80523:(e,t,s)=>{Promise.resolve().then(s.bind(s,95907))},95907:(e,t,s)=>{"use strict";s.d(t,{default:()=>h});var r=s(95155),a=s(12115),l=s(14051),n=s.n(l),i=s(98500),o=s.n(i),c=s(35497),d=s(11059);let m=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}];async function u(e){if(!e)return!1;try{return(await fetch(`${e}/api/health`,{mode:"cors",cache:"no-store",signal:AbortSignal.timeout(5e3)})).ok}catch{return!1}}async function x(...e){let t=e.filter(Boolean).map(u);return!!t.length&&new Promise(e=>{let s=t.length;t.forEach(t=>t.then(t=>{t?e(!0):0==--s&&e(!1)}))})}function h({machineId:e}){let[t,s]=(0,a.useState)([]),[l,n]=(0,a.useState)(!0),[i,b]=(0,a.useState)(!1),[j,w]=(0,a.useState)(""),[k,v]=(0,a.useState)(null),[N,C]=(0,a.useState)(null),[S,T]=(0,a.useState)(null),[_,$]=(0,a.useState)(null),[P,E]=(0,a.useState)(()=>new Set),[A,I]=(0,a.useState)(()=>({})),[z,D]=(0,a.useState)(!1),[U,R]=(0,a.useState)(!0),[F,O]=(0,a.useState)(!0),[L,q]=(0,a.useState)(!1),[W,K]=(0,a.useState)(!0),[M,J]=(0,a.useState)(!1),[B,H]=(0,a.useState)(!1),[Z,V]=(0,a.useState)(""),[Q,X]=(0,a.useState)(""),[G,Y]=(0,a.useState)(!1),[ee,et]=(0,a.useState)(""),[es,er]=(0,a.useState)(null),[ea,el]=(0,a.useState)(!1),[en,ei]=(0,a.useState)(!1),[eo,ec]=(0,a.useState)(!1),[ed,em]=(0,a.useState)(!1),[eu,ex]=(0,a.useState)(""),[eh,ep]=(0,a.useState)(!1),[eg,ey]=(0,a.useState)(""),[ef,eb]=(0,a.useState)(null),[ej,ew]=(0,a.useState)(""),[ek,ev]=(0,a.useState)(""),[eN,eC]=(0,a.useState)(null),[eS,eT]=(0,a.useState)(!1),[e_,e$]=(0,a.useState)([]),[eP,eE]=(0,a.useState)(""),[eA,eI]=(0,a.useState)(!1),[ez,eD]=(0,a.useState)(!1),[eU,eR]=(0,a.useState)(!1),eF=(0,a.useRef)(null),eO=(0,a.useRef)(0),eL=(0,a.useRef)(0),eq=(0,a.useRef)(0),eW=(0,a.useRef)(0),eK=(0,a.useRef)(!1),eM=(0,a.useRef)(!1),eJ=(0,a.useRef)(!1),eB=(0,a.useRef)(!1),[eH,eZ]=(0,a.useState)(!1),[eV,eQ]=(0,a.useState)(!1),[eX,eG]=(0,a.useState)(!1);(0,a.useEffect)(()=>{eG(!["localhost","127.0.0.1","::1"].includes(window.location.hostname))},[]);let{copied:eY,copy:e0}=(0,d.C)(),e1=!U||!F,e5=U?"Change the default dashboard password before activating the tunnel.":'Enable "Require login" and set a custom password before activating the tunnel.';(0,a.useEffect)(()=>{eF.current&&(eF.current.scrollTop=eF.current.scrollHeight)},[e_]),(0,a.useEffect)(()=>{e9(),e4()},[]),(0,a.useEffect)(()=>{if(!(M||eo))return;let e=!M||B,t=!eo||ed,s=()=>{document.hidden||e3()};document.addEventListener("visibilitychange",s);let r=setInterval(()=>{document.hidden||e3()},e&&t?3e4:5e3);return()=>{clearInterval(r),document.removeEventListener("visibilitychange",s)}},[M,eo,B,ed]),(0,a.useEffect)(()=>{let e=async()=>{if(!document.hidden){if(M&&(Z||Q)){let e=await x(Q,Z);eK.current=e,e?(eq.current=0,H(!0),eJ.current||(eJ.current=!0,eZ(!0))):(eq.current+=1,eq.current>=5&&H(!1))}else eK.current=!1;if(eo&&eu){let e=await u(eu);eM.current=e,e?(eW.current=0,em(!0),eB.current||(eB.current=!0,eQ(!0))):(eW.current+=1,eW.current>=5&&em(!1))}else eM.current=!1}};if(!(M&&(Z||Q)||eo&&eu))return;e();let t=!eo||ed,s=setInterval(e,(!M||B)&&t?6e4:1e4);return()=>clearInterval(s)},[M,Z,Q,eo,eu,B,ed]);let e2=(0,a.useCallback)((e,t,s,r,a,l)=>{t.current?(s.current=0,r(!0),a.current||(a.current=!0,l(!0))):(s.current+=1,s.current>=5&&r(!1))},[]),e3=async()=>{try{let e=await fetch("/api/tunnel/status",{cache:"no-store"});if(!e.ok)return;let t=await e.json(),s=t.tunnel?.settingsEnabled??t.tunnel?.enabled??!1,r=t.tunnel?.tunnelUrl||"";V(r),X(t.tunnel?.publicUrl||""),J(s),e2(null,eK,eq,H,eJ,eZ);let a=t.tailscale?.settingsEnabled??t.tailscale?.enabled??!1,l=t.tailscale?.tunnelUrl||"";ex(l),ec(a),e2(null,eM,eW,em,eB,eQ)}catch{}},e4=async()=>{K(!0);try{let[e,t]=await Promise.all([fetch("/api/settings"),fetch("/api/tunnel/status",{cache:"no-store"})]);if(e.ok){let t=await e.json();D(t.requireApiKey||!1),R(!1!==t.requireLogin),O(t.hasPassword||!1),q(t.tunnelDashboardAccess||!1)}if(t.ok){let e=await t.json(),s=e.tunnel?.settingsEnabled??e.tunnel?.enabled??!1,r=e.tunnel?.tunnelUrl||"";V(r),X(e.tunnel?.publicUrl||""),J(s),e2(null,eK,eq,H,eJ,eZ);let a=e.tailscale?.settingsEnabled??e.tailscale?.enabled??!1,l=e.tailscale?.tunnelUrl||"";ex(l),ec(a),e2(null,eM,eW,em,eB,eQ)}}catch(e){console.log("Error loading settings:",e)}finally{K(!1)}},e8=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:e})})).ok&&q(e)}catch(e){console.log("Error updating tunnelDashboardAccess:",e)}},e6=async e=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:e})})).ok&&D(e)}catch(e){console.log("Error updating requireApiKey:",e)}},e9=async()=>{try{let e=await fetch("/api/keys"),t=await e.json();e.ok&&s(t.keys||[])}catch(e){console.log("Error fetching data:",e)}finally{n(!1)}},e7=async(e,...t)=>{let s=()=>eO.current===e;Y(!0),et("Waiting for tunnel ready...");let r=t.filter(Boolean).map(e=>`${e}/api/health`),a=Date.now();for(;Date.now()-a<3e5;){if(await new Promise(e=>setTimeout(e,2e3)),!s())return!1;let e=await Promise.any(r.map(async e=>{if((await fetch(e,{mode:"cors",cache:"no-store"})).ok)return!0;throw Error("not ready")})).catch(()=>!1);if(!s())return!1;if(e)return J(!0),Y(!1),et(""),!0;if((Date.now()-a)%1e4<2e3)try{let e=await fetch("/api/tunnel/status");if(e.ok){let t=await e.json();if(!t.tunnel?.enabled)return er({type:"error",message:"Tunnel process stopped unexpectedly."}),Y(!1),et(""),!1}}catch{}}return er({type:"error",message:"Tunnel created but not reachable. Please try again."}),Y(!1),et(""),!1},te=async()=>{el(!1);let e=eO.current+1;eO.current=e;let t=()=>eO.current===e;Y(!0),er(null),et("Creating tunnel...");let s=!0;(async()=>{for(;s&&t();){try{let e=await fetch("/api/tunnel/status");if(e.ok){let r=await e.json();r.download?.downloading?et(`Downloading cloudflared... ${r.download.progress}%`):s&&t()&&et("Creating tunnel...")}}catch{}await new Promise(e=>setTimeout(e,1e3))}})();try{let r=await fetch("/api/tunnel/enable",{method:"POST"});s=!1;let a=await r.json();if(!t())return;if(!r.ok)return void er({type:"error",message:a.error||"Failed to enable tunnel"});let l=a.tunnelUrl;if(!l)return void er({type:"error",message:"No tunnel URL returned"});V(l),X(a.publicUrl||""),await e7(e,a.publicUrl,l)}catch(e){t()&&er({type:"error",message:e.message})}finally{s=!1,t()&&(Y(!1),et(""))}},tt=async()=>{Y(!0),er(null);try{let e=await fetch("/api/tunnel/disable",{method:"POST"}),t=await e.json();e.ok?(J(!1),V(""),ei(!1),er({type:"success",message:"Tunnel disabled"})):er({type:"error",message:t.error||"Failed to disable tunnel"})}catch(e){er({type:"error",message:e.message})}finally{Y(!1)}},ts=async()=>{eC(null);try{let e=await fetch("/api/tunnel/tailscale-check");if(e.ok){let t=await e.json();return eC(t.installed),t}}catch{}return eC(!1),{installed:!1}},tr=async()=>{eT(!0),eb(null),e$([]);try{let e=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:eP})});if(eE(""),!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`Install failed (${e.status})`)}let t=e.body.getReader(),s=new TextDecoder,r="";for(;;){let{done:e,value:a}=await t.read();if(e)break;let l=(r+=s.decode(a,{stream:!0})).split("\n\n");for(let e of(r=l.pop()||"",l)){let t=e.split("\n"),s="progress",r=null;for(let e of t)if(e.startsWith("event: ")&&(s=e.slice(7).trim()),e.startsWith("data: "))try{r=JSON.parse(e.slice(6))}catch{}if(r)if("progress"===s)e$(e=>[...e.slice(-50),r.message]);else if("done"===s){eC(!0),eT(!1),eD(!1),ti();return}else"error"===s&&eb({type:"error",message:r.error||"Install failed"})}}}catch(e){eb({type:"error",message:e.message})}finally{eT(!1)}},ta=async(e,t)=>{let s=()=>eL.current===e;ey("Waiting for Tailscale ready...");let r=`${t}/api/health`,a=Date.now();for(;Date.now()-a<3e5&&(await new Promise(e=>setTimeout(e,2e3)),s());)try{let e=await fetch(r,{mode:"no-cors",cache:"no-store"});if(e.ok||"opaque"===e.type)return!0}catch{}return!1},tl=(e,t)=>{ew(e),ev(t)},tn=()=>{ew(""),ev("")},ti=async()=>{eD(!1);let e=eL.current+1;eL.current=e;let t=()=>eL.current===e;eI(!0),ep(!0),eb(null),ey("Connecting..."),tn();try{let s=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),r=await s.json();if(!t())return;if(s.ok&&r.success){ex(r.tunnelUrl||"");let s=await ta(e,r.tunnelUrl);if(!t())return;ec(!0),eb(s?null:{type:"warning",message:"Connected but not reachable yet."});return}if(r.needsLogin&&r.authUrl){tl(r.authUrl,"Open Login Page"),ey('Login required — click "Open Login Page" to continue');for(let s=0;s<40;s++){if(await new Promise(e=>setTimeout(e,3e3)),!t())return;try{let s=await fetch("/api/tunnel/tailscale-check");if(s.ok&&(await s.json()).loggedIn){tn(),ey("Starting funnel...");let s=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),r=await s.json();if(!t())return;if(s.ok&&r.success){ex(r.tunnelUrl||"");let s=await ta(e,r.tunnelUrl);if(!t())return;ec(!0),eb(s?null:{type:"warning",message:"Connected but not reachable yet."})}else r.funnelNotEnabled&&r.enableUrl?await to(e,r.enableUrl):eb({type:"error",message:r.error||"Failed to start funnel"});return}}catch{}}tn(),eb({type:"error",message:"Login timed out. Please try again."});return}if(r.funnelNotEnabled&&r.enableUrl)return void await to(e,r.enableUrl);eb({type:"error",message:r.error||"Failed to connect"})}catch(e){t()&&eb({type:"error",message:e.message})}finally{t()&&(ep(!1),eI(!1),ey(""),tn())}},to=async(e,t)=>{let s=()=>eL.current===e;tl(t,"Open Funnel Settings"),ey('Click "Open Funnel Settings" to enable Funnel...');for(let t=0;t<40;t++){if(await new Promise(e=>setTimeout(e,3e3)),!s())return;try{let t=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),r=await t.json();if(!s())return;if(t.ok&&r.success){tn(),ex(r.tunnelUrl||"");let t=await ta(e,r.tunnelUrl);if(!s())return;ec(!0),eb(t?null:{type:"warning",message:"Connected but not reachable yet."});return}if(r.funnelNotEnabled)continue;if(r.error){tn(),eb({type:"error",message:r.error});return}}catch{}}tn(),eb({type:"error",message:"Timed out waiting for Funnel to be enabled."})},tc=async()=>{ep(!0),eb(null);try{let e=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),t=await e.json();e.ok?(ec(!1),ex(""),eR(!1),eb({type:"success",message:"Tailscale disabled"})):eb({type:"error",message:t.error||"Failed to disable Tailscale"})}catch(e){eb({type:"error",message:e.message})}finally{ep(!1)}},td=async()=>{eb(null),e$([]);let e=await ts();e?.installed&&e?.hasCachedPassword?ti():eD(!0)},tm=async e=>{if(e.preventDefault(),j.trim()&&!S){T("create"),$(null);try{let e=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j})}),t=await e.json();if(!e.ok)throw Error(t.error||`Failed to create key (${e.status})`);v(t.key),t.id&&t.key&&I(e=>({...e,[t.id]:t.key})),await e9(),w(""),b(!1),$({type:"success",message:"API key created"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}},tu=async(e,t)=>{if(!S){T(`toggle:${e}`),$(null);try{let r=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:t})});if(!r.ok)throw Error(`Failed to update key (${r.status})`);s(s=>s.map(s=>s.id===e?{...s,isActive:t}:s)),$({type:"success",message:"API key updated"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}},tx=async(e,t,r)=>{if(S)return;let a=""===r?0:Math.max(0,Number(r)||0);T(`budget:${e}`),$(null);try{let r=await fetch(`/api/keys/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({[t]:a})});if(!r.ok)throw Error(`Failed to update budget (${r.status})`);s(s=>s.map(s=>s.id===e?{...s,[t]:a}:s)),$({type:"success",message:"Budget updated"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}},th=async e=>{if(A[e])return A[e];let t=await fetch(`/api/keys/${e}?reveal=1`,{cache:"no-store"}),s=await t.json().catch(()=>({}));if(!t.ok)throw Error(s.error||`Failed to reveal key (${t.status})`);let r=s.key?.key||s.key;if("string"!=typeof r||!r)throw Error("Key secret is not available");return I(t=>({...t,[e]:r})),r},tp=async e=>{if(P.has(e))return void E(t=>{let s=new Set(t);return s.delete(e),s});try{await th(e),E(t=>{let s=new Set(t);return s.add(e),s}),$(null)}catch(e){$({type:"error",message:e.message})}},tg=async e=>{try{let t=await th(e);e0(t,e),$(null)}catch(e){$({type:"error",message:e.message})}},[ty,tf]=(0,a.useState)("/v1");return((0,a.useEffect)(()=>{tf(`${window.location.origin}/v1`)},[]),l)?(0,r.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,r.jsx)(c.Qv,{}),(0,r.jsx)(c.Qv,{})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-6 lg:gap-7",children:[(0,r.jsxs)(c.Zp,{padding:"none",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 rounded-t-[13px] border-b border-border-subtle bg-linear-to-r from-primary/[0.07] via-primary/[0.025] to-transparent px-4 py-4 sm:px-5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/12 text-[22px] text-primary ring-1 ring-primary/15",children:"terminal"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"API Endpoint"}),(0,r.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:"Choose how local and remote clients connect to Zevai Router."})]})]}),(0,r.jsxs)("div",{className:"p-4 sm:p-5",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)(p,{label:"Local",url:ty,copyId:"local_url",copied:eY,onCopy:e0}),(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,r.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${M?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),M&&!G&&B?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.pd,{"aria-label":"Cloudflare Tunnel endpoint URL",value:`${Q||Z}/v1`,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,r.jsx)("button",{onClick:()=>e0(`${Q||Z}/v1`,"tunnel_url"),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===eY?"check":"content_copy"})}),(0,r.jsx)("button",{onClick:()=>ei(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tunnel",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!M||G||B?G?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),ee||"Creating tunnel..."]}),(0,r.jsx)("button",{onClick:()=>{eO.current+=1,Y(!1),et("")},className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):es?.type==="error"?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),es.message]}),(0,r.jsx)(c.$n,{size:"sm",icon:"cloud_upload",className:"min-h-11 sm:min-h-8",onClick:()=>el(!0),children:"Enable"})]}):W?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,r.jsx)("button",{onClick:()=>K(!1),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,r.jsx)(c.$n,{size:"sm",icon:"cloud_upload",className:"min-h-11 sm:min-h-8",onClick:()=>{e1?er({type:"error",message:`Security required: ${e5}`}):z?el(!0):er({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eH?"Tunnel reconnecting...":"Tunnel checking..."]}),(0,r.jsx)("button",{onClick:()=>ei(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tunnel",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]}),(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,r.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${eo?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),eo&&!eh&&ed?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(c.pd,{"aria-label":"Tailscale endpoint URL",value:`${eu}/v1`,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,r.jsx)("button",{onClick:()=>e0(`${eu}/v1`,"ts_url"),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===eY?"check":"content_copy"})}),(0,r.jsx)("button",{onClick:()=>eR(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tailscale",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):!eo||eh||ed?eh||eA?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eg||"Connecting..."]}),ej&&(0,r.jsx)(c.$n,{size:"sm",icon:"open_in_new",onClick:()=>window.open(ej,"tailscale_auth","width=600,height=700,noopener,noreferrer"),children:ek||"Open"}),(0,r.jsx)("button",{onClick:()=>{eL.current+=1,ep(!1),eI(!1),ey(""),tn()},className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Stop",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ef?.type==="error"?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ef.message]}),(0,r.jsx)(c.$n,{size:"sm",icon:"vpn_lock",className:"min-h-11 sm:min-h-8",onClick:td,children:"Enable"})]}):(0,r.jsx)(c.$n,{size:"sm",icon:"vpn_lock",onClick:()=>{e1?eb({type:"error",message:`Security required: ${e5}`}):td()},className:"min-h-11 sm:min-h-8",children:"Enable"}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-amber-300 dark:border-amber-800 bg-amber-500/5 text-sm text-amber-600 dark:text-amber-400",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),eV?"Tailscale reconnecting...":"Tailscale checking..."]}),(0,r.jsx)("button",{onClick:()=>eR(!0),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-red-500 transition-colors hover:bg-red-500/10 sm:size-9 sm:rounded-lg",title:"Disable Tailscale",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]})]})]}),e1&&!M&&!eo&&(0,r.jsx)("div",{className:"mt-4",children:(0,r.jsx)(f,{message:e5,action:{label:"Open settings",href:"/dashboard/profile"}})}),(M||eo)&&(0,r.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!z&&(0,r.jsx)(f,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!U||!F)&&(0,r.jsx)(f,{message:U?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:U?"Change password":"Enable",href:"/dashboard/profile"}})]}),(M||eo)&&(0,r.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,r.jsx)(c.lM,{touchTarget:!0,label:"Allow dashboard access via tunnel",checked:L,onChange:()=>e8(!L)}),(0,r.jsx)(y,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,r.jsx)(c.Zp,{id:"rtk",padding:"none",className:"relative overflow-hidden border-primary/20 bg-linear-to-br from-primary/[0.08] via-surface to-surface",children:(0,r.jsxs)("div",{className:"relative flex flex-col gap-4 p-5 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-3.5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary text-[22px] text-white shadow-[0_10px_24px_-14px_rgba(229,106,74,0.9)]",children:"bolt"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"Token Saver"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"Tune RTK, Caveman, Ponytail, Headroom, and PXPIPE in one workspace."})]})]}),(0,r.jsxs)(o(),{href:"/dashboard/token-saver",className:"inline-flex min-h-11 w-full shrink-0 items-center justify-center gap-1.5 rounded-xl border border-primary/25 bg-surface/80 px-3.5 py-2 text-sm font-semibold text-text-main shadow-sm transition-[border-color,color,transform] hover:translate-x-0.5 hover:border-primary/50 hover:text-primary sm:min-h-0 sm:w-auto sm:rounded-lg",children:["Open workspace",(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_forward"})]})]})}),(0,r.jsxs)(c.Zp,{id:"require-api-key",children:[(0,r.jsxs)("div",{className:"mb-5 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-[21px] text-primary ring-1 ring-primary/15",children:"vpn_key"}),(0,r.jsxs)("div",{className:"min-w-0",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold leading-tight",children:"API Keys"}),(0,r.jsxs)("span",{className:"rounded-full bg-surface-2 px-2 py-0.5 text-[10px] font-semibold text-text-muted ring-1 ring-border-subtle",children:[t.length," ",1===t.length?"key":"keys"]})]}),(0,r.jsx)("p",{className:"mt-0.5 text-xs text-text-muted",children:"Control authentication and spending per client."})]})]}),(0,r.jsx)(c.$n,{icon:"add",onClick:()=>b(!0),className:"w-full sm:w-auto",children:"Create Key"})]}),_&&(0,r.jsx)("p",{role:"status",className:`mb-4 text-sm ${"error"===_.type?"text-red-500":"text-green-500"}`,children:_.message}),(0,r.jsxs)("div",{className:"mb-4 flex flex-col gap-3 rounded-xl border border-primary/15 bg-primary/[0.045] p-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-lg bg-surface text-[17px] text-primary ring-1 ring-border-subtle",children:"shield_lock"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,r.jsx)("p",{className:"mt-0.5 text-sm text-text-muted",children:"Reject requests that do not include a valid client key."})]})]}),(0,r.jsx)("div",{className:"shrink-0 self-end sm:self-auto",children:(0,r.jsx)(c.lM,{touchTarget:!0,label:"Require API key",checked:z,onChange:()=>e6(!z)})})]}),eX&&!z&&(0,r.jsx)("div",{className:"mb-4 -mt-2",children:(0,r.jsx)(f,{message:"Endpoint is exposed without an API key."})}),0===t.length?(0,r.jsxs)("div",{className:"rounded-xl border border-dashed border-border bg-surface-2/25 py-12 text-center",children:[(0,r.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,r.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,r.jsx)(c.$n,{icon:"add",onClick:()=>b(!0),children:"Create Key"})]}):(0,r.jsx)("div",{className:"grid grid-cols-1 gap-3 lg:grid-cols-2",children:t.map(e=>{var t,a;return(0,r.jsxs)("div",{className:`group flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-xl border border-border-subtle bg-surface-2/25 p-4 transition-[border-color,box-shadow,opacity] hover:border-primary/20 hover:shadow-[0_14px_28px_-26px_rgba(15,23,42,0.65)] ${!1===e.isActive?"opacity-60":""}`,children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:e.name}),(0,r.jsxs)("div",{className:"flex items-center gap-2 mt-1 min-w-0",children:[(0,r.jsx)("code",{className:"text-xs text-text-muted font-mono truncate max-w-[min(100%,28rem)]",children:(t=e,P.has(t.id)&&A[t.id]?A[t.id]:t.maskedKey||((a=t.key)?a.length>8?a.slice(0,8)+"...":a:"")||"••••••••")}),(0,r.jsx)("button",{type:"button",onClick:()=>tp(e.id),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted opacity-100 transition-all hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-7 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100",title:P.has(e.id)?"Hide key":"Show key","aria-label":P.has(e.id)?"Hide API key":"Show API key",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:P.has(e.id)?"visibility_off":"visibility"})}),(0,r.jsx)("button",{type:"button",onClick:()=>tg(e.id),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted opacity-100 transition-all hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-7 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100",title:"Copy key","aria-label":"Copy API key",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:eY===e.id?"check":"content_copy"})})]}),(0,r.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(e.createdAt).toLocaleDateString()]}),!1===e.isActive&&(0,r.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"}),(0,r.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-3",children:[(0,r.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Daily $",(0,r.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:S===`budget:${e.id}`,defaultValue:e.budgetDaily||0,onBlur:t=>tx(e.id,"budgetDaily",t.target.value),className:"w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]",title:"Daily budget cap in USD (0 = unlimited)"},`daily-${e.budgetDaily||0}`)]}),(0,r.jsxs)("label",{className:"flex items-center gap-1 text-[11px] text-text-muted",children:["Monthly $",(0,r.jsx)("input",{type:"number",min:"0",step:"0.01",disabled:S===`budget:${e.id}`,defaultValue:e.budgetMonthly||0,onBlur:t=>tx(e.id,"budgetMonthly",t.target.value),className:"w-16 rounded border border-border bg-surface px-1 py-0.5 text-[11px]",title:"Monthly budget cap in USD (0 = unlimited)"},`monthly-${e.budgetMonthly||0}`)]})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("div",{className:"flex size-11 items-center justify-center sm:size-auto",children:(0,r.jsx)(c.lM,{size:"sm",touchTarget:!0,disabled:S===`toggle:${e.id}`,checked:e.isActive??!0,onChange:t=>{e.isActive&&!t?C({title:"Pause API Key",message:`Pause API key "${e.name}"?
2
-
3
- This key will stop working immediately but can be resumed later.`,onConfirm:async()=>{C(null),tu(e.id,t)}}):tu(e.id,t)},title:e.isActive?"Pause key":"Resume key"})}),(0,r.jsx)("button",{disabled:S===`delete:${e.id}`,onClick:()=>{var t;return t=e.id,void(!S&&C({title:"Delete API Key",message:"Delete this API key?",onConfirm:async()=>{C(null),T(`delete:${t}`),$(null);try{let e=await fetch(`/api/keys/${t}`,{method:"DELETE"});if(!e.ok)throw Error(`Failed to delete key (${e.status})`);s(e=>e.filter(e=>e.id!==t)),E(e=>{let s=new Set(e);return s.delete(t),s}),I(e=>{if(!(t in e))return e;let s={...e};return delete s[t],s}),$({type:"success",message:"API key deleted"})}catch(e){$({type:"error",message:e.message})}finally{T(null)}}}))},className:"flex size-11 items-center justify-center rounded-xl text-red-500 opacity-100 transition-all hover:bg-red-500/10 sm:size-9 sm:rounded-lg sm:opacity-0 sm:group-hover:opacity-100","aria-label":`Delete ${e.name}`,children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},e.id)})})]}),(0,r.jsx)(c.aF,{isOpen:i,title:"Create API Key",onClose:()=>{b(!1),w("")},children:(0,r.jsxs)("form",{className:"flex flex-col gap-4",onSubmit:tm,children:[(0,r.jsx)(c.pd,{label:"Key Name",value:j,onChange:e=>w(e.target.value),placeholder:"Production Key"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{type:"submit",fullWidth:!0,disabled:!j.trim()||"create"===S,children:"create"===S?"Creating...":"Create"}),(0,r.jsx)(c.$n,{type:"button",onClick:()=>{b(!1),w("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,r.jsx)(c.aF,{isOpen:!!k,title:"API Key Created",onClose:()=>v(null),children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,r.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,r.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.pd,{value:k||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,r.jsx)(c.$n,{variant:"secondary",icon:"created_key"===eY?"check":"content_copy",onClick:()=>e0(k,"created_key"),children:"created_key"===eY?"Copied!":"Copy"})]}),(0,r.jsx)(c.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,r.jsx)(c.aF,{isOpen:ea,title:"Enable Tunnel",onClose:()=>el(!1),children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local ZevaiRouter to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-3",children:m.map(e=>(0,r.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:e.icon}),(0,r.jsx)("p",{className:"text-xs font-semibold",children:e.title}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:e.desc})]},e.title))}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{onClick:te,fullWidth:!0,children:"Start Tunnel"}),(0,r.jsx)(c.$n,{onClick:()=>el(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,r.jsx)(c.aF,{isOpen:en,title:"Disable Tunnel",onClose:()=>!G&&ei(!1),children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{onClick:tt,fullWidth:!0,disabled:G,variant:"danger",children:G?"Disabling...":"Disable"}),(0,r.jsx)(c.$n,{onClick:()=>ei(!1),variant:"ghost",fullWidth:!0,disabled:G,children:"Cancel"})]})]})}),(0,r.jsx)(c.aF,{isOpen:ez,title:"Tailscale Funnel",onClose:()=>{eS||(eD(!1),eE(""),eb(null))},children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[null===eN&&(0,r.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===eN&&!eS&&(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{onClick:tr,fullWidth:!0,children:"Install Tailscale"}),(0,r.jsx)(c.$n,{onClick:()=>eD(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),eS&&(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),e_.length>0&&(0,r.jsx)("div",{ref:eF,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:e_.map((e,t)=>(0,r.jsx)("div",{children:e},t))})]}),!0===eN&&!eS&&(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{onClick:()=>ti(),fullWidth:!0,children:"Connect"}),(0,r.jsx)(c.$n,{onClick:()=>eD(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ef&&(0,r.jsx)(g,{status:ef})]})}),(0,r.jsx)(c.aF,{isOpen:eU,title:"Disable Tailscale",onClose:()=>!eh&&eR(!1),children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(c.$n,{onClick:tc,fullWidth:!0,disabled:eh,variant:"danger",children:eh?"Disabling...":"Disable"}),(0,r.jsx)(c.$n,{onClick:()=>eR(!1),variant:"ghost",fullWidth:!0,disabled:eh,children:"Cancel"})]})]})}),(0,r.jsx)(c.uo,{isOpen:!!N,onClose:()=>C(null),onConfirm:N?.onConfirm,title:N?.title||"Confirm",message:N?.message,variant:"danger"})]})}function p({label:e,url:t,copyId:s,copied:a,onCopy:l,badge:n,actions:i}){return(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-[minmax(0,1fr)_auto_auto] items-center gap-2.5 rounded-xl border border-border-subtle bg-bg/55 p-3 transition-colors hover:border-primary/20 sm:flex",children:[(0,r.jsx)("span",{className:`col-span-full inline-flex min-h-8 w-full shrink-0 items-center justify-center rounded-lg px-2.5 text-[11px] font-semibold uppercase tracking-[0.08em] sm:w-[96px] ${"CF"===n||"TS"===n?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:e}),(0,r.jsx)(c.pd,{"aria-label":`${e} endpoint URL`,value:t,readOnly:!0,className:"w-full min-w-0 font-mono text-sm sm:flex-1"}),(0,r.jsx)("button",{onClick:()=>l(t,s),className:"flex size-11 shrink-0 items-center justify-center rounded-xl text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5 sm:size-9 sm:rounded-lg","aria-label":`Copy ${e} endpoint URL`,children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:a===s?"check":"content_copy"})}),i]})}function g({status:e,className:t=""}){return(0,r.jsx)("div",{className:`p-2 rounded text-sm ${t} ${"success"===e.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===e.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===e.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:e.message.split(/(https?:\/\/[^\s]+)/g).map((e,t)=>/^https?:\/\//.test(e)?(0,r.jsx)("a",{href:e,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:e},t):e)})}function y({text:e}){return(0,r.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,r.jsx)("span",{className:"pointer-events-none absolute right-0 top-full z-50 mt-2 w-[min(16rem,calc(100vw-2rem))] rounded bg-gray-900 px-2.5 py-1.5 text-xs text-white opacity-0 shadow-lg transition-opacity group-hover:opacity-100 dark:bg-gray-800",children:e})]})}function f({message:e,action:t}){return(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,r.jsx)("p",{className:"text-xs flex-1",children:e}),t&&(0,r.jsx)("a",{href:t.href,className:"inline-flex min-h-11 shrink-0 items-center text-xs font-medium underline hover:opacity-80 sm:min-h-0",onClick:t.href.startsWith("#")?e=>{e.preventDefault(),document.getElementById(t.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:t.label})]})}h.propTypes={machineId:n().string.isRequired}}}]);