zevairouter 1.0.153 → 1.0.155

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 (2314) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/DOCKER.md +403 -0
  3. package/README.md +49 -22
  4. package/README.zh-CN.md +18 -11
  5. package/cli/LICENSE +1 -22
  6. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  7. package/cli/app/.next-cli-build/app-path-routes-manifest.json +13 -11
  8. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  9. package/cli/app/.next-cli-build/required-server-files.json +4 -4
  10. package/cli/app/.next-cli-build/routes-manifest.json +14 -0
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +3 -3
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +19 -19
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +4 -4
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +4 -4
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +2 -2
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +2 -2
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  87. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  90. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  93. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  95. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  96. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  100. package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  101. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  103. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  104. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  105. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  106. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  107. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  108. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  109. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  110. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route_client-reference-manifest.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route_client-reference-manifest.js +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route_client-reference-manifest.js +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/changelog/route_client-reference-manifest.js +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +2 -2
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route_client-reference-manifest.js +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route_client-reference-manifest.js +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route_client-reference-manifest.js +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  169. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route_client-reference-manifest.js +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  172. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  175. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  178. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route_client-reference-manifest.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  181. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  184. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  187. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/combos/route_client-reference-manifest.js +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/context/[id]/route_client-reference-manifest.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/context/bulk/route_client-reference-manifest.js +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/context/route_client-reference-manifest.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route_client-reference-manifest.js +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -0
  208. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -0
  209. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route_client-reference-manifest.js +1 -0
  210. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -0
  211. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -0
  212. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route_client-reference-manifest.js +1 -0
  213. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route_client-reference-manifest.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route_client-reference-manifest.js +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route_client-reference-manifest.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/headroom/start/route_client-reference-manifest.js +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/headroom/status/route_client-reference-manifest.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route_client-reference-manifest.js +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/health/ready/route_client-reference-manifest.js +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/health/route_client-reference-manifest.js +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/init/route_client-reference-manifest.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route_client-reference-manifest.js +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/keys/route_client-reference-manifest.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/locale/route_client-reference-manifest.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route_client-reference-manifest.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route_client-reference-manifest.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
  274. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/metrics/route_client-reference-manifest.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/models/custom/route_client-reference-manifest.js +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/models/disabled/route_client-reference-manifest.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/models/route_client-reference-manifest.js +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/models/test/route_client-reference-manifest.js +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route_client-reference-manifest.js +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route_client-reference-manifest.js +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route_client-reference-manifest.js +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route_client-reference-manifest.js +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route_client-reference-manifest.js +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route_client-reference-manifest.js +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route_client-reference-manifest.js +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route_client-reference-manifest.js +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route_client-reference-manifest.js +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  362. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route_client-reference-manifest.js +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route_client-reference-manifest.js +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  368. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route_client-reference-manifest.js +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route_client-reference-manifest.js +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  373. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  376. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  378. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  385. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  391. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  393. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  397. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route_client-reference-manifest.js +1 -1
  399. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  401. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route_client-reference-manifest.js +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  403. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -1
  414. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route_client-reference-manifest.js +1 -1
  420. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route_client-reference-manifest.js +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route_client-reference-manifest.js +1 -1
  426. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  428. package/cli/app/.next-cli-build/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  429. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  435. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  439. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  442. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  445. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route_client-reference-manifest.js +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  454. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  456. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js +1 -1
  459. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  460. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  461. package/cli/app/.next-cli-build/server/app/api/providers/route_client-reference-manifest.js +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route_client-reference-manifest.js +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  467. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js +1 -1
  474. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  478. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route_client-reference-manifest.js +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  481. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  482. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route_client-reference-manifest.js +1 -1
  483. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route_client-reference-manifest.js +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  487. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  488. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js +1 -1
  489. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  490. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  491. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route_client-reference-manifest.js +1 -1
  492. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  493. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  494. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route_client-reference-manifest.js +1 -1
  495. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  496. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  497. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route_client-reference-manifest.js +1 -1
  498. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  499. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  500. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route_client-reference-manifest.js +1 -1
  501. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  502. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  503. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route_client-reference-manifest.js +1 -1
  504. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  505. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  506. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route_client-reference-manifest.js +1 -1
  507. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  508. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  509. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route_client-reference-manifest.js +1 -1
  510. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  511. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  512. package/cli/app/.next-cli-build/server/app/api/settings/database/route_client-reference-manifest.js +1 -1
  513. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  514. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  515. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route_client-reference-manifest.js +1 -1
  516. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  517. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  518. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  519. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  520. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  521. package/cli/app/.next-cli-build/server/app/api/settings/route_client-reference-manifest.js +1 -1
  522. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  523. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  524. package/cli/app/.next-cli-build/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  525. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  526. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  527. package/cli/app/.next-cli-build/server/app/api/tags/route_client-reference-manifest.js +1 -1
  528. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  529. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  530. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route_client-reference-manifest.js +1 -1
  531. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  532. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  533. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route_client-reference-manifest.js +1 -1
  534. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  535. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  536. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route_client-reference-manifest.js +1 -1
  537. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  538. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  539. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route_client-reference-manifest.js +1 -1
  540. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  541. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  542. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route_client-reference-manifest.js +1 -1
  543. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  544. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  545. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route_client-reference-manifest.js +1 -1
  546. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  547. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  548. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route_client-reference-manifest.js +1 -1
  549. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  550. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  551. package/cli/app/.next-cli-build/server/app/api/terminal/session/route_client-reference-manifest.js +1 -1
  552. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  553. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  554. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route_client-reference-manifest.js +1 -1
  555. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  556. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  557. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js +1 -1
  558. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  559. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  560. package/cli/app/.next-cli-build/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  561. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  562. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  563. package/cli/app/.next-cli-build/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  564. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  565. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  566. package/cli/app/.next-cli-build/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  567. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  568. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  569. package/cli/app/.next-cli-build/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  570. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  571. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  572. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route_client-reference-manifest.js +1 -1
  573. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  574. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  575. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route_client-reference-manifest.js +1 -1
  576. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  577. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  578. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route_client-reference-manifest.js +1 -1
  579. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  580. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  581. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js +1 -1
  582. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  583. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  584. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js +1 -1
  585. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  586. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  587. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js +1 -1
  588. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +1 -1
  589. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  590. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js +1 -1
  591. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  592. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  593. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  594. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  595. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  596. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route_client-reference-manifest.js +1 -1
  597. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  598. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  599. package/cli/app/.next-cli-build/server/app/api/usage/chart/route_client-reference-manifest.js +1 -1
  600. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  601. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  602. package/cli/app/.next-cli-build/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  603. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  604. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  605. package/cli/app/.next-cli-build/server/app/api/usage/providers/route_client-reference-manifest.js +1 -1
  606. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  607. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  608. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route_client-reference-manifest.js +1 -1
  609. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  610. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  611. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  612. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  613. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  614. package/cli/app/.next-cli-build/server/app/api/usage/stats/route_client-reference-manifest.js +1 -1
  615. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +3 -5
  616. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  617. package/cli/app/.next-cli-build/server/app/api/usage/stream/route_client-reference-manifest.js +1 -1
  618. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  619. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  620. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  621. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  622. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  623. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  624. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  625. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  626. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  627. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  628. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  629. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route_client-reference-manifest.js +1 -1
  630. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  631. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  632. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  633. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  634. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  635. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  636. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -4
  637. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  638. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  639. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  640. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  641. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  642. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  643. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  644. package/cli/app/.next-cli-build/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  645. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  646. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  647. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route_client-reference-manifest.js +1 -1
  648. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  649. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  650. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route_client-reference-manifest.js +1 -1
  651. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  652. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  653. package/cli/app/.next-cli-build/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  654. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  655. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  656. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route_client-reference-manifest.js +1 -1
  657. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  658. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  659. package/cli/app/.next-cli-build/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  660. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  661. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  662. package/cli/app/.next-cli-build/server/app/api/v1/route_client-reference-manifest.js +1 -1
  663. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  664. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  665. package/cli/app/.next-cli-build/server/app/api/v1/search/route_client-reference-manifest.js +1 -1
  666. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  667. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  668. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route_client-reference-manifest.js +1 -1
  669. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  670. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  671. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  672. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  673. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  674. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  675. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  676. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  677. package/cli/app/.next-cli-build/server/app/api/version/route_client-reference-manifest.js +1 -1
  678. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  679. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  680. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route_client-reference-manifest.js +1 -1
  681. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  682. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  683. package/cli/app/.next-cli-build/server/app/api/version/update/route_client-reference-manifest.js +1 -1
  684. package/cli/app/.next-cli-build/server/app/callback/page.js +2 -2
  685. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  686. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  687. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  688. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  689. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  690. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  691. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  692. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  693. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  694. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  695. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  696. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  697. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  698. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  699. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  700. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  701. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  702. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  703. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  704. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  705. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  706. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  707. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  708. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  709. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  710. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  711. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  712. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  713. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  714. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  715. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  716. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  717. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  718. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  719. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  720. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  721. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  722. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  723. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  724. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  725. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  726. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  727. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  728. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  729. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  730. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  731. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  732. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  733. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  734. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  735. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  736. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  737. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  738. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  739. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  740. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  741. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  742. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  743. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  744. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  745. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  746. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  747. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  748. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  749. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  750. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  751. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  752. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  753. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  754. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  755. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  756. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  757. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  758. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  759. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  760. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  761. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  762. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  763. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  764. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  765. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  766. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  767. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  768. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  769. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  770. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  771. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  772. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  773. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  774. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  775. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  776. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  777. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  778. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  779. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  780. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  781. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  782. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  783. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  784. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  785. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  786. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  787. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  788. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  789. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  790. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  791. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  792. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  793. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  794. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  795. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  796. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  797. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  798. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  799. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  800. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  801. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  802. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  803. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  804. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  805. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  806. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  807. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  808. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  809. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  810. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  811. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  812. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  813. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  814. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  815. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  816. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  817. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  818. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  819. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  820. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  821. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  822. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  823. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  824. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  825. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  826. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  827. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  828. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  829. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  830. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  831. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  832. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  833. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  834. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  835. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  836. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  837. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  838. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  839. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  840. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  841. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  842. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  843. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  844. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  845. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  846. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  847. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  848. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  849. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  850. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  851. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  852. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  853. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  854. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  855. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  856. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  857. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  858. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  859. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  860. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  861. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  862. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  863. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  864. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  865. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  866. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  867. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  868. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  869. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  870. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  871. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  872. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  873. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  874. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  875. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  876. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  877. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  878. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  879. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  880. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  881. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  882. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  883. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  884. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  885. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  886. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  887. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  888. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  889. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  890. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  891. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  892. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  893. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  894. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  895. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  896. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  897. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  898. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  899. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  900. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  901. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  902. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  903. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  904. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  905. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  906. package/cli/app/.next-cli-build/server/app/landing/page.js +2 -2
  907. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  908. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  909. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  910. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  911. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  912. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  913. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  914. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  915. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  916. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  917. package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
  918. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  919. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  920. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  921. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  922. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  923. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  924. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  925. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  926. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  927. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  928. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  929. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  930. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  931. package/cli/app/.next-cli-build/server/app/page.js +2 -2
  932. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  933. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  934. package/cli/app/.next-cli-build/server/app-paths-manifest.json +13 -11
  935. package/cli/app/.next-cli-build/server/chunks/1188.js +1 -1
  936. package/cli/app/.next-cli-build/server/chunks/2030.js +1 -1
  937. package/cli/app/.next-cli-build/server/chunks/2557.js +1 -0
  938. package/cli/app/.next-cli-build/server/chunks/2732.js +1 -1
  939. package/cli/app/.next-cli-build/server/chunks/3104.js +1 -1
  940. package/cli/app/.next-cli-build/server/chunks/3110.js +9 -8
  941. package/cli/app/.next-cli-build/server/chunks/3155.js +1 -1
  942. package/cli/app/.next-cli-build/server/chunks/318.js +11 -9
  943. package/cli/app/.next-cli-build/server/chunks/319.js +3 -3
  944. package/cli/app/.next-cli-build/server/chunks/3579.js +1 -1
  945. package/cli/app/.next-cli-build/server/chunks/3593.js +1 -1
  946. package/cli/app/.next-cli-build/server/chunks/412.js +2 -2
  947. package/cli/app/.next-cli-build/server/chunks/4229.js +1 -1
  948. package/cli/app/.next-cli-build/server/chunks/4404.js +1 -1
  949. package/cli/app/.next-cli-build/server/chunks/4470.js +1 -1
  950. package/cli/app/.next-cli-build/server/chunks/4566.js +1 -1
  951. package/cli/app/.next-cli-build/server/chunks/4632.js +1 -1
  952. package/cli/app/.next-cli-build/server/chunks/4650.js +1 -1
  953. package/cli/app/.next-cli-build/server/chunks/4720.js +1 -1
  954. package/cli/app/.next-cli-build/server/chunks/4739.js +1 -1
  955. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  956. package/cli/app/.next-cli-build/server/chunks/4780.js +1 -1
  957. package/cli/app/.next-cli-build/server/chunks/507.js +1 -1
  958. package/cli/app/.next-cli-build/server/chunks/5236.js +1 -1
  959. package/cli/app/.next-cli-build/server/chunks/5258.js +1 -1
  960. package/cli/app/.next-cli-build/server/chunks/5307.js +1 -1
  961. package/cli/app/.next-cli-build/server/chunks/5436.js +4 -0
  962. package/cli/app/.next-cli-build/server/chunks/5469.js +1 -1
  963. package/cli/app/.next-cli-build/server/chunks/5949.js +13 -12
  964. package/cli/app/.next-cli-build/server/chunks/6036.js +1 -1
  965. package/cli/app/.next-cli-build/server/chunks/698.js +1 -1
  966. package/cli/app/.next-cli-build/server/chunks/7239.js +1 -1
  967. package/cli/app/.next-cli-build/server/chunks/7965.js +1 -1
  968. package/cli/app/.next-cli-build/server/chunks/8028.js +1 -0
  969. package/cli/app/.next-cli-build/server/chunks/8242.js +1 -1
  970. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  971. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  972. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -1
  973. package/cli/app/.next-cli-build/server/chunks/8520.js +1 -1
  974. package/cli/app/.next-cli-build/server/chunks/877.js +24 -0
  975. package/cli/app/.next-cli-build/server/chunks/8895.js +7 -7
  976. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  977. package/cli/app/.next-cli-build/server/chunks/9372.js +1 -1
  978. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  979. package/cli/app/.next-cli-build/server/chunks/9621.js +1 -1
  980. package/cli/app/.next-cli-build/server/functions-config-manifest.json +4 -0
  981. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  982. package/cli/app/.next-cli-build/server/middleware.js +4 -4
  983. package/cli/app/.next-cli-build/server/next-font-manifest.js +1 -1
  984. package/cli/app/.next-cli-build/server/next-font-manifest.json +1 -1
  985. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  986. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  987. package/cli/app/.next-cli-build/static/chunks/5497-f1e851d6feffa7c0.js +7 -0
  988. package/cli/app/.next-cli-build/static/chunks/620-90911eeb765ca4bd.js +1 -0
  989. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-da4bf4d40037f090.js +1 -0
  990. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-19f56d717383fbf9.js +1 -0
  991. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-59c81d5cf13456ba.js +59 -0
  992. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-4c46f9cac4765fc5.js +4 -0
  993. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-57c4b3a5e8b61f18.js +1 -0
  994. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-bdcc38dc8f8c5619.js +1 -0
  995. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b4f4b88642bbe60d.js +3 -0
  996. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-16d3736170202fcd.js +4 -0
  997. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-3e2009fdd918191b.js +1 -0
  998. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-6062386d726c38dd.js +1 -0
  999. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-203b0a53f7406968.js +1 -0
  1000. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-f29633932d5ddd5a.js +1 -0
  1001. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-f29633932d5ddd5a.js +1 -0
  1002. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-f29633932d5ddd5a.js +1 -0
  1003. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-f29633932d5ddd5a.js +1 -0
  1004. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-f29633932d5ddd5a.js +1 -0
  1005. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-f29633932d5ddd5a.js +1 -0
  1006. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-f29633932d5ddd5a.js +1 -0
  1007. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-f29633932d5ddd5a.js +1 -0
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-f29633932d5ddd5a.js +1 -0
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-f29633932d5ddd5a.js +1 -0
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-f29633932d5ddd5a.js +1 -0
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-f29633932d5ddd5a.js +1 -0
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-f29633932d5ddd5a.js +1 -0
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-f29633932d5ddd5a.js +1 -0
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-f29633932d5ddd5a.js +1 -0
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-f29633932d5ddd5a.js +1 -0
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-f29633932d5ddd5a.js +1 -0
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-f29633932d5ddd5a.js +1 -0
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-f29633932d5ddd5a.js +1 -0
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-f29633932d5ddd5a.js +1 -0
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-f29633932d5ddd5a.js +1 -0
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-f29633932d5ddd5a.js +1 -0
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-f29633932d5ddd5a.js +1 -0
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-f29633932d5ddd5a.js +1 -0
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-f29633932d5ddd5a.js +1 -0
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-f29633932d5ddd5a.js +1 -0
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-f29633932d5ddd5a.js +1 -0
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-f29633932d5ddd5a.js +1 -0
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-f29633932d5ddd5a.js +1 -0
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-f29633932d5ddd5a.js +1 -0
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-f29633932d5ddd5a.js +1 -0
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-f29633932d5ddd5a.js +1 -0
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-f29633932d5ddd5a.js +1 -0
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-f29633932d5ddd5a.js +1 -0
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-f29633932d5ddd5a.js +1 -0
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-f29633932d5ddd5a.js +1 -0
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-f29633932d5ddd5a.js +1 -0
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-f29633932d5ddd5a.js +1 -0
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-f29633932d5ddd5a.js +1 -0
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-f29633932d5ddd5a.js +1 -0
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-f29633932d5ddd5a.js +1 -0
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-f29633932d5ddd5a.js +1 -0
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-f29633932d5ddd5a.js +1 -0
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-f29633932d5ddd5a.js +1 -0
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-f29633932d5ddd5a.js +1 -0
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-f29633932d5ddd5a.js +1 -0
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-f29633932d5ddd5a.js +1 -0
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-f29633932d5ddd5a.js +1 -0
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-f29633932d5ddd5a.js +1 -0
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-f29633932d5ddd5a.js +1 -0
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-f29633932d5ddd5a.js +1 -0
  1051. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-f29633932d5ddd5a.js +1 -0
  1052. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-f29633932d5ddd5a.js +1 -0
  1053. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-f29633932d5ddd5a.js +1 -0
  1054. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-f29633932d5ddd5a.js +1 -0
  1055. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-f29633932d5ddd5a.js +1 -0
  1056. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-f29633932d5ddd5a.js +1 -0
  1057. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-f29633932d5ddd5a.js +1 -0
  1058. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-f29633932d5ddd5a.js +1 -0
  1059. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-f29633932d5ddd5a.js +1 -0
  1060. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-f29633932d5ddd5a.js +1 -0
  1061. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-f29633932d5ddd5a.js +1 -0
  1062. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-f29633932d5ddd5a.js +1 -0
  1063. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-f29633932d5ddd5a.js +1 -0
  1064. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-f29633932d5ddd5a.js +1 -0
  1065. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-f29633932d5ddd5a.js +1 -0
  1066. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-f29633932d5ddd5a.js +1 -0
  1067. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-f29633932d5ddd5a.js +1 -0
  1068. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-f29633932d5ddd5a.js +1 -0
  1069. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-f29633932d5ddd5a.js +1 -0
  1070. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-f29633932d5ddd5a.js +1 -0
  1071. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-f29633932d5ddd5a.js +1 -0
  1072. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-f29633932d5ddd5a.js +1 -0
  1073. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-f29633932d5ddd5a.js +1 -0
  1074. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-f29633932d5ddd5a.js +1 -0
  1075. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-f29633932d5ddd5a.js +1 -0
  1076. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-f29633932d5ddd5a.js +1 -0
  1077. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-f29633932d5ddd5a.js +1 -0
  1078. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-f29633932d5ddd5a.js +1 -0
  1079. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-f29633932d5ddd5a.js +1 -0
  1080. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-f29633932d5ddd5a.js +1 -0
  1081. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-f29633932d5ddd5a.js +1 -0
  1082. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-f29633932d5ddd5a.js +1 -0
  1083. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-f29633932d5ddd5a.js +1 -0
  1084. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-f29633932d5ddd5a.js +1 -0
  1085. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-f29633932d5ddd5a.js +1 -0
  1086. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-f29633932d5ddd5a.js +1 -0
  1087. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-f29633932d5ddd5a.js +1 -0
  1088. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-f29633932d5ddd5a.js +1 -0
  1089. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-f29633932d5ddd5a.js +1 -0
  1090. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-f29633932d5ddd5a.js +1 -0
  1091. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-f29633932d5ddd5a.js +1 -0
  1092. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-f29633932d5ddd5a.js +1 -0
  1093. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-f29633932d5ddd5a.js +1 -0
  1094. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-f29633932d5ddd5a.js +1 -0
  1095. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-f29633932d5ddd5a.js +1 -0
  1096. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-f29633932d5ddd5a.js +1 -0
  1097. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-f29633932d5ddd5a.js +1 -0
  1098. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-f29633932d5ddd5a.js +1 -0
  1099. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-f29633932d5ddd5a.js +1 -0
  1100. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-f29633932d5ddd5a.js +1 -0
  1101. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-f29633932d5ddd5a.js +1 -0
  1102. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-f29633932d5ddd5a.js +1 -0
  1103. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-f29633932d5ddd5a.js +1 -0
  1104. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-f29633932d5ddd5a.js +1 -0
  1105. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-f29633932d5ddd5a.js +1 -0
  1106. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-f29633932d5ddd5a.js +1 -0
  1107. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-f29633932d5ddd5a.js +1 -0
  1108. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-f29633932d5ddd5a.js +1 -0
  1109. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-f29633932d5ddd5a.js +1 -0
  1110. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-f29633932d5ddd5a.js +1 -0
  1111. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-f29633932d5ddd5a.js +1 -0
  1112. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-f29633932d5ddd5a.js +1 -0
  1113. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-f29633932d5ddd5a.js +1 -0
  1114. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-f29633932d5ddd5a.js +1 -0
  1115. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-f29633932d5ddd5a.js +1 -0
  1116. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-f29633932d5ddd5a.js +1 -0
  1117. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-f29633932d5ddd5a.js +1 -0
  1118. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-f29633932d5ddd5a.js +1 -0
  1119. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-f29633932d5ddd5a.js +1 -0
  1120. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-f29633932d5ddd5a.js +1 -0
  1121. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-f29633932d5ddd5a.js +1 -0
  1122. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-f29633932d5ddd5a.js +1 -0
  1123. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-f29633932d5ddd5a.js +1 -0
  1124. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-f29633932d5ddd5a.js +1 -0
  1125. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-f29633932d5ddd5a.js +1 -0
  1126. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-f29633932d5ddd5a.js +1 -0
  1127. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-f29633932d5ddd5a.js +1 -0
  1128. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-f29633932d5ddd5a.js +1 -0
  1129. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-f29633932d5ddd5a.js +1 -0
  1130. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-f29633932d5ddd5a.js +1 -0
  1131. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-f29633932d5ddd5a.js +1 -0
  1132. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-f29633932d5ddd5a.js +1 -0
  1133. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-f29633932d5ddd5a.js +1 -0
  1134. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-f29633932d5ddd5a.js +1 -0
  1135. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-f29633932d5ddd5a.js +1 -0
  1136. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-f29633932d5ddd5a.js +1 -0
  1137. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-f29633932d5ddd5a.js +1 -0
  1138. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-f29633932d5ddd5a.js +1 -0
  1139. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-f29633932d5ddd5a.js +1 -0
  1140. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-f29633932d5ddd5a.js +1 -0
  1141. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-f29633932d5ddd5a.js +1 -0
  1142. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-f29633932d5ddd5a.js +1 -0
  1143. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-f29633932d5ddd5a.js +1 -0
  1144. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-f29633932d5ddd5a.js +1 -0
  1145. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-f29633932d5ddd5a.js +1 -0
  1146. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-f29633932d5ddd5a.js +1 -0
  1147. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-f29633932d5ddd5a.js +1 -0
  1148. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-f29633932d5ddd5a.js +1 -0
  1149. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-f29633932d5ddd5a.js +1 -0
  1150. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-f29633932d5ddd5a.js +1 -0
  1151. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-f29633932d5ddd5a.js +1 -0
  1152. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-f29633932d5ddd5a.js +1 -0
  1153. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-f29633932d5ddd5a.js +1 -0
  1154. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-f29633932d5ddd5a.js +1 -0
  1155. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-f29633932d5ddd5a.js +1 -0
  1156. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-f29633932d5ddd5a.js +1 -0
  1157. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-f29633932d5ddd5a.js +1 -0
  1158. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-f29633932d5ddd5a.js +1 -0
  1159. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-f29633932d5ddd5a.js +1 -0
  1160. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-f29633932d5ddd5a.js +1 -0
  1161. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-f29633932d5ddd5a.js +1 -0
  1162. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-f29633932d5ddd5a.js +1 -0
  1163. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-f29633932d5ddd5a.js +1 -0
  1164. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-f29633932d5ddd5a.js +1 -0
  1165. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-f29633932d5ddd5a.js +1 -0
  1166. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-f29633932d5ddd5a.js +1 -0
  1167. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-f29633932d5ddd5a.js +1 -0
  1168. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-f29633932d5ddd5a.js +1 -0
  1169. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-f29633932d5ddd5a.js +1 -0
  1170. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-f29633932d5ddd5a.js +1 -0
  1171. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-f29633932d5ddd5a.js +1 -0
  1172. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-f29633932d5ddd5a.js +1 -0
  1173. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-f29633932d5ddd5a.js +1 -0
  1174. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-f29633932d5ddd5a.js +1 -0
  1175. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-f29633932d5ddd5a.js +1 -0
  1176. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-f29633932d5ddd5a.js +1 -0
  1177. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-f29633932d5ddd5a.js +1 -0
  1178. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-f29633932d5ddd5a.js +1 -0
  1179. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-f29633932d5ddd5a.js +1 -0
  1180. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-f29633932d5ddd5a.js +1 -0
  1181. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-f29633932d5ddd5a.js +1 -0
  1182. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-f29633932d5ddd5a.js +1 -0
  1183. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-f29633932d5ddd5a.js +1 -0
  1184. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-f29633932d5ddd5a.js +1 -0
  1185. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-f29633932d5ddd5a.js +1 -0
  1186. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-f29633932d5ddd5a.js +1 -0
  1187. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-f29633932d5ddd5a.js +1 -0
  1188. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-f29633932d5ddd5a.js +1 -0
  1189. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-f29633932d5ddd5a.js +1 -0
  1190. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-f29633932d5ddd5a.js +1 -0
  1191. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-f29633932d5ddd5a.js +1 -0
  1192. package/cli/app/.next-cli-build/static/chunks/app/login/page-f7df7d9a053d65b7.js +1 -0
  1193. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-f29633932d5ddd5a.js +1 -0
  1194. package/cli/app/.next-cli-build/static/chunks/app/page-f29633932d5ddd5a.js +1 -0
  1195. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-f29633932d5ddd5a.js +1 -0
  1196. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-f29633932d5ddd5a.js +1 -0
  1197. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-f29633932d5ddd5a.js +1 -0
  1198. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-f29633932d5ddd5a.js +1 -0
  1199. package/cli/app/.next-cli-build/static/sRgS_5eNahHOIlOLEqVvI/_buildManifest.js +1 -0
  1200. package/cli/app/CHANGELOG.md +47 -0
  1201. package/cli/app/cli/hooks/postinstall.js +82 -50
  1202. package/cli/app/cli/hooks/safeGlobalInstall.js +178 -10
  1203. package/cli/app/cli/hooks/startupRuntime.js +31 -0
  1204. package/cli/app/cli/hooks/streamCommand.js +63 -0
  1205. package/cli/app/package.json +46 -37
  1206. package/cli/app/server.js +1 -1
  1207. package/cli/app/src/lib/db/adapters/betterSqliteAdapter.js +6 -3
  1208. package/cli/app/src/lib/db/adapters/bunSqliteAdapter.js +4 -2
  1209. package/cli/app/src/lib/db/adapters/nodeSqliteAdapter.js +4 -2
  1210. package/cli/app/src/lib/db/adapters/sqljsAdapter.js +84 -27
  1211. package/cli/app/src/lib/db/maintenance.js +6 -0
  1212. package/cli/cli.js +708 -248
  1213. package/cli/hooks/postinstall.js +82 -50
  1214. package/cli/hooks/safeGlobalInstall.js +178 -10
  1215. package/cli/hooks/startupRuntime.js +31 -0
  1216. package/cli/hooks/streamCommand.js +63 -0
  1217. package/cli/package.json +6 -5
  1218. package/cli/src/cli/api/client.js +3 -1
  1219. package/cli/src/cli/systemdEnv.js +93 -0
  1220. package/cli/src/cli/tray/autostart.js +55 -21
  1221. package/cli/src/cli/tray/tray.js +1 -1
  1222. package/cli/src/cli/updateRuntimeState.js +976 -0
  1223. package/package.json +46 -37
  1224. package/scripts/start-standalone.mjs +24 -15
  1225. package/cli/app/.next-cli-build/server/chunks/5024.js +0 -1
  1226. package/cli/app/.next-cli-build/server/chunks/601.js +0 -24
  1227. package/cli/app/.next-cli-build/static/chunks/5497-8d0ec2995dc0a392.js +0 -7
  1228. package/cli/app/.next-cli-build/static/chunks/620-abc3c4ad8fcc220a.js +0 -1
  1229. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/page-f16310d2b403445e.js +0 -1
  1230. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/page-27b7575d0d2d59fa.js +0 -1
  1231. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-a35d16eda369d68e.js +0 -59
  1232. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/page-e7989e6397c3cd28.js +0 -4
  1233. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/page-81eaa9fe75830559.js +0 -1
  1234. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-ceb414eddc31fbfc.js +0 -1
  1235. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-4f6f0b7c3b3da037.js +0 -3
  1236. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-9e3ac0e62a8bba94.js +0 -4
  1237. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-579bf915396efc69.js +0 -1
  1238. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-bc3ada97fab644b3.js +0 -1
  1239. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-59c5060c7f023ab8.js +0 -1
  1240. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-915c9a5b78eafa55.js +0 -1
  1241. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-915c9a5b78eafa55.js +0 -1
  1242. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-915c9a5b78eafa55.js +0 -1
  1243. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-915c9a5b78eafa55.js +0 -1
  1244. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-915c9a5b78eafa55.js +0 -1
  1245. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-915c9a5b78eafa55.js +0 -1
  1246. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-915c9a5b78eafa55.js +0 -1
  1247. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-915c9a5b78eafa55.js +0 -1
  1248. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-915c9a5b78eafa55.js +0 -1
  1249. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-915c9a5b78eafa55.js +0 -1
  1250. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-915c9a5b78eafa55.js +0 -1
  1251. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-915c9a5b78eafa55.js +0 -1
  1252. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-915c9a5b78eafa55.js +0 -1
  1253. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-915c9a5b78eafa55.js +0 -1
  1254. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-915c9a5b78eafa55.js +0 -1
  1255. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-915c9a5b78eafa55.js +0 -1
  1256. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-915c9a5b78eafa55.js +0 -1
  1257. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-915c9a5b78eafa55.js +0 -1
  1258. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-915c9a5b78eafa55.js +0 -1
  1259. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-915c9a5b78eafa55.js +0 -1
  1260. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-915c9a5b78eafa55.js +0 -1
  1261. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-915c9a5b78eafa55.js +0 -1
  1262. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-915c9a5b78eafa55.js +0 -1
  1263. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-915c9a5b78eafa55.js +0 -1
  1264. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-915c9a5b78eafa55.js +0 -1
  1265. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-915c9a5b78eafa55.js +0 -1
  1266. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-915c9a5b78eafa55.js +0 -1
  1267. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-915c9a5b78eafa55.js +0 -1
  1268. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-915c9a5b78eafa55.js +0 -1
  1269. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-915c9a5b78eafa55.js +0 -1
  1270. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-915c9a5b78eafa55.js +0 -1
  1271. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-915c9a5b78eafa55.js +0 -1
  1272. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-915c9a5b78eafa55.js +0 -1
  1273. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-915c9a5b78eafa55.js +0 -1
  1274. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-915c9a5b78eafa55.js +0 -1
  1275. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-915c9a5b78eafa55.js +0 -1
  1276. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-915c9a5b78eafa55.js +0 -1
  1277. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-915c9a5b78eafa55.js +0 -1
  1278. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-915c9a5b78eafa55.js +0 -1
  1279. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-915c9a5b78eafa55.js +0 -1
  1280. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-915c9a5b78eafa55.js +0 -1
  1281. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-915c9a5b78eafa55.js +0 -1
  1282. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-915c9a5b78eafa55.js +0 -1
  1283. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-915c9a5b78eafa55.js +0 -1
  1284. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-915c9a5b78eafa55.js +0 -1
  1285. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-915c9a5b78eafa55.js +0 -1
  1286. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-915c9a5b78eafa55.js +0 -1
  1287. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-915c9a5b78eafa55.js +0 -1
  1288. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-915c9a5b78eafa55.js +0 -1
  1289. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-915c9a5b78eafa55.js +0 -1
  1290. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-915c9a5b78eafa55.js +0 -1
  1291. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-915c9a5b78eafa55.js +0 -1
  1292. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-915c9a5b78eafa55.js +0 -1
  1293. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-915c9a5b78eafa55.js +0 -1
  1294. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-915c9a5b78eafa55.js +0 -1
  1295. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-915c9a5b78eafa55.js +0 -1
  1296. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-915c9a5b78eafa55.js +0 -1
  1297. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-915c9a5b78eafa55.js +0 -1
  1298. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-915c9a5b78eafa55.js +0 -1
  1299. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-915c9a5b78eafa55.js +0 -1
  1300. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-915c9a5b78eafa55.js +0 -1
  1301. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +0 -1
  1302. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +0 -1
  1303. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-915c9a5b78eafa55.js +0 -1
  1304. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-915c9a5b78eafa55.js +0 -1
  1305. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-915c9a5b78eafa55.js +0 -1
  1306. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +0 -1
  1307. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +0 -1
  1308. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-915c9a5b78eafa55.js +0 -1
  1309. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-915c9a5b78eafa55.js +0 -1
  1310. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-915c9a5b78eafa55.js +0 -1
  1311. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +0 -1
  1312. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +0 -1
  1313. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-915c9a5b78eafa55.js +0 -1
  1314. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-915c9a5b78eafa55.js +0 -1
  1315. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-915c9a5b78eafa55.js +0 -1
  1316. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-915c9a5b78eafa55.js +0 -1
  1317. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-915c9a5b78eafa55.js +0 -1
  1318. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +0 -1
  1319. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +0 -1
  1320. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-915c9a5b78eafa55.js +0 -1
  1321. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-915c9a5b78eafa55.js +0 -1
  1322. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-915c9a5b78eafa55.js +0 -1
  1323. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-915c9a5b78eafa55.js +0 -1
  1324. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-915c9a5b78eafa55.js +0 -1
  1325. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-915c9a5b78eafa55.js +0 -1
  1326. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-915c9a5b78eafa55.js +0 -1
  1327. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-915c9a5b78eafa55.js +0 -1
  1328. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-915c9a5b78eafa55.js +0 -1
  1329. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-915c9a5b78eafa55.js +0 -1
  1330. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-915c9a5b78eafa55.js +0 -1
  1331. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +0 -1
  1332. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +0 -1
  1333. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-915c9a5b78eafa55.js +0 -1
  1334. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-915c9a5b78eafa55.js +0 -1
  1335. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-915c9a5b78eafa55.js +0 -1
  1336. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-915c9a5b78eafa55.js +0 -1
  1337. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-915c9a5b78eafa55.js +0 -1
  1338. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-915c9a5b78eafa55.js +0 -1
  1339. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-915c9a5b78eafa55.js +0 -1
  1340. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-915c9a5b78eafa55.js +0 -1
  1341. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-915c9a5b78eafa55.js +0 -1
  1342. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-915c9a5b78eafa55.js +0 -1
  1343. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-915c9a5b78eafa55.js +0 -1
  1344. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-915c9a5b78eafa55.js +0 -1
  1345. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-915c9a5b78eafa55.js +0 -1
  1346. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-915c9a5b78eafa55.js +0 -1
  1347. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-915c9a5b78eafa55.js +0 -1
  1348. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-915c9a5b78eafa55.js +0 -1
  1349. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-915c9a5b78eafa55.js +0 -1
  1350. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-915c9a5b78eafa55.js +0 -1
  1351. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-915c9a5b78eafa55.js +0 -1
  1352. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-915c9a5b78eafa55.js +0 -1
  1353. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-915c9a5b78eafa55.js +0 -1
  1354. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-915c9a5b78eafa55.js +0 -1
  1355. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-915c9a5b78eafa55.js +0 -1
  1356. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-915c9a5b78eafa55.js +0 -1
  1357. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-915c9a5b78eafa55.js +0 -1
  1358. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-915c9a5b78eafa55.js +0 -1
  1359. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-915c9a5b78eafa55.js +0 -1
  1360. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-915c9a5b78eafa55.js +0 -1
  1361. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-915c9a5b78eafa55.js +0 -1
  1362. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-915c9a5b78eafa55.js +0 -1
  1363. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-915c9a5b78eafa55.js +0 -1
  1364. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-915c9a5b78eafa55.js +0 -1
  1365. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-915c9a5b78eafa55.js +0 -1
  1366. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-915c9a5b78eafa55.js +0 -1
  1367. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-915c9a5b78eafa55.js +0 -1
  1368. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-915c9a5b78eafa55.js +0 -1
  1369. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-915c9a5b78eafa55.js +0 -1
  1370. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-915c9a5b78eafa55.js +0 -1
  1371. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-915c9a5b78eafa55.js +0 -1
  1372. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-915c9a5b78eafa55.js +0 -1
  1373. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-915c9a5b78eafa55.js +0 -1
  1374. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-915c9a5b78eafa55.js +0 -1
  1375. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-915c9a5b78eafa55.js +0 -1
  1376. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-915c9a5b78eafa55.js +0 -1
  1377. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-915c9a5b78eafa55.js +0 -1
  1378. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-915c9a5b78eafa55.js +0 -1
  1379. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-915c9a5b78eafa55.js +0 -1
  1380. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-915c9a5b78eafa55.js +0 -1
  1381. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-915c9a5b78eafa55.js +0 -1
  1382. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-915c9a5b78eafa55.js +0 -1
  1383. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-915c9a5b78eafa55.js +0 -1
  1384. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-915c9a5b78eafa55.js +0 -1
  1385. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-915c9a5b78eafa55.js +0 -1
  1386. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-915c9a5b78eafa55.js +0 -1
  1387. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-915c9a5b78eafa55.js +0 -1
  1388. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-915c9a5b78eafa55.js +0 -1
  1389. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-915c9a5b78eafa55.js +0 -1
  1390. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-915c9a5b78eafa55.js +0 -1
  1391. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-915c9a5b78eafa55.js +0 -1
  1392. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-915c9a5b78eafa55.js +0 -1
  1393. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-915c9a5b78eafa55.js +0 -1
  1394. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-915c9a5b78eafa55.js +0 -1
  1395. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-915c9a5b78eafa55.js +0 -1
  1396. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-915c9a5b78eafa55.js +0 -1
  1397. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-915c9a5b78eafa55.js +0 -1
  1398. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-915c9a5b78eafa55.js +0 -1
  1399. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-915c9a5b78eafa55.js +0 -1
  1400. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-915c9a5b78eafa55.js +0 -1
  1401. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-915c9a5b78eafa55.js +0 -1
  1402. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-915c9a5b78eafa55.js +0 -1
  1403. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-915c9a5b78eafa55.js +0 -1
  1404. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-915c9a5b78eafa55.js +0 -1
  1405. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-915c9a5b78eafa55.js +0 -1
  1406. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-915c9a5b78eafa55.js +0 -1
  1407. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-915c9a5b78eafa55.js +0 -1
  1408. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-915c9a5b78eafa55.js +0 -1
  1409. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-915c9a5b78eafa55.js +0 -1
  1410. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-915c9a5b78eafa55.js +0 -1
  1411. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-915c9a5b78eafa55.js +0 -1
  1412. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-915c9a5b78eafa55.js +0 -1
  1413. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-915c9a5b78eafa55.js +0 -1
  1414. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-915c9a5b78eafa55.js +0 -1
  1415. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-915c9a5b78eafa55.js +0 -1
  1416. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-915c9a5b78eafa55.js +0 -1
  1417. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-915c9a5b78eafa55.js +0 -1
  1418. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-915c9a5b78eafa55.js +0 -1
  1419. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-915c9a5b78eafa55.js +0 -1
  1420. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-915c9a5b78eafa55.js +0 -1
  1421. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-915c9a5b78eafa55.js +0 -1
  1422. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-915c9a5b78eafa55.js +0 -1
  1423. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-915c9a5b78eafa55.js +0 -1
  1424. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-915c9a5b78eafa55.js +0 -1
  1425. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-915c9a5b78eafa55.js +0 -1
  1426. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-915c9a5b78eafa55.js +0 -1
  1427. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-915c9a5b78eafa55.js +0 -1
  1428. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-915c9a5b78eafa55.js +0 -1
  1429. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-915c9a5b78eafa55.js +0 -1
  1430. package/cli/app/.next-cli-build/static/chunks/app/login/page-9ea3f794879db097.js +0 -1
  1431. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-915c9a5b78eafa55.js +0 -1
  1432. package/cli/app/.next-cli-build/static/chunks/app/page-915c9a5b78eafa55.js +0 -1
  1433. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-915c9a5b78eafa55.js +0 -1
  1434. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-915c9a5b78eafa55.js +0 -1
  1435. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-915c9a5b78eafa55.js +0 -1
  1436. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-915c9a5b78eafa55.js +0 -1
  1437. package/cli/app/.next-cli-build/static/gQ1kqTy9hoyJ5eXUJs8MC/_buildManifest.js +0 -1
  1438. package/i18n/README.ja-JP.md +0 -34
  1439. package/i18n/README.ru.md +0 -34
  1440. package/i18n/README.vi.md +0 -34
  1441. package/i18n/README.zh-CN.md +0 -34
  1442. package/images/screenshots/automation.png +0 -0
  1443. package/images/screenshots/endpoint.png +0 -0
  1444. package/images/screenshots/playground.png +0 -0
  1445. package/images/screenshots/providers.png +0 -0
  1446. package/images/screenshots/usage.png +0 -0
  1447. package/images/zevairouter.png +0 -0
  1448. package/jsconfig.json +0 -12
  1449. package/next.config.mjs +0 -96
  1450. package/open-sse/config/appConstants.js +0 -230
  1451. package/open-sse/config/codexInstructions.js +0 -119
  1452. package/open-sse/config/constants.js +0 -4
  1453. package/open-sse/config/defaultThinkingSignature.js +0 -12
  1454. package/open-sse/config/errorConfig.js +0 -92
  1455. package/open-sse/config/googleTtsLanguages.js +0 -62
  1456. package/open-sse/config/kiroConstants.js +0 -360
  1457. package/open-sse/config/models.js +0 -13
  1458. package/open-sse/config/ollamaModels.js +0 -19
  1459. package/open-sse/config/providerModels.js +0 -1058
  1460. package/open-sse/config/providers.js +0 -543
  1461. package/open-sse/config/runtimeConfig.js +0 -72
  1462. package/open-sse/config/ttsModels.js +0 -129
  1463. package/open-sse/context/injectContext.js +0 -82
  1464. package/open-sse/executors/antigravity.js +0 -605
  1465. package/open-sse/executors/autoclaw.js +0 -121
  1466. package/open-sse/executors/azure.js +0 -57
  1467. package/open-sse/executors/base.js +0 -221
  1468. package/open-sse/executors/codebuddy-cn.js +0 -31
  1469. package/open-sse/executors/codex.js +0 -484
  1470. package/open-sse/executors/commandcode.js +0 -88
  1471. package/open-sse/executors/cursor.js +0 -795
  1472. package/open-sse/executors/default.js +0 -532
  1473. package/open-sse/executors/gemini-cli.js +0 -89
  1474. package/open-sse/executors/github.js +0 -379
  1475. package/open-sse/executors/grok-cli.js +0 -397
  1476. package/open-sse/executors/grok-web.js +0 -345
  1477. package/open-sse/executors/iflow.js +0 -108
  1478. package/open-sse/executors/index.js +0 -92
  1479. package/open-sse/executors/kimchi.js +0 -123
  1480. package/open-sse/executors/kiro.js +0 -508
  1481. package/open-sse/executors/mimo-free.js +0 -156
  1482. package/open-sse/executors/ollama-local.js +0 -14
  1483. package/open-sse/executors/opencode-go.js +0 -41
  1484. package/open-sse/executors/opencode.js +0 -32
  1485. package/open-sse/executors/perplexity-web.js +0 -507
  1486. package/open-sse/executors/qoder.js +0 -468
  1487. package/open-sse/executors/qwen.js +0 -129
  1488. package/open-sse/executors/vertex.js +0 -131
  1489. package/open-sse/executors/xiaomi-tokenplan.js +0 -19
  1490. package/open-sse/handlers/chatCore/nonStreamingHandler.js +0 -233
  1491. package/open-sse/handlers/chatCore/requestDetail.js +0 -112
  1492. package/open-sse/handlers/chatCore/sseToJsonHandler.js +0 -245
  1493. package/open-sse/handlers/chatCore/streamingHandler.js +0 -103
  1494. package/open-sse/handlers/chatCore.js +0 -383
  1495. package/open-sse/handlers/embeddingProviders/_base.js +0 -4
  1496. package/open-sse/handlers/embeddingProviders/gemini.js +0 -57
  1497. package/open-sse/handlers/embeddingProviders/index.js +0 -23
  1498. package/open-sse/handlers/embeddingProviders/openai.js +0 -39
  1499. package/open-sse/handlers/embeddingProviders/openaiCompatNode.js +0 -16
  1500. package/open-sse/handlers/embeddingsCore.js +0 -126
  1501. package/open-sse/handlers/fetch/index.js +0 -237
  1502. package/open-sse/handlers/imageGenerationCore.js +0 -189
  1503. package/open-sse/handlers/imageProviders/_base.js +0 -31
  1504. package/open-sse/handlers/imageProviders/blackForestLabs.js +0 -46
  1505. package/open-sse/handlers/imageProviders/cloudflareAi.js +0 -181
  1506. package/open-sse/handlers/imageProviders/codex.js +0 -201
  1507. package/open-sse/handlers/imageProviders/comfyui.js +0 -11
  1508. package/open-sse/handlers/imageProviders/falAi.js +0 -44
  1509. package/open-sse/handlers/imageProviders/gemini.js +0 -28
  1510. package/open-sse/handlers/imageProviders/huggingface.js +0 -25
  1511. package/open-sse/handlers/imageProviders/index.js +0 -40
  1512. package/open-sse/handlers/imageProviders/nanobanana.js +0 -61
  1513. package/open-sse/handlers/imageProviders/openai.js +0 -40
  1514. package/open-sse/handlers/imageProviders/runwayml.js +0 -50
  1515. package/open-sse/handlers/imageProviders/sdwebui.js +0 -20
  1516. package/open-sse/handlers/imageProviders/stabilityAi.js +0 -37
  1517. package/open-sse/handlers/responsesHandler.js +0 -111
  1518. package/open-sse/handlers/search/callers.js +0 -371
  1519. package/open-sse/handlers/search/chatSearch.js +0 -409
  1520. package/open-sse/handlers/search/index.js +0 -201
  1521. package/open-sse/handlers/search/normalizers.js +0 -223
  1522. package/open-sse/handlers/sttCore.js +0 -194
  1523. package/open-sse/handlers/ttsCore.js +0 -74
  1524. package/open-sse/handlers/ttsProviders/_base.js +0 -39
  1525. package/open-sse/handlers/ttsProviders/edgeTts.js +0 -92
  1526. package/open-sse/handlers/ttsProviders/elevenlabs.js +0 -51
  1527. package/open-sse/handlers/ttsProviders/gemini.js +0 -120
  1528. package/open-sse/handlers/ttsProviders/genericFormats.js +0 -169
  1529. package/open-sse/handlers/ttsProviders/googleTts.js +0 -57
  1530. package/open-sse/handlers/ttsProviders/index.js +0 -50
  1531. package/open-sse/handlers/ttsProviders/localDevice.js +0 -90
  1532. package/open-sse/handlers/ttsProviders/minimax.js +0 -59
  1533. package/open-sse/handlers/ttsProviders/openai.js +0 -33
  1534. package/open-sse/handlers/ttsProviders/openrouter.js +0 -73
  1535. package/open-sse/index.js +0 -82
  1536. package/open-sse/rtk/applyFilter.js +0 -15
  1537. package/open-sse/rtk/autodetect.js +0 -111
  1538. package/open-sse/rtk/caveman.js +0 -100
  1539. package/open-sse/rtk/cavemanPrompts.js +0 -78
  1540. package/open-sse/rtk/constants.js +0 -55
  1541. package/open-sse/rtk/filters/buildOutput.js +0 -127
  1542. package/open-sse/rtk/filters/dedupLog.js +0 -44
  1543. package/open-sse/rtk/filters/find.js +0 -49
  1544. package/open-sse/rtk/filters/gitDiff.js +0 -92
  1545. package/open-sse/rtk/filters/gitStatus.js +0 -117
  1546. package/open-sse/rtk/filters/grep.js +0 -48
  1547. package/open-sse/rtk/filters/ls.js +0 -79
  1548. package/open-sse/rtk/filters/readNumbered.js +0 -27
  1549. package/open-sse/rtk/filters/searchList.js +0 -52
  1550. package/open-sse/rtk/filters/smartTruncate.js +0 -15
  1551. package/open-sse/rtk/filters/tree.js +0 -32
  1552. package/open-sse/rtk/headroom.js +0 -348
  1553. package/open-sse/rtk/index.js +0 -155
  1554. package/open-sse/rtk/ponytail.js +0 -91
  1555. package/open-sse/rtk/ponytailPrompts.js +0 -44
  1556. package/open-sse/rtk/pxpipe.js +0 -104
  1557. package/open-sse/rtk/registry.js +0 -38
  1558. package/open-sse/services/accountFallback.js +0 -349
  1559. package/open-sse/services/antigravityHeaderScrub.js +0 -78
  1560. package/open-sse/services/antigravityIdentity.js +0 -115
  1561. package/open-sse/services/antigravityObfuscation.js +0 -92
  1562. package/open-sse/services/clinepassModels.js +0 -63
  1563. package/open-sse/services/combo.js +0 -189
  1564. package/open-sse/services/compact.js +0 -71
  1565. package/open-sse/services/copilotModels.js +0 -155
  1566. package/open-sse/services/kimchiModels.js +0 -176
  1567. package/open-sse/services/kiroModels.js +0 -320
  1568. package/open-sse/services/model.js +0 -281
  1569. package/open-sse/services/oauthCredentialManager.js +0 -151
  1570. package/open-sse/services/projectId.js +0 -463
  1571. package/open-sse/services/provider.js +0 -356
  1572. package/open-sse/services/qoderModels.js +0 -216
  1573. package/open-sse/services/tokenRefresh.js +0 -949
  1574. package/open-sse/services/usage.js +0 -2415
  1575. package/open-sse/transformer/responsesTransformer.js +0 -439
  1576. package/open-sse/transformer/streamToJsonConverter.js +0 -107
  1577. package/open-sse/translator/formats.js +0 -36
  1578. package/open-sse/translator/helpers/claudeHelper.js +0 -216
  1579. package/open-sse/translator/helpers/geminiHelper.js +0 -372
  1580. package/open-sse/translator/helpers/imageHelper.js +0 -34
  1581. package/open-sse/translator/helpers/maxTokensHelper.js +0 -27
  1582. package/open-sse/translator/helpers/openaiHelper.js +0 -130
  1583. package/open-sse/translator/helpers/responsesApiHelper.js +0 -139
  1584. package/open-sse/translator/helpers/toolCallHelper.js +0 -148
  1585. package/open-sse/translator/index.js +0 -251
  1586. package/open-sse/translator/request/antigravity-to-openai.js +0 -229
  1587. package/open-sse/translator/request/claude-to-openai.js +0 -232
  1588. package/open-sse/translator/request/gemini-to-openai.js +0 -147
  1589. package/open-sse/translator/request/openai-responses.js +0 -318
  1590. package/open-sse/translator/request/openai-to-claude.js +0 -401
  1591. package/open-sse/translator/request/openai-to-commandcode.js +0 -170
  1592. package/open-sse/translator/request/openai-to-cursor.js +0 -183
  1593. package/open-sse/translator/request/openai-to-gemini.js +0 -476
  1594. package/open-sse/translator/request/openai-to-kiro.js +0 -629
  1595. package/open-sse/translator/request/openai-to-kiro.old.js +0 -278
  1596. package/open-sse/translator/request/openai-to-ollama.js +0 -192
  1597. package/open-sse/translator/request/openai-to-vertex.js +0 -42
  1598. package/open-sse/translator/response/claude-to-openai.js +0 -206
  1599. package/open-sse/translator/response/commandcode-to-openai.js +0 -197
  1600. package/open-sse/translator/response/cursor-to-openai.js +0 -30
  1601. package/open-sse/translator/response/gemini-to-openai.js +0 -245
  1602. package/open-sse/translator/response/kiro-to-openai.js +0 -195
  1603. package/open-sse/translator/response/ollama-to-openai.js +0 -152
  1604. package/open-sse/translator/response/openai-responses.js +0 -590
  1605. package/open-sse/translator/response/openai-to-antigravity.js +0 -122
  1606. package/open-sse/translator/response/openai-to-claude.js +0 -266
  1607. package/open-sse/utils/bypassHandler.js +0 -298
  1608. package/open-sse/utils/claudeCloaking.js +0 -155
  1609. package/open-sse/utils/claudeHeaderCache.js +0 -70
  1610. package/open-sse/utils/clientDetector.js +0 -64
  1611. package/open-sse/utils/cursorChecksum.js +0 -152
  1612. package/open-sse/utils/cursorProtobuf.js +0 -907
  1613. package/open-sse/utils/debugLog.js +0 -14
  1614. package/open-sse/utils/error.js +0 -147
  1615. package/open-sse/utils/ollamaTransform.js +0 -85
  1616. package/open-sse/utils/proxyFetch.js +0 -369
  1617. package/open-sse/utils/reasoningContentInjector.js +0 -79
  1618. package/open-sse/utils/requestLogger.js +0 -251
  1619. package/open-sse/utils/responsesStreamHelpers.js +0 -49
  1620. package/open-sse/utils/sessionManager.js +0 -231
  1621. package/open-sse/utils/stream.js +0 -480
  1622. package/open-sse/utils/streamHandler.js +0 -262
  1623. package/open-sse/utils/streamHelpers.js +0 -122
  1624. package/open-sse/utils/thinkingSuffix.js +0 -64
  1625. package/open-sse/utils/toolDeduper.js +0 -49
  1626. package/open-sse/utils/usageTracking.js +0 -351
  1627. package/postcss.config.mjs +0 -12
  1628. package/public/favicon.svg +0 -16
  1629. package/public/file.svg +0 -1
  1630. package/public/globe.svg +0 -1
  1631. package/public/i18n/literals/ar.json +0 -195
  1632. package/public/i18n/literals/bn.json +0 -195
  1633. package/public/i18n/literals/cs.json +0 -195
  1634. package/public/i18n/literals/da.json +0 -195
  1635. package/public/i18n/literals/de.json +0 -195
  1636. package/public/i18n/literals/el.json +0 -195
  1637. package/public/i18n/literals/es.json +0 -195
  1638. package/public/i18n/literals/fi.json +0 -195
  1639. package/public/i18n/literals/fr.json +0 -195
  1640. package/public/i18n/literals/he.json +0 -195
  1641. package/public/i18n/literals/hi.json +0 -195
  1642. package/public/i18n/literals/hu.json +0 -195
  1643. package/public/i18n/literals/id.json +0 -195
  1644. package/public/i18n/literals/it.json +0 -195
  1645. package/public/i18n/literals/ja.json +0 -195
  1646. package/public/i18n/literals/ko.json +0 -195
  1647. package/public/i18n/literals/nl.json +0 -195
  1648. package/public/i18n/literals/no.json +0 -195
  1649. package/public/i18n/literals/pl.json +0 -195
  1650. package/public/i18n/literals/pt-BR.json +0 -195
  1651. package/public/i18n/literals/pt-PT.json +0 -195
  1652. package/public/i18n/literals/ro.json +0 -195
  1653. package/public/i18n/literals/ru.json +0 -195
  1654. package/public/i18n/literals/sv.json +0 -195
  1655. package/public/i18n/literals/th.json +0 -195
  1656. package/public/i18n/literals/tl.json +0 -195
  1657. package/public/i18n/literals/tr.json +0 -195
  1658. package/public/i18n/literals/uk.json +0 -195
  1659. package/public/i18n/literals/ur.json +0 -195
  1660. package/public/i18n/literals/vi.json +0 -195
  1661. package/public/i18n/literals/zh-CN.json +0 -772
  1662. package/public/i18n/literals/zh-TW.json +0 -195
  1663. package/public/icons/discord.svg +0 -4
  1664. package/public/icons/icon-192.svg +0 -16
  1665. package/public/icons/icon-512.svg +0 -16
  1666. package/public/next.svg +0 -1
  1667. package/public/providers/alicode-intl.png +0 -0
  1668. package/public/providers/alicode.png +0 -0
  1669. package/public/providers/amp.png +0 -0
  1670. package/public/providers/anthropic-m.png +0 -0
  1671. package/public/providers/anthropic.png +0 -0
  1672. package/public/providers/antigravity.png +0 -0
  1673. package/public/providers/assemblyai.png +0 -0
  1674. package/public/providers/autoclaw.png +0 -0
  1675. package/public/providers/aws-polly.png +0 -0
  1676. package/public/providers/azure.png +0 -0
  1677. package/public/providers/black-forest-labs.png +0 -0
  1678. package/public/providers/blackbox.png +0 -0
  1679. package/public/providers/brave-search.png +0 -0
  1680. package/public/providers/byteplus.png +0 -0
  1681. package/public/providers/cartesia.png +0 -0
  1682. package/public/providers/cerebras.png +0 -0
  1683. package/public/providers/chutes.png +0 -0
  1684. package/public/providers/claude.png +0 -0
  1685. package/public/providers/cline.png +0 -0
  1686. package/public/providers/clinepass.png +0 -0
  1687. package/public/providers/cloudflare-ai.png +0 -0
  1688. package/public/providers/codebuddy-cn.png +0 -0
  1689. package/public/providers/codebuddy.png +0 -0
  1690. package/public/providers/codebuddy.svg +0 -37
  1691. package/public/providers/codex.png +0 -0
  1692. package/public/providers/cohere.png +0 -0
  1693. package/public/providers/comfyui.png +0 -0
  1694. package/public/providers/commandcode.png +0 -0
  1695. package/public/providers/continue.png +0 -0
  1696. package/public/providers/copilot.png +0 -0
  1697. package/public/providers/coqui.png +0 -0
  1698. package/public/providers/cursor.png +0 -0
  1699. package/public/providers/deepgram.png +0 -0
  1700. package/public/providers/deepseek-tui.png +0 -0
  1701. package/public/providers/deepseek.png +0 -0
  1702. package/public/providers/droid.png +0 -0
  1703. package/public/providers/edge-tts.png +0 -0
  1704. package/public/providers/elevenlabs.png +0 -0
  1705. package/public/providers/exa.png +0 -0
  1706. package/public/providers/fal-ai.png +0 -0
  1707. package/public/providers/firecrawl.png +0 -0
  1708. package/public/providers/fireworks.png +0 -0
  1709. package/public/providers/gemini-cli.png +0 -0
  1710. package/public/providers/gemini.png +0 -0
  1711. package/public/providers/github.png +0 -0
  1712. package/public/providers/glm-cn.png +0 -0
  1713. package/public/providers/glm.png +0 -0
  1714. package/public/providers/google-pse.png +0 -0
  1715. package/public/providers/google-tts.png +0 -0
  1716. package/public/providers/grok-cli.png +0 -0
  1717. package/public/providers/grok-web.png +0 -0
  1718. package/public/providers/groq.png +0 -0
  1719. package/public/providers/hermes.png +0 -0
  1720. package/public/providers/huggingface.png +0 -0
  1721. package/public/providers/hyperbolic.png +0 -0
  1722. package/public/providers/iflow.png +0 -0
  1723. package/public/providers/inworld.png +0 -0
  1724. package/public/providers/jcode.png +0 -0
  1725. package/public/providers/jina-ai.png +0 -0
  1726. package/public/providers/jina-reader.png +0 -0
  1727. package/public/providers/kilocode.png +0 -0
  1728. package/public/providers/kimchi.png +0 -0
  1729. package/public/providers/kimchi.svg +0 -4
  1730. package/public/providers/kimi-coding.png +0 -0
  1731. package/public/providers/kimi.png +0 -0
  1732. package/public/providers/kiro.png +0 -0
  1733. package/public/providers/linkup.png +0 -0
  1734. package/public/providers/local-device.png +0 -0
  1735. package/public/providers/mimo-free.png +0 -0
  1736. package/public/providers/minimax-cn.png +0 -0
  1737. package/public/providers/minimax.png +0 -0
  1738. package/public/providers/mistral.png +0 -0
  1739. package/public/providers/nanobanana.png +0 -0
  1740. package/public/providers/nebius.png +0 -0
  1741. package/public/providers/nvidia.png +0 -0
  1742. package/public/providers/oai-cc.png +0 -0
  1743. package/public/providers/oai-r.png +0 -0
  1744. package/public/providers/ollama-local.png +0 -0
  1745. package/public/providers/ollama.png +0 -0
  1746. package/public/providers/openai.png +0 -0
  1747. package/public/providers/openclaw.png +0 -0
  1748. package/public/providers/opencode-go.png +0 -0
  1749. package/public/providers/opencode.png +0 -0
  1750. package/public/providers/openrouter.png +0 -0
  1751. package/public/providers/perplexity-agent.png +0 -0
  1752. package/public/providers/perplexity-web.png +0 -0
  1753. package/public/providers/perplexity.png +0 -0
  1754. package/public/providers/playht.png +0 -0
  1755. package/public/providers/qoder.png +0 -0
  1756. package/public/providers/qwen.png +0 -0
  1757. package/public/providers/recraft.png +0 -0
  1758. package/public/providers/roo.png +0 -0
  1759. package/public/providers/runwayml.png +0 -0
  1760. package/public/providers/sdwebui.png +0 -0
  1761. package/public/providers/searchapi.png +0 -0
  1762. package/public/providers/searxng.png +0 -0
  1763. package/public/providers/serper.png +0 -0
  1764. package/public/providers/siliconflow.png +0 -0
  1765. package/public/providers/stability-ai.png +0 -0
  1766. package/public/providers/tavily.png +0 -0
  1767. package/public/providers/together.png +0 -0
  1768. package/public/providers/topaz.png +0 -0
  1769. package/public/providers/tortoise.png +0 -0
  1770. package/public/providers/vertex-partner.png +0 -0
  1771. package/public/providers/vertex.png +0 -0
  1772. package/public/providers/volcengine-ark.png +0 -0
  1773. package/public/providers/voyage-ai.png +0 -0
  1774. package/public/providers/xai.png +0 -0
  1775. package/public/providers/xiaomi-mimo.png +0 -0
  1776. package/public/providers/xiaomi-tokenplan.png +0 -0
  1777. package/public/providers/youcom.png +0 -0
  1778. package/public/sw.js +0 -22
  1779. package/public/vercel.svg +0 -1
  1780. package/public/window.svg +0 -1
  1781. package/scripts/translate-readme.js +0 -201
  1782. package/src/app/(dashboard)/dashboard/automation/page.js +0 -774
  1783. package/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js +0 -1592
  1784. package/src/app/(dashboard)/dashboard/basic-chat/page.js +0 -5
  1785. package/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js +0 -77
  1786. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/ToolDetailClient.js +0 -173
  1787. package/src/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +0 -11
  1788. package/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.js +0 -487
  1789. package/src/app/(dashboard)/dashboard/cli-tools/components/ApiKeySelect.js +0 -14
  1790. package/src/app/(dashboard)/dashboard/cli-tools/components/BaseUrlSelect.js +0 -176
  1791. package/src/app/(dashboard)/dashboard/cli-tools/components/ClaudeToolCard.js +0 -396
  1792. package/src/app/(dashboard)/dashboard/cli-tools/components/ClineToolCard.js +0 -307
  1793. package/src/app/(dashboard)/dashboard/cli-tools/components/CodexToolCard.js +0 -466
  1794. package/src/app/(dashboard)/dashboard/cli-tools/components/CopilotToolCard.js +0 -330
  1795. package/src/app/(dashboard)/dashboard/cli-tools/components/CoworkToolCard.js +0 -646
  1796. package/src/app/(dashboard)/dashboard/cli-tools/components/DeepSeekTuiToolCard.js +0 -344
  1797. package/src/app/(dashboard)/dashboard/cli-tools/components/DefaultToolCard.js +0 -271
  1798. package/src/app/(dashboard)/dashboard/cli-tools/components/DroidToolCard.js +0 -421
  1799. package/src/app/(dashboard)/dashboard/cli-tools/components/EndpointPresetControl.js +0 -129
  1800. package/src/app/(dashboard)/dashboard/cli-tools/components/HermesToolCard.js +0 -323
  1801. package/src/app/(dashboard)/dashboard/cli-tools/components/JcodeToolCard.js +0 -386
  1802. package/src/app/(dashboard)/dashboard/cli-tools/components/KiloToolCard.js +0 -280
  1803. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmLinkCard.js +0 -40
  1804. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmServerCard.js +0 -329
  1805. package/src/app/(dashboard)/dashboard/cli-tools/components/MitmToolCard.js +0 -320
  1806. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenClawToolCard.js +0 -394
  1807. package/src/app/(dashboard)/dashboard/cli-tools/components/OpenCodeToolCard.js +0 -512
  1808. package/src/app/(dashboard)/dashboard/cli-tools/components/ToolSummaryCard.js +0 -40
  1809. package/src/app/(dashboard)/dashboard/cli-tools/components/cliEndpointMatch.js +0 -13
  1810. package/src/app/(dashboard)/dashboard/cli-tools/components/index.js +0 -19
  1811. package/src/app/(dashboard)/dashboard/cli-tools/page.js +0 -7
  1812. package/src/app/(dashboard)/dashboard/combos/page.js +0 -615
  1813. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js +0 -118
  1814. package/src/app/(dashboard)/dashboard/console-log/page.js +0 -8
  1815. package/src/app/(dashboard)/dashboard/context/page.js +0 -276
  1816. package/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js +0 -1594
  1817. package/src/app/(dashboard)/dashboard/endpoint/endpointConstants.js +0 -32
  1818. package/src/app/(dashboard)/dashboard/endpoint/page.js +0 -7
  1819. package/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +0 -1913
  1820. package/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js +0 -289
  1821. package/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +0 -413
  1822. package/src/app/(dashboard)/dashboard/media-providers/web/page.js +0 -209
  1823. package/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js +0 -121
  1824. package/src/app/(dashboard)/dashboard/mitm/page.js +0 -5
  1825. package/src/app/(dashboard)/dashboard/page.js +0 -7
  1826. package/src/app/(dashboard)/dashboard/playground/page.js +0 -5
  1827. package/src/app/(dashboard)/dashboard/profile/page.js +0 -1284
  1828. package/src/app/(dashboard)/dashboard/providers/[id]/AddApiKeyModal.js +0 -389
  1829. package/src/app/(dashboard)/dashboard/providers/[id]/AddCustomModelModal.js +0 -126
  1830. package/src/app/(dashboard)/dashboard/providers/[id]/CompatibleModelsSection.js +0 -250
  1831. package/src/app/(dashboard)/dashboard/providers/[id]/ConnectionRow.js +0 -318
  1832. package/src/app/(dashboard)/dashboard/providers/[id]/CooldownTimer.js +0 -42
  1833. package/src/app/(dashboard)/dashboard/providers/[id]/EditCompatibleNodeModal.js +0 -162
  1834. package/src/app/(dashboard)/dashboard/providers/[id]/ModelRow.js +0 -99
  1835. package/src/app/(dashboard)/dashboard/providers/[id]/PassthroughModelsSection.js +0 -183
  1836. package/src/app/(dashboard)/dashboard/providers/[id]/page.js +0 -2171
  1837. package/src/app/(dashboard)/dashboard/providers/[id]/page.new.js +0 -1726
  1838. package/src/app/(dashboard)/dashboard/providers/components/ConnectionsCard.js +0 -499
  1839. package/src/app/(dashboard)/dashboard/providers/components/ModelAvailabilityBadge.js +0 -186
  1840. package/src/app/(dashboard)/dashboard/providers/components/ModelsCard.js +0 -295
  1841. package/src/app/(dashboard)/dashboard/providers/new/page.js +0 -220
  1842. package/src/app/(dashboard)/dashboard/providers/page.js +0 -1518
  1843. package/src/app/(dashboard)/dashboard/proxy-pools/page.js +0 -1095
  1844. package/src/app/(dashboard)/dashboard/pxpipe/PxpipeClient.js +0 -284
  1845. package/src/app/(dashboard)/dashboard/pxpipe/page.js +0 -5
  1846. package/src/app/(dashboard)/dashboard/quota/page.js +0 -11
  1847. package/src/app/(dashboard)/dashboard/terminal/TerminalPageClient.js +0 -735
  1848. package/src/app/(dashboard)/dashboard/terminal/page.js +0 -7
  1849. package/src/app/(dashboard)/dashboard/token-saver/TokenSaverClient.js +0 -1018
  1850. package/src/app/(dashboard)/dashboard/token-saver/page.js +0 -5
  1851. package/src/app/(dashboard)/dashboard/translator/page.js +0 -303
  1852. package/src/app/(dashboard)/dashboard/usage/components/OverviewCards.js +0 -87
  1853. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/ProviderLimitCard.js +0 -183
  1854. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaProgressBar.js +0 -127
  1855. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/QuotaTable.js +0 -269
  1856. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js +0 -1569
  1857. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.js +0 -320
  1858. package/src/app/(dashboard)/dashboard/usage/components/ProviderTopology.js +0 -468
  1859. package/src/app/(dashboard)/dashboard/usage/components/RequestDetailsTab.js +0 -435
  1860. package/src/app/(dashboard)/dashboard/usage/components/UsageChart.js +0 -155
  1861. package/src/app/(dashboard)/dashboard/usage/components/UsageTable.js +0 -253
  1862. package/src/app/(dashboard)/dashboard/usage/page.js +0 -75
  1863. package/src/app/(dashboard)/layout.js +0 -6
  1864. package/src/app/api/auth/login/route.js +0 -76
  1865. package/src/app/api/auth/logout/route.js +0 -14
  1866. package/src/app/api/auth/oidc/callback/route.js +0 -87
  1867. package/src/app/api/auth/oidc/start/route.js +0 -52
  1868. package/src/app/api/auth/oidc/test/route.js +0 -86
  1869. package/src/app/api/auth/status/route.js +0 -45
  1870. package/src/app/api/cache/stats/route.js +0 -13
  1871. package/src/app/api/changelog/route.js +0 -48
  1872. package/src/app/api/cli-tools/all-statuses/route.js +0 -46
  1873. package/src/app/api/cli-tools/antigravity-mitm/alias/route.js +0 -53
  1874. package/src/app/api/cli-tools/antigravity-mitm/route.js +0 -202
  1875. package/src/app/api/cli-tools/claude-settings/route.js +0 -203
  1876. package/src/app/api/cli-tools/cline-settings/route.js +0 -133
  1877. package/src/app/api/cli-tools/codex-gateway/accounts/route.js +0 -16
  1878. package/src/app/api/cli-tools/codex-settings/route.js +0 -271
  1879. package/src/app/api/cli-tools/copilot-settings/route.js +0 -153
  1880. package/src/app/api/cli-tools/cowork-mcp-registry/route.js +0 -77
  1881. package/src/app/api/cli-tools/cowork-mcp-tools/route.js +0 -95
  1882. package/src/app/api/cli-tools/cowork-settings/route.js +0 -412
  1883. package/src/app/api/cli-tools/deepseek-tui-settings/route.js +0 -164
  1884. package/src/app/api/cli-tools/droid-settings/route.js +0 -213
  1885. package/src/app/api/cli-tools/hermes-settings/route.js +0 -175
  1886. package/src/app/api/cli-tools/jcode-settings/route.js +0 -216
  1887. package/src/app/api/cli-tools/kilo-settings/route.js +0 -131
  1888. package/src/app/api/cli-tools/openclaw-settings/route.js +0 -292
  1889. package/src/app/api/cli-tools/opencode-settings/route.js +0 -259
  1890. package/src/app/api/combos/[id]/route.js +0 -81
  1891. package/src/app/api/combos/route.js +0 -48
  1892. package/src/app/api/context/[id]/route.js +0 -35
  1893. package/src/app/api/context/bulk/route.js +0 -25
  1894. package/src/app/api/context/route.js +0 -33
  1895. package/src/app/api/dashboard/chat/completions/route.js +0 -74
  1896. package/src/app/api/headroom/extras/route.js +0 -46
  1897. package/src/app/api/headroom/proxy/[...path]/route.js +0 -104
  1898. package/src/app/api/headroom/restart/route.js +0 -35
  1899. package/src/app/api/headroom/start/route.js +0 -35
  1900. package/src/app/api/headroom/status/route.js +0 -18
  1901. package/src/app/api/headroom/stop/route.js +0 -14
  1902. package/src/app/api/health/ready/route.js +0 -21
  1903. package/src/app/api/health/route.js +0 -15
  1904. package/src/app/api/init/route.js +0 -12
  1905. package/src/app/api/keys/[id]/rotate/route.js +0 -14
  1906. package/src/app/api/keys/[id]/route.js +0 -69
  1907. package/src/app/api/keys/route.js +0 -42
  1908. package/src/app/api/locale/route.js +0 -30
  1909. package/src/app/api/mcp/[plugin]/message/route.js +0 -21
  1910. package/src/app/api/mcp/[plugin]/sse/route.js +0 -37
  1911. package/src/app/api/media-providers/tts/deepgram/voices/route.js +0 -65
  1912. package/src/app/api/media-providers/tts/elevenlabs/voices/route.js +0 -71
  1913. package/src/app/api/media-providers/tts/inworld/voices/route.js +0 -61
  1914. package/src/app/api/media-providers/tts/minimax/voices/route.js +0 -113
  1915. package/src/app/api/media-providers/tts/voices/route.js +0 -99
  1916. package/src/app/api/metrics/route.js +0 -32
  1917. package/src/app/api/models/alias/route.js +0 -53
  1918. package/src/app/api/models/availability/route.js +0 -103
  1919. package/src/app/api/models/custom/route.js +0 -48
  1920. package/src/app/api/models/disabled/route.js +0 -50
  1921. package/src/app/api/models/route.js +0 -68
  1922. package/src/app/api/models/test/ping.js +0 -191
  1923. package/src/app/api/models/test/route.js +0 -14
  1924. package/src/app/api/oauth/[provider]/[action]/route.js +0 -340
  1925. package/src/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +0 -19
  1926. package/src/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1927. package/src/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +0 -23
  1928. package/src/app/api/oauth/antigravity/bulk-import/latest/route.js +0 -24
  1929. package/src/app/api/oauth/antigravity/bulk-import/route.js +0 -51
  1930. package/src/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +0 -19
  1931. package/src/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1932. package/src/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +0 -25
  1933. package/src/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +0 -27
  1934. package/src/app/api/oauth/cloudflare-ai/bulk-import/route.js +0 -56
  1935. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +0 -19
  1936. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1937. package/src/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +0 -23
  1938. package/src/app/api/oauth/codebuddy/bulk-import/latest/route.js +0 -25
  1939. package/src/app/api/oauth/codebuddy/bulk-import/route.js +0 -51
  1940. package/src/app/api/oauth/codebuddy/bulk-token/route.js +0 -118
  1941. package/src/app/api/oauth/codebuddy/quota-cookie/route.js +0 -133
  1942. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +0 -19
  1943. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1944. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +0 -26
  1945. package/src/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +0 -27
  1946. package/src/app/api/oauth/codebuddy-cn/bulk-import/route.js +0 -61
  1947. package/src/app/api/oauth/codebuddy-cn/bulk-token/route.js +0 -119
  1948. package/src/app/api/oauth/codebuddy-cn/quota-cookie/route.js +0 -28
  1949. package/src/app/api/oauth/codex/import-token/route.js +0 -96
  1950. package/src/app/api/oauth/cursor/auto-import/route.js +0 -257
  1951. package/src/app/api/oauth/cursor/import/route.js +0 -100
  1952. package/src/app/api/oauth/gitlab/pat/route.js +0 -62
  1953. package/src/app/api/oauth/iflow/cookie/route.js +0 -137
  1954. package/src/app/api/oauth/kiro/auto-import/route.js +0 -85
  1955. package/src/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +0 -19
  1956. package/src/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1957. package/src/app/api/oauth/kiro/bulk-import/[jobId]/route.js +0 -23
  1958. package/src/app/api/oauth/kiro/bulk-import/latest/route.js +0 -25
  1959. package/src/app/api/oauth/kiro/bulk-import/route.js +0 -51
  1960. package/src/app/api/oauth/kiro/import/route.js +0 -110
  1961. package/src/app/api/oauth/kiro/social-authorize/route.js +0 -27
  1962. package/src/app/api/oauth/kiro/social-exchange/route.js +0 -41
  1963. package/src/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +0 -19
  1964. package/src/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +0 -30
  1965. package/src/app/api/oauth/qoder/bulk-import/[jobId]/route.js +0 -23
  1966. package/src/app/api/oauth/qoder/bulk-import/latest/route.js +0 -24
  1967. package/src/app/api/oauth/qoder/bulk-import/route.js +0 -49
  1968. package/src/app/api/pricing/route.js +0 -134
  1969. package/src/app/api/provider-nodes/[id]/route.js +0 -101
  1970. package/src/app/api/provider-nodes/route.js +0 -104
  1971. package/src/app/api/provider-nodes/validate/route.js +0 -201
  1972. package/src/app/api/providers/[id]/models/route.js +0 -605
  1973. package/src/app/api/providers/[id]/route.js +0 -189
  1974. package/src/app/api/providers/[id]/test/route.js +0 -23
  1975. package/src/app/api/providers/[id]/test/testUtils.js +0 -811
  1976. package/src/app/api/providers/[id]/test-models/route.js +0 -66
  1977. package/src/app/api/providers/bulk-delete/route.js +0 -60
  1978. package/src/app/api/providers/client/route.js +0 -134
  1979. package/src/app/api/providers/kilo/free-models/route.js +0 -55
  1980. package/src/app/api/providers/route.js +0 -207
  1981. package/src/app/api/providers/suggested-models/filters.js +0 -20
  1982. package/src/app/api/providers/suggested-models/route.js +0 -33
  1983. package/src/app/api/providers/test-batch/route.js +0 -131
  1984. package/src/app/api/providers/validate/route.js +0 -637
  1985. package/src/app/api/proxy-pools/[id]/route.js +0 -123
  1986. package/src/app/api/proxy-pools/[id]/test/route.js +0 -70
  1987. package/src/app/api/proxy-pools/cloudflare-deploy/route.js +0 -145
  1988. package/src/app/api/proxy-pools/deno-deploy/route.js +0 -175
  1989. package/src/app/api/proxy-pools/route.js +0 -93
  1990. package/src/app/api/proxy-pools/vercel-deploy/route.js +0 -142
  1991. package/src/app/api/pxpipe/health/route.js +0 -16
  1992. package/src/app/api/pxpipe/install/route.js +0 -20
  1993. package/src/app/api/pxpipe/logs/route.js +0 -21
  1994. package/src/app/api/pxpipe/restart/route.js +0 -16
  1995. package/src/app/api/pxpipe/start/route.js +0 -26
  1996. package/src/app/api/pxpipe/stats/route.js +0 -17
  1997. package/src/app/api/pxpipe/status/route.js +0 -21
  1998. package/src/app/api/pxpipe/stop/route.js +0 -16
  1999. package/src/app/api/settings/database/route.js +0 -36
  2000. package/src/app/api/settings/proxy-test/route.js +0 -23
  2001. package/src/app/api/settings/require-login/route.js +0 -15
  2002. package/src/app/api/settings/route.js +0 -115
  2003. package/src/app/api/shutdown/route.js +0 -24
  2004. package/src/app/api/tags/route.js +0 -18
  2005. package/src/app/api/terminal/auth/setup/route.js +0 -72
  2006. package/src/app/api/terminal/auth/status/route.js +0 -27
  2007. package/src/app/api/terminal/auth/unlock/route.js +0 -69
  2008. package/src/app/api/terminal/session/[id]/input/route.js +0 -32
  2009. package/src/app/api/terminal/session/[id]/resize/route.js +0 -18
  2010. package/src/app/api/terminal/session/[id]/route.js +0 -37
  2011. package/src/app/api/terminal/session/[id]/stream/route.js +0 -100
  2012. package/src/app/api/terminal/session/route.js +0 -30
  2013. package/src/app/api/translator/console-logs/route.js +0 -24
  2014. package/src/app/api/translator/console-logs/stream/route.js +0 -79
  2015. package/src/app/api/translator/load/route.js +0 -45
  2016. package/src/app/api/translator/save/route.js +0 -44
  2017. package/src/app/api/translator/send/route.js +0 -94
  2018. package/src/app/api/translator/translate/route.js +0 -90
  2019. package/src/app/api/tunnel/disable/route.js +0 -12
  2020. package/src/app/api/tunnel/enable/route.js +0 -16
  2021. package/src/app/api/tunnel/status/route.js +0 -13
  2022. package/src/app/api/tunnel/tailscale-check/route.js +0 -50
  2023. package/src/app/api/tunnel/tailscale-disable/route.js +0 -12
  2024. package/src/app/api/tunnel/tailscale-enable/route.js +0 -12
  2025. package/src/app/api/tunnel/tailscale-install/route.js +0 -72
  2026. package/src/app/api/usage/[connectionId]/route.js +0 -40
  2027. package/src/app/api/usage/aggregate/route.js +0 -120
  2028. package/src/app/api/usage/chart/route.js +0 -21
  2029. package/src/app/api/usage/history/route.js +0 -12
  2030. package/src/app/api/usage/logs/route.js +0 -12
  2031. package/src/app/api/usage/providers/route.js +0 -42
  2032. package/src/app/api/usage/request-details/route.js +0 -57
  2033. package/src/app/api/usage/request-logs/route.js +0 -13
  2034. package/src/app/api/usage/stats/route.js +0 -23
  2035. package/src/app/api/usage/stream/route.js +0 -79
  2036. package/src/app/api/v1/api/chat/route.js +0 -37
  2037. package/src/app/api/v1/audio/speech/route.js +0 -16
  2038. package/src/app/api/v1/audio/transcriptions/route.js +0 -19
  2039. package/src/app/api/v1/audio/voices/route.js +0 -68
  2040. package/src/app/api/v1/chat/completions/route.js +0 -35
  2041. package/src/app/api/v1/embeddings/route.js +0 -21
  2042. package/src/app/api/v1/images/generations/route.js +0 -16
  2043. package/src/app/api/v1/messages/count_tokens/route.js +0 -59
  2044. package/src/app/api/v1/messages/route.js +0 -36
  2045. package/src/app/api/v1/models/[kind]/route.js +0 -55
  2046. package/src/app/api/v1/models/info/route.js +0 -110
  2047. package/src/app/api/v1/models/route.js +0 -497
  2048. package/src/app/api/v1/responses/compact/route.js +0 -37
  2049. package/src/app/api/v1/responses/route.js +0 -30
  2050. package/src/app/api/v1/route.js +0 -1
  2051. package/src/app/api/v1/search/route.js +0 -21
  2052. package/src/app/api/v1/web/fetch/route.js +0 -21
  2053. package/src/app/api/v1beta/models/[...path]/route.js +0 -368
  2054. package/src/app/api/v1beta/models/route.js +0 -44
  2055. package/src/app/api/version/route.js +0 -198
  2056. package/src/app/api/version/shutdown/route.js +0 -15
  2057. package/src/app/api/version/update/route.js +0 -21
  2058. package/src/app/callback/page.js +0 -149
  2059. package/src/app/dashboard/settings/pricing/page.js +0 -174
  2060. package/src/app/globals.css +0 -659
  2061. package/src/app/landing/components/AnimatedBackground.js +0 -57
  2062. package/src/app/landing/components/Features.js +0 -133
  2063. package/src/app/landing/components/FlowAnimation.js +0 -175
  2064. package/src/app/landing/components/Footer.js +0 -61
  2065. package/src/app/landing/components/GetStarted.js +0 -97
  2066. package/src/app/landing/components/HeroSection.js +0 -72
  2067. package/src/app/landing/components/HowItWorks.js +0 -66
  2068. package/src/app/landing/components/Navigation.js +0 -77
  2069. package/src/app/landing/page.js +0 -106
  2070. package/src/app/layout.js +0 -48
  2071. package/src/app/login/page.js +0 -197
  2072. package/src/app/manifest.js +0 -30
  2073. package/src/app/page.js +0 -5
  2074. package/src/dashboardGuard.js +0 -288
  2075. package/src/i18n/RuntimeI18nProvider.js +0 -27
  2076. package/src/i18n/config.js +0 -146
  2077. package/src/i18n/runtime.js +0 -162
  2078. package/src/lib/alerter.js +0 -122
  2079. package/src/lib/appUpdater.js +0 -204
  2080. package/src/lib/auth/dashboardSession.js +0 -68
  2081. package/src/lib/auth/loginLimiter.js +0 -52
  2082. package/src/lib/auth/oidc.js +0 -303
  2083. package/src/lib/auth/terminalSession.js +0 -88
  2084. package/src/lib/autoclaw/constants.js +0 -63
  2085. package/src/lib/consoleLogBuffer.js +0 -79
  2086. package/src/lib/dataDir.js +0 -29
  2087. package/src/lib/db/adapters/betterSqliteAdapter.js +0 -55
  2088. package/src/lib/db/adapters/bunSqliteAdapter.js +0 -63
  2089. package/src/lib/db/adapters/nodeSqliteAdapter.js +0 -84
  2090. package/src/lib/db/adapters/sqljsAdapter.js +0 -150
  2091. package/src/lib/db/backup.js +0 -36
  2092. package/src/lib/db/dataDirMigration.js +0 -52
  2093. package/src/lib/db/driver.js +0 -111
  2094. package/src/lib/db/helpers/jsonCol.js +0 -9
  2095. package/src/lib/db/helpers/kvStore.js +0 -39
  2096. package/src/lib/db/helpers/metaStore.js +0 -22
  2097. package/src/lib/db/index.js +0 -218
  2098. package/src/lib/db/maintenance.js +0 -72
  2099. package/src/lib/db/migrate.js +0 -295
  2100. package/src/lib/db/migrations/001-initial.js +0 -17
  2101. package/src/lib/db/migrations/index.js +0 -10
  2102. package/src/lib/db/paths.js +0 -21
  2103. package/src/lib/db/repos/aliasRepo.js +0 -62
  2104. package/src/lib/db/repos/apiKeysRepo.js +0 -193
  2105. package/src/lib/db/repos/combosRepo.js +0 -73
  2106. package/src/lib/db/repos/connectionsRepo.js +0 -247
  2107. package/src/lib/db/repos/contextFilesRepo.js +0 -124
  2108. package/src/lib/db/repos/disabledModelsRepo.js +0 -56
  2109. package/src/lib/db/repos/nodesRepo.js +0 -95
  2110. package/src/lib/db/repos/pricingRepo.js +0 -108
  2111. package/src/lib/db/repos/proxyPoolsRepo.js +0 -103
  2112. package/src/lib/db/repos/quotaCacheRepo.js +0 -80
  2113. package/src/lib/db/repos/requestDetailsRepo.js +0 -249
  2114. package/src/lib/db/repos/settingsRepo.js +0 -118
  2115. package/src/lib/db/repos/usageRepo.js +0 -796
  2116. package/src/lib/db/schema.js +0 -193
  2117. package/src/lib/db/version.js +0 -21
  2118. package/src/lib/disabledModelsDb.js +0 -4
  2119. package/src/lib/headroom/detect.js +0 -192
  2120. package/src/lib/headroom/process.js +0 -260
  2121. package/src/lib/localDb.js +0 -26
  2122. package/src/lib/mcp/stdioSseBridge.js +0 -198
  2123. package/src/lib/mitmAliasCache.js +0 -46
  2124. package/src/lib/network/connectionProxy.js +0 -187
  2125. package/src/lib/network/initOutboundProxy.js +0 -25
  2126. package/src/lib/network/outboundProxy.js +0 -82
  2127. package/src/lib/network/proxyTest.js +0 -91
  2128. package/src/lib/oauth/constants/oauth.js +0 -337
  2129. package/src/lib/oauth/constants/xai.js +0 -61
  2130. package/src/lib/oauth/providers.js +0 -1821
  2131. package/src/lib/oauth/services/antigravity.js +0 -321
  2132. package/src/lib/oauth/services/antigravityBulkImportManager.js +0 -364
  2133. package/src/lib/oauth/services/autoclawTokenMonitor.js +0 -145
  2134. package/src/lib/oauth/services/bulkImportBrowserEngine.js +0 -646
  2135. package/src/lib/oauth/services/claude.js +0 -136
  2136. package/src/lib/oauth/services/cloudflareAiBulkImportManager.js +0 -503
  2137. package/src/lib/oauth/services/codebuddyAutomation.js +0 -6
  2138. package/src/lib/oauth/services/codebuddyBulkImportManager.js +0 -1033
  2139. package/src/lib/oauth/services/codebuddyCnBulkImportManager.js +0 -1878
  2140. package/src/lib/oauth/services/codebuddyCnPhoneAutomation.js +0 -1234
  2141. package/src/lib/oauth/services/codex.js +0 -144
  2142. package/src/lib/oauth/services/cursor.js +0 -179
  2143. package/src/lib/oauth/services/displayEnv.js +0 -134
  2144. package/src/lib/oauth/services/fiveSimClient.js +0 -370
  2145. package/src/lib/oauth/services/gemini.js +0 -240
  2146. package/src/lib/oauth/services/github.js +0 -225
  2147. package/src/lib/oauth/services/googleAutomation.js +0 -9
  2148. package/src/lib/oauth/services/iflow.js +0 -202
  2149. package/src/lib/oauth/services/index.js +0 -17
  2150. package/src/lib/oauth/services/kiro.js +0 -334
  2151. package/src/lib/oauth/services/kiroBulkImportManager.js +0 -1389
  2152. package/src/lib/oauth/services/kiroConnections.js +0 -93
  2153. package/src/lib/oauth/services/kiroGoogleAutomation.js +0 -2587
  2154. package/src/lib/oauth/services/oauth.js +0 -157
  2155. package/src/lib/oauth/services/openai.js +0 -123
  2156. package/src/lib/oauth/services/proxyUtils.js +0 -26
  2157. package/src/lib/oauth/services/qoder.js +0 -233
  2158. package/src/lib/oauth/services/qoderBulkImportManager.js +0 -340
  2159. package/src/lib/oauth/services/qwen.js +0 -170
  2160. package/src/lib/oauth/services/socksHttpBridge.js +0 -165
  2161. package/src/lib/oauth/services/tempmailClient.js +0 -288
  2162. package/src/lib/oauth/services/xai.js +0 -238
  2163. package/src/lib/oauth/utils/banner.js +0 -63
  2164. package/src/lib/oauth/utils/pkce.js +0 -39
  2165. package/src/lib/oauth/utils/server.js +0 -415
  2166. package/src/lib/oauth/utils/ui.js +0 -48
  2167. package/src/lib/providerNormalization.js +0 -45
  2168. package/src/lib/pxpipe/events.js +0 -125
  2169. package/src/lib/pxpipe/install.js +0 -123
  2170. package/src/lib/pxpipe/loader.js +0 -70
  2171. package/src/lib/pxpipe/service.js +0 -49
  2172. package/src/lib/qoder/constants.js +0 -64
  2173. package/src/lib/qoder/cosy.js +0 -175
  2174. package/src/lib/qoder/encoding.js +0 -55
  2175. package/src/lib/requestDetailsDb.js +0 -4
  2176. package/src/lib/responseCache.js +0 -159
  2177. package/src/lib/safeFetch.js +0 -70
  2178. package/src/lib/systemSpecs.js +0 -167
  2179. package/src/lib/terminal/ptyBridge.py +0 -163
  2180. package/src/lib/terminal/sessionManager.js +0 -434
  2181. package/src/lib/tunnel/cloudflare/cloudflared.js +0 -460
  2182. package/src/lib/tunnel/cloudflare/config.js +0 -9
  2183. package/src/lib/tunnel/cloudflare/healthCheck.js +0 -29
  2184. package/src/lib/tunnel/cloudflare/manager.js +0 -151
  2185. package/src/lib/tunnel/cloudflare/pid.js +0 -23
  2186. package/src/lib/tunnel/index.js +0 -48
  2187. package/src/lib/tunnel/shared/dnsResolver.js +0 -17
  2188. package/src/lib/tunnel/shared/internetCheck.js +0 -26
  2189. package/src/lib/tunnel/shared/state.js +0 -41
  2190. package/src/lib/tunnel/shared/watchdogConfig.js +0 -8
  2191. package/src/lib/tunnel/tailscale/config.js +0 -7
  2192. package/src/lib/tunnel/tailscale/healthCheck.js +0 -29
  2193. package/src/lib/tunnel/tailscale/manager.js +0 -129
  2194. package/src/lib/tunnel/tailscale/tailscale.js +0 -790
  2195. package/src/lib/updater/updater.js +0 -327
  2196. package/src/lib/usage/fetcher.js +0 -208
  2197. package/src/lib/usage/quotaRefresh.js +0 -71
  2198. package/src/lib/usage/quotaService.js +0 -154
  2199. package/src/lib/usageDb.js +0 -7
  2200. package/src/mitm/antigravityIdeVersion.js +0 -50
  2201. package/src/mitm/cert/generate.js +0 -32
  2202. package/src/mitm/cert/install.js +0 -274
  2203. package/src/mitm/cert/rootCA.js +0 -173
  2204. package/src/mitm/config.js +0 -87
  2205. package/src/mitm/dbReader.js +0 -22
  2206. package/src/mitm/dns/dnsConfig.js +0 -266
  2207. package/src/mitm/handlers/antigravity.js +0 -33
  2208. package/src/mitm/handlers/base.js +0 -226
  2209. package/src/mitm/handlers/copilot.js +0 -35
  2210. package/src/mitm/handlers/cursor.js +0 -15
  2211. package/src/mitm/handlers/kiro.js +0 -533
  2212. package/src/mitm/logger.js +0 -106
  2213. package/src/mitm/manager.js +0 -862
  2214. package/src/mitm/paths.js +0 -32
  2215. package/src/mitm/server.js +0 -447
  2216. package/src/mitm/winElevated.js +0 -81
  2217. package/src/models/index.js +0 -38
  2218. package/src/proxy.js +0 -5
  2219. package/src/shared/components/AddCustomEmbeddingModal.js +0 -184
  2220. package/src/shared/components/Avatar.js +0 -88
  2221. package/src/shared/components/Badge.js +0 -54
  2222. package/src/shared/components/BulkAccountAutomationModal.js +0 -644
  2223. package/src/shared/components/Button.js +0 -57
  2224. package/src/shared/components/Card.js +0 -116
  2225. package/src/shared/components/ChangelogModal.js +0 -108
  2226. package/src/shared/components/CodeBuddyCnPhoneRegisterModal.js +0 -565
  2227. package/src/shared/components/CodeBuddyQuotaCookieModal.js +0 -109
  2228. package/src/shared/components/ComboFormModal.js +0 -176
  2229. package/src/shared/components/CursorAuthModal.js +0 -213
  2230. package/src/shared/components/Drawer.js +0 -82
  2231. package/src/shared/components/EditConnectionModal.js +0 -287
  2232. package/src/shared/components/Footer.js +0 -132
  2233. package/src/shared/components/GitLabAuthModal.js +0 -194
  2234. package/src/shared/components/Header.js +0 -399
  2235. package/src/shared/components/HeaderLanguage.js +0 -48
  2236. package/src/shared/components/HeaderMenu.js +0 -127
  2237. package/src/shared/components/IFlowCookieModal.js +0 -132
  2238. package/src/shared/components/Input.js +0 -76
  2239. package/src/shared/components/KiroAuthModal.js +0 -1172
  2240. package/src/shared/components/KiroOAuthWrapper.js +0 -150
  2241. package/src/shared/components/KiroSocialOAuthModal.js +0 -205
  2242. package/src/shared/components/LanguageSwitcher.js +0 -192
  2243. package/src/shared/components/Loading.js +0 -75
  2244. package/src/shared/components/ManualConfigModal.js +0 -44
  2245. package/src/shared/components/McpMarketplaceModal.js +0 -255
  2246. package/src/shared/components/Modal.js +0 -193
  2247. package/src/shared/components/ModelSelectModal.js +0 -547
  2248. package/src/shared/components/NoAuthProxyCard.js +0 -134
  2249. package/src/shared/components/OAuthModal.js +0 -709
  2250. package/src/shared/components/Pagination.js +0 -150
  2251. package/src/shared/components/PricingModal.js +0 -209
  2252. package/src/shared/components/ProviderIcon.js +0 -68
  2253. package/src/shared/components/ProviderInfoCard.js +0 -82
  2254. package/src/shared/components/RequestLogger.js +0 -122
  2255. package/src/shared/components/SegmentedControl.js +0 -53
  2256. package/src/shared/components/Select.js +0 -67
  2257. package/src/shared/components/Sidebar.js +0 -486
  2258. package/src/shared/components/ThemeProvider.js +0 -15
  2259. package/src/shared/components/ThemeToggle.js +0 -42
  2260. package/src/shared/components/Toggle.js +0 -95
  2261. package/src/shared/components/Tooltip.js +0 -25
  2262. package/src/shared/components/UsageStats.js +0 -574
  2263. package/src/shared/components/index.js +0 -46
  2264. package/src/shared/components/layouts/AuthLayout.js +0 -29
  2265. package/src/shared/components/layouts/DashboardLayout.js +0 -121
  2266. package/src/shared/components/layouts/index.js +0 -4
  2267. package/src/shared/constants/automationProviders.js +0 -23
  2268. package/src/shared/constants/cliTools.js +0 -397
  2269. package/src/shared/constants/colors.js +0 -77
  2270. package/src/shared/constants/config.js +0 -98
  2271. package/src/shared/constants/coworkPlugins.js +0 -75
  2272. package/src/shared/constants/index.js +0 -4
  2273. package/src/shared/constants/locales.js +0 -36
  2274. package/src/shared/constants/mitmToolHosts.js +0 -12
  2275. package/src/shared/constants/models.js +0 -38
  2276. package/src/shared/constants/pricing.js +0 -311
  2277. package/src/shared/constants/providers.js +0 -450
  2278. package/src/shared/constants/ttsProviders.js +0 -138
  2279. package/src/shared/hooks/index.js +0 -2
  2280. package/src/shared/hooks/useCopyToClipboard.js +0 -43
  2281. package/src/shared/hooks/useTheme.js +0 -60
  2282. package/src/shared/services/bootstrap.js +0 -12
  2283. package/src/shared/services/initializeApp.js +0 -277
  2284. package/src/shared/utils/api.js +0 -93
  2285. package/src/shared/utils/apiKey.js +0 -98
  2286. package/src/shared/utils/clineAuth.js +0 -37
  2287. package/src/shared/utils/cn.js +0 -11
  2288. package/src/shared/utils/codexCliConfig.js +0 -44
  2289. package/src/shared/utils/connectionStatus.js +0 -162
  2290. package/src/shared/utils/index.js +0 -40
  2291. package/src/shared/utils/machine.js +0 -6
  2292. package/src/shared/utils/machineId.js +0 -66
  2293. package/src/shared/utils/providerModelsFetcher.js +0 -30
  2294. package/src/sse/handlers/chat.js +0 -436
  2295. package/src/sse/handlers/embeddings.js +0 -141
  2296. package/src/sse/handlers/fetch.js +0 -213
  2297. package/src/sse/handlers/imageGeneration.js +0 -142
  2298. package/src/sse/handlers/search.js +0 -206
  2299. package/src/sse/handlers/stt.js +0 -88
  2300. package/src/sse/handlers/tts.js +0 -114
  2301. package/src/sse/services/auth.js +0 -537
  2302. package/src/sse/services/codexGateway.js +0 -215
  2303. package/src/sse/services/model.js +0 -99
  2304. package/src/sse/services/tokenRefresh.js +0 -319
  2305. package/src/sse/utils/logger.js +0 -75
  2306. package/src/store/headerSearchStore.js +0 -19
  2307. package/src/store/index.js +0 -6
  2308. package/src/store/notificationStore.js +0 -45
  2309. package/src/store/providerStore.js +0 -55
  2310. package/src/store/settingsStore.js +0 -51
  2311. package/src/store/themeStore.js +0 -54
  2312. package/src/store/userStore.js +0 -20
  2313. package/start.sh +0 -4
  2314. /package/cli/app/.next-cli-build/static/{gQ1kqTy9hoyJ5eXUJs8MC → sRgS_5eNahHOIlOLEqVvI}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=4566,exports.ids=[1998,4566,4720],exports.modules={13868:(a,b,c)=>{c.d(b,{Q6:()=>Q,cO:()=>K,go:()=>N,hn:()=>D,KY:()=>R,kF:()=>r,$w:()=>B});var d=c(55511),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(49120),j=c(71998),k=c(20116),l=c(62409),m=c(82506);let n=new Set(["success","failed","failed_invalid_credentials","failed_exchange","failed_timeout","failed_restricted","failed_browser_blocked","cancelled"]),o=h().join(i.DATA_DIR,"kiro-bulk-import"),p=h().join(o,"meta.json"),q=new Set(["queued","running","needs_manual"]);function r(){return new Date().toISOString()}function s(a=o){f().mkdirSync(a,{recursive:!0})}function t(a,b=o){return s(b),h().join(b,`${a}.json`)}function u(a){try{if(!f().existsSync(a))return null;return JSON.parse(f().readFileSync(a,"utf8"))}catch{return null}}function v(a,b){s(h().dirname(a));let c=`${a}.${process.pid}.tmp`;f().writeFileSync(c,JSON.stringify(b,null,2),"utf8"),f().renameSync(c,a)}function w(a,b=o){return s(b),h().join(b,`${a}.resume.enc`)}function x(){return(0,d.createHash)("sha256").update(String(function(){if(process.env.BULK_IMPORT_RESUME_SECRET)return process.env.BULK_IMPORT_RESUME_SECRET;let a=h().join(i.DATA_DIR,"bulk-import-resume-key");try{return f().readFileSync(a,"utf8").trim()}catch{}try{s(i.DATA_DIR);let b=(0,d.randomBytes)(32).toString("hex");return f().writeFileSync(a,b,{mode:384}),b}catch{return(0,d.randomBytes)(32).toString("hex")}}())).digest()}function y(a){try{f().existsSync(a)&&f().rmSync(a)}catch{}}function z(a=p){return u(a)?.latestJobId||null}function A(a){if((0,k.uT)(a))return Math.min(8,Math.max(1,(0,k.q)()));let b=Number.parseInt(a,10);return Number.isFinite(b)?Math.min(8,Math.max(1,b)):4}function B(a=[]){let b=Array.isArray(a)?a:[],c=[],d=[];return b.forEach((a,b)=>{let e=String(a||"").trim();if(!e||e.startsWith("#"))return;let f="",g="";if(e.includes("|")){let[a="",...b]=e.split("|");f=a.trim(),g=b.join("|").trim()}else if(e.includes(" ")){let a=e.indexOf(" ");f=e.substring(0,a).trim(),g=e.substring(a+1).trim()}else if(e.includes(":")){let a=e.indexOf(":"),b=e.substring(0,a).trim();b.includes("@")&&(f=b,g=e.substring(a+1).trim())}f&&g?c.push({line:b+1,email:f,password:g}):d.push(b+1)}),{parsed:c,invalidLines:d}}function C(a){return{total:a.length,queued:a.filter(a=>"queued"===a.status).length,running:a.filter(a=>"running"===a.status).length,success:a.filter(a=>"success"===a.status).length,failed:a.filter(a=>"failed"===a.status||"failed_invalid_credentials"===a.status||"failed_exchange"===a.status||"failed_timeout"===a.status||"failed_restricted"===a.status||"failed_browser_blocked"===a.status).length,needs_manual:a.filter(a=>"needs_manual"===a.status).length}}function D(a,b,c="info"){return{id:(0,d.randomUUID)(),at:r(),step:a,message:b,level:c}}function E(a,b,c,d="info"){let e=D(b,c,d);return a.currentStep=b,a.updatedAt=e.at,a.logs=a.logs||[],a.logs.push(e),a.logs.length>40&&a.logs.splice(0,a.logs.length-40),e}function F(a){return a.flatMap(a=>(a.logs||[]).map(b=>({...b,email:a.email,line:a.line,workerId:a.workerId||null,status:a.status}))).sort((a,b)=>String(a.at).localeCompare(String(b.at))).slice(-80)}function G(a){if(!a)return null;try{let b=new URL(a);return(b.username||b.password)&&(b.username="***",b.password="***"),b.toString()}catch{return a.length>20?`${a.slice(0,10)}***${a.slice(-10)}`:a}}function H(a){return{email:a.email,status:a.status,error:a.error||null,connectionId:a.connectionId||null,workerId:a.workerId||null,line:a.line,proxyUrl:G(a.proxyUrl)||null,currentStep:a.currentStep||null,updatedAt:a.updatedAt||null,logs:(a.logs||[]).slice(-20),manualSessionAvailable:!!a.manualSession?.page&&"needs_manual"===a.status,manualSessionOpened:!!a.manualSession?.opened}}function I(a,b={}){return{jobId:a.jobId,status:a.status,summary:C(a.accounts),concurrency:a.concurrency,createdAt:a.createdAt,startedAt:a.startedAt,finishedAt:a.finishedAt,accounts:a.accounts.map(H),activity:F(a.accounts),error:a.error||null,preview:b.preview||null}}function J(a){if(!a||q.has(a.status))return!1;let b=a.finishedAt?Date.parse(a.finishedAt):NaN;return!!Number.isFinite(b)&&Date.now()-b<=18e5}function K(a,b={}){return a?{found:!0,stale:!1,recoverable:q.has(a.status)||J(a),job:a}:{found:!1,stale:!!b.stale,recoverable:!1,job:null}}async function L(a){let{launchBulkImportBrowser:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)),d=process.env.ZEVAI_KIRO_HEADLESS;return b({engine:a?.engine||"cloakbrowser",headless:"1"===d||"true"===d,windowSize:{width:1280,height:900}})}async function M(a){let{exchangeAndSaveKiroSocialConnection:b}=await c.e(4136).then(c.bind(c,34136));return b(a)}async function N(a,b,e={}){let f,g,h=b,i=null,j="codebuddy-cn"===e.profile&&!0===e.nativeCloakProfile;if(b){let{ensureSocksHttpBridge:a,isSocksProxyUrl:d}=await c.e(6652).then(c.bind(c,76652));d(b)&&(i=await a(b),i?.httpProxyUrl&&(h=i.httpProxyUrl))}let k=function(a){if(!a)return null;let b=String(a).trim();if(!b)return null;try{let a=new URL(b),c=(a.protocol||"http:").replace(/:$/,"")||"http",d={server:`${c}://${a.hostname}${a.port?`:${a.port}`:""}`};return a.username&&(d.username=decodeURIComponent(a.username)),a.password&&(d.password=decodeURIComponent(a.password)),d}catch{return{server:b}}}(h),l=k?{proxy:k}:{},m=!j&&(!0===e.randomizeFingerprint||null!=e.fingerprintSeed),n=null;if(m)try{let{buildAccountFingerprint:a,compactAccountFingerprint:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));n=a(e.fingerprintSeed??(0,d.randomUUID)()),!0===e.lowMemory&&(n=b(n)),l.viewport={...n.viewport},l.deviceScaleFactor=n.deviceScaleFactor,l.fingerprint={hardwareConcurrency:n.hardwareConcurrency,deviceMemory:n.deviceMemory,maxTouchPoints:n.maxTouchPoints,screen:n.screen}}catch{n=null}if(l.viewport||j||(l.viewport={width:1280,height:900}),l.ignoreHTTPSErrors=!0,"codebuddy-cn"===e.profile&&!j){let a="china"===String(e.region||"").toLowerCase();l.locale="zh-CN",l.languages=["zh-CN","zh","en-US","en"],l.timezoneId=a?"Asia/Shanghai":"Asia/Hong_Kong",l.geolocation=a?{longitude:121.4737,latitude:31.2304}:{longitude:114.1694,latitude:22.3193},l.permissions=["geolocation"],l.extraHTTPHeaders={...l.extraHTTPHeaders||{},"Accept-Language":"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}}e.locale&&(l.locale=e.locale),e.timezoneId&&(l.timezoneId=e.timezoneId),e.geolocation&&(l.geolocation=e.geolocation),Array.isArray(e.languages)&&(l.languages=e.languages),e.viewport&&(l.viewport=e.viewport),"number"==typeof e.deviceScaleFactor&&(l.deviceScaleFactor=e.deviceScaleFactor),e.extraHTTPHeaders&&(l.extraHTTPHeaders={...l.extraHTTPHeaders||{},...e.extraHTTPHeaders});try{let{newStealthContext:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));f=await b(a,l)}catch(a){throw await i?.release().catch(()=>null),a}if(i){let a=f.close.bind(f);f.close=async(...b)=>{try{return await a(...b)}finally{await i.release().catch(()=>null)}}}try{g=await f.newPage()}catch(a){throw await f.close().catch(()=>null),a}try{await g.route(/facebook\.net|hotjar|clarity\.ms|hm\.baidu|sentry\.io|browser\.sentry-cdn|doubleclick\.net/i,a=>a.abort())}catch{}return{context:f,page:g}}async function O(a){let b,d;if(!a?.manualSession?.context)return!1;let e=a.manualSession.context,f=a.manualSession.page,g=e.browser?.(),h=null,i="";try{h=await e.storageState()}catch{h=null}try{i=f?.url?.()||""}catch{i=""}try{let{launchBulkImportBrowser:a}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));b=await a({headless:!1,windowSize:{width:1280,height:900}})}catch{return!1}try{let{newStealthContext:a}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));d=await a(b,{viewport:null,...h?{storageState:h}:{}})}catch{return await b.close().catch(()=>null),!1}let j=await d.newPage();if(i)try{await j.goto(i,{waitUntil:"domcontentloaded",timeout:2e4})}catch{}let k=a.manualSession.rebind;if(a.manualSession.context=d,a.manualSession.page=j,a.manualSession.headedBrowser=b,"function"==typeof k)try{await k({context:d,page:j})}catch{}return e.close().catch(()=>null),g&&g!==b&&g.close().catch(()=>null),!0}async function P(a,{account:b}={}){if(!a)return!1;try{let c=a.context?.(),d=c?.browser?.();if(b&&function(a){if(!a)return!0;let b=a._options||a._initializer||{};return"boolean"!=typeof b.headless||b.headless}(d)&&await O(b))return await b.manualSession.page.bringToFront?.().catch(()=>null),!0;if(!c?.newCDPSession)return await a.bringToFront?.().catch(()=>null),!0;let e=await c.newCDPSession(a),f=null;try{let a=await e.send("Target.getTargetInfo"),b=a?.targetInfo?.targetId,c=await e.send("Browser.getWindowForTarget",b?{targetId:b}:{});f=c?.windowId??null}catch{f=null}return null!=f&&await e.send("Browser.setWindowBounds",{windowId:f,bounds:{windowState:"normal",left:80,top:80,width:1280,height:960}}).catch(()=>null),await a.bringToFront?.().catch(()=>null),await e.detach?.().catch(()=>null),!0}catch{return await a.bringToFront?.().catch(()=>null),!0}}class Q{constructor({browserLauncher:a=L,googleAutomation:b=m.Th,socialExchange:c=M,kiroServiceFactory:d=()=>new l.v,storageName:e="kiro-bulk-import"}={}){this.browserLauncher=a,this.googleAutomation=b,this.socialExchange=c,this.kiroServiceFactory=d,this.storageDir=h().join(i.DATA_DIR,e),this.metaFile=h().join(this.storageDir,"meta.json"),this.jobs=new Map,this.latestJobId=z(this.metaFile)}persistResumeBlob(a){try{!function(a,b){try{let c,e,g,i,j;s(h().dirname(a));let k=`${a}.${process.pid}.tmp`;f().writeFileSync(k,JSON.stringify((c=(0,d.randomBytes)(12),e=(0,d.createCipheriv)("aes-256-gcm",x(),c),g=Buffer.from(JSON.stringify(b),"utf8"),i=Buffer.concat([e.update(g),e.final()]),j=e.getAuthTag(),{v:1,alg:"aes-256-gcm",iv:c.toString("base64"),tag:j.toString("base64"),data:i.toString("base64")})),{mode:384}),f().renameSync(k,a)}catch{}}(w(a.jobId,this.storageDir),{jobId:a.jobId,concurrency:a.concurrency,proxyPoolMode:a.proxyPoolMode,proxyUrls:a.proxyUrls||[],createdAt:a.createdAt,accounts:a.accounts.map(a=>({line:a.line,email:a.email,password:a.password}))})}catch{}}hydrateInterruptedJob(a){if(!a||this.jobs.has(a))return!1;let b=u(t(a,this.storageDir));if(!b||!q.has(b.status))return!1;let c=function(a){let b=u(a);if(!b)return null;if(!b||"aes-256-gcm"!==b.alg||!b.iv||!b.tag||!b.data)return null;try{let a=(0,d.createDecipheriv)("aes-256-gcm",x(),Buffer.from(b.iv,"base64"));a.setAuthTag(Buffer.from(b.tag,"base64"));let c=Buffer.concat([a.update(Buffer.from(b.data,"base64")),a.final()]);return JSON.parse(c.toString("utf8"))}catch{return null}}(w(a,this.storageDir));if(!c||!Array.isArray(c.accounts)||0===c.accounts.length)return this.markJobInterrupted(a,b),!1;let e=new Map(c.accounts.map(a=>[a.line,a.password])),f=new Map(c.accounts.map(a=>[a.line,a.email])),g=b.createdAt||c.createdAt||r(),h=(b.accounts||[]).map(a=>{let b=n.has(a.status),c=Array.isArray(a.logs)?[...a.logs]:[],d={line:a.line,email:a.email||f.get(a.line)||"",password:b?void 0:e.get(a.line)??null,proxyUrl:null,status:a.status,error:a.error||null,connectionId:a.connectionId||null,workerId:b&&a.workerId||null,manualSession:null,runtimeSession:null,currentStep:a.currentStep||null,updatedAt:a.updatedAt||g,logs:c};return b||(d.status="queued",d.currentStep="queued",d.error=null,d.logs.push(D("resumed","Re-queued after a server restart to continue automatically"))),d}),i={jobId:a,status:"running",concurrency:A(c.concurrency),proxyPoolMode:c.proxyPoolMode||"none",proxyUrls:Array.isArray(c.proxyUrls)?c.proxyUrls:[],createdAt:g,startedAt:b.startedAt||g,finishedAt:null,error:null,cancelRequested:!1,browser:null,nextIndex:0,manualFollowups:new Set,persistPromise:Promise.resolve(),lastPreview:b.preview||null,lastPreviewCapturedAt:0,accounts:h};return(this.jobs.set(a,i),this.latestJobId||(this.latestJobId=a),h.some(a=>"queued"===a.status))?this.runJob(a):(i.status="completed",i.finishedAt=r(),this.persistJobSnapshot(i,{forcePreview:!1}),y(w(a,this.storageDir))),!0}markJobInterrupted(a,b){let c="Job was interrupted by a server restart and could not be auto-resumed (saved credentials were unavailable). Please start a new bulk login.",d=(b.accounts||[]).map(a=>{if(n.has(a.status))return a;let b=Array.isArray(a.logs)?[...a.logs]:[];return b.push(D("failed",c,"error")),{...a,status:"failed",error:c,currentStep:"failed",updatedAt:r(),manualSessionAvailable:!1,logs:b}}),e={...b,status:"failed",error:b.error||c,finishedAt:b.finishedAt||r(),accounts:d,summary:C(d),activity:F(d)};try{v(t(a,this.storageDir),e)}catch{}y(w(a,this.storageDir))}async startJob({accounts:a,concurrency:b,proxyPoolMode:e,proxyPoolId:f,engine:g}={}){let{parsed:h,invalidLines:i}=B(a);if(!h.length){let a=i.length>0?"Invalid account format. Use one account per line: gmail@example.com|password":"At least one account entry is required",b={error:a};throw i.length>0&&(b.invalidLines=i),Object.assign(Error(a),b)}if(i.length>0){let a="Invalid account format. Use one account per line: gmail@example.com|password";throw Object.assign(Error(a),{error:a,invalidLines:i})}let k=[];if("all"===e)k=(await (0,j.ui)({isActive:!0})).map(a=>a.proxyUrl).filter(Boolean);else if("single"===e&&f){let a=await (0,j.hr)(f);a?.isActive&&a?.proxyUrl&&(k=[a.proxyUrl])}let l=(0,d.randomUUID)(),m=r();this.hydrateInterruptedJob(this.latestJobId);let n=[...this.jobs.values()].find(a=>q.has(a.status));if(n)throw Object.assign(Error("A bulk import job is already active"),{error:"A bulk import job is already active",code:"BULK_IMPORT_ACTIVE",jobId:n.jobId});let o=g;try{let{normalizeBulkImportEngine:a}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));o=a(g)}catch{o=g||"cloakbrowser"}let s={jobId:l,status:"running",concurrency:A(b),engine:o,proxyPoolMode:e||"none",proxyUrls:k,createdAt:m,startedAt:m,finishedAt:null,error:null,cancelRequested:!1,browser:null,nextIndex:0,manualFollowups:new Set,persistPromise:Promise.resolve(),lastPreview:null,lastPreviewCapturedAt:0,accounts:h.map(a=>({line:a.line,email:a.email,password:a.password,proxyUrl:null,status:"queued",error:null,connectionId:null,workerId:null,manualSession:null,runtimeSession:null,currentStep:"queued",updatedAt:m,logs:[D("queued","Queued and waiting for an available worker")]}))};return this.jobs.set(l,s),this.latestJobId=l,!function(a,b=p){v(b,{latestJobId:a||null,updatedAt:r()})}(l,this.metaFile),await this.persistJobSnapshot(s,{forcePreview:!1}),this.persistResumeBlob(s),this.runJob(l),I(s)}getJob(a){this.hydrateInterruptedJob(a);let b=this.jobs.get(a);return b?I(b,{preview:b.lastPreview||null}):u(t(a,this.storageDir))}async getJobWithPreview(a){this.hydrateInterruptedJob(a);let b=this.jobs.get(a);if(!b)return u(t(a,this.storageDir));let c=await this.capturePreview(b);return b.lastPreview=c||b.lastPreview||null,await this.persistJobSnapshot(b,{forcePreview:!1}),I(b,{preview:b.lastPreview||null})}async getLatestJobWithPreview({includeRecentTerminal:a=!1}={}){let b=this.latestJobId||z(this.metaFile);if(!b)return null;let c=await this.getJobWithPreview(b);return c&&(q.has(c.status)||a&&J(c))?c:null}cancelJob(a){let b=this.jobs.get(a);if(!b)return u(t(a,this.storageDir));for(let a of(b.cancelRequested=!0,b.accounts||[]))if("queued"===a.status||"running"===a.status||"needs_manual"===a.status){let b=a.manualSession,d=a.runtimeSession,e=b?.context||d?.context||null,f=b?.headedBrowser||null,g=b?.ownedBrowser||null;e&&e.close().catch(()=>null),f&&f.close().catch(()=>null),g&&Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)).then(({forceCloseBrowser:a})=>a(g)).catch(()=>g.close().catch(()=>null)),a.manualSession=null,a.runtimeSession=null,this.finalizeAccount(a,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled by user"})}if(b.browser){let a=b.browser;b.browser=null,Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)).then(({forceCloseBrowser:b})=>b(a)).catch(()=>a.close().catch(()=>null))}return("queued"===b.status||"running"===b.status)&&(b.status="cancelled",b.finishedAt=b.finishedAt||r()),this.persistJobSnapshot(b,{forcePreview:!0}),I(b)}async openManualSession(a,b){let c=this.jobs.get(a);if(!c)return null;let d=Number.parseInt(b,10),e=c.accounts.find(a=>a.workerId===d&&"needs_manual"===a.status&&a.manualSession?.page);if(!e)return{ok:!1,error:"Manual session not found for this worker",job:I(c)};let f=await P(e.manualSession.page,{account:e});return e.manualSession.opened=f,e.manualSession.openedAt=f?e.manualSession.openedAt||r():e.manualSession.openedAt||null,await this.persistJobSnapshot(c,{forcePreview:!0}),{ok:!0,job:I(c),account:H(e)}}dequeueAccount(a,b){for(;a.nextIndex<a.accounts.length;){let c=a.accounts[a.nextIndex];if(a.nextIndex+=1,"queued"===c.status)return c.status="running",c.workerId=b,c.error=null,a.proxyUrls?.length&&(c.proxyUrl=a.proxyUrls[(a.nextIndex-1)%a.proxyUrls.length]),E(c,"worker_assigned",`Worker ${b} picked up this account${c.proxyUrl?` (proxy: ${G(c.proxyUrl)})`:""}`),this.persistJobSnapshot(a,{forcePreview:!1}),c}return null}finalizeAccount(a,b,c={}){return a.status=b,a.error=c.error||null,a.connectionId=c.connectionId||null,(c.step||c.message)&&E(a,c.step||b,c.message||c.error||b.replaceAll("_"," ")),a}setAccountStep(a,b,c,d="info"){E(a,b,c,d)}async persistJobSnapshot(a,{forcePreview:b=!1}={}){if(!a)return;let c=async()=>{if(b||Date.now()-(a.lastPreviewCapturedAt||0)>=1500){let b=await this.capturePreview(a);b&&(a.lastPreview=b),a.lastPreviewCapturedAt=Date.now()}v(t(a.jobId,this.storageDir),I(a,{preview:a.lastPreview||null}))};a.persistPromise=Promise.resolve(a.persistPromise).catch(()=>null).then(c),await a.persistPromise}async capturePreview(a){let b=a.accounts.find(a=>"running"===a.status&&a.runtimeSession?.page)||a.accounts.find(a=>"needs_manual"===a.status&&a.manualSession?.page);if(!b)return null;let c=b.runtimeSession?.page||b.manualSession?.page;if(!c)return null;try{let a=await c.screenshot({type:"jpeg",quality:55,fullPage:!1,animations:"disabled",caret:"hide"});return{email:b.email||null,phone:b.phone||null,workerId:b.workerId||null,status:b.status,step:b.currentStep||null,updatedAt:b.updatedAt||r(),imageData:`data:image/jpeg;base64,${a.toString("base64")}`}}catch{return{email:b.email||null,phone:b.phone||null,workerId:b.workerId||null,status:b.status,step:b.currentStep||null,updatedAt:b.updatedAt||r(),imageData:null}}}async runManualFollowup(a,b,c,d,e,f){let g=(async()=>{let c=async()=>{let a=b.manualSession,c=a?.context||d,e=a?.headedBrowser||null;c&&await c.close().catch(()=>null),e&&await e.close().catch(()=>null)};try{let c=await e;if(a.cancelRequested){this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}this.setAccountStep(b,"exchanging_tokens","Exchanging Kiro callback for OAuth tokens"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:d}=await this.socialExchange({code:c.code,codeVerifier:f,provider:"google"});this.finalizeAccount(b,"success",{connectionId:d.id,step:"connection_saved",message:"Kiro connection saved successfully"}),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}):this.finalizeAccount(b,"failed_exchange",{error:c.message||"Manual assist flow failed during token exchange.",step:"exchange_failed",message:c.message||"Manual assist flow failed during token exchange."}),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{await c(),b.manualSession=null,b.runtimeSession=null,a.manualFollowups.delete(g),await this.persistJobSnapshot(a,{forcePreview:!0})}})();a.manualFollowups.add(g)}async processAccount(a,b,c){if(a.cancelRequested||!a.browser)return void this.finalizeAccount(b,"cancelled",{error:"Job cancelled"});let d=this.kiroServiceFactory().createSocialAuthorization("google"),e=null;try{let f=await N(a.browser,b.proxyUrl);e=f.context;let{page:g}=f,h=(0,m.zZ)(e,g);b.runtimeSession={context:e,page:g},this.setAccountStep(b,"preparing_worker",`Worker ${c} is preparing a browser context`),await this.persistJobSnapshot(a,{forcePreview:!0});let i=await this.googleAutomation({page:g,authUrl:d.authUrl,email:b.email,password:b.password,callbackPromise:h,onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})}});if("success"===i.status){this.setAccountStep(b,"exchanging_tokens","Exchanging Kiro callback for OAuth tokens"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:c}=await this.socialExchange({code:i.code,codeVerifier:d.codeVerifier,provider:"google"});this.finalizeAccount(b,"success",{connectionId:c.id,step:"connection_saved",message:"Kiro connection saved successfully"}),b.runtimeSession=null,await e?.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}if("needs_manual"===i.status){b.manualSession={context:e,page:g,opened:!1,openedAt:null,rebind:"function"==typeof h?.rebind?h.rebind:null},this.setAccountStep(b,"awaiting_manual","Waiting for manual completion in the browser session"),this.finalizeAccount(b,"needs_manual",{error:i.error,step:"awaiting_manual",message:i.error}),await this.persistJobSnapshot(a,{forcePreview:!0}),await this.runManualFollowup(a,b,c,e,h,d.codeVerifier);return}let j=n.has(i.status)?i.status:"failed";this.finalizeAccount(b,j,{error:i.error||"Kiro Google automation failed.",step:j,message:i.error||"Kiro Google automation failed."}),b.runtimeSession=null,await e?.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){this.finalizeAccount(b,"failed",{error:c.message||"Unexpected Kiro bulk import failure.",step:"failed",message:c.message||"Unexpected Kiro bulk import failure."}),b.runtimeSession=null,await e?.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{b.password=void 0}}async runWorker(a,b){for(;!a.cancelRequested;){let c=this.dequeueAccount(a,b);if(!c)return;await this.processAccount(a,c,b)}}async runJob(a){let b=this.jobs.get(a);if(b)try{b.browser=await this.browserLauncher(b),b.accounts.forEach(a=>{"queued"===a.status&&1===(a.logs||[]).length&&this.setAccountStep(a,"waiting_for_worker","Waiting for a free worker")}),await this.persistJobSnapshot(b,{forcePreview:!1});let a=Math.min(b.concurrency,Math.max(b.accounts.length,1)),c=Array.from({length:a},(a,c)=>this.runWorker(b,c+1));await Promise.allSettled(c),b.manualFollowups.size>0&&await Promise.allSettled([...b.manualFollowups]),b.cancelRequested?(b.status="cancelled",b.accounts.forEach(a=>{("queued"===a.status||"running"===a.status||"needs_manual"===a.status)&&this.finalizeAccount(a,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled before completion"})})):b.status="completed",await this.persistJobSnapshot(b,{forcePreview:!0})}catch(a){b.status="failed",b.error=a.message||"Failed to start Kiro bulk import job.",b.accounts.forEach(a=>{("queued"===a.status||"running"===a.status)&&(this.finalizeAccount(a,"failed",{error:b.error,step:"failed",message:b.error}),a.password=void 0)}),await this.persistJobSnapshot(b,{forcePreview:!0})}finally{if(b.browser){let a=b.browser;b.browser=null;try{let{forceCloseBrowser:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));await b(a)}catch{await a.close().catch(()=>null)}}b.finishedAt=r(),await this.persistJobSnapshot(b,{forcePreview:!0}),y(w(b.jobId,this.storageDir))}}}function R(){return(!globalThis.__kiroBulkImportSingleton&&(globalThis.__kiroBulkImportSingleton={manager:new Q}),globalThis.__kiroBulkImportSingleton).manager}},20116:(a,b,c)=>{c.d(b,{q:()=>h,si:()=>g,uT:()=>i});var d=c(21820),e=c.n(d);function f(a){return Number.isFinite(a)?Math.max(0,Math.floor(a)):0}function g(){let a=[];try{a=e().cpus()||[]}catch{a=[]}let b=0,c=0;try{b=e().totalmem()}catch{b=0}try{c=e().freemem()}catch{c=0}let d=Array.isArray(a)?a.length:0,f=a[0]?.model?String(a[0].model).trim():null,g=b/0x40000000,h=c/0x40000000,i="unknown",j="unknown";try{i=e().platform()}catch{}try{j=e().arch()}catch{}return{cpuCount:d,cpuModel:f,totalMemBytes:b,totalMemGb:g,freeMemBytes:c,freeMemGb:h,platform:i,arch:j}}function h(){return function(a=null){let b=a||g(),{cpuCount:c,totalMemGb:d}=b,e=f(d/4),h=f(c/2),i="fallback",j=0;return e>0&&h>0?(j=Math.min(e,h),i=e<=h?"ram":"cpu"):e>0?(j=e,i="ram"):h>0?(j=h,i="cpu"):(j=4,i="fallback"),{recommended:Math.min(8,Math.max(1,j||4)),limitedBy:i,ramBudget:e,cpuBudget:h,minWorkers:1,maxWorkers:8,ramGbPerWorker:4,cpuDivisor:2,specs:b}}().recommended}function i(a){return!0===a||"string"==typeof a&&"auto"===a.trim().toLowerCase()}Object.freeze({RAM_GB_PER_WORKER:4,CPU_DIVISOR:2,SAFE_MIN_WORKERS:1,SAFE_MAX_WORKERS:8,FALLBACK_WORKERS:4})},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},82506:(a,b,c)=>{c.d(b,{$K:()=>ab,Jl:()=>P,PB:()=>aj,Th:()=>al,i_:()=>$,np:()=>Z,rk:()=>ak,vN:()=>am,zZ:()=>ai});let d='input[type="email"], input[autocomplete="username"], input#identifierId, input[name="identifier"], input[name="Email"], input[type="text"][autofocus], input[aria-label*="Email" i], input[aria-label*="email" i], input[aria-label*="phone" i], input[aria-label*="telepon" i]',e='input[type="password"], input[name="Passwd"], input[name="password"], input[aria-label*="Password" i], input[aria-label*="password" i], input[aria-label*="Sandi" i], input[aria-label*="kata sandi" i]',f=['button:has-text("Next")','button:has-text("Berikutnya")','button:has-text("Continue")','div[role="button"]:has-text("Next")','div[role="button"]:has-text("Berikutnya")',"#identifierNext button","#passwordNext button"],g=["#submit_approve_access","#submit_approve_access button","#confirm",'form#tos_form input[type="submit"]','button[jsname]:has-text("Allow")','button:has-text("Allow")','[role="button"]:has-text("Allow")','input[type="submit"][value="Allow"]','input[type="button"][value="Allow"]','button[jsname]:has-text("Izinkan")','button:has-text("Izinkan")','[role="button"]:has-text("Izinkan")','button:has-text("Continue")','button:has-text("Next")','button:has-text("Yes")','button:has-text("Accept")','button:has-text("Lanjutkan")','button:has-text("Berikutnya")','button:has-text("Setuju")','button:has-text("Saya mengerti")','button:has-text("Oke")','button:has-text("OK")','button:has-text("Got it")','button:has-text("I understand")','div[role="button"]:has-text("Continue")','div[role="button"]:has-text("Next")','div[role="button"]:has-text("Allow")','div[role="button"]:has-text("Lanjutkan")','div[role="button"]:has-text("Berikutnya")','div[role="button"]:has-text("Izinkan")','div[role="button"]:has-text("Setuju")','div[role="button"]:has-text("Saya mengerti")','div[role="button"]:has-text("Oke")','div[role="button"]:has-text("OK")','div[role="button"]:has-text("Got it")','div[role="button"]:has-text("I understand")','input[type="button"][value="Saya mengerti"]','input[type="submit"][value="Saya mengerti"]'],h=['button:has-text("Skip")','button:has-text("Lewati")','button:has-text("Not now")','button:has-text("Bukan sekarang")','button:has-text("No thanks")','button:has-text("Tidak sekarang")','div[role="button"]:has-text("Skip")','div[role="button"]:has-text("Not now")'],i=["#social-google","a#social-google",'a:has-text("Sign up with Google")','a:has-text("Log in with Google")','a:has-text("Login with Google")','a:has-text("Continue with Google")','a:has-text("Sign in with Google")','button:has-text("Sign up with Google")','button:has-text("Log in with Google")','button:has-text("Login with Google")','button:has-text("Continue with Google")','button:has-text("Sign in with Google")','button[aria-label*="Continue with Google" i]','button[aria-label*="Google" i]','button:has-text("Google")','a:has-text("Google")','div[role="button"]:has-text("Continue with Google")','div[role="button"]:has-text("Login with Google")','div[role="button"]:has-text("Google")','span:has-text("Continue with Google")','span:has-text("Login with Google")','span:has-text("Google")','[aria-label*="Google" i]','[data-provider*="google" i]','button:has-text("Login with Google")','button:has-text("Continue with Google")','[data-testid*="google" i]'],j=["#onetrust-accept-btn-handler","#onetrust-reject-all-handler","#accept-recommended-btn-handler",'button:has-text("Allow All")','button:has-text("Reject All")','button:has-text("Accept All")','button:has-text("Accept all")','button:has-text("Confirm My Choices")'],k=["#agree-policy-account","#agree-policy","#agree-policy-sso",'input[type="checkbox"][id*="agree" i]','input[type="checkbox"][name*="agree" i]','input[type="checkbox"][id*="policy" i]','input[type="checkbox"][name*="policy" i]','input[type="checkbox"][id*="terms" i]','input[type="checkbox"][name*="terms" i]','.login-checkbox input[type="checkbox"]','[class*="checkbox"] input[type="checkbox"]','[class*="agree"] input[type="checkbox"]','input[type="checkbox"]'],l=['.ui-dialog button:has-text("Confirm")','dialog button:has-text("Confirm")','button:has-text("Confirm")','button:has-text("I agree")','button:has-text("Agree")','button:has-text("同意")','button:has-text("确认")'],m=['button:has-text("Continue")','[role="button"]:has-text("Continue")','button:has-text("Get started")','button:has-text("GET STARTED")','input[type="submit"][value="GET STARTED"]','button:has-text("Start")','button:has-text("Confirm")','button:has-text("Done")','button:has-text("Next")','button:has-text("Skip")','button:has-text("Not now")','button:has-text("Save")','button:has-text("Create")','button:has-text("Enter")','button:has-text("Launch")','button:has-text("Use CodeBuddy")','button:has-text("Go to CodeBuddy")'],n=["select",'[role="combobox"]','.page-region [role="combobox"]',".page-region .t-select",'.page-region [class*="t-select"]','.page-region [class*="select"]',".page-region input[placeholder]",'button:has-text("Region")','[role="button"]:has-text("Region")','button:has-text("Select region")','[role="button"]:has-text("Select region")','button:has-text("Data region")','[aria-label*="region" i]','[placeholder*="region" i]'],o=["text=/^Indonesia$/i","text=/^ID$/i","text=/^Singapore$/i","text=/^SG$/i","text=/^Japan$/i","text=/^JP$/i","text=/^Thailand$/i","text=/^TH$/i","text=/^Global$/i","text=/^International$/i","text=/^United States$/i","text=/^US$/i","text=/^Asia Pacific$/i","text=/^Hong Kong$/i","text=/^Default$/i"],p=[{selector:'input[name*="workspace" i]',value:"Default"},{selector:'input[placeholder*="workspace" i]',value:"Default"},{selector:'input[name*="team" i]',value:"Default"},{selector:'input[placeholder*="team" i]',value:"Default"},{selector:'input[name*="name" i]',value:"Default"},{selector:'input[placeholder*="name" i]',value:"Default"}],q=["wrong password","incorrect password","couldn't find your google account","couldn’t find your google account","enter a valid email","couldn’t sign you in","couldn't sign you in","invalid email or password","password is incorrect"],r=["2-step verification","2-step verification required","verify it’s you","verify it's you","check your phone","confirm it’s you","confirm it's you","recovery email","recovery phone","suspicious sign-in prevented","unusual activity detected","captcha","i'm not a robot","im not a robot","not a robot","recaptcha","select all images","select all squares","try again later","browser or app may not be secure","try using a different browser","couldn’t sign you in","couldn't sign you in","this browser or app may not be secure"],s=["restricted","account has been restricted","account is restricted","account has been suspended","account is suspended","account has been disabled","account is disabled","account has been banned","account is banned","access denied","account blocked","your account has been","violation of terms","terms of service violation","temporarily locked","permanently locked","account locked","akun dibatasi","akun diblokir","akun ditangguhkan"],t=["welcome to your new google account","selamat datang di akun google baru anda","welcome to your new account","selamat datang di akun baru","privacy and terms","privasi dan persyaratan","personalize your google services","personalisasikan layanan google anda","add recovery phone","tambahkan nomor telepon pemulihan","choose your settings","pilih setelan anda"],u=["welcome to your new account","selamat datang di akun baru","your administrator decides which","administrator anda memutuskan layanan","your organisation administrator manages","your organization administrator manages"];function v(a){if(!a||!a.startsWith("kiro://kiro.kiroAgent/authenticate-success"))return null;let b=a.indexOf("?"),c=new URLSearchParams(b>=0?a.slice(b+1):""),d=c.get("code"),e=c.get("state");return d?{callbackUrl:a,code:d,state:e}:null}function w(a){let b="function"==typeof a.frames?a.frames():[];return[a,...b.filter(b=>b!==a.mainFrame?.())]}async function x(a,b){for(let c of w(a))for(let a of b){let b=c.locator(a).first();if(await b.count().catch(()=>0)&&await b.isVisible().catch(()=>!1))return await b.click({timeout:5e3}).catch(()=>null),!0}return!1}async function y(a,b){for(let c of w(a))for(let a of b){let b=c.locator(a).first();if(await b.count().catch(()=>0)){if((await b.scrollIntoViewIfNeeded().catch(()=>null),await b.isVisible().catch(()=>!1)&&await b.isEnabled().catch(()=>!0))&&await b.click({timeout:5e3}).then(()=>!0).catch(()=>!1))return!0}}return!1}async function z(a,b){for(let c of w(a)){let a=c.locator(b).first();if(await a.count().catch(()=>0)&&await a.isVisible().catch(()=>!1))return a}return null}async function A(a,b,{timeout:c=15e3,pollInterval:d=150}={}){let e=Date.now()+c;for(;Date.now()<e;){let c=await z(a,b);if(c)return c;let f=e-Date.now();if(f<=0)break;await new Promise(a=>setTimeout(a,Math.min(d,f)))}return null}function B(a=50){return new Promise(b=>setTimeout(b,a))}async function C(a,{timeout:b=8e3,interval:c=100}={}){let d=Date.now()+b;for(;Date.now()<d;){try{if(await a())return!0}catch{}await B(c)}return!1}function D(a){try{let b=new URL(a).hostname;return"accounts.google.com"===b||b.endsWith(".accounts.google.com")||/^accounts\.google\./i.test(b)}catch{return!1}}async function E(a,{fromUrl:b="",urlMatch:c=null,selector:d=null,timeout:e=8e3}={}){let f=b||a.url?.()||"";return C(async()=>{let b=a.url?.()||"";return!!(c&&("function"==typeof c&&c(b)||c instanceof RegExp&&c.test(b))||b&&b!==f&&!b.startsWith("about:")||d&&await z(a,d))||!1},{timeout:e,interval:80})}async function F(a,b,{timeout:c=15e3}={}){if(!a||null==b)return!1;try{await a.click({timeout:3e3})}catch{}try{if(await a.fill(String(b),{timeout:Math.min(c,8e3)}),await a.inputValue().catch(()=>"")===b)return!0}catch{}try{await a.fill("",{timeout:2e3})}catch{}try{let d=Math.floor(15+20*Math.random());await a.type(String(b),{delay:d,timeout:c})}catch{try{await a.fill(String(b),{timeout:c})}catch{return!1}}let d="";try{d=await a.inputValue()}catch{d=""}return d===b}async function G(a){let b=[];for(let c of w(a))try{b.push(await c.evaluate(()=>document.body?.innerText||""))}catch{}return b.join("\n")}function H(a,b){let c=String(a||"").toLowerCase();return b.some(a=>c.includes(a))}function I(a){try{let b=new URL(a.url());return"accounts.google.com"===b.hostname||b.hostname.endsWith(".accounts.google.com")||/^accounts\.google\./i.test(b.hostname)}catch{return!1}}function J(a){return/grok|cloudflare/i.test(String(a||""))}function K(a){try{let b=new URL(a||"");return"dash.cloudflare.com"===b.hostname&&b.pathname.includes("/login")}catch{return!1}}async function L(a,b){for(let c of j)try{let d=a.locator(c).first();if(await d.isVisible({timeout:100}).catch(()=>!1))return await d.click({timeout:2e3,noWaitAfter:!0}).catch(()=>null),b?.("dismissing_cookies","Dismissed cookie / privacy banner"),!0}catch{}return!!await a.evaluate(()=>{try{if("function"==typeof window.OneTrust?.AllowAll){if(!document.querySelector("#onetrust-banner-sdk, #onetrust-consent-sdk, #onetrust-accept-btn-handler"))return!1;return window.OneTrust.AllowAll(),!0}let a=document.querySelector("#onetrust-accept-btn-handler");if(a&&null!==a.offsetParent)return a.click(),!0}catch{}return!1}).catch(()=>!1)&&(b?.("dismissing_cookies","Dismissed cookie / privacy banner"),!0)}async function M(a){return!!function(a){try{let b=new URL(a.url());if(b.pathname.startsWith("/not-supported")||b.pathname.includes("/signin/rejected")||b.pathname.includes("/rejected")||"about.google"===b.hostname||b.hostname.endsWith(".about.google"))return!0}catch{}return!1}(a)||H(await G(a).catch(()=>""),["browser or app may not be secure","try using a different browser","couldn't sign you in","couldn’t sign you in","this browser or app may not be secure","browser is not secure"])}function N(a){return!!(a&&a.__zevaiSettled)}async function O(a,b,{maxWaitMs:c=2e4,successPromise:d=null}={}){let e=Date.now(),f="";for(d&&"function"==typeof d.then&&(d.__zevaiSettledHooked||(d.__zevaiSettledHooked=!0,d.then(()=>{d.__zevaiSettled=!0},()=>{d.__zevaiSettled=!0})));Date.now()-e<c;){if(N(d))return b?.("waiting_google_redirect","OAuth callback already received — leaving interstitial wait"),!1;let c=a.url?.()||"",e=String(await G(a).catch(()=>"")).trim(),g=/\/accounts\/SetSID/i.test(c),h=/\/AccountChooser/i.test(c),i=e.length<30;if(!(g||i&&/accounts\.google\./i.test(c))&&!h)return!1;if(c!==f&&(b?.("waiting_google_redirect",`Waiting for Google redirect (url=${c.slice(0,120)} empty=${i})`),f=c),h&&await y(a,["div[data-identifier]","div[data-email]","li[data-identifier]",'div[role="link"]','div[role="button"]'])){b?.("selecting_google_account","Selected account from Google AccountChooser"),await E(a,{timeout:5e3});continue}let j=[a.waitForNavigation({waitUntil:"domcontentloaded",timeout:3e3}).catch(()=>null),B(400)];d&&!N(d)&&j.push(d.then(()=>null).catch(()=>null)),await Promise.race(j)}return!0}function P(a){try{let b=new URL(a.url()).hostname||"";return/codebuddy\.(ai|cn)$/.test(b)||b.endsWith(".codebuddy.ai")||b.endsWith(".codebuddy.cn")||"accounts.x.ai"===b||"auth.x.ai"===b||b.endsWith(".x.ai")||"grok.com"===b||b.endsWith(".grok.com")||"dash.cloudflare.com"===b||b.endsWith(".cloudflare.com")}catch{return!1}}async function Q(a,b){if(!I(a))return!1;let c=await G(a);return!!/wants to access|ingin mengakses|akses ke akun google|allow/i.test(c)&&(await a.evaluate(()=>{let a=document.scrollingElement||document.documentElement||document.body;a&&(a.scrollTop=a.scrollHeight),window.scrollTo(0,document.body?.scrollHeight||document.documentElement?.scrollHeight||0)}).catch(()=>null),await a.waitForTimeout(300),!!await y(a,g)&&(b("approving_google_consent","Approving Google OAuth consent"),await a.waitForTimeout(1e3),!0))}async function R(a,b){let c=String(b||"");if(!H(c,t))return!1;if(await a.evaluate(()=>{let a=document.scrollingElement||document.documentElement||document.body;a&&(a.scrollTop=a.scrollHeight),window.scrollTo(0,document.body?.scrollHeight||document.documentElement?.scrollHeight||0)}).catch(()=>null),await a.waitForTimeout(500),H(c,u)){if(await y(a,g))return await a.waitForTimeout(700),!0;if(await a.evaluate(()=>{let a=[document.getElementById("confirm"),document.querySelector('form#tos_form input[type="submit"]'),document.querySelector('input[type="submit"][value="Saya mengerti"]'),document.querySelector('input[type="submit"][value="I understand"]')].filter(Boolean)[0];return!!a&&(a.scrollIntoView({block:"center"}),a.click(),!0)}).catch(()=>!1)||await a.evaluate(()=>{let a=document.getElementById("tos_form");return!!a&&(a.submit(),!0)}).catch(()=>!1))return await a.waitForTimeout(800),!0}return!!(await y(a,h)||await y(a,g))&&(await a.waitForTimeout(700),!0)}async function S(a){let b=/global|international|singapore|united states|^us$|asia|hong kong|default/i;for(let c of w(a)){let a=c.locator("select"),d=await a.count().catch(()=>0);for(let c=0;c<d;c+=1){let d=a.nth(c),e=await d.isVisible().catch(()=>!1),f=await d.isEnabled().catch(()=>!0);if(!e||!f)continue;let g=await d.evaluate((a,b)=>{let c=RegExp(b,"i"),d=[...a.options].filter(a=>!a.disabled&&""!==a.value),e=d.find(a=>c.test(`${a.label} ${a.textContent} ${a.value}`));return(e||d[0])?.value||""},b.source).catch(()=>"");if(g&&await d.selectOption(g).then(()=>!0).catch(()=>!1))return!0}}return!1}async function T(a){let b=!1;for(let c of w(a))for(let{selector:a,value:d}of p){let e=c.locator(a).first();if(!await e.count().catch(()=>0))continue;let f=await e.isVisible().catch(()=>!1),g=await e.isEnabled().catch(()=>!0);!(!f||!g||await e.inputValue().catch(()=>""))&&await e.fill(d,{timeout:5e3}).then(()=>!0).catch(()=>!1)&&(b=!0)}return b}async function U(a,b){await b.scrollIntoViewIfNeeded().catch(()=>null);let c=await b.isVisible().catch(()=>!1),d=await b.isEnabled().catch(()=>!0);if(!c||!d)return!1;let e=await b.boundingBox().catch(()=>null);if(!e||e.width<=0||e.height<=0)return!1;let f=e.x+e.width/2,g=e.y+e.height/2;return await a.mouse.move(f,g),await a.mouse.down(),await a.mouse.up(),!0}async function V(a,b,c){for(let d of w(a)){let e=d.locator(b),f=Math.min(await e.count().catch(()=>0),80),g=[];for(let a=0;a<f;a+=1){let b=e.nth(a);if(!await b.isVisible().catch(()=>!1))continue;let c=(await b.innerText({timeout:1e3}).catch(()=>"")||await b.textContent({timeout:1e3}).catch(()=>"")||"").trim();c&&g.push({locator:b,text:c})}for(let b of c){let c=g.find(a=>b.test(a.text));if(c&&await U(a,c.locator).catch(()=>!1))return c.text}if(g[0]&&await U(a,g[0].locator).catch(()=>!1))return g[0].text}return""}async function W(a,b){for(let c of w(a))for(let d of b){let b=c.locator(d),e=Math.min(await b.count().catch(()=>0),20);for(let c=0;c<e;c+=1){let d=b.nth(c);if(await U(a,d).catch(()=>!1))return!0}}return!1}async function X(a,b){if(!P(a)||I(a))return!1;let c=await a.evaluate(async()=>{let a=document.body?.innerText||"";if(!(document.querySelector(".page-region")||/select\s+region|region|country|area|get started|complete/i.test(a)))return null;try{let a=await fetch("https://www.codebuddy.ai/console/login/account",{method:"POST",credentials:"include",headers:{accept:"application/json, text/plain, */*","content-type":"application/json","x-requested-with":"XMLHttpRequest","x-domain":window.location.hostname||"www.codebuddy.ai"},referrer:"https://www.codebuddy.ai/register/user/complete",body:JSON.stringify({attributes:{countryCode:["62"],countryFullName:["Indonesia"],countryName:["ID"]}})}),b=await a.text().catch(()=>""),c=null;try{c=b?JSON.parse(b):null}catch{c={raw:b}}if(a.ok&&(!c||0===c.code||200===c.code||void 0===c.code))return{action:"submitted_via_api"};return{action:"api_failed",status:a.status,code:c?.code,message:c?.msg||c?.message||b||`HTTP ${a.status}`}}catch(a){return{action:"api_failed",message:a?.message||"region submit request failed"}}}).catch(()=>null);return!!c?.action&&("submitted_via_api"===c.action?(b("submitting_codebuddy_region","Submitted CodeBuddy region via account API"),await a.waitForTimeout(1500),!0):(b("codebuddy_region_api_failed",c.message?`CodeBuddy region API submit failed: ${c.message}`:"CodeBuddy region API submit failed"),!1))}async function Y(a,b){if(!P(a)||I(a)||!await a.locator(".page-region").first().count().then(Boolean).catch(()=>!1))return!1;let c=[/indonesia|^id$|\u5370\u5ea6\u5c3c\u897f\u4e9a/i,/singapore|^sg$|\u65b0\u52a0\u5761/i,/japan|^jp$|\u65e5\u672c/i,/thailand|^th$|\u6cf0\u56fd/i,/global|international|default/i];if(await W(a,[".page-region [class*='28B894']",".page-region button:has-text('Get started')",".page-region button:has-text('Start')",".page-region button:has-text('Submit')",".page-region button:has-text('Continue')",".page-region [role='button']:has-text('Get started')",".page-region [role='button']:has-text('Start')",".page-region [role='button']:has-text('Submit')",".page-region [role='button']:has-text('Continue')"]))return b("submitting_codebuddy_region","Submitted CodeBuddy region selection"),await a.waitForTimeout(1200),!0;let d=await V(a,"ul.dropdown-section li, .dropdown-section li, [role='option'], .t-select-option, [class*='option']",c);if(d)return b("selecting_codebuddy_region",`Selected CodeBuddy region: ${d}`),await a.waitForTimeout(900),!0;if(!await W(a,[".page-region .t-select",".page-region [class*='t-select']",".page-region [role='combobox']",".page-region input[placeholder]",".page-region [class*='select']",".page-region [class*='cursor-pointer']"]))return!1;b("opening_codebuddy_region_selector","Opening CodeBuddy region selector"),await a.waitForTimeout(600);let e=await V(a,"ul.dropdown-section li, .dropdown-section li, [role='option'], .t-select-option, [class*='option']",c);return e&&(b("selecting_codebuddy_region",`Selected CodeBuddy region: ${e}`),await a.waitForTimeout(900)),!0}async function Z(a,b){if(!P(a)||I(a))return!1;if(await X(a,b)||await Y(a,b))return!0;for(let c of w(a)){let d=await c.evaluate(()=>{let a=a=>{if(!(a instanceof HTMLElement))return!1;let b=window.getComputedStyle(a);if("hidden"===b.visibility||"none"===b.display||0===Number(b.opacity))return!1;let c=a.getBoundingClientRect();return c.width>0&&c.height>0},b=document.querySelector(".page-region"),c=document.body?.innerText||"";if(!(b||/select\s+region|region|country|area|get started|complete/i.test(c)))return null;let d=a=>{for(let b of(a.scrollIntoView({block:"center",inline:"center"}),["pointerdown","mousedown","pointerup","mouseup","click"]))a.dispatchEvent(new MouseEvent(b,{bubbles:!0,cancelable:!0,view:window,buttons:+!!b.endsWith("down")}))},e=[/indonesia|^id$|\u5370\u5ea6\u5c3c\u897f\u4e9a/i,/singapore|^sg$|\u65b0\u52a0\u5761/i,/japan|^jp$|\u65e5\u672c/i,/thailand|^th$|\u6cf0\u56fd/i,/global|international|default/i],f=b||document.body,g=["button","[role='button']","input[type='submit']",".t-button","[class*='button']","[class*='28B894']"],h=[...f.querySelectorAll(g.join(","))].filter(a).filter(a=>{let b=`${a.innerText||""} ${a.getAttribute("aria-label")||""} ${a.getAttribute("value")||""}`,c=a.getAttribute("class")||"";return/submit|start|continue|confirm|done|get started|complete|\u5b8c\u6210|\u5f00\u59cb|\u786e\u5b9a|\u4e0b\u4e00\u6b65/i.test(b)||c.includes("28B894")});if(h.length)return d(h[0]),{action:"submitted"};let i=["ul.dropdown-section li",".dropdown-section li","[role='option']",".t-select-option","[class*='option']","[class*='dropdown'] li"],j=[...document.querySelectorAll(i.join(","))].filter(a).filter(a=>(a.innerText||a.textContent||"").trim());if(j.length){let a=e.map(a=>j.find(b=>a.test((b.innerText||b.textContent||"").trim()))).find(Boolean)||j[0],b=(a.innerText||a.textContent||"").trim();return d(a),{action:"selected",label:b}}let k=["[role='combobox']",".t-select","[class*='t-select']","[class*='select']","input[placeholder]",".text-sm","[class*='cursor-pointer']"],l=[...f.querySelectorAll(k.join(","))].filter(a).filter(a=>{let b=`${a.innerText||""} ${a.getAttribute("placeholder")||""} ${a.getAttribute("aria-label")||""}`;return/region|country|area|select|placeholder|\u5730\u533a|\u56fd\u5bb6|\u9009\u62e9/i.test(b)||a.matches?.(".t-select,[class*='t-select'],input[placeholder],[class*='select']")});return l.length?(d(l[0]),{action:"opened"}):null}).catch(()=>null);if(d?.action){if("selected"===d.action)return b("selecting_codebuddy_region",`Selected CodeBuddy region${d.label?`: ${d.label}`:""}`),await a.waitForTimeout(700),!0;if("submitted"===d.action)return b("submitting_codebuddy_region","Submitted CodeBuddy region selection"),await a.waitForTimeout(1200),!0;return b("opening_codebuddy_region_selector","Opening CodeBuddy region selector"),await a.waitForTimeout(700),!0}}return!1}async function $(a,b){if(!P(a)||I(a))return!1;let c=await a.evaluate(async()=>{let a=new URL(window.location.href);if(!/\/started\/?$/.test(a.pathname))return null;let b=a.searchParams.get("platform")||"CLI",c=a.searchParams.get("state");if(!c)return null;for(let a of[...new Set([window.location.hostname||"www.codebuddy.ai"].filter(Boolean))]){let d=new URL("/console/auth/login",window.location.origin);d.searchParams.set("platform",b),d.searchParams.set("state",c),d.searchParams.set("domain",a);try{let b=await fetch(d.toString(),{method:"GET",credentials:"include",redirect:"manual",headers:{"x-requested-with":"XMLHttpRequest","X-Domain":a}});if("opaqueredirect"===b.type||b.status>=300&&b.status<400)return{action:"attempted",domain:a,message:"redirected"};let c=await b.text(),e=null;try{e=c?JSON.parse(c):null}catch{e={raw:c}}if(b.ok&&(!e||0===e.code||200===e.code||void 0===e.code))return{action:"authorized",domain:a};if(b.ok)return{action:"attempted",domain:a,code:e?.code,message:e?.msg||e?.message||""}}catch(a){}}return{action:"failed"}}).catch(()=>null);return!!c?.action&&"failed"!==c.action&&("authorized"===c.action?b("authorizing_codebuddy_cli_state","Authorized CodeBuddy CLI login state"):b("authorizing_codebuddy_cli_state",c.message?`Attempted CodeBuddy CLI login state authorization: ${c.message}`:"Attempted CodeBuddy CLI login state authorization"),await a.waitForTimeout(1200),!0)}async function _(a){try{for(let b of[/continue with google/i,/sign in with google/i,/sign up with google/i,/^google$/i]){let c=a.getByRole("button",{name:b}).first();if(await c.isVisible({timeout:300}).catch(()=>!1))return!0;let d=a.getByRole("link",{name:b}).first();if(await d.isVisible({timeout:200}).catch(()=>!1))return!0}}catch{}for(let b of i)try{let c=a.locator(b).first();if(await c.isVisible({timeout:200}).catch(()=>!1))return!0}catch{}return!1}function aa(a){try{let b=new URL(a.url()).hostname||"";return"accounts.x.ai"===b||"auth.x.ai"===b||b.endsWith(".x.ai")||"grok.com"===b||b.endsWith(".grok.com")}catch{return!1}}async function ab(a,b,c){if(!P(a)||I(a))return!1;if(await y(a,l))return b("accepting_provider_privacy_dialog",`Confirmed ${c} privacy or terms dialog`),await a.waitForTimeout(800),!0;if(await $(a,b)||await Z(a,b))return!0;if(!aa(a)){if(await S(a))return b("selecting_provider_region",`Selected ${c} region`),await a.waitForTimeout(700),!0;if(await y(a,n))return b("opening_provider_region_selector",`Opening ${c} region selector`),await a.waitForTimeout(500),await y(a,o)&&(b("selecting_provider_region",`Selected ${c} region`),await a.waitForTimeout(700)),!0;if(await y(a,o))return b("selecting_provider_region",`Selected ${c} region`),await a.waitForTimeout(700),!0;if(await T(a))return b("filling_provider_onboarding",`Filled ${c} onboarding defaults`),await a.waitForTimeout(500),!0}if(aa(a))return!1;try{let b=new URL(a.url()).hostname||"";if("dash.cloudflare.com"===b||b.endsWith(".cloudflare.com"))return!1}catch{}return!await _(a)&&!!await y(a,m)&&(b("continuing_provider_onboarding",`Continuing ${c} onboarding`),await a.waitForTimeout(1e3),!0)}async function ac(a,b,{alreadyAuthed:c=!1}={}){if(!aa(a)||c||await _(a))return!1;let d=await G(a).catch(()=>"");if(/sign out|log out|device authorized|you can close|invalid action/i.test(d)||!(/enter the code shown in your terminal/i.test(d)||/only enter this code if you just initiated/i.test(d)||/sign in to grok/i.test(d)&&/continue/i.test(d)&&!/login with/i.test(d)))return!1;let e=a.url?.()||"",f=!1;try{let b=a.getByRole("button",{name:/^Continue$/i}).first();await b.isVisible({timeout:300}).catch(()=>!1)&&(await b.click({timeout:5e3}),f=!0)}catch{}return f||(f=await y(a,['button[type="submit"]:has-text("Continue")','button:has-text("Continue")'])),!!f&&(b?.("confirming_device_code","Confirmed device user code on xAI"),await E(a,{fromUrl:e,urlMatch:a=>/sign-in|login|oauth/i.test(a)&&a!==e,selector:[...i.slice(0,8),'button:has-text("Login with Google")','button:has-text("Login with email")'].join(", "),timeout:1e4}),!0)}async function ad(a,b){return!!await b.isEnabled().catch(()=>!0)&&(await b.scrollIntoViewIfNeeded().catch(()=>null),!!await b.click({timeout:2500,force:!0,noWaitAfter:!0}).then(()=>!0).catch(()=>!1)||U(a,b).catch(()=>!1))}async function ae(a){for(let b of[/continue with google/i,/login with google/i,/log in with google/i,/sign up with google/i,/sign in with google/i,/^google$/i]){try{let c=a.getByRole("button",{name:b}).first();if(await c.isVisible({timeout:250}).catch(()=>!1)&&await ad(a,c))return!0}catch{}try{let c=a.getByRole("link",{name:b}).first();if(await c.isVisible({timeout:200}).catch(()=>!1)&&await ad(a,c))return!0}catch{}}try{let b=a.locator('button[aria-label*="Google" i]').first();if(await b.isVisible({timeout:200}).catch(()=>!1)&&await ad(a,b))return!0}catch{}try{let b=a.locator('button:has-text("Google")').first();if(await b.isVisible({timeout:150}).catch(()=>!1)&&await ad(a,b))return!0}catch{}return!1}async function af(a,b){for(let c of w(a))for(let d of k)try{let e=c.locator(d).first();if(!await e.count().catch(()=>0)||!await e.isVisible().catch(()=>!1))continue;if(await e.isChecked().catch(()=>!1))return!1;if(await e.check({force:!0,timeout:3e3}).then(()=>!0).catch(()=>!1)||await e.click({force:!0,timeout:3e3}).then(()=>!0).catch(()=>!1))return b?.("accepting_provider_terms","Accepted provider terms for Google login"),await C(async()=>{try{let b=a.getByRole("button",{name:/google/i}).first();return await b.isVisible().catch(()=>!1)&&await b.isEnabled().catch(()=>!0)}catch{return!0}},{timeout:2e3,interval:80}),!0}catch{}return!1}async function ag(a,b,{allowGoogleClick:c=!0}={}){if(I(a))return!1;if(await L(a,b),await y(a,l))return b("accepting_provider_privacy_dialog","Confirmed provider privacy agreement dialog"),!0;let e=await af(a,b);if(!c)return e;let f=await ae(a);if(!f)for(let b of i.slice(0,16))try{let c=a.locator(b).first();if(await c.isVisible({timeout:100}).catch(()=>!1)&&await ad(a,c)){f=!0;break}}catch{}if(f){b("selecting_google_login","Selecting Google login"),await y(a,l)&&b("accepting_provider_privacy_dialog","Confirmed provider privacy agreement dialog");let c=K(a.url?.()||"");if(await E(a,{urlMatch:a=>D(a),selector:d,timeout:c?1e4:12e3})||I(a))b("google_login_page","Reached Google sign-in after provider SSO");else try{let c=a.context?.(),d=c?.pages?.()||[];for(let a=d.length-1;a>=0;a-=1){let c=d[a],e=c.url?.()||"";if(D(e)){b("google_login_popup","Google sign-in opened in a popup");break}}}catch{}return!0}return e}async function ah(a,b){if(!aa(a)||await _(a))return!1;for(let c of[/^(Allow|Authorize|Approve|Confirm)$/i,/^(Allow|Authorize|Approve)\b/i])try{let d=a.getByRole("button",{name:c}).first();if(await d.isVisible({timeout:200}).catch(()=>!1)){let a=await d.innerText().catch(()=>"")||"";if(/google/i.test(a))continue;return await d.click({timeout:3e3}),b?.("approving_consent","Approving xAI device authorization"),!0}}catch{}return!1}function ai(a,b,c=9e5){let d,e,f=new Promise((a,b)=>{d=a,e=b}),g=!1,h=new Set,i=new Map,j=setTimeout(()=>{k(null,Error("Timed out waiting for Kiro callback"))},c);function k(a,b=null){if(!g){for(let a of(g=!0,clearTimeout(j),i.values()))for(let b of a)try{b()}catch{}i.clear(),b?e(b):d(a)}}function l(a){let b=v(a||"");return b&&k(b),!!b}function m(a){try{l(a?.url?.()||"");let b="function"==typeof a?.headers?a.headers():null,c=b?.location||b?.Location||"";c&&l(c)}catch{}}function n(a,b){if(!a||h.has(a))return;h.add(a);let c=a=>l(a?.url?.()||""),d=a=>l(a?.url?.()||""),e=a=>l(a?.url?.()||""),f=a=>m(a),i=()=>l(a.url?.()||""),j=()=>{k(null,Error("Browser session closed while waiting for Kiro callback"))};a.on("framenavigated",c),a.on("request",d),a.on("requestfailed",e),a.on("response",f),a.on("domcontentloaded",i),a.on("load",i),a.on("close",j),b.push(()=>{a.off("framenavigated",c),a.off("request",d),a.off("requestfailed",e),a.off("response",f),a.off("domcontentloaded",i),a.off("load",i),a.off("close",j)}),(async()=>{try{if(g)return;let c=a.context?.();if(!c?.newCDPSession)return;let d=await c.newCDPSession(a);await d.send("Network.enable").catch(()=>null);let e=a=>{try{let b=a?.response?.headers||{},c=b.location||b.Location||"";c&&l(c),l(a?.response?.url||"")}catch{}},f=a=>{try{l(a?.request?.url||"")}catch{}};d.on("Network.responseReceived",e),d.on("Network.requestWillBeSent",f),b.push(()=>{try{d.off?.("Network.responseReceived",e)}catch{}try{d.off?.("Network.requestWillBeSent",f)}catch{}d.detach?.().catch(()=>null)})}catch{}})();let n=v(a.url?.()||"");n&&k(n)}function o(a,b){if(g||i.has(a))return;let c=[];i.set(a,c);let d=a=>n(a,c),e=()=>{k(null,Error("Browser context closed while waiting for Kiro callback"))},f=a=>l(a?.url?.()||""),h=a=>l(a?.url?.()||""),j=a=>m(a);a.on("page",d),a.on("close",e),a.on("request",f),a.on("requestfailed",h),a.on("response",j),c.push(()=>a.off("page",d)),c.push(()=>a.off("close",e)),c.push(()=>a.off("request",f)),c.push(()=>a.off("requestfailed",h)),c.push(()=>a.off("response",j)),b&&n(b,c)}return o(a,b),f.rebind=({context:a,page:b}={})=>{a&&o(a,b)},f.abort=(a="Job cancelled")=>{k(null,Error(a))},f}function aj(a,b,{prefix:c,timeoutMs:d=9e5}={}){let e,f,g=new Promise((a,b)=>{e=a,f=b}),h=!1,i=new Set,j=new Map,k=setTimeout(()=>{l(null,Error("Timed out waiting for OAuth callback"))},d);function l(a,b=null){if(!h){for(let a of(h=!0,clearTimeout(k),j.values()))for(let b of a)try{b()}catch{}j.clear(),b?f(b):e(a)}}function m(a,b){if(!a||i.has(a))return;i.add(a);let d=a=>{let b=function(a,b){if(!a||!b||!a.startsWith(b))return null;let c=a.indexOf("?"),d=new URLSearchParams(c>=0?a.slice(c+1):""),e=d.get("code"),f=d.get("state");return e?{callbackUrl:a,code:e,state:f}:null}(a||"",c);b&&l(b)},e=a=>d(a?.url?.()||""),f=a=>d(a?.url?.()||""),g=a=>d(a?.url?.()||""),h=()=>d(a.url?.()||"");a.on("framenavigated",e),a.on("request",f),a.on("requestfailed",g),a.on("domcontentloaded",h),a.on("load",h),b.push(()=>{a.off("framenavigated",e),a.off("request",f),a.off("requestfailed",g),a.off("domcontentloaded",h),a.off("load",h)}),d(a.url?.()||"")}function n(a,b){if(h||j.has(a))return;let c=[];j.set(a,c);let d=a=>m(a,c);a.on("page",d),c.push(()=>a.off("page",d)),b&&m(b,c)}return n(a,b),g.rebind=({context:a,page:b}={})=>{a&&n(a,b)},g}async function ak({page:a,authUrl:b,email:c,password:h,successPromise:i,shortTimeoutMs:j=9e4,serviceLabel:k="provider",openingStep:l="opening_google_oauth",openingMessage:m="Opening Google OAuth page",successStep:n="oauth_success_received",successMessage:o="OAuth success received",onStep:p,skipGoto:t=!1,expectGoogleSoon:u=!1}){let v=Date.now(),w=(a,b)=>{p?.(a,b)},y=a=>({maxWaitMs:a,successPromise:i}),D=0,N=0,S=0,T=!1,U=0,V=0,W=0,X=J(k)?6e3:18e3,Y=J(k)?12e3:8e3,Z=J(k)?3e3:8e3,$=J(k),aa=$?4e3:25e3,ad=$?120:500,ae=t&&I(a);t?ae?w("google_login_page","Already on Google sign-in — filling credentials"):u?(w("waiting_google_redirect","Waiting for Google after provider SSO click"),await C(()=>I(a),{timeout:25e3,interval:100})?(ae=!0,S=Date.now(),w("google_login_page","Reached Google sign-in after provider SSO")):w("google_redirect_slow","Google redirect slow — will retry SSO click")):(w(l,m),await L(a,w)):(w(l,m),await a.goto(b,{waitUntil:"domcontentloaded",timeout:6e4}),await L(a,w));let af=K(a.url?.()||"")||/cloudflare/i.test(String(k||""));if(!ae){await C(async()=>!!(I(a)||await z(a,'button[aria-label*="Google" i], button:has-text("Continue with Google"), button:has-text("Login with Google"), button:has-text("Google")')||!af&&await z(a,d)||!af&&await z(a,'button:has-text("Continue")')),{timeout:$?8e3:12e3,interval:80}),$||await O(a,w,y(8e3));for(let b=0;b<($||af?8:2)&&!I(a);b+=1)if(await L(a,w),!await ac(a,w)){if(await ag(a,w)){if(S=Date.now(),I(a))break;await B(50);continue}await C(async()=>I(a)||await _(a)||/enter the code|login with google|continue with google/i.test(await G(a).catch(()=>"")),{timeout:600,interval:80})||await B(80)}$||await O(a,w,y(6e3))}if(I(a)){T=!0;let b=await A(a,d,{timeout:1e4});b&&(w("entering_email","Entering Google email"),await F(b,c)?(w("submitting_email","Submitting email"),await x(a,f),N=Date.now(),await E(a,{selector:e,timeout:$?8e3:12e3}),$||await O(a,w,y(8e3))):w("email_fill_failed","Could not fill the Google email field; will retry in the polling loop"))}else P(a)&&w("waiting_for_google_sso",`Provider page still open (${(a.url?.()||"").slice(0,80)}) — will keep selecting Google login`);for(;Date.now()-v<j;){let j=await Promise.race([i.then(a=>({kind:"success",result:a})).catch(a=>({kind:"success_error",error:a})),new Promise(a=>setTimeout(()=>a(null),ad))]);if(j?.kind==="success")return w(n,o),{status:"success",...j.result};if(j?.kind==="success_error")return w("oauth_timeout",`Timed out waiting for ${k} authorization`),{status:"failed_timeout",error:j.error?.message||`Timed out waiting for ${k} authorization`};if($&&T&&D&&/cloudflare/i.test(String(k||"")))try{let b=new URL(a.url?.()||"");if("dash.cloudflare.com"===b.hostname&&!b.pathname.includes("/login")&&!b.href.includes("oidcJwt")){w("waiting_cf_harvest","On Cloudflare dashboard — waiting for Workers AI token harvest");let a=await Promise.race([i.then(a=>({kind:"success",result:a})).catch(a=>({kind:"success_error",error:a})),B(2e3).then(()=>null)]);if(a?.kind==="success")return w(n,o),{status:"success",...a.result};if(a?.kind==="success_error")return w("oauth_timeout",`Timed out waiting for ${k} authorization`),{status:"failed_timeout",error:a.error?.message||`Timed out waiting for ${k} authorization`};continue}}catch{}if(await O(a,w,y($?2500:8e3)))continue;if(await Q(a,w)){$?await E(a,{timeout:4e3}):await O(a,w,y(12e3));continue}if(await M(a)){let b=a.url?.()||"";return w("browser_blocked_by_google",`Google blocked this browser (url=${b.slice(0,120)}). Use headed CloakBrowser (Xvfb on Linux).`),{status:"failed_browser_blocked",error:'Google blocked the automated browser ("This browser or app may not be secure" / signin rejected). Kiro bulk must use headed CloakBrowser (Xvfb on Linux), not headless Chrome.'}}let l=await G(a);if(H(l,q))return w("invalid_credentials","Google rejected the supplied email or password"),{status:"failed_invalid_credentials",error:"Google rejected the supplied email or password."};if(H(l,s))return w("account_restricted","Account is restricted, suspended, or banned by the provider"),{status:"failed_restricted",error:"Account is restricted, suspended, or banned. Skipping."};if(H(l,r)){let a=/captcha|recaptcha|not a robot|select all images|select all squares/i.test(l);return w(a?"google_captcha":"manual_assist_required",a?"Google CAPTCHA / bot check":"Google requested CAPTCHA, 2FA, or recovery verification"),{status:"needs_manual",error:a?"Google CAPTCHA (bot check). Not fixed by lowering workers — use headed CloakBrowser with Xvfb, a residential proxy, and avoid blocking Google domains. Open manual assist to solve CAPTCHA once.":"Manual assist required in the browser session (CAPTCHA, 2FA, recovery, or suspicious-login challenge)."}}if(await R(a,l)){w("google_onboarding","Accepted Google onboarding or privacy prompt");continue}if(P(a)&&(/rate[_ ]?limit/i.test(l)||/error=rate_limited/i.test(a.url?.()||"")))return w("device_rate_limited","xAI device authorization rate-limited"),{status:"failed",error:"xAI rate-limited device authorization. Wait a few minutes and retry (too many rapid device-code attempts)."};if(P(a)&&/invalid action|invalid[_ ]?code|code (has )?expired|expired code/i.test(l)&&b&&T&&W<3&&Date.now()-V>4e3){W+=1,V=Date.now(),U=0,w("device_invalid_reopen",`Device page error — reopening auth URL (${W}/3)`),await a.goto(b,{waitUntil:"domcontentloaded",timeout:6e4}).catch(()=>null),await C(async()=>await z(a,'button:has-text("Continue"), button:has-text("Allow"), button:has-text("Authorize")')||await _(a),{timeout:4e3,interval:80});continue}let m=!!(T&&D);if(await ac(a,w,{alreadyAuthed:m}))continue;let p=!m&&(!S||Date.now()-S>Z);if(await ag(a,w,{allowGoogleClick:p})){p&&(S=Date.now());continue}if(m&&Date.now()-U>3e3&&await ah(a,w)){U=Date.now();continue}if(await ab(a,w,k))continue;if(I(a)){T=!0;let b=await z(a,e);if(b){let c=Date.now()-D;if(D&&c<X){w("waiting_after_password",`Password already submitted ${Math.round(c/1e3)}s ago — waiting for Google redirect`),await O(a,w,y($?2e3:6e3));continue}if(w("entering_password","Entering Google password"),await F(b,h)){w("submitting_password","Submitting password");let b=a.url?.()||"";await x(a,f),D=Date.now(),await Promise.race([a.waitForNavigation({waitUntil:"domcontentloaded",timeout:$?6e3:1e4}).catch(()=>null),E(a,{fromUrl:b,timeout:$?6e3:1e4}),i.then(()=>null).catch(()=>null)]),await O(a,w,y(aa))}else w("password_fill_failed","Could not fill the Google password field; retrying loop"),await B(100);continue}let g=await z(a,d);if(g){let b=Date.now()-N;if(N&&b<Y){w("waiting_after_email",`Email already submitted ${Math.round(b/1e3)}s ago — waiting for password/next screen`),await E(a,{selector:e,timeout:Math.max(200,Y-b)});continue}w("entering_email","Entering Google email"),await F(g,c)?(w("submitting_email","Submitting email"),await x(a,f),N=Date.now(),await E(a,{selector:e,timeout:$?6e3:1e4})):(w("email_fill_failed","Could not fill the Google email field; retrying loop"),await B(80));continue}}await L(a,w);let t=(()=>{try{let b=new URL(a.url()).hostname||"";return"dash.cloudflare.com"===b||b.endsWith(".cloudflare.com")}catch{return!1}})();if((I(a)||T&&D&&!await _(a)&&!K(a.url?.()||""))&&!K(a.url?.()||"")&&await x(a,g)){w("approving_consent",`Approving Google or ${k} consent`),U=Date.now(),await E(a,{timeout:$?2e3:4e3});continue}if(t&&!T&&await ag(a,w)){S=Date.now();continue}if(Math.floor((Date.now()-v)/5e3)!==Math.floor((Date.now()-v-ad)/5e3)){let b=a.url?.()||"",c=String(l||await G(a).catch(()=>"")).slice(0,100).replace(/\s+/g," ");w("waiting_for_next_screen",`Waiting for the next Google or ${k} screen (url=${b.slice(0,100)} body=${c})`)}else w("waiting_for_next_screen",`Waiting for the next Google or ${k} screen`);await B(ad)}if(await M(a))return w("browser_blocked_by_google","Google blocked browser at end of automation window"),{status:"failed_browser_blocked",error:'Google blocked the automated browser ("This browser or app may not be secure"). Use headed CloakBrowser (Xvfb).'};let ai=a.url?.()||"",aj=String(await G(a).catch(()=>"")).slice(0,120).replace(/\s+/g," ");return w("manual_assist_required",`Flow did not complete ${k} authorization automatically (url=${ai.slice(0,100)} body=${aj})`),{status:"needs_manual",error:`Manual assist required — ${k} authorization did not finish automatically (last url: ${ai.slice(0,140)}). If you see "browser may not be secure", use headed CloakBrowser.`}}async function al({page:a,authUrl:b,email:c,password:d,callbackPromise:e,shortTimeoutMs:f=9e4,onStep:g}){return ak({page:a,authUrl:b,email:c,password:d,successPromise:e,shortTimeoutMs:f,serviceLabel:"Kiro",openingStep:"opening_google_oauth",openingMessage:"Opening Google OAuth page",successStep:"kiro_callback_received",successMessage:"Kiro callback received",onStep:g})}let am={waitForFirstVisibleLocator:A,fillInputResilient:F,parseSelectorList:function(a){return String(a||"").split(",").map(a=>a.trim()).filter(Boolean)},getFirstVisibleLocator:z,waitForPageAdvance:E,waitUntil:C,handleXaiDeviceCodeConfirm:ac,GOOGLE_LOGIN_BUTTON_SELECTORS:i,isGrokish:J,dismissCookieBanners:L,clickGoogleLoginRole:ae,isCloudflareLoginUrl:K}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(80601)}};
1
+ "use strict";exports.id=4566,exports.ids=[1998,4566,4720],exports.modules={13868:(a,b,c)=>{c.d(b,{Q6:()=>R,cO:()=>L,go:()=>O,hn:()=>E,KY:()=>S,kF:()=>s,$w:()=>C});var d=c(55511),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(49120),j=c(71998),k=c(20116),l=c(90715),m=c(62409),n=c(82506);let o=new Set(["success","failed","failed_invalid_credentials","failed_exchange","failed_timeout","failed_restricted","failed_browser_blocked","cancelled"]),p=h().join(i.DATA_DIR,"kiro-bulk-import"),q=h().join(p,"meta.json"),r=new Set(["queued","running","needs_manual"]);function s(){return new Date().toISOString()}function t(a=p){f().mkdirSync(a,{recursive:!0})}function u(a,b=p){return t(b),h().join(b,`${a}.json`)}function v(a){try{if(!f().existsSync(a))return null;return JSON.parse(f().readFileSync(a,"utf8"))}catch{return null}}function w(a,b){t(h().dirname(a));let c=`${a}.${process.pid}.tmp`;f().writeFileSync(c,JSON.stringify(b,null,2),"utf8"),f().renameSync(c,a)}function x(a,b=p){return t(b),h().join(b,`${a}.resume.enc`)}function y(){return(0,d.createHash)("sha256").update(String(function(){if(process.env.BULK_IMPORT_RESUME_SECRET)return process.env.BULK_IMPORT_RESUME_SECRET;let a=h().join(i.DATA_DIR,"bulk-import-resume-key");try{return f().readFileSync(a,"utf8").trim()}catch{}try{t(i.DATA_DIR);let b=(0,d.randomBytes)(32).toString("hex");return f().writeFileSync(a,b,{mode:384}),b}catch{return(0,d.randomBytes)(32).toString("hex")}}())).digest()}function z(a){try{f().existsSync(a)&&f().rmSync(a)}catch{}}function A(a=q){return v(a)?.latestJobId||null}function B(a){if((0,k.uT)(a))return Math.min(8,Math.max(1,(0,k.q)()));let b=Number.parseInt(a,10);return Number.isFinite(b)?Math.min(8,Math.max(1,b)):4}function C(a=[]){let b=Array.isArray(a)?a:[],c=[],d=[];return b.forEach((a,b)=>{let e=String(a||"").trim();if(!e||e.startsWith("#"))return;let f="",g="";if(e.includes("|")){let[a="",...b]=e.split("|");f=a.trim(),g=b.join("|").trim()}else if(e.includes(" ")){let a=e.indexOf(" ");f=e.substring(0,a).trim(),g=e.substring(a+1).trim()}else if(e.includes(":")){let a=e.indexOf(":"),b=e.substring(0,a).trim();b.includes("@")&&(f=b,g=e.substring(a+1).trim())}f&&g?c.push({line:b+1,email:f,password:g}):d.push(b+1)}),{parsed:c,invalidLines:d}}function D(a){return{total:a.length,queued:a.filter(a=>"queued"===a.status).length,running:a.filter(a=>"running"===a.status).length,success:a.filter(a=>"success"===a.status).length,failed:a.filter(a=>"failed"===a.status||"failed_invalid_credentials"===a.status||"failed_exchange"===a.status||"failed_timeout"===a.status||"failed_restricted"===a.status||"failed_browser_blocked"===a.status).length,needs_manual:a.filter(a=>"needs_manual"===a.status).length}}function E(a,b,c="info"){return{id:(0,d.randomUUID)(),at:s(),step:a,message:b,level:c}}function F(a,b,c,d="info"){let e=E(b,c,d);return a.currentStep=b,a.updatedAt=e.at,a.logs=a.logs||[],a.logs.push(e),a.logs.length>40&&a.logs.splice(0,a.logs.length-40),e}function G(a){return a.flatMap(a=>(a.logs||[]).map(b=>({...b,message:(0,l.yr)(b.message),email:a.email,line:a.line,workerId:a.workerId||null,status:a.status}))).sort((a,b)=>String(a.at).localeCompare(String(b.at))).slice(-80)}function H(a){if(!a)return null;try{return new URL(a),(0,l.Eq)(a)}catch{return a.length>20?`${a.slice(0,10)}***${a.slice(-10)}`:a}}function I(a){return{email:a.email,status:a.status,error:(0,l.yr)(a.error)||null,connectionId:a.connectionId||null,workerId:a.workerId||null,line:a.line,proxyUrl:H(a.proxyUrl)||null,currentStep:a.currentStep||null,updatedAt:a.updatedAt||null,logs:(a.logs||[]).slice(-20).map(a=>({...a,message:(0,l.yr)(a.message)})),manualSessionAvailable:!!a.manualSession?.page&&"needs_manual"===a.status,manualSessionOpened:!!a.manualSession?.opened}}function J(a,b={}){return{jobId:a.jobId,status:a.status,summary:D(a.accounts),concurrency:a.concurrency,createdAt:a.createdAt,startedAt:a.startedAt,finishedAt:a.finishedAt,accounts:a.accounts.map(I),activity:G(a.accounts),error:(0,l.yr)(a.error)||null,preview:b.preview||null}}function K(a){if(!a||r.has(a.status))return!1;let b=a.finishedAt?Date.parse(a.finishedAt):NaN;return!!Number.isFinite(b)&&Date.now()-b<=18e5}function L(a,b={}){return a?{found:!0,stale:!1,recoverable:r.has(a.status)||K(a),job:a}:{found:!1,stale:!!b.stale,recoverable:!1,job:null}}async function M(a){let{launchBulkImportBrowser:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)),d=process.env.ZEVAI_KIRO_HEADLESS;return b({engine:a?.engine||"cloakbrowser",headless:"1"===d||"true"===d,windowSize:{width:1280,height:900}})}async function N(a){let{exchangeAndSaveKiroSocialConnection:b}=await c.e(4136).then(c.bind(c,34136));return b(a)}async function O(a,b,e={}){let f,g,h=b,i=null,{DEFAULT_CONTEXT_CLOSE_TIMEOUT_MS:j,DEFAULT_CONTEXT_CREATE_TIMEOUT_MS:k,newStealthContext:l,withAutomationTimeout:m}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)),n=Number.isFinite(e.timeoutMs)&&e.timeoutMs>0?e.timeoutMs:k,o=Number.isFinite(e.closeTimeoutMs)&&e.closeTimeoutMs>0?e.closeTimeoutMs:j,p="codebuddy-cn"===e.profile&&!0===e.nativeCloakProfile;if(b){let{ensureSocksHttpBridge:a,isSocksProxyUrl:d}=await c.e(6652).then(c.bind(c,76652));d(b)&&(i=await m(a(b),{timeoutMs:n,message:`SOCKS proxy bridge timed out after ${Math.round(n/1e3)}s`,code:"SOCKS_BRIDGE_TIMEOUT",onLateResolve:a=>a?.release?.()}),i?.httpProxyUrl&&(h=i.httpProxyUrl))}let q=function(a){if(!a)return null;let b=String(a).trim();if(!b)return null;try{let a=new URL(b),c=(a.protocol||"http:").replace(/:$/,"")||"http",d={server:`${c}://${a.hostname}${a.port?`:${a.port}`:""}`};return a.username&&(d.username=decodeURIComponent(a.username)),a.password&&(d.password=decodeURIComponent(a.password)),d}catch{return{server:b}}}(h),r=q?{proxy:q}:{},s=!p&&(!0===e.randomizeFingerprint||null!=e.fingerprintSeed),t=null;if(s)try{let{buildAccountFingerprint:a,compactAccountFingerprint:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));t=a(e.fingerprintSeed??(0,d.randomUUID)()),!0===e.lowMemory&&(t=b(t)),r.viewport={...t.viewport},r.deviceScaleFactor=t.deviceScaleFactor,r.fingerprint={hardwareConcurrency:t.hardwareConcurrency,deviceMemory:t.deviceMemory,maxTouchPoints:t.maxTouchPoints,screen:t.screen}}catch{t=null}if(r.viewport||p||(r.viewport={width:1280,height:900}),r.ignoreHTTPSErrors=!0,"codebuddy-cn"===e.profile&&!p){let a="china"===String(e.region||"").toLowerCase();r.locale="zh-CN",r.languages=["zh-CN","zh","en-US","en"],r.timezoneId=a?"Asia/Shanghai":"Asia/Hong_Kong",r.geolocation=a?{longitude:121.4737,latitude:31.2304}:{longitude:114.1694,latitude:22.3193},r.permissions=["geolocation"],r.extraHTTPHeaders={...r.extraHTTPHeaders||{},"Accept-Language":"zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"}}e.locale&&(r.locale=e.locale),e.timezoneId&&(r.timezoneId=e.timezoneId),e.geolocation&&(r.geolocation=e.geolocation),Array.isArray(e.languages)&&(r.languages=e.languages),e.viewport&&(r.viewport=e.viewport),"number"==typeof e.deviceScaleFactor&&(r.deviceScaleFactor=e.deviceScaleFactor),e.extraHTTPHeaders&&(r.extraHTTPHeaders={...r.extraHTTPHeaders||{},...e.extraHTTPHeaders});try{f=await m(l(a,r),{timeoutMs:n,message:`Browser context creation timed out after ${Math.round(n/1e3)}s`,code:"BROWSER_CONTEXT_TIMEOUT",onLateResolve:a=>m(a?.close?.(),{timeoutMs:o,message:`Late browser context close timed out after ${Math.round(o/1e3)}s`,code:"BROWSER_CONTEXT_CLOSE_TIMEOUT"}).catch(()=>null)})}catch(a){throw await i?.release().catch(()=>null),a}let u=f.close.bind(f),v=null;f.close=(...a)=>(v||(v=m(Promise.resolve().then(()=>u(...a)),{timeoutMs:o,message:`Browser context close timed out after ${Math.round(o/1e3)}s`,code:"BROWSER_CONTEXT_CLOSE_TIMEOUT"}).finally(()=>i?.release().catch(()=>null))),v);try{g=await m(f.newPage(),{timeoutMs:n,message:`Browser page creation timed out after ${Math.round(n/1e3)}s`,code:"BROWSER_PAGE_TIMEOUT"})}catch(a){throw await f.close().catch(()=>null),a}try{await g.route(/facebook\.net|hotjar|clarity\.ms|hm\.baidu|sentry\.io|browser\.sentry-cdn|doubleclick\.net/i,a=>a.abort())}catch{}return{context:f,page:g}}async function P(a){let b,d,e,f;if(!a?.manualSession?.context)return!1;let g=a.manualSession.context,h=a.manualSession.page;try{b=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949))}catch{return!1}let i=null,j="";try{i=await b.withAutomationTimeout(Promise.resolve().then(()=>g.storageState()),{timeoutMs:b.DEFAULT_CONTEXT_CLOSE_TIMEOUT_MS,message:"Browser storage-state capture timed out",code:"BROWSER_STORAGE_STATE_TIMEOUT"})}catch{i=null}try{j=h?.url?.()||""}catch{j=""}try{d=await b.launchBulkImportBrowser({headless:!1,windowSize:{width:1280,height:900}})}catch{return!1}try{e=await b.withAutomationTimeout(b.newStealthContext(d,{viewport:null,...i?{storageState:i}:{}}),{timeoutMs:b.DEFAULT_CONTEXT_CREATE_TIMEOUT_MS,message:"Headed browser context creation timed out",code:"BROWSER_CONTEXT_TIMEOUT",onLateResolve:a=>b.withAutomationTimeout(Promise.resolve().then(()=>a?.close?.()),{timeoutMs:b.DEFAULT_CONTEXT_CLOSE_TIMEOUT_MS,message:"Late headed browser context close timed out",code:"BROWSER_CONTEXT_CLOSE_TIMEOUT"}).catch(()=>null)})}catch{return await b.forceCloseBrowser(d).catch(()=>null),!1}let k=e.close.bind(e),l=null;e.close=(...a)=>(l||(l=b.withAutomationTimeout(Promise.resolve().then(()=>k(...a)),{timeoutMs:b.DEFAULT_CONTEXT_CLOSE_TIMEOUT_MS,message:"Headed browser context close timed out",code:"BROWSER_CONTEXT_CLOSE_TIMEOUT"})),l);try{f=await b.withAutomationTimeout(e.newPage(),{timeoutMs:b.DEFAULT_CONTEXT_CREATE_TIMEOUT_MS,message:"Headed browser page creation timed out",code:"BROWSER_PAGE_TIMEOUT"})}catch{return await e.close().catch(()=>null),await b.forceCloseBrowser(d).catch(()=>null),!1}if(j)try{await f.goto(j,{waitUntil:"domcontentloaded",timeout:2e4})}catch{}let m=a.manualSession.rebind;if(a.manualSession.context=e,a.manualSession.page=f,a.manualSession.headedBrowser={close:()=>b.forceCloseBrowser(d)},"function"==typeof m)try{await m({context:e,page:f})}catch{}return Promise.resolve().then(()=>g.close()).catch(()=>null),!0}async function Q(a,{account:b}={}){if(!a)return!1;try{let d=a.context?.(),e=d?.browser?.(),f=function(a){if(!a)return!1;let b=a._options||a._initializer||{};return"boolean"!=typeof b.headless||b.headless}(e);if(e)try{let{getBulkImportBrowserHeadless:a}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)),b=a(e);"boolean"==typeof b&&(f=b)}catch{}if(b&&f&&await P(b))return await b.manualSession.page.bringToFront?.().catch(()=>null),!0;if(!d?.newCDPSession)return await a.bringToFront?.().catch(()=>null),!0;let g=await d.newCDPSession(a),h=null;try{let a=await g.send("Target.getTargetInfo"),b=a?.targetInfo?.targetId,c=await g.send("Browser.getWindowForTarget",b?{targetId:b}:{});h=c?.windowId??null}catch{h=null}return null!=h&&await g.send("Browser.setWindowBounds",{windowId:h,bounds:{windowState:"normal",left:80,top:80,width:1280,height:960}}).catch(()=>null),await a.bringToFront?.().catch(()=>null),await g.detach?.().catch(()=>null),!0}catch{return await a.bringToFront?.().catch(()=>null),!0}}class R{constructor({browserLauncher:a=M,googleAutomation:b=n.Th,socialExchange:c=N,kiroServiceFactory:d=()=>new m.v,storageName:e="kiro-bulk-import"}={}){this.browserLauncher=a,this.googleAutomation=b,this.socialExchange=c,this.kiroServiceFactory=d,this.storageDir=h().join(i.DATA_DIR,e),this.metaFile=h().join(this.storageDir,"meta.json"),this.jobs=new Map,this.latestJobId=A(this.metaFile)}buildPersistedSnapshot(a){return J(a,{preview:a.lastPreview||null})}readPersistedJob(a){return a?v(u(a,this.storageDir)):null}writePersistedJob(a,b){a&&b&&w(u(a,this.storageDir),b)}persistLatestJobId(a){!function(a,b=q){w(b,{latestJobId:a||null,updatedAt:s()})}(a,this.metaFile)}persistResumeBlob(a){try{!function(a,b){try{let c,e,g,i,j;t(h().dirname(a));let k=`${a}.${process.pid}.tmp`;f().writeFileSync(k,JSON.stringify((c=(0,d.randomBytes)(12),e=(0,d.createCipheriv)("aes-256-gcm",y(),c),g=Buffer.from(JSON.stringify(b),"utf8"),i=Buffer.concat([e.update(g),e.final()]),j=e.getAuthTag(),{v:1,alg:"aes-256-gcm",iv:c.toString("base64"),tag:j.toString("base64"),data:i.toString("base64")})),{mode:384}),f().renameSync(k,a)}catch{}}(x(a.jobId,this.storageDir),{jobId:a.jobId,concurrency:a.concurrency,proxyPoolMode:a.proxyPoolMode,proxyUrls:a.proxyUrls||[],createdAt:a.createdAt,accounts:a.accounts.map(a=>({line:a.line,email:a.email,password:a.password}))})}catch{}}hydrateInterruptedJob(a){if(!a||this.jobs.has(a))return!1;let b=v(u(a,this.storageDir));if(!b||!r.has(b.status))return!1;let c=function(a){let b=v(a);if(!b)return null;if(!b||"aes-256-gcm"!==b.alg||!b.iv||!b.tag||!b.data)return null;try{let a=(0,d.createDecipheriv)("aes-256-gcm",y(),Buffer.from(b.iv,"base64"));a.setAuthTag(Buffer.from(b.tag,"base64"));let c=Buffer.concat([a.update(Buffer.from(b.data,"base64")),a.final()]);return JSON.parse(c.toString("utf8"))}catch{return null}}(x(a,this.storageDir));if(!c||!Array.isArray(c.accounts)||0===c.accounts.length)return this.markJobInterrupted(a,b),!1;let e=new Map(c.accounts.map(a=>[a.line,a.password])),f=new Map(c.accounts.map(a=>[a.line,a.email])),g=b.createdAt||c.createdAt||s(),h=(b.accounts||[]).map(a=>{let b=o.has(a.status),c=Array.isArray(a.logs)?[...a.logs]:[],d={line:a.line,email:a.email||f.get(a.line)||"",password:b?void 0:e.get(a.line)??null,proxyUrl:null,status:a.status,error:a.error||null,connectionId:a.connectionId||null,workerId:b&&a.workerId||null,manualSession:null,runtimeSession:null,currentStep:a.currentStep||null,updatedAt:a.updatedAt||g,logs:c};return b||(d.status="queued",d.currentStep="queued",d.error=null,d.logs.push(E("resumed","Re-queued after a server restart to continue automatically"))),d}),i={jobId:a,status:"running",concurrency:B(c.concurrency),proxyPoolMode:c.proxyPoolMode||"none",proxyUrls:Array.isArray(c.proxyUrls)?c.proxyUrls:[],createdAt:g,startedAt:b.startedAt||g,finishedAt:null,error:null,cancelRequested:!1,browser:null,nextIndex:0,manualFollowups:new Set,persistPromise:Promise.resolve(),lastPreview:b.preview||null,lastPreviewCapturedAt:0,accounts:h};return(this.jobs.set(a,i),this.latestJobId||(this.latestJobId=a),h.some(a=>"queued"===a.status))?this.runJob(a):(i.status="completed",i.finishedAt=s(),this.persistJobSnapshot(i,{forcePreview:!1}),z(x(a,this.storageDir))),!0}markJobInterrupted(a,b){let c="Job was interrupted by a server restart and could not be auto-resumed (saved credentials were unavailable). Please start a new bulk login.",d=(b.accounts||[]).map(a=>{if(o.has(a.status))return a;let b=Array.isArray(a.logs)?[...a.logs]:[];return b.push(E("failed",c,"error")),{...a,status:"failed",error:c,currentStep:"failed",updatedAt:s(),manualSessionAvailable:!1,logs:b}}),e={...b,status:"failed",error:b.error||c,finishedAt:b.finishedAt||s(),accounts:d,summary:D(d),activity:G(d)};try{w(u(a,this.storageDir),e)}catch{}z(x(a,this.storageDir))}async startJob({accounts:a,concurrency:b,proxyPoolMode:e,proxyPoolId:f,engine:g}={}){let{parsed:h,invalidLines:i}=C(a);if(!h.length){let a=i.length>0?"Invalid account format. Use one account per line: gmail@example.com|password":"At least one account entry is required",b={error:a};throw i.length>0&&(b.invalidLines=i),Object.assign(Error(a),b)}if(i.length>0){let a="Invalid account format. Use one account per line: gmail@example.com|password";throw Object.assign(Error(a),{error:a,invalidLines:i})}let k=[];if("all"===e)k=(await (0,j.ui)({isActive:!0})).map(a=>a.proxyUrl).filter(Boolean);else if("single"===e&&f){let a=await (0,j.hr)(f);a?.isActive&&a?.proxyUrl&&(k=[a.proxyUrl])}let l=(0,d.randomUUID)(),m=s();this.hydrateInterruptedJob(this.latestJobId);let n=[...this.jobs.values()].find(a=>r.has(a.status));if(n)throw Object.assign(Error("A bulk import job is already active"),{error:"A bulk import job is already active",code:"BULK_IMPORT_ACTIVE",jobId:n.jobId});let o=g;try{let{normalizeBulkImportEngine:a}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));o=a(g)}catch{o=g||"cloakbrowser"}let p={jobId:l,status:"running",concurrency:B(b),engine:o,proxyPoolMode:e||"none",proxyUrls:k,createdAt:m,startedAt:m,finishedAt:null,error:null,cancelRequested:!1,browser:null,nextIndex:0,manualFollowups:new Set,persistPromise:Promise.resolve(),lastPreview:null,lastPreviewCapturedAt:0,accounts:h.map(a=>({line:a.line,email:a.email,password:a.password,proxyUrl:null,status:"queued",error:null,connectionId:null,workerId:null,manualSession:null,runtimeSession:null,currentStep:"queued",updatedAt:m,logs:[E("queued","Queued and waiting for an available worker")]}))};return this.jobs.set(l,p),this.latestJobId=l,this.persistLatestJobId(l),await this.persistJobSnapshot(p,{forcePreview:!1}),this.persistResumeBlob(p),this.runJob(l),J(p)}getJob(a){this.hydrateInterruptedJob(a);let b=this.jobs.get(a);return b?J(b,{preview:b.lastPreview||null}):v(u(a,this.storageDir))}async getJobWithPreview(a){this.hydrateInterruptedJob(a);let b=this.jobs.get(a);if(!b)return v(u(a,this.storageDir));let c=await this.capturePreview(b);return b.lastPreview=c||b.lastPreview||null,await this.persistJobSnapshot(b,{forcePreview:!1}),J(b,{preview:b.lastPreview||null})}async getLatestJobWithPreview({includeRecentTerminal:a=!1}={}){let b=this.latestJobId||A(this.metaFile);if(!b)return null;let c=await this.getJobWithPreview(b);return c&&(r.has(c.status)||a&&K(c))?c:null}cancelJob(a){let b=this.jobs.get(a);if(!b)return v(u(a,this.storageDir));for(let a of(b.cancelRequested=!0,b.accounts||[]))if("queued"===a.status||"running"===a.status||"needs_manual"===a.status){let b=a.manualSession,d=a.runtimeSession,e=b?.context||d?.context||null,f=b?.headedBrowser||null,g=b?.ownedBrowser||null;e&&e.close().catch(()=>null),f&&f.close().catch(()=>null),g&&Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)).then(({forceCloseBrowser:a})=>a(g)).catch(()=>g.close().catch(()=>null)),a.manualSession=null,a.runtimeSession=null,this.finalizeAccount(a,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled by user"})}if(b.browser){let a=b.browser;b.browser=null,Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949)).then(({forceCloseBrowser:b})=>b(a)).catch(()=>a.close().catch(()=>null))}return("queued"===b.status||"running"===b.status)&&(b.status="cancelled",b.finishedAt=b.finishedAt||s()),this.persistJobSnapshot(b,{forcePreview:!0}),J(b)}async openManualSession(a,b){let c=this.jobs.get(a);if(!c)return null;let d=Number.parseInt(b,10),e=c.accounts.find(a=>a.workerId===d&&"needs_manual"===a.status&&a.manualSession?.page);if(!e)return{ok:!1,error:"Manual session not found for this worker",job:J(c)};let f=await Q(e.manualSession.page,{account:e});return e.manualSession.opened=f,e.manualSession.openedAt=f?e.manualSession.openedAt||s():e.manualSession.openedAt||null,await this.persistJobSnapshot(c,{forcePreview:!0}),{ok:!0,job:J(c),account:I(e)}}dequeueAccount(a,b){for(;a.nextIndex<a.accounts.length;){let c=a.accounts[a.nextIndex];if(a.nextIndex+=1,"queued"===c.status)return c.status="running",c.workerId=b,c.error=null,a.proxyUrls?.length&&(c.proxyUrl=a.proxyUrls[(a.nextIndex-1)%a.proxyUrls.length]),F(c,"worker_assigned",`Worker ${b} picked up this account${c.proxyUrl?` (proxy: ${H(c.proxyUrl)})`:""}`),this.persistJobSnapshot(a,{forcePreview:!1}),c}return null}finalizeAccount(a,b,c={}){return a.status=b,a.error=c.error||null,a.connectionId=c.connectionId||null,(c.step||c.message)&&F(a,c.step||b,c.message||c.error||b.replaceAll("_"," ")),a}setAccountStep(a,b,c,d="info"){F(a,b,c,d)}async persistJobSnapshot(a,{forcePreview:b=!1}={}){if(!a)return;let c=async()=>{if(b||Date.now()-(a.lastPreviewCapturedAt||0)>=1500){let b=await this.capturePreview(a);b&&(a.lastPreview=b),a.lastPreviewCapturedAt=Date.now()}this.writePersistedJob(a.jobId,this.buildPersistedSnapshot(a))};a.persistPromise=Promise.resolve(a.persistPromise).catch(()=>null).then(c),await a.persistPromise}async capturePreview(a){let b=a.accounts.find(a=>"running"===a.status&&a.runtimeSession?.page)||a.accounts.find(a=>"needs_manual"===a.status&&a.manualSession?.page);if(!b)return null;let c=b.runtimeSession?.page||b.manualSession?.page;if(!c)return null;try{let a=await c.screenshot({type:"jpeg",quality:55,fullPage:!1,animations:"disabled",caret:"hide"});return{email:b.email||null,phone:b.phone||null,workerId:b.workerId||null,status:b.status,step:b.currentStep||null,updatedAt:b.updatedAt||s(),imageData:`data:image/jpeg;base64,${a.toString("base64")}`}}catch{return{email:b.email||null,phone:b.phone||null,workerId:b.workerId||null,status:b.status,step:b.currentStep||null,updatedAt:b.updatedAt||s(),imageData:null}}}async runManualFollowup(a,b,c,d,e,f){let g=(async()=>{let c=async()=>{let a=b.manualSession,c=a?.context||d,e=a?.headedBrowser||null;c&&await c.close().catch(()=>null),e&&await e.close().catch(()=>null)};try{let c=await e;if(a.cancelRequested){this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}),await this.persistJobSnapshot(a,{forcePreview:!0});return}this.setAccountStep(b,"exchanging_tokens","Exchanging Kiro callback for OAuth tokens"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:d}=await this.socialExchange({code:c.code,codeVerifier:f,provider:"google"});this.finalizeAccount(b,"success",{connectionId:d.id,step:"connection_saved",message:"Kiro connection saved successfully"}),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){a.cancelRequested?this.finalizeAccount(b,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled while waiting for manual completion"}):this.finalizeAccount(b,"failed_exchange",{error:c.message||"Manual assist flow failed during token exchange.",step:"exchange_failed",message:c.message||"Manual assist flow failed during token exchange."}),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{await c(),b.manualSession=null,b.runtimeSession=null,a.manualFollowups.delete(g),await this.persistJobSnapshot(a,{forcePreview:!0})}})();a.manualFollowups.add(g)}async processAccount(a,b,c){if(a.cancelRequested||!a.browser)return void this.finalizeAccount(b,"cancelled",{error:"Job cancelled"});let d=this.kiroServiceFactory().createSocialAuthorization("google"),e=null;try{let f=await O(a.browser,b.proxyUrl);e=f.context;let{page:g}=f,h=(0,n.zZ)(e,g);b.runtimeSession={context:e,page:g},this.setAccountStep(b,"preparing_worker",`Worker ${c} is preparing a browser context`),await this.persistJobSnapshot(a,{forcePreview:!0});let i=await this.googleAutomation({page:g,authUrl:d.authUrl,email:b.email,password:b.password,callbackPromise:h,onStep:(c,d)=>{this.setAccountStep(b,c,d),this.persistJobSnapshot(a,{forcePreview:!1})}});if("success"===i.status){this.setAccountStep(b,"exchanging_tokens","Exchanging Kiro callback for OAuth tokens"),await this.persistJobSnapshot(a,{forcePreview:!0});let{connection:c}=await this.socialExchange({code:i.code,codeVerifier:d.codeVerifier,provider:"google"});this.finalizeAccount(b,"success",{connectionId:c.id,step:"connection_saved",message:"Kiro connection saved successfully"}),b.runtimeSession=null,await e?.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0});return}if("needs_manual"===i.status){b.manualSession={context:e,page:g,opened:!1,openedAt:null,rebind:"function"==typeof h?.rebind?h.rebind:null},this.setAccountStep(b,"awaiting_manual","Waiting for manual completion in the browser session"),this.finalizeAccount(b,"needs_manual",{error:i.error,step:"awaiting_manual",message:i.error}),await this.persistJobSnapshot(a,{forcePreview:!0}),await this.runManualFollowup(a,b,c,e,h,d.codeVerifier);return}let j=o.has(i.status)?i.status:"failed";this.finalizeAccount(b,j,{error:i.error||"Kiro Google automation failed.",step:j,message:i.error||"Kiro Google automation failed."}),b.runtimeSession=null,await e?.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}catch(c){this.finalizeAccount(b,"failed",{error:c.message||"Unexpected Kiro bulk import failure.",step:"failed",message:c.message||"Unexpected Kiro bulk import failure."}),b.runtimeSession=null,await e?.close().catch(()=>null),await this.persistJobSnapshot(a,{forcePreview:!0})}finally{b.password=void 0}}async runWorker(a,b){for(;!a.cancelRequested;){let c=this.dequeueAccount(a,b);if(!c)return;await this.processAccount(a,c,b)}}shouldPrelaunchBrowser(a){return!0}async runJob(a){let b=this.jobs.get(a);if(b)try{let{DEFAULT_BROWSER_LAUNCH_TIMEOUT_MS:a,forceCloseBrowser:d,withAutomationTimeout:e}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));if(this.shouldPrelaunchBrowser(b)){let c=Promise.resolve().then(()=>this.browserLauncher(b));b.browser=await e(c,{timeoutMs:a,message:`Automation browser launch timed out after ${Math.round(a/1e3)}s`,code:"BROWSER_LAUNCH_TIMEOUT",onLateResolve:a=>d(a)})}b.accounts.forEach(a=>{"queued"===a.status&&1===(a.logs||[]).length&&this.setAccountStep(a,"waiting_for_worker","Waiting for a free worker")}),await this.persistJobSnapshot(b,{forcePreview:!1});let f=Math.min(b.concurrency,Math.max(b.accounts.length,1)),g=Array.from({length:f},(a,c)=>this.runWorker(b,c+1));await Promise.allSettled(g),b.manualFollowups.size>0&&await Promise.allSettled([...b.manualFollowups]),b.cancelRequested?(b.status="cancelled",b.accounts.forEach(a=>{("queued"===a.status||"running"===a.status||"needs_manual"===a.status)&&this.finalizeAccount(a,"cancelled",{error:"Job cancelled",step:"cancelled",message:"Job cancelled before completion"})})):b.status="completed",await this.persistJobSnapshot(b,{forcePreview:!0})}catch(a){b.status="failed",b.error=a.message||"Failed to start Kiro bulk import job.",b.accounts.forEach(a=>{("queued"===a.status||"running"===a.status)&&(this.finalizeAccount(a,"failed",{error:b.error,step:"failed",message:b.error}),a.password=void 0)}),await this.persistJobSnapshot(b,{forcePreview:!0})}finally{if(b.browser){let a=b.browser;b.browser=null;try{let{forceCloseBrowser:b}=await Promise.all([c.e(7774),c.e(5949)]).then(c.bind(c,75949));await b(a)}catch{await a.close().catch(()=>null)}}b.finishedAt=s(),await this.persistJobSnapshot(b,{forcePreview:!0}),z(x(b.jobId,this.storageDir))}}}function S(){return(!globalThis.__kiroBulkImportSingleton&&(globalThis.__kiroBulkImportSingleton={manager:new R}),globalThis.__kiroBulkImportSingleton).manager}},20116:(a,b,c)=>{c.d(b,{q:()=>h,si:()=>g,uT:()=>i});var d=c(21820),e=c.n(d);function f(a){return Number.isFinite(a)?Math.max(0,Math.floor(a)):0}function g(){let a=[];try{a=e().cpus()||[]}catch{a=[]}let b=0,c=0;try{b=e().totalmem()}catch{b=0}try{c=e().freemem()}catch{c=0}let d=Array.isArray(a)?a.length:0,f=a[0]?.model?String(a[0].model).trim():null,g=b/0x40000000,h=c/0x40000000,i="unknown",j="unknown";try{i=e().platform()}catch{}try{j=e().arch()}catch{}return{cpuCount:d,cpuModel:f,totalMemBytes:b,totalMemGb:g,freeMemBytes:c,freeMemGb:h,platform:i,arch:j}}function h(){return function(a=null){let b=a||g(),{cpuCount:c,totalMemGb:d}=b,e=f(d/4),h=f(c/2),i="fallback",j=0;return e>0&&h>0?(j=Math.min(e,h),i=e<=h?"ram":"cpu"):e>0?(j=e,i="ram"):h>0?(j=h,i="cpu"):(j=4,i="fallback"),{recommended:Math.min(8,Math.max(1,j||4)),limitedBy:i,ramBudget:e,cpuBudget:h,minWorkers:1,maxWorkers:8,ramGbPerWorker:4,cpuDivisor:2,specs:b}}().recommended}function i(a){return!0===a||"string"==typeof a&&"auto"===a.trim().toLowerCase()}Object.freeze({RAM_GB_PER_WORKER:4,CPU_DIVISOR:2,SAFE_MIN_WORKERS:1,SAFE_MAX_WORKERS:8,FALLBACK_WORKERS:4})},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},82506:(a,b,c)=>{c.d(b,{$K:()=>ab,Jl:()=>P,PB:()=>aj,Th:()=>al,i_:()=>$,np:()=>Z,rk:()=>ak,vN:()=>am,zZ:()=>ai});let d='input[type="email"], input[autocomplete="username"], input#identifierId, input[name="identifier"], input[name="Email"], input[type="text"][autofocus], input[aria-label*="Email" i], input[aria-label*="email" i], input[aria-label*="phone" i], input[aria-label*="telepon" i]',e='input[type="password"], input[name="Passwd"], input[name="password"], input[aria-label*="Password" i], input[aria-label*="password" i], input[aria-label*="Sandi" i], input[aria-label*="kata sandi" i]',f=['button:has-text("Next")','button:has-text("Berikutnya")','button:has-text("Continue")','div[role="button"]:has-text("Next")','div[role="button"]:has-text("Berikutnya")',"#identifierNext button","#passwordNext button"],g=["#submit_approve_access","#submit_approve_access button","#confirm",'form#tos_form input[type="submit"]','button[jsname]:has-text("Allow")','button:has-text("Allow")','[role="button"]:has-text("Allow")','input[type="submit"][value="Allow"]','input[type="button"][value="Allow"]','button[jsname]:has-text("Izinkan")','button:has-text("Izinkan")','[role="button"]:has-text("Izinkan")','button:has-text("Continue")','button:has-text("Next")','button:has-text("Yes")','button:has-text("Accept")','button:has-text("Lanjutkan")','button:has-text("Berikutnya")','button:has-text("Setuju")','button:has-text("Saya mengerti")','button:has-text("Oke")','button:has-text("OK")','button:has-text("Got it")','button:has-text("I understand")','div[role="button"]:has-text("Continue")','div[role="button"]:has-text("Next")','div[role="button"]:has-text("Allow")','div[role="button"]:has-text("Lanjutkan")','div[role="button"]:has-text("Berikutnya")','div[role="button"]:has-text("Izinkan")','div[role="button"]:has-text("Setuju")','div[role="button"]:has-text("Saya mengerti")','div[role="button"]:has-text("Oke")','div[role="button"]:has-text("OK")','div[role="button"]:has-text("Got it")','div[role="button"]:has-text("I understand")','input[type="button"][value="Saya mengerti"]','input[type="submit"][value="Saya mengerti"]'],h=['button:has-text("Skip")','button:has-text("Lewati")','button:has-text("Not now")','button:has-text("Bukan sekarang")','button:has-text("No thanks")','button:has-text("Tidak sekarang")','div[role="button"]:has-text("Skip")','div[role="button"]:has-text("Not now")'],i=["#social-google","a#social-google",'a:has-text("Sign up with Google")','a:has-text("Log in with Google")','a:has-text("Login with Google")','a:has-text("Continue with Google")','a:has-text("Sign in with Google")','button:has-text("Sign up with Google")','button:has-text("Log in with Google")','button:has-text("Login with Google")','button:has-text("Continue with Google")','button:has-text("Sign in with Google")','button[aria-label*="Continue with Google" i]','button[aria-label*="Google" i]','button:has-text("Google")','a:has-text("Google")','div[role="button"]:has-text("Continue with Google")','div[role="button"]:has-text("Login with Google")','div[role="button"]:has-text("Google")','span:has-text("Continue with Google")','span:has-text("Login with Google")','span:has-text("Google")','[aria-label*="Google" i]','[data-provider*="google" i]','button:has-text("Login with Google")','button:has-text("Continue with Google")','[data-testid*="google" i]'],j=["#onetrust-accept-btn-handler","#onetrust-reject-all-handler","#accept-recommended-btn-handler",'button:has-text("Allow All")','button:has-text("Reject All")','button:has-text("Accept All")','button:has-text("Accept all")','button:has-text("Confirm My Choices")'],k=["#agree-policy-account","#agree-policy","#agree-policy-sso",'input[type="checkbox"][id*="agree" i]','input[type="checkbox"][name*="agree" i]','input[type="checkbox"][id*="policy" i]','input[type="checkbox"][name*="policy" i]','input[type="checkbox"][id*="terms" i]','input[type="checkbox"][name*="terms" i]','.login-checkbox input[type="checkbox"]','[class*="checkbox"] input[type="checkbox"]','[class*="agree"] input[type="checkbox"]','input[type="checkbox"]'],l=['.ui-dialog button:has-text("Confirm")','dialog button:has-text("Confirm")','button:has-text("Confirm")','button:has-text("I agree")','button:has-text("Agree")','button:has-text("同意")','button:has-text("确认")'],m=['button:has-text("Continue")','[role="button"]:has-text("Continue")','button:has-text("Get started")','button:has-text("GET STARTED")','input[type="submit"][value="GET STARTED"]','button:has-text("Start")','button:has-text("Confirm")','button:has-text("Done")','button:has-text("Next")','button:has-text("Skip")','button:has-text("Not now")','button:has-text("Save")','button:has-text("Create")','button:has-text("Enter")','button:has-text("Launch")','button:has-text("Use CodeBuddy")','button:has-text("Go to CodeBuddy")'],n=["select",'[role="combobox"]','.page-region [role="combobox"]',".page-region .t-select",'.page-region [class*="t-select"]','.page-region [class*="select"]',".page-region input[placeholder]",'button:has-text("Region")','[role="button"]:has-text("Region")','button:has-text("Select region")','[role="button"]:has-text("Select region")','button:has-text("Data region")','[aria-label*="region" i]','[placeholder*="region" i]'],o=["text=/^Indonesia$/i","text=/^ID$/i","text=/^Singapore$/i","text=/^SG$/i","text=/^Japan$/i","text=/^JP$/i","text=/^Thailand$/i","text=/^TH$/i","text=/^Global$/i","text=/^International$/i","text=/^United States$/i","text=/^US$/i","text=/^Asia Pacific$/i","text=/^Hong Kong$/i","text=/^Default$/i"],p=[{selector:'input[name*="workspace" i]',value:"Default"},{selector:'input[placeholder*="workspace" i]',value:"Default"},{selector:'input[name*="team" i]',value:"Default"},{selector:'input[placeholder*="team" i]',value:"Default"},{selector:'input[name*="name" i]',value:"Default"},{selector:'input[placeholder*="name" i]',value:"Default"}],q=["wrong password","incorrect password","couldn't find your google account","couldn’t find your google account","enter a valid email","couldn’t sign you in","couldn't sign you in","invalid email or password","password is incorrect"],r=["2-step verification","2-step verification required","verify it’s you","verify it's you","check your phone","confirm it’s you","confirm it's you","recovery email","recovery phone","suspicious sign-in prevented","unusual activity detected","captcha","i'm not a robot","im not a robot","not a robot","recaptcha","select all images","select all squares","try again later","browser or app may not be secure","try using a different browser","couldn’t sign you in","couldn't sign you in","this browser or app may not be secure"],s=["restricted","account has been restricted","account is restricted","account has been suspended","account is suspended","account has been disabled","account is disabled","account has been banned","account is banned","access denied","account blocked","your account has been","violation of terms","terms of service violation","temporarily locked","permanently locked","account locked","akun dibatasi","akun diblokir","akun ditangguhkan"],t=["welcome to your new google account","selamat datang di akun google baru anda","welcome to your new account","selamat datang di akun baru","privacy and terms","privasi dan persyaratan","personalize your google services","personalisasikan layanan google anda","add recovery phone","tambahkan nomor telepon pemulihan","choose your settings","pilih setelan anda"],u=["welcome to your new account","selamat datang di akun baru","your administrator decides which","administrator anda memutuskan layanan","your organisation administrator manages","your organization administrator manages"];function v(a){if(!a||!a.startsWith("kiro://kiro.kiroAgent/authenticate-success"))return null;let b=a.indexOf("?"),c=new URLSearchParams(b>=0?a.slice(b+1):""),d=c.get("code"),e=c.get("state");return d?{callbackUrl:a,code:d,state:e}:null}function w(a){let b="function"==typeof a.frames?a.frames():[];return[a,...b.filter(b=>b!==a.mainFrame?.())]}async function x(a,b){for(let c of w(a))for(let a of b){let b=c.locator(a).first();if(await b.count().catch(()=>0)&&await b.isVisible().catch(()=>!1))return await b.click({timeout:5e3}).catch(()=>null),!0}return!1}async function y(a,b){for(let c of w(a))for(let a of b){let b=c.locator(a).first();if(await b.count().catch(()=>0)){if((await b.scrollIntoViewIfNeeded().catch(()=>null),await b.isVisible().catch(()=>!1)&&await b.isEnabled().catch(()=>!0))&&await b.click({timeout:5e3}).then(()=>!0).catch(()=>!1))return!0}}return!1}async function z(a,b){for(let c of w(a)){let a=c.locator(b).first();if(await a.count().catch(()=>0)&&await a.isVisible().catch(()=>!1))return a}return null}async function A(a,b,{timeout:c=15e3,pollInterval:d=150}={}){let e=Date.now()+c;for(;Date.now()<e;){let c=await z(a,b);if(c)return c;let f=e-Date.now();if(f<=0)break;await new Promise(a=>setTimeout(a,Math.min(d,f)))}return null}function B(a=50){return new Promise(b=>setTimeout(b,a))}async function C(a,{timeout:b=8e3,interval:c=100}={}){let d=Date.now()+b;for(;Date.now()<d;){try{if(await a())return!0}catch{}await B(c)}return!1}function D(a){try{let b=new URL(a).hostname;return"accounts.google.com"===b||b.endsWith(".accounts.google.com")||/^accounts\.google\./i.test(b)}catch{return!1}}async function E(a,{fromUrl:b="",urlMatch:c=null,selector:d=null,timeout:e=8e3}={}){let f=b||a.url?.()||"";return C(async()=>{let b=a.url?.()||"";return!!(c&&("function"==typeof c&&c(b)||c instanceof RegExp&&c.test(b))||b&&b!==f&&!b.startsWith("about:")||d&&await z(a,d))||!1},{timeout:e,interval:80})}async function F(a,b,{timeout:c=15e3}={}){if(!a||null==b)return!1;try{await a.click({timeout:3e3})}catch{}try{if(await a.fill(String(b),{timeout:Math.min(c,8e3)}),await a.inputValue().catch(()=>"")===b)return!0}catch{}try{await a.fill("",{timeout:2e3})}catch{}try{let d=Math.floor(15+20*Math.random());await a.type(String(b),{delay:d,timeout:c})}catch{try{await a.fill(String(b),{timeout:c})}catch{return!1}}let d="";try{d=await a.inputValue()}catch{d=""}return d===b}async function G(a){let b=[];for(let c of w(a))try{b.push(await c.evaluate(()=>document.body?.innerText||""))}catch{}return b.join("\n")}function H(a,b){let c=String(a||"").toLowerCase();return b.some(a=>c.includes(a))}function I(a){try{let b=new URL(a.url());return"accounts.google.com"===b.hostname||b.hostname.endsWith(".accounts.google.com")||/^accounts\.google\./i.test(b.hostname)}catch{return!1}}function J(a){return/grok|cloudflare/i.test(String(a||""))}function K(a){try{let b=new URL(a||"");return"dash.cloudflare.com"===b.hostname&&b.pathname.includes("/login")}catch{return!1}}async function L(a,b){for(let c of j)try{let d=a.locator(c).first();if(await d.isVisible({timeout:100}).catch(()=>!1))return await d.click({timeout:2e3,noWaitAfter:!0}).catch(()=>null),b?.("dismissing_cookies","Dismissed cookie / privacy banner"),!0}catch{}return!!await a.evaluate(()=>{try{if("function"==typeof window.OneTrust?.AllowAll){if(!document.querySelector("#onetrust-banner-sdk, #onetrust-consent-sdk, #onetrust-accept-btn-handler"))return!1;return window.OneTrust.AllowAll(),!0}let a=document.querySelector("#onetrust-accept-btn-handler");if(a&&null!==a.offsetParent)return a.click(),!0}catch{}return!1}).catch(()=>!1)&&(b?.("dismissing_cookies","Dismissed cookie / privacy banner"),!0)}async function M(a){return!!function(a){try{let b=new URL(a.url());if(b.pathname.startsWith("/not-supported")||b.pathname.includes("/signin/rejected")||b.pathname.includes("/rejected")||"about.google"===b.hostname||b.hostname.endsWith(".about.google"))return!0}catch{}return!1}(a)||H(await G(a).catch(()=>""),["browser or app may not be secure","try using a different browser","couldn't sign you in","couldn’t sign you in","this browser or app may not be secure","browser is not secure"])}function N(a){return!!(a&&a.__zevaiSettled)}async function O(a,b,{maxWaitMs:c=2e4,successPromise:d=null}={}){let e=Date.now(),f="";for(d&&"function"==typeof d.then&&(d.__zevaiSettledHooked||(d.__zevaiSettledHooked=!0,d.then(()=>{d.__zevaiSettled=!0},()=>{d.__zevaiSettled=!0})));Date.now()-e<c;){if(N(d))return b?.("waiting_google_redirect","OAuth callback already received — leaving interstitial wait"),!1;let c=a.url?.()||"",e=String(await G(a).catch(()=>"")).trim(),g=/\/accounts\/SetSID/i.test(c),h=/\/AccountChooser/i.test(c),i=e.length<30;if(!(g||i&&/accounts\.google\./i.test(c))&&!h)return!1;if(c!==f&&(b?.("waiting_google_redirect",`Waiting for Google redirect (url=${c.slice(0,120)} empty=${i})`),f=c),h&&await y(a,["div[data-identifier]","div[data-email]","li[data-identifier]",'div[role="link"]','div[role="button"]'])){b?.("selecting_google_account","Selected account from Google AccountChooser"),await E(a,{timeout:5e3});continue}let j=[a.waitForNavigation({waitUntil:"domcontentloaded",timeout:3e3}).catch(()=>null),B(400)];d&&!N(d)&&j.push(d.then(()=>null).catch(()=>null)),await Promise.race(j)}return!0}function P(a){try{let b=new URL(a.url()).hostname||"";return/codebuddy\.(ai|cn)$/.test(b)||b.endsWith(".codebuddy.ai")||b.endsWith(".codebuddy.cn")||"accounts.x.ai"===b||"auth.x.ai"===b||b.endsWith(".x.ai")||"grok.com"===b||b.endsWith(".grok.com")||"dash.cloudflare.com"===b||b.endsWith(".cloudflare.com")}catch{return!1}}async function Q(a,b){if(!I(a))return!1;let c=await G(a);return!!/wants to access|ingin mengakses|akses ke akun google|allow/i.test(c)&&(await a.evaluate(()=>{let a=document.scrollingElement||document.documentElement||document.body;a&&(a.scrollTop=a.scrollHeight),window.scrollTo(0,document.body?.scrollHeight||document.documentElement?.scrollHeight||0)}).catch(()=>null),await a.waitForTimeout(300),!!await y(a,g)&&(b("approving_google_consent","Approving Google OAuth consent"),await a.waitForTimeout(1e3),!0))}async function R(a,b){let c=String(b||"");if(!H(c,t))return!1;if(await a.evaluate(()=>{let a=document.scrollingElement||document.documentElement||document.body;a&&(a.scrollTop=a.scrollHeight),window.scrollTo(0,document.body?.scrollHeight||document.documentElement?.scrollHeight||0)}).catch(()=>null),await a.waitForTimeout(500),H(c,u)){if(await y(a,g))return await a.waitForTimeout(700),!0;if(await a.evaluate(()=>{let a=[document.getElementById("confirm"),document.querySelector('form#tos_form input[type="submit"]'),document.querySelector('input[type="submit"][value="Saya mengerti"]'),document.querySelector('input[type="submit"][value="I understand"]')].filter(Boolean)[0];return!!a&&(a.scrollIntoView({block:"center"}),a.click(),!0)}).catch(()=>!1)||await a.evaluate(()=>{let a=document.getElementById("tos_form");return!!a&&(a.submit(),!0)}).catch(()=>!1))return await a.waitForTimeout(800),!0}return!!(await y(a,h)||await y(a,g))&&(await a.waitForTimeout(700),!0)}async function S(a){let b=/global|international|singapore|united states|^us$|asia|hong kong|default/i;for(let c of w(a)){let a=c.locator("select"),d=await a.count().catch(()=>0);for(let c=0;c<d;c+=1){let d=a.nth(c),e=await d.isVisible().catch(()=>!1),f=await d.isEnabled().catch(()=>!0);if(!e||!f)continue;let g=await d.evaluate((a,b)=>{let c=RegExp(b,"i"),d=[...a.options].filter(a=>!a.disabled&&""!==a.value),e=d.find(a=>c.test(`${a.label} ${a.textContent} ${a.value}`));return(e||d[0])?.value||""},b.source).catch(()=>"");if(g&&await d.selectOption(g).then(()=>!0).catch(()=>!1))return!0}}return!1}async function T(a){let b=!1;for(let c of w(a))for(let{selector:a,value:d}of p){let e=c.locator(a).first();if(!await e.count().catch(()=>0))continue;let f=await e.isVisible().catch(()=>!1),g=await e.isEnabled().catch(()=>!0);!(!f||!g||await e.inputValue().catch(()=>""))&&await e.fill(d,{timeout:5e3}).then(()=>!0).catch(()=>!1)&&(b=!0)}return b}async function U(a,b){await b.scrollIntoViewIfNeeded().catch(()=>null);let c=await b.isVisible().catch(()=>!1),d=await b.isEnabled().catch(()=>!0);if(!c||!d)return!1;let e=await b.boundingBox().catch(()=>null);if(!e||e.width<=0||e.height<=0)return!1;let f=e.x+e.width/2,g=e.y+e.height/2;return await a.mouse.move(f,g),await a.mouse.down(),await a.mouse.up(),!0}async function V(a,b,c){for(let d of w(a)){let e=d.locator(b),f=Math.min(await e.count().catch(()=>0),80),g=[];for(let a=0;a<f;a+=1){let b=e.nth(a);if(!await b.isVisible().catch(()=>!1))continue;let c=(await b.innerText({timeout:1e3}).catch(()=>"")||await b.textContent({timeout:1e3}).catch(()=>"")||"").trim();c&&g.push({locator:b,text:c})}for(let b of c){let c=g.find(a=>b.test(a.text));if(c&&await U(a,c.locator).catch(()=>!1))return c.text}if(g[0]&&await U(a,g[0].locator).catch(()=>!1))return g[0].text}return""}async function W(a,b){for(let c of w(a))for(let d of b){let b=c.locator(d),e=Math.min(await b.count().catch(()=>0),20);for(let c=0;c<e;c+=1){let d=b.nth(c);if(await U(a,d).catch(()=>!1))return!0}}return!1}async function X(a,b){if(!P(a)||I(a))return!1;let c=await a.evaluate(async()=>{let a=document.body?.innerText||"";if(!(document.querySelector(".page-region")||/select\s+region|region|country|area|get started|complete/i.test(a)))return null;try{let a=await fetch("https://www.codebuddy.ai/console/login/account",{method:"POST",credentials:"include",headers:{accept:"application/json, text/plain, */*","content-type":"application/json","x-requested-with":"XMLHttpRequest","x-domain":window.location.hostname||"www.codebuddy.ai"},referrer:"https://www.codebuddy.ai/register/user/complete",body:JSON.stringify({attributes:{countryCode:["62"],countryFullName:["Indonesia"],countryName:["ID"]}})}),b=await a.text().catch(()=>""),c=null;try{c=b?JSON.parse(b):null}catch{c={raw:b}}if(a.ok&&(!c||0===c.code||200===c.code||void 0===c.code))return{action:"submitted_via_api"};return{action:"api_failed",status:a.status,code:c?.code,message:c?.msg||c?.message||b||`HTTP ${a.status}`}}catch(a){return{action:"api_failed",message:a?.message||"region submit request failed"}}}).catch(()=>null);return!!c?.action&&("submitted_via_api"===c.action?(b("submitting_codebuddy_region","Submitted CodeBuddy region via account API"),await a.waitForTimeout(1500),!0):(b("codebuddy_region_api_failed",c.message?`CodeBuddy region API submit failed: ${c.message}`:"CodeBuddy region API submit failed"),!1))}async function Y(a,b){if(!P(a)||I(a)||!await a.locator(".page-region").first().count().then(Boolean).catch(()=>!1))return!1;let c=[/indonesia|^id$|\u5370\u5ea6\u5c3c\u897f\u4e9a/i,/singapore|^sg$|\u65b0\u52a0\u5761/i,/japan|^jp$|\u65e5\u672c/i,/thailand|^th$|\u6cf0\u56fd/i,/global|international|default/i];if(await W(a,[".page-region [class*='28B894']",".page-region button:has-text('Get started')",".page-region button:has-text('Start')",".page-region button:has-text('Submit')",".page-region button:has-text('Continue')",".page-region [role='button']:has-text('Get started')",".page-region [role='button']:has-text('Start')",".page-region [role='button']:has-text('Submit')",".page-region [role='button']:has-text('Continue')"]))return b("submitting_codebuddy_region","Submitted CodeBuddy region selection"),await a.waitForTimeout(1200),!0;let d=await V(a,"ul.dropdown-section li, .dropdown-section li, [role='option'], .t-select-option, [class*='option']",c);if(d)return b("selecting_codebuddy_region",`Selected CodeBuddy region: ${d}`),await a.waitForTimeout(900),!0;if(!await W(a,[".page-region .t-select",".page-region [class*='t-select']",".page-region [role='combobox']",".page-region input[placeholder]",".page-region [class*='select']",".page-region [class*='cursor-pointer']"]))return!1;b("opening_codebuddy_region_selector","Opening CodeBuddy region selector"),await a.waitForTimeout(600);let e=await V(a,"ul.dropdown-section li, .dropdown-section li, [role='option'], .t-select-option, [class*='option']",c);return e&&(b("selecting_codebuddy_region",`Selected CodeBuddy region: ${e}`),await a.waitForTimeout(900)),!0}async function Z(a,b){if(!P(a)||I(a))return!1;if(await X(a,b)||await Y(a,b))return!0;for(let c of w(a)){let d=await c.evaluate(()=>{let a=a=>{if(!(a instanceof HTMLElement))return!1;let b=window.getComputedStyle(a);if("hidden"===b.visibility||"none"===b.display||0===Number(b.opacity))return!1;let c=a.getBoundingClientRect();return c.width>0&&c.height>0},b=document.querySelector(".page-region"),c=document.body?.innerText||"";if(!(b||/select\s+region|region|country|area|get started|complete/i.test(c)))return null;let d=a=>{for(let b of(a.scrollIntoView({block:"center",inline:"center"}),["pointerdown","mousedown","pointerup","mouseup","click"]))a.dispatchEvent(new MouseEvent(b,{bubbles:!0,cancelable:!0,view:window,buttons:+!!b.endsWith("down")}))},e=[/indonesia|^id$|\u5370\u5ea6\u5c3c\u897f\u4e9a/i,/singapore|^sg$|\u65b0\u52a0\u5761/i,/japan|^jp$|\u65e5\u672c/i,/thailand|^th$|\u6cf0\u56fd/i,/global|international|default/i],f=b||document.body,g=["button","[role='button']","input[type='submit']",".t-button","[class*='button']","[class*='28B894']"],h=[...f.querySelectorAll(g.join(","))].filter(a).filter(a=>{let b=`${a.innerText||""} ${a.getAttribute("aria-label")||""} ${a.getAttribute("value")||""}`,c=a.getAttribute("class")||"";return/submit|start|continue|confirm|done|get started|complete|\u5b8c\u6210|\u5f00\u59cb|\u786e\u5b9a|\u4e0b\u4e00\u6b65/i.test(b)||c.includes("28B894")});if(h.length)return d(h[0]),{action:"submitted"};let i=["ul.dropdown-section li",".dropdown-section li","[role='option']",".t-select-option","[class*='option']","[class*='dropdown'] li"],j=[...document.querySelectorAll(i.join(","))].filter(a).filter(a=>(a.innerText||a.textContent||"").trim());if(j.length){let a=e.map(a=>j.find(b=>a.test((b.innerText||b.textContent||"").trim()))).find(Boolean)||j[0],b=(a.innerText||a.textContent||"").trim();return d(a),{action:"selected",label:b}}let k=["[role='combobox']",".t-select","[class*='t-select']","[class*='select']","input[placeholder]",".text-sm","[class*='cursor-pointer']"],l=[...f.querySelectorAll(k.join(","))].filter(a).filter(a=>{let b=`${a.innerText||""} ${a.getAttribute("placeholder")||""} ${a.getAttribute("aria-label")||""}`;return/region|country|area|select|placeholder|\u5730\u533a|\u56fd\u5bb6|\u9009\u62e9/i.test(b)||a.matches?.(".t-select,[class*='t-select'],input[placeholder],[class*='select']")});return l.length?(d(l[0]),{action:"opened"}):null}).catch(()=>null);if(d?.action){if("selected"===d.action)return b("selecting_codebuddy_region",`Selected CodeBuddy region${d.label?`: ${d.label}`:""}`),await a.waitForTimeout(700),!0;if("submitted"===d.action)return b("submitting_codebuddy_region","Submitted CodeBuddy region selection"),await a.waitForTimeout(1200),!0;return b("opening_codebuddy_region_selector","Opening CodeBuddy region selector"),await a.waitForTimeout(700),!0}}return!1}async function $(a,b){if(!P(a)||I(a))return!1;let c=await a.evaluate(async()=>{let a=new URL(window.location.href);if(!/\/started\/?$/.test(a.pathname))return null;let b=a.searchParams.get("platform")||"CLI",c=a.searchParams.get("state");if(!c)return null;for(let a of[...new Set([window.location.hostname||"www.codebuddy.ai"].filter(Boolean))]){let d=new URL("/console/auth/login",window.location.origin);d.searchParams.set("platform",b),d.searchParams.set("state",c),d.searchParams.set("domain",a);try{let b=await fetch(d.toString(),{method:"GET",credentials:"include",redirect:"manual",headers:{"x-requested-with":"XMLHttpRequest","X-Domain":a}});if("opaqueredirect"===b.type||b.status>=300&&b.status<400)return{action:"attempted",domain:a,message:"redirected"};let c=await b.text(),e=null;try{e=c?JSON.parse(c):null}catch{e={raw:c}}if(b.ok&&(!e||0===e.code||200===e.code||void 0===e.code))return{action:"authorized",domain:a};if(b.ok)return{action:"attempted",domain:a,code:e?.code,message:e?.msg||e?.message||""}}catch(a){}}return{action:"failed"}}).catch(()=>null);return!!c?.action&&"failed"!==c.action&&("authorized"===c.action?b("authorizing_codebuddy_cli_state","Authorized CodeBuddy CLI login state"):b("authorizing_codebuddy_cli_state",c.message?`Attempted CodeBuddy CLI login state authorization: ${c.message}`:"Attempted CodeBuddy CLI login state authorization"),await a.waitForTimeout(1200),!0)}async function _(a){try{for(let b of[/continue with google/i,/sign in with google/i,/sign up with google/i,/^google$/i]){let c=a.getByRole("button",{name:b}).first();if(await c.isVisible({timeout:300}).catch(()=>!1))return!0;let d=a.getByRole("link",{name:b}).first();if(await d.isVisible({timeout:200}).catch(()=>!1))return!0}}catch{}for(let b of i)try{let c=a.locator(b).first();if(await c.isVisible({timeout:200}).catch(()=>!1))return!0}catch{}return!1}function aa(a){try{let b=new URL(a.url()).hostname||"";return"accounts.x.ai"===b||"auth.x.ai"===b||b.endsWith(".x.ai")||"grok.com"===b||b.endsWith(".grok.com")}catch{return!1}}async function ab(a,b,c){if(!P(a)||I(a))return!1;if(await y(a,l))return b("accepting_provider_privacy_dialog",`Confirmed ${c} privacy or terms dialog`),await a.waitForTimeout(800),!0;if(await $(a,b)||await Z(a,b))return!0;if(!aa(a)){if(await S(a))return b("selecting_provider_region",`Selected ${c} region`),await a.waitForTimeout(700),!0;if(await y(a,n))return b("opening_provider_region_selector",`Opening ${c} region selector`),await a.waitForTimeout(500),await y(a,o)&&(b("selecting_provider_region",`Selected ${c} region`),await a.waitForTimeout(700)),!0;if(await y(a,o))return b("selecting_provider_region",`Selected ${c} region`),await a.waitForTimeout(700),!0;if(await T(a))return b("filling_provider_onboarding",`Filled ${c} onboarding defaults`),await a.waitForTimeout(500),!0}if(aa(a))return!1;try{let b=new URL(a.url()).hostname||"";if("dash.cloudflare.com"===b||b.endsWith(".cloudflare.com"))return!1}catch{}return!await _(a)&&!!await y(a,m)&&(b("continuing_provider_onboarding",`Continuing ${c} onboarding`),await a.waitForTimeout(1e3),!0)}async function ac(a,b,{alreadyAuthed:c=!1}={}){if(!aa(a)||c||await _(a))return!1;let d=await G(a).catch(()=>"");if(/sign out|log out|device authorized|you can close|invalid action/i.test(d)||!(/enter the code shown in your terminal/i.test(d)||/only enter this code if you just initiated/i.test(d)||/sign in to grok/i.test(d)&&/continue/i.test(d)&&!/login with/i.test(d)))return!1;let e=a.url?.()||"",f=!1;try{let b=a.getByRole("button",{name:/^Continue$/i}).first();await b.isVisible({timeout:300}).catch(()=>!1)&&(await b.click({timeout:5e3}),f=!0)}catch{}return f||(f=await y(a,['button[type="submit"]:has-text("Continue")','button:has-text("Continue")'])),!!f&&(b?.("confirming_device_code","Confirmed device user code on xAI"),await E(a,{fromUrl:e,urlMatch:a=>/sign-in|login|oauth/i.test(a)&&a!==e,selector:[...i.slice(0,8),'button:has-text("Login with Google")','button:has-text("Login with email")'].join(", "),timeout:1e4}),!0)}async function ad(a,b){return!!await b.isEnabled().catch(()=>!0)&&(await b.scrollIntoViewIfNeeded().catch(()=>null),!!await b.click({timeout:2500,force:!0,noWaitAfter:!0}).then(()=>!0).catch(()=>!1)||U(a,b).catch(()=>!1))}async function ae(a){for(let b of[/continue with google/i,/login with google/i,/log in with google/i,/sign up with google/i,/sign in with google/i,/^google$/i]){try{let c=a.getByRole("button",{name:b}).first();if(await c.isVisible({timeout:250}).catch(()=>!1)&&await ad(a,c))return!0}catch{}try{let c=a.getByRole("link",{name:b}).first();if(await c.isVisible({timeout:200}).catch(()=>!1)&&await ad(a,c))return!0}catch{}}try{let b=a.locator('button[aria-label*="Google" i]').first();if(await b.isVisible({timeout:200}).catch(()=>!1)&&await ad(a,b))return!0}catch{}try{let b=a.locator('button:has-text("Google")').first();if(await b.isVisible({timeout:150}).catch(()=>!1)&&await ad(a,b))return!0}catch{}return!1}async function af(a,b){for(let c of w(a))for(let d of k)try{let e=c.locator(d).first();if(!await e.count().catch(()=>0)||!await e.isVisible().catch(()=>!1))continue;if(await e.isChecked().catch(()=>!1))return!1;if(await e.check({force:!0,timeout:3e3}).then(()=>!0).catch(()=>!1)||await e.click({force:!0,timeout:3e3}).then(()=>!0).catch(()=>!1))return b?.("accepting_provider_terms","Accepted provider terms for Google login"),await C(async()=>{try{let b=a.getByRole("button",{name:/google/i}).first();return await b.isVisible().catch(()=>!1)&&await b.isEnabled().catch(()=>!0)}catch{return!0}},{timeout:2e3,interval:80}),!0}catch{}return!1}async function ag(a,b,{allowGoogleClick:c=!0}={}){if(I(a))return!1;if(await L(a,b),await y(a,l))return b("accepting_provider_privacy_dialog","Confirmed provider privacy agreement dialog"),!0;let e=await af(a,b);if(!c)return e;let f=await ae(a);if(!f)for(let b of i.slice(0,16))try{let c=a.locator(b).first();if(await c.isVisible({timeout:100}).catch(()=>!1)&&await ad(a,c)){f=!0;break}}catch{}if(f){b("selecting_google_login","Selecting Google login"),await y(a,l)&&b("accepting_provider_privacy_dialog","Confirmed provider privacy agreement dialog");let c=K(a.url?.()||"");if(await E(a,{urlMatch:a=>D(a),selector:d,timeout:c?1e4:12e3})||I(a))b("google_login_page","Reached Google sign-in after provider SSO");else try{let c=a.context?.(),d=c?.pages?.()||[];for(let a=d.length-1;a>=0;a-=1){let c=d[a],e=c.url?.()||"";if(D(e)){b("google_login_popup","Google sign-in opened in a popup");break}}}catch{}return!0}return e}async function ah(a,b){if(!aa(a)||await _(a))return!1;for(let c of[/^(Allow|Authorize|Approve|Confirm)$/i,/^(Allow|Authorize|Approve)\b/i])try{let d=a.getByRole("button",{name:c}).first();if(await d.isVisible({timeout:200}).catch(()=>!1)){let a=await d.innerText().catch(()=>"")||"";if(/google/i.test(a))continue;return await d.click({timeout:3e3}),b?.("approving_consent","Approving xAI device authorization"),!0}}catch{}return!1}function ai(a,b,c=9e5){let d,e,f=new Promise((a,b)=>{d=a,e=b}),g=!1,h=new Set,i=new Map,j=setTimeout(()=>{k(null,Error("Timed out waiting for Kiro callback"))},c);function k(a,b=null){if(!g){for(let a of(g=!0,clearTimeout(j),i.values()))for(let b of a)try{b()}catch{}i.clear(),b?e(b):d(a)}}function l(a){let b=v(a||"");return b&&k(b),!!b}function m(a){try{l(a?.url?.()||"");let b="function"==typeof a?.headers?a.headers():null,c=b?.location||b?.Location||"";c&&l(c)}catch{}}function n(a,b){if(!a||h.has(a))return;h.add(a);let c=a=>l(a?.url?.()||""),d=a=>l(a?.url?.()||""),e=a=>l(a?.url?.()||""),f=a=>m(a),i=()=>l(a.url?.()||""),j=()=>{k(null,Error("Browser session closed while waiting for Kiro callback"))};a.on("framenavigated",c),a.on("request",d),a.on("requestfailed",e),a.on("response",f),a.on("domcontentloaded",i),a.on("load",i),a.on("close",j),b.push(()=>{a.off("framenavigated",c),a.off("request",d),a.off("requestfailed",e),a.off("response",f),a.off("domcontentloaded",i),a.off("load",i),a.off("close",j)}),(async()=>{try{if(g)return;let c=a.context?.();if(!c?.newCDPSession)return;let d=await c.newCDPSession(a);await d.send("Network.enable").catch(()=>null);let e=a=>{try{let b=a?.response?.headers||{},c=b.location||b.Location||"";c&&l(c),l(a?.response?.url||"")}catch{}},f=a=>{try{l(a?.request?.url||"")}catch{}};d.on("Network.responseReceived",e),d.on("Network.requestWillBeSent",f),b.push(()=>{try{d.off?.("Network.responseReceived",e)}catch{}try{d.off?.("Network.requestWillBeSent",f)}catch{}d.detach?.().catch(()=>null)})}catch{}})();let n=v(a.url?.()||"");n&&k(n)}function o(a,b){if(g||i.has(a))return;let c=[];i.set(a,c);let d=a=>n(a,c),e=()=>{k(null,Error("Browser context closed while waiting for Kiro callback"))},f=a=>l(a?.url?.()||""),h=a=>l(a?.url?.()||""),j=a=>m(a);a.on("page",d),a.on("close",e),a.on("request",f),a.on("requestfailed",h),a.on("response",j),c.push(()=>a.off("page",d)),c.push(()=>a.off("close",e)),c.push(()=>a.off("request",f)),c.push(()=>a.off("requestfailed",h)),c.push(()=>a.off("response",j)),b&&n(b,c)}return o(a,b),f.rebind=({context:a,page:b}={})=>{a&&o(a,b)},f.abort=(a="Job cancelled")=>{k(null,Error(a))},f}function aj(a,b,{prefix:c,timeoutMs:d=9e5}={}){let e,f,g=new Promise((a,b)=>{e=a,f=b}),h=!1,i=new Set,j=new Map,k=setTimeout(()=>{l(null,Error("Timed out waiting for OAuth callback"))},d);function l(a,b=null){if(!h){for(let a of(h=!0,clearTimeout(k),j.values()))for(let b of a)try{b()}catch{}j.clear(),b?f(b):e(a)}}function m(a,b){if(!a||i.has(a))return;i.add(a);let d=a=>{let b=function(a,b){if(!a||!b||!a.startsWith(b))return null;let c=a.indexOf("?"),d=new URLSearchParams(c>=0?a.slice(c+1):""),e=d.get("code"),f=d.get("state");return e?{callbackUrl:a,code:e,state:f}:null}(a||"",c);b&&l(b)},e=a=>d(a?.url?.()||""),f=a=>d(a?.url?.()||""),g=a=>d(a?.url?.()||""),h=()=>d(a.url?.()||"");a.on("framenavigated",e),a.on("request",f),a.on("requestfailed",g),a.on("domcontentloaded",h),a.on("load",h),b.push(()=>{a.off("framenavigated",e),a.off("request",f),a.off("requestfailed",g),a.off("domcontentloaded",h),a.off("load",h)}),d(a.url?.()||"")}function n(a,b){if(h||j.has(a))return;let c=[];j.set(a,c);let d=a=>m(a,c);a.on("page",d),c.push(()=>a.off("page",d)),b&&m(b,c)}return n(a,b),g.rebind=({context:a,page:b}={})=>{a&&n(a,b)},g}async function ak({page:a,authUrl:b,email:c,password:h,successPromise:i,shortTimeoutMs:j=9e4,serviceLabel:k="provider",openingStep:l="opening_google_oauth",openingMessage:m="Opening Google OAuth page",successStep:n="oauth_success_received",successMessage:o="OAuth success received",onStep:p,skipGoto:t=!1,expectGoogleSoon:u=!1}){let v=Date.now(),w=(a,b)=>{p?.(a,b)},y=a=>({maxWaitMs:a,successPromise:i}),D=0,N=0,S=0,T=!1,U=0,V=0,W=0,X=J(k)?6e3:18e3,Y=J(k)?12e3:8e3,Z=J(k)?3e3:8e3,$=J(k),aa=$?4e3:25e3,ad=$?120:500,ae=t&&I(a);t?ae?w("google_login_page","Already on Google sign-in — filling credentials"):u?(w("waiting_google_redirect","Waiting for Google after provider SSO click"),await C(()=>I(a),{timeout:25e3,interval:100})?(ae=!0,S=Date.now(),w("google_login_page","Reached Google sign-in after provider SSO")):w("google_redirect_slow","Google redirect slow — will retry SSO click")):(w(l,m),await L(a,w)):(w(l,m),await a.goto(b,{waitUntil:"domcontentloaded",timeout:6e4}),await L(a,w));let af=K(a.url?.()||"")||/cloudflare/i.test(String(k||""));if(!ae){await C(async()=>!!(I(a)||await z(a,'button[aria-label*="Google" i], button:has-text("Continue with Google"), button:has-text("Login with Google"), button:has-text("Google")')||!af&&await z(a,d)||!af&&await z(a,'button:has-text("Continue")')),{timeout:$?8e3:12e3,interval:80}),$||await O(a,w,y(8e3));for(let b=0;b<($||af?8:2)&&!I(a);b+=1)if(await L(a,w),!await ac(a,w)){if(await ag(a,w)){if(S=Date.now(),I(a))break;await B(50);continue}await C(async()=>I(a)||await _(a)||/enter the code|login with google|continue with google/i.test(await G(a).catch(()=>"")),{timeout:600,interval:80})||await B(80)}$||await O(a,w,y(6e3))}if(I(a)){T=!0;let b=await A(a,d,{timeout:1e4});b&&(w("entering_email","Entering Google email"),await F(b,c)?(w("submitting_email","Submitting email"),await x(a,f),N=Date.now(),await E(a,{selector:e,timeout:$?8e3:12e3}),$||await O(a,w,y(8e3))):w("email_fill_failed","Could not fill the Google email field; will retry in the polling loop"))}else P(a)&&w("waiting_for_google_sso",`Provider page still open (${(a.url?.()||"").slice(0,80)}) — will keep selecting Google login`);for(;Date.now()-v<j;){let j=await Promise.race([i.then(a=>({kind:"success",result:a})).catch(a=>({kind:"success_error",error:a})),new Promise(a=>setTimeout(()=>a(null),ad))]);if(j?.kind==="success")return w(n,o),{status:"success",...j.result};if(j?.kind==="success_error")return w("oauth_timeout",`Timed out waiting for ${k} authorization`),{status:"failed_timeout",error:j.error?.message||`Timed out waiting for ${k} authorization`};if($&&T&&D&&/cloudflare/i.test(String(k||"")))try{let b=new URL(a.url?.()||"");if("dash.cloudflare.com"===b.hostname&&!b.pathname.includes("/login")&&!b.href.includes("oidcJwt")){w("waiting_cf_harvest","On Cloudflare dashboard — waiting for Workers AI token harvest");let a=await Promise.race([i.then(a=>({kind:"success",result:a})).catch(a=>({kind:"success_error",error:a})),B(2e3).then(()=>null)]);if(a?.kind==="success")return w(n,o),{status:"success",...a.result};if(a?.kind==="success_error")return w("oauth_timeout",`Timed out waiting for ${k} authorization`),{status:"failed_timeout",error:a.error?.message||`Timed out waiting for ${k} authorization`};continue}}catch{}if(await O(a,w,y($?2500:8e3)))continue;if(await Q(a,w)){$?await E(a,{timeout:4e3}):await O(a,w,y(12e3));continue}if(await M(a)){let b=a.url?.()||"";return w("browser_blocked_by_google",`Google blocked this browser (url=${b.slice(0,120)}). Use headed CloakBrowser (Xvfb on Linux).`),{status:"failed_browser_blocked",error:'Google blocked the automated browser ("This browser or app may not be secure" / signin rejected). Kiro bulk must use headed CloakBrowser (Xvfb on Linux), not headless Chrome.'}}let l=await G(a);if(H(l,q))return w("invalid_credentials","Google rejected the supplied email or password"),{status:"failed_invalid_credentials",error:"Google rejected the supplied email or password."};if(H(l,s))return w("account_restricted","Account is restricted, suspended, or banned by the provider"),{status:"failed_restricted",error:"Account is restricted, suspended, or banned. Skipping."};if(H(l,r)){let a=/captcha|recaptcha|not a robot|select all images|select all squares/i.test(l);return w(a?"google_captcha":"manual_assist_required",a?"Google CAPTCHA / bot check":"Google requested CAPTCHA, 2FA, or recovery verification"),{status:"needs_manual",error:a?"Google CAPTCHA (bot check). Not fixed by lowering workers — use headed CloakBrowser with Xvfb, a residential proxy, and avoid blocking Google domains. Open manual assist to solve CAPTCHA once.":"Manual assist required in the browser session (CAPTCHA, 2FA, recovery, or suspicious-login challenge)."}}if(await R(a,l)){w("google_onboarding","Accepted Google onboarding or privacy prompt");continue}if(P(a)&&(/rate[_ ]?limit/i.test(l)||/error=rate_limited/i.test(a.url?.()||"")))return w("device_rate_limited","xAI device authorization rate-limited"),{status:"failed",error:"xAI rate-limited device authorization. Wait a few minutes and retry (too many rapid device-code attempts)."};if(P(a)&&/invalid action|invalid[_ ]?code|code (has )?expired|expired code/i.test(l)&&b&&T&&W<3&&Date.now()-V>4e3){W+=1,V=Date.now(),U=0,w("device_invalid_reopen",`Device page error — reopening auth URL (${W}/3)`),await a.goto(b,{waitUntil:"domcontentloaded",timeout:6e4}).catch(()=>null),await C(async()=>await z(a,'button:has-text("Continue"), button:has-text("Allow"), button:has-text("Authorize")')||await _(a),{timeout:4e3,interval:80});continue}let m=!!(T&&D);if(await ac(a,w,{alreadyAuthed:m}))continue;let p=!m&&(!S||Date.now()-S>Z);if(await ag(a,w,{allowGoogleClick:p})){p&&(S=Date.now());continue}if(m&&Date.now()-U>3e3&&await ah(a,w)){U=Date.now();continue}if(await ab(a,w,k))continue;if(I(a)){T=!0;let b=await z(a,e);if(b){let c=Date.now()-D;if(D&&c<X){w("waiting_after_password",`Password already submitted ${Math.round(c/1e3)}s ago — waiting for Google redirect`),await O(a,w,y($?2e3:6e3));continue}if(w("entering_password","Entering Google password"),await F(b,h)){w("submitting_password","Submitting password");let b=a.url?.()||"";await x(a,f),D=Date.now(),await Promise.race([a.waitForNavigation({waitUntil:"domcontentloaded",timeout:$?6e3:1e4}).catch(()=>null),E(a,{fromUrl:b,timeout:$?6e3:1e4}),i.then(()=>null).catch(()=>null)]),await O(a,w,y(aa))}else w("password_fill_failed","Could not fill the Google password field; retrying loop"),await B(100);continue}let g=await z(a,d);if(g){let b=Date.now()-N;if(N&&b<Y){w("waiting_after_email",`Email already submitted ${Math.round(b/1e3)}s ago — waiting for password/next screen`),await E(a,{selector:e,timeout:Math.max(200,Y-b)});continue}w("entering_email","Entering Google email"),await F(g,c)?(w("submitting_email","Submitting email"),await x(a,f),N=Date.now(),await E(a,{selector:e,timeout:$?6e3:1e4})):(w("email_fill_failed","Could not fill the Google email field; retrying loop"),await B(80));continue}}await L(a,w);let t=(()=>{try{let b=new URL(a.url()).hostname||"";return"dash.cloudflare.com"===b||b.endsWith(".cloudflare.com")}catch{return!1}})();if((I(a)||T&&D&&!await _(a)&&!K(a.url?.()||""))&&!K(a.url?.()||"")&&await x(a,g)){w("approving_consent",`Approving Google or ${k} consent`),U=Date.now(),await E(a,{timeout:$?2e3:4e3});continue}if(t&&!T&&await ag(a,w)){S=Date.now();continue}if(Math.floor((Date.now()-v)/5e3)!==Math.floor((Date.now()-v-ad)/5e3)){let b=a.url?.()||"",c=String(l||await G(a).catch(()=>"")).slice(0,100).replace(/\s+/g," ");w("waiting_for_next_screen",`Waiting for the next Google or ${k} screen (url=${b.slice(0,100)} body=${c})`)}else w("waiting_for_next_screen",`Waiting for the next Google or ${k} screen`);await B(ad)}if(await M(a))return w("browser_blocked_by_google","Google blocked browser at end of automation window"),{status:"failed_browser_blocked",error:'Google blocked the automated browser ("This browser or app may not be secure"). Use headed CloakBrowser (Xvfb).'};let ai=a.url?.()||"",aj=String(await G(a).catch(()=>"")).slice(0,120).replace(/\s+/g," ");return w("manual_assist_required",`Flow did not complete ${k} authorization automatically (url=${ai.slice(0,100)} body=${aj})`),{status:"needs_manual",error:`Manual assist required — ${k} authorization did not finish automatically (last url: ${ai.slice(0,140)}). If you see "browser may not be secure", use headed CloakBrowser.`}}async function al({page:a,authUrl:b,email:c,password:d,callbackPromise:e,shortTimeoutMs:f=9e4,onStep:g}){return ak({page:a,authUrl:b,email:c,password:d,successPromise:e,shortTimeoutMs:f,serviceLabel:"Kiro",openingStep:"opening_google_oauth",openingMessage:"Opening Google OAuth page",successStep:"kiro_callback_received",successMessage:"Kiro callback received",onStep:g})}let am={waitForFirstVisibleLocator:A,fillInputResilient:F,parseSelectorList:function(a){return String(a||"").split(",").map(a=>a.trim()).filter(Boolean)},getFirstVisibleLocator:z,waitForPageAdvance:E,waitUntil:C,handleXaiDeviceCodeConfirm:ac,GOOGLE_LOGIN_BUTTON_SELECTORS:i,isGrokish:J,dismissCookieBanners:L,clickGoogleLoginRole:ae,isCloudflareLoginUrl:K}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(70877)},90715:(a,b,c)=>{c.d(b,{Eq:()=>q,eK:()=>t,js:()=>u,yr:()=>r});let d=["id","provider","authType","name","displayName","email","priority","globalPriority","defaultModel","isActive","testStatus","status","lastTested","lastError","lastErrorAt","lastErrorType","errorType","errorCode","statusCode","providerErrorCode","rateLimitedUntil","expiresAt","expiresIn","tokenType","scope","projectId","lastUsedAt","consecutiveUseCount","consecutiveAuthFailures","backoffLevel","autoDisabledAt","autoDisabledReason","createdAt","updatedAt"],e=["baseUrl","azureEndpoint","deployment","apiVersion","organization","accountId","region","projectId","resourceUrl","proxyPoolId","connectionProxyEnabled","connectionProxyUrl","connectionNoProxy","githubLogin","githubName","githubEmail","githubUserId","username","firstName","lastName","authMethod","authKind","chatgptAccountId","chatgptPlanType","uid","enterpriseId","userId","organizationId","profileArn","startUrl","machineId","subscriptionTier","hasGrokCodeAccess","domain","refreshExpiresAt","refreshExpiresIn","tokenType","email","name","expireTime","nodeName","prefix","apiType","enabledModels"],f=["model","providerErrorCode","reason","lockedAt","resetsAt"],g=new Set(["baseUrl","azureEndpoint","resourceUrl","startUrl","connectionProxyUrl"]),h=new Set(["lastError","autoDisabledReason"]),i=/(?:api[_-]?key|access[_-]?token|auth|credential|password|secret|signature|token)/i,j=/([?&](?:api[_-]?key|access[_-]?token|auth|credential|password|secret|signature|token)=)[^&#\s;,]+/gi,k=/(\b(?:api[_-]?key|access[_-]?token|authorization|auth|credential|password|passwd|secret|signature|token)\b["']?\s*[:=]\s*)(?!(?:Bearer|Basic)\b)(?:"[^"]*"|'[^']*'|[^\s,;&}]+)/gi,l=/\b(Bearer|Basic)\s+[a-z\d._~+\/-]+=*/gi,m=/([a-z][a-z\d+.-]*:\/\/)[^@\s/]+@/gi,n=/(^|[\s("'`])[^:@/\s]+:[^@/\s]+@/gi,o=["id","name","noProxy","type","isActive","strictProxy","testStatus","lastTestedAt","lastError","createdAt","updatedAt","boundConnectionCount"];function p(a){return null===a||["string","number","boolean"].includes(typeof a)?a:Array.isArray(a)&&a.every(a=>null===a||["string","number","boolean"].includes(typeof a))?[...a]:void 0}function q(a){if("string"!=typeof a||!a)return a;if(/^[a-z][a-z\d+.-]*:\/\//i.test(a))try{let b=new URL(a);for(let a of(b.username&&(b.username="***"),b.password&&(b.password="***"),b.searchParams.keys()))i.test(a)&&b.searchParams.set(a,"***");return b.toString()}catch{}return a.replace(m,"$1***:***@").replace(n,"$1***:***@").replace(j,"$1***").replace(k,"$1***")}function r(a){return"string"==typeof a&&a?a.replace(m,"$1***:***@").replace(n,"$1***:***@").replace(j,"$1***").replace(k,"$1***").replace(l,"$1 ***"):a}function s(a){return"string"==typeof a?r(a):Array.isArray(a)?a.map(a=>"string"==typeof a?r(a):a):a}function t(a,{revealProxyUrl:b=!1}={}){if(!a||"object"!=typeof a)return{};let c={};for(let b of o){let d=p(a[b]);void 0!==d&&(c[b]=d)}let d=p(a.proxyUrl);return"string"==typeof d&&(c.proxyUrl=b?d:q(d)),void 0!==c.lastError&&(c.lastError=s(c.lastError)),c}function u(a){if(!a||"object"!=typeof a)return{};let b={};for(let c of d){let d=p(a[c]);void 0!==d&&(b[c]=h.has(c)?s(d):d)}for(let[c,d]of Object.entries(a)){if(!c.startsWith("modelLock_"))continue;let a=p(d);void 0!==a&&(b[c]=a)}let c=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={};for(let c of f){let d=p(a[c]);void 0!==d&&(b[c]="reason"===c?s(d):d)}return Object.keys(b).length>0?b:void 0}(a.modelLockReason);c&&(b.modelLockReason=c);let i=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return;let b={};for(let c of e){let d=p(a[c]);void 0!==d&&(b[c]=g.has(c)?q(d):d)}return b}(a.providerSpecificData);return i&&(b.providerSpecificData=i),b}}};
@@ -1 +1 @@
1
- "use strict";exports.id=4632,exports.ids=[4632],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=6048e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:408,cooldownMs:5e3},{status:409,cooldownMs:5e3},{status:429,backoff:!0}]},41004:(a,b,c)=>{c.d(b,{C8:()=>l,DR:()=>k,Uc:()=>h,cI:()=>j,eo:()=>i,gx:()=>d,pH:()=>g,v1:()=>e,xM:()=>f}),c(3662);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=6e4,g=6e4,h=64e3,i=32e3,j={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function k(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let l=["Please write a 5-10 word title for the following conversation:"]},43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},64632:(a,b,c)=>{c.d(b,{Op:()=>N,Nq:()=>E,PE:()=>P});var d=c(4573),e=c(43659),f=c(41004);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}let j={token:null,tokenTime:0},k=0;async function l(){let a=Date.now();if(j.token&&a-j.tokenTime<66e4)return j.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return j.token={"f.sid":d,bl:e},j.tokenTime=a,j.token}let m={token:null,tokenTime:0},n=null,o=0;async function p(){let a=Date.now();if(m.token&&a-m.tokenTime<3e5)return m.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return m.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},m.tokenTime=a,m.token}async function q(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`<speak version='1.0' xml:lang='${d}'><voice xml:lang='${d}' xml:gender='${e}' name='${b}'><prosody rate='0.00%'>${a}</prosody></voice></speak>`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function r(){let a=Date.now();if(n&&a-o<864e5)return n;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return n=c,o=a,c}var s=c(31421),t=c(57975),u=c(51455),v=c(48161),w=c(76760);let x=(0,t.promisify)(s.execFile),y=null;async function z(){let{stdout:a}=await x("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function A(){let{stdout:a}=await x("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function B(){if(y)return y;try{let a="win32"===process.platform?await A():await z();return y=a,a}catch{return[]}}async function C(a,b){let c=await (0,u.mkdtemp)((0,w.join)((0,v.tmpdir)(),"tts-")),d=(0,w.join)(c,"out.aiff"),e=(0,w.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await x("say",c),await x("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,u.readFile)(e)).toString("base64")}finally{await (0,u.rm)(c,{recursive:!0,force:!0})}}let D=new Map;async function E(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=D.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return D.set(a,{voices:e,time:b}),e}let F="gemini-2.5-flash-preview-tts",G="Kore",H=["gemini-2.5-flash-preview-tts","gemini-2.5-pro-preview-tts"],I=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function J(){return I.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let K={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")},"minimax-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:e,voiceId:f}){let g=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({model:e||"speech-2.8-hd",text:c,stream:!1,language_boost:"auto",output_format:"hex",voice_setting:{voice_id:f||"English_expressive_narrator",speed:1,vol:1,pitch:0},audio_setting:{sample_rate:32e3,bitrate:128e3,format:"mp3",channel:1}})}),h=await g.text(),i={};if(h)try{i=JSON.parse(h)}catch{i={}}let j=i.base_resp||i.baseResp||{},k=Number(j.status_code??j.statusCode??0),l=j.status_msg||j.statusMsg||i.message||"";if(!g.ok)throw Error(l||h||`MiniMax TTS error (${g.status})`);if(0!==k)throw Error(l||"MiniMax TTS upstream error");return{base64:function(a){let b="string"==typeof a?a.trim():"";if(!b)throw Error("MiniMax TTS returned no audio");if(b.length%2!=0||!/^[0-9a-f]+$/i.test(b))throw Error("MiniMax TTS returned invalid audio");return d.Buffer.from(b,"hex").toString("base64")}(i.data?.audio),format:i.extra_info?.audio_format||i.extraInfo?.audioFormat||"mp3"}}},L={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await l(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++k+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let m=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!m.ok)throw Error(`Google TTS failed: ${m.status}`);let n=JSON.parse(JSON.parse((await m.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await p(),f=await q(a,c,e);if((429===f.status||403===f.status)&&(m.token=null,m.tokenTime=0,e=await p(),f=await q(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await C(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e="gpt-4o-mini-tts",f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d="openai/gpt-4o-mini-tts",e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:F,voiceId:G};for(let b of H){if(a===b)return{modelId:b,voiceId:G};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:F,voiceId:a}}(b),m=`https://generativelanguage.googleapis.com/v1beta/models/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}}};async function M(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(5681).then(c.bind(c,75681)),g=f[a]?.ttsConfig;if(!g)return null;let h=K[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{modelId:j,voiceId:k}=function(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}(d,g.models?.[0]?.id||"","",g.models||[]);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:j,voiceId:k})}let N={"edge-tts":r,"local-device":B,elevenlabs:E,gemini:J};function O(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function P({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let i=L[a]||null;if(i){let a=await i.synthesize(c.trim(),b,d,g,{language:h});if(void 0!==a.success)return a;return O(a.base64,a.format,g)}let j=await M(a,c.trim(),b,d);if(j)return O(j.base64,j.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}};
1
+ "use strict";exports.id=4632,exports.ids=[4632],exports.modules={43659:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(3662);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},64632:(a,b,c)=>{c.d(b,{Op:()=>N,Nq:()=>E,PE:()=>P});var d=c(4573),e=c(43659),f=c(41004);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}let j={token:null,tokenTime:0},k=0;async function l(){let a=Date.now();if(j.token&&a-j.tokenTime<66e4)return j.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return j.token={"f.sid":d,bl:e},j.tokenTime=a,j.token}let m={token:null,tokenTime:0},n=null,o=0;async function p(){let a=Date.now();if(m.token&&a-m.tokenTime<3e5)return m.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return m.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},m.tokenTime=a,m.token}async function q(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`<speak version='1.0' xml:lang='${d}'><voice xml:lang='${d}' xml:gender='${e}' name='${b}'><prosody rate='0.00%'>${a}</prosody></voice></speak>`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function r(){let a=Date.now();if(n&&a-o<864e5)return n;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return n=c,o=a,c}var s=c(31421),t=c(57975),u=c(51455),v=c(48161),w=c(76760);let x=(0,t.promisify)(s.execFile),y=null;async function z(){let{stdout:a}=await x("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function A(){let{stdout:a}=await x("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function B(){if(y)return y;try{let a="win32"===process.platform?await A():await z();return y=a,a}catch{return[]}}async function C(a,b){let c=await (0,u.mkdtemp)((0,w.join)((0,v.tmpdir)(),"tts-")),d=(0,w.join)(c,"out.aiff"),e=(0,w.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await x("say",c),await x("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,u.readFile)(e)).toString("base64")}finally{await (0,u.rm)(c,{recursive:!0,force:!0})}}let D=new Map;async function E(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=D.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return D.set(a,{voices:e,time:b}),e}let F="gemini-2.5-flash-preview-tts",G="Kore",H=["gemini-2.5-flash-preview-tts","gemini-2.5-pro-preview-tts"],I=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function J(){return I.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let K={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")},"minimax-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:e,voiceId:f}){let g=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({model:e||"speech-2.8-hd",text:c,stream:!1,language_boost:"auto",output_format:"hex",voice_setting:{voice_id:f||"English_expressive_narrator",speed:1,vol:1,pitch:0},audio_setting:{sample_rate:32e3,bitrate:128e3,format:"mp3",channel:1}})}),h=await g.text(),i={};if(h)try{i=JSON.parse(h)}catch{i={}}let j=i.base_resp||i.baseResp||{},k=Number(j.status_code??j.statusCode??0),l=j.status_msg||j.statusMsg||i.message||"";if(!g.ok)throw Error(l||h||`MiniMax TTS error (${g.status})`);if(0!==k)throw Error(l||"MiniMax TTS upstream error");return{base64:function(a){let b="string"==typeof a?a.trim():"";if(!b)throw Error("MiniMax TTS returned no audio");if(b.length%2!=0||!/^[0-9a-f]+$/i.test(b))throw Error("MiniMax TTS returned invalid audio");return d.Buffer.from(b,"hex").toString("base64")}(i.data?.audio),format:i.extra_info?.audio_format||i.extraInfo?.audioFormat||"mp3"}}},L={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await l(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++k+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let m=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!m.ok)throw Error(`Google TTS failed: ${m.status}`);let n=JSON.parse(JSON.parse((await m.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await p(),f=await q(a,c,e);if((429===f.status||403===f.status)&&(m.token=null,m.tokenTime=0,e=await p(),f=await q(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await C(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e="gpt-4o-mini-tts",f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d="openai/gpt-4o-mini-tts",e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:F,voiceId:G};for(let b of H){if(a===b)return{modelId:b,voiceId:G};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:F,voiceId:a}}(b),m=`https://generativelanguage.googleapis.com/v1beta/models/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}}};async function M(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(5681).then(c.bind(c,75681)),g=f[a]?.ttsConfig;if(!g)return null;let h=K[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{modelId:j,voiceId:k}=function(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}(d,g.models?.[0]?.id||"","",g.models||[]);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:j,voiceId:k})}let N={"edge-tts":r,"local-device":B,elevenlabs:E,gemini:J};function O(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function P({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let i=L[a]||null;if(i){let a=await i.synthesize(c.trim(),b,d,g,{language:h});if(void 0!==a.success)return a;return O(a.base64,a.format,g)}let j=await M(a,c.trim(),b,d);if(j)return O(j.base64,j.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}};
@@ -10,7 +10,7 @@ Host: ${j().hostname()} \xb7 cwd: ${b}\r
10
10
  \r
11
11
  `)}function w(a){return Array.from(n.sessions.values()).filter(b=>b.owner===a).map(a=>({id:a.id,createdAt:a.createdAt,lastActive:a.lastActive,shell:a.shell,mode:a.mode,cols:a.cols,rows:a.rows,alive:a.alive}))}function x(a,b){let c=n.sessions.get(a);return c?.owner===b?c:null}function y({cols:a=120,rows:b=40,owner:f}={}){let g,i,k,q,w;for(let[a,b]of n.sessions)b.alive||r(a,"cleanup");let x=Array.from(n.sessions.values()).filter(a=>a.owner===f);if(x.length>=4){let a=x.sort((a,b)=>a.lastActive-b.lastActive)[0];a&&r(a.id,"evicted")}if(Array.from(n.sessions.values()).filter(a=>a.owner===f).length>=4){let a=Error("Too many terminal sessions (max 4)");throw a.code="MAX_SESSIONS",a}let z=(0,e.randomUUID)(),A=function(a,b){let d=function(){try{return c(Object(function(){var a=Error("Cannot find module 'node-pty'");throw a.code="MODULE_NOT_FOUND",a}()))}catch{return null}}();if(!d)return null;let e=o(),f=j().homedir(),g={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",FORCE_COLOR:"1"};try{return{term:d.spawn(e,"win32"===process.platform?[]:["-il"],{name:"xterm-256color",cols:a||120,rows:b||40,cwd:f,env:g}),mode:"pty",cwd:f}}catch{return null}}(a,b);if(A){let c=t(z,a,b,A.mode);return c.owner=f,c.pty=A.term,c.kind="pty",A.term.onData(a=>p(c,a)),A.term.onExit(({exitCode:a,signal:b})=>{c.exitCode=a,c.alive=!1,p(c,`\r
12
12
  [terminal] process exited${null!=a?` (code ${a})`:""}${b?` signal ${b}`:""}\r
13
- `),c.emitter.emit("exit",{reason:"process-exit",code:a,signal:b}),setTimeout(()=>r(z,"process-exit"),2e3).unref?.()}),v(c,A.cwd),n.sessions.set(z,c),s(c),{id:z,shell:c.shell,mode:c.mode,cols:a,rows:b}}let B=function(a,b){if("win32"===process.platform)return null;let c=function(){for(let a of[l().join(l().dirname((0,m.fileURLToPath)("file:///Users/firda/zevairouter/src/lib/terminal/sessionManager.js")),"ptyBridge.py"),l().join(process.cwd(),"src/lib/terminal/ptyBridge.py"),l().join(process.cwd(),"zevairouter/src/lib/terminal/ptyBridge.py")])try{if(h().existsSync(a))return a}catch{}return null}(),e=function(){for(let a of["python3","python","/usr/bin/python3","/opt/homebrew/bin/python3"])try{if(a.startsWith("/")&&!h().existsSync(a))continue;return a}catch{}return null}();if(!c||!e)return null;try{return{child:(0,d.spawn)(e,["-u",c,String(a||120),String(b||40)],{cwd:j().homedir(),env:{...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",FORCE_COLOR:"1",PYTHONUNBUFFERED:"1",SHELL:o()},stdio:["pipe","pipe","pipe"],windowsHide:!0}),mode:"pty-python",cwd:j().homedir()}}catch(a){return console.warn("[terminal] python PTY bridge failed:",a?.message||a),null}}(a,b);if(B){let c=t(z,a,b,B.mode);return c.owner=f,c.kind="pty",u(c,B.child),p(c,`\r
13
+ `),c.emitter.emit("exit",{reason:"process-exit",code:a,signal:b}),setTimeout(()=>r(z,"process-exit"),2e3).unref?.()}),v(c,A.cwd),n.sessions.set(z,c),s(c),{id:z,shell:c.shell,mode:c.mode,cols:a,rows:b}}let B=function(a,b){if("win32"===process.platform)return null;let c=function(){for(let a of[l().join(l().dirname((0,m.fileURLToPath)("file:///zevairouter-build/src/lib/terminal/sessionManager.js")),"ptyBridge.py"),l().join(process.cwd(),"src/lib/terminal/ptyBridge.py"),l().join(process.cwd(),"zevairouter/src/lib/terminal/ptyBridge.py")])try{if(h().existsSync(a))return a}catch{}return null}(),e=function(){for(let a of["python3","python","/usr/bin/python3","/opt/homebrew/bin/python3"])try{if(a.startsWith("/")&&!h().existsSync(a))continue;return a}catch{}return null}();if(!c||!e)return null;try{return{child:(0,d.spawn)(e,["-u",c,String(a||120),String(b||40)],{cwd:j().homedir(),env:{...process.env,TERM:"xterm-256color",COLORTERM:"truecolor",FORCE_COLOR:"1",PYTHONUNBUFFERED:"1",SHELL:o()},stdio:["pipe","pipe","pipe"],windowsHide:!0}),mode:"pty-python",cwd:j().homedir()}}catch(a){return console.warn("[terminal] python PTY bridge failed:",a?.message||a),null}}(a,b);if(B){let c=t(z,a,b,B.mode);return c.owner=f,c.kind="pty",u(c,B.child),p(c,`\r
14
14
  \x1b[38;2;229;106;74mZevaiRouter\x1b[0m web shell \xb7 ${c.shell} \xb7 ${c.mode}\r
15
15
  Host: ${j().hostname()} \xb7 cwd: ${B.cwd}\r
16
16
  \r
@@ -1 +1 @@
1
- "use strict";exports.id=4720,exports.ids=[4720],exports.modules={47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(80601)}};
1
+ "use strict";exports.id=4720,exports.ids=[4720],exports.modules={47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,NR:()=>d.NR,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(70877)}};
@@ -1 +1 @@
1
- "use strict";exports.id=4739,exports.ids=[4739],exports.modules={24739:(a,b,c)=>{c.d(b,{createBunSqliteAdapter:()=>e});var d=c(63775);async function e(a){let{Database:b}=await Promise.resolve().then(c.t.bind(c,81787,23)),e=new b(a,{create:!0});e.exec(d.oG);let f=new Map;function g(a){let b=f.get(a);return b||(b=e.prepare(a),f.set(a,b)),b}let h=setInterval(()=>{try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);function i(){try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{f.clear()}catch{}try{e.close()}catch{}}"function"==typeof h.unref&&h.unref();let j=()=>i();return process.once("beforeExit",j),process.once("SIGINT",()=>{j(),process.exit(0)}),process.once("SIGTERM",()=>{j(),process.exit(0)}),{driver:"bun:sqlite",run(a,b=[]){let c=g(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>g(a).get(...b),all:(a,b=[])=>g(a).all(...b),exec:a=>e.exec(a),transaction:a=>e.transaction(a)(),checkpoint(){e.exec("PRAGMA wal_checkpoint(TRUNCATE)")},close(){clearInterval(h),i()},raw:e}}}};
1
+ "use strict";exports.id=4739,exports.ids=[4739],exports.modules={24739:(a,b,c)=>{c.d(b,{createBunSqliteAdapter:()=>e});var d=c(63775);async function e(a){let{Database:b}=await Promise.resolve().then(c.t.bind(c,81787,23)),e=new b(a,{create:!0});e.exec(d.oG);let f=new Map;function g(a){let b=f.get(a);return b||(b=e.prepare(a),f.set(a,b)),b}let h=setInterval(()=>{try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}},6e4);"function"==typeof h.unref&&h.unref();let i=!1;function j(){if(!i){i=!0;try{e.exec("PRAGMA wal_checkpoint(TRUNCATE)")}catch{}try{f.clear()}catch{}try{e.close()}catch{}}}let k=()=>j();return process.once("beforeExit",k),{driver:"bun:sqlite",run(a,b=[]){let c=g(a).run(...b);return{changes:Number(c.changes??0),lastInsertRowid:Number(c.lastInsertRowid??0)}},get:(a,b=[])=>g(a).get(...b),all:(a,b=[])=>g(a).all(...b),exec:a=>e.exec(a),transaction:a=>e.transaction(a)(),checkpoint(){e.exec("PRAGMA wal_checkpoint(TRUNCATE)")},close(){clearInterval(h),process.removeListener("beforeExit",k),j()},raw:e}}}};