zevairouter 1.1.36 → 1.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (932) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +38 -1
  3. package/README.zh-CN.md +1 -0
  4. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  5. package/cli/app/.next-cli-build/app-path-routes-manifest.json +13 -11
  6. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  7. package/cli/app/.next-cli-build/prerender-manifest.json +4 -4
  8. package/cli/app/.next-cli-build/routes-manifest.json +14 -0
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +9 -9
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  68. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  69. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  70. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  71. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  72. package/cli/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  75. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  77. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  78. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +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/oidc/callback/route.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js +2 -2
  87. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js +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/cache/stats/route.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +4 -4
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  94. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  95. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  102. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  103. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  104. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
  105. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  106. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  111. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +2 -2
  135. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  136. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js +2 -2
  212. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js +1 -0
  213. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js.nft.json +1 -0
  214. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route_client-reference-manifest.js +1 -0
  215. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/providers/kiro/discover-models/route.js +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/providers/route.js +2 -2
  220. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  230. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  231. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  232. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  233. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  234. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  235. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  236. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  237. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  250. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  253. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  264. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js +2 -2
  275. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  277. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js +1 -0
  294. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -0
  295. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route_client-reference-manifest.js +1 -0
  296. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/callback/page.js +1 -1
  307. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  309. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  310. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  311. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  312. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  313. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  314. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +3 -3
  315. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +3 -3
  316. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +3 -3
  317. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +1 -1
  318. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  319. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  320. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  321. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  322. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  323. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  324. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  325. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  326. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  327. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  328. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  329. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  330. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  331. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  332. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  333. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  334. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +3 -3
  335. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +3 -3
  336. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +3 -3
  337. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +1 -1
  338. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  339. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  340. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  341. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  342. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  343. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  344. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  345. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  346. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  347. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  348. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  349. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  350. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  351. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  352. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  353. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  354. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +3 -3
  355. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +3 -3
  356. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +3 -3
  357. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +1 -1
  358. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  359. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  360. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  361. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  362. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  363. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  364. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  365. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  366. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  367. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  368. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  369. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  370. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  371. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  372. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  373. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  374. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  375. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  376. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  377. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  378. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  379. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  380. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  381. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  382. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  383. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  384. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  385. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  386. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  387. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  388. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  389. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  390. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  391. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  392. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  393. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  394. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  395. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  396. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  397. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  398. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  399. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  400. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  401. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  402. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  403. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  404. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  405. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  406. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  407. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  408. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  409. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  410. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  411. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  412. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  413. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  414. package/cli/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  415. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  416. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  417. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  418. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  419. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  420. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  421. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  422. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  423. package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
  424. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  425. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  426. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  427. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  428. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  429. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  430. package/cli/app/.next-cli-build/server/app/login/page.js +1 -1
  431. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  432. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  433. package/cli/app/.next-cli-build/server/app/login.rsc +3 -3
  434. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  435. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  436. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  437. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  438. package/cli/app/.next-cli-build/server/app/page.js +1 -1
  439. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  440. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js +2 -2
  441. package/cli/app/.next-cli-build/server/app-paths-manifest.json +13 -11
  442. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  443. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  444. package/cli/app/.next-cli-build/server/chunks/2299.js +1 -1
  445. package/cli/app/.next-cli-build/server/chunks/3477.js +1 -1
  446. package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
  447. package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
  448. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  449. package/cli/app/.next-cli-build/server/chunks/5019.js +1 -1
  450. package/cli/app/.next-cli-build/server/chunks/5436.js +1 -1
  451. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  452. package/cli/app/.next-cli-build/server/chunks/6846.js +1 -1
  453. package/cli/app/.next-cli-build/server/chunks/7170.js +1 -1
  454. package/cli/app/.next-cli-build/server/chunks/7319.js +19 -19
  455. package/cli/app/.next-cli-build/server/chunks/7634.js +1 -1
  456. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  457. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  458. package/cli/app/.next-cli-build/server/middleware.js +1 -1
  459. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  460. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  461. package/cli/app/.next-cli-build/server/preview-props.json +3 -3
  462. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  463. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  464. package/cli/app/.next-cli-build/static/chunks/{5497-07fd56ae6cf0f59f.js → 5497-74f6311426810796.js} +3 -3
  465. package/cli/app/.next-cli-build/static/chunks/620-b9f4de494966acab.js +1 -0
  466. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-d580298598ba5275.js +58 -0
  467. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-cc4cd8701a14c45e.js +3 -0
  468. package/cli/app/.next-cli-build/static/chunks/app/_global-error/{page-378a2e64adcc5f02.js → page-3fd3d1141471fe7d.js} +1 -1
  469. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/{route-378a2e64adcc5f02.js → route-3fd3d1141471fe7d.js} +1 -1
  470. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/{route-378a2e64adcc5f02.js → route-3fd3d1141471fe7d.js} +1 -1
  471. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/{route-378a2e64adcc5f02.js → route-3fd3d1141471fe7d.js} +1 -1
  472. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-3fd3d1141471fe7d.js +1 -0
  473. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-3fd3d1141471fe7d.js +1 -0
  474. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-3fd3d1141471fe7d.js +1 -0
  475. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-3fd3d1141471fe7d.js +1 -0
  476. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-3fd3d1141471fe7d.js +1 -0
  477. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-3fd3d1141471fe7d.js +1 -0
  478. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-3fd3d1141471fe7d.js +1 -0
  479. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-3fd3d1141471fe7d.js +1 -0
  480. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-3fd3d1141471fe7d.js +1 -0
  481. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-3fd3d1141471fe7d.js +1 -0
  482. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-3fd3d1141471fe7d.js +1 -0
  483. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-3fd3d1141471fe7d.js +1 -0
  484. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-3fd3d1141471fe7d.js +1 -0
  485. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-3fd3d1141471fe7d.js +1 -0
  486. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-3fd3d1141471fe7d.js +1 -0
  487. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-3fd3d1141471fe7d.js +1 -0
  488. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-3fd3d1141471fe7d.js +1 -0
  489. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-3fd3d1141471fe7d.js +1 -0
  490. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-3fd3d1141471fe7d.js +1 -0
  491. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-3fd3d1141471fe7d.js +1 -0
  492. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-3fd3d1141471fe7d.js +1 -0
  493. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-3fd3d1141471fe7d.js +1 -0
  494. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-3fd3d1141471fe7d.js +1 -0
  495. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-3fd3d1141471fe7d.js +1 -0
  496. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-3fd3d1141471fe7d.js +1 -0
  497. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-3fd3d1141471fe7d.js +1 -0
  498. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-3fd3d1141471fe7d.js +1 -0
  499. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-3fd3d1141471fe7d.js +1 -0
  500. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-3fd3d1141471fe7d.js +1 -0
  501. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-3fd3d1141471fe7d.js +1 -0
  502. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-3fd3d1141471fe7d.js +1 -0
  503. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-3fd3d1141471fe7d.js +1 -0
  504. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-3fd3d1141471fe7d.js +1 -0
  505. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-3fd3d1141471fe7d.js +1 -0
  506. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-3fd3d1141471fe7d.js +1 -0
  507. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-3fd3d1141471fe7d.js +1 -0
  508. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-3fd3d1141471fe7d.js +1 -0
  509. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-3fd3d1141471fe7d.js +1 -0
  510. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-3fd3d1141471fe7d.js +1 -0
  511. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-3fd3d1141471fe7d.js +1 -0
  512. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-3fd3d1141471fe7d.js +1 -0
  513. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-3fd3d1141471fe7d.js +1 -0
  514. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-3fd3d1141471fe7d.js +1 -0
  515. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-3fd3d1141471fe7d.js +1 -0
  516. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-3fd3d1141471fe7d.js +1 -0
  517. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-3fd3d1141471fe7d.js +1 -0
  518. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-3fd3d1141471fe7d.js +1 -0
  519. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-3fd3d1141471fe7d.js +1 -0
  520. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-3fd3d1141471fe7d.js +1 -0
  521. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-3fd3d1141471fe7d.js +1 -0
  522. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-3fd3d1141471fe7d.js +1 -0
  523. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-3fd3d1141471fe7d.js +1 -0
  524. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-3fd3d1141471fe7d.js +1 -0
  525. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-3fd3d1141471fe7d.js +1 -0
  526. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-3fd3d1141471fe7d.js +1 -0
  527. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-3fd3d1141471fe7d.js +1 -0
  528. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-3fd3d1141471fe7d.js +1 -0
  529. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-3fd3d1141471fe7d.js +1 -0
  530. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-3fd3d1141471fe7d.js +1 -0
  531. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-3fd3d1141471fe7d.js +1 -0
  532. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-3fd3d1141471fe7d.js +1 -0
  533. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-3fd3d1141471fe7d.js +1 -0
  534. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-3fd3d1141471fe7d.js +1 -0
  535. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-3fd3d1141471fe7d.js +1 -0
  536. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-3fd3d1141471fe7d.js +1 -0
  537. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-3fd3d1141471fe7d.js +1 -0
  538. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-3fd3d1141471fe7d.js +1 -0
  539. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  540. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  541. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  542. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  543. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  544. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  545. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  546. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  547. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  548. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  549. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  550. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  551. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  552. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  553. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  554. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-3fd3d1141471fe7d.js +1 -0
  555. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-3fd3d1141471fe7d.js +1 -0
  556. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  557. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  558. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  559. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  560. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  561. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-3fd3d1141471fe7d.js +1 -0
  562. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-3fd3d1141471fe7d.js +1 -0
  563. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-3fd3d1141471fe7d.js +1 -0
  564. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-3fd3d1141471fe7d.js +1 -0
  565. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-3fd3d1141471fe7d.js +1 -0
  566. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-3fd3d1141471fe7d.js +1 -0
  567. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  568. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  569. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  570. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  571. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  572. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-3fd3d1141471fe7d.js +1 -0
  573. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-3fd3d1141471fe7d.js +1 -0
  574. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-3fd3d1141471fe7d.js +1 -0
  575. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-3fd3d1141471fe7d.js +1 -0
  576. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  577. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  578. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  579. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  580. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  581. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-3fd3d1141471fe7d.js +1 -0
  582. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-3fd3d1141471fe7d.js +1 -0
  583. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-3fd3d1141471fe7d.js +1 -0
  584. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-3fd3d1141471fe7d.js +1 -0
  585. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-3fd3d1141471fe7d.js +1 -0
  586. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-3fd3d1141471fe7d.js +1 -0
  587. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-3fd3d1141471fe7d.js +1 -0
  588. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-3fd3d1141471fe7d.js +1 -0
  589. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-3fd3d1141471fe7d.js +1 -0
  590. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-3fd3d1141471fe7d.js +1 -0
  591. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-3fd3d1141471fe7d.js +1 -0
  592. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-3fd3d1141471fe7d.js +1 -0
  593. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-3fd3d1141471fe7d.js +1 -0
  594. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-3fd3d1141471fe7d.js +1 -0
  595. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-3fd3d1141471fe7d.js +1 -0
  596. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-3fd3d1141471fe7d.js +1 -0
  597. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-3fd3d1141471fe7d.js +1 -0
  598. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-3fd3d1141471fe7d.js +1 -0
  599. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-3fd3d1141471fe7d.js +1 -0
  600. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-3fd3d1141471fe7d.js +1 -0
  601. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/import/route-3fd3d1141471fe7d.js +1 -0
  602. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-3fd3d1141471fe7d.js +1 -0
  603. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/discover-models/route-3fd3d1141471fe7d.js +1 -0
  604. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/models/route-3fd3d1141471fe7d.js +1 -0
  605. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-3fd3d1141471fe7d.js +1 -0
  606. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-3fd3d1141471fe7d.js +1 -0
  607. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-3fd3d1141471fe7d.js +1 -0
  608. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-3fd3d1141471fe7d.js +1 -0
  609. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-3fd3d1141471fe7d.js +1 -0
  610. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-3fd3d1141471fe7d.js +1 -0
  611. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-3fd3d1141471fe7d.js +1 -0
  612. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-3fd3d1141471fe7d.js +1 -0
  613. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-3fd3d1141471fe7d.js +1 -0
  614. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-3fd3d1141471fe7d.js +1 -0
  615. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-3fd3d1141471fe7d.js +1 -0
  616. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-3fd3d1141471fe7d.js +1 -0
  617. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-3fd3d1141471fe7d.js +1 -0
  618. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-3fd3d1141471fe7d.js +1 -0
  619. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-3fd3d1141471fe7d.js +1 -0
  620. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-3fd3d1141471fe7d.js +1 -0
  621. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-3fd3d1141471fe7d.js +1 -0
  622. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-3fd3d1141471fe7d.js +1 -0
  623. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-3fd3d1141471fe7d.js +1 -0
  624. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-3fd3d1141471fe7d.js +1 -0
  625. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-3fd3d1141471fe7d.js +1 -0
  626. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-3fd3d1141471fe7d.js +1 -0
  627. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-3fd3d1141471fe7d.js +1 -0
  628. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-3fd3d1141471fe7d.js +1 -0
  629. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-3fd3d1141471fe7d.js +1 -0
  630. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-3fd3d1141471fe7d.js +1 -0
  631. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-3fd3d1141471fe7d.js +1 -0
  632. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-3fd3d1141471fe7d.js +1 -0
  633. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-3fd3d1141471fe7d.js +1 -0
  634. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-3fd3d1141471fe7d.js +1 -0
  635. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-3fd3d1141471fe7d.js +1 -0
  636. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-3fd3d1141471fe7d.js +1 -0
  637. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-3fd3d1141471fe7d.js +1 -0
  638. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-3fd3d1141471fe7d.js +1 -0
  639. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-3fd3d1141471fe7d.js +1 -0
  640. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-3fd3d1141471fe7d.js +1 -0
  641. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-3fd3d1141471fe7d.js +1 -0
  642. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-3fd3d1141471fe7d.js +1 -0
  643. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-3fd3d1141471fe7d.js +1 -0
  644. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-3fd3d1141471fe7d.js +1 -0
  645. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-3fd3d1141471fe7d.js +1 -0
  646. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-3fd3d1141471fe7d.js +1 -0
  647. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-3fd3d1141471fe7d.js +1 -0
  648. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-3fd3d1141471fe7d.js +1 -0
  649. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-3fd3d1141471fe7d.js +1 -0
  650. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-3fd3d1141471fe7d.js +1 -0
  651. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-3fd3d1141471fe7d.js +1 -0
  652. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-3fd3d1141471fe7d.js +1 -0
  653. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-3fd3d1141471fe7d.js +1 -0
  654. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-3fd3d1141471fe7d.js +1 -0
  655. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-3fd3d1141471fe7d.js +1 -0
  656. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-3fd3d1141471fe7d.js +1 -0
  657. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-3fd3d1141471fe7d.js +1 -0
  658. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-3fd3d1141471fe7d.js +1 -0
  659. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-3fd3d1141471fe7d.js +1 -0
  660. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-3fd3d1141471fe7d.js +1 -0
  661. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-3fd3d1141471fe7d.js +1 -0
  662. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-3fd3d1141471fe7d.js +1 -0
  663. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-3fd3d1141471fe7d.js +1 -0
  664. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-3fd3d1141471fe7d.js +1 -0
  665. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-3fd3d1141471fe7d.js +1 -0
  666. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-3fd3d1141471fe7d.js +1 -0
  667. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-3fd3d1141471fe7d.js +1 -0
  668. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-3fd3d1141471fe7d.js +1 -0
  669. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-3fd3d1141471fe7d.js +1 -0
  670. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-3fd3d1141471fe7d.js +1 -0
  671. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-3fd3d1141471fe7d.js +1 -0
  672. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-3fd3d1141471fe7d.js +1 -0
  673. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-3fd3d1141471fe7d.js +1 -0
  674. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-3fd3d1141471fe7d.js +1 -0
  675. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-3fd3d1141471fe7d.js +1 -0
  676. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-3fd3d1141471fe7d.js +1 -0
  677. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-3fd3d1141471fe7d.js +1 -0
  678. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-3fd3d1141471fe7d.js +1 -0
  679. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-3fd3d1141471fe7d.js +1 -0
  680. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/content/route-3fd3d1141471fe7d.js +1 -0
  681. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-3fd3d1141471fe7d.js +1 -0
  682. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-3fd3d1141471fe7d.js +1 -0
  683. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-3fd3d1141471fe7d.js +1 -0
  684. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-3fd3d1141471fe7d.js +1 -0
  685. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-3fd3d1141471fe7d.js +1 -0
  686. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-3fd3d1141471fe7d.js +1 -0
  687. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-3fd3d1141471fe7d.js +1 -0
  688. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-3fd3d1141471fe7d.js +1 -0
  689. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-3fd3d1141471fe7d.js +1 -0
  690. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-3fd3d1141471fe7d.js +1 -0
  691. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-3fd3d1141471fe7d.js +1 -0
  692. package/cli/app/.next-cli-build/static/chunks/app/page-3fd3d1141471fe7d.js +1 -0
  693. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-3fd3d1141471fe7d.js +1 -0
  694. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-3fd3d1141471fe7d.js +1 -0
  695. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-3fd3d1141471fe7d.js +1 -0
  696. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-3fd3d1141471fe7d.js +1 -0
  697. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-3fd3d1141471fe7d.js +1 -0
  698. package/cli/app/.next-cli-build/static/irN0Xw2r75K1uQTN_Q0Xt/_buildManifest.js +1 -0
  699. package/cli/app/CHANGELOG.md +21 -0
  700. package/cli/app/package.json +2 -1
  701. package/cli/package.json +1 -1
  702. package/package.json +2 -1
  703. package/scripts/gflow-reply-capture.py +328 -0
  704. package/cli/app/.next-cli-build/static/6BxpHYWafFD2nAI-i4lUw/_buildManifest.js +0 -1
  705. package/cli/app/.next-cli-build/static/chunks/620-cd16b23a3e600312.js +0 -1
  706. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-f769b7591eebddf5.js +0 -58
  707. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-b182e3cb24f86f4b.js +0 -3
  708. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-378a2e64adcc5f02.js +0 -1
  709. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-378a2e64adcc5f02.js +0 -1
  710. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-378a2e64adcc5f02.js +0 -1
  711. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-378a2e64adcc5f02.js +0 -1
  712. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-378a2e64adcc5f02.js +0 -1
  713. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-378a2e64adcc5f02.js +0 -1
  714. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-378a2e64adcc5f02.js +0 -1
  715. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-378a2e64adcc5f02.js +0 -1
  716. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-378a2e64adcc5f02.js +0 -1
  717. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-378a2e64adcc5f02.js +0 -1
  718. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-378a2e64adcc5f02.js +0 -1
  719. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-378a2e64adcc5f02.js +0 -1
  720. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-378a2e64adcc5f02.js +0 -1
  721. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-378a2e64adcc5f02.js +0 -1
  722. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-378a2e64adcc5f02.js +0 -1
  723. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-378a2e64adcc5f02.js +0 -1
  724. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-378a2e64adcc5f02.js +0 -1
  725. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-378a2e64adcc5f02.js +0 -1
  726. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-378a2e64adcc5f02.js +0 -1
  727. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-378a2e64adcc5f02.js +0 -1
  728. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-378a2e64adcc5f02.js +0 -1
  729. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-378a2e64adcc5f02.js +0 -1
  730. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-378a2e64adcc5f02.js +0 -1
  731. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-378a2e64adcc5f02.js +0 -1
  732. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-378a2e64adcc5f02.js +0 -1
  733. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-378a2e64adcc5f02.js +0 -1
  734. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-378a2e64adcc5f02.js +0 -1
  735. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-378a2e64adcc5f02.js +0 -1
  736. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-378a2e64adcc5f02.js +0 -1
  737. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-378a2e64adcc5f02.js +0 -1
  738. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-378a2e64adcc5f02.js +0 -1
  739. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-378a2e64adcc5f02.js +0 -1
  740. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-378a2e64adcc5f02.js +0 -1
  741. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-378a2e64adcc5f02.js +0 -1
  742. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-378a2e64adcc5f02.js +0 -1
  743. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-378a2e64adcc5f02.js +0 -1
  744. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-378a2e64adcc5f02.js +0 -1
  745. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-378a2e64adcc5f02.js +0 -1
  746. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-378a2e64adcc5f02.js +0 -1
  747. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-378a2e64adcc5f02.js +0 -1
  748. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-378a2e64adcc5f02.js +0 -1
  749. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-378a2e64adcc5f02.js +0 -1
  750. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-378a2e64adcc5f02.js +0 -1
  751. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-378a2e64adcc5f02.js +0 -1
  752. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-378a2e64adcc5f02.js +0 -1
  753. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-378a2e64adcc5f02.js +0 -1
  754. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-378a2e64adcc5f02.js +0 -1
  755. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-378a2e64adcc5f02.js +0 -1
  756. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-378a2e64adcc5f02.js +0 -1
  757. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-378a2e64adcc5f02.js +0 -1
  758. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-378a2e64adcc5f02.js +0 -1
  759. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-378a2e64adcc5f02.js +0 -1
  760. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-378a2e64adcc5f02.js +0 -1
  761. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-378a2e64adcc5f02.js +0 -1
  762. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-378a2e64adcc5f02.js +0 -1
  763. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-378a2e64adcc5f02.js +0 -1
  764. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-378a2e64adcc5f02.js +0 -1
  765. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-378a2e64adcc5f02.js +0 -1
  766. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-378a2e64adcc5f02.js +0 -1
  767. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-378a2e64adcc5f02.js +0 -1
  768. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-378a2e64adcc5f02.js +0 -1
  769. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-378a2e64adcc5f02.js +0 -1
  770. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-378a2e64adcc5f02.js +0 -1
  771. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-378a2e64adcc5f02.js +0 -1
  772. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-378a2e64adcc5f02.js +0 -1
  773. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-378a2e64adcc5f02.js +0 -1
  774. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-378a2e64adcc5f02.js +0 -1
  775. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  776. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  777. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  778. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  779. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-378a2e64adcc5f02.js +0 -1
  780. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  781. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  782. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  783. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  784. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-378a2e64adcc5f02.js +0 -1
  785. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  786. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  787. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  788. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  789. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-378a2e64adcc5f02.js +0 -1
  790. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-378a2e64adcc5f02.js +0 -1
  791. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-378a2e64adcc5f02.js +0 -1
  792. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  793. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  794. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  795. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  796. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-378a2e64adcc5f02.js +0 -1
  797. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-378a2e64adcc5f02.js +0 -1
  798. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-378a2e64adcc5f02.js +0 -1
  799. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-378a2e64adcc5f02.js +0 -1
  800. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-378a2e64adcc5f02.js +0 -1
  801. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-378a2e64adcc5f02.js +0 -1
  802. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-378a2e64adcc5f02.js +0 -1
  803. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  804. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  805. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  806. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  807. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-378a2e64adcc5f02.js +0 -1
  808. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-378a2e64adcc5f02.js +0 -1
  809. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-378a2e64adcc5f02.js +0 -1
  810. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-378a2e64adcc5f02.js +0 -1
  811. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-378a2e64adcc5f02.js +0 -1
  812. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  813. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  814. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  815. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  816. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-378a2e64adcc5f02.js +0 -1
  817. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-378a2e64adcc5f02.js +0 -1
  818. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-378a2e64adcc5f02.js +0 -1
  819. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-378a2e64adcc5f02.js +0 -1
  820. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-378a2e64adcc5f02.js +0 -1
  821. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-378a2e64adcc5f02.js +0 -1
  822. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-378a2e64adcc5f02.js +0 -1
  823. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-378a2e64adcc5f02.js +0 -1
  824. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-378a2e64adcc5f02.js +0 -1
  825. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-378a2e64adcc5f02.js +0 -1
  826. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-378a2e64adcc5f02.js +0 -1
  827. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-378a2e64adcc5f02.js +0 -1
  828. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-378a2e64adcc5f02.js +0 -1
  829. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-378a2e64adcc5f02.js +0 -1
  830. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-378a2e64adcc5f02.js +0 -1
  831. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-378a2e64adcc5f02.js +0 -1
  832. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-378a2e64adcc5f02.js +0 -1
  833. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-378a2e64adcc5f02.js +0 -1
  834. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-378a2e64adcc5f02.js +0 -1
  835. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-378a2e64adcc5f02.js +0 -1
  836. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-378a2e64adcc5f02.js +0 -1
  837. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-378a2e64adcc5f02.js +0 -1
  838. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/discover-models/route-378a2e64adcc5f02.js +0 -1
  839. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/models/route-378a2e64adcc5f02.js +0 -1
  840. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-378a2e64adcc5f02.js +0 -1
  841. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-378a2e64adcc5f02.js +0 -1
  842. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-378a2e64adcc5f02.js +0 -1
  843. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-378a2e64adcc5f02.js +0 -1
  844. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-378a2e64adcc5f02.js +0 -1
  845. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-378a2e64adcc5f02.js +0 -1
  846. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-378a2e64adcc5f02.js +0 -1
  847. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-378a2e64adcc5f02.js +0 -1
  848. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-378a2e64adcc5f02.js +0 -1
  849. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-378a2e64adcc5f02.js +0 -1
  850. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-378a2e64adcc5f02.js +0 -1
  851. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-378a2e64adcc5f02.js +0 -1
  852. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-378a2e64adcc5f02.js +0 -1
  853. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-378a2e64adcc5f02.js +0 -1
  854. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-378a2e64adcc5f02.js +0 -1
  855. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-378a2e64adcc5f02.js +0 -1
  856. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-378a2e64adcc5f02.js +0 -1
  857. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-378a2e64adcc5f02.js +0 -1
  858. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-378a2e64adcc5f02.js +0 -1
  859. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-378a2e64adcc5f02.js +0 -1
  860. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-378a2e64adcc5f02.js +0 -1
  861. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-378a2e64adcc5f02.js +0 -1
  862. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-378a2e64adcc5f02.js +0 -1
  863. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-378a2e64adcc5f02.js +0 -1
  864. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-378a2e64adcc5f02.js +0 -1
  865. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-378a2e64adcc5f02.js +0 -1
  866. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-378a2e64adcc5f02.js +0 -1
  867. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-378a2e64adcc5f02.js +0 -1
  868. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-378a2e64adcc5f02.js +0 -1
  869. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-378a2e64adcc5f02.js +0 -1
  870. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-378a2e64adcc5f02.js +0 -1
  871. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-378a2e64adcc5f02.js +0 -1
  872. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-378a2e64adcc5f02.js +0 -1
  873. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-378a2e64adcc5f02.js +0 -1
  874. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-378a2e64adcc5f02.js +0 -1
  875. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-378a2e64adcc5f02.js +0 -1
  876. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-378a2e64adcc5f02.js +0 -1
  877. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-378a2e64adcc5f02.js +0 -1
  878. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-378a2e64adcc5f02.js +0 -1
  879. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-378a2e64adcc5f02.js +0 -1
  880. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-378a2e64adcc5f02.js +0 -1
  881. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-378a2e64adcc5f02.js +0 -1
  882. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-378a2e64adcc5f02.js +0 -1
  883. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-378a2e64adcc5f02.js +0 -1
  884. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-378a2e64adcc5f02.js +0 -1
  885. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-378a2e64adcc5f02.js +0 -1
  886. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-378a2e64adcc5f02.js +0 -1
  887. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-378a2e64adcc5f02.js +0 -1
  888. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-378a2e64adcc5f02.js +0 -1
  889. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-378a2e64adcc5f02.js +0 -1
  890. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-378a2e64adcc5f02.js +0 -1
  891. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-378a2e64adcc5f02.js +0 -1
  892. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-378a2e64adcc5f02.js +0 -1
  893. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-378a2e64adcc5f02.js +0 -1
  894. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-378a2e64adcc5f02.js +0 -1
  895. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-378a2e64adcc5f02.js +0 -1
  896. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-378a2e64adcc5f02.js +0 -1
  897. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-378a2e64adcc5f02.js +0 -1
  898. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-378a2e64adcc5f02.js +0 -1
  899. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-378a2e64adcc5f02.js +0 -1
  900. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-378a2e64adcc5f02.js +0 -1
  901. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-378a2e64adcc5f02.js +0 -1
  902. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-378a2e64adcc5f02.js +0 -1
  903. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-378a2e64adcc5f02.js +0 -1
  904. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-378a2e64adcc5f02.js +0 -1
  905. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-378a2e64adcc5f02.js +0 -1
  906. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-378a2e64adcc5f02.js +0 -1
  907. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-378a2e64adcc5f02.js +0 -1
  908. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-378a2e64adcc5f02.js +0 -1
  909. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-378a2e64adcc5f02.js +0 -1
  910. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-378a2e64adcc5f02.js +0 -1
  911. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-378a2e64adcc5f02.js +0 -1
  912. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-378a2e64adcc5f02.js +0 -1
  913. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-378a2e64adcc5f02.js +0 -1
  914. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-378a2e64adcc5f02.js +0 -1
  915. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-378a2e64adcc5f02.js +0 -1
  916. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-378a2e64adcc5f02.js +0 -1
  917. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-378a2e64adcc5f02.js +0 -1
  918. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-378a2e64adcc5f02.js +0 -1
  919. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-378a2e64adcc5f02.js +0 -1
  920. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-378a2e64adcc5f02.js +0 -1
  921. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-378a2e64adcc5f02.js +0 -1
  922. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-378a2e64adcc5f02.js +0 -1
  923. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-378a2e64adcc5f02.js +0 -1
  924. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-378a2e64adcc5f02.js +0 -1
  925. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-378a2e64adcc5f02.js +0 -1
  926. package/cli/app/.next-cli-build/static/chunks/app/page-378a2e64adcc5f02.js +0 -1
  927. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-378a2e64adcc5f02.js +0 -1
  928. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-378a2e64adcc5f02.js +0 -1
  929. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-378a2e64adcc5f02.js +0 -1
  930. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-378a2e64adcc5f02.js +0 -1
  931. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-378a2e64adcc5f02.js +0 -1
  932. /package/cli/app/.next-cli-build/static/{6BxpHYWafFD2nAI-i4lUw → irN0Xw2r75K1uQTN_Q0Xt}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (()=>{var a={};a.id=7208,a.ids=[7208],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>j,dynamic:()=>i});var d=c(23211),e=c(29021),f=c.n(e),g=c(33873),h=c.n(g);let i="force-dynamic";async function j(){let a=function(){for(let a of[h().resolve(process.cwd(),"..","..","CHANGELOG.md"),h().join(process.cwd(),"CHANGELOG.md"),h().resolve(process.cwd(),"..","CHANGELOG.md"),h().resolve(process.cwd(),"cli","app","CHANGELOG.md")])try{if(f().existsSync(a))return a}catch{}return null}();if(!a)return d.NextResponse.json({error:"CHANGELOG.md not found"},{status:404});try{let b=f().readFileSync(a,"utf8");return new d.NextResponse(b,{headers:{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"public, max-age=300"}})}catch(a){return d.NextResponse.json({error:a.message},{status:500})}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},40252:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/changelog/route",pathname:"/api/changelog",filename:"route",bundlePath:"app/api/changelog/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/changelog/route.js",nextConfigOutput:"standalone",userland:()=>c(4048),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/changelog/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=40252));module.exports=c})();
1
+ (()=>{var a={};a.id=7208,a.ids=[7208],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>j,dynamic:()=>i});var d=c(23211),e=c(29021),f=c.n(e),g=c(33873),h=c.n(g);let i="force-dynamic";async function j(){let a=function(){for(let a of[h().resolve(process.cwd(),"..","..","CHANGELOG.md"),h().join(process.cwd(),"CHANGELOG.md"),h().resolve(process.cwd(),"..","CHANGELOG.md"),h().resolve(process.cwd(),"cli","app","CHANGELOG.md")])try{if(f().existsSync(a))return a}catch{}return null}();if(!a)return d.NextResponse.json({error:"CHANGELOG.md not found"},{status:404});try{let b=f().readFileSync(a,"utf8");return new d.NextResponse(b,{headers:{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"public, max-age=300"}})}catch(a){return d.NextResponse.json({error:a.message},{status:500})}}},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{},96873:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/changelog/route",pathname:"/api/changelog",filename:"route",bundlePath:"app/api/changelog/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/changelog/route.js",nextConfigOutput:"standalone",userland:()=>c(4048),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/changelog/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813],()=>b(b.s=96873));module.exports=c})();
@@ -1,11 +1,11 @@
1
- "use strict";(()=>{var a={};a.id=4761,a.ids=[4761],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4126:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>y,GET:()=>v,POST:()=>x});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=a=>"string"==typeof a?a:a&&"object"==typeof a?a.primary??"":"",q=()=>k().join(m().homedir(),".openclaw"),r=()=>k().join(q(),"openclaw.json"),s=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where openclaw":"which openclaw",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(r()),!0}catch{return!1}}},t=async()=>{try{let a=r(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},u=async a=>{try{let b=k().join(a,"models.json"),c=await i().readFile(b,"utf-8"),d=JSON.parse(c),e=d?.providers?.zevai?.models;return e?.[0]?.id||null}catch{return null}};async function v(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"Open Claw CLI is not installed"});let a=await t(),b=a?.agents?.list||[],c=await Promise.all(b.map(async a=>{let b=a.agentDir?await u(a.agentDir):null;return{...a,model:p(a.model),currentModel:b}}));return e.NextResponse.json({installed:!0,settings:a,agents:c,hasZevai:!!a&&!!a.models&&!!a.models.providers&&!!a.models.providers.zevai,settingsPath:r()})}catch(a){return console.log("Error checking openclaw settings:",a),e.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}let w=async(a,b,c,d)=>{await i().mkdir(a,{recursive:!0});let e=k().join(a,"models.json"),f={};try{let a=await i().readFile(e,"utf-8");f=JSON.parse(a)}catch{}f.providers||(f.providers={}),f.providers.zevai={baseUrl:c,apiKey:d||"your_api_key",api:"openai-completions",models:[{id:b,name:b.split("/").pop()||b}]},await i().writeFile(e,JSON.stringify(f,null,2))};async function x(a){try{let{baseUrl:b,apiKey:c,model:d,agentModels:f={}}=await a.json();if(!b||!d)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let g=q(),h=r();await i().mkdir(g,{recursive:!0});let j={};try{let a=await i().readFile(h,"utf-8");j=JSON.parse(a)}catch{}j.agents||(j.agents={}),j.agents.defaults||(j.agents.defaults={}),j.agents.defaults.model||(j.agents.defaults.model={}),j.agents.defaults.models||(j.agents.defaults.models={}),j.models||(j.models={}),j.models.providers||(j.models.providers={});let k=b.endsWith("/v1")?b:`${b}/v1`,l=`zevai/${d}`;Object.keys(j.agents.defaults.models).filter(a=>a.startsWith("zevai/")).forEach(a=>{delete j.agents.defaults.models[a]}),j.agents.defaults.model.primary=l;let m=new Set([d]);return Object.values(f).forEach(a=>{a&&m.add(a)}),m.forEach(a=>{j.agents.defaults.models[`zevai/${a}`]={}}),j.agents.list&&(j.agents.list=j.agents.list.map(a=>{if(p(a.model).startsWith("zevai/")){let{model:b,...c}=a;return c}return a})),j.models.providers.zevai={baseUrl:k,apiKey:c||"your_api_key",api:"openai-completions",models:[...m].map(a=>({id:a,name:a.split("/").pop()||a}))},j.agents.list&&(j.agents.list=j.agents.list.map(a=>{let b=f[a.id];return b?{...a,model:`zevai/${b}`}:a}),await Promise.all(j.agents.list.map(async a=>{if(!a.agentDir)return;let b=f[a.id];await w(a.agentDir,b||d,k,c)}))),await i().writeFile(h,JSON.stringify(j,null,2)),e.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:h})}catch(a){return console.log("Error updating openclaw settings:",a),e.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function y(){try{let a=r(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}if(b.models&&b.models.providers&&(delete b.models.providers.zevai,0===Object.keys(b.models.providers).length&&delete b.models.providers),b.agents?.defaults?.models){for(let a of Object.keys(b.agents.defaults.models).filter(a=>a.startsWith("zevai/")))delete b.agents.defaults.models[a];0===Object.keys(b.agents.defaults.models).length&&delete b.agents.defaults.models}return b.agents?.defaults?.model?.primary?.startsWith("zevai/")&&delete b.agents.defaults.model.primary,await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed successfully"})}catch(a){return console.log("Error resetting openclaw settings:",a),e.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,n.D)([v,x,y]),(0,d.A)(v,"003292a95e467feb66b6a241f6285dac61fca4f8e5",null),(0,d.A)(x,"40b85092ed05529098ae5976bf5a05cdee684a21f8",null),(0,d.A)(y,"00d361ad720ea4b0f3626e62a4d045ac5f33688cc7",null)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8304:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>u,POST:()=>v});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".local","share","kilo"),q=()=>k().join(p(),"auth.json"),r=()=>k().join(m().homedir(),".config","Code","User","settings.json"),s=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where kilo":"which kilo",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},t=async a=>{try{let b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function u(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"Kilo Code CLI is not installed"});let a=await t(q());return e.NextResponse.json({installed:!0,settings:{auth:a?Object.keys(a):[]},hasZevai:(a=>{if(!a)return!1;let b=a["openai-compatible"]||a.zevai;if(!b)return!1;let c=b.baseUrl||b.baseURL||"";return c.includes("localhost")||c.includes("127.0.0.1")||c.includes("zevairouter")})(a),authPath:q()})}catch(a){return console.log("Error checking kilo settings:",a),e.NextResponse.json({error:"Failed to check kilo settings"},{status:500})}}async function v(a){try{let{baseUrl:b,apiKey:c,model:d}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});await i().mkdir(p(),{recursive:!0});let f=b.endsWith("/v1")?b:`${b}/v1`,g=await t(q())||{};g["openai-compatible"]={type:"api-key",apiKey:c,baseUrl:f,model:d},await i().writeFile(q(),JSON.stringify(g,null,2));try{let a=await t(r())||{};a["kilocode.customProvider"]={name:"ZevaiRouter",baseURL:f,apiKey:c},a["kilocode.defaultModel"]=d,await i().writeFile(r(),JSON.stringify(a,null,2))}catch{}return e.NextResponse.json({success:!0,message:"Kilo Code settings applied successfully!",authPath:q()})}catch(a){return console.log("Error updating kilo settings:",a),e.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function w(){try{let a=await t(q());if(!a)return e.NextResponse.json({success:!0,message:"No settings file to reset"});delete a["openai-compatible"],delete a.zevai,await i().writeFile(q(),JSON.stringify(a,null,2));try{let a=await t(r());a&&(delete a["kilocode.customProvider"],delete a["kilocode.defaultModel"],await i().writeFile(r(),JSON.stringify(a,null,2)))}catch{}return e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed from Kilo Code"})}catch(a){return console.log("Error resetting kilo settings:",a),e.NextResponse.json({error:"Failed to reset kilo settings"},{status:500})}}(0,n.D)([u,v,w]),(0,d.A)(u,"00f9c544211a7bddd7f6924a52e32688f76f581979",null),(0,d.A)(v,"40ee0bc7fd04335c1216d04a24be1f40ab966a1c7a",null),(0,d.A)(w,"009f370a9e78a9050971379cf378447a455fc56d67",null)},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14262:(a,b,c)=>{function d(a){let b=String(a||"").trim();if(!b)return"";let c=b.replace(/\/+$/,"");return c.endsWith("/v1")?c:`${c}/v1`}function e(a){let b=String(a||"").trim();return b?"auto-codex"===b||b.startsWith("router/")||b.startsWith("original/")||b.startsWith("account/")||b.startsWith("codex-account/")?b:b.startsWith("codex/")?`cx/${b.slice(6)}`:b.includes("/")?b:b.startsWith("gpt-")||/^o[134]/i.test(b)?`cx/${b}`:b:"cx/gpt-5.6-sol"}function f(a){let b=e(a);return b.startsWith("cx/")?b.slice(3):b}function g(a,b){return"codex"===b?e(a):a}c.d(b,{Fq:()=>f,Ow:()=>e,eR:()=>g,tb:()=>d})},14833:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>y,GET:()=>v,POST:()=>w});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(32693),o=c(24424);let p="CLAUDE_CODE_AUTO_COMPACT_WINDOW",q=["ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL"],r=(0,g.promisify)(f.exec),s=()=>{let a=m().homedir();return k().join(a,".claude","settings.json")},t=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await r(a?"where claude":"which claude",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},u=async()=>{try{let a=s(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function v(){try{if(!await t())return e.NextResponse.json({installed:!1,settings:null,message:"Claude CLI is not installed"});let a=await u(),b=!!a?.env?.ANTHROPIC_BASE_URL;return e.NextResponse.json({installed:!0,settings:a,hasZevai:b,settingsPath:s()})}catch(a){return console.log("Error checking claude settings:",a),e.NextResponse.json({error:"Failed to check claude settings"},{status:500})}}async function w(a){try{let{env:b,autoCompactWindow:c,oneMillionContext:d}=await a.json();if(!b||"object"!=typeof b)return e.NextResponse.json({error:"Invalid env object"},{status:400});let{CLAUDE_CODE_MAX_CONTEXT_TOKENS:f,...g}=b;for(let a of(g.ANTHROPIC_BASE_URL&&(g.ANTHROPIC_BASE_URL=(0,n.mm)(g.ANTHROPIC_BASE_URL)),q))g[a]&&(g[a]=(0,n.Lb)(g[a],!0===d));let h=(0,n.u1)(c),j=s(),l=k().dirname(j);await i().mkdir(l,{recursive:!0});let m={};try{let a=await i().readFile(j,"utf-8");m=JSON.parse(a)}catch(a){if("ENOENT"!==a.code)throw a}let o={...m.env||{},...g};h?o[p]=h:delete o[p];let r={...m,hasCompletedOnboarding:!0,env:o};return await i().writeFile(j,JSON.stringify(r,null,2)),e.NextResponse.json({success:!0,message:"Settings updated successfully"})}catch(a){return console.log("Error updating claude settings:",a),e.NextResponse.json({error:"Failed to update claude settings"},{status:500})}}let x=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","API_TIMEOUT_MS",p];async function y(){try{let a=s(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return b.env&&(x.forEach(a=>{delete b.env[a]}),0===Object.keys(b.env).length&&delete b.env),await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"Settings reset successfully"})}catch(a){return console.log("Error resetting claude settings:",a),e.NextResponse.json({error:"Failed to reset claude settings"},{status:500})}}(0,o.D)([v,w,y]),(0,d.A)(v,"006c0e899bb067b0db01bf98d75f9a4efccb56ad8b",null),(0,d.A)(w,"40370e79935485330383514988ce02153e737f0558",null),(0,d.A)(y,"00d2495deaa7aba323f529ee8a4707decf0ab27617",null)},18927:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>B,GET:()=>z,POST:()=>A});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(28354),n=c(63294),o=c(24424);let p=(0,m.promisify)(l.exec),q="zevai",r=()=>i().join(k().homedir(),".omp"),s=()=>i().join(r(),"agent"),t=()=>i().join(s(),"models.yml"),u=async()=>{try{let a="win32"===k().platform();return await p(a?"where omp":"which omp",{windowsHide:!0}),!0}catch{try{return await g().access(r()),!0}catch{return!1}}};class v extends Error{}let w=async()=>{let a;try{a=await g().readFile(t(),"utf-8")}catch(a){if("ENOENT"===a.code)return{doc:(0,n.Tp)(""),exists:!1};throw a}let b=(0,n.Tp)(a);if(b.errors.length>0)throw new v(`~/.omp/agent/models.yml is not valid YAML: ${b.errors[0].message}`);if(null!==b.contents&&!(0,n.jh)(b.contents))throw new v("~/.omp/agent/models.yml must be a YAML mapping");let c=b.get("providers",!0);if(null!=c&&!(0,n.jh)(c)&&null!=c.value)throw new v("`providers` in ~/.omp/agent/models.yml must be a YAML mapping");return{doc:b,exists:!0}},x=async a=>{let b=t();await g().mkdir(s(),{recursive:!0});let c=`${b}.${process.pid}.${Date.now()}.tmp`;try{await g().writeFile(c,a.toString(),{encoding:"utf-8",mode:384}),await g().chmod(c,384),await g().rename(c,b)}catch(a){throw await g().rm(c,{force:!0}),a}},y=a=>e.NextResponse.json({error:a.message},{status:400});async function z(){if(!await u())return e.NextResponse.json({installed:!1,message:"OMP not installed. Install oh-my-pi to get the `omp` CLI."});try{var a;let b,{doc:c}=await w(),d=(b=c.getIn(["providers",q]))&&"function"==typeof b.toJSON?b.toJSON():b||null,f=d?.baseUrl||null;return e.NextResponse.json({installed:!0,hasZevai:!!d,isLocalRouter:"string"==typeof f&&/^https?:\/\/(localhost|127\.0\.0\.1|0\.0\.0\.0)(:\d+)?(\/|$)/.test(f),baseUrl:f,apiKeyMasked:(a=d?.apiKey,"string"==typeof a&&a?a.length<=8?"****":`${a.slice(0,3)}****${a.slice(-4)}`:null),configPath:t()})}catch(a){if(a instanceof v)return e.NextResponse.json({installed:!0,hasZevai:!1,baseUrl:null,configPath:t(),error:a.message});return console.error("Error checking OMP settings:",a),e.NextResponse.json({error:"Failed to check OMP settings"},{status:500})}}async function A(a){try{let{baseUrl:b,apiKey:c}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let d=b.replace(/\/+$/,""),f=d.endsWith("/v1")?d:`${d}/v1`,{doc:g}=await w();return g.setIn(["providers",q],g.createNode({baseUrl:f,apiKey:c,api:"openai-completions",discovery:{type:"openai-models-list",timeoutMs:2e4}})),await x(g),e.NextResponse.json({success:!0,message:"OMP configured. Models are discovered automatically; run `omp models refresh` to re-fetch.",configPath:t()})}catch(a){if(a instanceof v)return y(a);return console.error("Error configuring OMP:",a),e.NextResponse.json({error:"Failed to configure OMP"},{status:500})}}async function B(){try{let{doc:a,exists:b}=await w();if(!b||!a.hasIn(["providers",q]))return e.NextResponse.json({success:!0,message:"No ZevaiRouter provider to remove"});return a.deleteIn(["providers",q]),await x(a),e.NextResponse.json({success:!0,message:"ZevaiRouter provider removed from OMP"})}catch(a){if(a instanceof v)return y(a);return console.error("Error removing OMP configuration:",a),e.NextResponse.json({error:"Failed to remove OMP configuration"},{status:500})}}(0,o.D)([z,A,B]),(0,d.A)(z,"009957403d4cae0278570147d96b13d030fbfb8178",null),(0,d.A)(A,"402825acce9c9d0ccdd4ade3b62a749875d0d8b5c7",null),(0,d.A)(B,"00d71548651e26c27ae6f3620a80b45e3417ad475b",null)},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19593:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>v});var d=c(49796),e=c(23211),f=c(14833),g=c(58750),h=c(37709),i=c(72452),j=c(29657),k=c(4126),l=c(12897),m=c(21350),n=c(20703),o=c(46298),p=c(8304),q=c(67116),r=c(48074),s=c(18927),t=c(24424);let u={claude:f.GET,codex:g.GET,"grok-build":h.GET,opencode:i.GET,droid:j.GET,openclaw:k.GET,hermes:l.GET,cowork:m.GET,copilot:n.GET,cline:o.GET,kilo:p.GET,"deepseek-tui":q.GET,jcode:r.GET,omp:s.GET};async function v(){let a=await Promise.all(Object.entries(u).map(async([a,b])=>{try{let c=await b(),d=await c.json();return[a,d]}catch(b){return[a,{error:b instanceof Error?b.message:"Status unavailable"}]}}));return e.NextResponse.json(Object.fromEntries(a))}(0,t.D)([v]),(0,d.A)(v,"00fd7b870baaa37611abfc7f4f5e6bd0f73e77a0af",null)},19771:a=>{a.exports=require("process")},20703:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>r,GET:()=>p,POST:()=>q});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(24424);let m=()=>{let a=k().homedir(),b=k().platform();return"win32"===b?i().join(process.env.APPDATA||a,"Code","User","chatLanguageModels.json"):"darwin"===b?i().join(a,"Library","Application Support","Code","User","chatLanguageModels.json"):i().join(a,".config","Code","User","chatLanguageModels.json")},n=async()=>{try{let a=await g().readFile(m(),"utf-8");return JSON.parse(a)}catch(a){if("ENOENT"===a.code)return null;throw a}},o=new Set(["ZevaiRouter"]);async function p(){try{let a=await n(),b=Array.isArray(a)&&a.find(a=>o.has(a.name))||null;return e.NextResponse.json({installed:!0,config:a,hasZevai:!!Array.isArray(a)&&a.some(a=>o.has(a.name)),configPath:m(),currentModel:b?.models?.[0]?.id||null,currentUrl:b?.models?.[0]?.url||null})}catch(a){return console.log("Error checking copilot settings:",a),e.NextResponse.json({error:"Failed to check copilot settings"},{status:500})}}async function q(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!d?.length)return e.NextResponse.json({error:"baseUrl and models are required"},{status:400});let f=m();await g().mkdir(i().dirname(f),{recursive:!0});let h=[];try{let a=await g().readFile(f,"utf-8"),b=JSON.parse(a);h=Array.isArray(b)?b:[]}catch{}let j=`${b}/chat/completions#models.ai.azure.com`,k={name:"ZevaiRouter",vendor:"azure",apiKey:c||"sk_zevai",models:d.map(a=>({id:a,name:a,url:j,toolCalling:!0,vision:!1,maxInputTokens:128e3,maxOutputTokens:16e3}))},l=h.findIndex(a=>o.has(a.name));return l>=0?h[l]=k:h.push(k),await g().writeFile(f,JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Copilot settings applied! Reload VS Code to take effect.",configPath:f})}catch(a){return console.log("Error updating copilot settings:",a),e.NextResponse.json({error:"Failed to update copilot settings"},{status:500})}}async function r(){try{let a=m(),b=[];try{let c=await g().readFile(a,"utf-8"),d=JSON.parse(c);b=Array.isArray(d)?d:[]}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return b=b.filter(a=>!o.has(a.name)),await g().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter removed from Copilot config"})}catch(a){return console.log("Error resetting copilot settings:",a),e.NextResponse.json({error:"Failed to reset copilot settings"},{status:500})}}(0,l.D)([p,q,r]),(0,d.A)(p,"00da20e8100d6ccca67e0668036c4eb58cff1ac62b",null),(0,d.A)(q,"40708ab5dc3f3323ef7c6e024420b05acf1da27290",null),(0,d.A)(r,"009d022675f116c67703170e0f290e338368a8534d",null)},21820:a=>{a.exports=require("os")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29657:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>v,GET:()=>t,POST:()=>u});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".factory"),q=()=>k().join(p(),"settings.json"),r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where droid":"which droid",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},s=async()=>{try{let a=q(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function t(){try{if(!await r())return e.NextResponse.json({installed:!1,settings:null,message:"Factory Droid CLI is not installed"});let a=await s();return e.NextResponse.json({installed:!0,settings:a,hasZevai:!!a&&!!a.customModels&&a.customModels.some(a=>a.id?.startsWith("custom:Zevai")),settingsPath:q()})}catch(a){return console.log("Error checking droid settings:",a),e.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function u(a){try{let{baseUrl:b,apiKey:c,model:d,models:f,activeModel:g}=await a.json(),h=Array.isArray(f)?f.slice():"string"==typeof d?[d]:[];if(!b||0===h.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let j=p(),k=q();await i().mkdir(j,{recursive:!0});let l={};try{let a=await i().readFile(k,"utf-8");l=JSON.parse(a)}catch{}l.customModels||(l.customModels=[]),l.customModels=l.customModels.filter(a=>!a.id?.startsWith("custom:Zevai"));let m=b.endsWith("/v1")?b:`${b}/v1`,n=c||"your_api_key",o=0;if("string"==typeof g)if(""===g)o=-1;else{let a=h.indexOf(g);o=a>=0?a:0}for(let a=0;a<h.length;a++){let b=h[a];b&&"string"==typeof b&&l.customModels.push({model:b,id:`custom:Zevai-${a}`,index:a,baseUrl:m,apiKey:n,displayName:b,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"})}if(o>=0&&l.customModels[o]){let[a]=l.customModels.splice(o,1);l.customModels.unshift({...a,index:0}),l.customModels.forEach((a,b)=>{a.index=b})}return await i().writeFile(k,JSON.stringify(l,null,2)),e.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:k})}catch(a){return console.log("Error updating droid settings:",a),e.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function v(){try{let a=q(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return b.customModels&&(b.customModels=b.customModels.filter(a=>!a.id?.startsWith("custom:Zevai")),0===b.customModels.length&&delete b.customModels),await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed successfully"})}catch(a){return console.log("Error resetting droid settings:",a),e.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,n.D)([t,u,v]),(0,d.A)(t,"00ebf1341ef2752cbf15553de3c2786742400f4a87",null),(0,d.A)(u,"40d8d2687161fdda41453f4152c246935952f07150",null),(0,d.A)(v,"00e434d6ad1ae2289a146ee9bfdf945c8879ea6571",null)},31421:a=>{a.exports=require("node:child_process")},32693:(a,b,c)=>{c.d(b,{Lb:()=>h,kP:()=>g,mm:()=>f,u1:()=>i});let d=/(?:\[1m\])+$/i,e=new Set(["198000","298000","498000","698000"]);function f(a){if("string"!=typeof a||!a)return a;let b=a.replace(/\/+$/,"");return`${b.replace(/(?:\/v1)+$/i,"")}/v1`}function g(a){return"string"!=typeof a?"":a.replace(d,"")}function h(a,b){let c=g(a);return b&&c?`${c}[1m]`:c}function i(a){return"string"==typeof a&&e.has(a)?a:""}},33873:a=>{a.exports=require("path")},37709:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>S,GET:()=>Q,POST:()=>R});var d=c(49796),e=c(23211),f=c(79646),g=c(55511),h=c(28354),i=c(79748),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c.n(m),o=c(66306),p=c(52750);let q="zevai",r=["general-purpose","explore","plan"],s="__zevai_unset__",t=["models"],u=["subagents","models"],v=["model","base_url","name","api_key","api_backend"],w=/^# zevai-prev-(default|subagent-[A-Za-z0-9_-]+) = ("(?:[^"\\\r\n]|\\.)*")[ \t]*(?:\r?\n|$)/gm,x=a=>`${q}-${a}`,y=a=>!!a&&"object"==typeof a&&!Array.isArray(a)&&!(a instanceof Date);function z(a){let b={},c=a.replace(w,(a,c,d)=>{try{let a=JSON.parse(d);"string"!=typeof a||c in b||(b[c]=a)}catch{}return""});return{data:(0,p.M)(c),previous:b}}function A({data:a,previous:b}){let c=Object.entries(b).map(([a,b])=>`# zevai-prev-${a} = ${JSON.stringify(b)}
1
+ "use strict";(()=>{var a={};a.id=4761,a.ids=[4761],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4126:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>y,GET:()=>v,POST:()=>x});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=a=>"string"==typeof a?a:a&&"object"==typeof a?a.primary??"":"",q=()=>k().join(m().homedir(),".openclaw"),r=()=>k().join(q(),"openclaw.json"),s=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where openclaw":"which openclaw",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(r()),!0}catch{return!1}}},t=async()=>{try{let a=r(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},u=async a=>{try{let b=k().join(a,"models.json"),c=await i().readFile(b,"utf-8"),d=JSON.parse(c),e=d?.providers?.zevai?.models;return e?.[0]?.id||null}catch{return null}};async function v(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"Open Claw CLI is not installed"});let a=await t(),b=a?.agents?.list||[],c=await Promise.all(b.map(async a=>{let b=a.agentDir?await u(a.agentDir):null;return{...a,model:p(a.model),currentModel:b}}));return e.NextResponse.json({installed:!0,settings:a,agents:c,hasZevai:!!a&&!!a.models&&!!a.models.providers&&!!a.models.providers.zevai,settingsPath:r()})}catch(a){return console.log("Error checking openclaw settings:",a),e.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}let w=async(a,b,c,d)=>{await i().mkdir(a,{recursive:!0});let e=k().join(a,"models.json"),f={};try{let a=await i().readFile(e,"utf-8");f=JSON.parse(a)}catch{}f.providers||(f.providers={}),f.providers.zevai={baseUrl:c,apiKey:d||"your_api_key",api:"openai-completions",models:[{id:b,name:b.split("/").pop()||b}]},await i().writeFile(e,JSON.stringify(f,null,2))};async function x(a){try{let{baseUrl:b,apiKey:c,model:d,agentModels:f={}}=await a.json();if(!b||!d)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let g=q(),h=r();await i().mkdir(g,{recursive:!0});let j={};try{let a=await i().readFile(h,"utf-8");j=JSON.parse(a)}catch{}j.agents||(j.agents={}),j.agents.defaults||(j.agents.defaults={}),j.agents.defaults.model||(j.agents.defaults.model={}),j.agents.defaults.models||(j.agents.defaults.models={}),j.models||(j.models={}),j.models.providers||(j.models.providers={});let k=b.endsWith("/v1")?b:`${b}/v1`,l=`zevai/${d}`;Object.keys(j.agents.defaults.models).filter(a=>a.startsWith("zevai/")).forEach(a=>{delete j.agents.defaults.models[a]}),j.agents.defaults.model.primary=l;let m=new Set([d]);return Object.values(f).forEach(a=>{a&&m.add(a)}),m.forEach(a=>{j.agents.defaults.models[`zevai/${a}`]={}}),j.agents.list&&(j.agents.list=j.agents.list.map(a=>{if(p(a.model).startsWith("zevai/")){let{model:b,...c}=a;return c}return a})),j.models.providers.zevai={baseUrl:k,apiKey:c||"your_api_key",api:"openai-completions",models:[...m].map(a=>({id:a,name:a.split("/").pop()||a}))},j.agents.list&&(j.agents.list=j.agents.list.map(a=>{let b=f[a.id];return b?{...a,model:`zevai/${b}`}:a}),await Promise.all(j.agents.list.map(async a=>{if(!a.agentDir)return;let b=f[a.id];await w(a.agentDir,b||d,k,c)}))),await i().writeFile(h,JSON.stringify(j,null,2)),e.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:h})}catch(a){return console.log("Error updating openclaw settings:",a),e.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function y(){try{let a=r(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}if(b.models&&b.models.providers&&(delete b.models.providers.zevai,0===Object.keys(b.models.providers).length&&delete b.models.providers),b.agents?.defaults?.models){for(let a of Object.keys(b.agents.defaults.models).filter(a=>a.startsWith("zevai/")))delete b.agents.defaults.models[a];0===Object.keys(b.agents.defaults.models).length&&delete b.agents.defaults.models}return b.agents?.defaults?.model?.primary?.startsWith("zevai/")&&delete b.agents.defaults.model.primary,await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed successfully"})}catch(a){return console.log("Error resetting openclaw settings:",a),e.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,n.D)([v,x,y]),(0,d.A)(v,"00a3e77e037b2eb01d420eaef284026bd0dab6cac6",null),(0,d.A)(x,"4052e82f01835be2edd666c18e1e1dbff7e712a0dd",null),(0,d.A)(y,"00be6583c8baaf05a52b0c90022c86c5c177658464",null)},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},8304:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>u,POST:()=>v});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".local","share","kilo"),q=()=>k().join(p(),"auth.json"),r=()=>k().join(m().homedir(),".config","Code","User","settings.json"),s=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where kilo":"which kilo",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},t=async a=>{try{let b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function u(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"Kilo Code CLI is not installed"});let a=await t(q());return e.NextResponse.json({installed:!0,settings:{auth:a?Object.keys(a):[]},hasZevai:(a=>{if(!a)return!1;let b=a["openai-compatible"]||a.zevai;if(!b)return!1;let c=b.baseUrl||b.baseURL||"";return c.includes("localhost")||c.includes("127.0.0.1")||c.includes("zevairouter")})(a),authPath:q()})}catch(a){return console.log("Error checking kilo settings:",a),e.NextResponse.json({error:"Failed to check kilo settings"},{status:500})}}async function v(a){try{let{baseUrl:b,apiKey:c,model:d}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});await i().mkdir(p(),{recursive:!0});let f=b.endsWith("/v1")?b:`${b}/v1`,g=await t(q())||{};g["openai-compatible"]={type:"api-key",apiKey:c,baseUrl:f,model:d},await i().writeFile(q(),JSON.stringify(g,null,2));try{let a=await t(r())||{};a["kilocode.customProvider"]={name:"ZevaiRouter",baseURL:f,apiKey:c},a["kilocode.defaultModel"]=d,await i().writeFile(r(),JSON.stringify(a,null,2))}catch{}return e.NextResponse.json({success:!0,message:"Kilo Code settings applied successfully!",authPath:q()})}catch(a){return console.log("Error updating kilo settings:",a),e.NextResponse.json({error:"Failed to update kilo settings"},{status:500})}}async function w(){try{let a=await t(q());if(!a)return e.NextResponse.json({success:!0,message:"No settings file to reset"});delete a["openai-compatible"],delete a.zevai,await i().writeFile(q(),JSON.stringify(a,null,2));try{let a=await t(r());a&&(delete a["kilocode.customProvider"],delete a["kilocode.defaultModel"],await i().writeFile(r(),JSON.stringify(a,null,2)))}catch{}return e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed from Kilo Code"})}catch(a){return console.log("Error resetting kilo settings:",a),e.NextResponse.json({error:"Failed to reset kilo settings"},{status:500})}}(0,n.D)([u,v,w]),(0,d.A)(u,"0006398b065cdb08c6841deb7bb974f0c3532b064d",null),(0,d.A)(v,"4087e854d252ef233fc3bba64bf109c5d0b5270c7f",null),(0,d.A)(w,"00178bb5310166bd9199cf4b81ea6c1fa6f6cf8954",null)},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14262:(a,b,c)=>{function d(a){let b=String(a||"").trim();if(!b)return"";let c=b.replace(/\/+$/,"");return c.endsWith("/v1")?c:`${c}/v1`}function e(a){let b=String(a||"").trim();return b?"auto-codex"===b||b.startsWith("router/")||b.startsWith("original/")||b.startsWith("account/")||b.startsWith("codex-account/")?b:b.startsWith("codex/")?`cx/${b.slice(6)}`:b.includes("/")?b:b.startsWith("gpt-")||/^o[134]/i.test(b)?`cx/${b}`:b:"cx/gpt-5.6-sol"}function f(a){let b=e(a);return b.startsWith("cx/")?b.slice(3):b}function g(a,b){return"codex"===b?e(a):a}c.d(b,{Fq:()=>f,Ow:()=>e,eR:()=>g,tb:()=>d})},14833:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>y,GET:()=>v,POST:()=>w});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(32693),o=c(24424);let p="CLAUDE_CODE_AUTO_COMPACT_WINDOW",q=["ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL"],r=(0,g.promisify)(f.exec),s=()=>{let a=m().homedir();return k().join(a,".claude","settings.json")},t=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await r(a?"where claude":"which claude",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},u=async()=>{try{let a=s(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function v(){try{if(!await t())return e.NextResponse.json({installed:!1,settings:null,message:"Claude CLI is not installed"});let a=await u(),b=!!a?.env?.ANTHROPIC_BASE_URL;return e.NextResponse.json({installed:!0,settings:a,hasZevai:b,settingsPath:s()})}catch(a){return console.log("Error checking claude settings:",a),e.NextResponse.json({error:"Failed to check claude settings"},{status:500})}}async function w(a){try{let{env:b,autoCompactWindow:c,oneMillionContext:d}=await a.json();if(!b||"object"!=typeof b)return e.NextResponse.json({error:"Invalid env object"},{status:400});let{CLAUDE_CODE_MAX_CONTEXT_TOKENS:f,...g}=b;for(let a of(g.ANTHROPIC_BASE_URL&&(g.ANTHROPIC_BASE_URL=(0,n.mm)(g.ANTHROPIC_BASE_URL)),q))g[a]&&(g[a]=(0,n.Lb)(g[a],!0===d));let h=(0,n.u1)(c),j=s(),l=k().dirname(j);await i().mkdir(l,{recursive:!0});let m={};try{let a=await i().readFile(j,"utf-8");m=JSON.parse(a)}catch(a){if("ENOENT"!==a.code)throw a}let o={...m.env||{},...g};h?o[p]=h:delete o[p];let r={...m,hasCompletedOnboarding:!0,env:o};return await i().writeFile(j,JSON.stringify(r,null,2)),e.NextResponse.json({success:!0,message:"Settings updated successfully"})}catch(a){return console.log("Error updating claude settings:",a),e.NextResponse.json({error:"Failed to update claude settings"},{status:500})}}let x=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","API_TIMEOUT_MS",p];async function y(){try{let a=s(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return b.env&&(x.forEach(a=>{delete b.env[a]}),0===Object.keys(b.env).length&&delete b.env),await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"Settings reset successfully"})}catch(a){return console.log("Error resetting claude settings:",a),e.NextResponse.json({error:"Failed to reset claude settings"},{status:500})}}(0,o.D)([v,w,y]),(0,d.A)(v,"00d4f02035ede6281f4358d081a0d02462fcf01a84",null),(0,d.A)(w,"40aacef728ca9017d4cf170343d74c193bd1116437",null),(0,d.A)(y,"00b60bda4059397e231e526248d48de34ef533fdc2",null)},18927:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>B,GET:()=>z,POST:()=>A});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(28354),n=c(63294),o=c(24424);let p=(0,m.promisify)(l.exec),q="zevai",r=()=>i().join(k().homedir(),".omp"),s=()=>i().join(r(),"agent"),t=()=>i().join(s(),"models.yml"),u=async()=>{try{let a="win32"===k().platform();return await p(a?"where omp":"which omp",{windowsHide:!0}),!0}catch{try{return await g().access(r()),!0}catch{return!1}}};class v extends Error{}let w=async()=>{let a;try{a=await g().readFile(t(),"utf-8")}catch(a){if("ENOENT"===a.code)return{doc:(0,n.Tp)(""),exists:!1};throw a}let b=(0,n.Tp)(a);if(b.errors.length>0)throw new v(`~/.omp/agent/models.yml is not valid YAML: ${b.errors[0].message}`);if(null!==b.contents&&!(0,n.jh)(b.contents))throw new v("~/.omp/agent/models.yml must be a YAML mapping");let c=b.get("providers",!0);if(null!=c&&!(0,n.jh)(c)&&null!=c.value)throw new v("`providers` in ~/.omp/agent/models.yml must be a YAML mapping");return{doc:b,exists:!0}},x=async a=>{let b=t();await g().mkdir(s(),{recursive:!0});let c=`${b}.${process.pid}.${Date.now()}.tmp`;try{await g().writeFile(c,a.toString(),{encoding:"utf-8",mode:384}),await g().chmod(c,384),await g().rename(c,b)}catch(a){throw await g().rm(c,{force:!0}),a}},y=a=>e.NextResponse.json({error:a.message},{status:400});async function z(){if(!await u())return e.NextResponse.json({installed:!1,message:"OMP not installed. Install oh-my-pi to get the `omp` CLI."});try{var a;let b,{doc:c}=await w(),d=(b=c.getIn(["providers",q]))&&"function"==typeof b.toJSON?b.toJSON():b||null,f=d?.baseUrl||null;return e.NextResponse.json({installed:!0,hasZevai:!!d,isLocalRouter:"string"==typeof f&&/^https?:\/\/(localhost|127\.0\.0\.1|0\.0\.0\.0)(:\d+)?(\/|$)/.test(f),baseUrl:f,apiKeyMasked:(a=d?.apiKey,"string"==typeof a&&a?a.length<=8?"****":`${a.slice(0,3)}****${a.slice(-4)}`:null),configPath:t()})}catch(a){if(a instanceof v)return e.NextResponse.json({installed:!0,hasZevai:!1,baseUrl:null,configPath:t(),error:a.message});return console.error("Error checking OMP settings:",a),e.NextResponse.json({error:"Failed to check OMP settings"},{status:500})}}async function A(a){try{let{baseUrl:b,apiKey:c}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let d=b.replace(/\/+$/,""),f=d.endsWith("/v1")?d:`${d}/v1`,{doc:g}=await w();return g.setIn(["providers",q],g.createNode({baseUrl:f,apiKey:c,api:"openai-completions",discovery:{type:"openai-models-list",timeoutMs:2e4}})),await x(g),e.NextResponse.json({success:!0,message:"OMP configured. Models are discovered automatically; run `omp models refresh` to re-fetch.",configPath:t()})}catch(a){if(a instanceof v)return y(a);return console.error("Error configuring OMP:",a),e.NextResponse.json({error:"Failed to configure OMP"},{status:500})}}async function B(){try{let{doc:a,exists:b}=await w();if(!b||!a.hasIn(["providers",q]))return e.NextResponse.json({success:!0,message:"No ZevaiRouter provider to remove"});return a.deleteIn(["providers",q]),await x(a),e.NextResponse.json({success:!0,message:"ZevaiRouter provider removed from OMP"})}catch(a){if(a instanceof v)return y(a);return console.error("Error removing OMP configuration:",a),e.NextResponse.json({error:"Failed to remove OMP configuration"},{status:500})}}(0,o.D)([z,A,B]),(0,d.A)(z,"00f3bf22d55bc0bddfb556548eda385be98f2918ad",null),(0,d.A)(A,"4018b4109f1037c3a6036bc8e2f5e2925594943338",null),(0,d.A)(B,"000ce3249fc930f9a45aa09645ffd1652620828c40",null)},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19593:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>v});var d=c(49796),e=c(23211),f=c(14833),g=c(58750),h=c(37709),i=c(72452),j=c(29657),k=c(4126),l=c(12897),m=c(21350),n=c(20703),o=c(46298),p=c(8304),q=c(67116),r=c(48074),s=c(18927),t=c(24424);let u={claude:f.GET,codex:g.GET,"grok-build":h.GET,opencode:i.GET,droid:j.GET,openclaw:k.GET,hermes:l.GET,cowork:m.GET,copilot:n.GET,cline:o.GET,kilo:p.GET,"deepseek-tui":q.GET,jcode:r.GET,omp:s.GET};async function v(){let a=await Promise.all(Object.entries(u).map(async([a,b])=>{try{let c=await b(),d=await c.json();return[a,d]}catch(b){return[a,{error:b instanceof Error?b.message:"Status unavailable"}]}}));return e.NextResponse.json(Object.fromEntries(a))}(0,t.D)([v]),(0,d.A)(v,"0078d5badce453ddaee18a496a09056b869823e6ad",null)},19771:a=>{a.exports=require("process")},20703:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>r,GET:()=>p,POST:()=>q});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(24424);let m=()=>{let a=k().homedir(),b=k().platform();return"win32"===b?i().join(process.env.APPDATA||a,"Code","User","chatLanguageModels.json"):"darwin"===b?i().join(a,"Library","Application Support","Code","User","chatLanguageModels.json"):i().join(a,".config","Code","User","chatLanguageModels.json")},n=async()=>{try{let a=await g().readFile(m(),"utf-8");return JSON.parse(a)}catch(a){if("ENOENT"===a.code)return null;throw a}},o=new Set(["ZevaiRouter"]);async function p(){try{let a=await n(),b=Array.isArray(a)&&a.find(a=>o.has(a.name))||null;return e.NextResponse.json({installed:!0,config:a,hasZevai:!!Array.isArray(a)&&a.some(a=>o.has(a.name)),configPath:m(),currentModel:b?.models?.[0]?.id||null,currentUrl:b?.models?.[0]?.url||null})}catch(a){return console.log("Error checking copilot settings:",a),e.NextResponse.json({error:"Failed to check copilot settings"},{status:500})}}async function q(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!d?.length)return e.NextResponse.json({error:"baseUrl and models are required"},{status:400});let f=m();await g().mkdir(i().dirname(f),{recursive:!0});let h=[];try{let a=await g().readFile(f,"utf-8"),b=JSON.parse(a);h=Array.isArray(b)?b:[]}catch{}let j=`${b}/chat/completions#models.ai.azure.com`,k={name:"ZevaiRouter",vendor:"azure",apiKey:c||"sk_zevai",models:d.map(a=>({id:a,name:a,url:j,toolCalling:!0,vision:!1,maxInputTokens:128e3,maxOutputTokens:16e3}))},l=h.findIndex(a=>o.has(a.name));return l>=0?h[l]=k:h.push(k),await g().writeFile(f,JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Copilot settings applied! Reload VS Code to take effect.",configPath:f})}catch(a){return console.log("Error updating copilot settings:",a),e.NextResponse.json({error:"Failed to update copilot settings"},{status:500})}}async function r(){try{let a=m(),b=[];try{let c=await g().readFile(a,"utf-8"),d=JSON.parse(c);b=Array.isArray(d)?d:[]}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return b=b.filter(a=>!o.has(a.name)),await g().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter removed from Copilot config"})}catch(a){return console.log("Error resetting copilot settings:",a),e.NextResponse.json({error:"Failed to reset copilot settings"},{status:500})}}(0,l.D)([p,q,r]),(0,d.A)(p,"007164578049f30c23773c80c61e1c7844833494c0",null),(0,d.A)(q,"406ac7c5fce928c45a16d1e1a92aa2597be49f049c",null),(0,d.A)(r,"002f530652a8a0cb574c178eaf3bf434ee6e387aa8",null)},21820:a=>{a.exports=require("os")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29657:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>v,GET:()=>t,POST:()=>u});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".factory"),q=()=>k().join(p(),"settings.json"),r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where droid":"which droid",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},s=async()=>{try{let a=q(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function t(){try{if(!await r())return e.NextResponse.json({installed:!1,settings:null,message:"Factory Droid CLI is not installed"});let a=await s();return e.NextResponse.json({installed:!0,settings:a,hasZevai:!!a&&!!a.customModels&&a.customModels.some(a=>a.id?.startsWith("custom:Zevai")),settingsPath:q()})}catch(a){return console.log("Error checking droid settings:",a),e.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function u(a){try{let{baseUrl:b,apiKey:c,model:d,models:f,activeModel:g}=await a.json(),h=Array.isArray(f)?f.slice():"string"==typeof d?[d]:[];if(!b||0===h.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let j=p(),k=q();await i().mkdir(j,{recursive:!0});let l={};try{let a=await i().readFile(k,"utf-8");l=JSON.parse(a)}catch{}l.customModels||(l.customModels=[]),l.customModels=l.customModels.filter(a=>!a.id?.startsWith("custom:Zevai"));let m=b.endsWith("/v1")?b:`${b}/v1`,n=c||"your_api_key",o=0;if("string"==typeof g)if(""===g)o=-1;else{let a=h.indexOf(g);o=a>=0?a:0}for(let a=0;a<h.length;a++){let b=h[a];b&&"string"==typeof b&&l.customModels.push({model:b,id:`custom:Zevai-${a}`,index:a,baseUrl:m,apiKey:n,displayName:b,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"})}if(o>=0&&l.customModels[o]){let[a]=l.customModels.splice(o,1);l.customModels.unshift({...a,index:0}),l.customModels.forEach((a,b)=>{a.index=b})}return await i().writeFile(k,JSON.stringify(l,null,2)),e.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:k})}catch(a){return console.log("Error updating droid settings:",a),e.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function v(){try{let a=q(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return b.customModels&&(b.customModels=b.customModels.filter(a=>!a.id?.startsWith("custom:Zevai")),0===b.customModels.length&&delete b.customModels),await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed successfully"})}catch(a){return console.log("Error resetting droid settings:",a),e.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,n.D)([t,u,v]),(0,d.A)(t,"00f4bbd7ea038c96eb464654a7a2752c3178cd5b15",null),(0,d.A)(u,"40bc603f52359eb6920981f1f9f191cee79e5c1459",null),(0,d.A)(v,"00828a2fb98c1843df5b03511de4ce48c51f45af55",null)},31421:a=>{a.exports=require("node:child_process")},32693:(a,b,c)=>{c.d(b,{Lb:()=>h,kP:()=>g,mm:()=>f,u1:()=>i});let d=/(?:\[1m\])+$/i,e=new Set(["198000","298000","498000","698000"]);function f(a){if("string"!=typeof a||!a)return a;let b=a.replace(/\/+$/,"");return`${b.replace(/(?:\/v1)+$/i,"")}/v1`}function g(a){return"string"!=typeof a?"":a.replace(d,"")}function h(a,b){let c=g(a);return b&&c?`${c}[1m]`:c}function i(a){return"string"==typeof a&&e.has(a)?a:""}},33873:a=>{a.exports=require("path")},36107:(a,b,c)=>{c.r(b),c.d(b,{"00010a1ca15272361786fabfdce968b2ed2855306e":()=>q.GET,"000223d23882d5a54926c50f4f3444f7f94a1790e1":()=>p.GET,"0006398b065cdb08c6841deb7bb974f0c3532b064d":()=>o.GET,"000ce3249fc930f9a45aa09645ffd1652620828c40":()=>r.DELETE,"00178bb5310166bd9199cf4b81ea6c1fa6f6cf8954":()=>o.DELETE,"001ac54b4ed2d8f7c4126a727360be88bfb34b07cd":()=>p.DELETE,"002f530652a8a0cb574c178eaf3bf434ee6e387aa8":()=>m.DELETE,"0033595b4633d769886b29d6b33644d60fbc3a67d7":()=>k.GET,"007164578049f30c23773c80c61e1c7844833494c0":()=>m.GET,"00731fe66746aa1bad2e08c1b911488ca637d2250c":()=>g.DELETE,"0078d5badce453ddaee18a496a09056b869823e6ad":()=>d.GET,"00828a2fb98c1843df5b03511de4ce48c51f45af55":()=>i.DELETE,"008bea7e58cff80828a313fc3a956829229c815ffc":()=>n.GET,"008ecf5c27318342e714bcc10a22f473912d62cbd9":()=>f.GET,"00a3e77e037b2eb01d420eaef284026bd0dab6cac6":()=>j.GET,"00af2cce4792765953636c8f8e791d2bc1b21c794e":()=>f.DELETE,"00b1e189d6f35b2dabe41d814b4e3461f7785f58cd":()=>q.DELETE,"00b60bda4059397e231e526248d48de34ef533fdc2":()=>e.DELETE,"00bac571206f9c14ad1790356c43b4216e78856279":()=>l.DELETE,"00be6583c8baaf05a52b0c90022c86c5c177658464":()=>j.DELETE,"00c19a3fcfe9724fdb1e934f83caf9763a7ea91a6f":()=>h.GET,"00c823e0d9bf5f9af85b783d56ba73a2e86701b560":()=>l.GET,"00d4f02035ede6281f4358d081a0d02462fcf01a84":()=>e.GET,"00e010bb62f51064303d292ff86ca606977a0e9200":()=>n.DELETE,"00f3bf22d55bc0bddfb556548eda385be98f2918ad":()=>r.GET,"00f451d790774cbceb97ec03b02730605e80b8d708":()=>g.GET,"00f4bbd7ea038c96eb464654a7a2752c3178cd5b15":()=>i.GET,"400dd13508aa61d528bab40fe6daa222c881ec7f2e":()=>f.POST,"4014fc18d8f6a015aa1d8d4684d0e5cbaa135680c8":()=>n.POST,"4018b4109f1037c3a6036bc8e2f5e2925594943338":()=>r.POST,"40378791fb9d76caa7dca9216d3b6880f53f432a18":()=>l.POST,"404d5cdf6e0345cb38ac9fb181b915aace6573159a":()=>h.DELETE,"404d7390774f89c0fdac7b9652d9497c3f7dc7fd84":()=>k.POST,"4052e82f01835be2edd666c18e1e1dbff7e712a0dd":()=>j.POST,"406ac7c5fce928c45a16d1e1a92aa2597be49f049c":()=>m.POST,"4087e854d252ef233fc3bba64bf109c5d0b5270c7f":()=>o.POST,"4090aa131092fd173a475217678a79996e80a39104":()=>q.POST,"40a645d3c69ebf9efa78f623ca3c9987691b4aa54f":()=>p.POST,"40aacef728ca9017d4cf170343d74c193bd1116437":()=>e.POST,"40b4848231a042b71820b3881928147c2138278bf0":()=>k.DELETE,"40b4e07e97fd8371ee4bec18f8e1f7eac23d04172d":()=>g.POST,"40bc603f52359eb6920981f1f9f191cee79e5c1459":()=>i.POST,"40dae931c8d55351a3e36c17902e55eba1f5906e63":()=>h.PATCH,"40e4437eec9ea695b132a98f689466e8d6b76062bf":()=>h.POST});var d=c(19593),e=c(14833),f=c(58750),g=c(37709),h=c(72452),i=c(29657),j=c(4126),k=c(12897),l=c(21350),m=c(20703),n=c(46298),o=c(8304),p=c(67116),q=c(48074),r=c(18927)},37709:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>S,GET:()=>Q,POST:()=>R});var d=c(49796),e=c(23211),f=c(79646),g=c(55511),h=c(28354),i=c(79748),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c.n(m),o=c(66306),p=c(52750);let q="zevai",r=["general-purpose","explore","plan"],s="__zevai_unset__",t=["models"],u=["subagents","models"],v=["model","base_url","name","api_key","api_backend"],w=/^# zevai-prev-(default|subagent-[A-Za-z0-9_-]+) = ("(?:[^"\\\r\n]|\\.)*")[ \t]*(?:\r?\n|$)/gm,x=a=>`${q}-${a}`,y=a=>!!a&&"object"==typeof a&&!Array.isArray(a)&&!(a instanceof Date);function z(a){let b={},c=a.replace(w,(a,c,d)=>{try{let a=JSON.parse(d);"string"!=typeof a||c in b||(b[c]=a)}catch{}return""});return{data:(0,p.M)(c),previous:b}}function A({data:a,previous:b}){let c=Object.entries(b).map(([a,b])=>`# zevai-prev-${a} = ${JSON.stringify(b)}
2
2
  `).join(""),d=Object.keys(a).length>0?(0,p.q)(a):"";return c&&d?`${c}
3
- ${d}`:`${c}${d}`}function B(a,b){let c=a;for(let a of b)if(!y(c=c?.[a]))return null;return c}function C(a,b){let c=a;for(let a of b){if(void 0===c[a]&&(c[a]={}),!y(c[a]))throw Error(`Grok Build config key "${b.join(".")}" is not a table`);c=c[a]}return c}function D(a,b,c){let d=[a];for(let a of b){let b=d.at(-1)[a];if(!y(b))return;d.push(b)}delete d.at(-1)[c];for(let a=b.length;a>0&&!(Object.keys(d[a]).length>0);a-=1)delete d[a-1][b[a-1]]}function E(a,b,c){let d=B(a,b)?.[c];return"string"==typeof d?d:null}function F(a,b){let c=B(a,["model",b]);if(!c)return null;let d={};for(let a of v)d[a]="string"==typeof c[a]?c[a]:null;let e=Number(c.context_window);return d.context_window=Number.isFinite(e)&&e>0?e:null,d}function G(a,{slot:b,model:c,baseUrl:d,apiKey:e,contextWindow:f,name:g}){let h={model:String(c),base_url:String(d),name:g,description:"Routed via ZevaiRouter gateway",api_backend:"chat_completions"};e&&(h.api_key=String(e)),Number.isFinite(f)&&f>0&&(h.context_window=Math.floor(f)),C(a,["model"])[b]=h}function H(a,b){let c=`subagent-${b}`,d=a.previous[c]||s;if(delete a.previous[c],E(a.data,u,b)===x(b)){if(d===s)return void D(a.data,u,b);C(a.data,u)[b]=d}}var I=c(24424);let J=(0,h.promisify)(f.execFile),K=()=>l().join(n().homedir(),".grok"),L=()=>l().join(K(),"config.toml");async function M(){try{return await J("win32"===n().platform()?"where":"which",["grok"],{windowsHide:!0}),!0}catch{for(let a of[l().join(K(),"bin","win32"===n().platform()?"grok.exe":"grok"),L()])try{return await j().access(a),!0}catch{}return!1}}async function N(){try{return await j().readFile(L(),"utf-8")}catch(a){if("ENOENT"===a.code)return"";throw a}}async function O(a){let b,c=L(),d=l().dirname(c);await j().mkdir(d,{recursive:!0});let e=l().join(d,`.${l().basename(c)}.${process.pid}.${(0,g.randomUUID)()}.tmp`);try{b=await j().open(e,"wx",384),await b.writeFile(a,"utf8"),await b.chmod(384),await b.sync(),await b.close(),b=null,await j().rename(e,c)}finally{b&&await b.close().catch(()=>{}),await j().unlink(e).catch(()=>{})}}function P(a,b){let c=Number(a);if(Number.isFinite(c)&&c>0)return Math.floor(c);let d=b.indexOf("/"),e=d>0?b.slice(0,d):null,f=d>0?b.slice(d+1):b;return(0,o.nl)(e,f).contextWindow}async function Q(){try{if(!await M())return e.NextResponse.json({installed:!1,settings:null,message:"Grok Build is not installed"});let a=function(a){let{data:b}=z(a),c={},d={};for(let a of r){let e=E(b,u,a);d[a]=e,c[a]=e===x(a)?F(b,e):null}return{model:F(b,q),default:E(b,t,"default"),subagentModels:c,subagentMappings:d}}(await N());return e.NextResponse.json({installed:!0,settings:a,hasZevai:!!a?.model?.base_url,configPath:L()})}catch(a){return console.log("Error checking grok-build settings:",a),e.NextResponse.json({error:"Failed to check grok-build settings"},{status:500})}}async function R(a){let b;try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}if(!b||"object"!=typeof b||Array.isArray(b))return e.NextResponse.json({error:"JSON body must be an object"},{status:400});try{let a="string"==typeof b.model?b.model.trim():"",c="string"==typeof b.baseUrl?b.baseUrl.trim():"";if(!c||!a)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let d=c.replace(/\/+$/,"").endsWith("/v1")?c.replace(/\/+$/,""):`${c.replace(/\/+$/,"")}/v1`,f=function(a,{baseUrl:b,apiKey:c,model:d,contextWindow:e,subagentModels:f}){let g=z(a);if(!function(a){if("default"in a.previous)return;let b=E(a.data,t,"default");b&&b!==q&&(a.previous.default=b)}(g),G(g.data,{slot:q,model:d,baseUrl:b,apiKey:c,contextWindow:e,name:"ZevaiRouter"}),C(g.data,t).default=q,f&&"object"==typeof f)for(let a of r){let d=f[a],e=x(a);d?.model?(!function(a,b){let c=`subagent-${b}`;if(c in a.previous)return;let d=B(a.data,u)?.[b];a.previous[c]="string"==typeof d?d:s}(g,a),G(g.data,{slot:e,model:d.model,baseUrl:b,apiKey:c,contextWindow:d.contextWindow,name:`ZevaiRouter ${a}`}),C(g.data,u)[a]=e):(H(g,a),D(g.data,["model"],e))}return A(g)}(await N(),{baseUrl:d,apiKey:"string"==typeof b.apiKey&&b.apiKey.trim()?b.apiKey.trim():"sk_zevai",model:a,contextWindow:P(b.contextWindow,a),subagentModels:function(a){if(void 0===a)return;if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let c of r){let d=a[c],e="string"==typeof d?d.trim():d?.model?.trim();e&&(b[c]={model:e,contextWindow:P(d?.contextWindow,e)})}return b}(b.subagentModels)});return await O(f),e.NextResponse.json({success:!0,message:"Grok Build settings applied successfully",configPath:L(),modelSlot:q})}catch(a){return console.log("Error updating grok-build settings:",a),e.NextResponse.json({error:"Failed to update grok-build settings"},{status:500})}}async function S(){try{let a;try{a=await j().readFile(L(),"utf-8")}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return await O(function(a){let b,c=z(a);for(let a of r)H(c,a),D(c.data,["model"],x(a));return D(c.data,["model"],q),b=c.previous.default||"grok-build",delete c.previous.default,E(c.data,t,"default")===q&&(C(c.data,t).default=b),A(c)}(a)),e.NextResponse.json({success:!0,message:"ZevaiRouter model slots removed from Grok Build"})}catch(a){return console.log("Error resetting grok-build settings:",a),e.NextResponse.json({error:"Failed to reset grok-build settings"},{status:500})}}(0,I.D)([Q,R,S]),(0,d.A)(Q,"000089a3566ae77ec0ef3acc4f3e4cddcca8f66c83",null),(0,d.A)(R,"40a8aaad8e66aa626777370be6d39bf5f2e5350139",null),(0,d.A)(S,"00d1ef0efc7180554669e7f4bfcb8eb85bba557701",null)},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},46298:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>u,POST:()=>v});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".cline","data"),q=()=>k().join(p(),"globalState.json"),r=()=>k().join(p(),"secrets.json"),s=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where cline":"which cline",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},t=async a=>{try{let b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function u(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"Cline CLI is not installed"});let a=await t(q());return e.NextResponse.json({installed:!0,settings:{actModeApiProvider:a?.actModeApiProvider,planModeApiProvider:a?.planModeApiProvider,openAiBaseUrl:a?.openAiBaseUrl,openAiModelId:a?.openAiModelId},hasZevai:(a=>{if(!a)return!1;let b="openai"===a.actModeApiProvider||"openai"===a.planModeApiProvider,c=a.openAiBaseUrl||"";return b&&(c.includes("localhost")||c.includes("127.0.0.1")||c.includes("zevairouter"))})(a),globalStatePath:q()})}catch(a){return console.log("Error checking cline settings:",a),e.NextResponse.json({error:"Failed to check cline settings"},{status:500})}}async function v(a){try{let{baseUrl:b,apiKey:c,model:d}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});await i().mkdir(p(),{recursive:!0});let f=b.endsWith("/v1")?b.slice(0,-3):b,g=await t(q())||{};g.actModeApiProvider="openai",g.planModeApiProvider="openai",g.openAiBaseUrl=f,g.openAiModelId=d,g.planModeOpenAiModelId=d,await i().writeFile(q(),JSON.stringify(g,null,2));let h=await t(r())||{};return h.openAiApiKey=c,await i().writeFile(r(),JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Cline settings applied successfully!",globalStatePath:q()})}catch(a){return console.log("Error updating cline settings:",a),e.NextResponse.json({error:"Failed to update cline settings"},{status:500})}}async function w(){try{let a=await t(q());if(!a)return e.NextResponse.json({success:!0,message:"No settings file to reset"});"openai"===a.actModeApiProvider&&(delete a.openAiBaseUrl,delete a.openAiModelId,delete a.planModeOpenAiModelId,a.actModeApiProvider="cline",a.planModeApiProvider="cline"),await i().writeFile(q(),JSON.stringify(a,null,2));let b=await t(r())||{};return delete b.openAiApiKey,await i().writeFile(r(),JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed from Cline"})}catch(a){return console.log("Error resetting cline settings:",a),e.NextResponse.json({error:"Failed to reset cline settings"},{status:500})}}(0,n.D)([u,v,w]),(0,d.A)(u,"00fac48876c02958af8d6a30f0773693a4805a38ef",null),(0,d.A)(v,"403b93912c47ccd066ce4e4a416fbdd4c41f23c25a",null),(0,d.A)(w,"0009aa0157ebc1d9b28db0a8add7ec18e5a1c602fe",null)},48074:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>A,GET:()=>y,POST:()=>z});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(28354),n=c(52750),o=c(24424);let p=(0,m.promisify)(l.exec),q=()=>i().join(k().homedir(),".jcode"),r=()=>i().join(q(),"config.toml"),s=()=>{let a=process.env.XDG_CONFIG_HOME||i().join(k().homedir(),".config");return i().join(a,"jcode","provider-zevairouter.env")},t=async()=>{try{let a="win32"===k().platform();return await p(a?"where jcode":"which jcode",{windowsHide:!0}),!0}catch{try{return await g().access(q()),!0}catch{return!1}}},u=async()=>{try{let a=r(),b=await g().readFile(a,"utf-8");return(0,n.M)(b)}catch(a){return{providers:{}}}},v=async a=>{let b=r(),c=(0,n.q)(a);await g().writeFile(b,c,"utf-8")},w=async()=>{try{let a=s(),b=await g().readFile(a,"utf-8"),c={};for(let a of b.split("\n")){let b=a.trim();if(!b||b.startsWith("#"))continue;let d=b.indexOf("=");if(d>0){let a=b.slice(0,d).trim(),e=b.slice(d+1).trim();(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),c[a]=e}}return c}catch{return{}}},x=async a=>{let b=s(),c="# jcode provider environment variables\n";for(let[b,d]of Object.entries(a))c+=`${b}="${d}"
4
- `;await g().writeFile(b,c,"utf-8")};async function y(){if(!await t())return e.NextResponse.json({installed:!1,message:"jcode not installed. Install via: curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash"});let a=await u(),b=(a=>{if(!a||!a.providers)return!1;let b=a.providers;if(b.zevai)return!0;for(let[a,c]of Object.entries(b))if(c.base_url&&c.base_url.includes("localhost:1997"))return!0;return!1})(a);return e.NextResponse.json({installed:!0,config:a,hasZevai:b,configPath:r()})}async function z(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let f=b.endsWith("/v1")?b:`${b}/v1`,h=await u();h.providers||(h.providers={}),h.providers.zevai={type:"openai-compatible",base_url:f,auth:"bearer",api_key_env:"JCODE_ZEVAI_API_KEY",env_file:"provider-zevairouter.env",default_model:d&&d.length>0?d[0]:"cc/claude-opus-4-7",requires_api_key:!0};let j=q();await g().mkdir(j,{recursive:!0}),await v(h);let l=process.env.XDG_CONFIG_HOME||i().join(k().homedir(),".config"),m=i().join(l,"jcode");await g().mkdir(m,{recursive:!0});let n=await w();return n.JCODE_ZEVAI_API_KEY=c,await x(n),e.NextResponse.json({success:!0,message:"jcode configured successfully. Use: jcode --provider-profile zevairouter",configPath:r()})}catch(a){return console.error("Error configuring jcode:",a),e.NextResponse.json({error:a.message},{status:500})}}async function A(){try{let a=await u();if(!a.providers)return e.NextResponse.json({success:!0,message:"No configuration to remove"});delete a.providers.zevai,await v(a);let b=await w();return delete b.JCODE_ZEVAI_API_KEY,await x(b),e.NextResponse.json({success:!0,message:"zevairouter configuration removed from jcode"})}catch(a){return console.error("Error removing jcode configuration:",a),e.NextResponse.json({error:a.message},{status:500})}}(0,o.D)([y,z,A]),(0,d.A)(y,"00272e74c56bb0a6c8ccb883a28edab50473b7c73b",null),(0,d.A)(z,"409b91f953de57db4f5954e1d4ef7103df7127a585",null),(0,d.A)(A,"00e3f5d8f9b1b959af9d83ac00b787fb0958de7436",null)},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57975:a=>{a.exports=require("node:util")},58750:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>C,GET:()=>A,POST:()=>B});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(52750),o=c(14262),p=c(24424);let q=(0,g.promisify)(f.exec),r=()=>k().join(m().homedir(),".codex"),s=()=>k().join(r(),"config.toml"),t=()=>k().join(r(),"auth.json");async function u(){try{let{getModelAliases:a,deleteModelAlias:b}=await Promise.all([c.e(3999),c.e(4720)]).then(c.bind(c,89718)),d=await a();for(let[a,c]of Object.entries(d||{})){let d=String(a||""),e=String(c||"");/^gpt-5\.6/i.test(d)&&/gpt-5\.5|gpt-5\.4|gpt-5\.3/i.test(e)&&!/gpt-5\.6/i.test(e)&&await b(a)}}catch{}}let v=a=>a??{},w=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c},x=(a,b)=>{let c=b.split("."),d=a,e=[];for(let a=0;a<c.length-1;a++)if(e.push([d,c[a]]),null==(d=d?.[c[a]]))return;delete d[c[c.length-1]];for(let a=e.length-1;a>=0;a--){let[b,c]=e[a],d=b[c];if(!d||"object"!=typeof d||Object.keys(d).length>0)break;delete b[c]}},y=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await q(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},z=async()=>{try{let a=s();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function A(){try{if(!await y())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let a=await z();return e.NextResponse.json({installed:!0,config:a,hasZevai:!!a&&(a.includes('model_provider = "zevai"')||a.includes('model_provider = "zevairouter"')||a.includes("[model_providers.zevai]")),configPath:s()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function B(a){try{let{baseUrl:b,apiKey:c,model:d,subagentModel:f}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let g=r(),h=s();await i().mkdir(g,{recursive:!0});let j={};try{let a=await i().readFile(h,"utf-8");j=v((0,n.M)(a))}catch{}let k=(0,o.Ow)(d),l=(0,o.Fq)(f||d);j.model=k,j.model_provider="zevai";let p=(0,o.tb)(b);x(j,"model_providers.zevairouter"),w(j,"model_providers.zevai",{name:"ZevaiRouter",base_url:p,wire_api:"responses",requires_openai_auth:!0}),x(j,"agents.subagent.model"),w(j,"agents.default_subagent_model",l),await u();let q=(0,n.q)(j);await i().writeFile(h,q);let y=t(),z={};try{let a=await i().readFile(y,"utf-8");z=JSON.parse(a)}catch{}return z.OPENAI_API_KEY=c,z.auth_mode="apikey",await i().writeFile(y,JSON.stringify(z,null,2),{mode:384}),"win32"!==m().platform()&&await i().chmod(y,384),e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:h,model:k,subagentModel:l})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function C(){try{let a=s(),b={};try{let c=await i().readFile(a,"utf-8");b=v((0,n.M)(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}("zevai"===b.model_provider||"zevairouter"===b.model_provider)&&(delete b.model,delete b.model_provider),x(b,"model_providers.zevai"),x(b,"model_providers.zevairouter"),x(b,"agents.default_subagent_model"),x(b,"agents.subagent.model");let c=(0,n.q)(b);await i().writeFile(a,c);let d=t();try{let a=await i().readFile(d,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(d):(await i().writeFile(d,JSON.stringify(b,null,2),{mode:384}),"win32"!==m().platform()&&await i().chmod(d,384))}catch{}return e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,p.D)([A,B,C]),(0,d.A)(A,"00dcc68e74fc64d5ad00089142b7aee39f4e61b625",null),(0,d.A)(B,"40605ba05cc57145872fcdd0d5eb3f873dca9c4b70",null),(0,d.A)(C,"00d45ac4d3671757a65180e9e9699cf5d582649214",null)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67116:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>u,POST:()=>v});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".deepseek"),q=()=>k().join(p(),"config.toml"),r=`provider = "deepseek"
3
+ ${d}`:`${c}${d}`}function B(a,b){let c=a;for(let a of b)if(!y(c=c?.[a]))return null;return c}function C(a,b){let c=a;for(let a of b){if(void 0===c[a]&&(c[a]={}),!y(c[a]))throw Error(`Grok Build config key "${b.join(".")}" is not a table`);c=c[a]}return c}function D(a,b,c){let d=[a];for(let a of b){let b=d.at(-1)[a];if(!y(b))return;d.push(b)}delete d.at(-1)[c];for(let a=b.length;a>0&&!(Object.keys(d[a]).length>0);a-=1)delete d[a-1][b[a-1]]}function E(a,b,c){let d=B(a,b)?.[c];return"string"==typeof d?d:null}function F(a,b){let c=B(a,["model",b]);if(!c)return null;let d={};for(let a of v)d[a]="string"==typeof c[a]?c[a]:null;let e=Number(c.context_window);return d.context_window=Number.isFinite(e)&&e>0?e:null,d}function G(a,{slot:b,model:c,baseUrl:d,apiKey:e,contextWindow:f,name:g}){let h={model:String(c),base_url:String(d),name:g,description:"Routed via ZevaiRouter gateway",api_backend:"chat_completions"};e&&(h.api_key=String(e)),Number.isFinite(f)&&f>0&&(h.context_window=Math.floor(f)),C(a,["model"])[b]=h}function H(a,b){let c=`subagent-${b}`,d=a.previous[c]||s;if(delete a.previous[c],E(a.data,u,b)===x(b)){if(d===s)return void D(a.data,u,b);C(a.data,u)[b]=d}}var I=c(24424);let J=(0,h.promisify)(f.execFile),K=()=>l().join(n().homedir(),".grok"),L=()=>l().join(K(),"config.toml");async function M(){try{return await J("win32"===n().platform()?"where":"which",["grok"],{windowsHide:!0}),!0}catch{for(let a of[l().join(K(),"bin","win32"===n().platform()?"grok.exe":"grok"),L()])try{return await j().access(a),!0}catch{}return!1}}async function N(){try{return await j().readFile(L(),"utf-8")}catch(a){if("ENOENT"===a.code)return"";throw a}}async function O(a){let b,c=L(),d=l().dirname(c);await j().mkdir(d,{recursive:!0});let e=l().join(d,`.${l().basename(c)}.${process.pid}.${(0,g.randomUUID)()}.tmp`);try{b=await j().open(e,"wx",384),await b.writeFile(a,"utf8"),await b.chmod(384),await b.sync(),await b.close(),b=null,await j().rename(e,c)}finally{b&&await b.close().catch(()=>{}),await j().unlink(e).catch(()=>{})}}function P(a,b){let c=Number(a);if(Number.isFinite(c)&&c>0)return Math.floor(c);let d=b.indexOf("/"),e=d>0?b.slice(0,d):null,f=d>0?b.slice(d+1):b;return(0,o.nl)(e,f).contextWindow}async function Q(){try{if(!await M())return e.NextResponse.json({installed:!1,settings:null,message:"Grok Build is not installed"});let a=function(a){let{data:b}=z(a),c={},d={};for(let a of r){let e=E(b,u,a);d[a]=e,c[a]=e===x(a)?F(b,e):null}return{model:F(b,q),default:E(b,t,"default"),subagentModels:c,subagentMappings:d}}(await N());return e.NextResponse.json({installed:!0,settings:a,hasZevai:!!a?.model?.base_url,configPath:L()})}catch(a){return console.log("Error checking grok-build settings:",a),e.NextResponse.json({error:"Failed to check grok-build settings"},{status:500})}}async function R(a){let b;try{b=await a.json()}catch{return e.NextResponse.json({error:"Invalid JSON body"},{status:400})}if(!b||"object"!=typeof b||Array.isArray(b))return e.NextResponse.json({error:"JSON body must be an object"},{status:400});try{let a="string"==typeof b.model?b.model.trim():"",c="string"==typeof b.baseUrl?b.baseUrl.trim():"";if(!c||!a)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let d=c.replace(/\/+$/,"").endsWith("/v1")?c.replace(/\/+$/,""):`${c.replace(/\/+$/,"")}/v1`,f=function(a,{baseUrl:b,apiKey:c,model:d,contextWindow:e,subagentModels:f}){let g=z(a);if(!function(a){if("default"in a.previous)return;let b=E(a.data,t,"default");b&&b!==q&&(a.previous.default=b)}(g),G(g.data,{slot:q,model:d,baseUrl:b,apiKey:c,contextWindow:e,name:"ZevaiRouter"}),C(g.data,t).default=q,f&&"object"==typeof f)for(let a of r){let d=f[a],e=x(a);d?.model?(!function(a,b){let c=`subagent-${b}`;if(c in a.previous)return;let d=B(a.data,u)?.[b];a.previous[c]="string"==typeof d?d:s}(g,a),G(g.data,{slot:e,model:d.model,baseUrl:b,apiKey:c,contextWindow:d.contextWindow,name:`ZevaiRouter ${a}`}),C(g.data,u)[a]=e):(H(g,a),D(g.data,["model"],e))}return A(g)}(await N(),{baseUrl:d,apiKey:"string"==typeof b.apiKey&&b.apiKey.trim()?b.apiKey.trim():"sk_zevai",model:a,contextWindow:P(b.contextWindow,a),subagentModels:function(a){if(void 0===a)return;if(!a||"object"!=typeof a||Array.isArray(a))return{};let b={};for(let c of r){let d=a[c],e="string"==typeof d?d.trim():d?.model?.trim();e&&(b[c]={model:e,contextWindow:P(d?.contextWindow,e)})}return b}(b.subagentModels)});return await O(f),e.NextResponse.json({success:!0,message:"Grok Build settings applied successfully",configPath:L(),modelSlot:q})}catch(a){return console.log("Error updating grok-build settings:",a),e.NextResponse.json({error:"Failed to update grok-build settings"},{status:500})}}async function S(){try{let a;try{a=await j().readFile(L(),"utf-8")}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return await O(function(a){let b,c=z(a);for(let a of r)H(c,a),D(c.data,["model"],x(a));return D(c.data,["model"],q),b=c.previous.default||"grok-build",delete c.previous.default,E(c.data,t,"default")===q&&(C(c.data,t).default=b),A(c)}(a)),e.NextResponse.json({success:!0,message:"ZevaiRouter model slots removed from Grok Build"})}catch(a){return console.log("Error resetting grok-build settings:",a),e.NextResponse.json({error:"Failed to reset grok-build settings"},{status:500})}}(0,I.D)([Q,R,S]),(0,d.A)(Q,"00f451d790774cbceb97ec03b02730605e80b8d708",null),(0,d.A)(R,"40b4e07e97fd8371ee4bec18f8e1f7eac23d04172d",null),(0,d.A)(S,"00731fe66746aa1bad2e08c1b911488ca637d2250c",null)},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{a.exports=require("sql.js")},46298:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>u,POST:()=>v});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".cline","data"),q=()=>k().join(p(),"globalState.json"),r=()=>k().join(p(),"secrets.json"),s=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where cline":"which cline",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},t=async a=>{try{let b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function u(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"Cline CLI is not installed"});let a=await t(q());return e.NextResponse.json({installed:!0,settings:{actModeApiProvider:a?.actModeApiProvider,planModeApiProvider:a?.planModeApiProvider,openAiBaseUrl:a?.openAiBaseUrl,openAiModelId:a?.openAiModelId},hasZevai:(a=>{if(!a)return!1;let b="openai"===a.actModeApiProvider||"openai"===a.planModeApiProvider,c=a.openAiBaseUrl||"";return b&&(c.includes("localhost")||c.includes("127.0.0.1")||c.includes("zevairouter"))})(a),globalStatePath:q()})}catch(a){return console.log("Error checking cline settings:",a),e.NextResponse.json({error:"Failed to check cline settings"},{status:500})}}async function v(a){try{let{baseUrl:b,apiKey:c,model:d}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});await i().mkdir(p(),{recursive:!0});let f=b.endsWith("/v1")?b.slice(0,-3):b,g=await t(q())||{};g.actModeApiProvider="openai",g.planModeApiProvider="openai",g.openAiBaseUrl=f,g.openAiModelId=d,g.planModeOpenAiModelId=d,await i().writeFile(q(),JSON.stringify(g,null,2));let h=await t(r())||{};return h.openAiApiKey=c,await i().writeFile(r(),JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Cline settings applied successfully!",globalStatePath:q()})}catch(a){return console.log("Error updating cline settings:",a),e.NextResponse.json({error:"Failed to update cline settings"},{status:500})}}async function w(){try{let a=await t(q());if(!a)return e.NextResponse.json({success:!0,message:"No settings file to reset"});"openai"===a.actModeApiProvider&&(delete a.openAiBaseUrl,delete a.openAiModelId,delete a.planModeOpenAiModelId,a.actModeApiProvider="cline",a.planModeApiProvider="cline"),await i().writeFile(q(),JSON.stringify(a,null,2));let b=await t(r())||{};return delete b.openAiApiKey,await i().writeFile(r(),JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed from Cline"})}catch(a){return console.log("Error resetting cline settings:",a),e.NextResponse.json({error:"Failed to reset cline settings"},{status:500})}}(0,n.D)([u,v,w]),(0,d.A)(u,"008bea7e58cff80828a313fc3a956829229c815ffc",null),(0,d.A)(v,"4014fc18d8f6a015aa1d8d4684d0e5cbaa135680c8",null),(0,d.A)(w,"00e010bb62f51064303d292ff86ca606977a0e9200",null)},48074:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>A,GET:()=>y,POST:()=>z});var d=c(49796),e=c(23211),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(28354),n=c(52750),o=c(24424);let p=(0,m.promisify)(l.exec),q=()=>i().join(k().homedir(),".jcode"),r=()=>i().join(q(),"config.toml"),s=()=>{let a=process.env.XDG_CONFIG_HOME||i().join(k().homedir(),".config");return i().join(a,"jcode","provider-zevairouter.env")},t=async()=>{try{let a="win32"===k().platform();return await p(a?"where jcode":"which jcode",{windowsHide:!0}),!0}catch{try{return await g().access(q()),!0}catch{return!1}}},u=async()=>{try{let a=r(),b=await g().readFile(a,"utf-8");return(0,n.M)(b)}catch(a){return{providers:{}}}},v=async a=>{let b=r(),c=(0,n.q)(a);await g().writeFile(b,c,"utf-8")},w=async()=>{try{let a=s(),b=await g().readFile(a,"utf-8"),c={};for(let a of b.split("\n")){let b=a.trim();if(!b||b.startsWith("#"))continue;let d=b.indexOf("=");if(d>0){let a=b.slice(0,d).trim(),e=b.slice(d+1).trim();(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),c[a]=e}}return c}catch{return{}}},x=async a=>{let b=s(),c="# jcode provider environment variables\n";for(let[b,d]of Object.entries(a))c+=`${b}="${d}"
4
+ `;await g().writeFile(b,c,"utf-8")};async function y(){if(!await t())return e.NextResponse.json({installed:!1,message:"jcode not installed. Install via: curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/install.sh | bash"});let a=await u(),b=(a=>{if(!a||!a.providers)return!1;let b=a.providers;if(b.zevai)return!0;for(let[a,c]of Object.entries(b))if(c.base_url&&c.base_url.includes("localhost:1997"))return!0;return!1})(a);return e.NextResponse.json({installed:!0,config:a,hasZevai:b,configPath:r()})}async function z(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let f=b.endsWith("/v1")?b:`${b}/v1`,h=await u();h.providers||(h.providers={}),h.providers.zevai={type:"openai-compatible",base_url:f,auth:"bearer",api_key_env:"JCODE_ZEVAI_API_KEY",env_file:"provider-zevairouter.env",default_model:d&&d.length>0?d[0]:"cc/claude-opus-4-7",requires_api_key:!0};let j=q();await g().mkdir(j,{recursive:!0}),await v(h);let l=process.env.XDG_CONFIG_HOME||i().join(k().homedir(),".config"),m=i().join(l,"jcode");await g().mkdir(m,{recursive:!0});let n=await w();return n.JCODE_ZEVAI_API_KEY=c,await x(n),e.NextResponse.json({success:!0,message:"jcode configured successfully. Use: jcode --provider-profile zevairouter",configPath:r()})}catch(a){return console.error("Error configuring jcode:",a),e.NextResponse.json({error:a.message},{status:500})}}async function A(){try{let a=await u();if(!a.providers)return e.NextResponse.json({success:!0,message:"No configuration to remove"});delete a.providers.zevai,await v(a);let b=await w();return delete b.JCODE_ZEVAI_API_KEY,await x(b),e.NextResponse.json({success:!0,message:"zevairouter configuration removed from jcode"})}catch(a){return console.error("Error removing jcode configuration:",a),e.NextResponse.json({error:a.message},{status:500})}}(0,o.D)([y,z,A]),(0,d.A)(y,"00010a1ca15272361786fabfdce968b2ed2855306e",null),(0,d.A)(z,"4090aa131092fd173a475217678a79996e80a39104",null),(0,d.A)(A,"00b1e189d6f35b2dabe41d814b4e3461f7785f58cd",null)},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57975:a=>{a.exports=require("node:util")},58750:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>C,GET:()=>A,POST:()=>B});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(52750),o=c(14262),p=c(24424);let q=(0,g.promisify)(f.exec),r=()=>k().join(m().homedir(),".codex"),s=()=>k().join(r(),"config.toml"),t=()=>k().join(r(),"auth.json");async function u(){try{let{getModelAliases:a,deleteModelAlias:b}=await Promise.all([c.e(3999),c.e(4720)]).then(c.bind(c,89718)),d=await a();for(let[a,c]of Object.entries(d||{})){let d=String(a||""),e=String(c||"");/^gpt-5\.6/i.test(d)&&/gpt-5\.5|gpt-5\.4|gpt-5\.3/i.test(e)&&!/gpt-5\.6/i.test(e)&&await b(a)}}catch{}}let v=a=>a??{},w=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a<d.length-1;a++)(null==e[d[a]]||"object"!=typeof e[d[a]])&&(e[d[a]]={}),e=e[d[a]];e[d[d.length-1]]=c},x=(a,b)=>{let c=b.split("."),d=a,e=[];for(let a=0;a<c.length-1;a++)if(e.push([d,c[a]]),null==(d=d?.[c[a]]))return;delete d[c[c.length-1]];for(let a=e.length-1;a>=0;a--){let[b,c]=e[a],d=b[c];if(!d||"object"!=typeof d||Object.keys(d).length>0)break;delete b[c]}},y=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await q(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(s()),!0}catch{return!1}}},z=async()=>{try{let a=s();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function A(){try{if(!await y())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let a=await z();return e.NextResponse.json({installed:!0,config:a,hasZevai:!!a&&(a.includes('model_provider = "zevai"')||a.includes('model_provider = "zevairouter"')||a.includes("[model_providers.zevai]")),configPath:s()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function B(a){try{let{baseUrl:b,apiKey:c,model:d,subagentModel:f}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let g=r(),h=s();await i().mkdir(g,{recursive:!0});let j={};try{let a=await i().readFile(h,"utf-8");j=v((0,n.M)(a))}catch{}let k=(0,o.Ow)(d),l=(0,o.Fq)(f||d);j.model=k,j.model_provider="zevai";let p=(0,o.tb)(b);x(j,"model_providers.zevairouter"),w(j,"model_providers.zevai",{name:"ZevaiRouter",base_url:p,wire_api:"responses",requires_openai_auth:!0}),x(j,"agents.subagent.model"),w(j,"agents.default_subagent_model",l),await u();let q=(0,n.q)(j);await i().writeFile(h,q);let y=t(),z={};try{let a=await i().readFile(y,"utf-8");z=JSON.parse(a)}catch{}return z.OPENAI_API_KEY=c,z.auth_mode="apikey",await i().writeFile(y,JSON.stringify(z,null,2),{mode:384}),"win32"!==m().platform()&&await i().chmod(y,384),e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:h,model:k,subagentModel:l})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function C(){try{let a=s(),b={};try{let c=await i().readFile(a,"utf-8");b=v((0,n.M)(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}("zevai"===b.model_provider||"zevairouter"===b.model_provider)&&(delete b.model,delete b.model_provider),x(b,"model_providers.zevai"),x(b,"model_providers.zevairouter"),x(b,"agents.default_subagent_model"),x(b,"agents.subagent.model");let c=(0,n.q)(b);await i().writeFile(a,c);let d=t();try{let a=await i().readFile(d,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(d):(await i().writeFile(d,JSON.stringify(b,null,2),{mode:384}),"win32"!==m().platform()&&await i().chmod(d,384))}catch{}return e.NextResponse.json({success:!0,message:"ZevaiRouter settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,p.D)([A,B,C]),(0,d.A)(A,"008ecf5c27318342e714bcc10a22f473912d62cbd9",null),(0,d.A)(B,"400dd13508aa61d528bab40fe6daa222c881ec7f2e",null),(0,d.A)(C,"00af2cce4792765953636c8f8e791d2bc1b21c794e",null)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67116:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>u,POST:()=>v});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".deepseek"),q=()=>k().join(p(),"config.toml"),r=`provider = "deepseek"
5
5
  `,s=async()=>{try{let a="win32"===m().platform();return await o(a?"where deepseek":"which deepseek",{windowsHide:!0}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},t=async()=>{try{return await i().readFile(q(),"utf-8")}catch(a){if("ENOENT"===a.code)return"";throw a}};async function u(){try{if(!await s())return e.NextResponse.json({installed:!1,settings:null,message:"DeepSeek TUI is not installed"});let a=await t(),b=(a=>{let b={},c=b;for(let d of a.split(/\r?\n/)){let a=d.trim();if(!a||a.startsWith("#"))continue;let e=a.match(/^\[([^\]]+)\]$/);if(e){let a=e[1];b[a]||(b[a]={}),c=b[a];continue}let f=a.match(/^(\w+)\s*=\s*"([^"]*)"$/);if(f){c[f[1]]=f[2];continue}let g=a.match(/^(\w+)\s*=\s*(.+)$/);g&&(c[g[1]]=g[2].trim())}return b})(a);return e.NextResponse.json({installed:!0,settings:b,hasZevai:(a=>{if(!a||"openai"!==a.provider)return!1;let b=a["providers.openai"];return!!b?.base_url&&/localhost|127\.0\.0\.1|0\.0\.0\.0/.test(b.base_url)})(b),configPath:q()})}catch(a){return console.log("Error checking deepseek-tui settings:",a),e.NextResponse.json({error:"Failed to check deepseek-tui settings"},{status:500})}}async function v(a){try{var b;let c,{baseUrl:d,apiKey:f,model:g}=await a.json();if(!d||!g)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let h=p();await i().mkdir(h,{recursive:!0});let j=(b=f||"sk_zevai",c=d.endsWith("/v1")?d:`${d}/v1`,`provider = "openai"
6
6
 
7
7
  [providers.openai]
8
8
  base_url = "${c}"
9
9
  api_key = "${b}"
10
10
  model = "${g}"
11
- `);return await i().writeFile(q(),j),e.NextResponse.json({success:!0,message:"DeepSeek TUI settings applied successfully!",configPath:q()})}catch(a){return console.log("Error updating deepseek-tui settings:",a),e.NextResponse.json({error:"Failed to update deepseek-tui settings"},{status:500})}}async function w(){try{let a=q();try{await i().access(a)}catch{return e.NextResponse.json({success:!0,message:"No config file to reset"})}return await i().writeFile(a,r),e.NextResponse.json({success:!0,message:"zevairouter config reset to DeepSeek defaults"})}catch(a){return console.log("Error resetting deepseek-tui settings:",a),e.NextResponse.json({error:"Failed to reset deepseek-tui settings"},{status:500})}}(0,n.D)([u,v,w]),(0,d.A)(u,"00321619471f05057ce401f52445bd2f78ac28f27b",null),(0,d.A)(v,"405f0835bd849ac39c479b090e3d8bf60fc5e322a7",null),(0,d.A)(w,"00e3f3572be1945f858566d6009b37885361e64f6c",null)},72452:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>t,PATCH:()=>v,POST:()=>u});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".config","opencode"),q=async()=>{let a=k().join(p(),"opencode.json"),b=k().join(p(),"opencode.jsonc");try{return await i().access(a),a}catch{try{return await i().access(b),b}catch{return a}}},r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where opencode":"which opencode",{windowsHide:!0,env:b}),!0}catch{try{let a=await q();return await i().access(a),!0}catch{return!1}}},s=async a=>{let b=a||await q();try{var c=await i().readFile(b,"utf-8");try{return JSON.parse(c)}catch{return JSON.parse(c.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,(a,b)=>b?"":a))}}catch(a){if("ENOENT"===a.code)return null;throw a}};async function t(){try{if(!await r())return e.NextResponse.json({installed:!1,config:null,message:"OpenCode CLI is not installed"});let a=await q(),b=await s(a),c=b?.provider?.zevai,d=c?.models||{};return e.NextResponse.json({installed:!0,config:b,hasZevai:!!b?.provider&&!!b.provider.zevai,configPath:a,opencode:{models:Object.keys(d),activeModel:b?.model?.startsWith("zevai/")?b.model.replace(/^zevai\//,""):null,baseURL:c?.options?.baseURL||null}})}catch(a){return console.log("Error checking opencode settings:",a),e.NextResponse.json({error:"Failed to check opencode settings"},{status:500})}}async function u(a){try{let{baseUrl:b,apiKey:c,model:d,models:f,activeModel:g,subagentModel:h}=await a.json(),j=Array.isArray(f)?f.slice():"string"==typeof d?[d]:[];if(!b||0===j.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let k=p(),l=await q();await i().mkdir(k,{recursive:!0});let m=await s(l)||{},n=b.endsWith("/v1")?b:`${b}/v1`,o=h||j[0];m.provider||(m.provider={});let r=m.provider.zevai||{npm:"@ai-sdk/openai-compatible",options:{},models:{}};for(let a of(r.options={...r.options,baseURL:n,apiKey:c||"sk_zevai"},r.models=r.models||{},j))a&&"string"==typeof a&&(r.models[a]={name:a,modalities:{input:["text","image"],output:["text"]}});if(m.provider.zevai=r,""===g)m.model="";else{let a=g||j[0];a&&(m.model=`zevai/${a}`)}return m.agent||(m.agent={}),m.agent.explorer={description:"Fast explorer subagent for codebase exploration",mode:"subagent",model:`zevai/${o}`},await i().writeFile(l,JSON.stringify(m,null,2)),e.NextResponse.json({success:!0,message:"OpenCode settings applied successfully!",configPath:l})}catch(a){return console.log("Error applying opencode settings:",a),e.NextResponse.json({error:"Failed to apply settings"},{status:500})}}async function v(a){try{let{clearActiveModel:b}=await a.json(),c=await q(),d=await s(c)||{};return!0===b&&d.model?.startsWith("zevai/")&&(d.model=""),await i().writeFile(c,JSON.stringify(d,null,2)),e.NextResponse.json({success:!0,message:"Settings updated"})}catch(a){return console.log("Error patching opencode settings:",a),e.NextResponse.json({error:"Failed to patch settings"},{status:500})}}async function w(a){try{let{searchParams:b}=new URL(a.url),c=b.get("model"),d=await q(),f=await s(d)||{};if(c&&f.provider?.zevai?.models){if(delete f.provider.zevai.models[c],0===Object.keys(f.provider.zevai.models).length)delete f.provider.zevai,f.model?.startsWith("zevai/")&&delete f.model;else if(f.model===`zevai/${c}`){let a=Object.keys(f.provider.zevai.models);f.model=`zevai/${a[0]}`}}else f.provider&&delete f.provider.zevai,f.model?.startsWith("zevai/")&&delete f.model;return f.agent?.explorer?.model?.startsWith("zevai/")&&(delete f.agent.explorer,0===Object.keys(f.agent).length&&delete f.agent),await i().writeFile(d,JSON.stringify(f,null,2)),e.NextResponse.json({success:!0,message:c?`Model "${c}" removed`:"ZevaiRouter settings removed from OpenCode"})}catch(a){return console.log("Error resetting opencode settings:",a),e.NextResponse.json({error:"Failed to reset opencode settings"},{status:500})}}(0,n.D)([t,u,v,w]),(0,d.A)(t,"00026892dcc3f50834697bfbe9c8f8bf26082a33df",null),(0,d.A)(u,"409b7d2388d650ea2fdef4789c5e7b296dd554d4d5",null),(0,d.A)(v,"4086141e6e5365c61f553a017e57a7c40246273398",null),(0,d.A)(w,"40990086bec28699228086e508aad62af266c46b9f",null)},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},78306:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/all-statuses/route",pathname:"/api/cli-tools/all-statuses",filename:"route",bundlePath:"app/api/cli-tools/all-statuses/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/cli-tools/all-statuses/route.js",nextConfigOutput:"standalone",userland:()=>c(19593),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/all-statuses/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},79428:a=>{a.exports=require("buffer")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},94674:(a,b,c)=>{c.r(b),c.d(b,{"000089a3566ae77ec0ef3acc4f3e4cddcca8f66c83":()=>g.GET,"00026892dcc3f50834697bfbe9c8f8bf26082a33df":()=>h.GET,"0009aa0157ebc1d9b28db0a8add7ec18e5a1c602fe":()=>n.DELETE,"0024aca1062b2a4f93788820e8c4879ef9d64d8af7":()=>l.GET,"00272e74c56bb0a6c8ccb883a28edab50473b7c73b":()=>q.GET,"00321619471f05057ce401f52445bd2f78ac28f27b":()=>p.GET,"003292a95e467feb66b6a241f6285dac61fca4f8e5":()=>j.GET,"00347de7948e79429c63bfa5a024819195420406aa":()=>k.GET,"006c0e899bb067b0db01bf98d75f9a4efccb56ad8b":()=>e.GET,"009957403d4cae0278570147d96b13d030fbfb8178":()=>r.GET,"009d022675f116c67703170e0f290e338368a8534d":()=>m.DELETE,"009f370a9e78a9050971379cf378447a455fc56d67":()=>o.DELETE,"00b39939a99ecec4971e6654606d336ea3b30ee39a":()=>l.DELETE,"00d1ef0efc7180554669e7f4bfcb8eb85bba557701":()=>g.DELETE,"00d2495deaa7aba323f529ee8a4707decf0ab27617":()=>e.DELETE,"00d361ad720ea4b0f3626e62a4d045ac5f33688cc7":()=>j.DELETE,"00d45ac4d3671757a65180e9e9699cf5d582649214":()=>f.DELETE,"00d71548651e26c27ae6f3620a80b45e3417ad475b":()=>r.DELETE,"00da20e8100d6ccca67e0668036c4eb58cff1ac62b":()=>m.GET,"00dcc68e74fc64d5ad00089142b7aee39f4e61b625":()=>f.GET,"00e3f3572be1945f858566d6009b37885361e64f6c":()=>p.DELETE,"00e3f5d8f9b1b959af9d83ac00b787fb0958de7436":()=>q.DELETE,"00e434d6ad1ae2289a146ee9bfdf945c8879ea6571":()=>i.DELETE,"00ebf1341ef2752cbf15553de3c2786742400f4a87":()=>i.GET,"00f9c544211a7bddd7f6924a52e32688f76f581979":()=>o.GET,"00fac48876c02958af8d6a30f0773693a4805a38ef":()=>n.GET,"00fd7b870baaa37611abfc7f4f5e6bd0f73e77a0af":()=>d.GET,"4012174879baaba16c7a2908881e1e474040e6ce7f":()=>k.DELETE,"402825acce9c9d0ccdd4ade3b62a749875d0d8b5c7":()=>r.POST,"403354683fdcfec9307e0819e70bd4371bd41b017d":()=>k.POST,"40370e79935485330383514988ce02153e737f0558":()=>e.POST,"403b93912c47ccd066ce4e4a416fbdd4c41f23c25a":()=>n.POST,"405f0835bd849ac39c479b090e3d8bf60fc5e322a7":()=>p.POST,"40605ba05cc57145872fcdd0d5eb3f873dca9c4b70":()=>f.POST,"40708ab5dc3f3323ef7c6e024420b05acf1da27290":()=>m.POST,"4086141e6e5365c61f553a017e57a7c40246273398":()=>h.PATCH,"4087f2befe97d5e19b4fe0853c0362c29dee93ed73":()=>l.POST,"40990086bec28699228086e508aad62af266c46b9f":()=>h.DELETE,"409b7d2388d650ea2fdef4789c5e7b296dd554d4d5":()=>h.POST,"409b91f953de57db4f5954e1d4ef7103df7127a585":()=>q.POST,"40a8aaad8e66aa626777370be6d39bf5f2e5350139":()=>g.POST,"40b85092ed05529098ae5976bf5a05cdee684a21f8":()=>j.POST,"40d8d2687161fdda41453f4152c246935952f07150":()=>i.POST,"40ee0bc7fd04335c1216d04a24be1f40ab966a1c7a":()=>o.POST});var d=c(19593),e=c(14833),f=c(58750),g=c(37709),h=c(72452),i=c(29657),j=c(4126),k=c(12897),l=c(21350),m=c(20703),n=c(46298),o=c(8304),p=c(67116),q=c(48074),r=c(18927)},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,9528,3294,5024,3477,5681,6306,3949,1350],()=>b(b.s=78306));module.exports=c})();
11
+ `);return await i().writeFile(q(),j),e.NextResponse.json({success:!0,message:"DeepSeek TUI settings applied successfully!",configPath:q()})}catch(a){return console.log("Error updating deepseek-tui settings:",a),e.NextResponse.json({error:"Failed to update deepseek-tui settings"},{status:500})}}async function w(){try{let a=q();try{await i().access(a)}catch{return e.NextResponse.json({success:!0,message:"No config file to reset"})}return await i().writeFile(a,r),e.NextResponse.json({success:!0,message:"zevairouter config reset to DeepSeek defaults"})}catch(a){return console.log("Error resetting deepseek-tui settings:",a),e.NextResponse.json({error:"Failed to reset deepseek-tui settings"},{status:500})}}(0,n.D)([u,v,w]),(0,d.A)(u,"000223d23882d5a54926c50f4f3444f7f94a1790e1",null),(0,d.A)(v,"40a645d3c69ebf9efa78f623ca3c9987691b4aa54f",null),(0,d.A)(w,"001ac54b4ed2d8f7c4126a727360be88bfb34b07cd",null)},72452:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>w,GET:()=>t,PATCH:()=>v,POST:()=>u});var d=c(49796),e=c(23211),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(24424);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".config","opencode"),q=async()=>{let a=k().join(p(),"opencode.json"),b=k().join(p(),"opencode.jsonc");try{return await i().access(a),a}catch{try{return await i().access(b),b}catch{return a}}},r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where opencode":"which opencode",{windowsHide:!0,env:b}),!0}catch{try{let a=await q();return await i().access(a),!0}catch{return!1}}},s=async a=>{let b=a||await q();try{var c=await i().readFile(b,"utf-8");try{return JSON.parse(c)}catch{return JSON.parse(c.replace(/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,(a,b)=>b?"":a))}}catch(a){if("ENOENT"===a.code)return null;throw a}};async function t(){try{if(!await r())return e.NextResponse.json({installed:!1,config:null,message:"OpenCode CLI is not installed"});let a=await q(),b=await s(a),c=b?.provider?.zevai,d=c?.models||{};return e.NextResponse.json({installed:!0,config:b,hasZevai:!!b?.provider&&!!b.provider.zevai,configPath:a,opencode:{models:Object.keys(d),activeModel:b?.model?.startsWith("zevai/")?b.model.replace(/^zevai\//,""):null,baseURL:c?.options?.baseURL||null}})}catch(a){return console.log("Error checking opencode settings:",a),e.NextResponse.json({error:"Failed to check opencode settings"},{status:500})}}async function u(a){try{let{baseUrl:b,apiKey:c,model:d,models:f,activeModel:g,subagentModel:h}=await a.json(),j=Array.isArray(f)?f.slice():"string"==typeof d?[d]:[];if(!b||0===j.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let k=p(),l=await q();await i().mkdir(k,{recursive:!0});let m=await s(l)||{},n=b.endsWith("/v1")?b:`${b}/v1`,o=h||j[0];m.provider||(m.provider={});let r=m.provider.zevai||{npm:"@ai-sdk/openai-compatible",options:{},models:{}};for(let a of(r.options={...r.options,baseURL:n,apiKey:c||"sk_zevai"},r.models=r.models||{},j))a&&"string"==typeof a&&(r.models[a]={name:a,modalities:{input:["text","image"],output:["text"]}});if(m.provider.zevai=r,""===g)m.model="";else{let a=g||j[0];a&&(m.model=`zevai/${a}`)}return m.agent||(m.agent={}),m.agent.explorer={description:"Fast explorer subagent for codebase exploration",mode:"subagent",model:`zevai/${o}`},await i().writeFile(l,JSON.stringify(m,null,2)),e.NextResponse.json({success:!0,message:"OpenCode settings applied successfully!",configPath:l})}catch(a){return console.log("Error applying opencode settings:",a),e.NextResponse.json({error:"Failed to apply settings"},{status:500})}}async function v(a){try{let{clearActiveModel:b}=await a.json(),c=await q(),d=await s(c)||{};return!0===b&&d.model?.startsWith("zevai/")&&(d.model=""),await i().writeFile(c,JSON.stringify(d,null,2)),e.NextResponse.json({success:!0,message:"Settings updated"})}catch(a){return console.log("Error patching opencode settings:",a),e.NextResponse.json({error:"Failed to patch settings"},{status:500})}}async function w(a){try{let{searchParams:b}=new URL(a.url),c=b.get("model"),d=await q(),f=await s(d)||{};if(c&&f.provider?.zevai?.models){if(delete f.provider.zevai.models[c],0===Object.keys(f.provider.zevai.models).length)delete f.provider.zevai,f.model?.startsWith("zevai/")&&delete f.model;else if(f.model===`zevai/${c}`){let a=Object.keys(f.provider.zevai.models);f.model=`zevai/${a[0]}`}}else f.provider&&delete f.provider.zevai,f.model?.startsWith("zevai/")&&delete f.model;return f.agent?.explorer?.model?.startsWith("zevai/")&&(delete f.agent.explorer,0===Object.keys(f.agent).length&&delete f.agent),await i().writeFile(d,JSON.stringify(f,null,2)),e.NextResponse.json({success:!0,message:c?`Model "${c}" removed`:"ZevaiRouter settings removed from OpenCode"})}catch(a){return console.log("Error resetting opencode settings:",a),e.NextResponse.json({error:"Failed to reset opencode settings"},{status:500})}}(0,n.D)([t,u,v,w]),(0,d.A)(t,"00c19a3fcfe9724fdb1e934f83caf9763a7ea91a6f",null),(0,d.A)(u,"40e4437eec9ea695b132a98f689466e8d6b76062bf",null),(0,d.A)(v,"40dae931c8d55351a3e36c17902e55eba1f5906e63",null),(0,d.A)(w,"404d5cdf6e0345cb38ac9fb181b915aace6573159a",null)},73024:a=>{a.exports=require("node:fs")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},79428:a=>{a.exports=require("buffer")},79646:a=>{a.exports=require("child_process")},79748:a=>{a.exports=require("fs/promises")},79868:a=>{a.exports=require("node:sqlite")},81787:a=>{a.exports=require("bun:sqlite")},83007:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/all-statuses/route",pathname:"/api/cli-tools/all-statuses",filename:"route",bundlePath:"app/api/cli-tools/all-statuses/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/cli-tools/all-statuses/route.js",nextConfigOutput:"standalone",userland:()=>c(19593),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/all-statuses/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,9528,3294,5024,3477,5681,6306,3949,1350],()=>b(b.s=83007));module.exports=c})();
@@ -1,2 +1,2 @@
1
- (()=>{var a={};a.id=6580,a.ids=[2339,3373,4720,5224,5754,6476,6580],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11414:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>i,PUT:()=>j});var d=c(49796),e=c(23211),f=c(71998),g=c(96182),h=c(76476);async function i(a){try{let{searchParams:b}=new URL(a.url),c=b.get("tool"),d=await (0,f.c)(c||void 0);return e.NextResponse.json({aliases:d})}catch(a){return console.log("Error fetching MITM aliases:",a.message),e.NextResponse.json({error:"Failed to fetch aliases"},{status:500})}}async function j(a){try{let{tool:b,mappings:c}=await a.json();if(!b||!c||"object"!=typeof c)return e.NextResponse.json({error:"tool and mappings required"},{status:400});let d=await (0,g.getMitmStatus)();if(!d.dnsStatus||!d.dnsStatus[b])return e.NextResponse.json({error:`DNS must be enabled for ${b} before editing model mappings`},{status:403});let i={};for(let[a,b]of Object.entries(c))b&&b.trim()&&(i[a]=b.trim());return await (0,f.L9)(b,i),(0,h.writeAliasForTool)(b,i),e.NextResponse.json({success:!0,aliases:i})}catch(a){return console.log("Error saving MITM aliases:",a.message),e.NextResponse.json({error:"Failed to save aliases"},{status:500})}}(0,c(24424).D)([i,j]),(0,d.A)(i,"403d6af470ae80fda60db9afcd360afaca06f5c87b",null),(0,d.A)(j,"408080e7e448e92236f33ebc7d6cf20cc725bef553",null)},15754:(a,b,c)=>{"use strict";let d=c(29021),{execFileSync:e}=c(79646),f="win32"===process.platform,g="linux"===process.platform;function h(a){return Number.isInteger(a)&&a>0&&a<=4194304}function i(a,b){try{return e(a,b,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3,windowsHide:!0})}catch{return null}}function j(a,b){if("string"!=typeof a||/[\r\n]/.test(a.trim()))return null;let c=a.trim(),d=c.indexOf(" ("),e=c.lastIndexOf(") ");if(d<1||e<=d+2||Number(c.slice(0,d))!==b)return null;let f=c.slice(e+2).split(/\s+/),g=f[19];return f.length<20||!/^\d+$/.test(g)?null:g}function k(a){if(!h(a))return null;if(g){let b=null;try{b=d.readFileSync(`/proc/${a}/stat`,"utf8")}catch{return null}let c=j(b,a);return c?`${a}:${c}`:null}if(f){let b=String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-Process -Id ${a} -ErrorAction Stop).StartTime.Ticks`])||"").trim();return/^\d+$/.test(b)?`${a}:${b}`:null}let b=String(i("ps",["-o","lstart=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());if(1!==b.length)return null;let c=b[0].trim();return c?`${a}:${c}`:null}function l(a){if(!h(a))return null;if(f)return String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId=${a}").CommandLine`])||"").trim()||null;let b=String(i("ps",["-o","command=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());return 1!==b.length?null:b[0].trim()||null}function m(a){if(!h(a))return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code||"EACCES"===a.code}}function n(a){let b;try{b=d.readFileSync(a,"utf8").trim()}catch{return null}if(!b)return null;if(/^\d+$/.test(b)){let a=Number(b);return h(a)?{pid:a,startToken:null,kind:null,legacy:!0}:null}try{let a=JSON.parse(b),c=Number(a?.pid);if(!h(c))return null;return{pid:c,startToken:"string"==typeof a.startToken&&a.startToken?a.startToken:null,kind:"string"==typeof a.kind?a.kind:null,legacy:!1}}catch{return null}}a.exports={isValidPid:h,isProcessAlive:m,readProcessStartToken:k,readProcessCommand:l,writePidFile:function(a,b,{kind:c="process"}={}){let e=Number(b);if(!h(e))return!1;let f={v:1,kind:c,pid:e,startToken:k(e),platform:process.platform,writtenAt:new Date().toISOString()};try{let b=`${a}.${process.pid}.tmp`;return d.writeFileSync(b,JSON.stringify(f)),d.renameSync(b,a),!0}catch{return!1}},readPidFile:n,resolveVerifiedPid:function(a,{commandPattern:b=null}={}){let c=n(a);if(!c)return{pid:null,reason:"no_pid_file"};if(!m(c.pid))return{pid:null,reason:"not_running",pidFileStale:!0};let d=k(c.pid);if(c.startToken)return d?d!==c.startToken?{pid:null,reason:"pid_recycled",pidFileStale:!0}:{pid:c.pid,reason:"verified_start_token"}:{pid:null,reason:"identity_unreadable"};if(!b)return{pid:null,reason:"identity_unverifiable"};let e=l(c.pid);return e?b.test(e)?{pid:c.pid,reason:"verified_command"}:{pid:null,reason:"command_mismatch",pidFileStale:!0}:{pid:null,reason:"identity_unreadable"}},removePidFile:function(a){try{d.rmSync(a,{force:!0})}catch{}},parseLinuxStartTime:j}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
- Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{"use strict";a.exports=require("sql.js")},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},48161:a=>{"use strict";a.exports=require("node:os")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71998:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.Fh,Iu:()=>d.Iu,Kg:()=>d.Kg,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76476:(a,b,c)=>{"use strict";c.r(b),c.d(b,{syncToJson:()=>m,writeAliasForTool:()=>n});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"zevai"):g().join(i().homedir(),".zevai")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},83634:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/alias/route",pathname:"/api/cli-tools/antigravity-mitm/alias",filename:"route",bundlePath:"app/api/cli-tools/antigravity-mitm/alias/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/cli-tools/antigravity-mitm/alias/route.js",nextConfigOutput:"standalone",userland:()=>c(11414),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/antigravity-mitm/alias/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86696:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"403d6af470ae80fda60db9afcd360afaca06f5c87b":()=>d.GET,"408080e7e448e92236f33ebc7d6cf20cc725bef553":()=>d.PUT});var d=c(11414)},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,Iu:()=>d.Iu,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,ME:()=>d.ME,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uH:()=>d.uH,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7568,3999,6936,6182],()=>b(b.s=83634));module.exports=c})();
1
+ (()=>{var a={};a.id=6580,a.ids=[2339,3373,4720,5224,5754,6476,6580],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11414:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>i,PUT:()=>j});var d=c(49796),e=c(23211),f=c(71998),g=c(96182),h=c(76476);async function i(a){try{let{searchParams:b}=new URL(a.url),c=b.get("tool"),d=await (0,f.c)(c||void 0);return e.NextResponse.json({aliases:d})}catch(a){return console.log("Error fetching MITM aliases:",a.message),e.NextResponse.json({error:"Failed to fetch aliases"},{status:500})}}async function j(a){try{let{tool:b,mappings:c}=await a.json();if(!b||!c||"object"!=typeof c)return e.NextResponse.json({error:"tool and mappings required"},{status:400});let d=await (0,g.getMitmStatus)();if(!d.dnsStatus||!d.dnsStatus[b])return e.NextResponse.json({error:`DNS must be enabled for ${b} before editing model mappings`},{status:403});let i={};for(let[a,b]of Object.entries(c))b&&b.trim()&&(i[a]=b.trim());return await (0,f.L9)(b,i),(0,h.writeAliasForTool)(b,i),e.NextResponse.json({success:!0,aliases:i})}catch(a){return console.log("Error saving MITM aliases:",a.message),e.NextResponse.json({error:"Failed to save aliases"},{status:500})}}(0,c(24424).D)([i,j]),(0,d.A)(i,"4004fe4220d6be27205ee162f2b3a10fb6b46f683a",null),(0,d.A)(j,"4035acb652b621a2e6ab319bdee4e2bc936ede9cec",null)},15754:(a,b,c)=>{"use strict";let d=c(29021),{execFileSync:e}=c(79646),f="win32"===process.platform,g="linux"===process.platform;function h(a){return Number.isInteger(a)&&a>0&&a<=4194304}function i(a,b){try{return e(a,b,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3,windowsHide:!0})}catch{return null}}function j(a,b){if("string"!=typeof a||/[\r\n]/.test(a.trim()))return null;let c=a.trim(),d=c.indexOf(" ("),e=c.lastIndexOf(") ");if(d<1||e<=d+2||Number(c.slice(0,d))!==b)return null;let f=c.slice(e+2).split(/\s+/),g=f[19];return f.length<20||!/^\d+$/.test(g)?null:g}function k(a){if(!h(a))return null;if(g){let b=null;try{b=d.readFileSync(`/proc/${a}/stat`,"utf8")}catch{return null}let c=j(b,a);return c?`${a}:${c}`:null}if(f){let b=String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-Process -Id ${a} -ErrorAction Stop).StartTime.Ticks`])||"").trim();return/^\d+$/.test(b)?`${a}:${b}`:null}let b=String(i("ps",["-o","lstart=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());if(1!==b.length)return null;let c=b[0].trim();return c?`${a}:${c}`:null}function l(a){if(!h(a))return null;if(f)return String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId=${a}").CommandLine`])||"").trim()||null;let b=String(i("ps",["-o","command=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());return 1!==b.length?null:b[0].trim()||null}function m(a){if(!h(a))return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code||"EACCES"===a.code}}function n(a){let b;try{b=d.readFileSync(a,"utf8").trim()}catch{return null}if(!b)return null;if(/^\d+$/.test(b)){let a=Number(b);return h(a)?{pid:a,startToken:null,kind:null,legacy:!0}:null}try{let a=JSON.parse(b),c=Number(a?.pid);if(!h(c))return null;return{pid:c,startToken:"string"==typeof a.startToken&&a.startToken?a.startToken:null,kind:"string"==typeof a.kind?a.kind:null,legacy:!1}}catch{return null}}a.exports={isValidPid:h,isProcessAlive:m,readProcessStartToken:k,readProcessCommand:l,writePidFile:function(a,b,{kind:c="process"}={}){let e=Number(b);if(!h(e))return!1;let f={v:1,kind:c,pid:e,startToken:k(e),platform:process.platform,writtenAt:new Date().toISOString()};try{let b=`${a}.${process.pid}.tmp`;return d.writeFileSync(b,JSON.stringify(f)),d.renameSync(b,a),!0}catch{return!1}},readPidFile:n,resolveVerifiedPid:function(a,{commandPattern:b=null}={}){let c=n(a);if(!c)return{pid:null,reason:"no_pid_file"};if(!m(c.pid))return{pid:null,reason:"not_running",pidFileStale:!0};let d=k(c.pid);if(c.startToken)return d?d!==c.startToken?{pid:null,reason:"pid_recycled",pidFileStale:!0}:{pid:c.pid,reason:"verified_start_token"}:{pid:null,reason:"identity_unreadable"};if(!b)return{pid:null,reason:"identity_unverifiable"};let e=l(c.pid);return e?b.test(e)?{pid:c.pid,reason:"verified_command"}:{pid:null,reason:"command_mismatch",pidFileStale:!0}:{pid:null,reason:"identity_unreadable"}},removePidFile:function(a){try{d.rmSync(a,{force:!0})}catch{}},parseLinuxStartTime:j}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24424:(a,b)=>{"use strict";function c(a){for(let b=0;b<a.length;b++){let c=a[b];if("function"!=typeof c)throw Error(`A "use server" file can only export async functions, found ${typeof c}.
2
+ Read more: https://nextjs.org/docs/messages/invalid-use-server-value`)}}Object.defineProperty(b,"D",{enumerable:!0,get:function(){return c}})},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31535:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/alias/route",pathname:"/api/cli-tools/antigravity-mitm/alias",filename:"route",bundlePath:"app/api/cli-tools/antigravity-mitm/alias/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/cli-tools/antigravity-mitm/alias/route.js",nextConfigOutput:"standalone",userland:()=>c(11414),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/antigravity-mitm/alias/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{"use strict";a.exports=require("sql.js")},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},48161:a=>{"use strict";a.exports=require("node:os")},49796:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(77943)},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71998:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.Fh,Iu:()=>d.Iu,Kg:()=>d.Kg,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76476:(a,b,c)=>{"use strict";c.r(b),c.d(b,{syncToJson:()=>m,writeAliasForTool:()=>n});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j=process.env.DATA_DIR||("win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),"zevai"):g().join(i().homedir(),".zevai")),k=g().join(j,"mitm","aliases.json");function l(a){let b=g().dirname(k);e().mkdirSync(b,{recursive:!0});let c=`${k}.tmp`;e().writeFileSync(c,JSON.stringify(a,null,2),"utf8"),e().renameSync(c,k)}async function m(){try{let{getMitmAlias:a}=await Promise.resolve().then(c.bind(c,9460)),b=await a();l(b||{})}catch(a){console.log("[mitmAliasCache] sync failed:",a.message)}}function n(a,b){try{let c={};if(e().existsSync(k))try{c=JSON.parse(e().readFileSync(k,"utf8"))}catch{}c[a]=b||{},l(c)}catch(a){console.log("[mitmAliasCache] write failed:",a.message)}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},77943:(a,b,c)=>{"use strict";a.exports=c(7553).vendored["react-rsc"].ReactServerDOMWebpackServer},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86189:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4004fe4220d6be27205ee162f2b3a10fb6b46f683a":()=>d.GET,"4035acb652b621a2e6ab319bdee4e2bc936ede9cec":()=>d.PUT});var d=c(11414)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,Iu:()=>d.Iu,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,ME:()=>d.ME,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uH:()=>d.uH,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7568,3999,6936,6182],()=>b(b.s=31535));module.exports=c})();
@@ -1 +1 @@
1
- (()=>{var a={};a.id=8573,a.ids=[2339,3373,4720,5754,8573],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15754:(a,b,c)=>{"use strict";let d=c(29021),{execFileSync:e}=c(79646),f="win32"===process.platform,g="linux"===process.platform;function h(a){return Number.isInteger(a)&&a>0&&a<=4194304}function i(a,b){try{return e(a,b,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3,windowsHide:!0})}catch{return null}}function j(a,b){if("string"!=typeof a||/[\r\n]/.test(a.trim()))return null;let c=a.trim(),d=c.indexOf(" ("),e=c.lastIndexOf(") ");if(d<1||e<=d+2||Number(c.slice(0,d))!==b)return null;let f=c.slice(e+2).split(/\s+/),g=f[19];return f.length<20||!/^\d+$/.test(g)?null:g}function k(a){if(!h(a))return null;if(g){let b=null;try{b=d.readFileSync(`/proc/${a}/stat`,"utf8")}catch{return null}let c=j(b,a);return c?`${a}:${c}`:null}if(f){let b=String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-Process -Id ${a} -ErrorAction Stop).StartTime.Ticks`])||"").trim();return/^\d+$/.test(b)?`${a}:${b}`:null}let b=String(i("ps",["-o","lstart=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());if(1!==b.length)return null;let c=b[0].trim();return c?`${a}:${c}`:null}function l(a){if(!h(a))return null;if(f)return String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId=${a}").CommandLine`])||"").trim()||null;let b=String(i("ps",["-o","command=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());return 1!==b.length?null:b[0].trim()||null}function m(a){if(!h(a))return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code||"EACCES"===a.code}}function n(a){let b;try{b=d.readFileSync(a,"utf8").trim()}catch{return null}if(!b)return null;if(/^\d+$/.test(b)){let a=Number(b);return h(a)?{pid:a,startToken:null,kind:null,legacy:!0}:null}try{let a=JSON.parse(b),c=Number(a?.pid);if(!h(c))return null;return{pid:c,startToken:"string"==typeof a.startToken&&a.startToken?a.startToken:null,kind:"string"==typeof a.kind?a.kind:null,legacy:!1}}catch{return null}}a.exports={isValidPid:h,isProcessAlive:m,readProcessStartToken:k,readProcessCommand:l,writePidFile:function(a,b,{kind:c="process"}={}){let e=Number(b);if(!h(e))return!1;let f={v:1,kind:c,pid:e,startToken:k(e),platform:process.platform,writtenAt:new Date().toISOString()};try{let b=`${a}.${process.pid}.tmp`;return d.writeFileSync(b,JSON.stringify(f)),d.renameSync(b,a),!0}catch{return!1}},readPidFile:n,resolveVerifiedPid:function(a,{commandPattern:b=null}={}){let c=n(a);if(!c)return{pid:null,reason:"no_pid_file"};if(!m(c.pid))return{pid:null,reason:"not_running",pidFileStale:!0};let d=k(c.pid);if(c.startToken)return d?d!==c.startToken?{pid:null,reason:"pid_recycled",pidFileStale:!0}:{pid:c.pid,reason:"verified_start_token"}:{pid:null,reason:"identity_unreadable"};if(!b)return{pid:null,reason:"identity_unverifiable"};let e=l(c.pid);return e?b.test(e)?{pid:c.pid,reason:"verified_command"}:{pid:null,reason:"command_mismatch",pidFileStale:!0}:{pid:null,reason:"identity_unreadable"}},removePidFile:function(a){try{d.rmSync(a,{force:!0})}catch{}},parseLinuxStartTime:j}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{"use strict";a.exports=require("sql.js")},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},48161:a=>{"use strict";a.exports=require("node:os")},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86805:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>o,GET:()=>m,PATCH:()=>p,POST:()=>n});var d=c(23211),e=c(96182),f=c(89718);(0,e.initDbHooks)(f.mt,f.Xx);let g="http://localhost:1997",h="win32"===process.platform;function i(a){return a||(0,e.getCachedPassword)()||null}function j(a){return!h&&!a&&(0,e.isSudoPasswordRequired)()}function k(){if(h)try{return c(79646).execSync("net session >nul 2>&1",{windowsHide:!0}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function l(a){return!!k()||!h&&(!(0,e.isSudoPasswordRequired)()||!!a)}async function m(){try{let a=await (0,e.getMitmStatus)(),b=await (0,f.mt)(),c=!!(0,e.getCachedPassword)()||!!await (0,e.loadEncryptedPassword)();return d.NextResponse.json({running:a.running,pid:a.pid||null,certExists:a.certExists||!1,certTrusted:a.certTrusted||!1,dnsStatus:a.dnsStatus||{},hasCachedPassword:c,isWin:h,needsSudoPassword:!h&&!c&&(0,e.isSudoPasswordRequired)(),isAdmin:k(),mitmRouterBaseUrl:b.mitmRouterBaseUrl&&String(b.mitmRouterBaseUrl).trim()||g})}catch(a){return console.log("Error getting MITM status:",a.message),d.NextResponse.json({error:"Failed to get MITM status"},{status:500})}}async function n(a){try{let{apiKey:b,sudoPassword:c,mitmRouterBaseUrl:k,forceKillPort443:m}=await a.json(),n=i(c)||await (0,e.loadEncryptedPassword)()||"";if(!b||j(n))return d.NextResponse.json({error:b?"Missing sudoPassword":"Missing apiKey"},{status:400});if(!l(n))return d.NextResponse.json({error:h?"Administrator required — restart ZevaiRouter as Administrator":"Root or sudo password required to start MITM"},{status:403});if(null!=k)try{let a=function(a){let b;if(null==a||""===String(a).trim())return g;let c=String(a).trim().replace(/\/+$/,"");try{b=new URL(c)}catch{throw Error("Invalid MITM router URL")}if("http:"!==b.protocol&&"https:"!==b.protocol)throw Error("MITM router URL must use http or https");return c}(k);await (0,f.Xx)({mitmRouterBaseUrl:a})}catch(a){return d.NextResponse.json({error:a.message||"Invalid MITM router URL"},{status:400})}let o=await (0,e.startServer)(b,n,!!m);return h||(0,e.setCachedPassword)(n),d.NextResponse.json({success:!0,running:o.running,pid:o.pid})}catch(a){if(console.log("Error starting MITM server:",a.message),"PORT_443_BUSY"===a.code)return d.NextResponse.json({error:a.message,code:"PORT_443_BUSY",portOwner:a.portOwner},{status:409});return d.NextResponse.json({error:a.message||"Failed to start MITM server"},{status:500})}}async function o(a){try{let{sudoPassword:b}=await a.json().catch(()=>({})),c=i(b)||await (0,e.loadEncryptedPassword)()||"";if(j(c))return d.NextResponse.json({error:"Missing sudoPassword"},{status:400});return await (0,e.stopServer)(c),!h&&b&&(0,e.setCachedPassword)(b),d.NextResponse.json({success:!0,running:!1})}catch(a){return console.log("Error stopping MITM server:",a.message),d.NextResponse.json({error:a.message||"Failed to stop MITM server"},{status:500})}}async function p(a){try{let{tool:b,action:c,sudoPassword:f}=await a.json(),g=i(f)||await (0,e.loadEncryptedPassword)()||"";if(!b||!c)return d.NextResponse.json({error:"tool and action required"},{status:400});if(j(g))return d.NextResponse.json({error:"Missing sudoPassword"},{status:400});if(!l(g))return d.NextResponse.json({error:h?"Administrator required — restart ZevaiRouter as Administrator":"Root or sudo password required to modify DNS"},{status:403});if("enable"===c)await (0,e.enableToolDNS)(b,g);else if("disable"===c)await (0,e.disableToolDNS)(b,g);else{if("trust-cert"!==c)return d.NextResponse.json({error:"action must be enable, disable, or trust-cert"},{status:400});await (0,e.trustCert)(g),!h&&f&&(0,e.setCachedPassword)(f);let a=await (0,e.getMitmStatus)();return d.NextResponse.json({success:!0,certTrusted:a.certTrusted})}!h&&f&&(0,e.setCachedPassword)(f);let k=await (0,e.getMitmStatus)();return d.NextResponse.json({success:!0,dnsStatus:k.dnsStatus})}catch(a){return console.log("Error toggling DNS:",a.message),d.NextResponse.json({error:a.message||"Failed to toggle DNS"},{status:500})}}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,Iu:()=>d.Iu,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,ME:()=>d.ME,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uH:()=>d.uH,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{},99458:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/route",pathname:"/api/cli-tools/antigravity-mitm",filename:"route",bundlePath:"app/api/cli-tools/antigravity-mitm/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/cli-tools/antigravity-mitm/route.js",nextConfigOutput:"standalone",userland:()=>c(86805),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/antigravity-mitm/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7568,3999,6936,6182],()=>b(b.s=99458));module.exports=c})();
1
+ (()=>{var a={};a.id=8573,a.ids=[2339,3373,4720,5754,8573],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{"use strict";a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15754:(a,b,c)=>{"use strict";let d=c(29021),{execFileSync:e}=c(79646),f="win32"===process.platform,g="linux"===process.platform;function h(a){return Number.isInteger(a)&&a>0&&a<=4194304}function i(a,b){try{return e(a,b,{encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:5e3,windowsHide:!0})}catch{return null}}function j(a,b){if("string"!=typeof a||/[\r\n]/.test(a.trim()))return null;let c=a.trim(),d=c.indexOf(" ("),e=c.lastIndexOf(") ");if(d<1||e<=d+2||Number(c.slice(0,d))!==b)return null;let f=c.slice(e+2).split(/\s+/),g=f[19];return f.length<20||!/^\d+$/.test(g)?null:g}function k(a){if(!h(a))return null;if(g){let b=null;try{b=d.readFileSync(`/proc/${a}/stat`,"utf8")}catch{return null}let c=j(b,a);return c?`${a}:${c}`:null}if(f){let b=String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-Process -Id ${a} -ErrorAction Stop).StartTime.Ticks`])||"").trim();return/^\d+$/.test(b)?`${a}:${b}`:null}let b=String(i("ps",["-o","lstart=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());if(1!==b.length)return null;let c=b[0].trim();return c?`${a}:${c}`:null}function l(a){if(!h(a))return null;if(f)return String(i("powershell",["-NonInteractive","-NoProfile","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId=${a}").CommandLine`])||"").trim()||null;let b=String(i("ps",["-o","command=","-p",String(a)])||"").split(/\r?\n/).filter(a=>a.trim());return 1!==b.length?null:b[0].trim()||null}function m(a){if(!h(a))return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code||"EACCES"===a.code}}function n(a){let b;try{b=d.readFileSync(a,"utf8").trim()}catch{return null}if(!b)return null;if(/^\d+$/.test(b)){let a=Number(b);return h(a)?{pid:a,startToken:null,kind:null,legacy:!0}:null}try{let a=JSON.parse(b),c=Number(a?.pid);if(!h(c))return null;return{pid:c,startToken:"string"==typeof a.startToken&&a.startToken?a.startToken:null,kind:"string"==typeof a.kind?a.kind:null,legacy:!1}}catch{return null}}a.exports={isValidPid:h,isProcessAlive:m,readProcessStartToken:k,readProcessCommand:l,writePidFile:function(a,b,{kind:c="process"}={}){let e=Number(b);if(!h(e))return!1;let f={v:1,kind:c,pid:e,startToken:k(e),platform:process.platform,writtenAt:new Date().toISOString()};try{let b=`${a}.${process.pid}.tmp`;return d.writeFileSync(b,JSON.stringify(f)),d.renameSync(b,a),!0}catch{return!1}},readPidFile:n,resolveVerifiedPid:function(a,{commandPattern:b=null}={}){let c=n(a);if(!c)return{pid:null,reason:"no_pid_file"};if(!m(c.pid))return{pid:null,reason:"not_running",pidFileStale:!0};let d=k(c.pid);if(c.startToken)return d?d!==c.startToken?{pid:null,reason:"pid_recycled",pidFileStale:!0}:{pid:c.pid,reason:"verified_start_token"}:{pid:null,reason:"identity_unreadable"};if(!b)return{pid:null,reason:"identity_unverifiable"};let e=l(c.pid);return e?b.test(e)?{pid:c.pid,reason:"verified_command"}:{pid:null,reason:"command_mismatch",pidFileStale:!0}:{pid:null,reason:"identity_unreadable"}},removePidFile:function(a){try{d.rmSync(a,{force:!0})}catch{}},parseLinuxStartTime:j}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33567:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(10246),u=c(37527);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/route",pathname:"/api/cli-tools/antigravity-mitm",filename:"route",bundlePath:"app/api/cli-tools/antigravity-mitm/route"},distDir:".next-cli-build",relativeProjectDir:"",resolvedPagePath:"/zevairouter-build/src/app/api/cli-tools/antigravity-mitm/route.js",nextConfigOutput:"standalone",userland:()=>c(86805),...{}}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/antigravity-mitm/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:w,deploymentId:x,params:y,nextConfig:z,parsedUrl:A,isDraftMode:B,prerenderManifest:C,routerServerContext:D,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,resolvedPathname:G,clientReferenceManifest:H,serverActionsManifest:I,previewProps:J}=f,K=(0,j.normalizeAppPath)(d),L=!!C.routes[G]&&(v.isDev||(0,t.isRouteCacheOwner)(G,v.cacheOwner,C.routes[G])),M=!!(C.dynamicRoutes[K]||L),N=async()=>((null==D?void 0:D.render404)?await D.render404(a,b,A,!1):b.end("This page could not be found"),null);if(M&&!B){let a=C.dynamicRoutes[K];if(a&&!1===a.fallback&&!L){if(z.adapterPath)return await N();throw new s.NoFallbackError}}let O=null;!M||v.isDev||B||(O="/index"===(O=G)?"/":O),I&&H&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:H,serverActionsManifest:I});let P=a.method||"GET",Q=(0,h.getTracer)(),R=Q.getActiveScopeSpan(),S=!!(null==D?void 0:D.isWrappedByNextServer),T=!!(0,g.getRequestMeta)(a,"minimalMode"),U=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,z,J,C,T);null==U||U.resetRequestCache(),globalThis.__incrementalCache=U;let V={params:y,previewProps:J,renderOpts:{experimental:{authInterrupts:!!z.experimental.authInterrupts,useCacheTimeout:z.experimental.useCacheTimeout,durableUseCacheEntries:!!z.experimental.durableUseCacheEntries},cacheComponents:!!z.cacheComponents,validationLevel:z.experimental.instantInsights.validationLevel,isDraftMode:B,incrementalCache:U,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:z.cacheLife,staticPageGenerationTimeout:z.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0},sharedContext:{buildId:w,deploymentId:x}},W=new k.NodeNextRequest(a),X=new k.NodeNextResponse(b),Y=l.NextRequestAdapter.fromNodeNextRequest(W,(0,l.signalFromNodeResponse)(b)),Z=async({previousCacheEntry:e})=>{try{if(!T&&E&&F&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=null===O?await v.handle(Y,V):await v.prerender(Y,V);a.fetchMetrics=V.renderOpts.fetchMetrics;let f=V.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=V.renderOpts.collectedTags;if(!M)return await (0,o.I)(W,X,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==V.renderOpts.collectedRevalidate&&!(V.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&V.renderOpts.collectedRevalidate,e=void 0===V.renderOpts.collectedExpire||V.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?z.expireTime:void 0:V.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),b}},$=async(d,f)=>{try{var g,i;let d=await v.handleResponse({req:a,nextConfig:z,cacheKey:O,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,previewProps:J,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:F,responseGenerator:Z,waitUntil:c.waitUntil,isMinimalMode:T});if(null!==d&&"error"in d)throw d.error;if(!M)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==u.CachedRouteKind.APP_ROUTE)throw Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`);T||b.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),B&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);T&&M||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(W,X,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(c){if(c instanceof s.NoFallbackError||await v.onRequestError(a,c,{routerKind:"App Router",routePath:K,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:null!==O,isOnDemandRevalidate:E})},!1,D),M)throw c;if(b.headersSent){if(d){let a=c instanceof Error?c:Error("Unknown app route error");d.recordException(a),d.setStatus({code:h.SpanStatusCode.ERROR,message:a.message}),d.setAttribute("error.type",a.name)}b.writableEnded||b.destroyed||b.end()}else await (0,o.I)(W,X,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=Q.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||K,g=`${P} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(S&&R)await $(R,void 0);else{let b=Q.getActiveScopeSpan();await Q.withPropagatedContext(a.headers,()=>Q.trace(m.BaseServerSpan.handleRequest,{spanName:`${P} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":P,"http.target":a.url}},a=>$(a,b)),void 0,!S)}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46293:a=>{"use strict";a.exports=require("sql.js")},47293:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},48161:a=>{"use strict";a.exports=require("node:os")},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{"use strict";a.exports=require("node:fs")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},78335:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79868:a=>{"use strict";a.exports=require("node:sqlite")},81787:a=>{"use strict";a.exports=require("bun:sqlite")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86805:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>o,GET:()=>m,PATCH:()=>p,POST:()=>n});var d=c(23211),e=c(96182),f=c(89718);(0,e.initDbHooks)(f.mt,f.Xx);let g="http://localhost:1997",h="win32"===process.platform;function i(a){return a||(0,e.getCachedPassword)()||null}function j(a){return!h&&!a&&(0,e.isSudoPasswordRequired)()}function k(){if(h)try{return c(79646).execSync("net session >nul 2>&1",{windowsHide:!0}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function l(a){return!!k()||!h&&(!(0,e.isSudoPasswordRequired)()||!!a)}async function m(){try{let a=await (0,e.getMitmStatus)(),b=await (0,f.mt)(),c=!!(0,e.getCachedPassword)()||!!await (0,e.loadEncryptedPassword)();return d.NextResponse.json({running:a.running,pid:a.pid||null,certExists:a.certExists||!1,certTrusted:a.certTrusted||!1,dnsStatus:a.dnsStatus||{},hasCachedPassword:c,isWin:h,needsSudoPassword:!h&&!c&&(0,e.isSudoPasswordRequired)(),isAdmin:k(),mitmRouterBaseUrl:b.mitmRouterBaseUrl&&String(b.mitmRouterBaseUrl).trim()||g})}catch(a){return console.log("Error getting MITM status:",a.message),d.NextResponse.json({error:"Failed to get MITM status"},{status:500})}}async function n(a){try{let{apiKey:b,sudoPassword:c,mitmRouterBaseUrl:k,forceKillPort443:m}=await a.json(),n=i(c)||await (0,e.loadEncryptedPassword)()||"";if(!b||j(n))return d.NextResponse.json({error:b?"Missing sudoPassword":"Missing apiKey"},{status:400});if(!l(n))return d.NextResponse.json({error:h?"Administrator required — restart ZevaiRouter as Administrator":"Root or sudo password required to start MITM"},{status:403});if(null!=k)try{let a=function(a){let b;if(null==a||""===String(a).trim())return g;let c=String(a).trim().replace(/\/+$/,"");try{b=new URL(c)}catch{throw Error("Invalid MITM router URL")}if("http:"!==b.protocol&&"https:"!==b.protocol)throw Error("MITM router URL must use http or https");return c}(k);await (0,f.Xx)({mitmRouterBaseUrl:a})}catch(a){return d.NextResponse.json({error:a.message||"Invalid MITM router URL"},{status:400})}let o=await (0,e.startServer)(b,n,!!m);return h||(0,e.setCachedPassword)(n),d.NextResponse.json({success:!0,running:o.running,pid:o.pid})}catch(a){if(console.log("Error starting MITM server:",a.message),"PORT_443_BUSY"===a.code)return d.NextResponse.json({error:a.message,code:"PORT_443_BUSY",portOwner:a.portOwner},{status:409});return d.NextResponse.json({error:a.message||"Failed to start MITM server"},{status:500})}}async function o(a){try{let{sudoPassword:b}=await a.json().catch(()=>({})),c=i(b)||await (0,e.loadEncryptedPassword)()||"";if(j(c))return d.NextResponse.json({error:"Missing sudoPassword"},{status:400});return await (0,e.stopServer)(c),!h&&b&&(0,e.setCachedPassword)(b),d.NextResponse.json({success:!0,running:!1})}catch(a){return console.log("Error stopping MITM server:",a.message),d.NextResponse.json({error:a.message||"Failed to stop MITM server"},{status:500})}}async function p(a){try{let{tool:b,action:c,sudoPassword:f}=await a.json(),g=i(f)||await (0,e.loadEncryptedPassword)()||"";if(!b||!c)return d.NextResponse.json({error:"tool and action required"},{status:400});if(j(g))return d.NextResponse.json({error:"Missing sudoPassword"},{status:400});if(!l(g))return d.NextResponse.json({error:h?"Administrator required — restart ZevaiRouter as Administrator":"Root or sudo password required to modify DNS"},{status:403});if("enable"===c)await (0,e.enableToolDNS)(b,g);else if("disable"===c)await (0,e.disableToolDNS)(b,g);else{if("trust-cert"!==c)return d.NextResponse.json({error:"action must be enable, disable, or trust-cert"},{status:400});await (0,e.trustCert)(g),!h&&f&&(0,e.setCachedPassword)(f);let a=await (0,e.getMitmStatus)();return d.NextResponse.json({success:!0,certTrusted:a.certTrusted})}!h&&f&&(0,e.setCachedPassword)(f);let k=await (0,e.getMitmStatus)();return d.NextResponse.json({success:!0,dnsStatus:k.dnsStatus})}catch(a){return console.log("Error toggling DNS:",a.message),d.NextResponse.json({error:a.message||"Failed to toggle DNS"},{status:500})}}},87550:a=>{"use strict";a.exports=require("better-sqlite3")},89718:(a,b,c)=>{"use strict";c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,Iu:()=>d.Iu,K1:()=>d.K1,KJ:()=>d.KJ,KK:()=>d.KK,Kg:()=>d.Kg,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,ME:()=>d.ME,Mc:()=>d.Mc,NR:()=>d.NR,Op:()=>d.Op,PX:()=>d.PX,Pb:()=>d.Pb,Pc:()=>d.Pc,QI:()=>d.QI,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,dK:()=>d.dK,deleteModelAlias:()=>d.fv,ek:()=>d.ek,fK:()=>d.fK,getModelAliases:()=>d.OM,getProviderConnections:()=>d.P,getQuotaSnapshot:()=>d.LF,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,p3:()=>d.p3,qd:()=>d.qd,r4:()=>d.r4,tV:()=>d.tV,uH:()=>d.uH,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yW:()=>d.yW,yg:()=>d.yg,zP:()=>d.zP,zY:()=>d.zY});var d=c(93999)},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7568,3999,6936,6182],()=>b(b.s=33567));module.exports=c})();