zevairouter 1.0.62 → 1.0.66

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 (401) hide show
  1. package/CHANGELOG.md +36 -8
  2. package/README.md +58 -10
  3. package/README.zh-CN.md +37 -0
  4. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  5. package/cli/app/.next-cli-build/app-path-routes-manifest.json +16 -16
  6. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  35. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  36. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  38. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  39. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  40. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  41. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  42. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  44. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  45. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  46. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  48. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  51. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  55. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  56. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  59. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  61. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  62. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  63. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  64. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  65. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  66. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  67. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  68. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  70. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  72. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  74. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  76. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  109. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  110. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  111. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  112. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  113. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  114. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  115. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  116. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  117. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  118. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  119. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  120. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  121. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  122. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  123. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  124. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  125. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  126. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  127. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  128. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  129. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  130. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  131. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  132. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  133. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  134. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  135. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  136. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  137. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  138. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  139. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  140. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  141. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  142. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  143. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  144. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  145. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  146. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  147. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  148. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  149. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  150. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  151. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  152. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  153. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  154. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  155. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  156. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  157. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  158. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  159. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  160. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  161. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  162. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  163. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  164. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  165. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  166. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  167. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  168. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  169. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  170. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  171. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  172. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  173. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  174. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  175. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  176. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  177. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  178. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  179. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  180. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  181. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  182. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  183. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  184. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  185. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  186. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  187. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  188. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  189. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  190. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  191. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  192. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  193. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  194. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  195. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  196. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  197. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  198. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  199. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  200. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  201. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  202. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  203. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  204. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  205. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  206. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  207. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  208. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  209. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  210. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  211. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  212. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  213. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  214. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  215. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  216. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  217. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  218. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  219. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  220. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  221. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  222. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  223. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  224. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  225. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  226. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  227. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  228. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  229. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  230. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  231. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  232. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  233. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  234. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  235. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  236. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  237. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  238. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  239. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  240. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  241. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  242. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  243. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  244. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  245. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  246. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  247. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  248. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  249. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  250. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  251. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  252. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  253. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  254. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  255. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  256. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  257. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  258. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  259. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  260. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  261. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  262. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  263. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  264. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  265. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  266. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  267. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  268. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  269. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  270. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  272. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  273. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  274. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  275. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  276. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  277. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  278. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  279. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  280. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  281. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  282. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  283. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  284. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  285. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  286. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  287. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  288. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  289. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  290. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  291. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  292. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  293. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  294. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  295. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  296. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  297. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  298. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  299. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  300. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  302. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  303. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  304. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  305. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  306. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  307. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  308. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  309. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  310. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  311. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  312. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  313. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  314. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  315. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  316. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  317. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  318. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  319. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  320. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  321. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  322. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  323. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  324. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  325. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  326. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  327. package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  329. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  330. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  331. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  332. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  333. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  334. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  335. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  336. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  337. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  338. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  339. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  340. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  341. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  342. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  343. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  344. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  345. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  346. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  347. package/cli/app/.next-cli-build/server/app-paths-manifest.json +16 -16
  348. package/cli/app/.next-cli-build/server/chunks/3110.js +1 -1
  349. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  350. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  351. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  352. package/cli/app/.next-cli-build/server/chunks/5949.js +8 -3
  353. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  354. package/cli/app/.next-cli-build/server/chunks/7276.js +1 -1
  355. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -1
  356. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -1
  357. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  358. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  359. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  360. package/cli/app/.next-cli-build/static/chunks/{3702-3049f543449956ae.js → 3702-3772f83d7867a26d.js} +1 -1
  361. package/cli/app/.next-cli-build/static/chunks/app/landing/page-6621ec8b157e77cc.js +1 -0
  362. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  363. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  364. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  365. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  366. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  367. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  368. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  369. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  370. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  371. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  372. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  373. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  374. package/cli/app/cli/hooks/camoufoxRuntime.js +227 -24
  375. package/cli/app/cli/hooks/cloakbrowserRuntime.js +0 -7
  376. package/cli/app/package.json +1 -1
  377. package/cli/app/src/lib/oauth/services/displayEnv.js +134 -0
  378. package/cli/hooks/camoufoxRuntime.js +227 -24
  379. package/cli/hooks/cloakbrowserRuntime.js +0 -7
  380. package/cli/package.json +1 -1
  381. package/i18n/README.ja-JP.md +19 -1191
  382. package/i18n/README.ru.md +19 -1293
  383. package/i18n/README.vi.md +19 -1292
  384. package/i18n/README.zh-CN.md +19 -1288
  385. package/open-sse/config/kiroConstants.js +1 -1
  386. package/package.json +1 -1
  387. package/src/app/landing/components/Features.js +2 -2
  388. package/src/app/landing/components/HeroSection.js +1 -1
  389. package/src/app/landing/components/HowItWorks.js +2 -2
  390. package/src/app/landing/page.js +3 -3
  391. package/src/lib/network/outboundProxy.js +37 -23
  392. package/src/lib/oauth/services/bulkImportBrowserEngine.js +219 -22
  393. package/src/lib/oauth/services/codebuddyCnBulkImportManager.js +161 -72
  394. package/src/lib/oauth/services/codebuddyCnPhoneAutomation.js +171 -45
  395. package/src/lib/oauth/services/kiroBulkImportManager.js +18 -13
  396. package/src/mitm/manager.js +1 -1
  397. package/src/shared/constants/providers.js +4 -4
  398. package/cli/app/.next-cli-build/static/chunks/app/landing/page-77b3f78b93a8d0c7.js +0 -1
  399. package/cli/app/src/lib/oauth/services/bulkImportBrowserEngine.js +0 -325
  400. /package/cli/app/.next-cli-build/static/{4qzgXNlTatuSwREqjg1Tx → 2RSZhfKmiF-DD-v1D0TnS}/_buildManifest.js +0 -0
  401. /package/cli/app/.next-cli-build/static/{4qzgXNlTatuSwREqjg1Tx → 2RSZhfKmiF-DD-v1D0TnS}/_ssgManifest.js +0 -0
@@ -31,7 +31,7 @@ import {
31
31
  } from "./kiroBulkImportManager.js";
32
32
  import { getProxyPools, getProxyPoolById } from "../../../models/index.js";
33
33
  import { getSettings } from "../../localDb.js";
34
- import { getOptimalWorkerCount, isAutoConcurrencyValue } from "../../systemSpecs.js";
34
+ import { getOptimalWorkerCount, getSystemSpecs, isAutoConcurrencyValue } from "../../systemSpecs.js";
35
35
  import { CODEBUDDY_CN_CONFIG } from "../constants/oauth.js";
36
36
  import { FiveSimClient, FiveSimTimeoutError } from "./fiveSimClient.js";
37
37
  import { runCodeBuddyCnPhoneRegistration } from "./codebuddyCnPhoneAutomation.js";
@@ -40,15 +40,18 @@ import {
40
40
  defaultPollForToken,
41
41
  fetchCodeBuddyLoginAccount,
42
42
  } from "./codebuddyBulkImportManager.js";
43
+ import { forceCloseBrowser } from "./bulkImportBrowserEngine.js";
43
44
 
44
45
  const CODEBUDDY_CN_PROVIDER_ID = "codebuddy-cn";
45
46
  const CODEBUDDY_CN_LABEL = "CodeBuddy CN";
46
47
  const CODEBUDDY_CN_DOMAIN = "www.codebuddy.cn";
47
48
 
48
- // Override default concurrency to 2 (5sim rating system keep buys conservative)
49
- const CODEBUDDY_CN_DEFAULT_CONCURRENCY = 2;
49
+ // Default concurrency 1 Camoufox alone can pin a 2GB VPS; multi-worker OOM/hang.
50
+ const CODEBUDDY_CN_DEFAULT_CONCURRENCY = 1;
50
51
  const CODEBUDDY_CN_MAX_CONCURRENCY = 8;
51
52
  const CODEBUDDY_CN_MIN_CONCURRENCY = 1;
53
+ // Hosts under this RAM hard-cap concurrency at 1 (typical cheap VPS = 1.9–2GB).
54
+ const CODEBUDDY_CN_LOW_MEM_GB = 3;
52
55
 
53
56
  // Cap on count per job (bound cost/rate)
54
57
  const CODEBUDDY_CN_MAX_COUNT = 200;
@@ -61,6 +64,13 @@ const CODEBUDDY_CN_POLL_TIMEOUT_MS = 15 * 60_000;
61
64
  // input phone, click send code takes ~15-20s before SMS is actually requested).
62
65
  const CODEBUDDY_CN_SMS_TIMEOUT_MS = 90_000;
63
66
 
67
+ // Hard wall-clock per account (nav + form + SMS + API key). Prevents infinite
68
+ // Camoufox spin when proxy/nav blackholes and Playwright timeouts do not fire.
69
+ const CODEBUDDY_CN_ACCOUNT_HARD_TIMEOUT_MS = Number.parseInt(
70
+ process.env.ZEVAI_CN_ACCOUNT_TIMEOUT_MS || "",
71
+ 10,
72
+ ) || 12 * 60_000;
73
+
64
74
  // Supported 5sim regions
65
75
  const SUPPORTED_REGIONS = new Set(["hongkong", "china", "any"]);
66
76
  const DEFAULT_REGION = "hongkong";
@@ -81,14 +91,26 @@ function defaultPhoneFormatter(phone) {
81
91
  return String(phone || "").trim();
82
92
  }
83
93
 
94
+ function isLowMemHost() {
95
+ try {
96
+ const { totalMemGb } = getSystemSpecs();
97
+ return Number.isFinite(totalMemGb) && totalMemGb > 0 && totalMemGb < CODEBUDDY_CN_LOW_MEM_GB;
98
+ } catch {
99
+ return false;
100
+ }
101
+ }
102
+
84
103
  function clampCnConcurrency(value) {
104
+ const lowMem = isLowMemHost();
105
+ const hardMax = lowMem ? 1 : CODEBUDDY_CN_MAX_CONCURRENCY;
106
+ const def = lowMem ? 1 : CODEBUDDY_CN_DEFAULT_CONCURRENCY;
85
107
  if (isAutoConcurrencyValue(value)) {
86
108
  const optimal = getOptimalWorkerCount();
87
- return Math.min(CODEBUDDY_CN_MAX_CONCURRENCY, Math.max(CODEBUDDY_CN_MIN_CONCURRENCY, optimal));
109
+ return Math.min(hardMax, Math.max(CODEBUDDY_CN_MIN_CONCURRENCY, optimal));
88
110
  }
89
111
  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));
112
+ if (!Number.isFinite(parsed)) return Math.min(hardMax, def);
113
+ return Math.min(hardMax, Math.max(CODEBUDDY_CN_MIN_CONCURRENCY, parsed));
92
114
  }
93
115
 
94
116
  /**
@@ -140,17 +162,23 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
140
162
  pollIntervalMs = CODEBUDDY_CN_CONFIG.pollInterval,
141
163
  storageName = "codebuddy-cn-bulk-import",
142
164
  } = {}) {
143
- // Camoufox needs proxy on browser launch (not context-only). Headed small
144
- // window so operator can watch like other bulk automations (not fullscreen).
165
+ // Camoufox needs proxy on browser launch (not context-only).
166
+ // Linux VPS: default headless to cut RAM/CPU (2GB boxes OOM on headed+Xvfb).
167
+ // Desktop (macOS/Windows): headed so the operator can watch / solve captcha.
168
+ // Override: ZEVAI_CN_HEADLESS=0|1
145
169
  const cnBrowserLauncher = browserLauncher || (async (job) => {
146
170
  const { launchBulkImportBrowser } = await import("./bulkImportBrowserEngine.js");
147
171
  const proxyUrl = Array.isArray(job?.proxyUrls) && job.proxyUrls.length
148
172
  ? job.proxyUrls[0]
149
173
  : null;
174
+ const envHeadless = process.env.ZEVAI_CN_HEADLESS;
175
+ let headless = process.platform === "linux";
176
+ if (envHeadless === "0" || envHeadless === "false") headless = false;
177
+ if (envHeadless === "1" || envHeadless === "true") headless = true;
150
178
  return launchBulkImportBrowser({
151
179
  engine: job?.engine || "camoufox",
152
180
  proxyUrl,
153
- headless: false,
181
+ headless,
154
182
  windowSize: { width: 900, height: 700 },
155
183
  });
156
184
  });
@@ -338,60 +366,94 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
338
366
  this.setAccountStep(account, "registering", "Running phone registration on CodeBuddy CN");
339
367
  await this.persistJobSnapshot(job, { forcePreview: true });
340
368
 
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 });
369
+ // Page-level timeouts so a stuck network never outlives the hard wall-clock.
370
+ try {
371
+ page.setDefaultTimeout(20_000);
372
+ page.setDefaultNavigationTimeout(45_000);
373
+ } catch {
374
+ // older playwright builds may not expose these
375
+ }
353
376
 
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)`,
377
+ const hardTimeoutMs = CODEBUDDY_CN_ACCOUNT_HARD_TIMEOUT_MS;
378
+ let hardTimer = null;
379
+ const hardTimeoutPromise = new Promise((_, reject) => {
380
+ hardTimer = setTimeout(() => {
381
+ reject(
382
+ Object.assign(
383
+ new Error(
384
+ `CodeBuddy CN account hard timeout after ${Math.round(hardTimeoutMs / 1000)}s (browser will be force-closed)`,
385
+ ),
386
+ { code: "CN_ACCOUNT_HARD_TIMEOUT" },
387
+ ),
379
388
  );
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,
389
+ }, hardTimeoutMs);
390
+ if (typeof hardTimer.unref === "function") hardTimer.unref();
393
391
  });
394
392
 
393
+ let automationResult;
394
+ try {
395
+ automationResult = await Promise.race([
396
+ this.phoneAutomation({
397
+ page,
398
+ signal: account.abortController?.signal,
399
+ isCancelled: () => job.cancelRequested === true,
400
+ resolvePhone: async () => {
401
+ if (job.cancelRequested) {
402
+ throw new Error("Job cancelled before ordering phone number");
403
+ }
404
+ this.setAccountStep(
405
+ account,
406
+ "ordering_number",
407
+ `Form ready — ordering ${job.region} phone from 5sim (single buy)`,
408
+ );
409
+ await this.persistJobSnapshot(job, { forcePreview: true });
410
+
411
+ const numberData = await fiveSimClient.buyNumber({
412
+ country: job.region,
413
+ product: "codebuddy",
414
+ allowProductFallback: false,
415
+ });
416
+ fiveSimOrderId = numberData.id;
417
+ account.phone = numberData.phone;
418
+ account.fiveSimOrderId = numberData.id;
419
+ account.fiveSimActivationId = numberData.id;
420
+ this.setAccountStep(
421
+ account,
422
+ "number_ordered",
423
+ `Phone number ordered: ${numberData.phone} (1 buy, no re-order)`,
424
+ );
425
+ await this.persistJobSnapshot(job, { forcePreview: true });
426
+ return numberData.phone;
427
+ },
428
+ waitForSms: async () => {
429
+ if (!fiveSimOrderId) {
430
+ throw new Error("Cannot poll SMS — no 5sim order id");
431
+ }
432
+ this.setAccountStep(
433
+ account,
434
+ "sms_poll_started",
435
+ `SMS poll started (full ${CODEBUDDY_CN_SMS_TIMEOUT_MS / 1000}s window after send-code)`,
436
+ );
437
+ await this.persistJobSnapshot(job, { forcePreview: false });
438
+ const code = await fiveSimClient.pollCode(fiveSimOrderId, {
439
+ timeoutMs: CODEBUDDY_CN_SMS_TIMEOUT_MS,
440
+ signal: account.abortController?.signal,
441
+ });
442
+ smsReceived = true;
443
+ return code;
444
+ },
445
+ onStep: (step, message) => {
446
+ this.setAccountStep(account, step, message);
447
+ void this.persistJobSnapshot(job, { forcePreview: false });
448
+ },
449
+ phoneFormatter: this.phoneFormatter,
450
+ }),
451
+ hardTimeoutPromise,
452
+ ]);
453
+ } finally {
454
+ if (hardTimer) clearTimeout(hardTimer);
455
+ }
456
+
395
457
  // Step 6: Try API key capture only if automation reached at least the submit step.
396
458
  // If automation failed early (e.g. page.goto timeout), the session won't be logged in
397
459
  // and API key creation will 401 — so don't waste time. Only try bypass if automation
@@ -446,6 +508,15 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
446
508
  }
447
509
  account.runtimeSession = null;
448
510
  if (context) await context.close().catch(() => null);
511
+ // Hard timeout / blackhole nav: kill the shared browser so the worker unblocks
512
+ // and Camoufox cannot pin 100% CPU on a 2GB VPS until reboot.
513
+ if (error?.code === "CN_ACCOUNT_HARD_TIMEOUT" || job.cancelRequested) {
514
+ if (job.browser) {
515
+ const b = job.browser;
516
+ job.browser = null;
517
+ await forceCloseBrowser(b).catch(() => null);
518
+ }
519
+ }
449
520
  await this.persistJobSnapshot(job, { forcePreview: true });
450
521
  }
451
522
  }
@@ -527,7 +598,9 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
527
598
  let accountsProbe = null;
528
599
  let sessionReady = false;
529
600
 
530
- for (let attempt = 0; attempt < 18; attempt += 1) {
601
+ // Cap OIDC nudge loop 18 × multi-second waits was too long on 2GB VPS.
602
+ const OIDC_MAX_ATTEMPTS = 8;
603
+ for (let attempt = 0; attempt < OIDC_MAX_ATTEMPTS; attempt += 1) {
531
604
  if (job.cancelRequested) {
532
605
  throw new Error("Job cancelled while establishing session");
533
606
  }
@@ -538,29 +611,29 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
538
611
 
539
612
  // Progressive navigation to complete half-finished Keycloak login
540
613
  const path = oIDCNudgePaths[Math.min(attempt, oIDCNudgePaths.length - 1)];
541
- if (attempt === 0 || attempt === 2 || attempt === 5 || attempt === 8 || attempt === 12) {
614
+ if (attempt === 0 || attempt === 2 || attempt === 4 || attempt === 6) {
542
615
  this.setAccountStep(
543
616
  account,
544
617
  "waiting_session",
545
- `OIDC handoff attempt ${attempt + 1}/18 → ${path} (cookies: ${strong ? "KEYCLOAK" : soft ? "soft-session" : "weak"})`,
618
+ `OIDC handoff attempt ${attempt + 1}/${OIDC_MAX_ATTEMPTS} → ${path} (cookies: ${strong ? "KEYCLOAK" : soft ? "soft-session" : "weak"})`,
546
619
  );
547
620
  await this.persistJobSnapshot(job, { forcePreview: false });
548
- await page.goto(path, { waitUntil: "domcontentloaded", timeout: 45_000 }).catch(() => null);
549
- await page.waitForTimeout(2_500);
621
+ await page.goto(path, { waitUntil: "domcontentloaded", timeout: 25_000 }).catch(() => null);
622
+ await page.waitForTimeout(1_500);
550
623
 
551
624
  // If Keycloak login iframe reappears, user session is not complete —
552
625
  // don't treat blank SPA as success; keep probing.
553
626
  } else {
554
- await page.waitForTimeout(1_500);
627
+ await page.waitForTimeout(1_000);
555
628
  }
556
629
 
557
630
  // Prefer landing on console for the API probe
558
- if (attempt >= 3 && !String(page.url() || "").includes("/console")) {
631
+ if (attempt >= 2 && !String(page.url() || "").includes("/console")) {
559
632
  await page.goto("https://www.codebuddy.cn/console", {
560
633
  waitUntil: "domcontentloaded",
561
- timeout: 45_000,
634
+ timeout: 25_000,
562
635
  }).catch(() => null);
563
- await page.waitForTimeout(1_500);
636
+ await page.waitForTimeout(1_000);
564
637
  }
565
638
 
566
639
  accountsProbe = await probeConsoleAccounts();
@@ -579,7 +652,7 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
579
652
  this.setAccountStep(
580
653
  account,
581
654
  "resolving_enterprise",
582
- `Console not ready (HTTP ${accountsProbe?.status || 0}) — retry ${attempt + 1}/18`,
655
+ `Console not ready (HTTP ${accountsProbe?.status || 0}) — retry ${attempt + 1}/${OIDC_MAX_ATTEMPTS}`,
583
656
  );
584
657
  await this.persistJobSnapshot(job, { forcePreview: false });
585
658
  }
@@ -854,7 +927,8 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
854
927
  }
855
928
 
856
929
  /**
857
- * Override cancelJob to abort in-flight 5sim polls and clean up orders.
930
+ * Override cancelJob to abort in-flight 5sim polls AND force-close the browser.
931
+ * Previous CN override only aborted controllers — Camoufox kept spinning (VPS hang).
858
932
  */
859
933
  cancelJob(jobId) {
860
934
  const job = this.jobs.get(jobId);
@@ -862,11 +936,24 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
862
936
 
863
937
  job.cancelRequested = true;
864
938
 
865
- // Abort in-flight 5sim polls for all running accounts
939
+ // Abort in-flight 5sim polls + close per-account contexts
866
940
  for (const account of job.accounts) {
867
941
  if (account.abortController && !account.abortController.signal.aborted) {
868
942
  account.abortController.abort();
869
943
  }
944
+ const ctx = account.runtimeSession?.context;
945
+ if (ctx) {
946
+ void ctx.close().catch(() => null);
947
+ }
948
+ account.runtimeSession = null;
949
+ account.manualSession = null;
950
+ }
951
+
952
+ // CRITICAL: force-kill Camoufox/Chromium. Graceful close alone hangs when nav is stuck.
953
+ if (job.browser) {
954
+ const browser = job.browser;
955
+ job.browser = null;
956
+ void forceCloseBrowser(browser).catch(() => null);
870
957
  }
871
958
 
872
959
  if (job.status === "queued") {
@@ -876,7 +963,9 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
876
963
  if (account.status === "queued") account.status = "cancelled";
877
964
  });
878
965
  }
879
- return job;
966
+
967
+ void this.persistJobSnapshot(job, { forcePreview: true });
968
+ return sanitizeCnJob(job);
880
969
  }
881
970
  }
882
971