zevairouter 1.1.36 → 1.1.38

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 (933) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +38 -1
  3. package/README.zh-CN.md +1 -0
  4. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  5. package/cli/app/.next-cli-build/app-path-routes-manifest.json +15 -13
  6. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  7. package/cli/app/.next-cli-build/prerender-manifest.json +4 -4
  8. package/cli/app/.next-cli-build/routes-manifest.json +14 -0
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +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 +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +9 -9
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  68. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  69. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  70. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  71. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  72. package/cli/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  75. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  77. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  78. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  87. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  102. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  103. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  104. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  105. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  106. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  135. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  136. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js +2 -2
  212. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js +1 -0
  213. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js.nft.json +1 -0
  214. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route_client-reference-manifest.js +1 -0
  215. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/providers/kiro/discover-models/route.js +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/providers/route.js +2 -2
  220. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  230. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  231. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  232. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  233. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  234. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  235. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  236. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  237. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  250. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  253. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  264. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js +2 -2
  275. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  277. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js +1 -0
  294. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -0
  295. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route_client-reference-manifest.js +1 -0
  296. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/callback/page.js +1 -1
  307. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  309. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  310. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  311. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  313. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  314. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +3 -3
  315. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +3 -3
  316. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +3 -3
  317. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  318. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  319. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  320. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  321. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  322. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  323. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  324. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  325. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  326. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  327. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  328. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  329. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  330. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  331. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  332. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  333. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  334. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +3 -3
  335. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +3 -3
  336. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +3 -3
  337. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  338. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  339. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  340. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  341. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  342. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  343. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  344. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  345. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  346. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  347. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  348. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  349. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  350. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  351. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  352. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  353. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  354. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +3 -3
  355. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +3 -3
  356. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +3 -3
  357. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  358. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  359. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  360. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  361. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  362. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  363. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  364. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  365. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  366. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  367. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  368. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  369. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  370. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  371. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  372. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  373. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  374. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  375. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  376. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  377. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  378. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  379. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  380. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  381. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  382. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  383. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  384. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  385. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  386. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  387. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  388. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  389. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  390. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  391. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  392. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  393. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  394. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  395. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  396. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  397. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  398. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  399. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  400. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  401. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  402. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  403. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  404. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  405. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  406. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  407. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  408. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  409. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  410. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  411. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  412. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  413. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  414. package/cli/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  415. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  416. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  417. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  418. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  419. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  420. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  421. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  422. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  423. package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
  424. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  425. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  426. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  427. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  428. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  429. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  430. package/cli/app/.next-cli-build/server/app/login/page.js +1 -1
  431. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  432. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  433. package/cli/app/.next-cli-build/server/app/login.rsc +3 -3
  434. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  435. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  436. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  437. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  438. package/cli/app/.next-cli-build/server/app/page.js +1 -1
  439. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  440. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js +2 -2
  441. package/cli/app/.next-cli-build/server/app-paths-manifest.json +15 -13
  442. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  443. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  444. package/cli/app/.next-cli-build/server/chunks/2299.js +1 -1
  445. package/cli/app/.next-cli-build/server/chunks/3477.js +1 -1
  446. package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
  447. package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
  448. package/cli/app/.next-cli-build/server/chunks/4493.js +1 -1
  449. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  450. package/cli/app/.next-cli-build/server/chunks/5019.js +1 -1
  451. package/cli/app/.next-cli-build/server/chunks/5436.js +1 -1
  452. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  453. package/cli/app/.next-cli-build/server/chunks/6846.js +1 -1
  454. package/cli/app/.next-cli-build/server/chunks/7170.js +1 -1
  455. package/cli/app/.next-cli-build/server/chunks/7319.js +19 -19
  456. package/cli/app/.next-cli-build/server/chunks/7634.js +1 -1
  457. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  458. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  459. package/cli/app/.next-cli-build/server/middleware.js +1 -1
  460. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  461. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  462. package/cli/app/.next-cli-build/server/preview-props.json +3 -3
  463. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  464. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  465. package/cli/app/.next-cli-build/static/T-pAsDE57IuNWb8tkUZce/_buildManifest.js +1 -0
  466. package/cli/app/.next-cli-build/static/chunks/{5497-07fd56ae6cf0f59f.js → 5497-74f6311426810796.js} +3 -3
  467. package/cli/app/.next-cli-build/static/chunks/620-be3bdd357820a851.js +1 -0
  468. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-d580298598ba5275.js +58 -0
  469. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cc4cd8701a14c45e.js +3 -0
  470. package/cli/app/.next-cli-build/static/chunks/app/_global-error/{page-378a2e64adcc5f02.js → page-3fd3d1141471fe7d.js} +1 -1
  471. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/{route-378a2e64adcc5f02.js → route-3fd3d1141471fe7d.js} +1 -1
  472. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-378a2e64adcc5f02.js → route-3fd3d1141471fe7d.js} +1 -1
  473. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-378a2e64adcc5f02.js → route-3fd3d1141471fe7d.js} +1 -1
  474. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-3fd3d1141471fe7d.js +1 -0
  475. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-3fd3d1141471fe7d.js +1 -0
  476. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-3fd3d1141471fe7d.js +1 -0
  477. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-3fd3d1141471fe7d.js +1 -0
  478. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-3fd3d1141471fe7d.js +1 -0
  479. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-3fd3d1141471fe7d.js +1 -0
  480. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-3fd3d1141471fe7d.js +1 -0
  481. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-3fd3d1141471fe7d.js +1 -0
  482. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-3fd3d1141471fe7d.js +1 -0
  483. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-3fd3d1141471fe7d.js +1 -0
  484. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3fd3d1141471fe7d.js +1 -0
  485. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-3fd3d1141471fe7d.js +1 -0
  486. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-3fd3d1141471fe7d.js +1 -0
  487. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-3fd3d1141471fe7d.js +1 -0
  488. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-3fd3d1141471fe7d.js +1 -0
  489. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-3fd3d1141471fe7d.js +1 -0
  490. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-3fd3d1141471fe7d.js +1 -0
  491. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-3fd3d1141471fe7d.js +1 -0
  492. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-3fd3d1141471fe7d.js +1 -0
  493. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-3fd3d1141471fe7d.js +1 -0
  494. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-3fd3d1141471fe7d.js +1 -0
  495. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-3fd3d1141471fe7d.js +1 -0
  496. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-3fd3d1141471fe7d.js +1 -0
  497. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-3fd3d1141471fe7d.js +1 -0
  498. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-3fd3d1141471fe7d.js +1 -0
  499. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-3fd3d1141471fe7d.js +1 -0
  500. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-3fd3d1141471fe7d.js +1 -0
  501. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-3fd3d1141471fe7d.js +1 -0
  502. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-3fd3d1141471fe7d.js +1 -0
  503. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-3fd3d1141471fe7d.js +1 -0
  504. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-3fd3d1141471fe7d.js +1 -0
  505. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-3fd3d1141471fe7d.js +1 -0
  506. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-3fd3d1141471fe7d.js +1 -0
  507. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-3fd3d1141471fe7d.js +1 -0
  508. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-3fd3d1141471fe7d.js +1 -0
  509. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-3fd3d1141471fe7d.js +1 -0
  510. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-3fd3d1141471fe7d.js +1 -0
  511. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-3fd3d1141471fe7d.js +1 -0
  512. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-3fd3d1141471fe7d.js +1 -0
  513. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-3fd3d1141471fe7d.js +1 -0
  514. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-3fd3d1141471fe7d.js +1 -0
  515. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-3fd3d1141471fe7d.js +1 -0
  516. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-3fd3d1141471fe7d.js +1 -0
  517. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-3fd3d1141471fe7d.js +1 -0
  518. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-3fd3d1141471fe7d.js +1 -0
  519. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-3fd3d1141471fe7d.js +1 -0
  520. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-3fd3d1141471fe7d.js +1 -0
  521. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-3fd3d1141471fe7d.js +1 -0
  522. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-3fd3d1141471fe7d.js +1 -0
  523. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-3fd3d1141471fe7d.js +1 -0
  524. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-3fd3d1141471fe7d.js +1 -0
  525. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-3fd3d1141471fe7d.js +1 -0
  526. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-3fd3d1141471fe7d.js +1 -0
  527. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-3fd3d1141471fe7d.js +1 -0
  528. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-3fd3d1141471fe7d.js +1 -0
  529. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-3fd3d1141471fe7d.js +1 -0
  530. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-3fd3d1141471fe7d.js +1 -0
  531. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-3fd3d1141471fe7d.js +1 -0
  532. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-3fd3d1141471fe7d.js +1 -0
  533. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-3fd3d1141471fe7d.js +1 -0
  534. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-3fd3d1141471fe7d.js +1 -0
  535. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-3fd3d1141471fe7d.js +1 -0
  536. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-3fd3d1141471fe7d.js +1 -0
  537. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-3fd3d1141471fe7d.js +1 -0
  538. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-3fd3d1141471fe7d.js +1 -0
  539. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-3fd3d1141471fe7d.js +1 -0
  540. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-3fd3d1141471fe7d.js +1 -0
  541. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  542. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  543. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  544. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  545. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  546. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  547. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  548. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  549. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  550. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  551. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  552. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  553. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  554. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  555. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  556. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-3fd3d1141471fe7d.js +1 -0
  557. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-3fd3d1141471fe7d.js +1 -0
  558. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  559. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  560. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  561. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  562. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  563. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-3fd3d1141471fe7d.js +1 -0
  564. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-3fd3d1141471fe7d.js +1 -0
  565. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-3fd3d1141471fe7d.js +1 -0
  566. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-3fd3d1141471fe7d.js +1 -0
  567. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-3fd3d1141471fe7d.js +1 -0
  568. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-3fd3d1141471fe7d.js +1 -0
  569. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  570. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  571. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  572. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  573. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  574. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-3fd3d1141471fe7d.js +1 -0
  575. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-3fd3d1141471fe7d.js +1 -0
  576. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-3fd3d1141471fe7d.js +1 -0
  577. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-3fd3d1141471fe7d.js +1 -0
  578. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  579. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  580. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  581. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  582. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  583. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-3fd3d1141471fe7d.js +1 -0
  584. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-3fd3d1141471fe7d.js +1 -0
  585. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-3fd3d1141471fe7d.js +1 -0
  586. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-3fd3d1141471fe7d.js +1 -0
  587. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  588. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  589. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  590. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  591. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  592. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-3fd3d1141471fe7d.js +1 -0
  593. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-3fd3d1141471fe7d.js +1 -0
  594. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-3fd3d1141471fe7d.js +1 -0
  595. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-3fd3d1141471fe7d.js +1 -0
  596. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-3fd3d1141471fe7d.js +1 -0
  597. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-3fd3d1141471fe7d.js +1 -0
  598. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-3fd3d1141471fe7d.js +1 -0
  599. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-3fd3d1141471fe7d.js +1 -0
  600. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-3fd3d1141471fe7d.js +1 -0
  601. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-3fd3d1141471fe7d.js +1 -0
  602. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-3fd3d1141471fe7d.js +1 -0
  603. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/import/route-3fd3d1141471fe7d.js +1 -0
  604. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-3fd3d1141471fe7d.js +1 -0
  605. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/discover-models/route-3fd3d1141471fe7d.js +1 -0
  606. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/models/route-3fd3d1141471fe7d.js +1 -0
  607. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-3fd3d1141471fe7d.js +1 -0
  608. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-3fd3d1141471fe7d.js +1 -0
  609. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-3fd3d1141471fe7d.js +1 -0
  610. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-3fd3d1141471fe7d.js +1 -0
  611. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-3fd3d1141471fe7d.js +1 -0
  612. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-3fd3d1141471fe7d.js +1 -0
  613. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-3fd3d1141471fe7d.js +1 -0
  614. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-3fd3d1141471fe7d.js +1 -0
  615. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-3fd3d1141471fe7d.js +1 -0
  616. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-3fd3d1141471fe7d.js +1 -0
  617. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-3fd3d1141471fe7d.js +1 -0
  618. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-3fd3d1141471fe7d.js +1 -0
  619. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-3fd3d1141471fe7d.js +1 -0
  620. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-3fd3d1141471fe7d.js +1 -0
  621. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-3fd3d1141471fe7d.js +1 -0
  622. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-3fd3d1141471fe7d.js +1 -0
  623. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-3fd3d1141471fe7d.js +1 -0
  624. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-3fd3d1141471fe7d.js +1 -0
  625. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-3fd3d1141471fe7d.js +1 -0
  626. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-3fd3d1141471fe7d.js +1 -0
  627. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-3fd3d1141471fe7d.js +1 -0
  628. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-3fd3d1141471fe7d.js +1 -0
  629. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-3fd3d1141471fe7d.js +1 -0
  630. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-3fd3d1141471fe7d.js +1 -0
  631. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-3fd3d1141471fe7d.js +1 -0
  632. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-3fd3d1141471fe7d.js +1 -0
  633. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-3fd3d1141471fe7d.js +1 -0
  634. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-3fd3d1141471fe7d.js +1 -0
  635. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-3fd3d1141471fe7d.js +1 -0
  636. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-3fd3d1141471fe7d.js +1 -0
  637. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-3fd3d1141471fe7d.js +1 -0
  638. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-3fd3d1141471fe7d.js +1 -0
  639. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-3fd3d1141471fe7d.js +1 -0
  640. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-3fd3d1141471fe7d.js +1 -0
  641. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-3fd3d1141471fe7d.js +1 -0
  642. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-3fd3d1141471fe7d.js +1 -0
  643. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-3fd3d1141471fe7d.js +1 -0
  644. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-3fd3d1141471fe7d.js +1 -0
  645. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-3fd3d1141471fe7d.js +1 -0
  646. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-3fd3d1141471fe7d.js +1 -0
  647. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-3fd3d1141471fe7d.js +1 -0
  648. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-3fd3d1141471fe7d.js +1 -0
  649. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-3fd3d1141471fe7d.js +1 -0
  650. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-3fd3d1141471fe7d.js +1 -0
  651. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-3fd3d1141471fe7d.js +1 -0
  652. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-3fd3d1141471fe7d.js +1 -0
  653. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-3fd3d1141471fe7d.js +1 -0
  654. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-3fd3d1141471fe7d.js +1 -0
  655. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-3fd3d1141471fe7d.js +1 -0
  656. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-3fd3d1141471fe7d.js +1 -0
  657. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-3fd3d1141471fe7d.js +1 -0
  658. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-3fd3d1141471fe7d.js +1 -0
  659. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-3fd3d1141471fe7d.js +1 -0
  660. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-3fd3d1141471fe7d.js +1 -0
  661. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-3fd3d1141471fe7d.js +1 -0
  662. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-3fd3d1141471fe7d.js +1 -0
  663. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-3fd3d1141471fe7d.js +1 -0
  664. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-3fd3d1141471fe7d.js +1 -0
  665. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-3fd3d1141471fe7d.js +1 -0
  666. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-3fd3d1141471fe7d.js +1 -0
  667. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-3fd3d1141471fe7d.js +1 -0
  668. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-3fd3d1141471fe7d.js +1 -0
  669. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-3fd3d1141471fe7d.js +1 -0
  670. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-3fd3d1141471fe7d.js +1 -0
  671. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-3fd3d1141471fe7d.js +1 -0
  672. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-3fd3d1141471fe7d.js +1 -0
  673. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-3fd3d1141471fe7d.js +1 -0
  674. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-3fd3d1141471fe7d.js +1 -0
  675. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-3fd3d1141471fe7d.js +1 -0
  676. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-3fd3d1141471fe7d.js +1 -0
  677. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-3fd3d1141471fe7d.js +1 -0
  678. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-3fd3d1141471fe7d.js +1 -0
  679. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-3fd3d1141471fe7d.js +1 -0
  680. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-3fd3d1141471fe7d.js +1 -0
  681. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-3fd3d1141471fe7d.js +1 -0
  682. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/content/route-3fd3d1141471fe7d.js +1 -0
  683. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-3fd3d1141471fe7d.js +1 -0
  684. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-3fd3d1141471fe7d.js +1 -0
  685. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-3fd3d1141471fe7d.js +1 -0
  686. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-3fd3d1141471fe7d.js +1 -0
  687. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-3fd3d1141471fe7d.js +1 -0
  688. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-3fd3d1141471fe7d.js +1 -0
  689. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-3fd3d1141471fe7d.js +1 -0
  690. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-3fd3d1141471fe7d.js +1 -0
  691. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-3fd3d1141471fe7d.js +1 -0
  692. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-3fd3d1141471fe7d.js +1 -0
  693. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-3fd3d1141471fe7d.js +1 -0
  694. package/cli/app/.next-cli-build/static/chunks/app/page-3fd3d1141471fe7d.js +1 -0
  695. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-3fd3d1141471fe7d.js +1 -0
  696. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-3fd3d1141471fe7d.js +1 -0
  697. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-3fd3d1141471fe7d.js +1 -0
  698. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-3fd3d1141471fe7d.js +1 -0
  699. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-3fd3d1141471fe7d.js +1 -0
  700. package/cli/app/CHANGELOG.md +26 -0
  701. package/cli/app/package.json +2 -1
  702. package/cli/package.json +1 -1
  703. package/package.json +2 -1
  704. package/scripts/gflow-reply-capture.py +328 -0
  705. package/cli/app/.next-cli-build/static/6BxpHYWafFD2nAI-i4lUw/_buildManifest.js +0 -1
  706. package/cli/app/.next-cli-build/static/chunks/620-cd16b23a3e600312.js +0 -1
  707. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-f769b7591eebddf5.js +0 -58
  708. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b182e3cb24f86f4b.js +0 -3
  709. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-378a2e64adcc5f02.js +0 -1
  710. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-378a2e64adcc5f02.js +0 -1
  711. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-378a2e64adcc5f02.js +0 -1
  712. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-378a2e64adcc5f02.js +0 -1
  713. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-378a2e64adcc5f02.js +0 -1
  714. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-378a2e64adcc5f02.js +0 -1
  715. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-378a2e64adcc5f02.js +0 -1
  716. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-378a2e64adcc5f02.js +0 -1
  717. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-378a2e64adcc5f02.js +0 -1
  718. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-378a2e64adcc5f02.js +0 -1
  719. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-378a2e64adcc5f02.js +0 -1
  720. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-378a2e64adcc5f02.js +0 -1
  721. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-378a2e64adcc5f02.js +0 -1
  722. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-378a2e64adcc5f02.js +0 -1
  723. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-378a2e64adcc5f02.js +0 -1
  724. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-378a2e64adcc5f02.js +0 -1
  725. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-378a2e64adcc5f02.js +0 -1
  726. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-378a2e64adcc5f02.js +0 -1
  727. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-378a2e64adcc5f02.js +0 -1
  728. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-378a2e64adcc5f02.js +0 -1
  729. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-378a2e64adcc5f02.js +0 -1
  730. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-378a2e64adcc5f02.js +0 -1
  731. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-378a2e64adcc5f02.js +0 -1
  732. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-378a2e64adcc5f02.js +0 -1
  733. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-378a2e64adcc5f02.js +0 -1
  734. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-378a2e64adcc5f02.js +0 -1
  735. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-378a2e64adcc5f02.js +0 -1
  736. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-378a2e64adcc5f02.js +0 -1
  737. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-378a2e64adcc5f02.js +0 -1
  738. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-378a2e64adcc5f02.js +0 -1
  739. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-378a2e64adcc5f02.js +0 -1
  740. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-378a2e64adcc5f02.js +0 -1
  741. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-378a2e64adcc5f02.js +0 -1
  742. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-378a2e64adcc5f02.js +0 -1
  743. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-378a2e64adcc5f02.js +0 -1
  744. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-378a2e64adcc5f02.js +0 -1
  745. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-378a2e64adcc5f02.js +0 -1
  746. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-378a2e64adcc5f02.js +0 -1
  747. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-378a2e64adcc5f02.js +0 -1
  748. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-378a2e64adcc5f02.js +0 -1
  749. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-378a2e64adcc5f02.js +0 -1
  750. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-378a2e64adcc5f02.js +0 -1
  751. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-378a2e64adcc5f02.js +0 -1
  752. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-378a2e64adcc5f02.js +0 -1
  753. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-378a2e64adcc5f02.js +0 -1
  754. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-378a2e64adcc5f02.js +0 -1
  755. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-378a2e64adcc5f02.js +0 -1
  756. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-378a2e64adcc5f02.js +0 -1
  757. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-378a2e64adcc5f02.js +0 -1
  758. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-378a2e64adcc5f02.js +0 -1
  759. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-378a2e64adcc5f02.js +0 -1
  760. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-378a2e64adcc5f02.js +0 -1
  761. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-378a2e64adcc5f02.js +0 -1
  762. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-378a2e64adcc5f02.js +0 -1
  763. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-378a2e64adcc5f02.js +0 -1
  764. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-378a2e64adcc5f02.js +0 -1
  765. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-378a2e64adcc5f02.js +0 -1
  766. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-378a2e64adcc5f02.js +0 -1
  767. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-378a2e64adcc5f02.js +0 -1
  768. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-378a2e64adcc5f02.js +0 -1
  769. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-378a2e64adcc5f02.js +0 -1
  770. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-378a2e64adcc5f02.js +0 -1
  771. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-378a2e64adcc5f02.js +0 -1
  772. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-378a2e64adcc5f02.js +0 -1
  773. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-378a2e64adcc5f02.js +0 -1
  774. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-378a2e64adcc5f02.js +0 -1
  775. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-378a2e64adcc5f02.js +0 -1
  776. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  777. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  778. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  779. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  780. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-378a2e64adcc5f02.js +0 -1
  781. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  782. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  783. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  784. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  785. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-378a2e64adcc5f02.js +0 -1
  786. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  787. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  788. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  789. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  790. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-378a2e64adcc5f02.js +0 -1
  791. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-378a2e64adcc5f02.js +0 -1
  792. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-378a2e64adcc5f02.js +0 -1
  793. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  794. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  795. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  796. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  797. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-378a2e64adcc5f02.js +0 -1
  798. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-378a2e64adcc5f02.js +0 -1
  799. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-378a2e64adcc5f02.js +0 -1
  800. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-378a2e64adcc5f02.js +0 -1
  801. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-378a2e64adcc5f02.js +0 -1
  802. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-378a2e64adcc5f02.js +0 -1
  803. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-378a2e64adcc5f02.js +0 -1
  804. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  805. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  806. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  807. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  808. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-378a2e64adcc5f02.js +0 -1
  809. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-378a2e64adcc5f02.js +0 -1
  810. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-378a2e64adcc5f02.js +0 -1
  811. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-378a2e64adcc5f02.js +0 -1
  812. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-378a2e64adcc5f02.js +0 -1
  813. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  814. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  815. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  816. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  817. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-378a2e64adcc5f02.js +0 -1
  818. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-378a2e64adcc5f02.js +0 -1
  819. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-378a2e64adcc5f02.js +0 -1
  820. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-378a2e64adcc5f02.js +0 -1
  821. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-378a2e64adcc5f02.js +0 -1
  822. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  823. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  824. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  825. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  826. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-378a2e64adcc5f02.js +0 -1
  827. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-378a2e64adcc5f02.js +0 -1
  828. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-378a2e64adcc5f02.js +0 -1
  829. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-378a2e64adcc5f02.js +0 -1
  830. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-378a2e64adcc5f02.js +0 -1
  831. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-378a2e64adcc5f02.js +0 -1
  832. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-378a2e64adcc5f02.js +0 -1
  833. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-378a2e64adcc5f02.js +0 -1
  834. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-378a2e64adcc5f02.js +0 -1
  835. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-378a2e64adcc5f02.js +0 -1
  836. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-378a2e64adcc5f02.js +0 -1
  837. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-378a2e64adcc5f02.js +0 -1
  838. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-378a2e64adcc5f02.js +0 -1
  839. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/discover-models/route-378a2e64adcc5f02.js +0 -1
  840. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/models/route-378a2e64adcc5f02.js +0 -1
  841. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-378a2e64adcc5f02.js +0 -1
  842. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-378a2e64adcc5f02.js +0 -1
  843. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-378a2e64adcc5f02.js +0 -1
  844. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-378a2e64adcc5f02.js +0 -1
  845. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-378a2e64adcc5f02.js +0 -1
  846. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-378a2e64adcc5f02.js +0 -1
  847. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-378a2e64adcc5f02.js +0 -1
  848. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-378a2e64adcc5f02.js +0 -1
  849. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-378a2e64adcc5f02.js +0 -1
  850. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-378a2e64adcc5f02.js +0 -1
  851. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-378a2e64adcc5f02.js +0 -1
  852. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-378a2e64adcc5f02.js +0 -1
  853. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-378a2e64adcc5f02.js +0 -1
  854. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-378a2e64adcc5f02.js +0 -1
  855. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-378a2e64adcc5f02.js +0 -1
  856. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-378a2e64adcc5f02.js +0 -1
  857. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-378a2e64adcc5f02.js +0 -1
  858. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-378a2e64adcc5f02.js +0 -1
  859. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-378a2e64adcc5f02.js +0 -1
  860. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-378a2e64adcc5f02.js +0 -1
  861. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-378a2e64adcc5f02.js +0 -1
  862. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-378a2e64adcc5f02.js +0 -1
  863. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-378a2e64adcc5f02.js +0 -1
  864. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-378a2e64adcc5f02.js +0 -1
  865. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-378a2e64adcc5f02.js +0 -1
  866. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-378a2e64adcc5f02.js +0 -1
  867. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-378a2e64adcc5f02.js +0 -1
  868. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-378a2e64adcc5f02.js +0 -1
  869. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-378a2e64adcc5f02.js +0 -1
  870. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-378a2e64adcc5f02.js +0 -1
  871. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-378a2e64adcc5f02.js +0 -1
  872. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-378a2e64adcc5f02.js +0 -1
  873. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-378a2e64adcc5f02.js +0 -1
  874. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-378a2e64adcc5f02.js +0 -1
  875. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-378a2e64adcc5f02.js +0 -1
  876. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-378a2e64adcc5f02.js +0 -1
  877. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-378a2e64adcc5f02.js +0 -1
  878. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-378a2e64adcc5f02.js +0 -1
  879. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-378a2e64adcc5f02.js +0 -1
  880. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-378a2e64adcc5f02.js +0 -1
  881. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-378a2e64adcc5f02.js +0 -1
  882. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-378a2e64adcc5f02.js +0 -1
  883. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-378a2e64adcc5f02.js +0 -1
  884. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-378a2e64adcc5f02.js +0 -1
  885. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-378a2e64adcc5f02.js +0 -1
  886. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-378a2e64adcc5f02.js +0 -1
  887. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-378a2e64adcc5f02.js +0 -1
  888. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-378a2e64adcc5f02.js +0 -1
  889. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-378a2e64adcc5f02.js +0 -1
  890. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-378a2e64adcc5f02.js +0 -1
  891. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-378a2e64adcc5f02.js +0 -1
  892. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-378a2e64adcc5f02.js +0 -1
  893. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-378a2e64adcc5f02.js +0 -1
  894. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-378a2e64adcc5f02.js +0 -1
  895. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-378a2e64adcc5f02.js +0 -1
  896. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-378a2e64adcc5f02.js +0 -1
  897. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-378a2e64adcc5f02.js +0 -1
  898. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-378a2e64adcc5f02.js +0 -1
  899. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-378a2e64adcc5f02.js +0 -1
  900. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-378a2e64adcc5f02.js +0 -1
  901. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-378a2e64adcc5f02.js +0 -1
  902. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-378a2e64adcc5f02.js +0 -1
  903. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-378a2e64adcc5f02.js +0 -1
  904. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-378a2e64adcc5f02.js +0 -1
  905. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-378a2e64adcc5f02.js +0 -1
  906. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-378a2e64adcc5f02.js +0 -1
  907. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-378a2e64adcc5f02.js +0 -1
  908. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-378a2e64adcc5f02.js +0 -1
  909. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-378a2e64adcc5f02.js +0 -1
  910. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-378a2e64adcc5f02.js +0 -1
  911. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-378a2e64adcc5f02.js +0 -1
  912. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-378a2e64adcc5f02.js +0 -1
  913. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-378a2e64adcc5f02.js +0 -1
  914. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-378a2e64adcc5f02.js +0 -1
  915. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-378a2e64adcc5f02.js +0 -1
  916. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-378a2e64adcc5f02.js +0 -1
  917. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-378a2e64adcc5f02.js +0 -1
  918. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-378a2e64adcc5f02.js +0 -1
  919. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-378a2e64adcc5f02.js +0 -1
  920. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-378a2e64adcc5f02.js +0 -1
  921. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-378a2e64adcc5f02.js +0 -1
  922. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-378a2e64adcc5f02.js +0 -1
  923. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-378a2e64adcc5f02.js +0 -1
  924. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-378a2e64adcc5f02.js +0 -1
  925. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-378a2e64adcc5f02.js +0 -1
  926. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-378a2e64adcc5f02.js +0 -1
  927. package/cli/app/.next-cli-build/static/chunks/app/page-378a2e64adcc5f02.js +0 -1
  928. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-378a2e64adcc5f02.js +0 -1
  929. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-378a2e64adcc5f02.js +0 -1
  930. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-378a2e64adcc5f02.js +0 -1
  931. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-378a2e64adcc5f02.js +0 -1
  932. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-378a2e64adcc5f02.js +0 -1
  933. /package/cli/app/.next-cli-build/static/{6BxpHYWafFD2nAI-i4lUw → T-pAsDE57IuNWb8tkUZce}/_ssgManifest.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Unreleased
2
2
 
3
+ # v1.1.38 (2026-10-23)
4
+
5
+ ## Fixes
6
+ - **OpenCode free models work with tool-using agents.** OpenCode's free endpoint rejects the optional OpenAI `name` field on messages with HTTP 400 ("\"name\" is not supported by this endpoint"). Agents such as Hermes send it on every tool result, so any turn after the first tool call failed on `oc/*` models. The field is now dropped before the request is sent.
7
+
8
+ # v1.1.37 (2026-10-23)
9
+
10
+ ## Features
11
+ - **Google Flow is a first-class image and video provider.** Add or one-click import local `gflow-cli` browser profiles, then use `flow/nano2`, `flow/nano2-lite`, `flow/nano-pro`, Veo 3.1 Lite/Fast/Quality, Omni Flash, or `flow/omni-flash-long` through the existing OpenAI-style image/video routes. The router checks each account's authentication and credit floor before accepting billable work, rotates only on pre-creation auth/quota failures, persists asynchronous jobs, and serves completed MP4s with private tokens and HTTP Range support.
12
+ - **Flow long-video generation supports 10–60 seconds.** `flow/omni-flash-long` creates a 10-second T2V opening segment, continues later segments with last-frame I2V, then joins compatible MP4 streams without re-encoding. Durations are explicit 10-second steps; `ffmpeg` and Google's one-time image-rights confirmation are checked before credit spend.
13
+
14
+ ## Security
15
+ - **Flow helper URLs are loopback-only by default.** Connection values cannot turn server-side Flow requests into arbitrary outbound fetches; trusted remote helpers require `FLOW_ALLOW_REMOTE_DAEMON=1`. Browser cookies never enter ZevaiRouter, and video files are served only from router-derived paths using per-job content tokens.
16
+
17
+ ## Fixes
18
+ - **Executor-backed media errors retain their upstream status.** Image/video adapters can return 401/402/403/429 to the normal account fallback instead of collapsing every failure to 502. Binary image responses preserve the generated image's real MIME type, and Flow polling no longer requires clients to retain `x-connection-id`.
19
+ - **Finished Flow video URLs work behind a reverse proxy.** `video.url` is built from `BASE_URL`, else `X-Forwarded-Proto`/`X-Forwarded-Host`, instead of the internal listener, so a router behind nginx/Caddy no longer hands out `http://localhost:1997/...` links. A `BASE_URL` path prefix is kept.
20
+ - **Long video finds `ffmpeg` under launchd/systemd.** Services run with a minimal `PATH` that omits `/opt/homebrew/bin`; ffmpeg is now resolved from `FFMPEG_PATH`, `PATH`, then standard install locations.
21
+ - **The dashboard video playground waits up to 30 minutes** for a job instead of 10, so 60-second Flow videos (six sequential segments) are not reported as timed out while still rendering.
22
+ - **Flow long video now has the length it reports.** Omni segments are requested with an explicit 10-second duration; previously gflow fell back to Flow's 8-second default, so a 20-second `flow/omni-flash-long` job produced a 16-second file while `video.duration` said 20. Veo models get no duration, because flow.google.com offers no duration control for Veo and gflow refuses the run when one is passed.
23
+ - **Flow jobs no longer fail after Flow has already charged for them.** gflow-cli 0.88–0.89 reads Flow's replies through Chrome's DevTools buffer, which evicts bodies under load; on a 2 vCPU / 2 GB host 2 of 3 long videos failed with "submit reply arrived but its body was unreadable" after billing. The package now ships `scripts/gflow-reply-capture.py`, an idempotent patch that keeps the page's own copy of each Flow reply and falls back to it, and waits up to 90 seconds for the signed video URL. Verified on gflow 0.88.0 and 0.89.0, and live with every reply forced unreadable: an image and a 20-second long video both completed.
24
+ - **Long-video segments retry only when nothing was billed.** A segment that gflow fails before Flow's submit click (the editor did not load, or the composer cohort flapped) is retried up to three times; failures that may already be billed, including a failed download of a finished clip, fail the job instead of paying twice.
25
+ - **Flow uses one account until its credits run out, then the next.** An account whose live balance cannot pay even the cheapest request for that model is parked for one hour instead of two minutes, so five Pro accounts in priority order no longer re-probe an empty account (a Chrome launch each time) on every request. An account that is only short for a longer job, or whose balance is an estimate, is retried after two minutes.
26
+ - **Flow generations run one at a time.** Video jobs share a first-come, first-served queue across every Flow account, and image requests wait for a running render, so a small host never runs two Chrome renders side by side. A job's cost is debited from a per-account credit ledger when it is queued, so later requests rotate to the next account before the first one is overcommitted, without stalling on a live balance read while that account is rendering.
27
+ - **A Flow job moves to the next account when Flow refuses the one it started on.** Accounts Flow serves with its chat-style ("agent-only") composer could answer a request with "We noticed some unusual activity", and gflow 0.88–0.89 then waited the full 10-minute video budget before failing. The shipped gflow patch now recognises that refusal (and any agent turn that ends with no clip, no queue entry and no credit gate) within seconds, and ZevaiRouter hands the queued job to the next eligible account, which must have credits for every remaining segment and, for long video, I2V consent. The refused account is parked for three hours, because Flow's bot score decays over hours and retrying sooner only feeds it. Failures whose outcome is unknown, such as a timeout after a generation started, still fail the job instead of moving it, so a clip is never paid for twice.
28
+
3
29
  # v1.1.36 (2026-10-23)
4
30
 
5
31
  ## Changed
package/README.md CHANGED
@@ -186,7 +186,7 @@ curl http://localhost:1997/v1/chat/completions \
186
186
  - **Providers** · **Endpoint** · **Playground** · **Usage / Quota**
187
187
  - **CLI Tools** presets, including Grok Build main/subagent model routing
188
188
  - **Combos** · **Proxy pools** · **Tunnel** · **Agent Skills** copy/install links
189
- - Media playground for image, audio, search, and async xAI video jobs
189
+ - Media playground for image, audio, search, and async xAI / Google Flow video jobs
190
190
  - **Terminal** (host web shell, separate password)
191
191
  - **Dashboard SSO**: password, OIDC, or SAML 2.0 login (configure under Profile → SSO)
192
192
  - **Automation** bulk import via **CloakBrowser only**
@@ -226,6 +226,43 @@ curl http://localhost:1997/v1/videos/REQUEST_ID \
226
226
 
227
227
  The dashboard performs this polling automatically and renders the finished video with a download link.
228
228
 
229
+ ### Google Flow images and video
230
+
231
+ ZevaiRouter can use a local [`gflow-cli`](https://github.com/ffroliva/gflow-cli) daemon as the `flow` provider. Flow authentication stays in gflow's headed, off-screen Chrome profile; Google cookies are never copied into ZevaiRouter.
232
+
233
+ 1. Install and authenticate gflow once per Google account, apply ZevaiRouter's gflow reliability patch, then start the daemon:
234
+ ```bash
235
+ gflow auth login --profile account-one --browser chrome
236
+ "$(uv tool dir)/gflow-cli/bin/python" "$(npm root -g)/zevairouter/scripts/gflow-reply-capture.py"
237
+ gflow serve --port 8077
238
+ ```
239
+ Run the patch command before every `gflow serve` start (for example as systemd `ExecStartPre` or in your launchd wrapper). It is idempotent, survives `gflow update` when re-run, and prints a `WARNING` instead of changing anything if a future gflow release no longer matches.
240
+ 2. Open **Google Flow → Connections → Import local profiles**, enter the daemon token, then import. Repeating the import updates existing profiles instead of duplicating them.
241
+ 3. Discover models with `GET /v1/models/image` and `GET /v1/models/video`.
242
+
243
+ Image models: `flow/nano2`, `flow/nano2-lite`, and `flow/nano-pro`. Video models: `flow/veo-lite` (8s), `flow/veo-fast` (8s), `flow/veo-quality` (8s), `flow/omni-flash` (10s), and `flow/omni-flash-long` (10–60s).
244
+
245
+ **Several Google accounts.** Log each one in as its own gflow profile and import them; order the connections by priority. With the default `fill-first` strategy the first account is used until it cannot pay for a request, then the request moves to the next account automatically. Video jobs check the balance before they are accepted, so a long video never starts on an account that cannot finish it. An account that cannot pay even the cheapest request for that model is parked for one hour instead of being re-probed on every request; an account that is only short for a longer job is retried after two minutes. If Flow refuses an account after its job was queued (for example "We noticed some unusual activity"), the job moves to the next account that can pay for the rest of it, and the refused account is parked for three hours. Generations run one at a time across all accounts: video jobs wait in a first-come, first-served queue (up to two hours), and image requests wait up to ten minutes for a running render before answering `423`.
246
+
247
+ ```bash
248
+ # Portrait image
249
+ curl -X POST http://localhost:1997/v1/images/generations \
250
+ -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
251
+ -d '{"model":"flow/nano2","prompt":"Editorial portrait at blue hour","size":"768x1376"}'
252
+
253
+ # 60-second video: six 10-second Omni segments, continued by last-frame I2V
254
+ curl -X POST http://localhost:1997/v1/videos/generations \
255
+ -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
256
+ -H "Idempotency-Key: campaign-shot-1" \
257
+ -d '{"model":"flow/omni-flash-long","prompt":"A continuous tracking shot through a rainy night market","duration":60,"aspect_ratio":"16:9"}'
258
+ ```
259
+
260
+ Long video requires `ffmpeg` and Google's one-time image-rights confirmation for every gflow profile. Enable **I2V upload consent confirmed** on a connection only after accepting that dialog on `flow.google.com`. Valid long durations are exactly 10, 20, 30, 40, 50, or 60 seconds. Keep the `Idempotency-Key` stable when retrying; ZevaiRouter returns the existing job instead of creating another billed render.
261
+
262
+ Behind a reverse proxy, set `BASE_URL` to the public URL (or forward `X-Forwarded-Proto`/`X-Forwarded-Host`) so finished `video.url` links are reachable from outside. On Linux, gflow needs real Google Chrome running headed under Xvfb; headless Chrome is rejected by Flow.
263
+
264
+ The patch fixes a gflow-cli 0.88–0.89 bug where Chrome evicts Flow's submit reply from the DevTools buffer under load: without it, a job can fail with "submit reply arrived but its body was unreadable" after Flow has already charged credits. With the patch, gflow reads the page's own copy of the reply instead (logged as `migrated.reply_body_recovered`). It also waits up to 90 seconds for Flow's signed video URL on slow hosts. ZevaiRouter retries a long-video segment only for gflow failures that happen before Flow's submit click; anything that may already be billed fails the job instead of paying twice.
265
+
229
266
  ### Agent skills
230
267
 
231
268
  Open **Dashboard → Agent Skills** to copy task-specific `SKILL.md` links for chat, image, video, audio, embeddings, web search, and web fetch. Start with:
package/README.zh-CN.md CHANGED
@@ -102,6 +102,7 @@ apt-get update -y && DEBIAN_FRONTEND=noninteractive apt-get install -y curl ca-c
102
102
  - **路由** — 多账号、Combos、策略、重试、配额锁、缓存、Webhook
103
103
  - **控制台** — Providers、Playground、Usage、CLI Tools、代理池、Tunnel
104
104
  - **Automation** — 批量导入,**仅 CloakBrowser**(Kiro / CodeBuddy / CN / AG / Qoder / CF)
105
+ - **Google Flow** — 通过本地 `gflow-cli` 生成图片和视频(Nano Banana、Veo 3.1、Omni Flash,长视频 10–60 秒);多账号按优先级用完额度后自动切换,详见英文 README
105
106
  - **Terminal** — 主机 Web 终端(独立密码)
106
107
  - **运维** — 一键安装、`zevai update`、Docker
107
108
 
@@ -1 +1 @@
1
- 6BxpHYWafFD2nAI-i4lUw
1
+ T-pAsDE57IuNWb8tkUZce
@@ -67,6 +67,7 @@
67
67
  "/api/providers/bulk-delete/route": "/api/providers/bulk-delete",
68
68
  "/api/providers/client/route": "/api/providers/client",
69
69
  "/api/providers/codebuddy/discover-models/route": "/api/providers/codebuddy/discover-models",
70
+ "/api/providers/flow/import/route": "/api/providers/flow/import",
70
71
  "/api/providers/kilo/free-models/route": "/api/providers/kilo/free-models",
71
72
  "/api/providers/test-batch/route": "/api/providers/test-batch",
72
73
  "/api/settings/require-login/route": "/api/settings/require-login",
@@ -105,6 +106,7 @@
105
106
  "/api/v1/responses/route": "/api/v1/responses",
106
107
  "/api/v1/route": "/api/v1",
107
108
  "/api/v1/search/route": "/api/v1/search",
109
+ "/api/v1/videos/[id]/content/route": "/api/v1/videos/[id]/content",
108
110
  "/api/v1/videos/[id]/route": "/api/v1/videos/[id]",
109
111
  "/api/v1/videos/edits/route": "/api/v1/videos/edits",
110
112
  "/api/v1/videos/extensions/route": "/api/v1/videos/extensions",
@@ -129,10 +131,10 @@
129
131
  "/api/dashboard/media/videos/[id]/route": "/api/dashboard/media/videos/[id]",
130
132
  "/api/headroom/enable/route": "/api/headroom/enable",
131
133
  "/api/headroom/extras/route": "/api/headroom/extras",
134
+ "/api/headroom/proxy/[...path]/route": "/api/headroom/proxy/[...path]",
132
135
  "/api/headroom/restart/route": "/api/headroom/restart",
133
136
  "/api/headroom/start/route": "/api/headroom/start",
134
137
  "/api/headroom/status/route": "/api/headroom/status",
135
- "/api/headroom/proxy/[...path]/route": "/api/headroom/proxy/[...path]",
136
138
  "/api/headroom/stop/route": "/api/headroom/stop",
137
139
  "/api/keys/route": "/api/keys",
138
140
  "/api/mcp/[plugin]/message/route": "/api/mcp/[plugin]/message",
@@ -143,10 +145,10 @@
143
145
  "/api/oauth/antigravity/bulk-import/[jobId]/cancel/route": "/api/oauth/antigravity/bulk-import/[jobId]/cancel",
144
146
  "/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route": "/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]",
145
147
  "/api/oauth/antigravity/bulk-import/[jobId]/route": "/api/oauth/antigravity/bulk-import/[jobId]",
148
+ "/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]",
146
149
  "/api/oauth/antigravity/bulk-import/latest/route": "/api/oauth/antigravity/bulk-import/latest",
147
150
  "/api/oauth/antigravity/bulk-import/route": "/api/oauth/antigravity/bulk-import",
148
151
  "/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route": "/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel",
149
- "/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]",
150
152
  "/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route": "/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]",
151
153
  "/api/oauth/cloudflare-ai/bulk-import/[jobId]/route": "/api/oauth/cloudflare-ai/bulk-import/[jobId]",
152
154
  "/api/oauth/cloudflare-ai/bulk-import/latest/route": "/api/oauth/cloudflare-ai/bulk-import/latest",
@@ -156,8 +158,8 @@
156
158
  "/api/oauth/codebuddy-cn/bulk-import/[jobId]/route": "/api/oauth/codebuddy-cn/bulk-import/[jobId]",
157
159
  "/api/oauth/codebuddy-cn/bulk-import/latest/route": "/api/oauth/codebuddy-cn/bulk-import/latest",
158
160
  "/api/oauth/codebuddy-cn/bulk-import/route": "/api/oauth/codebuddy-cn/bulk-import",
159
- "/api/oauth/codebuddy-cn/quota-cookie/route": "/api/oauth/codebuddy-cn/quota-cookie",
160
161
  "/api/oauth/codebuddy-cn/bulk-token/route": "/api/oauth/codebuddy-cn/bulk-token",
162
+ "/api/oauth/codebuddy-cn/quota-cookie/route": "/api/oauth/codebuddy-cn/quota-cookie",
161
163
  "/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route": "/api/oauth/codebuddy/bulk-import/[jobId]/cancel",
162
164
  "/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route": "/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]",
163
165
  "/api/oauth/codebuddy/bulk-import/[jobId]/route": "/api/oauth/codebuddy/bulk-import/[jobId]",
@@ -169,8 +171,8 @@
169
171
  "/api/oauth/grok-cli/bulk-import/[jobId]/route": "/api/oauth/grok-cli/bulk-import/[jobId]",
170
172
  "/api/oauth/grok-cli/bulk-import/latest/route": "/api/oauth/grok-cli/bulk-import/latest",
171
173
  "/api/oauth/grok-cli/bulk-import/route": "/api/oauth/grok-cli/bulk-import",
172
- "/api/oauth/kiro/bulk-import/[jobId]/cancel/route": "/api/oauth/kiro/bulk-import/[jobId]/cancel",
173
174
  "/api/oauth/grok-cli/bulk-token/route": "/api/oauth/grok-cli/bulk-token",
175
+ "/api/oauth/kiro/bulk-import/[jobId]/cancel/route": "/api/oauth/kiro/bulk-import/[jobId]/cancel",
174
176
  "/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route": "/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]",
175
177
  "/api/oauth/kiro/bulk-import/[jobId]/route": "/api/oauth/kiro/bulk-import/[jobId]",
176
178
  "/api/oauth/kiro/bulk-import/latest/route": "/api/oauth/kiro/bulk-import/latest",
@@ -188,14 +190,15 @@
188
190
  "/api/providers/opencode/discover-models/route": "/api/providers/opencode/discover-models",
189
191
  "/api/providers/suggested-models/route": "/api/providers/suggested-models",
190
192
  "/api/providers/route": "/api/providers",
191
- "/api/proxy-pools/[id]/test/route": "/api/proxy-pools/[id]/test",
192
193
  "/api/proxy-pools/[id]/route": "/api/proxy-pools/[id]",
194
+ "/api/proxy-pools/[id]/test/route": "/api/proxy-pools/[id]/test",
195
+ "/api/providers/validate/route": "/api/providers/validate",
193
196
  "/api/proxy-pools/cloudflare-deploy/route": "/api/proxy-pools/cloudflare-deploy",
197
+ "/api/proxy-pools/deno-deploy/route": "/api/proxy-pools/deno-deploy",
194
198
  "/api/proxy-pools/route": "/api/proxy-pools",
195
199
  "/api/pxpipe/health/route": "/api/pxpipe/health",
196
- "/api/pxpipe/install/route": "/api/pxpipe/install",
197
- "/api/proxy-pools/deno-deploy/route": "/api/proxy-pools/deno-deploy",
198
200
  "/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy",
201
+ "/api/pxpipe/install/route": "/api/pxpipe/install",
199
202
  "/api/pxpipe/logs/route": "/api/pxpipe/logs",
200
203
  "/api/pxpipe/restart/route": "/api/pxpipe/restart",
201
204
  "/api/pxpipe/start/route": "/api/pxpipe/start",
@@ -204,24 +207,23 @@
204
207
  "/api/pxpipe/stop/route": "/api/pxpipe/stop",
205
208
  "/api/settings/database/route": "/api/settings/database",
206
209
  "/api/settings/proxy-test/route": "/api/settings/proxy-test",
207
- "/api/providers/validate/route": "/api/providers/validate",
208
- "/api/terminal/auth/status/route": "/api/terminal/auth/status",
209
210
  "/api/settings/route": "/api/settings",
210
211
  "/api/terminal/auth/setup/route": "/api/terminal/auth/setup",
212
+ "/api/terminal/auth/status/route": "/api/terminal/auth/status",
213
+ "/api/terminal/auth/unlock/route": "/api/terminal/auth/unlock",
211
214
  "/api/terminal/session/[id]/input/route": "/api/terminal/session/[id]/input",
212
215
  "/api/terminal/session/[id]/resize/route": "/api/terminal/session/[id]/resize",
213
- "/api/terminal/auth/unlock/route": "/api/terminal/auth/unlock",
214
216
  "/api/terminal/session/[id]/route": "/api/terminal/session/[id]",
215
217
  "/api/terminal/session/route": "/api/terminal/session",
216
218
  "/api/terminal/session/[id]/stream/route": "/api/terminal/session/[id]/stream",
217
219
  "/api/translator/console-logs/stream/route": "/api/translator/console-logs/stream",
218
- "/api/usage/[connectionId]/route": "/api/usage/[connectionId]",
219
220
  "/api/usage/[connectionId]/codex-reset-credits/route": "/api/usage/[connectionId]/codex-reset-credits",
221
+ "/api/usage/[connectionId]/route": "/api/usage/[connectionId]",
220
222
  "/api/usage/quota-stream/route": "/api/usage/quota-stream",
221
223
  "/api/usage/routing-stream/route": "/api/usage/routing-stream",
222
224
  "/api/usage/stats/route": "/api/usage/stats",
223
- "/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions",
224
225
  "/api/usage/stream/route": "/api/usage/stream",
226
+ "/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions",
225
227
  "/api/v1/models/route": "/api/v1/models",
226
228
  "/api/version/route": "/api/version",
227
229
  "/callback/page": "/callback",
@@ -247,9 +249,9 @@
247
249
  "/(dashboard)/dashboard/token-saver/page": "/dashboard/token-saver",
248
250
  "/(dashboard)/dashboard/translator/page": "/dashboard/translator",
249
251
  "/(dashboard)/dashboard/usage/page": "/dashboard/usage",
252
+ "/(dashboard)/dashboard/automation/page": "/dashboard/automation",
250
253
  "/(dashboard)/dashboard/console-log/page": "/dashboard/console-log",
251
254
  "/(dashboard)/dashboard/combos/page": "/dashboard/combos",
252
- "/(dashboard)/dashboard/automation/page": "/dashboard/automation",
253
255
  "/(dashboard)/dashboard/profile/page": "/dashboard/profile",
254
256
  "/(dashboard)/dashboard/settings/pricing/page": "/dashboard/settings/pricing",
255
257
  "/(dashboard)/dashboard/terminal/page": "/dashboard/terminal",
@@ -4,8 +4,8 @@
4
4
  ],
5
5
  "devFiles": [],
6
6
  "lowPriorityFiles": [
7
- "static/6BxpHYWafFD2nAI-i4lUw/_buildManifest.js",
8
- "static/6BxpHYWafFD2nAI-i4lUw/_ssgManifest.js"
7
+ "static/T-pAsDE57IuNWb8tkUZce/_buildManifest.js",
8
+ "static/T-pAsDE57IuNWb8tkUZce/_ssgManifest.js"
9
9
  ],
10
10
  "rootMainFiles": [
11
11
  "static/chunks/webpack-b041c9a7d1b8c64f.js",
@@ -454,7 +454,7 @@
454
454
  "routeType": "page",
455
455
  "response": "complete",
456
456
  "compute": "static",
457
- "htmlSize": 38274,
457
+ "htmlSize": 38315,
458
458
  "experimentalBypassFor": [
459
459
  {
460
460
  "type": "header",
@@ -794,8 +794,8 @@
794
794
  "dynamicRoutes": {},
795
795
  "notFoundRoutes": [],
796
796
  "preview": {
797
- "previewModeId": "138b31735274c19493f1b9a82d85ee66",
798
- "previewModeSigningKey": "5490ea8cb477f2003aaa72f07acde17417c674c1a90c3ae8641acb84072504cd",
799
- "previewModeEncryptionKey": "ecbda33cbe952b3062dfaec961e6beb66ac7bab93667d6e6da3c966c33bfdeb6"
797
+ "previewModeId": "299f8bf090ae5c42d3ac03e53acb3944",
798
+ "previewModeSigningKey": "bebd7be2be2b806e2dc346e6ee57ccb57f7da8a2bf1305c9ad1c59938f9cc303",
799
+ "previewModeEncryptionKey": "84152076c2ed3fbee616618f294b4d7a1e94bb06157aa7f18e6514ed8adeb9e0"
800
800
  }
801
801
  }
@@ -435,6 +435,14 @@
435
435
  },
436
436
  "namedRegex": "^/api/v1/videos/(?<nxtPid>[^/]+?)(?:/)?$"
437
437
  },
438
+ {
439
+ "page": "/api/v1/videos/[id]/content",
440
+ "regex": "^/api/v1/videos/([^/]+?)/content(?:/)?$",
441
+ "routeKeys": {
442
+ "nxtPid": "nxtPid"
443
+ },
444
+ "namedRegex": "^/api/v1/videos/(?<nxtPid>[^/]+?)/content(?:/)?$"
445
+ },
438
446
  {
439
447
  "page": "/api/v1beta/models/[...path]",
440
448
  "regex": "^/api/v1beta/models/(.+?)(?:/)?$",
@@ -1100,6 +1108,12 @@
1100
1108
  "routeKeys": {},
1101
1109
  "namedRegex": "^/api/providers/codebuddy/discover\\-models(?:/)?$"
1102
1110
  },
1111
+ {
1112
+ "page": "/api/providers/flow/import",
1113
+ "regex": "^/api/providers/flow/import(?:/)?$",
1114
+ "routeKeys": {},
1115
+ "namedRegex": "^/api/providers/flow/import(?:/)?$"
1116
+ },
1103
1117
  {
1104
1118
  "page": "/api/providers/kilo/free-models",
1105
1119
  "regex": "^/api/providers/kilo/free\\-models(?:/)?$",
@@ -1 +1 @@
1
- (()=>{var a={};a.id=8593,a.ids=[8593],a.modules={3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},36212:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["automation",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,99947))),"/zevairouter-build/src/app/(dashboard)/dashboard/automation/page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"/zevairouter-build/src/app/(dashboard)/layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/zevairouter-build/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/automation/page",pathname:"/dashboard/automation",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64248:(a,b,c)=>{Promise.resolve().then(c.bind(c,99947))},73024:a=>{"use strict";a.exports=require("node:fs")},73976:(a,b,c)=>{Promise.resolve().then(c.bind(c,81926))},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},81926:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>o});var d=c(48249),e=c(67484),f=c(50412),g=c(96919);function h({id:a,icon:b,size:c=22}){let[f,g]=(0,e.useState)(!1);return f?(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",style:{fontSize:c},children:b}):(0,d.jsx)("img",{src:`/providers/${a}.png`,alt:"",width:c,height:c,className:"rounded object-contain",style:{width:c,height:c},onError:()=>g(!0)})}function i(a){return`${a} connection${1===a?"":"s"}`}function j({isOpen:a,onClose:b,onSuccess:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),m=async()=>{if(f.trim()){i(!0),l(null);try{let a=await fetch("/api/oauth/codebuddy/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:f})}),b=await a.json();l(b),b.success&&c?.()}catch(a){l({error:a.message})}finally{i(!1)}}};if(!a)return null;let n=null;if(k?.success){let a=[`Imported ${k.imported}/${k.total} tokens.`];if(k.failed&&a.push(`${k.failed} failed.`),k.formatCounts){let{"access-only":b,"with-refresh":c,"with-api-key":d}=k.formatCounts,e=[];d&&e.push(`${d} with API key`),c&&e.push(`${c} with refresh token`),b&&e.push(`${b} access-only`),e.length&&a.push(`(${e.join(", ")})`)}n=a.join(" ")}return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"CodeBuddy OAuth Token Import"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste CodeBuddy OAuth tokens, one per line. Supports three formats:"}),(0,d.jsxs)("div",{className:"mb-3 space-y-2 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken"}),(0,d.jsx)("span",{children:"— access token only (24h expiry)"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken:refreshToken"}),(0,d.jsx)("span",{children:"— enables auto-refresh"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken:refreshToken:apiKey"}),(0,d.jsx)("span",{children:"— 365-day access"})]})]})]}),(0,d.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...:ak_abc123...",value:f,onChange:a=>g(a.target.value),disabled:h}),k&&(0,d.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(k.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:n||k.error||"Import failed"}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,d.jsx)("button",{type:"button",onClick:m,disabled:h||!f.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:h?"Importing...":"Import Tokens"})]})]})})}function k({isOpen:a,onClose:b,onSuccess:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(null),m=async()=>{if(f.trim()){i(!0),l(null);try{let a=await fetch("/api/oauth/codebuddy-cn/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:f})}),b=await a.json();l(b),b.success&&c?.()}catch(a){l({error:a.message})}finally{i(!1)}}};if(!a)return null;let n=null;if(j?.success){let a=[`Imported ${j.imported}/${j.total} tokens.`];j.failed&&a.push(`${j.failed} failed.`),n=a.join(" ")}return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"CodeBuddy CN OAuth Token Import"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste CodeBuddy CN OAuth tokens, one per line. Supports:"}),(0,d.jsxs)("div",{className:"mb-3 space-y-1 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken"})," — access token only"]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken"})," — enables auto-refresh"]})]}),(0,d.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...",value:f,onChange:a=>g(a.target.value),disabled:h}),j&&(0,d.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(j.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:n||j.error||"Import failed"}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,d.jsx)("button",{type:"button",onClick:m,disabled:h||!f.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:h?"Importing...":"Import Tokens"})]})]})})}function l({isOpen:a,onClose:b,onSuccess:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(null),m=async()=>{if(f.trim()){i(!0),k(null);try{let a=await fetch("/api/oauth/grok-cli/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:f})}),b=await a.json();k(b),b.success&&c?.()}catch(a){k({error:a.message})}finally{i(!1)}}};if(!a)return null;let n=null;if(j?.success){let a=[`Imported ${j.imported}/${j.total} tokens.`];j.failed&&a.push(`${j.failed} failed.`),n=a.join(" ")}return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"Grok CLI Token Import"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste xAI / Grok CLI tokens, one per line. Supports:"}),(0,d.jsxs)("div",{className:"mb-3 space-y-1 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"refreshToken"})," — refreshed immediately for a fresh access token"]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken"})," — imported as-is (auto-refreshed if expired)"]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken:email"})," — skips account email lookup"]})]}),(0,d.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"rt_xxx...\neyJhbGciOi...:rt_xxx...\neyJhbGciOi...:rt_xxx...:user@example.com",value:f,onChange:a=>g(a.target.value),disabled:h}),j&&(0,d.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(j.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:n||j.error||"Import failed"}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,d.jsx)("button",{type:"button",onClick:m,disabled:h||!f.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:h?"Importing...":"Import Tokens"})]})]})})}let m={"single-token":"Token import","bulk-token":"Bulk token import","bulk-account":"Bulk accounts","device-oauth":"Device login",social:"Social login",oauth:"OAuth login"},n=[{id:"kiro",label:"Kiro AI",icon:"psychology_alt",description:"Token import, bulk import, and social login automation.",supportedModes:["single-token","bulk-token","bulk-account","social"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(null),l=a=>{k({...a,key:Date.now()}),g(!0)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[{id:"bulk-account",title:"Auto Login Bulk",icon:"group_add",description:"Run bulk gmail|password automation with worker progress and manual assist.",action:()=>l({method:"import",importMode:"bulk-account"})},{id:"bulk-token",title:"Bulk Token",icon:"playlist_add",description:"Import many Kiro refresh tokens, one token per line.",action:()=>l({method:"import",importMode:"bulk-token"})},{id:"single-token",title:"Single Token",icon:"vpn_key",description:"Auto-detect or paste one Kiro refresh token.",action:()=>l({method:"import",importMode:"single-token"})},{id:"builder-id",title:"AWS Builder ID",icon:"shield",description:"Open the standard AWS Builder ID device login.",action:()=>l({method:"builder-id"})},{id:"idc",title:"AWS IDC",icon:"business",description:"Enter an IAM Identity Center start URL and region.",action:()=>l({method:"idc"})},{id:"google",title:"Google Login",icon:"account_circle",description:"Open Kiro social Google login with callback capture.",action:()=>l({method:"social",provider:"google"})}].map(a=>(0,d.jsxs)("button",{type:"button",onClick:a.action,className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:a.icon}),a.title]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:a.description})]},a.id))}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h?.jobId&&(0,d.jsxs)(f.Ex,{variant:"default",children:["Bulk job: ",h.status]}),h?.jobId&&(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"monitoring",onClick:()=>l({method:"import",importMode:"bulk-account"}),children:"Resume Bulk Progress"})]}),(0,d.jsx)(f.Mh,{isOpen:c,providerInfo:a,onSuccess:b,onRefresh:b,initialBulkJobId:h?.jobId||null,initialFlow:j,onBulkJobChange:i,onClose:()=>g(!1)})]})}},{id:"codebuddy",label:"CodeBuddy",icon:"smart_toy",description:"Bulk GSuite automation and browser OAuth polling login.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[k,l]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login + Generate Key"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk GSuite gmail|password login, create a CodeBuddy Access Key, and save it for model calls."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"OAuth Token Import"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste OAuth tokens with optional refresh tokens and API keys for extended access."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open CodeBuddy browser login and poll until the OAuth token is saved."})]})]}),(0,d.jsx)(j,{isOpen:k,onClose:()=>l(!1),onSuccess:b}),(0,d.jsx)(f.Go,{isOpen:h,provider:"codebuddy",title:"CodeBuddy Bulk GSuite Login + Access Key",serviceName:"CodeBuddy",onSuccess:b,onClose:()=>i(!1)}),(0,d.jsx)(f.LF,{isOpen:c,provider:"codebuddy",providerInfo:a,onSuccess:()=>{b?.(),g(!1)},onClose:()=>g(!1)})]})}},{id:"codebuddy-cn",label:"CodeBuddy CN",icon:"smart_toy",description:"Phone-number auto-registration via 5sim SMS, token import, and device OAuth.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"smartphone"}),"Auto Register (Phone)"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Bulk auto-register CodeBuddy CN accounts using 5sim Hong Kong phone numbers. Includes device-code token capture."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"OAuth Token Import"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste pre-obtained CodeBuddy CN OAuth tokens with optional refresh tokens."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open CodeBuddy CN browser login and poll until the OAuth token is saved."})]})]}),(0,d.jsx)(f.zE,{isOpen:c,onClose:()=>g(!1),onSuccess:b}),(0,d.jsx)(k,{isOpen:h,onClose:()=>i(!1),onSuccess:b}),(0,d.jsx)(f.LF,{isOpen:j,provider:"codebuddy-cn",providerInfo:a,onSuccess:()=>{b?.(),l(!1)},onClose:()=>l(!1)})]})}},{id:"qoder",label:"Qoder",icon:"code",description:"Bulk GSuite auto login via Google SSO and device flow.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google SSO with Qoder device flow."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open Qoder device login in browser and poll until the token is saved."})]})]}),(0,d.jsx)(f.Go,{isOpen:c,provider:"qoder",title:"Qoder Bulk GSuite Auto Login",serviceName:"Qoder",onSuccess:b,onClose:()=>g(!1)}),(0,d.jsx)(f.LF,{isOpen:h,provider:"qoder",providerInfo:a,onSuccess:()=>{b?.(),i(!1)},onClose:()=>i(!1)})]})}},{id:"antigravity",label:"Antigravity",icon:"rocket_launch",description:"Bulk GSuite auto login via Google OAuth (authorization code).",supportedModes:["bulk-account","oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google OAuth (authorization code) for Antigravity."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open Antigravity Google OAuth in browser and finish the consent manually."})]})]}),(0,d.jsx)(f.Go,{isOpen:c,provider:"antigravity",title:"Antigravity Bulk GSuite Auto Login",serviceName:"Antigravity",onSuccess:b,onClose:()=>g(!1)}),(0,d.jsx)(f.LF,{isOpen:h,provider:"antigravity",providerInfo:a,onSuccess:()=>{b?.(),i(!1)},onClose:()=>i(!1)})]})}},{id:"cloudflare-ai",label:"Cloudflare Workers AI",icon:"cloud",description:"Bulk Google login → Workers AI API token harvest for free-tier CF AI.",supportedModes:["bulk-account"],component:function({onRefresh:a}){let[b,c]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:(0,d.jsxs)("button",{type:"button",onClick:()=>c(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"cloud"}),"Bulk Workers AI Tokens"]}),(0,d.jsxs)("span",{className:"text-xs leading-relaxed text-text-muted",children:["Google login to Cloudflare dashboard → create Workers AI API token → save as"," ",(0,d.jsx)("code",{className:"text-[11px]",children:"cloudflare-ai"})," (accountId + token). Paste"," ",(0,d.jsx)("code",{className:"text-[11px]",children:"email:password"})," or ",(0,d.jsx)("code",{className:"text-[11px]",children:"email|password"}),". Uses headed ",(0,d.jsx)("strong",{children:"CloakBrowser"})," (sole automation engine) + residential proxy recommended."]})]})}),(0,d.jsx)(f.Go,{isOpen:b,provider:"cloudflare-ai",title:"Cloudflare Workers AI Bulk Token Harvest",serviceName:"Cloudflare Workers AI",accountsPlaceholder:"user@gmail.com:password\nuser2@gmail.com|password",onSuccess:a,onClose:()=>c(!1)})]})}},{id:"grok-cli",label:"Grok CLI",icon:"auto_awesome",description:"Bulk GSuite auto login via xAI device flow, token import, and device OAuth for Grok Build credits.",supportedModes:["bulk-account","bulk-token","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google SSO on the xAI device login (Grok Build credits)."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"Bulk Token Import"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste many xAI refresh tokens (or access:refresh pairs) — each line becomes a Grok CLI connection."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>k(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open xAI device login in browser, enter the code, and the token is saved automatically."})]})]}),(0,d.jsx)(f.Go,{isOpen:c,provider:"grok-cli",title:"Grok CLI Bulk GSuite Auto Login",serviceName:"Grok CLI",onSuccess:b,onClose:()=>g(!1)}),(0,d.jsx)(l,{isOpen:h,onClose:()=>i(!1),onSuccess:b}),(0,d.jsx)(f.LF,{isOpen:j,provider:"grok-cli",providerInfo:a,onSuccess:()=>{b?.(),k(!1)},onClose:()=>k(!1)})]})}}];function o(){let[a,b]=(0,e.useState)([]),[c,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(n[0].id),o=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/providers",{cache:"no-store"}),c=await a.json();a.ok&&b(c.connections||[])}catch(a){console.log("Error fetching automation connections:",a)}finally{j(!1)}},[]),p=n.find(a=>a.id===k)||n[0],q=g.IS[p.id]||{id:p.id,name:p.label},r=p.component,s=(0,e.useMemo)(()=>{let b={};for(let c of n)b[c.id]=a.filter(a=>a.provider===c.id).length;return b},[a]);return c?(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{})]}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,d.jsx)("div",{className:"flex flex-col gap-1",children:(0,d.jsx)("h1",{className:"text-2xl font-semibold",children:"Automation"})}),(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:n.map(a=>{let b=a.id===k;return(0,d.jsxs)("button",{type:"button",onClick:()=>l(a.id),className:`flex min-w-0 items-center gap-3 rounded-lg border px-4 py-3 text-left transition-colors ${b?"border-primary/50 bg-primary/10 text-primary":"border-border bg-surface text-text-main hover:border-primary/30 hover:bg-primary/5"}`,children:[(0,d.jsx)(h,{id:a.id,icon:a.icon,size:22}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-semibold",children:a.label}),(0,d.jsx)("span",{className:"mt-0.5 block text-xs text-text-muted",children:i(s[a.id]||0)})]})]},a.id)})}),(0,d.jsx)(f.Zp,{children:(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(h,{id:p.id,icon:p.icon,size:22}),(0,d.jsx)("h2",{className:"text-lg font-semibold",children:p.label})]}),(0,d.jsx)("span",{className:"mt-1 block text-xs leading-relaxed text-text-muted",children:p.description}),(0,d.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:p.supportedModes.map(a=>(0,d.jsx)(f.Ex,{variant:"default",size:"sm",children:m[a]},a))})]}),(0,d.jsx)(f.Ex,{variant:"success",children:i(s[p.id]||0)})]}),(0,d.jsx)(r,{providerInfo:q,onRefresh:o})]})})]})}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")},99947:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/zevairouter-build/src/app/(dashboard)/dashboard/automation/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/zevairouter-build/src/app/(dashboard)/dashboard/automation/page.js","default")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,2430,6686,2760,492,3999,5024,3477,5681,1131,412,1756],()=>b(b.s=36212));module.exports=c})();
1
+ (()=>{var a={};a.id=8593,a.ids=[8593],a.modules={3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38522:a=>{"use strict";a.exports=require("node:zlib")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46060:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external.js")},46293:a=>{"use strict";a.exports=require("sql.js")},48161:a=>{"use strict";a.exports=require("node:os")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64248:(a,b,c)=>{Promise.resolve().then(c.bind(c,99947))},73024:a=>{"use strict";a.exports=require("node:fs")},73976:(a,b,c)=>{Promise.resolve().then(c.bind(c,81926))},75361:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>w,handler:()=>y,routeModule:()=>x});var d=c(21635),e=c(86315),f=c(1020),g=c(61287),h={};for(let a in g)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(h[a]=()=>g[a]);c.d(b,h);let i=(0,d.p)(()=>Promise.resolve().then(c.bind(c,32059))),j=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),k=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),l=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),m=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),n=(0,d.p)(()=>Promise.resolve().then(c.bind(c,30508))),o=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),p=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,55091,23))),q=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,45270,23))),r=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,28193,23))),s=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),t=(0,d.p)(()=>Promise.resolve().then(c.t.bind(c,95547,23))),u={children:["",{children:["(dashboard)",{children:["dashboard",{children:["automation",{children:["__PAGE__",{},{page:[(0,d.p)(()=>Promise.resolve().then(c.bind(c,99947))),"/zevairouter-build/src/app/(dashboard)/dashboard/automation/page.js"]}]},{"global-error":[t,"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[s,"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[n,"/zevairouter-build/src/app/(dashboard)/layout.js"],"global-error":[o,"next/dist/client/components/builtin/global-error.js"],"not-found":[p,"next/dist/client/components/builtin/not-found.js"],forbidden:[q,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[r,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[i,"/zevairouter-build/src/app/layout.js"],"global-error":[j,"next/dist/client/components/builtin/global-error.js"],"not-found":[k,"next/dist/client/components/builtin/not-found.js"],forbidden:[l,"next/dist/client/components/builtin/forbidden.js"],unauthorized:[m,"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,v=(0,e.H)({tree:u,page:"/(dashboard)/dashboard/automation/page",pathname:"/dashboard/automation",require:c,loadChunk:()=>Promise.resolve(),interopDefault:f.T}),w=v.__next_app__,x=v.routeModule,y=v.handler},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},81926:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>o});var d=c(48249),e=c(67484),f=c(50412),g=c(96919);function h({id:a,icon:b,size:c=22}){let[f,g]=(0,e.useState)(!1);return f?(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",style:{fontSize:c},children:b}):(0,d.jsx)("img",{src:`/providers/${a}.png`,alt:"",width:c,height:c,className:"rounded object-contain",style:{width:c,height:c},onError:()=>g(!0)})}function i(a){return`${a} connection${1===a?"":"s"}`}function j({isOpen:a,onClose:b,onSuccess:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),m=async()=>{if(f.trim()){i(!0),l(null);try{let a=await fetch("/api/oauth/codebuddy/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:f})}),b=await a.json();l(b),b.success&&c?.()}catch(a){l({error:a.message})}finally{i(!1)}}};if(!a)return null;let n=null;if(k?.success){let a=[`Imported ${k.imported}/${k.total} tokens.`];if(k.failed&&a.push(`${k.failed} failed.`),k.formatCounts){let{"access-only":b,"with-refresh":c,"with-api-key":d}=k.formatCounts,e=[];d&&e.push(`${d} with API key`),c&&e.push(`${c} with refresh token`),b&&e.push(`${b} access-only`),e.length&&a.push(`(${e.join(", ")})`)}n=a.join(" ")}return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"CodeBuddy OAuth Token Import"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste CodeBuddy OAuth tokens, one per line. Supports three formats:"}),(0,d.jsxs)("div",{className:"mb-3 space-y-2 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken"}),(0,d.jsx)("span",{children:"— access token only (24h expiry)"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken:refreshToken"}),(0,d.jsx)("span",{children:"— enables auto-refresh"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary leading-none",children:"check_circle"}),(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded leading-none",children:"accessToken:refreshToken:apiKey"}),(0,d.jsx)("span",{children:"— 365-day access"})]})]})]}),(0,d.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...:ak_abc123...",value:f,onChange:a=>g(a.target.value),disabled:h}),k&&(0,d.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(k.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:n||k.error||"Import failed"}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,d.jsx)("button",{type:"button",onClick:m,disabled:h||!f.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:h?"Importing...":"Import Tokens"})]})]})})}function k({isOpen:a,onClose:b,onSuccess:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(null),m=async()=>{if(f.trim()){i(!0),l(null);try{let a=await fetch("/api/oauth/codebuddy-cn/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:f})}),b=await a.json();l(b),b.success&&c?.()}catch(a){l({error:a.message})}finally{i(!1)}}};if(!a)return null;let n=null;if(j?.success){let a=[`Imported ${j.imported}/${j.total} tokens.`];j.failed&&a.push(`${j.failed} failed.`),n=a.join(" ")}return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"CodeBuddy CN OAuth Token Import"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste CodeBuddy CN OAuth tokens, one per line. Supports:"}),(0,d.jsxs)("div",{className:"mb-3 space-y-1 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken"})," — access token only"]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken"})," — enables auto-refresh"]})]}),(0,d.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"eyJhbGciOiJSUzI1NiIs...\neyJhbGciOiJSUzI1NiIs...:eyJhbGciOiJSUzI1NiIs...",value:f,onChange:a=>g(a.target.value),disabled:h}),j&&(0,d.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(j.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:n||j.error||"Import failed"}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,d.jsx)("button",{type:"button",onClick:m,disabled:h||!f.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:h?"Importing...":"Import Tokens"})]})]})})}function l({isOpen:a,onClose:b,onSuccess:c}){let[f,g]=(0,e.useState)(""),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(null),m=async()=>{if(f.trim()){i(!0),k(null);try{let a=await fetch("/api/oauth/grok-cli/bulk-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tokens:f})}),b=await a.json();k(b),b.success&&c?.()}catch(a){k({error:a.message})}finally{i(!1)}}};if(!a)return null;let n=null;if(j?.success){let a=[`Imported ${j.imported}/${j.total} tokens.`];j.failed&&a.push(`${j.failed} failed.`),n=a.join(" ")}return(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onClick:b,children:(0,d.jsxs)("div",{className:"w-full max-w-lg rounded-xl border border-border bg-surface p-6 shadow-xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("h3",{className:"mb-4 text-lg font-semibold text-text-main",children:"Grok CLI Token Import"}),(0,d.jsx)("p",{className:"mb-2 text-xs text-text-muted",children:"Paste xAI / Grok CLI tokens, one per line. Supports:"}),(0,d.jsxs)("div",{className:"mb-3 space-y-1 rounded-lg bg-background/50 p-3 text-xs text-text-muted",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"refreshToken"})," — refreshed immediately for a fresh access token"]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken"})," — imported as-is (auto-refreshed if expired)"]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("code",{className:"text-[10px] bg-border/50 px-1.5 py-0.5 rounded",children:"accessToken:refreshToken:email"})," — skips account email lookup"]})]}),(0,d.jsx)("textarea",{className:"mb-3 w-full rounded-lg border border-border bg-background p-3 font-mono text-xs text-text-main placeholder:text-text-muted focus:border-primary focus:outline-none",rows:8,placeholder:"rt_xxx...\neyJhbGciOi...:rt_xxx...\neyJhbGciOi...:rt_xxx...:user@example.com",value:f,onChange:a=>g(a.target.value),disabled:h}),j&&(0,d.jsx)("div",{className:"mb-3 rounded-lg p-3 text-xs "+(j.success?"bg-green-500/10 text-green-400":"bg-red-500/10 text-red-400"),children:n||j.error||"Import failed"}),(0,d.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:b,className:"rounded-lg px-4 py-2 text-sm text-text-muted hover:bg-border/50",children:"Close"}),(0,d.jsx)("button",{type:"button",onClick:m,disabled:h||!f.trim(),className:"rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white hover:bg-primary/90 disabled:opacity-50",children:h?"Importing...":"Import Tokens"})]})]})})}let m={"single-token":"Token import","bulk-token":"Bulk token import","bulk-account":"Bulk accounts","device-oauth":"Device login",social:"Social login",oauth:"OAuth login"},n=[{id:"kiro",label:"Kiro AI",icon:"psychology_alt",description:"Token import, bulk import, and social login automation.",supportedModes:["single-token","bulk-token","bulk-account","social"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),[j,k]=(0,e.useState)(null),l=a=>{k({...a,key:Date.now()}),g(!0)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[{id:"bulk-account",title:"Auto Login Bulk",icon:"group_add",description:"Run bulk gmail|password automation with worker progress and manual assist.",action:()=>l({method:"import",importMode:"bulk-account"})},{id:"bulk-token",title:"Bulk Token",icon:"playlist_add",description:"Import many Kiro refresh tokens, one token per line.",action:()=>l({method:"import",importMode:"bulk-token"})},{id:"single-token",title:"Single Token",icon:"vpn_key",description:"Auto-detect or paste one Kiro refresh token.",action:()=>l({method:"import",importMode:"single-token"})},{id:"builder-id",title:"AWS Builder ID",icon:"shield",description:"Open the standard AWS Builder ID device login.",action:()=>l({method:"builder-id"})},{id:"idc",title:"AWS IDC",icon:"business",description:"Enter an IAM Identity Center start URL and region.",action:()=>l({method:"idc"})},{id:"google",title:"Google Login",icon:"account_circle",description:"Open Kiro social Google login with callback capture.",action:()=>l({method:"social",provider:"google"})}].map(a=>(0,d.jsxs)("button",{type:"button",onClick:a.action,className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:a.icon}),a.title]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:a.description})]},a.id))}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[h?.jobId&&(0,d.jsxs)(f.Ex,{variant:"default",children:["Bulk job: ",h.status]}),h?.jobId&&(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"monitoring",onClick:()=>l({method:"import",importMode:"bulk-account"}),children:"Resume Bulk Progress"})]}),(0,d.jsx)(f.Mh,{isOpen:c,providerInfo:a,onSuccess:b,onRefresh:b,initialBulkJobId:h?.jobId||null,initialFlow:j,onBulkJobChange:i,onClose:()=>g(!1)})]})}},{id:"codebuddy",label:"CodeBuddy",icon:"smart_toy",description:"Bulk GSuite automation and browser OAuth polling login.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[k,l]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login + Generate Key"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk GSuite gmail|password login, create a CodeBuddy Access Key, and save it for model calls."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"OAuth Token Import"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste OAuth tokens with optional refresh tokens and API keys for extended access."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open CodeBuddy browser login and poll until the OAuth token is saved."})]})]}),(0,d.jsx)(j,{isOpen:k,onClose:()=>l(!1),onSuccess:b}),(0,d.jsx)(f.Go,{isOpen:h,provider:"codebuddy",title:"CodeBuddy Bulk GSuite Login + Access Key",serviceName:"CodeBuddy",onSuccess:b,onClose:()=>i(!1)}),(0,d.jsx)(f.LF,{isOpen:c,provider:"codebuddy",providerInfo:a,onSuccess:()=>{b?.(),g(!1)},onClose:()=>g(!1)})]})}},{id:"codebuddy-cn",label:"CodeBuddy CN",icon:"smart_toy",description:"Phone-number auto-registration via 5sim SMS, token import, and device OAuth.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,l]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"smartphone"}),"Auto Register (Phone)"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Bulk auto-register CodeBuddy CN accounts using 5sim Hong Kong phone numbers. Includes device-code token capture."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"OAuth Token Import"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste pre-obtained CodeBuddy CN OAuth tokens with optional refresh tokens."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>l(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open CodeBuddy CN browser login and poll until the OAuth token is saved."})]})]}),(0,d.jsx)(f.zE,{isOpen:c,onClose:()=>g(!1),onSuccess:b}),(0,d.jsx)(k,{isOpen:h,onClose:()=>i(!1),onSuccess:b}),(0,d.jsx)(f.LF,{isOpen:j,provider:"codebuddy-cn",providerInfo:a,onSuccess:()=>{b?.(),l(!1)},onClose:()=>l(!1)})]})}},{id:"qoder",label:"Qoder",icon:"code",description:"Bulk GSuite auto login via Google SSO and device flow.",supportedModes:["bulk-account","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google SSO with Qoder device flow."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open Qoder device login in browser and poll until the token is saved."})]})]}),(0,d.jsx)(f.Go,{isOpen:c,provider:"qoder",title:"Qoder Bulk GSuite Auto Login",serviceName:"Qoder",onSuccess:b,onClose:()=>g(!1)}),(0,d.jsx)(f.LF,{isOpen:h,provider:"qoder",providerInfo:a,onSuccess:()=>{b?.(),i(!1)},onClose:()=>i(!1)})]})}},{id:"antigravity",label:"Antigravity",icon:"rocket_launch",description:"Bulk GSuite auto login via Google OAuth (authorization code).",supportedModes:["bulk-account","oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google OAuth (authorization code) for Antigravity."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open Antigravity Google OAuth in browser and finish the consent manually."})]})]}),(0,d.jsx)(f.Go,{isOpen:c,provider:"antigravity",title:"Antigravity Bulk GSuite Auto Login",serviceName:"Antigravity",onSuccess:b,onClose:()=>g(!1)}),(0,d.jsx)(f.LF,{isOpen:h,provider:"antigravity",providerInfo:a,onSuccess:()=>{b?.(),i(!1)},onClose:()=>i(!1)})]})}},{id:"cloudflare-ai",label:"Cloudflare Workers AI",icon:"cloud",description:"Bulk Google login → Workers AI API token harvest for free-tier CF AI.",supportedModes:["bulk-account"],component:function({onRefresh:a}){let[b,c]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:(0,d.jsxs)("button",{type:"button",onClick:()=>c(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"cloud"}),"Bulk Workers AI Tokens"]}),(0,d.jsxs)("span",{className:"text-xs leading-relaxed text-text-muted",children:["Google login to Cloudflare dashboard → create Workers AI API token → save as"," ",(0,d.jsx)("code",{className:"text-[11px]",children:"cloudflare-ai"})," (accountId + token). Paste"," ",(0,d.jsx)("code",{className:"text-[11px]",children:"email:password"})," or ",(0,d.jsx)("code",{className:"text-[11px]",children:"email|password"}),". Uses headed ",(0,d.jsx)("strong",{children:"CloakBrowser"})," (sole automation engine) + residential proxy recommended."]})]})}),(0,d.jsx)(f.Go,{isOpen:b,provider:"cloudflare-ai",title:"Cloudflare Workers AI Bulk Token Harvest",serviceName:"Cloudflare Workers AI",accountsPlaceholder:"user@gmail.com:password\nuser2@gmail.com|password",onSuccess:a,onClose:()=>c(!1)})]})}},{id:"grok-cli",label:"Grok CLI",icon:"auto_awesome",description:"Bulk GSuite auto login via xAI device flow, token import, and device OAuth for Grok Build credits.",supportedModes:["bulk-account","bulk-token","device-oauth"],component:function({providerInfo:a,onRefresh:b}){let[c,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2 xl:grid-cols-3",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>g(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"group_add"}),"Auto Login Bulk"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Run bulk gmail:password or gmail|password automation via Google SSO on the xAI device login (Grok Build credits)."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"playlist_add"}),"Bulk Token Import"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Paste many xAI refresh tokens (or access:refresh pairs) — each line becomes a Grok CLI connection."})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>k(!0),className:"flex min-h-[112px] min-w-0 flex-col gap-2 rounded-lg border border-border bg-surface px-4 py-3 text-left transition-colors hover:border-primary/40 hover:bg-primary/5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-2 text-sm font-semibold text-text-main",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-primary",children:"login"}),"Device OAuth Login"]}),(0,d.jsx)("span",{className:"text-xs leading-relaxed text-text-muted",children:"Open xAI device login in browser, enter the code, and the token is saved automatically."})]})]}),(0,d.jsx)(f.Go,{isOpen:c,provider:"grok-cli",title:"Grok CLI Bulk GSuite Auto Login",serviceName:"Grok CLI",onSuccess:b,onClose:()=>g(!1)}),(0,d.jsx)(l,{isOpen:h,onClose:()=>i(!1),onSuccess:b}),(0,d.jsx)(f.LF,{isOpen:j,provider:"grok-cli",providerInfo:a,onSuccess:()=>{b?.(),k(!1)},onClose:()=>k(!1)})]})}}];function o(){let[a,b]=(0,e.useState)([]),[c,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(n[0].id),o=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/providers",{cache:"no-store"}),c=await a.json();a.ok&&b(c.connections||[])}catch(a){console.log("Error fetching automation connections:",a)}finally{j(!1)}},[]),p=n.find(a=>a.id===k)||n[0],q=g.IS[p.id]||{id:p.id,name:p.label},r=p.component,s=(0,e.useMemo)(()=>{let b={};for(let c of n)b[c.id]=a.filter(a=>a.provider===c.id).length;return b},[a]);return c?(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{})]}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,d.jsx)("div",{className:"flex flex-col gap-1",children:(0,d.jsx)("h1",{className:"text-2xl font-semibold",children:"Automation"})}),(0,d.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:n.map(a=>{let b=a.id===k;return(0,d.jsxs)("button",{type:"button",onClick:()=>l(a.id),className:`flex min-w-0 items-center gap-3 rounded-lg border px-4 py-3 text-left transition-colors ${b?"border-primary/50 bg-primary/10 text-primary":"border-border bg-surface text-text-main hover:border-primary/30 hover:bg-primary/5"}`,children:[(0,d.jsx)(h,{id:a.id,icon:a.icon,size:22}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-semibold",children:a.label}),(0,d.jsx)("span",{className:"mt-0.5 block text-xs text-text-muted",children:i(s[a.id]||0)})]})]},a.id)})}),(0,d.jsx)(f.Zp,{children:(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(h,{id:p.id,icon:p.icon,size:22}),(0,d.jsx)("h2",{className:"text-lg font-semibold",children:p.label})]}),(0,d.jsx)("span",{className:"mt-1 block text-xs leading-relaxed text-text-muted",children:p.description}),(0,d.jsx)("div",{className:"mt-2 flex flex-wrap gap-1.5",children:p.supportedModes.map(a=>(0,d.jsx)(f.Ex,{variant:"default",size:"sm",children:m[a]},a))})]}),(0,d.jsx)(f.Ex,{variant:"success",children:i(s[p.id]||0)})]}),(0,d.jsx)(r,{providerInfo:q,onRefresh:o})]})})]})}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")},99947:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/zevairouter-build/src/app/(dashboard)/dashboard/automation/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/zevairouter-build/src/app/(dashboard)/dashboard/automation/page.js","default")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,2430,6686,2760,492,3999,5024,3477,5681,1131,412,1756],()=>b(b.s=75361));module.exports=c})();