zevairouter 1.0.112 → 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 (672) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +8 -8
  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 +8 -8
  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/8450.js +1 -1
  626. package/cli/app/.next-cli-build/server/chunks/8520.js +1 -9
  627. package/cli/app/.next-cli-build/server/chunks/8895.js +3 -3
  628. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  629. package/cli/app/.next-cli-build/server/middleware.js +10 -2
  630. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  631. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  632. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  633. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  634. package/cli/app/.next-cli-build/static/chunks/{3702-c51727f16ee4ce40.js → 3702-66e1931cc3b6f8a5.js} +1 -1
  635. package/cli/app/.next-cli-build/static/chunks/{5497-bc9dbb3f8c0e03af.js → 5497-54c8b503897135ae.js} +2 -2
  636. package/cli/app/CHANGELOG.md +5 -0
  637. package/cli/app/package.json +1 -1
  638. package/cli/app/src/lib/db/adapters/betterSqliteAdapter.js +1 -1
  639. package/cli/app/src/lib/db/adapters/bunSqliteAdapter.js +1 -1
  640. package/cli/app/src/lib/db/adapters/nodeSqliteAdapter.js +1 -1
  641. package/cli/app/src/lib/db/adapters/sqljsAdapter.js +23 -25
  642. package/cli/app/src/lib/db/migrate.js +19 -14
  643. package/cli/app/src/mitm/server.js +3 -3
  644. package/cli/package.json +1 -1
  645. package/open-sse/executors/base.js +2 -1
  646. package/open-sse/handlers/chatCore/sseToJsonHandler.js +11 -3
  647. package/open-sse/handlers/chatCore.js +3 -2
  648. package/open-sse/transformer/streamToJsonConverter.js +5 -1
  649. package/open-sse/utils/requestLogger.js +9 -18
  650. package/package.json +1 -1
  651. package/src/app/api/auth/oidc/test/route.js +4 -2
  652. package/src/app/api/oauth/[provider]/[action]/route.js +29 -32
  653. package/src/app/api/terminal/session/[id]/input/route.js +4 -1
  654. package/src/app/api/terminal/session/[id]/resize/route.js +4 -1
  655. package/src/app/api/terminal/session/[id]/route.js +9 -4
  656. package/src/app/api/terminal/session/[id]/stream/route.js +10 -2
  657. package/src/app/api/terminal/session/route.js +8 -3
  658. package/src/dashboardGuard.js +1 -1
  659. package/src/lib/auth/oidc.js +76 -7
  660. package/src/lib/auth/terminalSession.js +27 -1
  661. package/src/lib/db/adapters/betterSqliteAdapter.js +1 -1
  662. package/src/lib/db/adapters/bunSqliteAdapter.js +1 -1
  663. package/src/lib/db/adapters/nodeSqliteAdapter.js +1 -1
  664. package/src/lib/db/adapters/sqljsAdapter.js +23 -25
  665. package/src/lib/db/backup.js +2 -1
  666. package/src/lib/db/index.js +19 -1
  667. package/src/lib/db/migrate.js +19 -14
  668. package/src/lib/terminal/sessionManager.js +21 -15
  669. package/src/mitm/server.js +13 -1
  670. package/src/shared/components/OAuthModal.js +24 -16
  671. /package/cli/app/.next-cli-build/static/{vxKMMzG3TCmmTGqCkXv7N → QlR7VAPyBa5sEyFouxrTT}/_buildManifest.js +0 -0
  672. /package/cli/app/.next-cli-build/static/{vxKMMzG3TCmmTGqCkXv7N → 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
  }
@@ -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);
@@ -238,12 +238,16 @@ export default function OAuthModal({ isOpen, provider, providerInfo, onSuccess,
238
238
  let codexServerSide = false;
239
239
  if (provider === "codex") {
240
240
  try {
241
- const proxyUrl = new URL(`/api/oauth/codex/start-proxy`, window.location.origin);
242
- proxyUrl.searchParams.set("app_port", appPort);
243
- proxyUrl.searchParams.set("state", data.state);
244
- proxyUrl.searchParams.set("code_verifier", data.codeVerifier);
245
- proxyUrl.searchParams.set("redirect_uri", redirectUri);
246
- const proxyRes = await fetch(proxyUrl.toString());
241
+ const proxyRes = await fetch(`/api/oauth/codex/start-proxy`, {
242
+ method: "POST",
243
+ headers: { "Content-Type": "application/json" },
244
+ body: JSON.stringify({
245
+ appPort,
246
+ state: data.state,
247
+ codeVerifier: data.codeVerifier,
248
+ redirectUri,
249
+ }),
250
+ });
247
251
  const proxyData = await proxyRes.json();
248
252
  codexProxyActive = proxyData.success;
249
253
  codexServerSide = !!proxyData.serverSide;
@@ -257,12 +261,16 @@ export default function OAuthModal({ isOpen, provider, providerInfo, onSuccess,
257
261
  let xaiServerSide = false;
258
262
  if (provider === "xai") {
259
263
  try {
260
- const proxyUrl = new URL(`/api/oauth/xai/start-proxy`, window.location.origin);
261
- proxyUrl.searchParams.set("app_port", appPort);
262
- proxyUrl.searchParams.set("state", data.state);
263
- proxyUrl.searchParams.set("code_verifier", data.codeVerifier);
264
- proxyUrl.searchParams.set("redirect_uri", redirectUri);
265
- const proxyRes = await fetch(proxyUrl.toString());
264
+ const proxyRes = await fetch(`/api/oauth/xai/start-proxy`, {
265
+ method: "POST",
266
+ headers: { "Content-Type": "application/json" },
267
+ body: JSON.stringify({
268
+ appPort,
269
+ state: data.state,
270
+ codeVerifier: data.codeVerifier,
271
+ redirectUri,
272
+ }),
273
+ });
266
274
  const proxyData = await proxyRes.json();
267
275
  xaiProxyActive = proxyData.success;
268
276
  xaiServerSide = !!proxyData.serverSide;
@@ -324,9 +332,9 @@ export default function OAuthModal({ isOpen, provider, providerInfo, onSuccess,
324
332
  // Abort polling and cleanup proxy when modal closes
325
333
  pollingAbortRef.current = true;
326
334
  if (provider === "codex") {
327
- fetch("/api/oauth/codex/stop-proxy").catch(() => {});
335
+ fetch("/api/oauth/codex/stop-proxy", { method: "POST" }).catch(() => {});
328
336
  } else if (provider === "xai") {
329
- fetch("/api/oauth/xai/stop-proxy").catch(() => {});
337
+ fetch("/api/oauth/xai/stop-proxy", { method: "POST" }).catch(() => {});
330
338
  }
331
339
  }
332
340
  }, [isOpen, provider, startOAuthFlow]);
@@ -509,9 +517,9 @@ export default function OAuthModal({ isOpen, provider, providerInfo, onSuccess,
509
517
  // Clear session on modal close + cleanup proxy
510
518
  const handleClose = useCallback(() => {
511
519
  if (provider === "codex") {
512
- fetch("/api/oauth/codex/stop-proxy").catch(() => {});
520
+ fetch("/api/oauth/codex/stop-proxy", { method: "POST" }).catch(() => {});
513
521
  } else if (provider === "xai") {
514
- fetch("/api/oauth/xai/stop-proxy").catch(() => {});
522
+ fetch("/api/oauth/xai/stop-proxy", { method: "POST" }).catch(() => {});
515
523
  }
516
524
  onClose();
517
525
  }, [onClose, provider]);