zevairouter 1.0.35 → 1.0.37

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 (1058) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +8 -1
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/prerender-manifest.json +3 -3
  6. package/cli/app/.next-cli-build/routes-manifest.json +49 -0
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +2 -2
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +2 -2
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +3 -3
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  74. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  75. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  77. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  78. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  80. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  81. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/cli/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  85. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  88. package/cli/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  89. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  90. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  91. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  92. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  93. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  94. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  95. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  102. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  114. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  122. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  124. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  126. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  130. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +3 -3
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  164. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  166. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -0
  226. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -0
  227. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route_client-reference-manifest.js +1 -0
  228. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -0
  229. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -0
  230. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route_client-reference-manifest.js +1 -0
  231. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -0
  232. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -0
  233. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route_client-reference-manifest.js +1 -0
  234. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -0
  235. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -0
  236. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route_client-reference-manifest.js +1 -0
  237. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -0
  238. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -0
  239. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route_client-reference-manifest.js +1 -0
  240. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -0
  241. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -0
  242. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route_client-reference-manifest.js +1 -0
  243. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -0
  244. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -0
  245. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route_client-reference-manifest.js +1 -0
  246. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  249. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  319. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  321. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  325. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  341. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  362. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  363. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  368. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  376. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  378. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  381. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  385. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  391. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  393. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  397. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  399. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  401. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  403. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  414. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  420. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  426. package/cli/app/.next-cli-build/server/app/callback/page.js +2 -2
  427. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  428. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  429. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  430. package/cli/app/.next-cli-build/server/app/callback.rsc +4 -4
  431. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  432. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  433. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  434. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  435. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  436. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  437. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  438. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +6 -6
  439. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  440. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  441. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  442. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  443. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +6 -6
  444. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  445. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +4 -4
  446. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  447. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  448. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  449. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  450. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  451. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  452. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  453. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  454. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  455. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  456. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  457. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  458. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  459. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  460. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  461. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  462. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  463. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  464. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  465. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  466. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  467. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  468. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  469. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  470. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  471. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  472. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  473. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  474. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  475. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  476. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  477. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  478. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +6 -6
  479. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  480. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  481. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  482. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  483. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +6 -6
  484. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  485. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +4 -4
  486. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  487. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  488. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  489. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  490. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  491. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  492. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  493. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  494. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  495. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  496. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  497. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  498. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  499. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  500. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  501. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  502. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  503. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  504. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  505. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  506. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  507. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  508. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  509. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  510. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  511. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  512. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  513. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  514. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  515. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  516. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  517. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  518. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  519. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +6 -6
  520. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  521. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  522. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  523. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  524. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  525. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  526. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  527. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  528. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  529. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  530. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  531. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  532. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  533. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  534. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  535. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  536. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  537. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  538. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  539. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  540. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  541. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  542. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  543. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  544. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  545. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  546. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  547. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  548. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  549. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  550. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  551. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  552. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  553. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  554. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  555. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  556. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  557. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  558. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  559. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  560. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  561. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  562. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  563. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  564. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  565. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  566. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  567. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  568. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  569. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  570. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  571. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  572. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  573. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  574. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  575. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  576. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  577. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  578. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  579. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  580. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  581. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  582. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  583. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  584. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  585. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  586. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  587. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  588. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  589. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  590. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  591. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  592. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  593. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  594. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  595. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  596. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  597. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  598. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  599. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  600. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  601. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  602. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  603. package/cli/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  604. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  605. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  606. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  607. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  608. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  609. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  610. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  611. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  612. package/cli/app/.next-cli-build/server/app/index.rsc +4 -4
  613. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  614. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  615. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  616. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  617. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  618. package/cli/app/.next-cli-build/server/app/landing/page.js +2 -2
  619. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  620. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  621. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  622. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  623. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  624. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  625. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  626. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  627. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  628. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  629. package/cli/app/.next-cli-build/server/app/login/page.js +2 -2
  630. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  631. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  632. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  633. package/cli/app/.next-cli-build/server/app/login.rsc +5 -5
  634. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  635. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  636. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  637. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  638. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  639. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  640. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  641. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  642. package/cli/app/.next-cli-build/server/app/page.js +2 -2
  643. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  644. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  645. package/cli/app/.next-cli-build/server/app-paths-manifest.json +8 -1
  646. package/cli/app/.next-cli-build/server/chunks/1396.js +1 -1
  647. package/cli/app/.next-cli-build/server/chunks/1939.js +1 -1
  648. package/cli/app/.next-cli-build/server/chunks/2777.js +1 -1
  649. package/cli/app/.next-cli-build/server/chunks/3110.js +2 -2
  650. package/cli/app/.next-cli-build/server/chunks/318.js +2 -2
  651. package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
  652. package/cli/app/.next-cli-build/server/chunks/4404.js +1 -1
  653. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  654. package/cli/app/.next-cli-build/server/chunks/5000.js +1 -1
  655. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  656. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  657. package/cli/app/.next-cli-build/server/chunks/5827.js +1 -0
  658. package/cli/app/.next-cli-build/server/chunks/5949.js +1 -1
  659. package/cli/app/.next-cli-build/server/chunks/6652.js +1 -0
  660. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  661. package/cli/app/.next-cli-build/server/chunks/7153.js +1 -1
  662. package/cli/app/.next-cli-build/server/chunks/7774.js +27 -27
  663. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -0
  664. package/cli/app/.next-cli-build/server/chunks/8895.js +3 -3
  665. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  666. package/cli/app/.next-cli-build/server/chunks/9372.js +1 -0
  667. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  668. package/cli/app/.next-cli-build/server/middleware.js +4 -4
  669. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  670. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  671. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  672. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  673. package/cli/app/.next-cli-build/static/Jh26f1tVQgrKUbeB6pi5A/_buildManifest.js +1 -0
  674. package/cli/app/.next-cli-build/static/chunks/1321-1c8d1bf3bb5f6953.js +1 -0
  675. package/cli/app/.next-cli-build/static/chunks/{5497-15b3dc050a875ba5.js → 5497-f496fb3861cb944d.js} +3 -3
  676. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/page-36dfe0b23bf48d41.js +1 -0
  677. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-41ea0d0c8e98a115.js +3 -0
  678. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-d9a30786a04fb360.js +1 -0
  679. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-47cd0604103a80c1.js +1 -0
  680. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-47cd0604103a80c1.js +1 -0
  681. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-47cd0604103a80c1.js +1 -0
  682. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-47cd0604103a80c1.js +1 -0
  683. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-47cd0604103a80c1.js +1 -0
  684. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-47cd0604103a80c1.js +1 -0
  685. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-47cd0604103a80c1.js +1 -0
  686. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-47cd0604103a80c1.js +1 -0
  687. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-47cd0604103a80c1.js +1 -0
  688. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-47cd0604103a80c1.js +1 -0
  689. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-47cd0604103a80c1.js +1 -0
  690. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-47cd0604103a80c1.js +1 -0
  691. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-47cd0604103a80c1.js +1 -0
  692. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-47cd0604103a80c1.js +1 -0
  693. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-47cd0604103a80c1.js +1 -0
  694. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-47cd0604103a80c1.js +1 -0
  695. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-47cd0604103a80c1.js +1 -0
  696. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-47cd0604103a80c1.js +1 -0
  697. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-47cd0604103a80c1.js +1 -0
  698. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-47cd0604103a80c1.js +1 -0
  699. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-47cd0604103a80c1.js +1 -0
  700. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-47cd0604103a80c1.js +1 -0
  701. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-47cd0604103a80c1.js +1 -0
  702. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-47cd0604103a80c1.js +1 -0
  703. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-47cd0604103a80c1.js +1 -0
  704. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-47cd0604103a80c1.js +1 -0
  705. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-47cd0604103a80c1.js +1 -0
  706. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-47cd0604103a80c1.js +1 -0
  707. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-47cd0604103a80c1.js +1 -0
  708. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-47cd0604103a80c1.js +1 -0
  709. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-47cd0604103a80c1.js +1 -0
  710. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-47cd0604103a80c1.js +1 -0
  711. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-47cd0604103a80c1.js +1 -0
  712. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-47cd0604103a80c1.js +1 -0
  713. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-47cd0604103a80c1.js +1 -0
  714. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-47cd0604103a80c1.js +1 -0
  715. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-47cd0604103a80c1.js +1 -0
  716. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-47cd0604103a80c1.js +1 -0
  717. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-47cd0604103a80c1.js +1 -0
  718. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-47cd0604103a80c1.js +1 -0
  719. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-47cd0604103a80c1.js +1 -0
  720. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-47cd0604103a80c1.js +1 -0
  721. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-47cd0604103a80c1.js +1 -0
  722. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-47cd0604103a80c1.js +1 -0
  723. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-47cd0604103a80c1.js +1 -0
  724. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-47cd0604103a80c1.js +1 -0
  725. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-47cd0604103a80c1.js +1 -0
  726. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-47cd0604103a80c1.js +1 -0
  727. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-47cd0604103a80c1.js +1 -0
  728. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-47cd0604103a80c1.js +1 -0
  729. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-47cd0604103a80c1.js +1 -0
  730. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-47cd0604103a80c1.js +1 -0
  731. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-47cd0604103a80c1.js +1 -0
  732. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-47cd0604103a80c1.js +1 -0
  733. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route-47cd0604103a80c1.js +1 -0
  734. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route-47cd0604103a80c1.js +1 -0
  735. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/route-47cd0604103a80c1.js +1 -0
  736. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/latest/route-47cd0604103a80c1.js +1 -0
  737. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/route-47cd0604103a80c1.js +1 -0
  738. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-47cd0604103a80c1.js +1 -0
  739. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-47cd0604103a80c1.js +1 -0
  740. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-47cd0604103a80c1.js +1 -0
  741. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-47cd0604103a80c1.js +1 -0
  742. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-47cd0604103a80c1.js +1 -0
  743. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-47cd0604103a80c1.js +1 -0
  744. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-47cd0604103a80c1.js +1 -0
  745. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-47cd0604103a80c1.js +1 -0
  746. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-47cd0604103a80c1.js +1 -0
  747. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-47cd0604103a80c1.js +1 -0
  748. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-47cd0604103a80c1.js +1 -0
  749. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-47cd0604103a80c1.js +1 -0
  750. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-47cd0604103a80c1.js +1 -0
  751. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-47cd0604103a80c1.js +1 -0
  752. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-47cd0604103a80c1.js +1 -0
  753. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-47cd0604103a80c1.js +1 -0
  754. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-47cd0604103a80c1.js +1 -0
  755. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-47cd0604103a80c1.js +1 -0
  756. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-47cd0604103a80c1.js +1 -0
  757. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-47cd0604103a80c1.js +1 -0
  758. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-47cd0604103a80c1.js +1 -0
  759. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-47cd0604103a80c1.js +1 -0
  760. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-47cd0604103a80c1.js +1 -0
  761. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-47cd0604103a80c1.js +1 -0
  762. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-47cd0604103a80c1.js +1 -0
  763. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-47cd0604103a80c1.js +1 -0
  764. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-47cd0604103a80c1.js +1 -0
  765. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-47cd0604103a80c1.js +1 -0
  766. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-47cd0604103a80c1.js +1 -0
  767. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-47cd0604103a80c1.js +1 -0
  768. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-47cd0604103a80c1.js +1 -0
  769. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-47cd0604103a80c1.js +1 -0
  770. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-47cd0604103a80c1.js +1 -0
  771. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-47cd0604103a80c1.js +1 -0
  772. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-47cd0604103a80c1.js +1 -0
  773. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-47cd0604103a80c1.js +1 -0
  774. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-47cd0604103a80c1.js +1 -0
  775. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-47cd0604103a80c1.js +1 -0
  776. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-47cd0604103a80c1.js +1 -0
  777. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-47cd0604103a80c1.js +1 -0
  778. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-47cd0604103a80c1.js +1 -0
  779. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-47cd0604103a80c1.js +1 -0
  780. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-47cd0604103a80c1.js +1 -0
  781. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-47cd0604103a80c1.js +1 -0
  782. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-47cd0604103a80c1.js +1 -0
  783. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-47cd0604103a80c1.js +1 -0
  784. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-47cd0604103a80c1.js +1 -0
  785. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-47cd0604103a80c1.js +1 -0
  786. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-47cd0604103a80c1.js +1 -0
  787. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-47cd0604103a80c1.js +1 -0
  788. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-47cd0604103a80c1.js +1 -0
  789. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-47cd0604103a80c1.js +1 -0
  790. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-47cd0604103a80c1.js +1 -0
  791. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-47cd0604103a80c1.js +1 -0
  792. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-47cd0604103a80c1.js +1 -0
  793. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-47cd0604103a80c1.js +1 -0
  794. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-47cd0604103a80c1.js +1 -0
  795. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-47cd0604103a80c1.js +1 -0
  796. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-47cd0604103a80c1.js +1 -0
  797. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-47cd0604103a80c1.js +1 -0
  798. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-47cd0604103a80c1.js +1 -0
  799. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-47cd0604103a80c1.js +1 -0
  800. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-47cd0604103a80c1.js +1 -0
  801. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-47cd0604103a80c1.js +1 -0
  802. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-47cd0604103a80c1.js +1 -0
  803. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-47cd0604103a80c1.js +1 -0
  804. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-47cd0604103a80c1.js +1 -0
  805. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-47cd0604103a80c1.js +1 -0
  806. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-47cd0604103a80c1.js +1 -0
  807. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-47cd0604103a80c1.js +1 -0
  808. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-47cd0604103a80c1.js +1 -0
  809. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-47cd0604103a80c1.js +1 -0
  810. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-47cd0604103a80c1.js +1 -0
  811. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-47cd0604103a80c1.js +1 -0
  812. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-47cd0604103a80c1.js +1 -0
  813. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-47cd0604103a80c1.js +1 -0
  814. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-47cd0604103a80c1.js +1 -0
  815. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-47cd0604103a80c1.js +1 -0
  816. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-47cd0604103a80c1.js +1 -0
  817. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-47cd0604103a80c1.js +1 -0
  818. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-47cd0604103a80c1.js +1 -0
  819. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-47cd0604103a80c1.js +1 -0
  820. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-47cd0604103a80c1.js +1 -0
  821. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-47cd0604103a80c1.js +1 -0
  822. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-47cd0604103a80c1.js +1 -0
  823. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-47cd0604103a80c1.js +1 -0
  824. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-47cd0604103a80c1.js +1 -0
  825. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-47cd0604103a80c1.js +1 -0
  826. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-47cd0604103a80c1.js +1 -0
  827. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-47cd0604103a80c1.js +1 -0
  828. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-47cd0604103a80c1.js +1 -0
  829. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-47cd0604103a80c1.js +1 -0
  830. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-47cd0604103a80c1.js +1 -0
  831. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-47cd0604103a80c1.js +1 -0
  832. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-47cd0604103a80c1.js +1 -0
  833. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-47cd0604103a80c1.js +1 -0
  834. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-47cd0604103a80c1.js +1 -0
  835. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-47cd0604103a80c1.js +1 -0
  836. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-47cd0604103a80c1.js +1 -0
  837. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-47cd0604103a80c1.js +1 -0
  838. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-47cd0604103a80c1.js +1 -0
  839. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-47cd0604103a80c1.js +1 -0
  840. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-47cd0604103a80c1.js +1 -0
  841. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-47cd0604103a80c1.js +1 -0
  842. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-47cd0604103a80c1.js +1 -0
  843. package/cli/app/.next-cli-build/static/chunks/app/page-47cd0604103a80c1.js +1 -0
  844. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-47cd0604103a80c1.js +1 -0
  845. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-47cd0604103a80c1.js +1 -0
  846. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-47cd0604103a80c1.js +1 -0
  847. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-47cd0604103a80c1.js +1 -0
  848. package/cli/app/.next-cli-build/static/css/66603789c5d0bb89.css +1 -0
  849. package/cli/app/package.json +3 -3
  850. package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +40 -13
  851. package/cli/app/src/lib/oauth/services/socksHttpBridge.js +157 -0
  852. package/cli/package.json +1 -1
  853. package/open-sse/config/providerModels.js +32 -1
  854. package/open-sse/config/providers.js +14 -0
  855. package/open-sse/executors/codebuddy-cn.js +31 -0
  856. package/open-sse/executors/index.js +7 -0
  857. package/open-sse/executors/mimo-free.js +156 -0
  858. package/open-sse/handlers/chatCore.js +12 -21
  859. package/open-sse/services/model.js +5 -0
  860. package/open-sse/services/usage.js +76 -24
  861. package/open-sse/utils/stream.js +14 -0
  862. package/open-sse/utils/thinkingSuffix.js +64 -0
  863. package/package.json +3 -3
  864. package/src/app/(dashboard)/dashboard/automation/page.js +153 -1
  865. package/src/app/(dashboard)/dashboard/providers/[id]/ModelRow.js +7 -3
  866. package/src/app/(dashboard)/dashboard/providers/[id]/page.js +17 -16
  867. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +19 -0
  868. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +30 -0
  869. package/src/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +26 -0
  870. package/src/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +27 -0
  871. package/src/app/api/oauth/codebuddy-cn/bulk-import/route.js +61 -0
  872. package/src/app/api/oauth/codebuddy-cn/bulk-token/route.js +119 -0
  873. package/src/app/api/oauth/codebuddy-cn/quota-cookie/route.js +28 -0
  874. package/src/app/api/settings/route.js +11 -2
  875. package/src/lib/db/repos/settingsRepo.js +2 -0
  876. package/src/lib/oauth/services/bulkImportBrowserEngine.js +40 -13
  877. package/src/lib/oauth/services/codebuddyBulkImportManager.js +9 -7
  878. package/src/lib/oauth/services/codebuddyCnBulkImportManager.js +1004 -0
  879. package/src/lib/oauth/services/codebuddyCnPhoneAutomation.js +1029 -0
  880. package/src/lib/oauth/services/fiveSimClient.js +370 -0
  881. package/src/lib/oauth/services/kiroBulkImportManager.js +69 -7
  882. package/src/lib/oauth/services/proxyUtils.js +26 -0
  883. package/src/lib/oauth/services/socksHttpBridge.js +157 -0
  884. package/src/lib/usage/quotaService.js +10 -2
  885. package/src/shared/components/CodeBuddyCnPhoneRegisterModal.js +564 -0
  886. package/src/shared/components/index.js +1 -0
  887. package/src/shared/constants/providers.js +59 -1
  888. package/cli/app/.next-cli-build/server/chunks/7340.js +0 -1
  889. package/cli/app/.next-cli-build/server/chunks/9326.js +0 -1
  890. package/cli/app/.next-cli-build/static/FGw-I-CGGpfd2854oBF1w/_buildManifest.js +0 -1
  891. package/cli/app/.next-cli-build/static/chunks/1321-003c18d34f8bf26a.js +0 -1
  892. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/automation/page-cf7cc045f80cb4b0.js +0 -1
  893. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-00b727c93ebc0e37.js +0 -3
  894. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/layout-54ebc81f294cf670.js +0 -1
  895. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-576986aaa25d6ad2.js +0 -1
  896. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-576986aaa25d6ad2.js +0 -1
  897. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-576986aaa25d6ad2.js +0 -1
  898. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-576986aaa25d6ad2.js +0 -1
  899. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-576986aaa25d6ad2.js +0 -1
  900. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-576986aaa25d6ad2.js +0 -1
  901. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-576986aaa25d6ad2.js +0 -1
  902. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-576986aaa25d6ad2.js +0 -1
  903. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-576986aaa25d6ad2.js +0 -1
  904. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-576986aaa25d6ad2.js +0 -1
  905. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-576986aaa25d6ad2.js +0 -1
  906. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-576986aaa25d6ad2.js +0 -1
  907. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-576986aaa25d6ad2.js +0 -1
  908. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-576986aaa25d6ad2.js +0 -1
  909. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-576986aaa25d6ad2.js +0 -1
  910. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-576986aaa25d6ad2.js +0 -1
  911. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-576986aaa25d6ad2.js +0 -1
  912. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-576986aaa25d6ad2.js +0 -1
  913. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-576986aaa25d6ad2.js +0 -1
  914. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-576986aaa25d6ad2.js +0 -1
  915. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-576986aaa25d6ad2.js +0 -1
  916. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-576986aaa25d6ad2.js +0 -1
  917. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-576986aaa25d6ad2.js +0 -1
  918. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-576986aaa25d6ad2.js +0 -1
  919. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-576986aaa25d6ad2.js +0 -1
  920. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-576986aaa25d6ad2.js +0 -1
  921. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-576986aaa25d6ad2.js +0 -1
  922. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-576986aaa25d6ad2.js +0 -1
  923. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-576986aaa25d6ad2.js +0 -1
  924. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-576986aaa25d6ad2.js +0 -1
  925. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-576986aaa25d6ad2.js +0 -1
  926. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-576986aaa25d6ad2.js +0 -1
  927. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-576986aaa25d6ad2.js +0 -1
  928. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-576986aaa25d6ad2.js +0 -1
  929. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-576986aaa25d6ad2.js +0 -1
  930. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-576986aaa25d6ad2.js +0 -1
  931. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-576986aaa25d6ad2.js +0 -1
  932. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-576986aaa25d6ad2.js +0 -1
  933. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-576986aaa25d6ad2.js +0 -1
  934. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-576986aaa25d6ad2.js +0 -1
  935. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-576986aaa25d6ad2.js +0 -1
  936. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-576986aaa25d6ad2.js +0 -1
  937. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-576986aaa25d6ad2.js +0 -1
  938. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-576986aaa25d6ad2.js +0 -1
  939. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-576986aaa25d6ad2.js +0 -1
  940. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-576986aaa25d6ad2.js +0 -1
  941. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-576986aaa25d6ad2.js +0 -1
  942. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-576986aaa25d6ad2.js +0 -1
  943. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-576986aaa25d6ad2.js +0 -1
  944. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-576986aaa25d6ad2.js +0 -1
  945. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-576986aaa25d6ad2.js +0 -1
  946. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-576986aaa25d6ad2.js +0 -1
  947. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-576986aaa25d6ad2.js +0 -1
  948. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-576986aaa25d6ad2.js +0 -1
  949. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route-576986aaa25d6ad2.js +0 -1
  950. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route-576986aaa25d6ad2.js +0 -1
  951. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/[jobId]/route-576986aaa25d6ad2.js +0 -1
  952. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/latest/route-576986aaa25d6ad2.js +0 -1
  953. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/autoclaw/bulk-import/route-576986aaa25d6ad2.js +0 -1
  954. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-576986aaa25d6ad2.js +0 -1
  955. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-576986aaa25d6ad2.js +0 -1
  956. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-576986aaa25d6ad2.js +0 -1
  957. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-576986aaa25d6ad2.js +0 -1
  958. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-576986aaa25d6ad2.js +0 -1
  959. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-576986aaa25d6ad2.js +0 -1
  960. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-576986aaa25d6ad2.js +0 -1
  961. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-576986aaa25d6ad2.js +0 -1
  962. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-576986aaa25d6ad2.js +0 -1
  963. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-576986aaa25d6ad2.js +0 -1
  964. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-576986aaa25d6ad2.js +0 -1
  965. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-576986aaa25d6ad2.js +0 -1
  966. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-576986aaa25d6ad2.js +0 -1
  967. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-576986aaa25d6ad2.js +0 -1
  968. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-576986aaa25d6ad2.js +0 -1
  969. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-576986aaa25d6ad2.js +0 -1
  970. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-576986aaa25d6ad2.js +0 -1
  971. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-576986aaa25d6ad2.js +0 -1
  972. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-576986aaa25d6ad2.js +0 -1
  973. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-576986aaa25d6ad2.js +0 -1
  974. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-576986aaa25d6ad2.js +0 -1
  975. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-576986aaa25d6ad2.js +0 -1
  976. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-576986aaa25d6ad2.js +0 -1
  977. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-576986aaa25d6ad2.js +0 -1
  978. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-576986aaa25d6ad2.js +0 -1
  979. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-576986aaa25d6ad2.js +0 -1
  980. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-576986aaa25d6ad2.js +0 -1
  981. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-576986aaa25d6ad2.js +0 -1
  982. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-576986aaa25d6ad2.js +0 -1
  983. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-576986aaa25d6ad2.js +0 -1
  984. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-576986aaa25d6ad2.js +0 -1
  985. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-576986aaa25d6ad2.js +0 -1
  986. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-576986aaa25d6ad2.js +0 -1
  987. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-576986aaa25d6ad2.js +0 -1
  988. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-576986aaa25d6ad2.js +0 -1
  989. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-576986aaa25d6ad2.js +0 -1
  990. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-576986aaa25d6ad2.js +0 -1
  991. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-576986aaa25d6ad2.js +0 -1
  992. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-576986aaa25d6ad2.js +0 -1
  993. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-576986aaa25d6ad2.js +0 -1
  994. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-576986aaa25d6ad2.js +0 -1
  995. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-576986aaa25d6ad2.js +0 -1
  996. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-576986aaa25d6ad2.js +0 -1
  997. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-576986aaa25d6ad2.js +0 -1
  998. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-576986aaa25d6ad2.js +0 -1
  999. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-576986aaa25d6ad2.js +0 -1
  1000. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-576986aaa25d6ad2.js +0 -1
  1001. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-576986aaa25d6ad2.js +0 -1
  1002. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-576986aaa25d6ad2.js +0 -1
  1003. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-576986aaa25d6ad2.js +0 -1
  1004. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-576986aaa25d6ad2.js +0 -1
  1005. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-576986aaa25d6ad2.js +0 -1
  1006. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-576986aaa25d6ad2.js +0 -1
  1007. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-576986aaa25d6ad2.js +0 -1
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-576986aaa25d6ad2.js +0 -1
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-576986aaa25d6ad2.js +0 -1
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-576986aaa25d6ad2.js +0 -1
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-576986aaa25d6ad2.js +0 -1
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-576986aaa25d6ad2.js +0 -1
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-576986aaa25d6ad2.js +0 -1
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-576986aaa25d6ad2.js +0 -1
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-576986aaa25d6ad2.js +0 -1
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-576986aaa25d6ad2.js +0 -1
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-576986aaa25d6ad2.js +0 -1
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-576986aaa25d6ad2.js +0 -1
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-576986aaa25d6ad2.js +0 -1
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-576986aaa25d6ad2.js +0 -1
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-576986aaa25d6ad2.js +0 -1
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-576986aaa25d6ad2.js +0 -1
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-576986aaa25d6ad2.js +0 -1
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-576986aaa25d6ad2.js +0 -1
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-576986aaa25d6ad2.js +0 -1
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-576986aaa25d6ad2.js +0 -1
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-576986aaa25d6ad2.js +0 -1
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-576986aaa25d6ad2.js +0 -1
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-576986aaa25d6ad2.js +0 -1
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-576986aaa25d6ad2.js +0 -1
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-576986aaa25d6ad2.js +0 -1
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-576986aaa25d6ad2.js +0 -1
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-576986aaa25d6ad2.js +0 -1
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-576986aaa25d6ad2.js +0 -1
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-576986aaa25d6ad2.js +0 -1
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-576986aaa25d6ad2.js +0 -1
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-576986aaa25d6ad2.js +0 -1
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-576986aaa25d6ad2.js +0 -1
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-576986aaa25d6ad2.js +0 -1
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-576986aaa25d6ad2.js +0 -1
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-576986aaa25d6ad2.js +0 -1
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-576986aaa25d6ad2.js +0 -1
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-576986aaa25d6ad2.js +0 -1
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-576986aaa25d6ad2.js +0 -1
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-576986aaa25d6ad2.js +0 -1
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-576986aaa25d6ad2.js +0 -1
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-576986aaa25d6ad2.js +0 -1
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-576986aaa25d6ad2.js +0 -1
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-576986aaa25d6ad2.js +0 -1
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-576986aaa25d6ad2.js +0 -1
  1051. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-576986aaa25d6ad2.js +0 -1
  1052. package/cli/app/.next-cli-build/static/chunks/app/page-576986aaa25d6ad2.js +0 -1
  1053. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-576986aaa25d6ad2.js +0 -1
  1054. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-576986aaa25d6ad2.js +0 -1
  1055. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-576986aaa25d6ad2.js +0 -1
  1056. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-576986aaa25d6ad2.js +0 -1
  1057. package/cli/app/.next-cli-build/static/css/6615840a16042b10.css +0 -1
  1058. /package/cli/app/.next-cli-build/static/{FGw-I-CGGpfd2854oBF1w → Jh26f1tVQgrKUbeB6pi5A}/_ssgManifest.js +0 -0
@@ -0,0 +1,1004 @@
1
+ /**
2
+ * CodeBuddy CN (Tencent Cloud Code Assistant) Bulk Import Manager.
3
+ *
4
+ * Extends KiroBulkImportManager to provide bulk phone-number auto-registration
5
+ * for CodeBuddy CN accounts via the 5sim.net SMS verification service.
6
+ *
7
+ * Unlike the global CodeBuddy manager (which uses Google/GSuite login), this
8
+ * manager registers accounts using virtual phone numbers:
9
+ * 1. Order a phone number from 5sim (default region: Hong Kong / +852)
10
+ * 2. Drive Playwright to complete phone registration at www.codebuddy.cn
11
+ * 3. After registration, initiate device-code OAuth in the same session
12
+ * 4. Capture the OAuth token and save the provider connection
13
+ *
14
+ * Token-capture sequencing (key difference from global):
15
+ * The device-code flow is initiated AFTER phone registration completes
16
+ * (the browser must hold a logged-in session before navigating to the
17
+ * device authorization URL).
18
+ */
19
+
20
+ import { randomUUID } from "crypto";
21
+ import {
22
+ KiroBulkImportManager,
23
+ buildLookupResponse,
24
+ createFreshContext,
25
+ createLogEntry,
26
+ clampConcurrency,
27
+ nowIso,
28
+ KIRO_BULK_IMPORT_DEFAULT_CONCURRENCY,
29
+ KIRO_BULK_IMPORT_MAX_CONCURRENCY,
30
+ KIRO_BULK_IMPORT_MIN_CONCURRENCY,
31
+ } from "./kiroBulkImportManager.js";
32
+ import { getProxyPools, getProxyPoolById } from "../../../models/index.js";
33
+ import { getSettings } from "../../localDb.js";
34
+ import { getOptimalWorkerCount, isAutoConcurrencyValue } from "../../systemSpecs.js";
35
+ import { CODEBUDDY_CN_CONFIG } from "../constants/oauth.js";
36
+ import { FiveSimClient, FiveSimTimeoutError } from "./fiveSimClient.js";
37
+ import { runCodeBuddyCnPhoneRegistration } from "./codebuddyCnPhoneAutomation.js";
38
+ import {
39
+ defaultRequestDeviceCode,
40
+ defaultPollForToken,
41
+ fetchCodeBuddyLoginAccount,
42
+ } from "./codebuddyBulkImportManager.js";
43
+
44
+ const CODEBUDDY_CN_PROVIDER_ID = "codebuddy-cn";
45
+ const CODEBUDDY_CN_LABEL = "CodeBuddy CN";
46
+ const CODEBUDDY_CN_DOMAIN = "www.codebuddy.cn";
47
+
48
+ // Override default concurrency to 2 (5sim rating system — keep buys conservative)
49
+ const CODEBUDDY_CN_DEFAULT_CONCURRENCY = 2;
50
+ const CODEBUDDY_CN_MAX_CONCURRENCY = 8;
51
+ const CODEBUDDY_CN_MIN_CONCURRENCY = 1;
52
+
53
+ // Cap on count per job (bound cost/rate)
54
+ const CODEBUDDY_CN_MAX_COUNT = 200;
55
+
56
+ // Device-code poll timeout (15 min — same as global)
57
+ const CODEBUDDY_CN_POLL_TIMEOUT_MS = 15 * 60_000;
58
+
59
+ // SMS OTP timeout — if no SMS code arrives within 90s, ban the number immediately.
60
+ // 90s = 60s target + 30s buffer for automation overhead (navigate, select country,
61
+ // input phone, click send code takes ~15-20s before SMS is actually requested).
62
+ const CODEBUDDY_CN_SMS_TIMEOUT_MS = 90_000;
63
+
64
+ // Supported 5sim regions
65
+ const SUPPORTED_REGIONS = new Set(["hongkong", "china", "any"]);
66
+ const DEFAULT_REGION = "hongkong";
67
+
68
+ // Hard rule: each account buys exactly ONE 5sim number.
69
+ // No prefix cancel/re-order loops — those burned balance when inventory
70
+ // returned non-[52,54,57] prefixes (historically up to 15 buys per account).
71
+
72
+ /**
73
+ * Default phone formatter: strip the leading "+" for forms that expect
74
+ * the number without the international prefix symbol.
75
+ * The form may want just digits or the local portion; this can be overridden
76
+ * via the `phoneFormatter` constructor option.
77
+ */
78
+ function defaultPhoneFormatter(phone) {
79
+ // 5sim returns "+852XXXXXXXX" — keep the full E.164 format; the automation
80
+ // module's parsePhoneNumber() will split it into country code + local number.
81
+ return String(phone || "").trim();
82
+ }
83
+
84
+ function clampCnConcurrency(value) {
85
+ if (isAutoConcurrencyValue(value)) {
86
+ const optimal = getOptimalWorkerCount();
87
+ return Math.min(CODEBUDDY_CN_MAX_CONCURRENCY, Math.max(CODEBUDDY_CN_MIN_CONCURRENCY, optimal));
88
+ }
89
+ const parsed = Number.parseInt(value, 10);
90
+ if (!Number.isFinite(parsed)) return CODEBUDDY_CN_DEFAULT_CONCURRENCY;
91
+ return Math.min(CODEBUDDY_CN_MAX_CONCURRENCY, Math.max(CODEBUDDY_CN_MIN_CONCURRENCY, parsed));
92
+ }
93
+
94
+ /**
95
+ * Save a CodeBuddy CN provider connection to the database.
96
+ */
97
+ async function defaultSaveCodeBuddyCnConnection({ apiKey, phone, region, fiveSimOrderId, account }) {
98
+ const { createProviderConnection } = await import("../../../models/index.js");
99
+
100
+ const providerSpecificData = {
101
+ domain: CODEBUDDY_CN_DOMAIN,
102
+ phoneNumber: phone,
103
+ fiveSimOrderId,
104
+ region,
105
+ automation: "5sim-phone-bulk",
106
+ };
107
+
108
+ const connectionData = {
109
+ provider: CODEBUDDY_CN_PROVIDER_ID,
110
+ // Must be "apikey" (no hyphen) — quotaService only treats that as usage-eligible.
111
+ authType: "apikey",
112
+ apiKey,
113
+ accessToken: apiKey,
114
+ // Prefer name so provider list shows the phone (email alone is often hidden).
115
+ name: phone || `5sim-${fiveSimOrderId}`,
116
+ email: phone || `5sim-${fiveSimOrderId}`,
117
+ providerSpecificData,
118
+ testStatus: "active",
119
+ };
120
+
121
+ const connection = await createProviderConnection(connectionData);
122
+ return { connection };
123
+ }
124
+
125
+ /**
126
+ * CodeBuddy CN Bulk Import Manager.
127
+ *
128
+ * @extends KiroBulkImportManager
129
+ */
130
+ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
131
+ constructor({
132
+ browserLauncher,
133
+ requestDeviceCodeFn = defaultRequestDeviceCode,
134
+ pollToken = defaultPollForToken,
135
+ fetchLoginAccountFn = fetchCodeBuddyLoginAccount,
136
+ saveConnection = defaultSaveCodeBuddyCnConnection,
137
+ fiveSimClientFactory = defaultFiveSimClientFactory,
138
+ phoneAutomation = runCodeBuddyCnPhoneRegistration,
139
+ phoneFormatter = defaultPhoneFormatter,
140
+ pollIntervalMs = CODEBUDDY_CN_CONFIG.pollInterval,
141
+ storageName = "codebuddy-cn-bulk-import",
142
+ } = {}) {
143
+ // Camoufox needs proxy on browser launch (not context-only). Headed small
144
+ // window so operator can watch like other bulk automations (not fullscreen).
145
+ const cnBrowserLauncher = browserLauncher || (async (job) => {
146
+ const { launchBulkImportBrowser } = await import("./bulkImportBrowserEngine.js");
147
+ const proxyUrl = Array.isArray(job?.proxyUrls) && job.proxyUrls.length
148
+ ? job.proxyUrls[0]
149
+ : null;
150
+ return launchBulkImportBrowser({
151
+ engine: job?.engine || "camoufox",
152
+ proxyUrl,
153
+ headless: false,
154
+ windowSize: { width: 900, height: 700 },
155
+ });
156
+ });
157
+ super({ browserLauncher: cnBrowserLauncher, storageName });
158
+ this.requestDeviceCode = requestDeviceCodeFn;
159
+ this.pollToken = pollToken;
160
+ this.fetchLoginAccount = fetchLoginAccountFn;
161
+ this.saveConnection = saveConnection;
162
+ this.fiveSimClientFactory = fiveSimClientFactory;
163
+ this.phoneAutomation = phoneAutomation;
164
+ this.phoneFormatter = phoneFormatter;
165
+ this.pollIntervalMs = pollIntervalMs;
166
+ }
167
+
168
+ /**
169
+ * Override startJob to accept count-based input instead of email:password list.
170
+ *
171
+ * @param {object} opts
172
+ * @param {number} opts.count Number of accounts to register
173
+ * @param {string|number} opts.concurrency
174
+ * @param {string} opts.engine Browser engine (chromium/camoufox)
175
+ * @param {string} opts.proxyPoolMode none|all|single
176
+ * @param {string} [opts.proxyPoolId]
177
+ * @param {string} [opts.region] 5sim region (hongkong|china|any)
178
+ */
179
+ async startJob({ count, concurrency, engine, proxyPoolMode, proxyPoolId, region }) {
180
+ // Validate count
181
+ const countNum = Number.parseInt(count, 10);
182
+ if (!Number.isFinite(countNum) || countNum < 1) {
183
+ throw Object.assign(new Error("At least one account is required (count >= 1)"), {
184
+ error: "At least one account is required (count >= 1)",
185
+ });
186
+ }
187
+ if (countNum > CODEBUDDY_CN_MAX_COUNT) {
188
+ throw Object.assign(new Error(`Count exceeds maximum of ${CODEBUDDY_CN_MAX_COUNT}`), {
189
+ error: `Count exceeds maximum of ${CODEBUDDY_CN_MAX_COUNT}`,
190
+ });
191
+ }
192
+
193
+ // Block concurrent jobs — double Start / overlapping runs = multiple 5sim buys.
194
+ const activeJob = [...this.jobs.values()].find((j) =>
195
+ j && (j.status === "running" || j.status === "queued" || j.status === "needs_manual") && !j.cancelRequested
196
+ );
197
+ if (activeJob) {
198
+ throw Object.assign(
199
+ new Error(`Another CodeBuddy CN job is still active (${activeJob.jobId}). Cancel it or wait before starting again.`),
200
+ { error: `Another CodeBuddy CN job is still active (${activeJob.jobId}). Cancel it or wait before starting again.` },
201
+ );
202
+ }
203
+
204
+ // Validate region
205
+ const resolvedRegion = SUPPORTED_REGIONS.has(region) ? region : DEFAULT_REGION;
206
+
207
+ // Resolve proxy pool URLs for round-robin assignment (copy from base)
208
+ let proxyUrls = [];
209
+ if (proxyPoolMode === "all") {
210
+ const pools = await getProxyPools({ isActive: true });
211
+ proxyUrls = pools.map((p) => p.proxyUrl).filter(Boolean);
212
+ } else if (proxyPoolMode === "single" && proxyPoolId) {
213
+ const pool = await getProxyPoolById(proxyPoolId);
214
+ if (pool?.isActive && pool?.proxyUrl) {
215
+ proxyUrls = [pool.proxyUrl];
216
+ }
217
+ }
218
+
219
+ const jobId = randomUUID();
220
+ const createdAt = nowIso();
221
+ const { normalizeBulkImportEngine } = await import("./bulkImportBrowserEngine.js");
222
+ // Live probe: Camoufox + residential CN proxy is what completes Keycloak login;
223
+ // Chromium more often lands on 账号访问受限 after OTP.
224
+ const resolvedEngine = engine ? normalizeBulkImportEngine(engine) : "camoufox";
225
+
226
+ const job = {
227
+ jobId,
228
+ status: "running",
229
+ concurrency: clampCnConcurrency(concurrency),
230
+ engine: resolvedEngine,
231
+ proxyPoolMode: proxyPoolMode || "none",
232
+ proxyUrls,
233
+ region: resolvedRegion,
234
+ createdAt,
235
+ startedAt: createdAt,
236
+ finishedAt: null,
237
+ error: null,
238
+ cancelRequested: false,
239
+ browser: null,
240
+ nextIndex: 0,
241
+ manualFollowups: new Set(),
242
+ persistPromise: Promise.resolve(),
243
+ lastPreview: null,
244
+ lastPreviewCapturedAt: 0,
245
+ accounts: Array.from({ length: countNum }, (_, index) => ({
246
+ line: index + 1,
247
+ region: resolvedRegion,
248
+ phone: null,
249
+ fiveSimOrderId: null,
250
+ fiveSimActivationId: null,
251
+ proxyUrl: null,
252
+ abortController: new AbortController(),
253
+ status: "queued",
254
+ error: null,
255
+ connectionId: null,
256
+ workerId: null,
257
+ manualSession: null,
258
+ runtimeSession: null,
259
+ currentStep: "queued",
260
+ updatedAt: createdAt,
261
+ logs: [createLogEntry("queued", "Queued and waiting for an available worker")],
262
+ })),
263
+ };
264
+
265
+ this.jobs.set(jobId, job);
266
+ this.latestJobId = jobId;
267
+ await this.persistJobSnapshot(job, { forcePreview: false });
268
+ // Note: we skip persistResumeBlob (encrypted vault) since there are no
269
+ // static credentials to resume — each account gets a fresh 5sim number.
270
+ void this.runJob(jobId);
271
+ return sanitizeCnJob(job);
272
+ }
273
+
274
+ // Base sanitizeJob only keeps email — CN accounts need phone/order fields in API responses.
275
+ getJob(jobId) {
276
+ const job = this.jobs.get(jobId);
277
+ return job ? sanitizeCnJob(job) : null;
278
+ }
279
+
280
+ async getJobWithPreview(jobId) {
281
+ const job = this.jobs.get(jobId);
282
+ if (!job) return null;
283
+ await this.persistJobSnapshot(job, { forcePreview: false });
284
+ return sanitizeCnJob(job, { preview: job.lastPreview || null });
285
+ }
286
+
287
+ /**
288
+ * Override processAccount — the core phone-registration + device-code-token flow.
289
+ */
290
+ async processAccount(job, account, workerId) {
291
+ if (job.cancelRequested || !job.browser) {
292
+ this.finalizeAccount(account, "cancelled", { error: "Job cancelled" });
293
+ return;
294
+ }
295
+
296
+ let fiveSimClient = null;
297
+ let fiveSimOrderId = null;
298
+ let smsReceived = false;
299
+ let context = null;
300
+
301
+ try {
302
+ // Step 1: Get 5sim API key from settings
303
+ this.setAccountStep(account, "reading_settings", "Reading 5sim API key from settings");
304
+ await this.persistJobSnapshot(job, { forcePreview: true });
305
+
306
+ const settings = await getSettings();
307
+ const fiveSimApiKey = settings.fiveSimApiKey;
308
+ if (!fiveSimApiKey || !fiveSimApiKey.trim()) {
309
+ this.finalizeAccount(account, "failed", {
310
+ error: "5sim API key not configured. Set it in the automation modal or dashboard settings.",
311
+ step: "failed",
312
+ message: "5sim API key not configured",
313
+ });
314
+ await this.persistJobSnapshot(job, { forcePreview: true });
315
+ return;
316
+ }
317
+
318
+ // 5sim API must be direct — China residential proxy often cannot reach 5sim.net.
319
+ // Proxy is only for the Playwright browser session (codebuddy.cn geo).
320
+ fiveSimClient = this.fiveSimClientFactory({ apiKey: fiveSimApiKey, proxyOptions: null });
321
+
322
+ // Step 2: Create browser context FIRST — if proxy/browser fails, we never buy a number.
323
+ this.setAccountStep(account, "creating_browser", "Creating browser context (before 5sim order)");
324
+ await this.persistJobSnapshot(job, { forcePreview: true });
325
+ const freshContext = await createFreshContext(job.browser, account.proxyUrl);
326
+ context = freshContext.context;
327
+ const page = freshContext.page;
328
+ account.runtimeSession = { context, page };
329
+
330
+ if (job.cancelRequested) {
331
+ throw new Error("Job cancelled before ordering phone number");
332
+ }
333
+
334
+ // Step 3–5: Navigate form FIRST, then buy number, then poll SMS after send-code.
335
+ // This prevents the two balance-burners:
336
+ // 1) Order then fail on proxy/nav → wasted number
337
+ // 2) Start 90s SMS timer before send-code → false sms_timeout after slow nav
338
+ this.setAccountStep(account, "registering", "Running phone registration on CodeBuddy CN");
339
+ await this.persistJobSnapshot(job, { forcePreview: true });
340
+
341
+ const automationResult = await this.phoneAutomation({
342
+ page,
343
+ resolvePhone: async () => {
344
+ if (job.cancelRequested) {
345
+ throw new Error("Job cancelled before ordering phone number");
346
+ }
347
+ this.setAccountStep(
348
+ account,
349
+ "ordering_number",
350
+ `Form ready — ordering ${job.region} phone from 5sim (single buy)`,
351
+ );
352
+ await this.persistJobSnapshot(job, { forcePreview: true });
353
+
354
+ const numberData = await fiveSimClient.buyNumber({
355
+ country: job.region,
356
+ product: "codebuddy",
357
+ allowProductFallback: false,
358
+ });
359
+ fiveSimOrderId = numberData.id;
360
+ account.phone = numberData.phone;
361
+ account.fiveSimOrderId = numberData.id;
362
+ account.fiveSimActivationId = numberData.id;
363
+ this.setAccountStep(
364
+ account,
365
+ "number_ordered",
366
+ `Phone number ordered: ${numberData.phone} (1 buy, no re-order)`,
367
+ );
368
+ await this.persistJobSnapshot(job, { forcePreview: true });
369
+ return numberData.phone;
370
+ },
371
+ waitForSms: async () => {
372
+ if (!fiveSimOrderId) {
373
+ throw new Error("Cannot poll SMS — no 5sim order id");
374
+ }
375
+ this.setAccountStep(
376
+ account,
377
+ "sms_poll_started",
378
+ `SMS poll started (full ${CODEBUDDY_CN_SMS_TIMEOUT_MS / 1000}s window after send-code)`,
379
+ );
380
+ await this.persistJobSnapshot(job, { forcePreview: false });
381
+ const code = await fiveSimClient.pollCode(fiveSimOrderId, {
382
+ timeoutMs: CODEBUDDY_CN_SMS_TIMEOUT_MS,
383
+ signal: account.abortController?.signal,
384
+ });
385
+ smsReceived = true;
386
+ return code;
387
+ },
388
+ onStep: (step, message) => {
389
+ this.setAccountStep(account, step, message);
390
+ void this.persistJobSnapshot(job, { forcePreview: false });
391
+ },
392
+ phoneFormatter: this.phoneFormatter,
393
+ });
394
+
395
+ // Step 6: Try API key capture only if automation reached at least the submit step.
396
+ // If automation failed early (e.g. page.goto timeout), the session won't be logged in
397
+ // and API key creation will 401 — so don't waste time. Only try bypass if automation
398
+ // reported "success" or "needs_manual" (meaning submit happened).
399
+ if (automationResult.status === "failed") {
400
+ // Automation failed before submit — no point trying API key
401
+ const errorMsg = automationResult.error || "Phone registration failed before submit";
402
+ this.finalizeAccount(account, "failed", {
403
+ error: errorMsg,
404
+ step: "failed",
405
+ message: errorMsg,
406
+ });
407
+ // Only touch 5sim if we actually bought a number (order is deferred until form ready)
408
+ if (fiveSimClient && fiveSimOrderId) {
409
+ if (smsReceived) {
410
+ await fiveSimClient.finishOrder(fiveSimOrderId);
411
+ } else {
412
+ await fiveSimClient.cancelOrder(fiveSimOrderId);
413
+ }
414
+ }
415
+ account.runtimeSession = null;
416
+ await context.close().catch(() => null);
417
+ await this.persistJobSnapshot(job, { forcePreview: true });
418
+ return;
419
+ }
420
+
421
+ // Automation reached submit (success or needs_manual) — try API key bypass
422
+ await this.captureApiKey(job, account, context, page, fiveSimClient, fiveSimOrderId);
423
+ return;
424
+ } catch (error) {
425
+ // SMS timeout (60s, no OTP) → BAN the number (bad number that doesn't receive CodeBuddy SMS)
426
+ const isSmsTimeout = error instanceof FiveSimTimeoutError;
427
+ const failReason = isSmsTimeout
428
+ ? `SMS OTP not received within ${CODEBUDDY_CN_SMS_TIMEOUT_MS / 1000}s — number banned`
429
+ : (error.message || "Unexpected CodeBuddy CN bulk import failure");
430
+
431
+ this.finalizeAccount(account, "failed", {
432
+ error: failReason,
433
+ step: isSmsTimeout ? "sms_timeout" : "failed",
434
+ message: failReason,
435
+ });
436
+ // 5sim hygiene on error
437
+ if (fiveSimClient && fiveSimOrderId) {
438
+ if (smsReceived) {
439
+ await fiveSimClient.finishOrder(fiveSimOrderId);
440
+ } else if (isSmsTimeout) {
441
+ // BAN: number didn't receive CodeBuddy SMS within 60s — it's a bad/burned number
442
+ await fiveSimClient.banOrder(fiveSimOrderId);
443
+ } else {
444
+ await fiveSimClient.cancelOrder(fiveSimOrderId);
445
+ }
446
+ }
447
+ account.runtimeSession = null;
448
+ if (context) await context.close().catch(() => null);
449
+ await this.persistJobSnapshot(job, { forcePreview: true });
450
+ }
451
+ }
452
+
453
+ /**
454
+ * Complete the device-code OAuth capture after phone registration succeeds.
455
+ *
456
+ * Steps 7-12: request device code → navigate to authUrl → poll token → save.
457
+ */
458
+ /**
459
+ * Capture API key after phone registration succeeds.
460
+ *
461
+ * The browser is now logged in to codebuddy.cn. Navigate to /profile/keys
462
+ * and POST to /console/api/client/v1/api-keys to create an API key.
463
+ * Save the key as a provider connection.
464
+ */
465
+ async captureApiKey(job, account, context, page, fiveSimClient, fiveSimOrderId) {
466
+ const PERSONAL_ENTERPRISE_ID = "personal-edition-user-id";
467
+
468
+ try {
469
+ // Functional session establishment — do NOT hard-require KEYCLOAK_IDENTITY.
470
+ // Live failures show OTP can succeed with AUTH_SESSION_ID + session + qcloud_uid
471
+ // while KEYCLOAK_IDENTITY never appears (mid-OIDC). What matters is whether
472
+ // /console/accounts and api-keys accept the browser cookies.
473
+ this.setAccountStep(account, "waiting_session", "Establishing CodeBuddy console session (probe APIs, not just cookies)");
474
+ await this.persistJobSnapshot(job, { forcePreview: true });
475
+
476
+ const cookieSnapshot = async () => {
477
+ const cookies = await context.cookies().catch(() => []);
478
+ return {
479
+ cookies,
480
+ names: new Set(cookies.map((c) => c.name)),
481
+ list: cookies.map((c) => c.name),
482
+ };
483
+ };
484
+
485
+ const hasStrongKeycloak = (names) =>
486
+ names.has("KEYCLOAK_IDENTITY")
487
+ || names.has("KEYCLOAK_SESSION")
488
+ || names.has("KEYCLOAK_IDENTITY_LEGACY")
489
+ || names.has("KEYCLOAK_SESSION_LEGACY");
490
+
491
+ const hasSoftSession = (names) =>
492
+ names.has("AUTH_SESSION_ID")
493
+ || names.has("session")
494
+ || names.has("qcloud_uid")
495
+ || names.has("qcmainCSRFToken");
496
+
497
+ const probeConsoleAccounts = async () => page.evaluate(async () => {
498
+ try {
499
+ const res = await fetch("/console/accounts", {
500
+ credentials: "include",
501
+ headers: {
502
+ Accept: "application/json, text/plain, */*",
503
+ "x-requested-with": "XMLHttpRequest",
504
+ "X-Domain": window.location.hostname || "www.codebuddy.cn",
505
+ },
506
+ });
507
+ const data = await res.json().catch(() => null);
508
+ return { status: res.status, data };
509
+ } catch (error) {
510
+ return { status: 0, error: error?.message || String(error) };
511
+ }
512
+ }).catch(() => null);
513
+
514
+ const extractAccountList = (probe) =>
515
+ probe?.data?.data?.accounts || probe?.data?.accounts || [];
516
+
517
+ // Navigate sequence to finish OIDC handoff when only AUTH_SESSION_ID is present.
518
+ const oIDCNudgePaths = [
519
+ "https://www.codebuddy.cn/",
520
+ "https://www.codebuddy.cn/login/",
521
+ "https://www.codebuddy.cn/console",
522
+ "https://www.codebuddy.cn/profile",
523
+ "https://www.codebuddy.cn/profile/keys",
524
+ ];
525
+
526
+ let accountList = [];
527
+ let accountsProbe = null;
528
+ let sessionReady = false;
529
+
530
+ for (let attempt = 0; attempt < 18; attempt += 1) {
531
+ if (job.cancelRequested) {
532
+ throw new Error("Job cancelled while establishing session");
533
+ }
534
+
535
+ const snap = await cookieSnapshot();
536
+ const strong = hasStrongKeycloak(snap.names);
537
+ const soft = hasSoftSession(snap.names);
538
+
539
+ // Progressive navigation to complete half-finished Keycloak login
540
+ const path = oIDCNudgePaths[Math.min(attempt, oIDCNudgePaths.length - 1)];
541
+ if (attempt === 0 || attempt === 2 || attempt === 5 || attempt === 8 || attempt === 12) {
542
+ this.setAccountStep(
543
+ account,
544
+ "waiting_session",
545
+ `OIDC handoff attempt ${attempt + 1}/18 → ${path} (cookies: ${strong ? "KEYCLOAK" : soft ? "soft-session" : "weak"})`,
546
+ );
547
+ await this.persistJobSnapshot(job, { forcePreview: false });
548
+ await page.goto(path, { waitUntil: "domcontentloaded", timeout: 45_000 }).catch(() => null);
549
+ await page.waitForTimeout(2_500);
550
+
551
+ // If Keycloak login iframe reappears, user session is not complete —
552
+ // don't treat blank SPA as success; keep probing.
553
+ } else {
554
+ await page.waitForTimeout(1_500);
555
+ }
556
+
557
+ // Prefer landing on console for the API probe
558
+ if (attempt >= 3 && !String(page.url() || "").includes("/console")) {
559
+ await page.goto("https://www.codebuddy.cn/console", {
560
+ waitUntil: "domcontentloaded",
561
+ timeout: 45_000,
562
+ }).catch(() => null);
563
+ await page.waitForTimeout(1_500);
564
+ }
565
+
566
+ accountsProbe = await probeConsoleAccounts();
567
+ accountList = extractAccountList(accountsProbe);
568
+ if (accountsProbe?.status === 200 && Array.isArray(accountList) && accountList.length > 0) {
569
+ sessionReady = true;
570
+ this.setAccountStep(
571
+ account,
572
+ "session_ready",
573
+ `Console session accepted (HTTP 200, ${accountList.length} account(s)${strong ? ", KEYCLOAK ok" : ", soft session"})`,
574
+ );
575
+ await this.persistJobSnapshot(job, { forcePreview: true });
576
+ break;
577
+ }
578
+
579
+ this.setAccountStep(
580
+ account,
581
+ "resolving_enterprise",
582
+ `Console not ready (HTTP ${accountsProbe?.status || 0}) — retry ${attempt + 1}/18`,
583
+ );
584
+ await this.persistJobSnapshot(job, { forcePreview: false });
585
+ }
586
+
587
+ if (!sessionReady || !Array.isArray(accountList) || accountList.length === 0) {
588
+ const snap = await cookieSnapshot();
589
+ throw new Error(
590
+ `Console accounts unavailable after login (HTTP ${accountsProbe?.status || 0}; cookies: ${snap.list.slice(0, 18).join(",") || "(none)"}) — session not accepted for API key`,
591
+ );
592
+ }
593
+
594
+ let userEnterpriseId = PERSONAL_ENTERPRISE_ID;
595
+ const preferred = accountList.find((entry) => entry?.lastLogin) || accountList[0];
596
+ if (preferred?.type && preferred.type !== "personal" && preferred.enterpriseId) {
597
+ userEnterpriseId = preferred.enterpriseId;
598
+ }
599
+
600
+ // Create API key — CN requires user_enterprise_id (400 code 12505 without it).
601
+ this.setAccountStep(account, "creating_api_key", `Creating API key (enterprise=${userEnterpriseId})`);
602
+ await this.persistJobSnapshot(job, { forcePreview: true });
603
+
604
+ const createKeyOnPage = async (enterpriseId) => page.evaluate(async ({ enterpriseId: entId }) => {
605
+ const res = await fetch("/console/api/client/v1/api-keys", {
606
+ method: "POST",
607
+ credentials: "include",
608
+ headers: {
609
+ "Content-Type": "application/json",
610
+ Accept: "application/json, text/plain, */*",
611
+ "x-requested-with": "XMLHttpRequest",
612
+ "X-Domain": window.location.hostname || "www.codebuddy.cn",
613
+ "X-Product": "SaaS",
614
+ },
615
+ body: JSON.stringify({
616
+ name: `zevai-router-${Date.now()}`,
617
+ expire_in_days: 365,
618
+ user_enterprise_id: entId,
619
+ }),
620
+ });
621
+ const data = await res.json().catch(() => null);
622
+ return { ok: res.ok, status: res.status, data };
623
+ }, { enterpriseId });
624
+
625
+ let apiKeyResult = await createKeyOnPage(userEnterpriseId).catch(() => null);
626
+
627
+ // Retry from keys page if console path was not enough.
628
+ if (!apiKeyResult || !apiKeyResult.ok) {
629
+ this.setAccountStep(account, "retrying_api_key", "Retrying API key creation from profile/keys");
630
+ await this.persistJobSnapshot(job, { forcePreview: true });
631
+ await page.goto("https://www.codebuddy.cn/profile/keys", {
632
+ waitUntil: "domcontentloaded",
633
+ timeout: 45_000,
634
+ }).catch(() => null);
635
+ await page.waitForTimeout(2_500);
636
+ apiKeyResult = await createKeyOnPage(userEnterpriseId).catch(() => null);
637
+ }
638
+
639
+ // Last resort: personal edition id explicitly.
640
+ if ((!apiKeyResult || !apiKeyResult.ok) && userEnterpriseId !== PERSONAL_ENTERPRISE_ID) {
641
+ apiKeyResult = await createKeyOnPage(PERSONAL_ENTERPRISE_ID).catch(() => null);
642
+ }
643
+
644
+ // One more full nudge cycle if key creation returned 401/403 (session half-baked)
645
+ const status = apiKeyResult?.status;
646
+ if (!apiKeyResult?.ok && (status === 401 || status === 403 || status === 0 || !apiKeyResult)) {
647
+ this.setAccountStep(account, "retrying_api_key", "API key 401/403 — re-running OIDC handoff then retry");
648
+ await this.persistJobSnapshot(job, { forcePreview: true });
649
+ for (const path of ["https://www.codebuddy.cn/login/", "https://www.codebuddy.cn/", "https://www.codebuddy.cn/console", "https://www.codebuddy.cn/profile/keys"]) {
650
+ await page.goto(path, { waitUntil: "domcontentloaded", timeout: 45_000 }).catch(() => null);
651
+ await page.waitForTimeout(2_000);
652
+ }
653
+ apiKeyResult = await createKeyOnPage(PERSONAL_ENTERPRISE_ID).catch(() => null);
654
+ }
655
+
656
+ const businessCode = apiKeyResult?.data?.code;
657
+ const businessOk = businessCode === 0 || businessCode === 200 || typeof businessCode === "undefined";
658
+ if (!apiKeyResult || !apiKeyResult.ok || !apiKeyResult.data || !businessOk) {
659
+ throw new Error(
660
+ `API key creation failed (HTTP ${apiKeyResult?.status ?? "no-response"}, code=${businessCode ?? "n/a"}): ${JSON.stringify(apiKeyResult?.data ?? null).slice(0, 200)}`,
661
+ );
662
+ }
663
+
664
+ // Extract the API key from the response — CodeBuddy wraps secrets under data.*
665
+ const payload = apiKeyResult.data?.data || apiKeyResult.data;
666
+ const apiKey =
667
+ payload?.apiKey ||
668
+ payload?.key ||
669
+ payload?.token ||
670
+ payload?.secret ||
671
+ payload?.api_key ||
672
+ (typeof payload === "string" ? payload : null) ||
673
+ apiKeyResult.data.apiKey ||
674
+ apiKeyResult.data.key ||
675
+ apiKeyResult.data.token ||
676
+ apiKeyResult.data.secret;
677
+
678
+ if (!apiKey || typeof apiKey !== "string") {
679
+ throw new Error(
680
+ `API key response did not contain a key field: ${JSON.stringify(apiKeyResult.data).slice(0, 300)}`,
681
+ );
682
+ }
683
+
684
+ this.setAccountStep(account, "api_key_created", `API key created successfully`);
685
+ await this.persistJobSnapshot(job, { forcePreview: true });
686
+
687
+ // Step 9: Save connection
688
+ this.setAccountStep(account, "saving_connection", "Saving CodeBuddy CN connection");
689
+ await this.persistJobSnapshot(job, { forcePreview: true });
690
+
691
+ const { connection } = await this.saveConnection({
692
+ apiKey,
693
+ phone: account.phone,
694
+ region: account.region,
695
+ fiveSimOrderId,
696
+ account,
697
+ });
698
+
699
+ // Step 10: Finish 5sim order + finalize
700
+ await fiveSimClient.finishOrder(fiveSimOrderId);
701
+
702
+ this.finalizeAccount(account, "success", {
703
+ connectionId: connection.id,
704
+ step: "connection_saved",
705
+ message: `CodeBuddy CN connection saved (phone: ${account.phone})`,
706
+ });
707
+ account.runtimeSession = null;
708
+ await context.close().catch(() => null);
709
+ await this.persistJobSnapshot(job, { forcePreview: true });
710
+ } catch (error) {
711
+ // If API key capture fails after registration, the account is registered
712
+ // but we don't have a key. Surface as needs_manual so the operator can
713
+ // create the key manually in the opened browser — number is NOT re-bought.
714
+ this.finalizeAccount(account, "needs_manual", {
715
+ error: `Registration succeeded but API key capture failed: ${error.message}`,
716
+ step: "awaiting_manual",
717
+ message: `Registration done, API key capture failed: ${error.message}`,
718
+ });
719
+ // The 5sim order was successful (SMS received) — finish it (no re-order)
720
+ await fiveSimClient.finishOrder(fiveSimOrderId).catch(() => null);
721
+ await this.persistJobSnapshot(job, { forcePreview: true });
722
+
723
+ // Start manual followup for API key capture (reuse same browser session)
724
+ await this.runCnManualFollowup(job, account, account.workerId, context, page, fiveSimClient, fiveSimOrderId);
725
+ }
726
+ }
727
+
728
+ /**
729
+ * Manual followup — operator completes registration/captcha/API-key creation in a
730
+ * headed browser. We wait for the operator to finish, then try to capture the API key.
731
+ */
732
+ async runCnManualFollowup(job, account, workerId, context, page, fiveSimClient, fiveSimOrderId) {
733
+ const followupPromise = (async () => {
734
+ const closeManualResources = async () => {
735
+ const ms = account.manualSession;
736
+ const ctx = ms?.context || context;
737
+ const headed = ms?.headedBrowser || null;
738
+ if (ctx) await ctx.close().catch(() => null);
739
+ if (headed) await headed.close().catch(() => null);
740
+ };
741
+
742
+ try {
743
+ this.setAccountStep(account, "manual_waiting", "Waiting for operator to complete in headed browser");
744
+ await this.persistJobSnapshot(job, { forcePreview: true });
745
+
746
+ // Wait for the operator to complete — poll for the API keys page being loaded
747
+ // and an API key being available. Give them up to 15 minutes.
748
+ const deadline = Date.now() + 15 * 60_000;
749
+ let apiKey = null;
750
+
751
+ while (Date.now() < deadline && !job.cancelRequested) {
752
+ await new Promise((r) => setTimeout(r, 10_000)); // Check every 10s
753
+
754
+ // Check if the operator has navigated to the keys page and we can create a key
755
+ try {
756
+ const currentUrl = page.url();
757
+ if (!currentUrl.includes("codebuddy.cn")) continue;
758
+
759
+ // Try to create an API key via the console API (include enterprise id)
760
+ const result = await page.evaluate(async () => {
761
+ const res = await fetch("/console/api/client/v1/api-keys", {
762
+ method: "POST",
763
+ headers: {
764
+ "Content-Type": "application/json",
765
+ Accept: "application/json, text/plain, */*",
766
+ "x-requested-with": "XMLHttpRequest",
767
+ "X-Domain": window.location.hostname || "www.codebuddy.cn",
768
+ "X-Product": "SaaS",
769
+ },
770
+ credentials: "include",
771
+ body: JSON.stringify({
772
+ name: "zevai-router-manual-" + Date.now(),
773
+ expire_in_days: 365,
774
+ user_enterprise_id: "personal-edition-user-id",
775
+ }),
776
+ });
777
+ const data = await res.json().catch(() => null);
778
+ return { ok: res.ok, status: res.status, data };
779
+ });
780
+
781
+ if (result?.ok && result.data) {
782
+ const payload = result.data?.data || result.data;
783
+ apiKey =
784
+ payload?.apiKey ||
785
+ payload?.key ||
786
+ payload?.token ||
787
+ payload?.secret ||
788
+ payload?.api_key ||
789
+ (typeof payload === "string" ? payload : null);
790
+ if (apiKey && typeof apiKey === "string") break;
791
+ }
792
+ } catch {
793
+ // Operator might still be completing — keep waiting
794
+ }
795
+ }
796
+
797
+ if (job.cancelRequested) {
798
+ this.finalizeAccount(account, "cancelled", {
799
+ error: "Job cancelled",
800
+ step: "cancelled",
801
+ message: "Job cancelled while waiting for manual completion",
802
+ });
803
+ await this.persistJobSnapshot(job, { forcePreview: true });
804
+ return;
805
+ }
806
+
807
+ if (!apiKey) {
808
+ throw new Error("Manual assist timed out — could not capture API key");
809
+ }
810
+
811
+ // Save connection
812
+ this.setAccountStep(account, "saving_connection", "Saving CodeBuddy CN connection (manual)");
813
+ await this.persistJobSnapshot(job, { forcePreview: true });
814
+
815
+ const { connection } = await this.saveConnection({
816
+ apiKey,
817
+ phone: account.phone,
818
+ region: account.region,
819
+ fiveSimOrderId,
820
+ account,
821
+ });
822
+
823
+ this.finalizeAccount(account, "success", {
824
+ connectionId: connection.id,
825
+ step: "connection_saved",
826
+ message: `CodeBuddy CN connection saved via manual assist (phone: ${account.phone || "N/A"})`,
827
+ });
828
+ await this.persistJobSnapshot(job, { forcePreview: true });
829
+ } catch (error) {
830
+ if (job.cancelRequested) {
831
+ this.finalizeAccount(account, "cancelled", {
832
+ error: "Job cancelled",
833
+ step: "cancelled",
834
+ message: "Job cancelled while waiting for manual completion",
835
+ });
836
+ } else {
837
+ this.finalizeAccount(account, "failed", {
838
+ error: error.message || "Manual assist flow failed",
839
+ step: "failed",
840
+ message: error.message || "Manual assist flow failed",
841
+ });
842
+ }
843
+ await this.persistJobSnapshot(job, { forcePreview: true });
844
+ } finally {
845
+ await closeManualResources();
846
+ account.manualSession = null;
847
+ account.runtimeSession = null;
848
+ job.manualFollowups.delete(followupPromise);
849
+ await this.persistJobSnapshot(job, { forcePreview: true });
850
+ }
851
+ })();
852
+
853
+ job.manualFollowups.add(followupPromise);
854
+ }
855
+
856
+ /**
857
+ * Override cancelJob to abort in-flight 5sim polls and clean up orders.
858
+ */
859
+ cancelJob(jobId) {
860
+ const job = this.jobs.get(jobId);
861
+ if (!job) return null;
862
+
863
+ job.cancelRequested = true;
864
+
865
+ // Abort in-flight 5sim polls for all running accounts
866
+ for (const account of job.accounts) {
867
+ if (account.abortController && !account.abortController.signal.aborted) {
868
+ account.abortController.abort();
869
+ }
870
+ }
871
+
872
+ if (job.status === "queued") {
873
+ job.status = "cancelled";
874
+ job.finishedAt = nowIso();
875
+ job.accounts.forEach((account) => {
876
+ if (account.status === "queued") account.status = "cancelled";
877
+ });
878
+ }
879
+ return job;
880
+ }
881
+ }
882
+
883
+ // ─── Helpers ──────────────────────────────────────────────────────────────
884
+
885
+ function defaultFiveSimClientFactory({ apiKey, proxyOptions }) {
886
+ return new FiveSimClient({ apiKey, proxyOptions });
887
+ }
888
+
889
+ /**
890
+ * Sanitize a job for API response (strip non-serializable fields like
891
+ * AbortController, runtimeSession, etc.).
892
+ */
893
+ function buildCnSummary(accounts = []) {
894
+ const summary = {
895
+ total: accounts.length,
896
+ queued: 0,
897
+ running: 0,
898
+ completed: 0,
899
+ success: 0,
900
+ failed: 0,
901
+ needs_manual: 0,
902
+ cancelled: 0,
903
+ };
904
+ for (const account of accounts) {
905
+ const status = account.status || "queued";
906
+ if (status === "success") {
907
+ summary.success += 1;
908
+ summary.completed += 1;
909
+ } else if (status === "failed" || status === "failed_exchange") {
910
+ summary.failed += 1;
911
+ summary.completed += 1;
912
+ } else if (status === "needs_manual") {
913
+ summary.needs_manual += 1;
914
+ } else if (status === "cancelled") {
915
+ summary.cancelled += 1;
916
+ summary.completed += 1;
917
+ } else if (status === "running") {
918
+ summary.running += 1;
919
+ } else {
920
+ summary.queued += 1;
921
+ }
922
+ }
923
+ return summary;
924
+ }
925
+
926
+ function sanitizeCnJob(job, extras = {}) {
927
+ if (!job) return null;
928
+ return {
929
+ jobId: job.jobId,
930
+ status: job.status,
931
+ summary: buildCnSummary(job.accounts),
932
+ concurrency: job.concurrency,
933
+ engine: job.engine,
934
+ proxyPoolMode: job.proxyPoolMode,
935
+ region: job.region,
936
+ createdAt: job.createdAt,
937
+ startedAt: job.startedAt,
938
+ finishedAt: job.finishedAt,
939
+ error: job.error,
940
+ cancelRequested: job.cancelRequested,
941
+ accounts: (job.accounts || []).map((account) => ({
942
+ line: account.line,
943
+ region: account.region,
944
+ phone: account.phone,
945
+ fiveSimOrderId: account.fiveSimOrderId,
946
+ proxyUrl: account.proxyUrl ? maskProxyUrl(account.proxyUrl) : null,
947
+ status: account.status,
948
+ error: account.error,
949
+ connectionId: account.connectionId,
950
+ workerId: account.workerId,
951
+ manualSessionAvailable: !!account.manualSession,
952
+ currentStep: account.currentStep,
953
+ updatedAt: account.updatedAt,
954
+ logs: account.logs || [],
955
+ })),
956
+ preview: extras.preview !== undefined ? extras.preview : (job.lastPreview || null),
957
+ ...extras,
958
+ };
959
+ }
960
+
961
+ function maskProxyUrl(url) {
962
+ if (!url) return null;
963
+ try {
964
+ const parsed = new URL(url);
965
+ if (parsed.password) {
966
+ parsed.password = "***";
967
+ }
968
+ return parsed.toString();
969
+ } catch {
970
+ return url;
971
+ }
972
+ }
973
+
974
+ // ─── Singleton ────────────────────────────────────────────────────────────
975
+
976
+ function getSingletonStore() {
977
+ if (!globalThis.__codeBuddyCnBulkImportSingleton) {
978
+ globalThis.__codeBuddyCnBulkImportSingleton = {
979
+ manager: new CodeBuddyCnBulkImportManager(),
980
+ };
981
+ }
982
+ return globalThis.__codeBuddyCnBulkImportSingleton;
983
+ }
984
+
985
+ export function getCodeBuddyCnBulkImportManager() {
986
+ return getSingletonStore().manager;
987
+ }
988
+
989
+ export {
990
+ buildLookupResponse,
991
+ CODEBUDDY_CN_DEFAULT_CONCURRENCY,
992
+ CODEBUDDY_CN_MAX_CONCURRENCY,
993
+ CODEBUDDY_CN_MIN_CONCURRENCY,
994
+ CODEBUDDY_CN_MAX_COUNT,
995
+ SUPPORTED_REGIONS,
996
+ DEFAULT_REGION,
997
+ };
998
+
999
+ export const __test__ = {
1000
+ clampCnConcurrency,
1001
+ sanitizeCnJob,
1002
+ defaultPhoneFormatter,
1003
+ defaultSaveCodeBuddyCnConnection,
1004
+ };