zevairouter 1.0.70 → 1.0.73

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 (545) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +28 -11
  3. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  4. package/cli/app/.next-cli-build/app-path-routes-manifest.json +5 -5
  5. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  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.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  106. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/[jobId]/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/latest/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/oauth/autoclaw/bulk-import/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  280. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  281. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  282. package/cli/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  283. package/cli/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  284. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  285. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  286. package/cli/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  287. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  288. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +5 -5
  289. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +2 -2
  290. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation.segment.rsc +1 -1
  291. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  292. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  293. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +5 -5
  294. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_head.segment.rsc +1 -1
  295. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_index.segment.rsc +3 -3
  296. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  297. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  298. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  299. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  300. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  301. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  302. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  303. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  304. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  305. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  306. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  307. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  308. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  309. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  310. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  311. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  313. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  314. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  315. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  316. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  317. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  318. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  319. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  320. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  321. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  322. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  323. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  324. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  325. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  326. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  327. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  328. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +5 -5
  329. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +2 -2
  330. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context.segment.rsc +1 -1
  331. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  332. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  333. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +5 -5
  334. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_head.segment.rsc +1 -1
  335. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_index.segment.rsc +3 -3
  336. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  337. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  338. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  339. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  340. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  341. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  342. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  343. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  344. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  345. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  346. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  347. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  348. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  349. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  350. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  351. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  352. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  353. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  354. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  355. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  356. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  357. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  358. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  359. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  360. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  361. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  362. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  363. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  364. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  365. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  366. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  367. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  368. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  369. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +5 -5
  370. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +2 -2
  371. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground.segment.rsc +1 -1
  372. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  373. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  374. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +5 -5
  375. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_head.segment.rsc +1 -1
  376. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_index.segment.rsc +3 -3
  377. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  378. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  379. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  380. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  381. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  382. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  383. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  384. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  385. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  386. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  387. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  388. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  389. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  390. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  391. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  392. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  393. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  394. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  395. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  396. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  397. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  398. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  399. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  400. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  401. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  402. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  403. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  404. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  405. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  406. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  407. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  408. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  409. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  410. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  411. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  412. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  413. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  414. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  415. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  416. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  417. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  418. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  419. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  420. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  421. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  422. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  423. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  424. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  425. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  426. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  427. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  428. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  429. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  430. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  431. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  432. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  433. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  434. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  435. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  436. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  437. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  438. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  439. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  440. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  441. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  442. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  443. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  444. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  445. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  446. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  447. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  448. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  449. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  450. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  451. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  452. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  453. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  454. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  455. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  456. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  457. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  458. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  459. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  460. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  461. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  462. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  463. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  464. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  465. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  466. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  467. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  468. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  469. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  470. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  471. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  472. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  473. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  474. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  475. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  476. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  477. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  478. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  479. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  480. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  481. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  482. package/cli/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  483. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  484. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  485. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  486. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  487. package/cli/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  488. package/cli/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  489. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  490. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  491. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  492. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  493. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  494. package/cli/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  495. package/cli/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  496. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  497. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  498. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  499. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  500. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  501. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  502. package/cli/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  503. package/cli/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  504. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  505. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  506. package/cli/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  507. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  508. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  509. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  510. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  511. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  512. package/cli/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  513. package/cli/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  514. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  515. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  516. package/cli/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  517. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  518. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  519. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  520. package/cli/app/.next-cli-build/server/app-paths-manifest.json +5 -5
  521. package/cli/app/.next-cli-build/server/chunks/3407.js +1 -1
  522. package/cli/app/.next-cli-build/server/chunks/4746.js +1 -1
  523. package/cli/app/.next-cli-build/server/chunks/5949.js +16 -1
  524. package/cli/app/.next-cli-build/server/chunks/6896.js +1 -1
  525. package/cli/app/.next-cli-build/server/chunks/7276.js +1 -1
  526. package/cli/app/.next-cli-build/server/chunks/8157.js +1 -1
  527. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  528. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  529. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  530. package/cli/app/.next-cli-build/server/webpack-runtime.js +1 -1
  531. package/cli/app/.next-cli-build/static/chunks/{3702-838b157b1c575fad.js → 3702-4d2e4b7e4bdf361e.js} +1 -1
  532. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  533. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  534. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  535. package/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/cli/app/src/lib/terminal/ptyBridge.py +163 -0
  536. package/cli/app/cli/hooks/safeGlobalInstall.js +340 -0
  537. package/cli/app/package.json +1 -1
  538. package/cli/cli.js +59 -3
  539. package/cli/hooks/safeGlobalInstall.js +340 -0
  540. package/cli/package.json +1 -1
  541. package/package.json +1 -1
  542. package/src/lib/oauth/services/kiroBulkImportManager.js +8 -8
  543. package/src/lib/oauth/services/kiroGoogleAutomation.js +230 -20
  544. /package/cli/app/.next-cli-build/static/{YT3fPhaxMPPrUK4GTsQBO → ZmhcxPfn8Y_X2WWVQG99n}/_buildManifest.js +0 -0
  545. /package/cli/app/.next-cli-build/static/{YT3fPhaxMPPrUK4GTsQBO → ZmhcxPfn8Y_X2WWVQG99n}/_ssgManifest.js +0 -0
@@ -0,0 +1,340 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Safe global install/upgrade of zevairouter across macOS / Linux / Windows.
4
+ *
5
+ * Fixes common multi-device chaos:
6
+ * - ENOTEMPTY rename failures (partial global install)
7
+ * - dual Node (nvm vs /usr/bin) — always use the Node that is running this process
8
+ * - leftover .zevairouter-* temp dirs after failed upgrades
9
+ *
10
+ * Usage (from any shell after install):
11
+ * node cli/hooks/safeGlobalInstall.js
12
+ * node cli/hooks/safeGlobalInstall.js --version 1.0.72
13
+ * node cli/hooks/safeGlobalInstall.js --latest
14
+ *
15
+ * Or programmatically:
16
+ * const { safeInstallGlobal } = require("./safeGlobalInstall");
17
+ * await safeInstallGlobal({ version: "latest" });
18
+ */
19
+ "use strict";
20
+
21
+ const { execFileSync, spawnSync } = require("child_process");
22
+ const fs = require("fs");
23
+ const os = require("os");
24
+ const path = require("path");
25
+
26
+ const APP_NAME = "zevairouter";
27
+ const BIN_NAME = "zevai";
28
+
29
+ function log(msg) {
30
+ console.log(`[zevai-install] ${msg}`);
31
+ }
32
+
33
+ function warn(msg) {
34
+ console.warn(`[zevai-install] ${msg}`);
35
+ }
36
+
37
+ function detectPlatform() {
38
+ const p = process.platform;
39
+ if (p === "darwin") return { id: "mac", label: "macOS" };
40
+ if (p === "win32") return { id: "windows", label: "Windows" };
41
+ if (p === "linux") return { id: "linux", label: "Linux" };
42
+ return { id: p, label: p };
43
+ }
44
+
45
+ /** Resolve npm CLI that belongs to the same Node as process.execPath */
46
+ function resolveNpmForThisNode() {
47
+ const nodeDir = path.dirname(process.execPath);
48
+ const candidates = process.platform === "win32"
49
+ ? [
50
+ path.join(nodeDir, "npm.cmd"),
51
+ path.join(nodeDir, "npm"),
52
+ "npm.cmd",
53
+ "npm",
54
+ ]
55
+ : [
56
+ path.join(nodeDir, "npm"),
57
+ path.join(nodeDir, "..", "lib", "node_modules", "npm", "bin", "npm-cli.js"),
58
+ ];
59
+
60
+ for (const c of candidates) {
61
+ if (c === "npm" || c === "npm.cmd") continue;
62
+ if (fs.existsSync(c)) return c;
63
+ }
64
+
65
+ // Fall back to PATH npm (may differ on dual-Node boxes — we still force NODE)
66
+ try {
67
+ const which = process.platform === "win32" ? "where" : "which";
68
+ const out = execFileSync(which, ["npm"], { encoding: "utf8" }).trim().split(/\r?\n/)[0];
69
+ if (out) return out;
70
+ } catch {
71
+ /* ignore */
72
+ }
73
+ return process.platform === "win32" ? "npm.cmd" : "npm";
74
+ }
75
+
76
+ function runNpm(npmBin, args, opts = {}) {
77
+ const env = {
78
+ ...process.env,
79
+ npm_config_fund: "false",
80
+ npm_config_audit: "false",
81
+ npm_config_update_notifier: "false",
82
+ // Force nested tools to use this Node when possible
83
+ npm_node_execpath: process.execPath,
84
+ };
85
+
86
+ // If npmBin is npm-cli.js, invoke via node
87
+ const isJsCli = npmBin.endsWith("npm-cli.js");
88
+ const cmd = isJsCli ? process.execPath : npmBin;
89
+ const fullArgs = isJsCli ? [npmBin, ...args] : args;
90
+
91
+ const res = spawnSync(cmd, fullArgs, {
92
+ encoding: "utf8",
93
+ env,
94
+ shell: process.platform === "win32" && !isJsCli,
95
+ timeout: opts.timeout || 600_000,
96
+ });
97
+ return {
98
+ ok: res.status === 0,
99
+ status: res.status,
100
+ stdout: res.stdout || "",
101
+ stderr: res.stderr || "",
102
+ error: res.error,
103
+ };
104
+ }
105
+
106
+ function getGlobalRoot(npmBin) {
107
+ const res = runNpm(npmBin, ["root", "-g"], { timeout: 30_000 });
108
+ const line = (res.stdout || "").trim().split(/\r?\n/).filter(Boolean).pop();
109
+ if (line && fs.existsSync(line)) return line;
110
+ // Fallback guess
111
+ if (process.platform === "win32") {
112
+ return path.join(path.dirname(process.execPath), "node_modules");
113
+ }
114
+ return path.join(path.dirname(process.execPath), "..", "lib", "node_modules");
115
+ }
116
+
117
+ function getGlobalBin(npmBin) {
118
+ // npm 9+ removed `npm bin -g`. Prefer prefix/bin (Unix) or prefix (Windows).
119
+ const res = runNpm(npmBin, ["prefix", "-g"], { timeout: 30_000 });
120
+ const prefix = (res.stdout || "").trim().split(/\r?\n/).filter(Boolean).pop();
121
+ if (prefix && fs.existsSync(prefix)) {
122
+ if (process.platform === "win32") return prefix;
123
+ const bin = path.join(prefix, "bin");
124
+ if (fs.existsSync(bin)) return bin;
125
+ }
126
+ return path.dirname(process.execPath);
127
+ }
128
+
129
+ function forceRemoveGlobalPackage(globalRoot) {
130
+ const pkgDir = path.join(globalRoot, APP_NAME);
131
+ if (fs.existsSync(pkgDir)) {
132
+ log(`Removing previous install: ${pkgDir}`);
133
+ fs.rmSync(pkgDir, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 });
134
+ }
135
+ // npm ENOTEMPTY leftovers: .zevairouter-XXXX
136
+ try {
137
+ for (const name of fs.readdirSync(globalRoot)) {
138
+ if (name.startsWith(`.${APP_NAME}-`) || name === `.${APP_NAME}`) {
139
+ const p = path.join(globalRoot, name);
140
+ log(`Removing leftover: ${p}`);
141
+ fs.rmSync(p, { recursive: true, force: true, maxRetries: 5, retryDelay: 200 });
142
+ }
143
+ }
144
+ } catch {
145
+ /* ignore */
146
+ }
147
+ }
148
+
149
+ function forceRemoveBinLinks(globalBin) {
150
+ const names = process.platform === "win32"
151
+ ? [`${BIN_NAME}.cmd`, `${BIN_NAME}`, `${BIN_NAME}.ps1`]
152
+ : [BIN_NAME];
153
+ for (const name of names) {
154
+ const p = path.join(globalBin, name);
155
+ try {
156
+ if (fs.existsSync(p)) fs.rmSync(p, { force: true });
157
+ } catch {
158
+ /* ignore */
159
+ }
160
+ }
161
+ }
162
+
163
+ /**
164
+ * @param {{ version?: string, packageSpec?: string, forceClean?: boolean }} opts
165
+ * @returns {{ ok: boolean, version?: string, zevaiPath?: string, nodePath: string, npmPath: string, globalRoot: string, platform: object, error?: string, log?: string }}
166
+ */
167
+ function safeInstallGlobal(opts = {}) {
168
+ const platform = detectPlatform();
169
+ const version = opts.version || "latest";
170
+ const packageSpec = opts.packageSpec || `${APP_NAME}@${version}`;
171
+ const npmBin = resolveNpmForThisNode();
172
+ const globalRoot = getGlobalRoot(npmBin);
173
+ const globalBin = getGlobalBin(npmBin);
174
+
175
+ log(`OS: ${platform.label} (${process.platform}/${process.arch})`);
176
+ log(`Node: ${process.version} @ ${process.execPath}`);
177
+ log(`npm: ${npmBin}`);
178
+ log(`global root: ${globalRoot}`);
179
+ log(`global bin: ${globalBin}`);
180
+ log(`installing: ${packageSpec}`);
181
+
182
+ // Always soft-uninstall first (best effort)
183
+ runNpm(npmBin, ["uninstall", "-g", APP_NAME], { timeout: 120_000 });
184
+
185
+ // Hard clean if requested or after known ENOTEMPTY scenarios
186
+ if (opts.forceClean !== false) {
187
+ forceRemoveGlobalPackage(globalRoot);
188
+ forceRemoveBinLinks(globalBin);
189
+ }
190
+
191
+ let install = runNpm(npmBin, ["install", "-g", packageSpec, "--prefer-online"], {
192
+ timeout: 600_000,
193
+ });
194
+
195
+ // Retry once on ENOTEMPTY / rename failures
196
+ const errText = `${install.stderr}\n${install.stdout}\n${install.error || ""}`;
197
+ if (!install.ok && /ENOTEMPTY|directory not empty|rename/i.test(errText)) {
198
+ warn("ENOTEMPTY/rename failed — force-clean and retry once");
199
+ forceRemoveGlobalPackage(globalRoot);
200
+ forceRemoveBinLinks(globalBin);
201
+ install = runNpm(npmBin, ["install", "-g", packageSpec, "--prefer-online"], {
202
+ timeout: 600_000,
203
+ });
204
+ }
205
+
206
+ if (!install.ok) {
207
+ return {
208
+ ok: false,
209
+ nodePath: process.execPath,
210
+ npmPath: npmBin,
211
+ globalRoot,
212
+ platform,
213
+ error: errText.slice(0, 1500) || `npm exited ${install.status}`,
214
+ log: errText.slice(0, 3000),
215
+ };
216
+ }
217
+
218
+ // Resolve installed version + bin path
219
+ let installedVersion = null;
220
+ try {
221
+ const pkgJson = path.join(globalRoot, APP_NAME, "package.json");
222
+ installedVersion = JSON.parse(fs.readFileSync(pkgJson, "utf8")).version;
223
+ } catch {
224
+ /* ignore */
225
+ }
226
+
227
+ const zevaiPath = process.platform === "win32"
228
+ ? path.join(globalBin, `${BIN_NAME}.cmd`)
229
+ : path.join(globalBin, BIN_NAME);
230
+
231
+ // Dual-node warning
232
+ try {
233
+ const pathZevai = spawnSync(
234
+ process.platform === "win32" ? "where" : "which",
235
+ [BIN_NAME],
236
+ { encoding: "utf8", shell: process.platform === "win32" },
237
+ );
238
+ const first = (pathZevai.stdout || "").trim().split(/\r?\n/)[0];
239
+ if (first && fs.existsSync(zevaiPath) && path.resolve(first) !== path.resolve(zevaiPath)) {
240
+ warn(`PATH resolves '${BIN_NAME}' to ${first}`);
241
+ warn(`This install put binary at ${zevaiPath}`);
242
+ warn("Use the Node that owns this install, or put that bin dir first in PATH.");
243
+ }
244
+ } catch {
245
+ /* ignore */
246
+ }
247
+
248
+ log(`OK ${APP_NAME}@${installedVersion || "?"} → ${zevaiPath}`);
249
+ return {
250
+ ok: true,
251
+ version: installedVersion,
252
+ zevaiPath: fs.existsSync(zevaiPath) ? zevaiPath : null,
253
+ nodePath: process.execPath,
254
+ npmPath: npmBin,
255
+ globalRoot,
256
+ globalBin,
257
+ platform,
258
+ };
259
+ }
260
+
261
+ function printDoctor() {
262
+ const platform = detectPlatform();
263
+ const npmBin = resolveNpmForThisNode();
264
+ const globalRoot = getGlobalRoot(npmBin);
265
+ const globalBin = getGlobalBin(npmBin);
266
+ const pkgDir = path.join(globalRoot, APP_NAME);
267
+ let ver = null;
268
+ try {
269
+ ver = JSON.parse(fs.readFileSync(path.join(pkgDir, "package.json"), "utf8")).version;
270
+ } catch {
271
+ ver = null;
272
+ }
273
+
274
+ console.log(`
275
+ Zevai install doctor
276
+ ────────────────────
277
+ OS: ${platform.label} (${process.platform}/${process.arch})
278
+ Node: ${process.version}
279
+ Node path: ${process.execPath}
280
+ npm: ${npmBin}
281
+ global root: ${globalRoot}
282
+ global bin: ${globalBin}
283
+ package dir: ${pkgDir} ${fs.existsSync(pkgDir) ? "(exists)" : "(missing)"}
284
+ version: ${ver || "not installed for this Node"}
285
+ home data: ${path.join(os.homedir(), ".zevai")}
286
+ `);
287
+
288
+ // PATH zevai
289
+ try {
290
+ const out = spawnSync(
291
+ process.platform === "win32" ? "where" : "which",
292
+ ["-a", BIN_NAME],
293
+ { encoding: "utf8", shell: process.platform === "win32" },
294
+ );
295
+ const lines = (out.stdout || "").trim().split(/\r?\n/).filter(Boolean);
296
+ if (lines.length) {
297
+ console.log(" PATH zevai binaries:");
298
+ for (const l of lines) console.log(` - ${l}`);
299
+ if (lines.length > 1) {
300
+ console.log("\n ⚠ Multiple zevai on PATH — use one Node only (nvm use / brew unlink).");
301
+ }
302
+ }
303
+ } catch {
304
+ console.log(" PATH zevai: not found");
305
+ }
306
+ console.log("");
307
+ }
308
+
309
+ // CLI entry
310
+ if (require.main === module) {
311
+ const args = process.argv.slice(2);
312
+ if (args.includes("--doctor") || args.includes("doctor")) {
313
+ printDoctor();
314
+ process.exit(0);
315
+ }
316
+ let version = "latest";
317
+ const vi = args.indexOf("--version");
318
+ if (vi >= 0 && args[vi + 1]) version = args[vi + 1];
319
+ if (args.includes("--latest")) version = "latest";
320
+ const forceClean = !args.includes("--no-clean");
321
+
322
+ const result = safeInstallGlobal({ version, forceClean });
323
+ if (!result.ok) {
324
+ console.error(result.error || "install failed");
325
+ process.exit(1);
326
+ }
327
+ console.log(`\nDone. Run: zevai --version`);
328
+ if (result.zevaiPath) console.log(`Binary: ${result.zevaiPath}`);
329
+ process.exit(0);
330
+ }
331
+
332
+ module.exports = {
333
+ safeInstallGlobal,
334
+ printDoctor,
335
+ detectPlatform,
336
+ resolveNpmForThisNode,
337
+ getGlobalRoot,
338
+ APP_NAME,
339
+ BIN_NAME,
340
+ };
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter-cli",
3
- "version": "1.0.70",
3
+ "version": "1.0.73",
4
4
  "description": "ZevaiRouter CLI - Start and manage ZevaiRouter server",
5
5
  "bin": {
6
6
  "zevai": "./cli.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zevairouter",
3
- "version": "1.0.70",
3
+ "version": "1.0.73",
4
4
  "description": "Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard",
5
5
  "bin": {
6
6
  "zevai": "./cli/cli.js"
@@ -437,15 +437,15 @@ export async function createFreshContext(browser, proxy) {
437
437
  }
438
438
 
439
439
  const page = await context.newPage();
440
- // Residential proxies often hang on third-party trackers; abort so SPA can boot
440
+ // Abort third-party trackers only. Do NOT intercept "**/*" with continue() —
441
+ // Playwright route interception on every request breaks Google→Cognito OAuth
442
+ // redirect chains (consent 302 → idpresponse 302 → kiro:// Location is dropped
443
+ // and the main frame parks forever on empty SetSID).
441
444
  try {
442
- await page.route("**/*", (route) => {
443
- const u = route.request().url();
444
- if (/googletagmanager|googleadservices|google-analytics|doubleclick|facebook\.net|hotjar|clarity\.ms|hm\.baidu|sentry\.io|browser\.sentry-cdn/i.test(u)) {
445
- return route.abort();
446
- }
447
- return route.continue();
448
- });
445
+ await page.route(
446
+ /googletagmanager|googleadservices|google-analytics|doubleclick|facebook\.net|hotjar|clarity\.ms|hm\.baidu|sentry\.io|browser\.sentry-cdn/i,
447
+ (route) => route.abort(),
448
+ );
449
449
  } catch {
450
450
  // ignore if route fails
451
451
  }