zevairouter 1.1.46 → 1.1.47

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 (503) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +20 -20
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/prerender-manifest.json +3 -3
  6. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  64. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  66. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  67. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  68. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  69. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  70. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  71. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  73. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  74. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  75. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  76. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  77. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  80. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  83. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  86. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  89. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  90. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  92. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +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/claude-settings/route.js.nft.json +1 -1
  96. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  97. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  98. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  99. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  102. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  103. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  104. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  105. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  106. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  107. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  110. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  112. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  116. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  118. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  120. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  122. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route.js +2 -2
  124. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  126. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  170. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/providers/cloudflare-ai/discover-models/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js.nft.json +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/[jobId]/route.js.nft.json +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/providers/kiro/discover-models/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js.nft.json +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  289. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js.nft.json +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  332. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  333. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  334. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  335. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  336. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  337. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  338. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  339. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +3 -3
  340. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +3 -3
  341. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +3 -3
  342. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  343. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  344. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  345. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  346. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  347. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  348. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  349. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  350. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  351. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  352. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  353. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  354. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  355. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  356. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  357. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  358. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  359. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +3 -3
  360. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +3 -3
  361. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +3 -3
  362. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  363. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  364. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  365. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  366. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  367. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  368. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  369. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  370. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  371. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  372. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  373. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  374. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  375. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  376. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  377. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  378. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  379. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +3 -3
  380. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +3 -3
  381. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +3 -3
  382. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  383. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  384. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  385. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  386. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  387. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  388. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  389. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  390. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  391. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  392. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  393. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  394. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
  395. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  396. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  397. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  398. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  399. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  400. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  401. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  402. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  403. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  404. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  405. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  406. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  407. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  408. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  409. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  410. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  411. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  412. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  413. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  414. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  415. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  416. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  417. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  418. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  419. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  420. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  421. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  422. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  423. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  424. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  425. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  426. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  427. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  428. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  429. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  430. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  431. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  432. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  433. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  434. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  435. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  436. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  437. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  438. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  439. package/cli/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  440. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  441. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  442. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  443. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  444. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  445. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  446. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  447. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  448. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  449. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  450. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  451. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  452. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  453. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  454. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  455. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  456. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  457. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  458. package/cli/app/.next-cli-build/server/app/login.rsc +3 -3
  459. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  460. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  461. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  462. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  463. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  464. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  465. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js.nft.json +1 -1
  466. package/cli/app/.next-cli-build/server/app/skills/[skill]/SKILL.md/route.js.nft.json +1 -1
  467. package/cli/app/.next-cli-build/server/app-paths-manifest.json +20 -20
  468. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  469. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  470. package/cli/app/.next-cli-build/server/chunks/2897.js +1 -1
  471. package/cli/app/.next-cli-build/server/chunks/3184.js +2 -2
  472. package/cli/app/.next-cli-build/server/chunks/415.js +1 -1
  473. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  474. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  475. package/cli/app/.next-cli-build/server/chunks/5949.js +7 -7
  476. package/cli/app/.next-cli-build/server/chunks/7319.js +3 -3
  477. package/cli/app/.next-cli-build/server/chunks/7634.js +1 -1
  478. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  479. package/cli/app/.next-cli-build/server/chunks/8895.js +2 -2
  480. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  481. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  482. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  483. package/cli/app/.next-cli-build/server/preview-props.json +3 -3
  484. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  485. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  486. package/cli/app/.next-cli-build/static/chunks/620-6616d2bb43c453f9.js +1 -0
  487. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-4bd92dec9d25dff3.js → page-7c06c366dcec369c.js} +1 -1
  488. package/cli/app/.next-cli-build/static/css/{b45d78e41f951e9a.css → d11572d8f7baa8f2.css} +1 -1
  489. package/cli/app/CHANGELOG.md +16 -0
  490. package/cli/app/cli/hooks/bunRuntime.js +86 -0
  491. package/cli/app/cli/hooks/safeGlobalInstall.js +24 -1
  492. package/cli/app/cli/hooks/startupRuntime.js +4 -0
  493. package/cli/app/package.json +1 -1
  494. package/cli/app/src/lib/updater/updater.js +4 -1
  495. package/cli/cli.js +19 -9
  496. package/cli/hooks/bunRuntime.js +86 -0
  497. package/cli/hooks/safeGlobalInstall.js +24 -1
  498. package/cli/hooks/startupRuntime.js +4 -0
  499. package/cli/package.json +1 -1
  500. package/package.json +1 -1
  501. package/cli/app/.next-cli-build/static/chunks/620-db14acf5ab1f9090.js +0 -1
  502. /package/cli/app/.next-cli-build/static/{49WrfprfANWLHDX8M34oV → pSKJDkNYrgbvy8Qd80mgb}/_buildManifest.js +0 -0
  503. /package/cli/app/.next-cli-build/static/{49WrfprfANWLHDX8M34oV → pSKJDkNYrgbvy8Qd80mgb}/_ssgManifest.js +0 -0
@@ -1,12 +1,12 @@
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")},643:a=>{a.exports=require("node:perf_hooks")},1708:a=>{a.exports=require("node:process")},1932:a=>{a.exports=require("url")},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,"008a46522298bc3f0f369fba49877c2a6e9ddcdbd9",null),(0,d.A)(x,"405277165c1bcfe191feb4bc1833ba63a43990a0c2",null),(0,d.A)(y,"004ccc6fc0a4863b39f0c13b4ffcdabfd0d882e232",null)},4573:a=>{a.exports=require("node:buffer")},7066:a=>{a.exports=require("node:tty")},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,"0023a914264cb2b108afc03f02d7b4a871cbed519c",null),(0,d.A)(v,"40da6243fef1e2f39a077d5a8bdc262f8ff54d678a",null),(0,d.A)(w,"0029b76f36332b1371921c517634b3988844ba6986",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,"00e9eca2e5e04830b1b6c0a8fcd617b3f481f31168",null),(0,d.A)(w,"40f94a59644ee3a465ef9daafd8bb68b7860fc7e31",null),(0,d.A)(y,"008ed139815c8d7f139cfc63a9b92f52b645b38fc6",null)},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},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,"006dadf30592d8914c0c205a4151de2f29d6326851",null),(0,d.A)(A,"407b04d8b44607e3e74a06dd666db843bf1163880a",null),(0,d.A)(B,"005d8f855416a9070d846caa672200acb817bed044",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:()=>w});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(93422),u=c(24424);let v={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,openbot:t.GET};async function w(){let a=await Promise.all(Object.entries(v).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,u.D)([w]),(0,d.A)(w,"00585e3d592546aa962937c13499a47fb8227c8e91",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,"0068735a0db3d9ab1d9c4aec7ffcdac1c8642cafa7",null),(0,d.A)(q,"40f5814654419d845aca597983f2319ab4951f9f3e",null),(0,d.A)(r,"0072df9de7cc91b1ee0843451b522a8e70e9fe37a6",null)},21820:a=>{a.exports=require("os")},24729:(a,b,c)=>{c.r(b),c.d(b,{"0000bb63eacf0dbba53d6b5b91ea4d999d3977bd82":()=>q.GET,"0020d705c09dc8bf8fa91ed85ce8c4f533e5b9ca65":()=>k.GET,"0023a914264cb2b108afc03f02d7b4a871cbed519c":()=>o.GET,"0029b76f36332b1371921c517634b3988844ba6986":()=>o.DELETE,"00423554b65d6c3d1dd7c770a4e154991f9ee36f90":()=>p.GET,"004cc2acc7fb6ceae8ffb6e6b2febbf545ec8ae2a3":()=>n.DELETE,"004ccc6fc0a4863b39f0c13b4ffcdabfd0d882e232":()=>j.DELETE,"00585e3d592546aa962937c13499a47fb8227c8e91":()=>d.GET,"005d8f855416a9070d846caa672200acb817bed044":()=>r.DELETE,"0068735a0db3d9ab1d9c4aec7ffcdac1c8642cafa7":()=>m.GET,"006b1846ae7521d62632fa3e11fefa1431b481816d":()=>l.GET,"006dadf30592d8914c0c205a4151de2f29d6326851":()=>r.GET,"0072df9de7cc91b1ee0843451b522a8e70e9fe37a6":()=>m.DELETE,"007a3f70eba082569aa5200aa6608d3015d0aa245d":()=>i.GET,"008a46522298bc3f0f369fba49877c2a6e9ddcdbd9":()=>j.GET,"008abc9f19403e7dc9a99248c60cac506741412f02":()=>g.DELETE,"008ed139815c8d7f139cfc63a9b92f52b645b38fc6":()=>e.DELETE,"0097845681017bdfdac4c11dfb008d4dca920038ff":()=>l.DELETE,"009b72d94610880b783bd50504134a9a2f47106858":()=>p.DELETE,"009c5c085e6ad3bf15052b4b508419e9683b188943":()=>f.DELETE,"009c965c670079f4829dc661def6a08e56ebb342d7":()=>h.GET,"00a3d743c4f93a486e921dfc99972ed64393b73941":()=>n.GET,"00be45d18bcd8b14ad0a523cfe7656d02fc3c2f3d4":()=>i.DELETE,"00c51df530876e61284d815424759fd45a203ba0a7":()=>q.DELETE,"00e439af5a2cee2d3b0052ef47b3ba4fd93c3a961b":()=>f.GET,"00e9eca2e5e04830b1b6c0a8fcd617b3f481f31168":()=>e.GET,"00ea133262f91ce9f7beb12e6dc8401c0e5ee7c3b8":()=>g.GET,"4011c9b0c46a5a776f455991a3b119ddc3c63aee33":()=>n.POST,"401a474bd51bffcc00a77b26bf213757ee17f26d80":()=>s.GET,"4021449e2d8b1bdafad378b763f22fada37d7f256b":()=>p.POST,"402723101dbfed34f6ff9103439e910917e241f669":()=>k.POST,"405277165c1bcfe191feb4bc1833ba63a43990a0c2":()=>j.POST,"405a07c246c1a5020bda6cfc9cf2d148ca844170e9":()=>q.POST,"407b04d8b44607e3e74a06dd666db843bf1163880a":()=>r.POST,"408e32c5e3573af87e7038df83ddb062bb0947fbef":()=>k.DELETE,"4091948ccdf5f0d4a65e4e2ef17d0bf29ba6b22d0c":()=>f.POST,"40ba64cb3847a97bb95f4c9830a9f5d91410fe916f":()=>h.DELETE,"40c112dfbfe792bf7a3f6e56c6a12084025d8cea26":()=>l.POST,"40cdc2f84c4c74969cc25e2c426649927aa1974e47":()=>s.POST,"40da6243fef1e2f39a077d5a8bdc262f8ff54d678a":()=>o.POST,"40e01352d5ab83dfc4875daa4e1fbd0efdbf7b0a41":()=>h.PATCH,"40e81f2ac241be29507a95f383f464b9c604017d7b":()=>h.POST,"40edc83fa256334ab401ba2fc1d2ec4755ef1bf877":()=>g.POST,"40f5814654419d845aca597983f2319ab4951f9f3e":()=>m.POST,"40f7f876e9c8b242bc018cf45b57b34f710f80b898":()=>i.POST,"40f94a59644ee3a465ef9daafd8bb68b7860fc7e31":()=>e.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),s=c(93422)},27910:a=>{a.exports=require("stream")},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,"007a3f70eba082569aa5200aa6608d3015d0aa245d",null),(0,d.A)(u,"40f7f876e9c8b242bc018cf45b57b34f710f80b898",null),(0,d.A)(v,"00be45d18bcd8b14ad0a523cfe7656d02fc3c2f3d4",null)},31421:a=>{a.exports=require("node:child_process")},32467:a=>{a.exports=require("node:http2")},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")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},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")},643:a=>{a.exports=require("node:perf_hooks")},1708:a=>{a.exports=require("node:process")},1932:a=>{a.exports=require("url")},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,"001e76c51efcac5c7947b8f6cb149446f810e4e289",null),(0,d.A)(x,"4005a408b0fcfe3b2d3321627d5b33a8a1d0a35782",null),(0,d.A)(y,"00d412b562338827134b5f49afe99af2c0b0cf4b1a",null)},4573:a=>{a.exports=require("node:buffer")},7066:a=>{a.exports=require("node:tty")},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,"00256424467f3df1b7d3a4fe7ede162ced6cf7f11b",null),(0,d.A)(v,"407fc8df556870d332c3e2dca46e1858cf77e680ce",null),(0,d.A)(w,"0086bf53768b91b92ba9f4f34156845481ac894bc6",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,"00e390321235ae2873d2a0aef77871ed17859f8773",null),(0,d.A)(w,"40a19f31b9d20c98535590d85b1233b531b83e2644",null),(0,d.A)(y,"007836da98354c66bb9858b478ad40d16dd40a10fe",null)},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},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,"00ad79960e909c35ff3040f75866c5122de1dc2968",null),(0,d.A)(A,"40f7037e3ca87c1fd0072a05518343ecde6a79bf1d",null),(0,d.A)(B,"0072a01768605d9f37e83d42aa1a177a6ae4b7e3fb",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:()=>w});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(93422),u=c(24424);let v={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,openbot:t.GET};async function w(){let a=await Promise.all(Object.entries(v).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,u.D)([w]),(0,d.A)(w,"00f090a342f05b30740678a70cba32f0e64602da58",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,"00f61a9cdd8590d1c1fcaea9f0c8e9bc2d7c7e573f",null),(0,d.A)(q,"40a0a3d15265f24e187985fee085c1ac5090ba4285",null),(0,d.A)(r,"00104f9c4e49cfe5c7f2437dba2a2ab648be2f2cf2",null)},21191:(a,b,c)=>{c.r(b),c.d(b,{"0005df6e2c00c52a126f96cd613525a8223eaa3e22":()=>p.GET,"00104f9c4e49cfe5c7f2437dba2a2ab648be2f2cf2":()=>m.DELETE,"001298bb1ac6aad4cb9aacf486d566081ec7cf49ff":()=>p.DELETE,"001e76c51efcac5c7947b8f6cb149446f810e4e289":()=>j.GET,"001eed1b44d252f3245e7ceb279da488cde2dd1af4":()=>g.DELETE,"00256424467f3df1b7d3a4fe7ede162ced6cf7f11b":()=>o.GET,"0030ddffdb978dfab067de4691761ee37a2fad2cf8":()=>h.GET,"00316210d84d98d7ea631efff479cb7d64b79003c1":()=>l.GET,"004f9523fb3e66f24384cd567dadd4bfbbba161e60":()=>g.GET,"0054712bf2985050c4370f88e64f66f68524f93814":()=>n.GET,"0066315cc56112e5f253b9d839e08df23ce9156899":()=>k.GET,"0072a01768605d9f37e83d42aa1a177a6ae4b7e3fb":()=>r.DELETE,"00754d86d6dc6eb036db58421918ad93aeeff37b69":()=>l.DELETE,"007836da98354c66bb9858b478ad40d16dd40a10fe":()=>e.DELETE,"007bd267ea060c7fac1f006b721ce2a04e1476a6aa":()=>q.DELETE,"0086bf53768b91b92ba9f4f34156845481ac894bc6":()=>o.DELETE,"008704f46255c408b1c33f42de75ff41e922a74e94":()=>i.GET,"00a9bbfbcd2cada2552e0e84f4f19497b88078a25e":()=>i.DELETE,"00ad79960e909c35ff3040f75866c5122de1dc2968":()=>r.GET,"00b1d8434d71198efdf14aed0c02b9aa8a1934a15c":()=>n.DELETE,"00c01dc305c917d870c9df650fdcd5d6fe886fb513":()=>f.DELETE,"00c2ccbbb84b3237ad5ffc0cf2cf6ef8bdd355d1d3":()=>f.GET,"00d412b562338827134b5f49afe99af2c0b0cf4b1a":()=>j.DELETE,"00e390321235ae2873d2a0aef77871ed17859f8773":()=>e.GET,"00f05cc2cd4dddbf7ff3f22e0258d2ede735cc59e1":()=>q.GET,"00f090a342f05b30740678a70cba32f0e64602da58":()=>d.GET,"00f61a9cdd8590d1c1fcaea9f0c8e9bc2d7c7e573f":()=>m.GET,"4005a408b0fcfe3b2d3321627d5b33a8a1d0a35782":()=>j.POST,"400e63eeb208e74e1737dd398f82276de6610d261d":()=>s.POST,"40175df6c176101adccdddb8087ad4bae29c8f1e45":()=>g.POST,"401aa21d155f573368babd0c19e8efbe1c54b42fa2":()=>h.POST,"402a894eb4dc78ef792856e5251ee6d13b9183e20e":()=>p.POST,"40338b189fbee1b3ee567574d309902ff9ab622563":()=>f.POST,"404bd73783072b159158525c1d6d2810d9726514f6":()=>n.POST,"406ac464b2366d4efa5dae477277a936d4d32ffe39":()=>h.DELETE,"407f3b1486d41af4e28f6a72f0e855377d2ecbba1f":()=>l.POST,"407fc8df556870d332c3e2dca46e1858cf77e680ce":()=>o.POST,"408448ab0a389b7992ebe4ecb3c9896e6706163191":()=>i.POST,"40a0a3d15265f24e187985fee085c1ac5090ba4285":()=>m.POST,"40a19f31b9d20c98535590d85b1233b531b83e2644":()=>e.POST,"40a8c062c409a1405396b2bf92d8a4bb50212eca56":()=>h.PATCH,"40b65e2a6149c83bd71ea175c0c5ef029f26df2caf":()=>k.DELETE,"40be2158976b261b6f53466a9a05b8b76a00004a62":()=>s.GET,"40cecae9e1b31201b37e11e8371bd0ee7df4b4d723":()=>k.POST,"40dcb479a6cd9a48735f040a57ad4ee48050b58d53":()=>q.POST,"40f7037e3ca87c1fd0072a05518343ecde6a79bf1d":()=>r.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),s=c(93422)},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},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,"008704f46255c408b1c33f42de75ff41e922a74e94",null),(0,d.A)(u,"408448ab0a389b7992ebe4ecb3c9896e6706163191",null),(0,d.A)(v,"00a9bbfbcd2cada2552e0e84f4f19497b88078a25e",null)},31421:a=>{a.exports=require("node:child_process")},32467:a=>{a.exports=require("node:http2")},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")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},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,"00ea133262f91ce9f7beb12e6dc8401c0e5ee7c3b8",null),(0,d.A)(R,"40edc83fa256334ab401ba2fc1d2ec4755ef1bf877",null),(0,d.A)(S,"008abc9f19403e7dc9a99248c60cac506741412f02",null)},37830:a=>{a.exports=require("node:stream/web")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},43878:(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)}}},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,"00a3d743c4f93a486e921dfc99972ed64393b73941",null),(0,d.A)(v,"4011c9b0c46a5a776f455991a3b119ddc3c63aee33",null),(0,d.A)(w,"004cc2acc7fb6ceae8ffb6e6b2febbf545ec8ae2a3",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,"0000bb63eacf0dbba53d6b5b91ea4d999d3977bd82",null),(0,d.A)(z,"405a07c246c1a5020bda6cfc9cf2d148ca844170e9",null),(0,d.A)(A,"00c51df530876e61284d815424759fd45a203ba0a7",null)},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},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,"00e439af5a2cee2d3b0052ef47b3ba4fd93c3a961b",null),(0,d.A)(B,"4091948ccdf5f0d4a65e4e2ef17d0bf29ba6b22d0c",null),(0,d.A)(C,"009c5c085e6ad3bf15052b4b508419e9683b188943",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,"004f9523fb3e66f24384cd567dadd4bfbbba161e60",null),(0,d.A)(R,"40175df6c176101adccdddb8087ad4bae29c8f1e45",null),(0,d.A)(S,"001eed1b44d252f3245e7ceb279da488cde2dd1af4",null)},37830:a=>{a.exports=require("node:stream/web")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},43878:(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)}}},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,"0054712bf2985050c4370f88e64f66f68524f93814",null),(0,d.A)(v,"404bd73783072b159158525c1d6d2810d9726514f6",null),(0,d.A)(w,"00b1d8434d71198efdf14aed0c02b9aa8a1934a15c",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,"00f05cc2cd4dddbf7ff3f22e0258d2ede735cc59e1",null),(0,d.A)(z,"40dcb479a6cd9a48735f040a57ad4ee48050b58d53",null),(0,d.A)(A,"007bd267ea060c7fac1f006b721ce2a04e1476a6aa",null)},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},58500:a=>{a.exports=require("node:timers/promises")},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,"00c2ccbbb84b3237ad5ffc0cf2cf6ef8bdd355d1d3",null),(0,d.A)(B,"40338b189fbee1b3ee567574d309902ff9ab622563",null),(0,d.A)(C,"00c01dc305c917d870c9df650fdcd5d6fe886fb513",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,"00423554b65d6c3d1dd7c770a4e154991f9ee36f90",null),(0,d.A)(v,"4021449e2d8b1bdafad378b763f22fada37d7f256b",null),(0,d.A)(w,"009b72d94610880b783bd50504134a9a2f47106858",null)},71553:a=>{a.exports=require("node:dns/promises")},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,"009c965c670079f4829dc661def6a08e56ebb342d7",null),(0,d.A)(u,"40e81f2ac241be29507a95f383f464b9c604017d7b",null),(0,d.A)(v,"40e01352d5ab83dfc4875daa4e1fbd0efdbf7b0a41",null),(0,d.A)(w,"40ba64cb3847a97bb95f4c9830a9f5d91410fe916f",null)},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},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")},81630:a=>{a.exports=require("http")},81787:a=>{a.exports=require("bun:sqlite")},83997:a=>{a.exports=require("tty")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},93422:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>G,POST:()=>H});var d=c(49796),e=c(23211),f=c(51455),g=c.n(f),h=c(2574),i=c(30869),j=c(48161),k=c.n(j),l=c(76760),m=c.n(l);let n=/^[A-Za-z0-9][A-Za-z0-9._:/[\],=-]*$/,o=new Set(["127.0.0.1","localhost","0.0.0.0","[::1]"]);class p extends Error{constructor(a,{code:b="OPENBOT_CONFIG_ERROR",status:c=500}={}){super(a),this.name="OpenBotConfigError",this.code=b,this.status=c}}function q({platform:a=process.platform,env:b=process.env,homedir:c=k().homedir()}={}){return"darwin"===a?m().join(c,"Library","Application Support","OpenBot"):"win32"===a?m().join(b.APPDATA||m().join(c,"AppData","Roaming"),"OpenBot"):m().join(b.XDG_CONFIG_HOME||m().join(c,".config"),"OpenBot")}function r(a){return m().join(a,"openbot-custom-providers-v1.json")}function s(a,b){if("string"!=typeof b||!b||b.length>128)return!1;let c=`${a}/${b}`;return c.length<=160&&n.test(c)}function t(a,b){let c;try{c=new URL(a)}catch{return!1}if("http:"!==c.protocol&&"https:"!==c.protocol)return!1;let d=c.port||("https:"===c.protocol?"443":"80");return o.has(c.hostname)&&d===String(b)}function u(a){return a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name}async function v(a){let b;try{b=await g().readFile(r(a),"utf8")}catch(a){if("ENOENT"===a.code)return{text:null,file:{version:1,providers:[]}};throw a}return{text:b,file:function(a){let b;try{b=JSON.parse(a)}catch{throw new p("OpenBot's endpoints file is not valid JSON",{code:"OPENBOT_FILE_INVALID",status:422})}if(!(b&&1===b.version&&Array.isArray(b.providers)&&b.providers.every(a=>a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.baseUrl&&Array.isArray(a.models)&&a.models.every(u))))throw new p("OpenBot's endpoints file has a format this version does not know",{code:"OPENBOT_FILE_INVALID",status:422});return b}(b)}}async function w(a){let b;try{b=await g().readlink(m().join(a,"SingletonLock"))}catch{return{running:!1,pid:null}}let c=Number(String(b).split("-").pop());if(!Number.isInteger(c)||c<=0)return{running:!1,pid:null};try{return process.kill(c,0),{running:!0,pid:c}}catch(a){return{running:"EPERM"===a.code,pid:c}}}async function x(a){let b=new Map,d=m().join(a,"openbot.db");try{await g().access(d)}catch{return b}let{DatabaseSync:e}=await Promise.resolve().then(c.t.bind(c,79868,23)),f=new e(d,{readOnly:!0});try{for(let{model:a}of f.prepare("SELECT model FROM projection_agents").all()){if("string"!=typeof a)continue;let c=a.indexOf("/");if(c<=0)continue;let d=a.slice(0,c),e=a.slice(c+1);b.has(d)||b.set(d,new Set),b.get(d).add(e)}}finally{f.close()}return b}function y(a){return Number.isSafeInteger(a)&&a>=1024&&a<=1e8?a:void 0}async function z(a,b){let c=`${a}.${process.pid}.${Date.now()}.tmp`;try{await g().writeFile(c,b,{encoding:"utf8",mode:384}),await g().chmod(c,384),await g().rename(c,a)}catch(a){throw await g().rm(c,{force:!0}),a}}async function A({dir:a,providerId:b,selectedIds:c,routerModels:d,port:e,now:f=Date.now()}){let{running:h}=await w(a);if(h)throw new p("Quit OpenBot first: it would overwrite the new model list with the one it has open",{code:"OPENBOT_RUNNING",status:409});let{text:i,file:j}=await v(a),k=j.providers.find(a=>a.id===b);if(!k)throw new p(`OpenBot has no endpoint named "${b}"`,{code:"OPENBOT_ENDPOINT_NOT_FOUND",status:404});if(!t(k.baseUrl,e))throw new p(`Endpoint "${b}" does not point at this ZevaiRouter`,{code:"OPENBOT_ENDPOINT_NOT_ROUTER",status:422});let l=function({provider:a,selectedIds:b,routerModels:c,agentModelIds:d=new Set}){let e=new Map(c.map(a=>[a.id,a])),f=new Map(a.models.map(a=>[a.id,a])),g=[],h=[],i=new Set,j=a=>{i.has(a)||(i.add(a),h.push(a))};for(let a of d)j(a);for(let c of b)e.has(c)?s(a.id,c)?j(c):g.push({id:c,reason:"OpenBot does not accept this model id"}):g.push({id:c,reason:"not offered by ZevaiRouter"});if(0===h.length)throw new p("Select at least one model; OpenBot requires one per endpoint",{code:"OPENBOT_NO_MODELS",status:400});if(h.length>64)throw new p(`OpenBot allows at most 64 models per endpoint (${h.length} selected)`,{code:"OPENBOT_TOO_MANY_MODELS",status:400});return{models:h.map(a=>{let b=f.get(a),c=b?.name||a.slice(0,160),d=y(e.get(a)?.context_length)??y(b?.contextWindow);return void 0===d?{id:a,name:c}:{id:a,name:c,contextWindow:d}}),added:h.filter(a=>!f.has(a)),removed:a.models.map(a=>a.id).filter(a=>!i.has(a)),keptForAgents:[...d],rejected:g}}({provider:k,selectedIds:c,routerModels:d,agentModelIds:(await x(a)).get(b)||new Set}),m=r(a),n=`${m}.bak.${Math.floor(f/1e3)}`;await g().writeFile(n,i,{encoding:"utf8",mode:384});let o={...j,providers:j.providers.map(a=>a.id===b?{...a,models:l.models}:a)};return await z(m,`${JSON.stringify(o)}
12
- `),{providerId:b,modelCount:l.models.length,added:l.added,removed:l.removed,keptForAgents:l.keptForAgents,rejected:l.rejected,backupPath:n}}var B=c(24424);let C=()=>Number(process.env.PORT)||i.h0.appPort;async function D(a){try{return await g().access(a),!0}catch{return!1}}function E(a,b){return a instanceof p?e.NextResponse.json({error:a.message,code:a.code},{status:a.status}):(console.error(b,a),e.NextResponse.json({error:b},{status:500}))}async function F(){return(await (0,h.buildModelsList)(["llm"])).map(a=>({id:a.id,...Number.isFinite(a.context_length)?{context_length:a.context_length}:{}}))}async function G(a){let b=!!a&&"1"===new URL(a.url).searchParams.get("models"),c=q();if(!await D(c))return e.NextResponse.json({installed:!1,message:"OpenBot not detected. Install the OpenBot desktop app and open it once."});try{let a=C(),[{file:d},{running:f},g,h]=await Promise.all([v(c),w(c),x(c).catch(()=>new Map),b?F():Promise.resolve(null)]),i=d.providers.filter(b=>t(b.baseUrl,a)).map(a=>({id:a.id,name:a.name,baseUrl:a.baseUrl,hasApiKey:!!a.secret,modelIds:a.models.map(a=>a.id),agentModelIds:[...g.get(a.id)||[]]}));return e.NextResponse.json({installed:!0,hasZevai:i.length>0,running:f,configPath:r(c),maxModels:64,endpoints:i,...h?{routerModels:h.map(a=>({...a,openbotCompatible:s("x",a.id)}))}:{}})}catch(a){if(a instanceof p)return e.NextResponse.json({installed:!0,hasZevai:!1,configPath:r(c),error:a.message});return E(a,"Failed to read OpenBot settings")}}async function H(a){let b;try{b=await a.json()}catch{return e.NextResponse.json({error:"Request body must be valid JSON"},{status:400})}let c="string"==typeof b?.providerId?b.providerId.trim():"",d=Array.isArray(b?.models)?[...new Set(b.models.filter(a=>"string"==typeof a&&a.trim()).map(a=>a.trim()))]:null;if(!c||!d)return e.NextResponse.json({error:"providerId and models are required"},{status:400});try{let a=await A({dir:q(),providerId:c,selectedIds:d,routerModels:await F(),port:C()});return e.NextResponse.json({success:!0,...a})}catch(a){return E(a,"Failed to update OpenBot models")}}(0,B.D)([G,H]),(0,d.A)(G,"401a474bd51bffcc00a77b26bf213757ee17f26d80",null),(0,d.A)(H,"40cdc2f84c4c74969cc25e2c426649927aa1974e47",null)},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7774,9528,3294,3999,5024,3477,5681,9609,8590,6306,9679,7634,2557,3263,7502,2897,1350],()=>b(b.s=43878));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,"0005df6e2c00c52a126f96cd613525a8223eaa3e22",null),(0,d.A)(v,"402a894eb4dc78ef792856e5251ee6d13b9183e20e",null),(0,d.A)(w,"001298bb1ac6aad4cb9aacf486d566081ec7cf49ff",null)},71553:a=>{a.exports=require("node:dns/promises")},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,"0030ddffdb978dfab067de4691761ee37a2fad2cf8",null),(0,d.A)(u,"401aa21d155f573368babd0c19e8efbe1c54b42fa2",null),(0,d.A)(v,"40a8c062c409a1405396b2bf92d8a4bb50212eca56",null),(0,d.A)(w,"406ac464b2366d4efa5dae477277a936d4d32ffe39",null)},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},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")},81630:a=>{a.exports=require("http")},81787:a=>{a.exports=require("bun:sqlite")},83997:a=>{a.exports=require("tty")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},93422:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>G,POST:()=>H});var d=c(49796),e=c(23211),f=c(51455),g=c.n(f),h=c(2574),i=c(30869),j=c(48161),k=c.n(j),l=c(76760),m=c.n(l);let n=/^[A-Za-z0-9][A-Za-z0-9._:/[\],=-]*$/,o=new Set(["127.0.0.1","localhost","0.0.0.0","[::1]"]);class p extends Error{constructor(a,{code:b="OPENBOT_CONFIG_ERROR",status:c=500}={}){super(a),this.name="OpenBotConfigError",this.code=b,this.status=c}}function q({platform:a=process.platform,env:b=process.env,homedir:c=k().homedir()}={}){return"darwin"===a?m().join(c,"Library","Application Support","OpenBot"):"win32"===a?m().join(b.APPDATA||m().join(c,"AppData","Roaming"),"OpenBot"):m().join(b.XDG_CONFIG_HOME||m().join(c,".config"),"OpenBot")}function r(a){return m().join(a,"openbot-custom-providers-v1.json")}function s(a,b){if("string"!=typeof b||!b||b.length>128)return!1;let c=`${a}/${b}`;return c.length<=160&&n.test(c)}function t(a,b){let c;try{c=new URL(a)}catch{return!1}if("http:"!==c.protocol&&"https:"!==c.protocol)return!1;let d=c.port||("https:"===c.protocol?"443":"80");return o.has(c.hostname)&&d===String(b)}function u(a){return a&&"object"==typeof a&&"string"==typeof a.id&&"string"==typeof a.name}async function v(a){let b;try{b=await g().readFile(r(a),"utf8")}catch(a){if("ENOENT"===a.code)return{text:null,file:{version:1,providers:[]}};throw a}return{text:b,file:function(a){let b;try{b=JSON.parse(a)}catch{throw new p("OpenBot's endpoints file is not valid JSON",{code:"OPENBOT_FILE_INVALID",status:422})}if(!(b&&1===b.version&&Array.isArray(b.providers)&&b.providers.every(a=>a&&"string"==typeof a.id&&"string"==typeof a.name&&"string"==typeof a.baseUrl&&Array.isArray(a.models)&&a.models.every(u))))throw new p("OpenBot's endpoints file has a format this version does not know",{code:"OPENBOT_FILE_INVALID",status:422});return b}(b)}}async function w(a){let b;try{b=await g().readlink(m().join(a,"SingletonLock"))}catch{return{running:!1,pid:null}}let c=Number(String(b).split("-").pop());if(!Number.isInteger(c)||c<=0)return{running:!1,pid:null};try{return process.kill(c,0),{running:!0,pid:c}}catch(a){return{running:"EPERM"===a.code,pid:c}}}async function x(a){let b=new Map,d=m().join(a,"openbot.db");try{await g().access(d)}catch{return b}let{DatabaseSync:e}=await Promise.resolve().then(c.t.bind(c,79868,23)),f=new e(d,{readOnly:!0});try{for(let{model:a}of f.prepare("SELECT model FROM projection_agents").all()){if("string"!=typeof a)continue;let c=a.indexOf("/");if(c<=0)continue;let d=a.slice(0,c),e=a.slice(c+1);b.has(d)||b.set(d,new Set),b.get(d).add(e)}}finally{f.close()}return b}function y(a){return Number.isSafeInteger(a)&&a>=1024&&a<=1e8?a:void 0}async function z(a,b){let c=`${a}.${process.pid}.${Date.now()}.tmp`;try{await g().writeFile(c,b,{encoding:"utf8",mode:384}),await g().chmod(c,384),await g().rename(c,a)}catch(a){throw await g().rm(c,{force:!0}),a}}async function A({dir:a,providerId:b,selectedIds:c,routerModels:d,port:e,now:f=Date.now()}){let{running:h}=await w(a);if(h)throw new p("Quit OpenBot first: it would overwrite the new model list with the one it has open",{code:"OPENBOT_RUNNING",status:409});let{text:i,file:j}=await v(a),k=j.providers.find(a=>a.id===b);if(!k)throw new p(`OpenBot has no endpoint named "${b}"`,{code:"OPENBOT_ENDPOINT_NOT_FOUND",status:404});if(!t(k.baseUrl,e))throw new p(`Endpoint "${b}" does not point at this ZevaiRouter`,{code:"OPENBOT_ENDPOINT_NOT_ROUTER",status:422});let l=function({provider:a,selectedIds:b,routerModels:c,agentModelIds:d=new Set}){let e=new Map(c.map(a=>[a.id,a])),f=new Map(a.models.map(a=>[a.id,a])),g=[],h=[],i=new Set,j=a=>{i.has(a)||(i.add(a),h.push(a))};for(let a of d)j(a);for(let c of b)e.has(c)?s(a.id,c)?j(c):g.push({id:c,reason:"OpenBot does not accept this model id"}):g.push({id:c,reason:"not offered by ZevaiRouter"});if(0===h.length)throw new p("Select at least one model; OpenBot requires one per endpoint",{code:"OPENBOT_NO_MODELS",status:400});if(h.length>64)throw new p(`OpenBot allows at most 64 models per endpoint (${h.length} selected)`,{code:"OPENBOT_TOO_MANY_MODELS",status:400});return{models:h.map(a=>{let b=f.get(a),c=b?.name||a.slice(0,160),d=y(e.get(a)?.context_length)??y(b?.contextWindow);return void 0===d?{id:a,name:c}:{id:a,name:c,contextWindow:d}}),added:h.filter(a=>!f.has(a)),removed:a.models.map(a=>a.id).filter(a=>!i.has(a)),keptForAgents:[...d],rejected:g}}({provider:k,selectedIds:c,routerModels:d,agentModelIds:(await x(a)).get(b)||new Set}),m=r(a),n=`${m}.bak.${Math.floor(f/1e3)}`;await g().writeFile(n,i,{encoding:"utf8",mode:384});let o={...j,providers:j.providers.map(a=>a.id===b?{...a,models:l.models}:a)};return await z(m,`${JSON.stringify(o)}
12
+ `),{providerId:b,modelCount:l.models.length,added:l.added,removed:l.removed,keptForAgents:l.keptForAgents,rejected:l.rejected,backupPath:n}}var B=c(24424);let C=()=>Number(process.env.PORT)||i.h0.appPort;async function D(a){try{return await g().access(a),!0}catch{return!1}}function E(a,b){return a instanceof p?e.NextResponse.json({error:a.message,code:a.code},{status:a.status}):(console.error(b,a),e.NextResponse.json({error:b},{status:500}))}async function F(){return(await (0,h.buildModelsList)(["llm"])).map(a=>({id:a.id,...Number.isFinite(a.context_length)?{context_length:a.context_length}:{}}))}async function G(a){let b=!!a&&"1"===new URL(a.url).searchParams.get("models"),c=q();if(!await D(c))return e.NextResponse.json({installed:!1,message:"OpenBot not detected. Install the OpenBot desktop app and open it once."});try{let a=C(),[{file:d},{running:f},g,h]=await Promise.all([v(c),w(c),x(c).catch(()=>new Map),b?F():Promise.resolve(null)]),i=d.providers.filter(b=>t(b.baseUrl,a)).map(a=>({id:a.id,name:a.name,baseUrl:a.baseUrl,hasApiKey:!!a.secret,modelIds:a.models.map(a=>a.id),agentModelIds:[...g.get(a.id)||[]]}));return e.NextResponse.json({installed:!0,hasZevai:i.length>0,running:f,configPath:r(c),maxModels:64,endpoints:i,...h?{routerModels:h.map(a=>({...a,openbotCompatible:s("x",a.id)}))}:{}})}catch(a){if(a instanceof p)return e.NextResponse.json({installed:!0,hasZevai:!1,configPath:r(c),error:a.message});return E(a,"Failed to read OpenBot settings")}}async function H(a){let b;try{b=await a.json()}catch{return e.NextResponse.json({error:"Request body must be valid JSON"},{status:400})}let c="string"==typeof b?.providerId?b.providerId.trim():"",d=Array.isArray(b?.models)?[...new Set(b.models.filter(a=>"string"==typeof a&&a.trim()).map(a=>a.trim()))]:null;if(!c||!d)return e.NextResponse.json({error:"providerId and models are required"},{status:400});try{let a=await A({dir:q(),providerId:c,selectedIds:d,routerModels:await F(),port:C()});return e.NextResponse.json({success:!0,...a})}catch(a){return E(a,"Failed to update OpenBot models")}}(0,B.D)([G,H]),(0,d.A)(G,"40be2158976b261b6f53466a9a05b8b76a00004a62",null),(0,d.A)(H,"400e63eeb208e74e1737dd398f82276de6610d261d",null)},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[2970,1813,7774,9528,3294,3999,5024,3477,5681,9609,8590,6306,9679,7634,2557,3263,7502,2897,1350],()=>b(b.s=43878));module.exports=c})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/hash.js/sha256/256.js","../../../../../../node_modules/next/dist/compiled/hash.js/sha256/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/segment-config/ensure-static.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/app-dir-module.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/route-cache-key.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js","../../../../../../node_modules/next/dist/server/normalizers/normalizers.js","../../../../../../node_modules/next/dist/server/normalizers/underscore-normalizer.js","../../../../../../node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/route-kind.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/react-browser-bailout.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/page-path/normalize-page-path.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/index.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/dist/shared/lib/utils.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../package.json","../../../../../../src/lib/db/adapters/betterSqliteAdapter.js","../../../../../../src/lib/db/adapters/bunSqliteAdapter.js","../../../../../../src/lib/db/adapters/nodeSqliteAdapter.js","../../../../../../src/lib/db/adapters/sqljsAdapter.js","../../../../../../src/lib/db/maintenance.js","../../../../../../src/lib/db/migrate.js","../../../../../../src/lib/oauth/services/xai.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1019.js","../../../../chunks/1131.js","../../../../chunks/1133.js","../../../../chunks/1283.js","../../../../chunks/1350.js","../../../../chunks/1531.js","../../../../chunks/1756.js","../../../../chunks/1787.js","../../../../chunks/1813.js","../../../../chunks/1998.js","../../../../chunks/2007.js","../../../../chunks/2030.js","../../../../chunks/2051.js","../../../../chunks/2238.js","../../../../chunks/2299.js","../../../../chunks/2301.js","../../../../chunks/2409.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2442.js","../../../../chunks/2478.js","../../../../chunks/2557.js","../../../../chunks/2760.js","../../../../chunks/287.js","../../../../chunks/2897.js","../../../../chunks/2970.js","../../../../chunks/3016.js","../../../../chunks/3184.js","../../../../chunks/3263.js","../../../../chunks/3294.js","../../../../chunks/3331.js","../../../../chunks/3373.js","../../../../chunks/3477.js","../../../../chunks/3487.js","../../../../chunks/3593.js","../../../../chunks/3662.js","../../../../chunks/3675.js","../../../../chunks/3696.js","../../../../chunks/3721.js","../../../../chunks/3792.js","../../../../chunks/3815.js","../../../../chunks/3904.js","../../../../chunks/3926.js","../../../../chunks/3999.js","../../../../chunks/40.js","../../../../chunks/4055.js","../../../../chunks/412.js","../../../../chunks/4136.js","../../../../chunks/415.js","../../../../chunks/421.js","../../../../chunks/4229.js","../../../../chunks/4236.js","../../../../chunks/4253.js","../../../../chunks/4306.js","../../../../chunks/4315.js","../../../../chunks/4322.js","../../../../chunks/437.js","../../../../chunks/4586.js","../../../../chunks/4621.js","../../../../chunks/4632.js","../../../../chunks/4645.js","../../../../chunks/4650.js","../../../../chunks/4720.js","../../../../chunks/4721.js","../../../../chunks/4739.js","../../../../chunks/4780.js","../../../../chunks/4790.js","../../../../chunks/4803.js","../../../../chunks/4827.js","../../../../chunks/4897.js","../../../../chunks/492.js","../../../../chunks/5000.js","../../../../chunks/5019.js","../../../../chunks/5024.js","../../../../chunks/507.js","../../../../chunks/5217.js","../../../../chunks/5236.js","../../../../chunks/5258.js","../../../../chunks/5330.js","../../../../chunks/5433.js","../../../../chunks/5434.js","../../../../chunks/5469.js","../../../../chunks/5573.js","../../../../chunks/5577.js","../../../../chunks/5681.js","../../../../chunks/5752.js","../../../../chunks/5754.js","../../../../chunks/5800.js","../../../../chunks/5932.js","../../../../chunks/5936.js","../../../../chunks/5949.js","../../../../chunks/6036.js","../../../../chunks/6103.js","../../../../chunks/6108.js","../../../../chunks/6182.js","../../../../chunks/6200.js","../../../../chunks/6252.js","../../../../chunks/6306.js","../../../../chunks/6476.js","../../../../chunks/6492.js","../../../../chunks/6652.js","../../../../chunks/6686.js","../../../../chunks/6802.js","../../../../chunks/6843.js","../../../../chunks/6844.js","../../../../chunks/6846.js","../../../../chunks/6935.js","../../../../chunks/6936.js","../../../../chunks/6951.js","../../../../chunks/6975.js","../../../../chunks/698.js","../../../../chunks/709.js","../../../../chunks/7170.js","../../../../chunks/7250.js","../../../../chunks/7319.js","../../../../chunks/7341.js","../../../../chunks/7432.js","../../../../chunks/7464.js","../../../../chunks/7502.js","../../../../chunks/7568.js","../../../../chunks/7593.js","../../../../chunks/7634.js","../../../../chunks/7726.js","../../../../chunks/7774.js","../../../../chunks/7875.js","../../../../chunks/7965.js","../../../../chunks/8028.js","../../../../chunks/8062.js","../../../../chunks/8306.js","../../../../chunks/8469.js","../../../../chunks/8520.js","../../../../chunks/8590.js","../../../../chunks/86.js","../../../../chunks/8641.js","../../../../chunks/8655.js","../../../../chunks/8895.js","../../../../chunks/891.js","../../../../chunks/8971.js","../../../../chunks/9445.js","../../../../chunks/9489.js","../../../../chunks/9528.js","../../../../chunks/9539.js","../../../../chunks/9609.js","../../../../chunks/9613.js","../../../../chunks/9679.js","../../../../chunks/9835.js","../../../../chunks/static/media/server.007a63c1.js","../../../../webpack-runtime.js","route_client-reference-manifest.js","../../../../../../src/lib/terminal/ptyBridge.py","../../../../../../cli/hooks/cloakbrowserRuntime.js","../../../../../../cli/hooks/postinstall.js","../../../../../../cli/hooks/safeGlobalInstall.js","../../../../../../cli/hooks/sqliteRuntime.js","../../../../../../cli/hooks/startupRuntime.js","../../../../../../cli/hooks/streamCommand.js","../../../../../../cli/hooks/trayRuntime.js","../../../../../../node_modules/sql.js/.devcontainer/devcontainer.json","../../../../../../node_modules/sql.js/.devcontainer/Dockerfile","../../../../../../node_modules/sql.js/.eslintrc.js","../../../../../../node_modules/sql.js/.jsdoc.config.json","../../../../../../node_modules/sql.js/.nojekyll","../../../../../../node_modules/sql.js/AUTHORS","../../../../../../node_modules/sql.js/CONTRIBUTING.md","../../../../../../node_modules/sql.js/dist/sql-asm-debug.js","../../../../../../node_modules/sql.js/dist/sql-asm-memory-growth.js","../../../../../../node_modules/sql.js/dist/sql-asm.js","../../../../../../node_modules/sql.js/dist/sql-wasm-browser-debug.js","../../../../../../node_modules/sql.js/dist/sql-wasm-browser-debug.wasm","../../../../../../node_modules/sql.js/dist/sql-wasm-browser.js","../../../../../../node_modules/sql.js/dist/sql-wasm-browser.wasm","../../../../../../node_modules/sql.js/dist/sql-wasm-debug.js","../../../../../../node_modules/sql.js/dist/sql-wasm-debug.wasm","../../../../../../node_modules/sql.js/dist/sql-wasm.wasm","../../../../../../node_modules/sql.js/dist/worker.sql-asm-debug.js","../../../../../../node_modules/sql.js/dist/worker.sql-asm.js","../../../../../../node_modules/sql.js/dist/worker.sql-wasm-debug.js","../../../../../../node_modules/sql.js/dist/worker.sql-wasm.js","../../../../../../node_modules/sql.js/documentation_index.md","../../../../../../node_modules/sql.js/eslint.config.cjs","../../../../../../node_modules/sql.js/LICENSE","../../../../../../node_modules/sql.js/logo.svg","../../../../../../node_modules/sql.js/README.md"]}
1
+ {"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/hash.js/sha256/256.js","../../../../../../node_modules/next/dist/compiled/hash.js/sha256/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/segment-config/ensure-static.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/app-dir-module.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/route-cache-key.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js","../../../../../../node_modules/next/dist/server/normalizers/normalizers.js","../../../../../../node_modules/next/dist/server/normalizers/underscore-normalizer.js","../../../../../../node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/route-kind.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js","../../../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/react-browser-bailout.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/page-path/normalize-page-path.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/index.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/dist/shared/lib/utils.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../node_modules/sql.js/dist/sql-wasm.js","../../../../../../node_modules/sql.js/package.json","../../../../../../package.json","../../../../../../src/lib/db/adapters/betterSqliteAdapter.js","../../../../../../src/lib/db/adapters/bunSqliteAdapter.js","../../../../../../src/lib/db/adapters/nodeSqliteAdapter.js","../../../../../../src/lib/db/adapters/sqljsAdapter.js","../../../../../../src/lib/db/maintenance.js","../../../../../../src/lib/db/migrate.js","../../../../../../src/lib/oauth/services/xai.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1019.js","../../../../chunks/1131.js","../../../../chunks/1133.js","../../../../chunks/1283.js","../../../../chunks/1350.js","../../../../chunks/1531.js","../../../../chunks/1756.js","../../../../chunks/1787.js","../../../../chunks/1813.js","../../../../chunks/1998.js","../../../../chunks/2007.js","../../../../chunks/2030.js","../../../../chunks/2051.js","../../../../chunks/2238.js","../../../../chunks/2299.js","../../../../chunks/2301.js","../../../../chunks/2409.js","../../../../chunks/241.js","../../../../chunks/2430.js","../../../../chunks/2442.js","../../../../chunks/2478.js","../../../../chunks/2557.js","../../../../chunks/2760.js","../../../../chunks/287.js","../../../../chunks/2897.js","../../../../chunks/2970.js","../../../../chunks/3016.js","../../../../chunks/3184.js","../../../../chunks/3263.js","../../../../chunks/3294.js","../../../../chunks/3331.js","../../../../chunks/3373.js","../../../../chunks/3477.js","../../../../chunks/3487.js","../../../../chunks/3593.js","../../../../chunks/3662.js","../../../../chunks/3675.js","../../../../chunks/3696.js","../../../../chunks/3721.js","../../../../chunks/3792.js","../../../../chunks/3815.js","../../../../chunks/3904.js","../../../../chunks/3926.js","../../../../chunks/3999.js","../../../../chunks/40.js","../../../../chunks/4055.js","../../../../chunks/412.js","../../../../chunks/4136.js","../../../../chunks/415.js","../../../../chunks/421.js","../../../../chunks/4229.js","../../../../chunks/4236.js","../../../../chunks/4253.js","../../../../chunks/4306.js","../../../../chunks/4315.js","../../../../chunks/4322.js","../../../../chunks/437.js","../../../../chunks/4586.js","../../../../chunks/4621.js","../../../../chunks/4632.js","../../../../chunks/4645.js","../../../../chunks/4650.js","../../../../chunks/4720.js","../../../../chunks/4721.js","../../../../chunks/4739.js","../../../../chunks/4780.js","../../../../chunks/4790.js","../../../../chunks/4803.js","../../../../chunks/4827.js","../../../../chunks/4897.js","../../../../chunks/492.js","../../../../chunks/5000.js","../../../../chunks/5019.js","../../../../chunks/5024.js","../../../../chunks/507.js","../../../../chunks/5217.js","../../../../chunks/5236.js","../../../../chunks/5258.js","../../../../chunks/5330.js","../../../../chunks/5433.js","../../../../chunks/5434.js","../../../../chunks/5469.js","../../../../chunks/5573.js","../../../../chunks/5577.js","../../../../chunks/5681.js","../../../../chunks/5752.js","../../../../chunks/5754.js","../../../../chunks/5800.js","../../../../chunks/5932.js","../../../../chunks/5936.js","../../../../chunks/5949.js","../../../../chunks/6036.js","../../../../chunks/6103.js","../../../../chunks/6108.js","../../../../chunks/6182.js","../../../../chunks/6200.js","../../../../chunks/6252.js","../../../../chunks/6306.js","../../../../chunks/6476.js","../../../../chunks/6492.js","../../../../chunks/6652.js","../../../../chunks/6686.js","../../../../chunks/6802.js","../../../../chunks/6843.js","../../../../chunks/6844.js","../../../../chunks/6846.js","../../../../chunks/6935.js","../../../../chunks/6936.js","../../../../chunks/6951.js","../../../../chunks/6975.js","../../../../chunks/698.js","../../../../chunks/709.js","../../../../chunks/7170.js","../../../../chunks/7250.js","../../../../chunks/7319.js","../../../../chunks/7341.js","../../../../chunks/7432.js","../../../../chunks/7464.js","../../../../chunks/7502.js","../../../../chunks/7568.js","../../../../chunks/7593.js","../../../../chunks/7634.js","../../../../chunks/7726.js","../../../../chunks/7774.js","../../../../chunks/7875.js","../../../../chunks/7965.js","../../../../chunks/8028.js","../../../../chunks/8062.js","../../../../chunks/8306.js","../../../../chunks/8469.js","../../../../chunks/8520.js","../../../../chunks/8590.js","../../../../chunks/86.js","../../../../chunks/8641.js","../../../../chunks/8655.js","../../../../chunks/8895.js","../../../../chunks/891.js","../../../../chunks/8971.js","../../../../chunks/9445.js","../../../../chunks/9489.js","../../../../chunks/9528.js","../../../../chunks/9539.js","../../../../chunks/9609.js","../../../../chunks/9613.js","../../../../chunks/9679.js","../../../../chunks/9835.js","../../../../chunks/static/media/server.007a63c1.js","../../../../webpack-runtime.js","route_client-reference-manifest.js","../../../../../../src/lib/terminal/ptyBridge.py","../../../../../../cli/hooks/bunRuntime.js","../../../../../../cli/hooks/cloakbrowserRuntime.js","../../../../../../cli/hooks/postinstall.js","../../../../../../cli/hooks/safeGlobalInstall.js","../../../../../../cli/hooks/sqliteRuntime.js","../../../../../../cli/hooks/startupRuntime.js","../../../../../../cli/hooks/streamCommand.js","../../../../../../cli/hooks/trayRuntime.js","../../../../../../node_modules/sql.js/.devcontainer/devcontainer.json","../../../../../../node_modules/sql.js/.devcontainer/Dockerfile","../../../../../../node_modules/sql.js/.eslintrc.js","../../../../../../node_modules/sql.js/.jsdoc.config.json","../../../../../../node_modules/sql.js/.nojekyll","../../../../../../node_modules/sql.js/AUTHORS","../../../../../../node_modules/sql.js/CONTRIBUTING.md","../../../../../../node_modules/sql.js/dist/sql-asm-debug.js","../../../../../../node_modules/sql.js/dist/sql-asm-memory-growth.js","../../../../../../node_modules/sql.js/dist/sql-asm.js","../../../../../../node_modules/sql.js/dist/sql-wasm-browser-debug.js","../../../../../../node_modules/sql.js/dist/sql-wasm-browser-debug.wasm","../../../../../../node_modules/sql.js/dist/sql-wasm-browser.js","../../../../../../node_modules/sql.js/dist/sql-wasm-browser.wasm","../../../../../../node_modules/sql.js/dist/sql-wasm-debug.js","../../../../../../node_modules/sql.js/dist/sql-wasm-debug.wasm","../../../../../../node_modules/sql.js/dist/sql-wasm.wasm","../../../../../../node_modules/sql.js/dist/worker.sql-asm-debug.js","../../../../../../node_modules/sql.js/dist/worker.sql-asm.js","../../../../../../node_modules/sql.js/dist/worker.sql-wasm-debug.js","../../../../../../node_modules/sql.js/dist/worker.sql-wasm.js","../../../../../../node_modules/sql.js/documentation_index.md","../../../../../../node_modules/sql.js/eslint.config.cjs","../../../../../../node_modules/sql.js/LICENSE","../../../../../../node_modules/sql.js/logo.svg","../../../../../../node_modules/sql.js/README.md"]}