zevairouter 1.0.111 → 1.0.113

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 (676) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +6 -6
  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/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  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.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  59. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  61. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  62. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  63. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  64. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  66. package/cli/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  68. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  69. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  71. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  72. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  73. package/cli/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  74. package/cli/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  75. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  77. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  105. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  113. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  117. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  119. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  121. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  123. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -17
  284. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -17
  286. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -17
  288. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -18
  290. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -17
  292. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  310. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  359. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  360. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  361. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  362. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  363. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  364. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  365. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  366. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  367. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  368. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  369. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  370. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  371. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  372. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  373. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  374. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  375. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  376. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  377. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  378. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  379. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  380. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  381. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  382. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  383. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  384. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  385. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  386. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  387. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  388. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  389. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  390. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  391. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  392. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  393. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  394. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  395. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  396. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  397. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  398. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  399. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  400. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  401. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  402. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  403. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  404. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  405. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  406. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  407. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  408. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  409. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  410. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  411. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  412. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  413. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  414. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  415. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  416. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  417. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  418. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  419. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  420. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  421. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  422. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  423. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  424. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  425. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  426. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  427. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  428. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  429. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  430. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  431. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  432. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  433. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  434. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  435. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  436. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  437. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  438. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  439. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  440. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  441. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  442. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  443. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  444. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  445. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  446. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  447. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  448. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  449. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  450. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  451. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  452. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  453. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  454. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  455. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  456. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  457. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  458. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  459. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  460. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  461. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  462. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  463. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  464. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  465. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  466. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  467. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  468. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  469. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  470. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  471. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  472. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  473. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  474. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  475. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  476. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  477. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  478. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  479. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  480. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  481. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  482. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  483. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  484. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  485. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  486. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  487. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  488. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  489. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  490. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  491. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  492. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  493. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  494. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  495. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  496. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  497. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  498. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  499. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  500. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  501. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  502. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  503. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  504. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  505. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  506. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  507. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  508. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  509. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  510. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  511. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  512. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  513. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  514. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  515. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  516. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  517. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  518. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  519. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  520. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  521. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  522. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  523. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  524. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  525. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  526. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  527. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  528. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  529. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  530. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  531. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  532. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  533. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  534. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  535. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  536. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  537. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  538. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  539. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  540. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  541. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  542. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  543. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  544. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  545. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  546. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  547. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  548. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  549. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  550. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  551. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  552. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  553. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  554. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  555. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  556. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  557. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  558. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  559. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  560. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  561. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  562. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  563. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  564. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  565. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  566. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  567. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  568. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  569. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  570. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  571. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  572. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  573. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  574. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  575. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  576. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  577. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  578. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  579. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  580. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  581. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  582. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  583. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  584. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  585. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  586. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  587. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  588. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  589. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  590. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  591. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  592. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  593. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  594. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  595. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  596. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  597. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  598. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  599. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  600. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  601. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  602. package/cli/app/.next-cli-build/server/app-paths-manifest.json +6 -6
  603. package/cli/app/.next-cli-build/server/chunks/1939.js +12 -4
  604. package/cli/app/.next-cli-build/server/chunks/2478.js +1 -0
  605. package/cli/app/.next-cli-build/server/chunks/2540.js +1 -1
  606. package/cli/app/.next-cli-build/server/chunks/3110.js +2 -2
  607. package/cli/app/.next-cli-build/server/chunks/3155.js +3 -3
  608. package/cli/app/.next-cli-build/server/chunks/318.js +1 -1
  609. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  610. package/cli/app/.next-cli-build/server/chunks/3593.js +1 -9
  611. package/cli/app/.next-cli-build/server/chunks/3831.js +1 -1
  612. package/cli/app/.next-cli-build/server/chunks/4055.js +1 -9
  613. package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
  614. package/cli/app/.next-cli-build/server/chunks/4650.js +17 -0
  615. package/cli/app/.next-cli-build/server/chunks/4739.js +1 -9
  616. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  617. package/cli/app/.next-cli-build/server/chunks/4780.js +1 -9
  618. package/cli/app/.next-cli-build/server/chunks/507.js +1 -9
  619. package/cli/app/.next-cli-build/server/chunks/5217.js +1 -9
  620. package/cli/app/.next-cli-build/server/chunks/5258.js +1 -9
  621. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  622. package/cli/app/.next-cli-build/server/chunks/698.js +1 -9
  623. package/cli/app/.next-cli-build/server/chunks/7965.js +1 -9
  624. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  625. package/cli/app/.next-cli-build/server/chunks/8371.js +1 -1
  626. package/cli/app/.next-cli-build/server/chunks/8450.js +1 -1
  627. package/cli/app/.next-cli-build/server/chunks/8520.js +1 -9
  628. package/cli/app/.next-cli-build/server/chunks/8895.js +3 -3
  629. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  630. package/cli/app/.next-cli-build/server/middleware.js +10 -2
  631. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  632. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  633. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  634. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  635. package/cli/app/.next-cli-build/static/chunks/{3702-9ca011a83b15d8d8.js → 3702-66e1931cc3b6f8a5.js} +1 -1
  636. package/cli/app/.next-cli-build/static/chunks/{5497-3ba9ab4bf3a9facb.js → 5497-54c8b503897135ae.js} +2 -2
  637. package/cli/app/CHANGELOG.md +10 -0
  638. package/cli/app/package.json +1 -1
  639. package/cli/app/src/lib/db/adapters/betterSqliteAdapter.js +1 -1
  640. package/cli/app/src/lib/db/adapters/bunSqliteAdapter.js +1 -1
  641. package/cli/app/src/lib/db/adapters/nodeSqliteAdapter.js +1 -1
  642. package/cli/app/src/lib/db/adapters/sqljsAdapter.js +23 -25
  643. package/cli/app/src/lib/db/migrate.js +19 -14
  644. package/cli/app/src/mitm/server.js +3 -3
  645. package/cli/package.json +1 -1
  646. package/open-sse/executors/base.js +2 -1
  647. package/open-sse/handlers/chatCore/sseToJsonHandler.js +11 -3
  648. package/open-sse/handlers/chatCore.js +3 -2
  649. package/open-sse/transformer/streamToJsonConverter.js +5 -1
  650. package/open-sse/utils/requestLogger.js +9 -18
  651. package/package.json +1 -1
  652. package/src/app/api/auth/oidc/test/route.js +4 -2
  653. package/src/app/api/oauth/[provider]/[action]/route.js +29 -32
  654. package/src/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -0
  655. package/src/app/api/terminal/session/[id]/input/route.js +4 -1
  656. package/src/app/api/terminal/session/[id]/resize/route.js +4 -1
  657. package/src/app/api/terminal/session/[id]/route.js +9 -4
  658. package/src/app/api/terminal/session/[id]/stream/route.js +10 -2
  659. package/src/app/api/terminal/session/route.js +8 -3
  660. package/src/dashboardGuard.js +1 -1
  661. package/src/lib/auth/oidc.js +76 -7
  662. package/src/lib/auth/terminalSession.js +27 -1
  663. package/src/lib/db/adapters/betterSqliteAdapter.js +1 -1
  664. package/src/lib/db/adapters/bunSqliteAdapter.js +1 -1
  665. package/src/lib/db/adapters/nodeSqliteAdapter.js +1 -1
  666. package/src/lib/db/adapters/sqljsAdapter.js +23 -25
  667. package/src/lib/db/backup.js +2 -1
  668. package/src/lib/db/index.js +19 -1
  669. package/src/lib/db/migrate.js +19 -14
  670. package/src/lib/oauth/services/codebuddyCnBulkImportManager.js +14 -4
  671. package/src/lib/terminal/sessionManager.js +21 -15
  672. package/src/mitm/server.js +13 -1
  673. package/src/shared/components/CodeBuddyCnPhoneRegisterModal.js +17 -2
  674. package/src/shared/components/OAuthModal.js +24 -16
  675. /package/cli/app/.next-cli-build/static/{BEit7P9cwXUO_ME79G3cB → QlR7VAPyBa5sEyFouxrTT}/_buildManifest.js +0 -0
  676. /package/cli/app/.next-cli-build/static/{BEit7P9cwXUO_ME79G3cB → QlR7VAPyBa5sEyFouxrTT}/_ssgManifest.js +0 -0
@@ -1,5 +1,8 @@
1
1
  import crypto from "node:crypto";
2
- import { createRemoteJWKSet, jwtVerify } from "jose";
2
+ import dns from "node:dns/promises";
3
+ import net from "node:net";
4
+ import { createRemoteJWKSet, customFetch, jwtVerify } from "jose";
5
+ import { Agent, fetch as undiciFetch } from "undici";
3
6
  import { getSettings } from "@/lib/localDb";
4
7
 
5
8
  export const OIDC_COOKIE_NAMES = {
@@ -62,13 +65,77 @@ export async function getOidcRuntimeConfig() {
62
65
  };
63
66
  }
64
67
 
68
+ function isPrivateAddress(address) {
69
+ const normalized = address.toLowerCase().replace(/^::ffff:/, "");
70
+ if (net.isIPv4(normalized)) {
71
+ const [a, b] = normalized.split(".").map(Number);
72
+ return a === 0 || a === 10 || a === 127 || (a === 169 && b === 254) ||
73
+ (a === 172 && b >= 16 && b <= 31) || (a === 192 && b === 168);
74
+ }
75
+ return normalized === "::" || normalized === "::1" || normalized.startsWith("fc") ||
76
+ normalized.startsWith("fd") || /^fe[89ab]/.test(normalized);
77
+ }
78
+
79
+ function validateOidcUrl(rawUrl, expectedOrigin) {
80
+ const url = new URL(rawUrl);
81
+ if (url.protocol !== "https:" || url.username || url.password || (expectedOrigin && url.origin !== expectedOrigin)) {
82
+ throw new Error("OIDC endpoints must use HTTPS on the issuer origin");
83
+ }
84
+ return url;
85
+ }
86
+
87
+ async function createOidcDispatcher(rawUrl, expectedOrigin) {
88
+ const url = validateOidcUrl(rawUrl, expectedOrigin);
89
+ const addresses = await dns.lookup(url.hostname, { all: true });
90
+ if (!addresses.length || addresses.some(({ address }) => isPrivateAddress(address))) {
91
+ throw new Error("OIDC endpoints must resolve to public addresses");
92
+ }
93
+ let next = 0;
94
+ return {
95
+ url,
96
+ dispatcher: new Agent({
97
+ connect: {
98
+ lookup(_hostname, options, callback) {
99
+ const candidates = addresses.filter(({ family }) => !options.family || family === options.family);
100
+ if (options.all) {
101
+ callback(null, candidates.length ? candidates : addresses);
102
+ return;
103
+ }
104
+ const selected = candidates[next++ % candidates.length] || addresses[0];
105
+ callback(null, selected.address, selected.family);
106
+ },
107
+ },
108
+ }),
109
+ };
110
+ }
111
+
112
+ async function oidcFetch(rawUrl, options = {}, expectedOrigin) {
113
+ const { url, dispatcher } = await createOidcDispatcher(rawUrl, expectedOrigin);
114
+ try {
115
+ return await undiciFetch(url, { ...options, redirect: "error", dispatcher });
116
+ } finally {
117
+ await dispatcher.close();
118
+ }
119
+ }
120
+
65
121
  export async function fetchOidcDiscovery(issuerUrl) {
66
- const discoveryUrl = `${trimTrailingSlashes(issuerUrl)}/.well-known/openid-configuration`;
67
- const res = await fetch(discoveryUrl, { cache: "no-store" });
122
+ const normalizedIssuer = trimTrailingSlashes(issuerUrl);
123
+ const issuer = validateOidcUrl(normalizedIssuer);
124
+ const discoveryUrl = `${normalizedIssuer}/.well-known/openid-configuration`;
125
+ const res = await oidcFetch(discoveryUrl, { cache: "no-store" });
68
126
  if (!res.ok) {
69
127
  throw new Error(`Failed to load OIDC discovery document from ${discoveryUrl}`);
70
128
  }
71
- return await res.json();
129
+ const discovery = await res.json();
130
+ if (!discovery.authorization_endpoint || !discovery.token_endpoint || !discovery.jwks_uri) {
131
+ throw new Error("OIDC discovery response is missing required endpoints");
132
+ }
133
+ await Promise.all([
134
+ createOidcDispatcher(discovery.authorization_endpoint, issuer.origin).then(({ dispatcher }) => dispatcher.close()),
135
+ createOidcDispatcher(discovery.token_endpoint, issuer.origin).then(({ dispatcher }) => dispatcher.close()),
136
+ createOidcDispatcher(discovery.jwks_uri, issuer.origin).then(({ dispatcher }) => dispatcher.close()),
137
+ ]);
138
+ return discovery;
72
139
  }
73
140
 
74
141
  export function createPkcePair() {
@@ -126,7 +193,7 @@ export async function exchangeOidcCode({
126
193
  body.set("client_secret", clientSecret);
127
194
  }
128
195
 
129
- const res = await fetch(tokenEndpoint, {
196
+ const res = await oidcFetch(tokenEndpoint, {
130
197
  method: "POST",
131
198
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
132
199
  body,
@@ -164,7 +231,7 @@ export async function probeOidcClientSecret({
164
231
  code_verifier: "__oidc_test_invalid_verifier__",
165
232
  });
166
233
 
167
- const res = await fetch(tokenEndpoint, {
234
+ const res = await oidcFetch(tokenEndpoint, {
168
235
  method: "POST",
169
236
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
170
237
  body,
@@ -216,7 +283,9 @@ export async function verifyOidcIdToken({
216
283
  jwksUri,
217
284
  nonce,
218
285
  }) {
219
- const jwks = createRemoteJWKSet(new URL(jwksUri));
286
+ const jwks = createRemoteJWKSet(new URL(jwksUri), {
287
+ [customFetch]: (url, options) => oidcFetch(url, options),
288
+ });
220
289
  const { payload } = await jwtVerify(idToken, jwks, {
221
290
  issuer,
222
291
  audience,
@@ -1,5 +1,6 @@
1
1
  import { SignJWT, jwtVerify } from "jose";
2
- import { shouldUseSecureCookie } from "@/lib/auth/dashboardSession";
2
+ import { shouldUseSecureCookie, verifyDashboardAuthToken } from "@/lib/auth/dashboardSession";
3
+ import { getConsistentMachineId } from "@/shared/utils/machineId";
3
4
 
4
5
  // Same secret loader pattern as dashboard — import via dynamic to share SECRET
5
6
  // We re-use createDashboardAuthToken's secret by verifying with the same module path.
@@ -23,6 +24,31 @@ function loadJwtSecret() {
23
24
  const SECRET = new TextEncoder().encode(loadJwtSecret());
24
25
  const COOKIE_NAME = "terminal_token";
25
26
  const TTL = "4h";
27
+ const CLI_TOKEN_HEADER = "x-zevai-cli-token";
28
+ const CLI_TOKEN_SALT = "zevai-cli-auth";
29
+
30
+ function ownerId(type, token) {
31
+ return crypto.createHash("sha256").update(`${type}\0${token}`).digest("hex");
32
+ }
33
+
34
+ export async function getTerminalOwner(request) {
35
+ const cliToken = request.headers.get(CLI_TOKEN_HEADER);
36
+ if (cliToken && cliToken === await getConsistentMachineId(CLI_TOKEN_SALT)) {
37
+ return ownerId("cli", cliToken);
38
+ }
39
+
40
+ const terminalToken = request.cookies.get(COOKIE_NAME)?.value;
41
+ if (await verifyTerminalUnlockToken(terminalToken)) {
42
+ return ownerId("terminal", terminalToken);
43
+ }
44
+
45
+ const dashboardToken = request.cookies.get("auth_token")?.value;
46
+ if (await verifyDashboardAuthToken(dashboardToken)) {
47
+ return ownerId("dashboard", dashboardToken);
48
+ }
49
+
50
+ return null;
51
+ }
26
52
 
27
53
  export function getTerminalCookieName() {
28
54
  return COOKIE_NAME;
@@ -45,7 +45,7 @@ export function createBetterSqliteAdapter(filePath) {
45
45
  all(sql, params = []) { return prepare(sql).all(params); },
46
46
  exec(sql) { return db.exec(sql); },
47
47
  transaction(fn) { return db.transaction(fn)(); },
48
- checkpoint() { try { db.pragma("wal_checkpoint(TRUNCATE)"); } catch {} },
48
+ checkpoint() { db.pragma("wal_checkpoint(TRUNCATE)"); },
49
49
  close() {
50
50
  clearInterval(checkpointTimer);
51
51
  gracefulClose();
@@ -53,7 +53,7 @@ export async function createBunSqliteAdapter(filePath) {
53
53
  const tx = db.transaction(fn);
54
54
  return tx();
55
55
  },
56
- checkpoint() { try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {} },
56
+ checkpoint() { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); },
57
57
  close() {
58
58
  clearInterval(checkpointTimer);
59
59
  gracefulClose();
@@ -74,7 +74,7 @@ export async function createNodeSqliteAdapter(filePath) {
74
74
  throw e;
75
75
  }
76
76
  },
77
- checkpoint() { try { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); } catch {} },
77
+ checkpoint() { db.exec("PRAGMA wal_checkpoint(TRUNCATE)"); },
78
78
  close() {
79
79
  clearInterval(checkpointTimer);
80
80
  gracefulClose();
@@ -13,29 +13,25 @@ async function loadSql() {
13
13
  export async function createSqlJsAdapter(filePath) {
14
14
  const SQLLib = await loadSql();
15
15
  const buf = fs.existsSync(filePath) ? fs.readFileSync(filePath) : null;
16
- const db = new SQLLib.Database(buf);
16
+ let db = new SQLLib.Database(buf);
17
17
  db.exec(PRAGMA_SQL);
18
18
  // Schema is created/synced by migrate.js after adapter init
19
19
 
20
20
  let dirty = false;
21
- let saveTimer = null;
22
- const SAVE_DEBOUNCE_MS = 100;
21
+ let transactionDepth = 0;
23
22
 
24
23
  function persist() {
25
24
  const data = db.export();
26
- fs.writeFileSync(filePath, Buffer.from(data));
27
- dirty = false;
28
- }
29
-
30
- function scheduleSave() {
25
+ const tempPath = `${filePath}.tmp-${process.pid}`;
31
26
  dirty = true;
32
- if (saveTimer) clearTimeout(saveTimer);
33
- saveTimer = setTimeout(() => {
34
- saveTimer = null;
35
- if (dirty) {
36
- try { persist(); } catch (e) { console.error("[sqljs] save failed:", e); }
37
- }
38
- }, SAVE_DEBOUNCE_MS);
27
+ try {
28
+ fs.writeFileSync(tempPath, Buffer.from(data));
29
+ fs.renameSync(tempPath, filePath);
30
+ dirty = false;
31
+ } catch (error) {
32
+ try { fs.rmSync(tempPath, { force: true }); } catch {}
33
+ throw error;
34
+ }
39
35
  }
40
36
 
41
37
  function paramsObj(params) {
@@ -50,7 +46,7 @@ export async function createSqlJsAdapter(filePath) {
50
46
  stmt.step();
51
47
  const changes = db.getRowsModified();
52
48
  const lastInsertRowid = db.exec("SELECT last_insert_rowid() as id")[0]?.values?.[0]?.[0] ?? null;
53
- scheduleSave();
49
+ if (transactionDepth === 0) persist();
54
50
  return { changes, lastInsertRowid };
55
51
  } finally {
56
52
  stmt.free();
@@ -82,34 +78,36 @@ export async function createSqlJsAdapter(filePath) {
82
78
 
83
79
  function exec(sql) {
84
80
  db.exec(sql);
85
- scheduleSave();
81
+ if (transactionDepth === 0) persist();
86
82
  }
87
83
 
88
84
  function transaction(fn) {
89
85
  const sp = `sp_${Math.random().toString(36).slice(2)}`;
86
+ const snapshot = transactionDepth === 0 ? db.export() : null;
90
87
  db.exec(`SAVEPOINT ${sp}`);
88
+ transactionDepth++;
91
89
  try {
92
90
  const result = fn();
93
91
  db.exec(`RELEASE ${sp}`);
94
- scheduleSave();
92
+ transactionDepth--;
93
+ if (transactionDepth === 0) persist();
95
94
  return result;
96
95
  } catch (e) {
96
+ transactionDepth--;
97
97
  try { db.exec(`ROLLBACK TO ${sp}`); db.exec(`RELEASE ${sp}`); } catch {}
98
+ if (snapshot) {
99
+ db.close();
100
+ db = new SQL.Database(snapshot);
101
+ dirty = false;
102
+ }
98
103
  throw e;
99
104
  }
100
105
  }
101
106
 
102
107
  function close() {
103
- if (saveTimer) clearTimeout(saveTimer);
104
108
  if (dirty) persist();
105
109
  db.close();
106
110
  }
107
111
 
108
- // Flush on shutdown
109
- const flush = () => { if (dirty) try { persist(); } catch {} };
110
- process.on("beforeExit", flush);
111
- process.on("SIGINT", flush);
112
- process.on("SIGTERM", flush);
113
-
114
112
  return { driver: "sql.js", run, get, all, exec, transaction, close, raw: db };
115
113
  }
@@ -14,8 +14,9 @@ export function makeBackupDir(label) {
14
14
  return dir;
15
15
  }
16
16
 
17
- export function backupFile(srcPath, destDir, destName = null) {
17
+ export function backupFile(srcPath, destDir, destName = null, adapter = null) {
18
18
  if (!fs.existsSync(srcPath)) return null;
19
+ adapter?.checkpoint?.();
19
20
  const name = destName || path.basename(srcPath);
20
21
  const dest = path.join(destDir, name);
21
22
  fs.copyFileSync(srcPath, dest);
@@ -1,5 +1,6 @@
1
1
  // Public API barrel — all DB functions
2
2
  import { getAdapter } from "./driver.js";
3
+ import { TABLES } from "./schema.js";
3
4
  import { stringifyJson, parseJson } from "./helpers/jsonCol.js";
4
5
 
5
6
  // Settings
@@ -97,6 +98,7 @@ export async function exportDb() {
97
98
  customModels: [],
98
99
  mitmAlias: {},
99
100
  pricing: {},
101
+ tables: Object.fromEntries(Object.keys(TABLES).map((table) => [table, db.all(`SELECT * FROM "${table}"`)])),
100
102
  };
101
103
 
102
104
  for (const r of db.all(`SELECT key, value FROM kv WHERE scope = 'modelAliases'`)) out.modelAliases[r.key] = parseJson(r.value);
@@ -114,7 +116,23 @@ export async function importDb(payload) {
114
116
  const db = await getAdapter();
115
117
 
116
118
  db.transaction(() => {
117
- // Wipe all tables (keep _meta)
119
+ if (payload.tables && typeof payload.tables === "object" && !Array.isArray(payload.tables)) {
120
+ for (const table of Object.keys(TABLES).reverse()) db.run(`DELETE FROM "${table}"`);
121
+ for (const [table, rows] of Object.entries(payload.tables)) {
122
+ if (!TABLES[table] || !Array.isArray(rows)) continue;
123
+ for (const row of rows) {
124
+ const columns = Object.keys(row).filter((column) => TABLES[table].columns[column]);
125
+ if (columns.length === 0) continue;
126
+ db.run(
127
+ `INSERT INTO "${table}" (${columns.map((column) => `"${column}"`).join(", ")}) VALUES (${columns.map(() => "?").join(", ")})`,
128
+ columns.map((column) => row[column])
129
+ );
130
+ }
131
+ }
132
+ return;
133
+ }
134
+
135
+ // Legacy exports replace only the datasets they historically contained.
118
136
  db.run(`DELETE FROM settings`);
119
137
  db.run(`DELETE FROM providerConnections`);
120
138
  db.run(`DELETE FROM providerNodes`);
@@ -215,11 +215,22 @@ function importLegacyDetails(adapter, data) {
215
215
  // ─── Main entry ──────────────────────────────────────────────────────────
216
216
  export async function runMigrationOnce(adapter) {
217
217
  if (_migratedAdapters.has(adapter)) return;
218
- _migratedAdapters.add(adapter);
219
218
 
220
219
  // Capture freshness BEFORE migrations stamp _meta (otherwise we'd misclassify
221
220
  // a brand-new DB as non-fresh once schemaVersion is written).
222
221
  const fresh = isFreshDb(adapter);
222
+ const oldSchemaVersion = Number(getMetaSync(adapter, "schemaVersion", 0));
223
+ const oldAppVersion = getMetaSync(adapter, "appVersion", null);
224
+ const newAppVersion = getAppVersion();
225
+ let preMigrationBackup = null;
226
+ if (!fresh && (oldSchemaVersion < latestVersion() || (oldAppVersion && oldAppVersion !== newAppVersion))) {
227
+ preMigrationBackup = makeBackupDir(
228
+ oldSchemaVersion < latestVersion()
229
+ ? `schema-${oldSchemaVersion}-to-${latestVersion()}`
230
+ : `upgrade-${oldAppVersion}-to-${newAppVersion}`
231
+ );
232
+ backupFile(DATA_FILE, preMigrationBackup, null, adapter);
233
+ }
223
234
 
224
235
  // 1. Always run versioned migrations chain (skip-version safe)
225
236
  const migInfo = runVersionedMigrations(adapter);
@@ -260,27 +271,21 @@ export async function runMigrationOnce(adapter) {
260
271
  try { fs.writeFileSync(MIGRATED_MARKER, new Date().toISOString()); } catch {}
261
272
  pruneOldBackups();
262
273
  console.log(`[DB][migrate] JSON → SQLite in ${Date.now() - t0}ms | legacy JSON kept at DATA_DIR | backup: ${backupDir}`);
274
+ _migratedAdapters.add(adapter);
263
275
  return;
264
276
  }
265
277
 
266
278
  if (fresh) {
267
279
  setMetaSync(adapter, "appVersion", getAppVersion());
280
+ _migratedAdapters.add(adapter);
268
281
  return;
269
282
  }
270
283
 
271
- // 4. App version bump backup data.sqlite (safety net before user-side upgrade)
272
- const oldVer = getMetaSync(adapter, "appVersion", null);
273
- const newVer = getAppVersion();
274
- if (oldVer && oldVer !== newVer) {
275
- const backupDir = makeBackupDir(`upgrade-${oldVer}-to-${newVer}`);
276
- try { backupFile(DATA_FILE, backupDir); } catch {}
277
- setMetaSync(adapter, "appVersion", newVer);
278
- pruneOldBackups();
279
- console.log(`[DB][migrate] App ${oldVer} → ${newVer} | schema ${migInfo.from} → ${migInfo.to} | backup: ${backupDir}`);
280
- } else if (migInfo.applied > 0) {
281
- // Schema upgrade without app version bump — still backup
282
- const backupDir = makeBackupDir(`schema-${migInfo.from}-to-${migInfo.to}`);
283
- try { backupFile(DATA_FILE, backupDir); } catch {}
284
+ // 4. Record the app version after the pre-migration backup and successful migration.
285
+ if (oldAppVersion !== newAppVersion) setMetaSync(adapter, "appVersion", newAppVersion);
286
+ if (preMigrationBackup) {
284
287
  pruneOldBackups();
288
+ console.log(`[DB][migrate] App ${oldAppVersion} → ${newAppVersion} | schema ${migInfo.from} → ${migInfo.to} | backup: ${preMigrationBackup}`);
285
289
  }
290
+ _migratedAdapters.add(adapter);
286
291
  }
@@ -204,7 +204,7 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
204
204
  * @param {string} [opts.proxyPoolId]
205
205
  * @param {string} [opts.region] 5sim region (hongkong|china|any)
206
206
  */
207
- async startJob({ count, concurrency, engine, proxyPoolMode, proxyPoolId, region }) {
207
+ async startJob({ count, concurrency, engine, proxyPoolMode, proxyPoolId, manualProxyUrl, region }) {
208
208
  // Validate count
209
209
  const countNum = Number.parseInt(count, 10);
210
210
  if (!Number.isFinite(countNum) || countNum < 1) {
@@ -232,9 +232,19 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
232
232
  // Validate region
233
233
  const resolvedRegion = SUPPORTED_REGIONS.has(region) ? region : DEFAULT_REGION;
234
234
 
235
- // Resolve proxy pool URLs for round-robin assignment (copy from base)
235
+ // Resolve proxy URLs: manual URL takes precedence over pool selection.
236
236
  let proxyUrls = [];
237
- if (proxyPoolMode === "all") {
237
+ const manualProxy = typeof manualProxyUrl === "string" ? manualProxyUrl.trim() : "";
238
+ if (manualProxy) {
239
+ // Basic scheme check — Playwright needs a parseable http(s)/socks URL.
240
+ if (!/^(https?|socks4|socks5):\/\/.+/i.test(manualProxy)) {
241
+ throw Object.assign(
242
+ new Error("manualProxyUrl must be a valid proxy URL (http://, https://, socks4://, or socks5://)"),
243
+ { error: "manualProxyUrl must be a valid proxy URL (http://, https://, socks4://, or socks5://)" },
244
+ );
245
+ }
246
+ proxyUrls = [manualProxy];
247
+ } else if (proxyPoolMode === "all") {
238
248
  const pools = await getProxyPools({ isActive: true });
239
249
  proxyUrls = pools.map((p) => p.proxyUrl).filter(Boolean);
240
250
  } else if (proxyPoolMode === "single" && proxyPoolId) {
@@ -256,7 +266,7 @@ export class CodeBuddyCnBulkImportManager extends KiroBulkImportManager {
256
266
  status: "running",
257
267
  concurrency: clampCnConcurrency(concurrency),
258
268
  engine: resolvedEngine,
259
- proxyPoolMode: proxyPoolMode || "none",
269
+ proxyPoolMode: manualProxy ? "manual" : (proxyPoolMode || "none"),
260
270
  proxyUrls,
261
271
  region: resolvedRegion,
262
272
  createdAt,
@@ -264,8 +264,8 @@ function writeWelcome(session, cwd) {
264
264
  );
265
265
  }
266
266
 
267
- export function listTerminalSessions() {
268
- return Array.from(g.sessions.values()).map((s) => ({
267
+ export function listTerminalSessions(owner) {
268
+ return Array.from(g.sessions.values()).filter((s) => s.owner === owner).map((s) => ({
269
269
  id: s.id,
270
270
  createdAt: s.createdAt,
271
271
  lastActive: s.lastActive,
@@ -277,21 +277,23 @@ export function listTerminalSessions() {
277
277
  }));
278
278
  }
279
279
 
280
- export function getTerminalSession(id) {
281
- return g.sessions.get(id) || null;
280
+ export function getTerminalSession(id, owner) {
281
+ const session = g.sessions.get(id);
282
+ return session?.owner === owner ? session : null;
282
283
  }
283
284
 
284
- export function createTerminalSession({ cols = 120, rows = 40 } = {}) {
285
+ export function createTerminalSession({ cols = 120, rows = 40, owner } = {}) {
285
286
  for (const [id, s] of g.sessions) {
286
287
  if (!s.alive) destroySession(id, "cleanup");
287
288
  }
288
289
 
289
- if (g.sessions.size >= MAX_SESSIONS) {
290
- const oldest = Array.from(g.sessions.values()).sort((a, b) => a.lastActive - b.lastActive)[0];
290
+ const ownerSessions = Array.from(g.sessions.values()).filter((s) => s.owner === owner);
291
+ if (ownerSessions.length >= MAX_SESSIONS) {
292
+ const oldest = ownerSessions.sort((a, b) => a.lastActive - b.lastActive)[0];
291
293
  if (oldest) destroySession(oldest.id, "evicted");
292
294
  }
293
295
 
294
- if (g.sessions.size >= MAX_SESSIONS) {
296
+ if (Array.from(g.sessions.values()).filter((s) => s.owner === owner).length >= MAX_SESSIONS) {
295
297
  const err = new Error(`Too many terminal sessions (max ${MAX_SESSIONS})`);
296
298
  err.code = "MAX_SESSIONS";
297
299
  throw err;
@@ -303,6 +305,7 @@ export function createTerminalSession({ cols = 120, rows = 40 } = {}) {
303
305
  const ptySpawn = spawnWithNodePty(cols, rows);
304
306
  if (ptySpawn) {
305
307
  const session = makeSessionBase(id, cols, rows, ptySpawn.mode);
308
+ session.owner = owner;
306
309
  session.pty = ptySpawn.term;
307
310
  session.kind = "pty";
308
311
  ptySpawn.term.onData((data) => pushOutput(session, data));
@@ -326,6 +329,7 @@ export function createTerminalSession({ cols = 120, rows = 40 } = {}) {
326
329
  const pySpawn = spawnWithPythonBridge(cols, rows);
327
330
  if (pySpawn) {
328
331
  const session = makeSessionBase(id, cols, rows, pySpawn.mode);
332
+ session.owner = owner;
329
333
  session.kind = "pty";
330
334
  attachChildIO(session, pySpawn.child);
331
335
  // Don't write welcome before bridge prompt — only a short header
@@ -342,6 +346,7 @@ export function createTerminalSession({ cols = 120, rows = 40 } = {}) {
342
346
  // 3) Piped shell
343
347
  const pipeSpawn = spawnWithPipe(cols, rows);
344
348
  const session = makeSessionBase(id, cols, rows, pipeSpawn.mode);
349
+ session.owner = owner;
345
350
  session.kind = "pipe";
346
351
  attachChildIO(session, pipeSpawn.child);
347
352
  writeWelcome(session, pipeSpawn.cwd);
@@ -350,8 +355,8 @@ export function createTerminalSession({ cols = 120, rows = 40 } = {}) {
350
355
  return { id, shell: session.shell, mode: session.mode, cols, rows };
351
356
  }
352
357
 
353
- export function writeTerminalInput(id, data) {
354
- const session = g.sessions.get(id);
358
+ export function writeTerminalInput(id, owner, data) {
359
+ const session = getTerminalSession(id, owner);
355
360
  if (!session?.alive) {
356
361
  return { ok: false, error: "Session not found or dead" };
357
362
  }
@@ -383,8 +388,8 @@ export function writeTerminalInput(id, data) {
383
388
  }
384
389
  }
385
390
 
386
- export function resizeTerminalSession(id, cols, rows) {
387
- const session = g.sessions.get(id);
391
+ export function resizeTerminalSession(id, owner, cols, rows) {
392
+ const session = getTerminalSession(id, owner);
388
393
  if (!session?.alive) return { ok: false, error: "Session not found or dead" };
389
394
  const c = Math.max(20, Math.min(500, Number(cols) || session.cols));
390
395
  const r = Math.max(5, Math.min(200, Number(rows) || session.rows));
@@ -405,12 +410,13 @@ export function resizeTerminalSession(id, cols, rows) {
405
410
  return { ok: true, cols: c, rows: r };
406
411
  }
407
412
 
408
- export function killTerminalSession(id) {
413
+ export function killTerminalSession(id, owner) {
414
+ if (!getTerminalSession(id, owner)) return false;
409
415
  return destroySession(id, "client-kill");
410
416
  }
411
417
 
412
- export function subscribeTerminalOutput(id, { onData, onExit }) {
413
- const session = g.sessions.get(id);
418
+ export function subscribeTerminalOutput(id, owner, { onData, onExit }) {
419
+ const session = getTerminalSession(id, owner);
414
420
  if (!session) return () => {};
415
421
 
416
422
  const dataHandler = (text) => onData?.(text);
@@ -280,6 +280,10 @@ async function passthroughHttp2(req, res, bodyBuffer, headers, targetHost, onRes
280
280
  // Fallback: raw https.request HTTP/1.1 with custom DNS (bypasses /etc/hosts MITM loop)
281
281
  async function passthroughHttps(req, res, bodyBuffer, headers, targetHost, onResponse, dumper) {
282
282
  const targetIP = await resolveTargetIP(targetHost);
283
+ const controller = new AbortController();
284
+ const abort = () => controller.abort();
285
+ req.once("aborted", abort);
286
+ res.once("close", abort);
283
287
  const forwardReq = https.request({
284
288
  hostname: targetIP,
285
289
  port: 443,
@@ -287,7 +291,8 @@ async function passthroughHttps(req, res, bodyBuffer, headers, targetHost, onRes
287
291
  method: req.method,
288
292
  headers,
289
293
  servername: targetHost,
290
- rejectUnauthorized: false
294
+ rejectUnauthorized: false,
295
+ signal: controller.signal
291
296
  }, (forwardRes) => {
292
297
  res.writeHead(forwardRes.statusCode, forwardRes.headers);
293
298
  if (dumper) dumper.writeHeader(forwardRes.statusCode, forwardRes.headers);
@@ -310,7 +315,14 @@ async function passthroughHttps(req, res, bodyBuffer, headers, targetHost, onRes
310
315
  });
311
316
  });
312
317
 
318
+ const cleanup = () => {
319
+ req.removeListener("aborted", abort);
320
+ res.removeListener("close", abort);
321
+ };
322
+ forwardReq.once("close", cleanup);
313
323
  forwardReq.on("error", (e) => {
324
+ cleanup();
325
+ if (controller.signal.aborted) return;
314
326
  err(`Passthrough error: ${e.message}`);
315
327
  if (dumper) { dumper.writeChunk(`\n[ERROR] ${e.message}\n`); dumper.end(); }
316
328
  if (!res.headersSent) res.writeHead(502);
@@ -57,6 +57,7 @@ export default function CodeBuddyCnPhoneRegisterModal({ isOpen, onClose, onSucce
57
57
  const [engine, setEngine] = useState(DEFAULT_ENGINE);
58
58
  const [proxyPoolSelection, setProxyPoolSelection] = useState("");
59
59
  const [proxyPools, setProxyPools] = useState([]);
60
+ const [manualProxyUrl, setManualProxyUrl] = useState("");
60
61
  const [fiveSimApiKey, setFiveSimApiKey] = useState("");
61
62
  const [fiveSimKeyConfigured, setFiveSimKeyConfigured] = useState(false);
62
63
  const [savingKey, setSavingKey] = useState(false);
@@ -184,6 +185,7 @@ export default function CodeBuddyCnPhoneRegisterModal({ isOpen, onClose, onSucce
184
185
 
185
186
  let proxyPoolMode = "none";
186
187
  let proxyPoolId = null;
188
+ const trimmedManualProxy = manualProxyUrl.trim();
187
189
  if (proxyPoolSelection === "all") {
188
190
  proxyPoolMode = "all";
189
191
  } else if (proxyPoolSelection && proxyPoolSelection !== "") {
@@ -201,6 +203,7 @@ export default function CodeBuddyCnPhoneRegisterModal({ isOpen, onClose, onSucce
201
203
  engine,
202
204
  proxyPoolMode,
203
205
  proxyPoolId,
206
+ manualProxyUrl: trimmedManualProxy || null,
204
207
  region,
205
208
  }),
206
209
  });
@@ -216,7 +219,7 @@ export default function CodeBuddyCnPhoneRegisterModal({ isOpen, onClose, onSucce
216
219
  startInFlightRef.current = false;
217
220
  setImporting(false);
218
221
  }
219
- }, [count, region, concurrency, engine, proxyPoolSelection, fiveSimKeyConfigured, storageKey, importing, runningJob]);
222
+ }, [count, region, concurrency, engine, proxyPoolSelection, manualProxyUrl, fiveSimKeyConfigured, storageKey, importing, runningJob]);
220
223
 
221
224
  // Cancel job
222
225
  const handleCancelJob = useCallback(async () => {
@@ -370,7 +373,7 @@ export default function CodeBuddyCnPhoneRegisterModal({ isOpen, onClose, onSucce
370
373
  className="w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main focus:border-primary focus:outline-none"
371
374
  value={proxyPoolSelection}
372
375
  onChange={(e) => setProxyPoolSelection(e.target.value)}
373
- disabled={importing}
376
+ disabled={importing || !!manualProxyUrl.trim()}
374
377
  >
375
378
  <option value="">None</option>
376
379
  <option value="all">All Active Pools (round-robin)</option>
@@ -381,6 +384,18 @@ export default function CodeBuddyCnPhoneRegisterModal({ isOpen, onClose, onSucce
381
384
  </div>
382
385
  </div>
383
386
 
387
+ <div>
388
+ <label className="mb-1 block text-xs font-medium text-text-muted">Manual Proxy URL (optional, overrides pool)</label>
389
+ <input
390
+ type="text"
391
+ className="w-full rounded-lg border border-border bg-background px-3 py-2 text-sm text-text-main focus:border-primary focus:outline-none"
392
+ placeholder="http://user:pass@host:port or socks5://host:port"
393
+ value={manualProxyUrl}
394
+ onChange={(e) => setManualProxyUrl(e.target.value)}
395
+ disabled={importing}
396
+ />
397
+ </div>
398
+
384
399
  {error && (
385
400
  <div className="rounded-lg bg-red-500/10 p-3 text-sm text-red-400">{error}</div>
386
401
  )}