zevairouter 1.1.45 → 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 (1222) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +1 -1
  3. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  4. package/cli/app/.next-cli-build/app-path-routes-manifest.json +22 -21
  5. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  6. package/cli/app/.next-cli-build/prerender-manifest.json +3 -3
  7. package/cli/app/.next-cli-build/routes-manifest.json +6 -0
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +1 -1
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  85. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  87. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  88. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  90. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  91. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  92. package/cli/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  93. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  94. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  95. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  96. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  100. package/cli/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  101. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  102. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  103. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  104. package/cli/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  105. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  106. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  107. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  108. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +2 -2
  121. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -4
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  161. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  162. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  163. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  164. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  165. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  166. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  167. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  168. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route.js +3 -0
  169. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route.js.nft.json +1 -0
  170. package/cli/app/.next-cli-build/server/app/api/cli-tools/openbot-settings/route_client-reference-manifest.js +1 -0
  171. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  172. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  174. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  232. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
  236. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  298. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  362. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  368. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +1 -1
  372. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/providers/cloudflare-ai/discover-models/route.js +1 -1
  376. package/cli/app/.next-cli-build/server/app/api/providers/cloudflare-ai/discover-models/route.js.nft.json +1 -1
  377. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js +2 -2
  378. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js.nft.json +1 -1
  379. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/providers/flow/import/route.js.nft.json +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/[jobId]/route.js +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/[jobId]/route.js.nft.json +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/route.js +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/providers/flow/login/route.js.nft.json +1 -1
  385. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/providers/kiro/discover-models/route.js +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/providers/kiro/discover-models/route.js.nft.json +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/providers/kiro/models/route.js.nft.json +1 -1
  391. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js.nft.json +1 -1
  393. package/cli/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  397. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  399. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  401. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  403. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  405. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  406. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  407. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  408. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  409. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  411. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  412. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  413. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  414. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  416. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  418. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  420. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  422. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  424. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  426. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  428. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  429. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  435. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  439. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  442. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  445. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  454. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  456. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  459. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  460. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  461. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  467. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  474. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  478. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  481. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  482. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  483. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  487. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  488. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  489. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  490. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  491. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  492. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  493. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  494. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  495. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  496. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  497. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js +2 -2
  498. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js.nft.json +1 -1
  499. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  500. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  501. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  502. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  503. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js +2 -2
  504. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js.nft.json +1 -1
  505. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  506. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  507. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +1 -1
  508. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  509. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  510. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  511. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  512. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  513. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  514. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  515. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  516. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  517. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  518. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  519. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  520. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  521. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  522. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  523. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  524. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  525. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  526. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  527. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  528. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  529. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  530. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  531. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  532. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  533. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  534. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  535. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  536. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  537. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  538. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  539. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  540. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  541. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js +1 -1
  542. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/content/route.js.nft.json +1 -1
  543. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  544. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  545. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  546. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  547. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  548. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  549. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  550. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  551. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  552. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  553. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  554. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  555. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  556. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  557. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  558. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  559. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  560. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  561. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  562. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  563. package/cli/app/.next-cli-build/server/app/callback/page.js +1 -1
  564. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  565. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  566. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  567. package/cli/app/.next-cli-build/server/app/callback.rsc +3 -3
  568. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  569. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  570. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  571. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  572. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +3 -3
  573. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +3 -3
  574. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +3 -3
  575. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  576. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  577. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  578. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  579. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  580. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  581. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  582. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  583. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +6 -6
  584. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  585. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  586. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  587. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  588. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  589. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  590. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  591. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  592. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +3 -3
  593. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +3 -3
  594. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +3 -3
  595. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  596. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  597. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  598. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  599. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  600. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  601. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  602. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  603. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  604. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  605. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  606. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  607. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  608. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +6 -6
  609. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  610. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  611. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  612. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +3 -3
  613. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +3 -3
  614. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +3 -3
  615. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  616. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  617. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  618. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  619. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  620. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  621. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  622. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  623. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  624. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  625. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  626. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  627. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +4 -4
  628. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +4 -4
  629. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  630. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  631. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  632. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  633. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  634. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  635. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  636. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  637. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  638. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  639. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  640. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  641. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  642. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  643. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  644. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  645. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  646. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  647. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  648. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  649. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  650. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  651. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  652. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  653. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  654. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  655. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  656. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  657. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  658. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  659. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  660. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  661. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  662. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  663. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  664. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  665. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  666. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  667. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  668. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  669. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  670. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  671. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  672. package/cli/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  673. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  674. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  675. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  676. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  677. package/cli/app/.next-cli-build/server/app/index.rsc +3 -3
  678. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  679. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  680. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  681. package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
  682. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  683. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  684. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  685. package/cli/app/.next-cli-build/server/app/landing.rsc +3 -3
  686. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  687. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  688. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  689. package/cli/app/.next-cli-build/server/app/login/page.js +1 -1
  690. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  691. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  692. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  693. package/cli/app/.next-cli-build/server/app/login.rsc +3 -3
  694. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  695. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  696. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  697. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  698. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  699. package/cli/app/.next-cli-build/server/app/page.js +1 -1
  700. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  701. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  702. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js +2 -2
  703. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js.nft.json +1 -1
  704. package/cli/app/.next-cli-build/server/app/skills/[skill]/SKILL.md/route.js +1 -1
  705. package/cli/app/.next-cli-build/server/app/skills/[skill]/SKILL.md/route.js.nft.json +1 -1
  706. package/cli/app/.next-cli-build/server/app-paths-manifest.json +22 -21
  707. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  708. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  709. package/cli/app/.next-cli-build/server/chunks/{3949.js → 2897.js} +2 -2
  710. package/cli/app/.next-cli-build/server/chunks/3184.js +2 -2
  711. package/cli/app/.next-cli-build/server/chunks/415.js +1 -1
  712. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  713. package/cli/app/.next-cli-build/server/chunks/492.js +3 -3
  714. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  715. package/cli/app/.next-cli-build/server/chunks/5949.js +7 -7
  716. package/cli/app/.next-cli-build/server/chunks/{5029.js → 6975.js} +3 -3
  717. package/cli/app/.next-cli-build/server/chunks/7319.js +9 -9
  718. package/cli/app/.next-cli-build/server/chunks/7634.js +1 -1
  719. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  720. package/cli/app/.next-cli-build/server/chunks/8895.js +2 -2
  721. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  722. package/cli/app/.next-cli-build/server/middleware.js +5 -5
  723. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  724. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  725. package/cli/app/.next-cli-build/server/preview-props.json +3 -3
  726. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  727. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  728. package/cli/app/.next-cli-build/static/chunks/{2788-2df2621713259623.js → 2428-ecbb80abca3fb652.js} +13 -13
  729. package/cli/app/.next-cli-build/static/chunks/620-6616d2bb43c453f9.js +1 -0
  730. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-6c358e2d73c5a84f.js → page-8b9ca3abb568ffd2.js} +1 -1
  731. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-09ddee1cb9a8a1dd.js → page-4da658622b46b885.js} +1 -1
  732. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-838649fa37a461a4.js → page-a4b7b35c87bf288a.js} +1 -1
  733. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-4bd92dec9d25dff3.js → page-7c06c366dcec369c.js} +1 -1
  734. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-5d1fae532548c29e.js +1 -0
  735. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-5d1fae532548c29e.js +1 -0
  736. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-5d1fae532548c29e.js +1 -0
  737. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-5d1fae532548c29e.js +1 -0
  738. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-5d1fae532548c29e.js +1 -0
  739. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-5d1fae532548c29e.js +1 -0
  740. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-5d1fae532548c29e.js +1 -0
  741. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-5d1fae532548c29e.js +1 -0
  742. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-5d1fae532548c29e.js +1 -0
  743. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-5d1fae532548c29e.js +1 -0
  744. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-5d1fae532548c29e.js +1 -0
  745. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-5d1fae532548c29e.js +1 -0
  746. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-5d1fae532548c29e.js +1 -0
  747. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-5d1fae532548c29e.js +1 -0
  748. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-5d1fae532548c29e.js +1 -0
  749. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-5d1fae532548c29e.js +1 -0
  750. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-5d1fae532548c29e.js +1 -0
  751. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-5d1fae532548c29e.js +1 -0
  752. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-5d1fae532548c29e.js +1 -0
  753. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-5d1fae532548c29e.js +1 -0
  754. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-5d1fae532548c29e.js +1 -0
  755. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-5d1fae532548c29e.js +1 -0
  756. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-5d1fae532548c29e.js +1 -0
  757. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-5d1fae532548c29e.js +1 -0
  758. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-5d1fae532548c29e.js +1 -0
  759. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-5d1fae532548c29e.js +1 -0
  760. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-5d1fae532548c29e.js +1 -0
  761. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-5d1fae532548c29e.js +1 -0
  762. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-5d1fae532548c29e.js +1 -0
  763. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-5d1fae532548c29e.js +1 -0
  764. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-5d1fae532548c29e.js +1 -0
  765. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openbot-settings/route-5d1fae532548c29e.js +1 -0
  766. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-5d1fae532548c29e.js +1 -0
  767. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-5d1fae532548c29e.js +1 -0
  768. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-5d1fae532548c29e.js +1 -0
  769. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-5d1fae532548c29e.js +1 -0
  770. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-5d1fae532548c29e.js +1 -0
  771. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-5d1fae532548c29e.js +1 -0
  772. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-5d1fae532548c29e.js +1 -0
  773. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-5d1fae532548c29e.js +1 -0
  774. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-5d1fae532548c29e.js +1 -0
  775. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-5d1fae532548c29e.js +1 -0
  776. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-5d1fae532548c29e.js +1 -0
  777. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-5d1fae532548c29e.js +1 -0
  778. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-5d1fae532548c29e.js +1 -0
  779. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-5d1fae532548c29e.js +1 -0
  780. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-5d1fae532548c29e.js +1 -0
  781. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-5d1fae532548c29e.js +1 -0
  782. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-5d1fae532548c29e.js +1 -0
  783. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-5d1fae532548c29e.js +1 -0
  784. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-5d1fae532548c29e.js +1 -0
  785. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-5d1fae532548c29e.js +1 -0
  786. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-5d1fae532548c29e.js +1 -0
  787. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-5d1fae532548c29e.js +1 -0
  788. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-5d1fae532548c29e.js +1 -0
  789. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-5d1fae532548c29e.js +1 -0
  790. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-5d1fae532548c29e.js +1 -0
  791. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-5d1fae532548c29e.js +1 -0
  792. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-5d1fae532548c29e.js +1 -0
  793. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-5d1fae532548c29e.js +1 -0
  794. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-5d1fae532548c29e.js +1 -0
  795. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-5d1fae532548c29e.js +1 -0
  796. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-5d1fae532548c29e.js +1 -0
  797. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-5d1fae532548c29e.js +1 -0
  798. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-5d1fae532548c29e.js +1 -0
  799. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-5d1fae532548c29e.js +1 -0
  800. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-5d1fae532548c29e.js +1 -0
  801. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-5d1fae532548c29e.js +1 -0
  802. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-5d1fae532548c29e.js +1 -0
  803. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-5d1fae532548c29e.js +1 -0
  804. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-5d1fae532548c29e.js +1 -0
  805. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-5d1fae532548c29e.js +1 -0
  806. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  807. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  808. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  809. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  810. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-5d1fae532548c29e.js +1 -0
  811. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  812. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  813. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  814. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  815. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-5d1fae532548c29e.js +1 -0
  816. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  817. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  818. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  819. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  820. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-5d1fae532548c29e.js +1 -0
  821. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-5d1fae532548c29e.js +1 -0
  822. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-5d1fae532548c29e.js +1 -0
  823. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  824. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  825. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  826. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  827. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-5d1fae532548c29e.js +1 -0
  828. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-5d1fae532548c29e.js +1 -0
  829. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-5d1fae532548c29e.js +1 -0
  830. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-5d1fae532548c29e.js +1 -0
  831. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-5d1fae532548c29e.js +1 -0
  832. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-5d1fae532548c29e.js +1 -0
  833. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-5d1fae532548c29e.js +1 -0
  834. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  835. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  836. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  837. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  838. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-5d1fae532548c29e.js +1 -0
  839. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-5d1fae532548c29e.js +1 -0
  840. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-5d1fae532548c29e.js +1 -0
  841. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-5d1fae532548c29e.js +1 -0
  842. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-5d1fae532548c29e.js +1 -0
  843. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  844. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  845. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  846. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  847. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-5d1fae532548c29e.js +1 -0
  848. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-5d1fae532548c29e.js +1 -0
  849. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-5d1fae532548c29e.js +1 -0
  850. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-5d1fae532548c29e.js +1 -0
  851. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-5d1fae532548c29e.js +1 -0
  852. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-5d1fae532548c29e.js +1 -0
  853. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-5d1fae532548c29e.js +1 -0
  854. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-5d1fae532548c29e.js +1 -0
  855. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-5d1fae532548c29e.js +1 -0
  856. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-5d1fae532548c29e.js +1 -0
  857. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-5d1fae532548c29e.js +1 -0
  858. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-5d1fae532548c29e.js +1 -0
  859. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-5d1fae532548c29e.js +1 -0
  860. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-5d1fae532548c29e.js +1 -0
  861. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-5d1fae532548c29e.js +1 -0
  862. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-5d1fae532548c29e.js +1 -0
  863. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-5d1fae532548c29e.js +1 -0
  864. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-5d1fae532548c29e.js +1 -0
  865. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-5d1fae532548c29e.js +1 -0
  866. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-5d1fae532548c29e.js +1 -0
  867. package/cli/app/.next-cli-build/static/chunks/app/api/providers/cloudflare-ai/discover-models/route-5d1fae532548c29e.js +1 -0
  868. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-5d1fae532548c29e.js +1 -0
  869. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/import/route-5d1fae532548c29e.js +1 -0
  870. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/login/[jobId]/route-5d1fae532548c29e.js +1 -0
  871. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/login/route-5d1fae532548c29e.js +1 -0
  872. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-5d1fae532548c29e.js +1 -0
  873. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/discover-models/route-5d1fae532548c29e.js +1 -0
  874. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/models/route-5d1fae532548c29e.js +1 -0
  875. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-5d1fae532548c29e.js +1 -0
  876. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-5d1fae532548c29e.js +1 -0
  877. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-5d1fae532548c29e.js +1 -0
  878. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-5d1fae532548c29e.js +1 -0
  879. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-5d1fae532548c29e.js +1 -0
  880. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-5d1fae532548c29e.js +1 -0
  881. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-5d1fae532548c29e.js +1 -0
  882. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-5d1fae532548c29e.js +1 -0
  883. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-5d1fae532548c29e.js +1 -0
  884. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-5d1fae532548c29e.js +1 -0
  885. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-5d1fae532548c29e.js +1 -0
  886. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-5d1fae532548c29e.js +1 -0
  887. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-5d1fae532548c29e.js +1 -0
  888. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-5d1fae532548c29e.js +1 -0
  889. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-5d1fae532548c29e.js +1 -0
  890. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-5d1fae532548c29e.js +1 -0
  891. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-5d1fae532548c29e.js +1 -0
  892. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-5d1fae532548c29e.js +1 -0
  893. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-5d1fae532548c29e.js +1 -0
  894. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-5d1fae532548c29e.js +1 -0
  895. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-5d1fae532548c29e.js +1 -0
  896. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-5d1fae532548c29e.js +1 -0
  897. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-5d1fae532548c29e.js +1 -0
  898. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-5d1fae532548c29e.js +1 -0
  899. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-5d1fae532548c29e.js +1 -0
  900. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-5d1fae532548c29e.js +1 -0
  901. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-5d1fae532548c29e.js +1 -0
  902. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-5d1fae532548c29e.js +1 -0
  903. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-5d1fae532548c29e.js +1 -0
  904. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-5d1fae532548c29e.js +1 -0
  905. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-5d1fae532548c29e.js +1 -0
  906. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-5d1fae532548c29e.js +1 -0
  907. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-5d1fae532548c29e.js +1 -0
  908. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-5d1fae532548c29e.js +1 -0
  909. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-5d1fae532548c29e.js +1 -0
  910. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-5d1fae532548c29e.js +1 -0
  911. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-5d1fae532548c29e.js +1 -0
  912. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-5d1fae532548c29e.js +1 -0
  913. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-5d1fae532548c29e.js +1 -0
  914. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-5d1fae532548c29e.js +1 -0
  915. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-5d1fae532548c29e.js +1 -0
  916. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-5d1fae532548c29e.js +1 -0
  917. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-5d1fae532548c29e.js +1 -0
  918. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-5d1fae532548c29e.js +1 -0
  919. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-5d1fae532548c29e.js +1 -0
  920. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-5d1fae532548c29e.js +1 -0
  921. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-5d1fae532548c29e.js +1 -0
  922. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-5d1fae532548c29e.js +1 -0
  923. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-5d1fae532548c29e.js +1 -0
  924. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-5d1fae532548c29e.js +1 -0
  925. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-5d1fae532548c29e.js +1 -0
  926. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-5d1fae532548c29e.js +1 -0
  927. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-5d1fae532548c29e.js +1 -0
  928. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-5d1fae532548c29e.js +1 -0
  929. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-5d1fae532548c29e.js +1 -0
  930. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-5d1fae532548c29e.js +1 -0
  931. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-5d1fae532548c29e.js +1 -0
  932. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-5d1fae532548c29e.js +1 -0
  933. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-5d1fae532548c29e.js +1 -0
  934. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-5d1fae532548c29e.js +1 -0
  935. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-5d1fae532548c29e.js +1 -0
  936. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-5d1fae532548c29e.js +1 -0
  937. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-5d1fae532548c29e.js +1 -0
  938. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-5d1fae532548c29e.js +1 -0
  939. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-5d1fae532548c29e.js +1 -0
  940. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-5d1fae532548c29e.js +1 -0
  941. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-5d1fae532548c29e.js +1 -0
  942. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-5d1fae532548c29e.js +1 -0
  943. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-5d1fae532548c29e.js +1 -0
  944. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-5d1fae532548c29e.js +1 -0
  945. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-5d1fae532548c29e.js +1 -0
  946. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-5d1fae532548c29e.js +1 -0
  947. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-5d1fae532548c29e.js +1 -0
  948. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-5d1fae532548c29e.js +1 -0
  949. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-5d1fae532548c29e.js +1 -0
  950. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/content/route-5d1fae532548c29e.js +1 -0
  951. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-5d1fae532548c29e.js +1 -0
  952. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-5d1fae532548c29e.js +1 -0
  953. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-5d1fae532548c29e.js +1 -0
  954. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-5d1fae532548c29e.js +1 -0
  955. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-5d1fae532548c29e.js +1 -0
  956. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-5d1fae532548c29e.js +1 -0
  957. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-5d1fae532548c29e.js +1 -0
  958. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-5d1fae532548c29e.js +1 -0
  959. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-5d1fae532548c29e.js +1 -0
  960. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-5d1fae532548c29e.js +1 -0
  961. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-5d1fae532548c29e.js +1 -0
  962. package/cli/app/.next-cli-build/static/chunks/app/page-5d1fae532548c29e.js +1 -0
  963. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-5d1fae532548c29e.js +1 -0
  964. package/cli/app/.next-cli-build/static/chunks/app/skills/[skill]/SKILL.md/route-5d1fae532548c29e.js +1 -0
  965. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-5d1fae532548c29e.js +1 -0
  966. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-5d1fae532548c29e.js +1 -0
  967. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-5d1fae532548c29e.js +1 -0
  968. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-5d1fae532548c29e.js +1 -0
  969. package/cli/app/.next-cli-build/static/css/d11572d8f7baa8f2.css +1 -0
  970. package/cli/app/.next-cli-build/static/pSKJDkNYrgbvy8Qd80mgb/_buildManifest.js +1 -0
  971. package/cli/app/CHANGELOG.md +22 -0
  972. package/cli/app/cli/hooks/bunRuntime.js +86 -0
  973. package/cli/app/cli/hooks/safeGlobalInstall.js +24 -1
  974. package/cli/app/cli/hooks/startupRuntime.js +4 -0
  975. package/cli/app/package.json +1 -1
  976. package/cli/app/public/providers/omp.png +0 -0
  977. package/cli/app/public/providers/openbot.png +0 -0
  978. package/cli/app/src/lib/updater/updater.js +4 -1
  979. package/cli/cli.js +19 -9
  980. package/cli/hooks/bunRuntime.js +86 -0
  981. package/cli/hooks/safeGlobalInstall.js +24 -1
  982. package/cli/hooks/startupRuntime.js +4 -0
  983. package/cli/package.json +1 -1
  984. package/package.json +1 -1
  985. package/cli/app/.next-cli-build/static/chunks/620-fbf5c2b6126799ad.js +0 -1
  986. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-c4c57ebd914d8d2f.js +0 -1
  987. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-c4c57ebd914d8d2f.js +0 -1
  988. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-c4c57ebd914d8d2f.js +0 -1
  989. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-c4c57ebd914d8d2f.js +0 -1
  990. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-c4c57ebd914d8d2f.js +0 -1
  991. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-c4c57ebd914d8d2f.js +0 -1
  992. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-c4c57ebd914d8d2f.js +0 -1
  993. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-c4c57ebd914d8d2f.js +0 -1
  994. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-c4c57ebd914d8d2f.js +0 -1
  995. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-c4c57ebd914d8d2f.js +0 -1
  996. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-c4c57ebd914d8d2f.js +0 -1
  997. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-c4c57ebd914d8d2f.js +0 -1
  998. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-c4c57ebd914d8d2f.js +0 -1
  999. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-c4c57ebd914d8d2f.js +0 -1
  1000. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-c4c57ebd914d8d2f.js +0 -1
  1001. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-c4c57ebd914d8d2f.js +0 -1
  1002. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-c4c57ebd914d8d2f.js +0 -1
  1003. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-c4c57ebd914d8d2f.js +0 -1
  1004. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-c4c57ebd914d8d2f.js +0 -1
  1005. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-c4c57ebd914d8d2f.js +0 -1
  1006. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-c4c57ebd914d8d2f.js +0 -1
  1007. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-c4c57ebd914d8d2f.js +0 -1
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-c4c57ebd914d8d2f.js +0 -1
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-c4c57ebd914d8d2f.js +0 -1
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-c4c57ebd914d8d2f.js +0 -1
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-c4c57ebd914d8d2f.js +0 -1
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-c4c57ebd914d8d2f.js +0 -1
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-c4c57ebd914d8d2f.js +0 -1
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-c4c57ebd914d8d2f.js +0 -1
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-c4c57ebd914d8d2f.js +0 -1
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-c4c57ebd914d8d2f.js +0 -1
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-c4c57ebd914d8d2f.js +0 -1
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-c4c57ebd914d8d2f.js +0 -1
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-c4c57ebd914d8d2f.js +0 -1
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-c4c57ebd914d8d2f.js +0 -1
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-c4c57ebd914d8d2f.js +0 -1
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-c4c57ebd914d8d2f.js +0 -1
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-c4c57ebd914d8d2f.js +0 -1
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-c4c57ebd914d8d2f.js +0 -1
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-c4c57ebd914d8d2f.js +0 -1
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-c4c57ebd914d8d2f.js +0 -1
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-c4c57ebd914d8d2f.js +0 -1
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-c4c57ebd914d8d2f.js +0 -1
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-c4c57ebd914d8d2f.js +0 -1
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-c4c57ebd914d8d2f.js +0 -1
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-c4c57ebd914d8d2f.js +0 -1
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-c4c57ebd914d8d2f.js +0 -1
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-c4c57ebd914d8d2f.js +0 -1
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-c4c57ebd914d8d2f.js +0 -1
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-c4c57ebd914d8d2f.js +0 -1
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-c4c57ebd914d8d2f.js +0 -1
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-c4c57ebd914d8d2f.js +0 -1
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-c4c57ebd914d8d2f.js +0 -1
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-c4c57ebd914d8d2f.js +0 -1
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-c4c57ebd914d8d2f.js +0 -1
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-c4c57ebd914d8d2f.js +0 -1
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-c4c57ebd914d8d2f.js +0 -1
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-c4c57ebd914d8d2f.js +0 -1
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-c4c57ebd914d8d2f.js +0 -1
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-c4c57ebd914d8d2f.js +0 -1
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-c4c57ebd914d8d2f.js +0 -1
  1051. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-c4c57ebd914d8d2f.js +0 -1
  1052. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-c4c57ebd914d8d2f.js +0 -1
  1053. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-c4c57ebd914d8d2f.js +0 -1
  1054. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-c4c57ebd914d8d2f.js +0 -1
  1055. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-c4c57ebd914d8d2f.js +0 -1
  1056. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-c4c57ebd914d8d2f.js +0 -1
  1057. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1058. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1059. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1060. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1061. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1062. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1063. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1064. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1065. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1066. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1067. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1068. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1069. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1070. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1071. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1072. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-c4c57ebd914d8d2f.js +0 -1
  1073. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-c4c57ebd914d8d2f.js +0 -1
  1074. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1075. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1076. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1077. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1078. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1079. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-c4c57ebd914d8d2f.js +0 -1
  1080. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-c4c57ebd914d8d2f.js +0 -1
  1081. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-c4c57ebd914d8d2f.js +0 -1
  1082. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-c4c57ebd914d8d2f.js +0 -1
  1083. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-c4c57ebd914d8d2f.js +0 -1
  1084. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-c4c57ebd914d8d2f.js +0 -1
  1085. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1086. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1087. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1088. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1089. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1090. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-c4c57ebd914d8d2f.js +0 -1
  1091. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-c4c57ebd914d8d2f.js +0 -1
  1092. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-c4c57ebd914d8d2f.js +0 -1
  1093. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-c4c57ebd914d8d2f.js +0 -1
  1094. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1095. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1096. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1097. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1098. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1099. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-c4c57ebd914d8d2f.js +0 -1
  1100. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-c4c57ebd914d8d2f.js +0 -1
  1101. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-c4c57ebd914d8d2f.js +0 -1
  1102. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-c4c57ebd914d8d2f.js +0 -1
  1103. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-c4c57ebd914d8d2f.js +0 -1
  1104. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-c4c57ebd914d8d2f.js +0 -1
  1105. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1106. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-c4c57ebd914d8d2f.js +0 -1
  1107. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-c4c57ebd914d8d2f.js +0 -1
  1108. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-c4c57ebd914d8d2f.js +0 -1
  1109. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-c4c57ebd914d8d2f.js +0 -1
  1110. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1111. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-c4c57ebd914d8d2f.js +0 -1
  1112. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-c4c57ebd914d8d2f.js +0 -1
  1113. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1114. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-c4c57ebd914d8d2f.js +0 -1
  1115. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-c4c57ebd914d8d2f.js +0 -1
  1116. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-c4c57ebd914d8d2f.js +0 -1
  1117. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-c4c57ebd914d8d2f.js +0 -1
  1118. package/cli/app/.next-cli-build/static/chunks/app/api/providers/cloudflare-ai/discover-models/route-c4c57ebd914d8d2f.js +0 -1
  1119. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-c4c57ebd914d8d2f.js +0 -1
  1120. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/import/route-c4c57ebd914d8d2f.js +0 -1
  1121. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/login/[jobId]/route-c4c57ebd914d8d2f.js +0 -1
  1122. package/cli/app/.next-cli-build/static/chunks/app/api/providers/flow/login/route-c4c57ebd914d8d2f.js +0 -1
  1123. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-c4c57ebd914d8d2f.js +0 -1
  1124. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/discover-models/route-c4c57ebd914d8d2f.js +0 -1
  1125. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kiro/models/route-c4c57ebd914d8d2f.js +0 -1
  1126. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-c4c57ebd914d8d2f.js +0 -1
  1127. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-c4c57ebd914d8d2f.js +0 -1
  1128. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-c4c57ebd914d8d2f.js +0 -1
  1129. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-c4c57ebd914d8d2f.js +0 -1
  1130. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-c4c57ebd914d8d2f.js +0 -1
  1131. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1132. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-c4c57ebd914d8d2f.js +0 -1
  1133. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-c4c57ebd914d8d2f.js +0 -1
  1134. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-c4c57ebd914d8d2f.js +0 -1
  1135. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-c4c57ebd914d8d2f.js +0 -1
  1136. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-c4c57ebd914d8d2f.js +0 -1
  1137. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-c4c57ebd914d8d2f.js +0 -1
  1138. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-c4c57ebd914d8d2f.js +0 -1
  1139. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-c4c57ebd914d8d2f.js +0 -1
  1140. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-c4c57ebd914d8d2f.js +0 -1
  1141. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-c4c57ebd914d8d2f.js +0 -1
  1142. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-c4c57ebd914d8d2f.js +0 -1
  1143. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-c4c57ebd914d8d2f.js +0 -1
  1144. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-c4c57ebd914d8d2f.js +0 -1
  1145. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-c4c57ebd914d8d2f.js +0 -1
  1146. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-c4c57ebd914d8d2f.js +0 -1
  1147. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-c4c57ebd914d8d2f.js +0 -1
  1148. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-c4c57ebd914d8d2f.js +0 -1
  1149. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-c4c57ebd914d8d2f.js +0 -1
  1150. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-c4c57ebd914d8d2f.js +0 -1
  1151. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-c4c57ebd914d8d2f.js +0 -1
  1152. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-c4c57ebd914d8d2f.js +0 -1
  1153. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-c4c57ebd914d8d2f.js +0 -1
  1154. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-c4c57ebd914d8d2f.js +0 -1
  1155. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-c4c57ebd914d8d2f.js +0 -1
  1156. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1157. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-c4c57ebd914d8d2f.js +0 -1
  1158. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-c4c57ebd914d8d2f.js +0 -1
  1159. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-c4c57ebd914d8d2f.js +0 -1
  1160. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-c4c57ebd914d8d2f.js +0 -1
  1161. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-c4c57ebd914d8d2f.js +0 -1
  1162. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-c4c57ebd914d8d2f.js +0 -1
  1163. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-c4c57ebd914d8d2f.js +0 -1
  1164. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-c4c57ebd914d8d2f.js +0 -1
  1165. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-c4c57ebd914d8d2f.js +0 -1
  1166. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-c4c57ebd914d8d2f.js +0 -1
  1167. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-c4c57ebd914d8d2f.js +0 -1
  1168. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-c4c57ebd914d8d2f.js +0 -1
  1169. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-c4c57ebd914d8d2f.js +0 -1
  1170. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-c4c57ebd914d8d2f.js +0 -1
  1171. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-c4c57ebd914d8d2f.js +0 -1
  1172. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-c4c57ebd914d8d2f.js +0 -1
  1173. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-c4c57ebd914d8d2f.js +0 -1
  1174. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-c4c57ebd914d8d2f.js +0 -1
  1175. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-c4c57ebd914d8d2f.js +0 -1
  1176. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-c4c57ebd914d8d2f.js +0 -1
  1177. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-c4c57ebd914d8d2f.js +0 -1
  1178. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-c4c57ebd914d8d2f.js +0 -1
  1179. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-c4c57ebd914d8d2f.js +0 -1
  1180. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-c4c57ebd914d8d2f.js +0 -1
  1181. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-c4c57ebd914d8d2f.js +0 -1
  1182. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-c4c57ebd914d8d2f.js +0 -1
  1183. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-c4c57ebd914d8d2f.js +0 -1
  1184. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-c4c57ebd914d8d2f.js +0 -1
  1185. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-c4c57ebd914d8d2f.js +0 -1
  1186. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-c4c57ebd914d8d2f.js +0 -1
  1187. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-c4c57ebd914d8d2f.js +0 -1
  1188. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-c4c57ebd914d8d2f.js +0 -1
  1189. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-c4c57ebd914d8d2f.js +0 -1
  1190. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-c4c57ebd914d8d2f.js +0 -1
  1191. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-c4c57ebd914d8d2f.js +0 -1
  1192. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-c4c57ebd914d8d2f.js +0 -1
  1193. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-c4c57ebd914d8d2f.js +0 -1
  1194. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-c4c57ebd914d8d2f.js +0 -1
  1195. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-c4c57ebd914d8d2f.js +0 -1
  1196. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-c4c57ebd914d8d2f.js +0 -1
  1197. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-c4c57ebd914d8d2f.js +0 -1
  1198. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-c4c57ebd914d8d2f.js +0 -1
  1199. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-c4c57ebd914d8d2f.js +0 -1
  1200. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-c4c57ebd914d8d2f.js +0 -1
  1201. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/content/route-c4c57ebd914d8d2f.js +0 -1
  1202. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-c4c57ebd914d8d2f.js +0 -1
  1203. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-c4c57ebd914d8d2f.js +0 -1
  1204. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-c4c57ebd914d8d2f.js +0 -1
  1205. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-c4c57ebd914d8d2f.js +0 -1
  1206. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-c4c57ebd914d8d2f.js +0 -1
  1207. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-c4c57ebd914d8d2f.js +0 -1
  1208. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-c4c57ebd914d8d2f.js +0 -1
  1209. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-c4c57ebd914d8d2f.js +0 -1
  1210. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-c4c57ebd914d8d2f.js +0 -1
  1211. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-c4c57ebd914d8d2f.js +0 -1
  1212. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-c4c57ebd914d8d2f.js +0 -1
  1213. package/cli/app/.next-cli-build/static/chunks/app/page-c4c57ebd914d8d2f.js +0 -1
  1214. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-c4c57ebd914d8d2f.js +0 -1
  1215. package/cli/app/.next-cli-build/static/chunks/app/skills/[skill]/SKILL.md/route-c4c57ebd914d8d2f.js +0 -1
  1216. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-c4c57ebd914d8d2f.js +0 -1
  1217. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-c4c57ebd914d8d2f.js +0 -1
  1218. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-c4c57ebd914d8d2f.js +0 -1
  1219. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-c4c57ebd914d8d2f.js +0 -1
  1220. package/cli/app/.next-cli-build/static/css/18d2acbabd7c062d.css +0 -1
  1221. package/cli/app/.next-cli-build/static/wcLDlnOUizE-0wAchxA8u/_buildManifest.js +0 -1
  1222. /package/cli/app/.next-cli-build/static/{wcLDlnOUizE-0wAchxA8u → pSKJDkNYrgbvy8Qd80mgb}/_ssgManifest.js +0 -0
@@ -4,4 +4,4 @@ exports.id=1350,exports.ids=[1350],exports.modules={17113:(a,b,c)=>{"use strict"
4
4
  data: ${d}
5
5
 
6
6
  `)}catch{}}}),f.stderr.on("data",b=>console.log(`[mcp:${a}]`,b.toString().trim())),f.on("exit",c=>{console.log(`[mcp:${a}] exited`,c),b.delete(a)}),c}a.exports={getOrSpawn:q,registerSession:function(a,b){let c=q(a),d=g.randomUUID();return c.sessions.set(d,b),d},unregisterSession:function(a,b){let c=m().get(a);c&&c.sessions.delete(b)},sendToChild:function(a,b){let c=m().get(a);if(!c?.proc?.stdin?.writable)throw Error(`Bridge not running: ${a}`);c.proc.stdin.write(`${JSON.stringify(b)}
7
- `)},isRunning:function(a){let b=m().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:p,registerCustomPlugin:function(a){if(!o(a?.command))throw Error(`Blocked: command '${a?.command}' not in MCP allowlist`);n().set(a.name,a)}}},19713:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("<script>document.F=Object<\/script>"),a.close(),j=a.F;d--;)delete j[i][f[d]];return j()};a.exports=Object.create||function(a,b){var c;return null!==a?(h[i]=d(a),c=new h,h[i]=null,c[g]=a):c=j(),void 0===b?c:e(c,b)}},function(a,b,c){var d=c(12),e=c(3),f=c(54);a.exports=c(4)?Object.defineProperties:function(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){var d=c(55),e=c(17),f=c(13),g=c(32),h=c(8),i=c(26),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(a){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(8),e=c(63),f=c(19)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return d(a=e(a),f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(8),e=c(13),f=c(39)(!1),g=c(19)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(53),e=c(22);a.exports=Object.keys||function(a){return d(a,e)}},function(a,b){b.f=({}).propertyIsEnumerable},function(a,b,c){var d=c(5);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,c){a.exports=c(5)},function(a,b,c){var d=c(9),e=c(3),f=function(a,b){if(e(a),!d(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,d){try{(d=c(7)(Function.call,c(51).f(Object.prototype,"__proto__").set,2))(a,[]),b=!(a instanceof Array)}catch(a){b=!0}return function(a,c){return f(a,c),b?a.__proto__=c:d(a,c),a}}({},!1):void 0),check:f}},function(a,b,c){"use strict";var d=c(2),e=c(6),f=c(12),g=c(4),h=c(1)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,c){var d=c(3),e=c(14),f=c(1)("species");a.exports=function(a,b){var c,g=d(a).constructor;return void 0===g||void 0==(c=d(g)[f])?b:e(c)}},function(a,b,c){var d=c(20),e=c(15);a.exports=function(a){return function(b,c){var f,g,h=String(e(b)),i=d(c),j=h.length;return i<0||i>=j?a?"":void 0:(f=h.charCodeAt(i))<55296||f>56319||i+1===j||(g=h.charCodeAt(i+1))<56320||g>57343?a?h.charAt(i):f:a?h.slice(i,i+2):(f-55296<<10)+(g-56320)+65536}}},function(a,b,c){var d=c(20),e=Math.max,f=Math.min;a.exports=function(a,b){return(a=d(a))<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(15);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(21),e=c(1)("iterator"),f=c(10);a.exports=c(6).getIteratorMethod=function(a){if(void 0!=a)return a[e]||a["@@iterator"]||f[d(a)]}},function(a,b,c){"use strict";var d=c(37),e=c(47),f=c(10),g=c(13);a.exports=c(27)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,c=this._i++;return!a||c>=a.length?(this._t=void 0,e(1)):"keys"==b?e(0,c):"values"==b?e(0,a[c]):e(0,[c,a[c]])},"values"),f.Arguments=f.Array,d("keys"),d("values"),d("entries")},function(a,b){},function(a,b,c){"use strict";var d,e,f,g=c(28),h=c(2),i=c(7),j=c(21),k=c(23),l=c(9),m=(c(3),c(14)),n=c(38),o=c(40),p=(c(58).set,c(60)),q=c(30).set,r=c(48)(),s="Promise",t=h.TypeError,u=h.process,v=h[s],u=h.process,w="process"==j(u),x=function(){},y=!!function(){try{var a=v.resolve(1),b=(a.constructor={})[c(1)("species")]=function(a){a(x,x)};return(w||"function"==typeof PromiseRejectionEvent)&&a.then(x)instanceof b}catch(a){}}(),z=function(a,b){return a===b||a===v&&b===f},A=function(a){var b;return!(!l(a)||"function"!=typeof(b=a.then))&&b},B=function(a){return z(v,a)?new C(a):new e(a)},C=e=function(a){var b,c;this.promise=new a(function(a,d){if(void 0!==b||void 0!==c)throw t("Bad Promise constructor");b=a,c=d}),this.resolve=m(b),this.reject=m(c)},D=function(a){try{a()}catch(a){return{error:a}}},E=function(a,b){if(!a._n){a._n=!0;var c=a._c;r(function(){for(var d=a._v,e=1==a._s,f=0;c.length>f;)!function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&H(a),a._h=1),!0===g?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(t("Promise-chain cycle")):(f=A(c))?f.call(c,h,i):h(c)):i(d)}catch(a){i(a)}}(c[f++]);a._c=[],a._n=!1,b&&!a._h&&F(a)})}},F=function(a){q.call(h,function(){var b,c,d,e=a._v;if(G(a)&&(b=D(function(){w?u.emit("unhandledRejection",e,a):(c=h.onunhandledrejection)?c({promise:a,reason:e}):(d=h.console)&&d.error&&d.error("Unhandled promise rejection",e)}),a._h=w||G(a)?2:1),a._a=void 0,b)throw b.error})},G=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if((b=c[d++]).fail||!G(b.promise))return!1;return!0},H=function(a){q.call(h,function(){var b;w?u.emit("rejectionHandled",a):(b=h.onrejectionhandled)&&b({promise:a,reason:a._v})})},I=function(a){var b=this;b._d||(b._d=!0,(b=b._w||b)._v=a,b._s=2,b._a||(b._a=b._c.slice()),E(b,!0))},J=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw t("Promise can't be resolved itself");(b=A(a))?r(function(){var d={_w:c,_d:!1};try{b.call(a,i(J,d,1),i(I,d,1))}catch(a){I.call(d,a)}}):(c._v=a,c._s=1,E(c,!1))}catch(a){I.call({_w:c,_d:!1},a)}}};y||(v=function(a){n(this,v,s,"_h"),m(a),d.call(this);try{a(i(J,this,1),i(I,this,1))}catch(a){I.call(this,a)}},(d=function(a){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=c(56)(v.prototype,{then:function(a,b){var c=B(p(this,v));return c.ok="function"!=typeof a||a,c.fail="function"==typeof b&&b,c.domain=w?u.domain:void 0,this._c.push(c),this._a&&this._a.push(c),this._s&&E(this,!1),c.promise},catch:function(a){return this.then(void 0,a)}}),C=function(){var a=new d;this.promise=a,this.resolve=i(J,a,1),this.reject=i(I,a,1)}),k(k.G+k.W+!y*k.F,{Promise:v}),c(18)(v,s),c(59)(s),f=c(6)[s],k(k.S+!y*k.F,s,{reject:function(a){var b=B(this);return(0,b.reject)(a),b.promise}}),k(k.S+k.F*(g||!y),s,{resolve:function(a){if(a instanceof v&&z(a.constructor,this))return a;var b=B(this);return(0,b.resolve)(a),b.promise}}),k(k.S+k.F*!(y&&c(46)(function(a){v.all(a).catch(x)})),s,{all:function(a){var b=this,c=B(b),d=c.resolve,e=c.reject,f=D(function(){var c=[],f=0,g=1;o(a,!1,function(a){var h=f++,i=!1;c.push(void 0),g++,b.resolve(a).then(function(a){i||(i=!0,c[h]=a,--g||d(c))},e)}),--g||d(c)});return f&&e(f.error),c.promise},race:function(a){var b=this,c=B(b),d=c.reject,e=D(function(){o(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b,c){"use strict";var d=c(61)(!0);c(27)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,c=this._i;return c>=b.length?{value:void 0,done:!0}:(a=d(b,c),this._i+=a.length,{value:a,done:!1})})},function(a,b,c){c(65);for(var d=c(2),e=c(5),f=c(10),g=c(1)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b){a.exports=c(79646)},function(a,b){a.exports=c(55511)}];function e(a){if(f[a])return f[a].exports;var b=f[a]={exports:{},id:a,loaded:!1};return d[a].call(b.exports,b,b.exports,e),b.loaded=!0,b.exports}var f={};return e.m=d,e.c=f,e.p="",e(0)}(c(79646),c(55511))},21350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>H,GET:()=>F,POST:()=>G});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(55511),m=c(28286),n=c(30869);c(49120);var o=c(54603),p=c(24424);let q=n.h0.appPort,r=null,s=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},t=async()=>{let a=s();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},u=()=>s()[0],v=async()=>i().join(await t(),"configLibrary"),w=async()=>i().join(await v(),"_meta.json"),x=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},y=()=>i().join(x(),"claude_desktop_config.json"),z=async()=>{try{return JSON.parse(await g().readFile(y(),"utf-8"))||{}}catch(a){if("ENOENT"===a.code)return{};throw a}},A=async a=>{await g().mkdir(x(),{recursive:!0}),await g().writeFile(y(),JSON.stringify(a,null,2))},B=async()=>{let a=await z();if(!a.mcpServers||"object"!=typeof a.mcpServers)return;let b=new Set(m.LOCAL_STDIO_PLUGINS.map(a=>a.name));for(let c of Object.keys(a.mcpServers))b.has(c)&&delete a.mcpServers[c];0===Object.keys(a.mcpServers).length&&delete a.mcpServers,await A(a)},C=async()=>{for(let a of[...s(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},D=async a=>{try{return JSON.parse(await g().readFile(a,"utf-8"))}catch(a){if("ENOENT"===a.code)return null;throw a}};async function E(a){let b=i().join(u(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d={};for(let b of a)b?.name&&(d[b.name]=!0);return c.operonSkipMcpApprovals=d,await g().mkdir(u(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(d).length}}async function F(){try{if(!await C())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await D(await w()),b=a?.appliedId||null,c=await v(),d=b?i().join(c,`${b}.json`):null,f=d?await D(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=!!(f?.inferenceProvider==="gateway"&&g),l=new Set(m.LOCAL_STDIO_PLUGINS.map(a=>a.name)),n=j.filter(a=>l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>a.name),o=j.filter(a=>a.custom||!l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>({name:a.name,url:a.url,transport:a.transport,custom:!0}));return e.NextResponse.json({installed:!0,config:f,hasZevai:k,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,plugins:j.filter(a=>!a.custom&&!(l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/"))).map(a=>{let b=a.toolPolicy?Object.keys(a.toolPolicy):[],c=`${a.name}-`,d=new Set;for(let a of b){let b=a;for(;b.startsWith(c);)b=b.slice(c.length);d.add(b)}let e=m.DEFAULT_PLUGINS.find(b=>b.name===a.name),f=e&&Array.isArray(e.toolNames)?e.toolNames:Array.from(d);return{name:a.name,url:a.url,transport:a.transport,oauth:!!a.oauth,toolNames:f}}),localPlugins:n,customPlugins:o},defaultPlugins:m.DEFAULT_PLUGINS,localStdioPlugins:m.LOCAL_STDIO_PLUGINS})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function G(a){return e.NextResponse.json({error:"Cowork is disabled"},{status:403})}async function H(){try{let a=await D(await w());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await v(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}try{await E([])}catch{}try{await B()}catch{}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,p.D)([F,G,H]),(0,d.A)(F,"00144963427849742c76131112a981fde260b5bfc9",null),(0,d.A)(G,"4005b7fdc418c2d451f792716ca82899ba6ab85ba0",null),(0,d.A)(H,"00c63d80d8b227829ac097d9558d27d738d9df42a0",null)},28286:a=>{"use strict";a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],ALLOWED_MCP_COMMANDS:new Set(["npx","node","uvx","python","python3","bunx","bun"]),buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},49120:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DATA_DIR:()=>m,getDataDir:()=>l});var d=c(73024),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);let j="zevai";function k(){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),j):g().join(i().homedir(),`.${j}`)}function l(){let a=process.env.DATA_DIR;if(!a)return k();try{return e().mkdirSync(a,{recursive:!0}),a}catch(b){if(b?.code==="EACCES"||b?.code==="EPERM")return console.warn(`[DATA_DIR] '${a}' not writable → fallback ~/.${j}`),k();throw b}}let m=l()},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.DATA_DIR,"machine-id"),m=h().join(k.DATA_DIR,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.DATA_DIR,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="zevai-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}}};
7
+ `)},isRunning:function(a){let b=m().get(a);return!!(b?.proc&&!b.proc.killed&&null===b.proc.exitCode)},findPlugin:p,registerCustomPlugin:function(a){if(!o(a?.command))throw Error(`Blocked: command '${a?.command}' not in MCP allowlist`);n().set(a.name,a)}}},19713:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("<script>document.F=Object<\/script>"),a.close(),j=a.F;d--;)delete j[i][f[d]];return j()};a.exports=Object.create||function(a,b){var c;return null!==a?(h[i]=d(a),c=new h,h[i]=null,c[g]=a):c=j(),void 0===b?c:e(c,b)}},function(a,b,c){var d=c(12),e=c(3),f=c(54);a.exports=c(4)?Object.defineProperties:function(a,b){e(a);for(var c,g=f(b),h=g.length,i=0;h>i;)d.f(a,c=g[i++],b[c]);return a}},function(a,b,c){var d=c(55),e=c(17),f=c(13),g=c(32),h=c(8),i=c(26),j=Object.getOwnPropertyDescriptor;b.f=c(4)?j:function(a,b){if(a=f(a),b=g(b,!0),i)try{return j(a,b)}catch(a){}if(h(a,b))return e(!d.f.call(a,b),a[b])}},function(a,b,c){var d=c(8),e=c(63),f=c(19)("IE_PROTO"),g=Object.prototype;a.exports=Object.getPrototypeOf||function(a){return d(a=e(a),f)?a[f]:"function"==typeof a.constructor&&a instanceof a.constructor?a.constructor.prototype:a instanceof Object?g:null}},function(a,b,c){var d=c(8),e=c(13),f=c(39)(!1),g=c(19)("IE_PROTO");a.exports=function(a,b){var c,h=e(a),i=0,j=[];for(c in h)c!=g&&d(h,c)&&j.push(c);for(;b.length>i;)d(h,c=b[i++])&&(~f(j,c)||j.push(c));return j}},function(a,b,c){var d=c(53),e=c(22);a.exports=Object.keys||function(a){return d(a,e)}},function(a,b){b.f=({}).propertyIsEnumerable},function(a,b,c){var d=c(5);a.exports=function(a,b,c){for(var e in b)c&&a[e]?a[e]=b[e]:d(a,e,b[e]);return a}},function(a,b,c){a.exports=c(5)},function(a,b,c){var d=c(9),e=c(3),f=function(a,b){if(e(a),!d(b)&&null!==b)throw TypeError(b+": can't set as prototype!")};a.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(a,b,d){try{(d=c(7)(Function.call,c(51).f(Object.prototype,"__proto__").set,2))(a,[]),b=!(a instanceof Array)}catch(a){b=!0}return function(a,c){return f(a,c),b?a.__proto__=c:d(a,c),a}}({},!1):void 0),check:f}},function(a,b,c){"use strict";var d=c(2),e=c(6),f=c(12),g=c(4),h=c(1)("species");a.exports=function(a){var b="function"==typeof e[a]?e[a]:d[a];g&&b&&!b[h]&&f.f(b,h,{configurable:!0,get:function(){return this}})}},function(a,b,c){var d=c(3),e=c(14),f=c(1)("species");a.exports=function(a,b){var c,g=d(a).constructor;return void 0===g||void 0==(c=d(g)[f])?b:e(c)}},function(a,b,c){var d=c(20),e=c(15);a.exports=function(a){return function(b,c){var f,g,h=String(e(b)),i=d(c),j=h.length;return i<0||i>=j?a?"":void 0:(f=h.charCodeAt(i))<55296||f>56319||i+1===j||(g=h.charCodeAt(i+1))<56320||g>57343?a?h.charAt(i):f:a?h.slice(i,i+2):(f-55296<<10)+(g-56320)+65536}}},function(a,b,c){var d=c(20),e=Math.max,f=Math.min;a.exports=function(a,b){return(a=d(a))<0?e(a+b,0):f(a,b)}},function(a,b,c){var d=c(15);a.exports=function(a){return Object(d(a))}},function(a,b,c){var d=c(21),e=c(1)("iterator"),f=c(10);a.exports=c(6).getIteratorMethod=function(a){if(void 0!=a)return a[e]||a["@@iterator"]||f[d(a)]}},function(a,b,c){"use strict";var d=c(37),e=c(47),f=c(10),g=c(13);a.exports=c(27)(Array,"Array",function(a,b){this._t=g(a),this._i=0,this._k=b},function(){var a=this._t,b=this._k,c=this._i++;return!a||c>=a.length?(this._t=void 0,e(1)):"keys"==b?e(0,c):"values"==b?e(0,a[c]):e(0,[c,a[c]])},"values"),f.Arguments=f.Array,d("keys"),d("values"),d("entries")},function(a,b){},function(a,b,c){"use strict";var d,e,f,g=c(28),h=c(2),i=c(7),j=c(21),k=c(23),l=c(9),m=(c(3),c(14)),n=c(38),o=c(40),p=(c(58).set,c(60)),q=c(30).set,r=c(48)(),s="Promise",t=h.TypeError,u=h.process,v=h[s],u=h.process,w="process"==j(u),x=function(){},y=!!function(){try{var a=v.resolve(1),b=(a.constructor={})[c(1)("species")]=function(a){a(x,x)};return(w||"function"==typeof PromiseRejectionEvent)&&a.then(x)instanceof b}catch(a){}}(),z=function(a,b){return a===b||a===v&&b===f},A=function(a){var b;return!(!l(a)||"function"!=typeof(b=a.then))&&b},B=function(a){return z(v,a)?new C(a):new e(a)},C=e=function(a){var b,c;this.promise=new a(function(a,d){if(void 0!==b||void 0!==c)throw t("Bad Promise constructor");b=a,c=d}),this.resolve=m(b),this.reject=m(c)},D=function(a){try{a()}catch(a){return{error:a}}},E=function(a,b){if(!a._n){a._n=!0;var c=a._c;r(function(){for(var d=a._v,e=1==a._s,f=0;c.length>f;)!function(b){var c,f,g=e?b.ok:b.fail,h=b.resolve,i=b.reject,j=b.domain;try{g?(e||(2==a._h&&H(a),a._h=1),!0===g?c=d:(j&&j.enter(),c=g(d),j&&j.exit()),c===b.promise?i(t("Promise-chain cycle")):(f=A(c))?f.call(c,h,i):h(c)):i(d)}catch(a){i(a)}}(c[f++]);a._c=[],a._n=!1,b&&!a._h&&F(a)})}},F=function(a){q.call(h,function(){var b,c,d,e=a._v;if(G(a)&&(b=D(function(){w?u.emit("unhandledRejection",e,a):(c=h.onunhandledrejection)?c({promise:a,reason:e}):(d=h.console)&&d.error&&d.error("Unhandled promise rejection",e)}),a._h=w||G(a)?2:1),a._a=void 0,b)throw b.error})},G=function(a){if(1==a._h)return!1;for(var b,c=a._a||a._c,d=0;c.length>d;)if((b=c[d++]).fail||!G(b.promise))return!1;return!0},H=function(a){q.call(h,function(){var b;w?u.emit("rejectionHandled",a):(b=h.onrejectionhandled)&&b({promise:a,reason:a._v})})},I=function(a){var b=this;b._d||(b._d=!0,(b=b._w||b)._v=a,b._s=2,b._a||(b._a=b._c.slice()),E(b,!0))},J=function(a){var b,c=this;if(!c._d){c._d=!0,c=c._w||c;try{if(c===a)throw t("Promise can't be resolved itself");(b=A(a))?r(function(){var d={_w:c,_d:!1};try{b.call(a,i(J,d,1),i(I,d,1))}catch(a){I.call(d,a)}}):(c._v=a,c._s=1,E(c,!1))}catch(a){I.call({_w:c,_d:!1},a)}}};y||(v=function(a){n(this,v,s,"_h"),m(a),d.call(this);try{a(i(J,this,1),i(I,this,1))}catch(a){I.call(this,a)}},(d=function(a){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=c(56)(v.prototype,{then:function(a,b){var c=B(p(this,v));return c.ok="function"!=typeof a||a,c.fail="function"==typeof b&&b,c.domain=w?u.domain:void 0,this._c.push(c),this._a&&this._a.push(c),this._s&&E(this,!1),c.promise},catch:function(a){return this.then(void 0,a)}}),C=function(){var a=new d;this.promise=a,this.resolve=i(J,a,1),this.reject=i(I,a,1)}),k(k.G+k.W+!y*k.F,{Promise:v}),c(18)(v,s),c(59)(s),f=c(6)[s],k(k.S+!y*k.F,s,{reject:function(a){var b=B(this);return(0,b.reject)(a),b.promise}}),k(k.S+k.F*(g||!y),s,{resolve:function(a){if(a instanceof v&&z(a.constructor,this))return a;var b=B(this);return(0,b.resolve)(a),b.promise}}),k(k.S+k.F*!(y&&c(46)(function(a){v.all(a).catch(x)})),s,{all:function(a){var b=this,c=B(b),d=c.resolve,e=c.reject,f=D(function(){var c=[],f=0,g=1;o(a,!1,function(a){var h=f++,i=!1;c.push(void 0),g++,b.resolve(a).then(function(a){i||(i=!0,c[h]=a,--g||d(c))},e)}),--g||d(c)});return f&&e(f.error),c.promise},race:function(a){var b=this,c=B(b),d=c.reject,e=D(function(){o(a,!1,function(a){b.resolve(a).then(c.resolve,d)})});return e&&d(e.error),c.promise}})},function(a,b,c){"use strict";var d=c(61)(!0);c(27)(String,"String",function(a){this._t=String(a),this._i=0},function(){var a,b=this._t,c=this._i;return c>=b.length?{value:void 0,done:!0}:(a=d(b,c),this._i+=a.length,{value:a,done:!1})})},function(a,b,c){c(65);for(var d=c(2),e=c(5),f=c(10),g=c(1)("toStringTag"),h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],i=0;i<5;i++){var j=h[i],k=d[j],l=k&&k.prototype;l&&!l[g]&&e(l,g,j),f[j]=f.Array}},function(a,b){a.exports=c(79646)},function(a,b){a.exports=c(55511)}];function e(a){if(f[a])return f[a].exports;var b=f[a]={exports:{},id:a,loaded:!1};return d[a].call(b.exports,b,b.exports,e),b.loaded=!0,b.exports}var f={};return e.m=d,e.c=f,e.p="",e(0)}(c(79646),c(55511))},21350:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>H,GET:()=>F,POST:()=>G});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(55511),m=c(28286),n=c(30869);c(49120);var o=c(54603),p=c(24424);let q=n.h0.appPort,r=null,s=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},t=async()=>{let a=s();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},u=()=>s()[0],v=async()=>i().join(await t(),"configLibrary"),w=async()=>i().join(await v(),"_meta.json"),x=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},y=()=>i().join(x(),"claude_desktop_config.json"),z=async()=>{try{return JSON.parse(await g().readFile(y(),"utf-8"))||{}}catch(a){if("ENOENT"===a.code)return{};throw a}},A=async a=>{await g().mkdir(x(),{recursive:!0}),await g().writeFile(y(),JSON.stringify(a,null,2))},B=async()=>{let a=await z();if(!a.mcpServers||"object"!=typeof a.mcpServers)return;let b=new Set(m.LOCAL_STDIO_PLUGINS.map(a=>a.name));for(let c of Object.keys(a.mcpServers))b.has(c)&&delete a.mcpServers[c];0===Object.keys(a.mcpServers).length&&delete a.mcpServers,await A(a)},C=async()=>{for(let a of[...s(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},D=async a=>{try{return JSON.parse(await g().readFile(a,"utf-8"))}catch(a){if("ENOENT"===a.code)return null;throw a}};async function E(a){let b=i().join(u(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d={};for(let b of a)b?.name&&(d[b.name]=!0);return c.operonSkipMcpApprovals=d,await g().mkdir(u(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(d).length}}async function F(){try{if(!await C())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await D(await w()),b=a?.appliedId||null,c=await v(),d=b?i().join(c,`${b}.json`):null,f=d?await D(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=!!(f?.inferenceProvider==="gateway"&&g),l=new Set(m.LOCAL_STDIO_PLUGINS.map(a=>a.name)),n=j.filter(a=>l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>a.name),o=j.filter(a=>a.custom||!l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/")).map(a=>({name:a.name,url:a.url,transport:a.transport,custom:!0}));return e.NextResponse.json({installed:!0,config:f,hasZevai:k,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,plugins:j.filter(a=>!a.custom&&!(l.has(a.name)&&"string"==typeof a.url&&a.url.includes("/api/mcp/"))).map(a=>{let b=a.toolPolicy?Object.keys(a.toolPolicy):[],c=`${a.name}-`,d=new Set;for(let a of b){let b=a;for(;b.startsWith(c);)b=b.slice(c.length);d.add(b)}let e=m.DEFAULT_PLUGINS.find(b=>b.name===a.name),f=e&&Array.isArray(e.toolNames)?e.toolNames:Array.from(d);return{name:a.name,url:a.url,transport:a.transport,oauth:!!a.oauth,toolNames:f}}),localPlugins:n,customPlugins:o},defaultPlugins:m.DEFAULT_PLUGINS,localStdioPlugins:m.LOCAL_STDIO_PLUGINS})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function G(a){return e.NextResponse.json({error:"Cowork is disabled"},{status:403})}async function H(){try{let a=await D(await w());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await v(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}try{await E([])}catch{}try{await B()}catch{}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,p.D)([F,G,H]),(0,d.A)(F,"00316210d84d98d7ea631efff479cb7d64b79003c1",null),(0,d.A)(G,"407f3b1486d41af4e28f6a72f0e855377d2ecbba1f",null),(0,d.A)(H,"00754d86d6dc6eb036db58421918ad93aeeff37b69",null)},28286:a=>{"use strict";a.exports={DEFAULT_PLUGINS:[{name:"exa",title:"Exa",description:"Real-time web search and code documentation",url:"https://mcp.exa.ai/mcp",transport:"http",oauth:!1,toolNames:["web_search_exa","web_fetch_exa"]},{name:"tavily",title:"Tavily",description:"Real-time web search optimized for LLM agents",url:"https://mcp.tavily.com/mcp",transport:"http",oauth:!0,toolNames:["tavily_search","tavily_extract","tavily_crawl","tavily_map"]}],LOCAL_STDIO_PLUGINS:[{name:"browsermcp",title:"Browser MCP",description:"Control your running Chrome (requires Chrome extension)",extensionUrl:"https://chromewebstore.google.com/detail/browser-mcp-automate-your/bjfgambnhccakkhmkepdoekmckoijdlc",command:"npx",args:["-y","@browsermcp/mcp@latest"],toolNames:["browser_navigate","browser_snapshot","browser_click","browser_type","browser_screenshot","browser_get_console_logs","browser_wait","browser_press_key","browser_go_back","browser_go_forward"]}],ALLOWED_MCP_COMMANDS:new Set(["npx","node","uvx","python","python3","bunx","bun"]),buildManagedMcpServers:function(a){let b=Array.isArray(a)?a:[],c=[],d=new Set;for(let a of b){if(!a?.name||!a?.url||d.has(a.name))continue;d.add(a.name);let b={name:a.name,url:a.url,transport:a.transport||(/\/sse(\b|\/)/i.test(a.url)?"sse":"http")};if(a.oauth&&(b.oauth=!0),Array.isArray(a.toolNames)&&a.toolNames.length>0){let c=`${a.name}-`,d=new Set;for(let b of a.toolNames){if("string"!=typeof b||!b)continue;let a=b;for(;a.startsWith(c);)a=a.slice(c.length);d.add(a)}let e={};for(let a of d)e[a]="allow",e[`${c}${a}`]="allow";b.toolPolicy=e}c.push(b)}return c}}},54603:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.DATA_DIR,"machine-id"),m=h().join(k.DATA_DIR,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.DATA_DIR,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="zevai-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}}};
@@ -1,5 +1,5 @@
1
- exports.id=3949,exports.ids=[3949],exports.modules={12897:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>ay,GET:()=>aw,POST:()=>ax});var d=c(49796),e=c(77598),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(23211),k=c(31421),l=c(73024),m=c(48161),n=c.n(m),o=c(57975),p=c(63294);let q=(0,o.promisify)(k.execFile),r="ZEVAIROUTER_API_KEY",s=`$\{${r}}`,t=Object.freeze(["default","provider","base_url","api_key","api_mode"]);class u extends Error{constructor(a,{code:b="HERMES_SETTINGS_ERROR",status:c=500}={}){super(a),this.name="HermesSettingsError",this.code=b,this.status=c}}let v=a=>{throw new u(a,{code:"INVALID_HERMES_SETTINGS",status:400})};function w(a,b,c){var d;let e=(d=String(a||"").trim(),"~"===d?b:d.startsWith("~/")||d.startsWith("~\\")?c.join(b,d.slice(2)):d);return c.isAbsolute(e)?c.normalize(e):c.resolve(e)}function x({env:a=process.env,platform:b=n().platform(),homedir:c=n().homedir()}={}){let d,e="win32"===b?i().win32:i().posix,f=String(a.HERMES_HOME||"").trim();if(f)d=w(f,c,e);else if("win32"===b){let b=String(a.LOCALAPPDATA||"").trim()||e.join(c,"AppData","Local");d=e.join(w(b,c,e),"hermes")}else d=e.join(c,".hermes");let g=String(a.HERMES_CONFIG||"").trim()?w(a.HERMES_CONFIG,c,e):e.join(d,"config.yaml"),h=String(a.HERMES_ENV||"").trim()?w(a.HERMES_ENV,c,e):e.join(d,".env");return{configDir:d,configPath:g,envPath:h,backupPath:e.join(d,".zevairouter-backup.json")}}function y(a,b){let c=("win32"===b?i().win32:i().posix).resolve(a);return"win32"===b?c.toLowerCase():c}function z(a,b,c){"string"!=typeof a&&v(`${b} must be a string`);let d=a.trim();return d||v(`${b} is required`),(d.length>c||/[\u0000-\u001f\u007f]/.test(d))&&v(`${b} contains unsupported characters`),d}function A(a){let b=(0,p.Tp)(a||"",{keepSourceTokens:!0,prettyErrors:!1,uniqueKeys:!0});if(b.errors.length>0)throw new u("Hermes config.yaml is not valid YAML",{code:"HERMES_CONFIG_INVALID",status:422});if(b.contents||(b.contents=b.createNode({})),!(0,p.jh)(b.contents))throw new u("Hermes config.yaml must contain a top-level mapping",{code:"HERMES_CONFIG_INVALID",status:422});return b}function B(a){try{let b=JSON.stringify(a);if(void 0===b)throw TypeError("not JSON serializable");let c=JSON.parse(b);if(function a(b,c=new Set){return"number"==typeof b?Number.isInteger(b)&&!Number.isSafeInteger(b):!(!b||"object"!=typeof b||c.has(b))&&((c.add(b),Array.isArray(b))?b.some(b=>a(b,c)):Object.values(b).some(b=>a(b,c)))}(a)||!(0,o.isDeepStrictEqual)(a,c))throw TypeError("lossy JSON conversion");return c}catch{throw new u("Hermes model settings cannot be safely backed up",{code:"HERMES_CONFIG_UNSUPPORTED",status:422})}}function C(a){try{return a.toJS({maxAliasCount:100})}catch{throw new u("Hermes config.yaml contains unsupported aliases",{code:"HERMES_CONFIG_UNSUPPORTED",status:422})}}function D(a,b=new Set){return!!(0,p.Vj)(a)||!(!a||"object"!=typeof a||b.has(a))&&(b.add(a),!!Array.isArray(a.items)&&a.items.some(a=>D(a?.key,b)||D(a?.value,b)||D(a,b)))}function E(a){if((0,p.Vj)(a))throw new u("Hermes model aliases cannot be safely updated",{code:"HERMES_CONFIG_UNSUPPORTED",status:422});if(!(0,p.jh)(a)){if(!(0,p.jn)(a)||D(a))throw new u("Hermes model must be a scalar or mapping without aliases",{code:"HERMES_CONFIG_UNSUPPORTED",status:422});return}for(let b of t)if(a.has(b)&&D(a.get(b,!0)))throw new u(`Hermes model.${b} aliases cannot be safely updated`,{code:"HERMES_CONFIG_UNSUPPORTED",status:422})}function F(a){if(!a.has("model"))return{kind:"absent"};let b=a.get("model",!0);E(b);let c=C(a)?.model;if(!(0,p.jh)(b))return{kind:"scalar",value:B(c)};let d={};for(let a of t){let e=b.has(a);d[a]={exists:e,...e?{value:B(c?.[a])}:{}}}return{kind:"map",fields:d}}function G(a){var b;return(b=a?.key)&&"function"==typeof b.toJSON?b.toJSON():b}function H(a,b,c){let d=a.get(b,!0),e="function"==typeof a.createNode?a.createNode(c):c;a.set(b,e);let f=a.get(b,!0);if(d&&f&&d!==f)for(let a of["anchor","commentBefore","comment","spaceBefore"])void 0!==d[a]&&(f[a]=d[a]);return f}function I(a,b,c){let d=A(a),e=d.get("model",!0);if(!function(a,b,c){if(!(0,p.jh)(b)||c?.kind!=="map")return!1;try{E(b)}catch{return!1}let d=C(a)?.model;return t.every(a=>{let e=c.fields?.[a];return!!e&&b.has(a)===e.exists&&(!e.exists||(0,o.isDeepStrictEqual)(B(d?.[a]),e.value))})}(d,e,c))throw new u("Hermes model settings changed after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});if(b?.kind==="map")for(let a of t){let c=b.fields?.[a];c?.exists?H(e,a,c.value):e.delete(a)}else if(b?.kind==="scalar"){if(e.items.map(G).filter(a=>!t.includes(a)).length>0)throw new u("Hermes model settings gained new fields after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});H(d,"model",b.value)}else if(b?.kind==="absent"){for(let a of t)e.delete(a);0===e.items.length&&d.delete("model")}else throw new u("Hermes backup contains an unsupported model snapshot",{code:"HERMES_BACKUP_INVALID",status:409});return d.toString()}function J(a){return a&&a.match(/[^\r\n]*(?:\r\n|\n|\r|$)/g)?.filter(Boolean)||[]}function K(a){return a.replace(/(?:\r\n|\n|\r)$/,"")}function L(a){return a.slice(K(a).length)}function M(a){let b,c=(b=RegExp(`^[ \\t]*(?:export[ \\t]+)?${r}[ \\t]*=`),J(a).map((a,b)=>({line:a,index:b,content:K(a)})).filter(({content:a})=>b.test(a)));if(c.length>1)throw new u(`${r} is defined more than once`,{code:"HERMES_ENV_INVALID",status:422});return c[0]||null}function N(a){return(0,e.createHash)("sha256").update(a).digest("hex")}function O(a,b,c){let d=M(a);if(!d||N(d.content)!==c)throw new u("Hermes API key settings changed after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});let e=J(a);if(b?.exists&&"string"==typeof b.line)e[d.index]=`${b.line}${L(d.line)}`;else if(b?.exists===!1)e.splice(d.index,1);else throw new u("Hermes backup contains an unsupported environment snapshot",{code:"HERMES_BACKUP_INVALID",status:409});return e.join("")}function P(a){return!!a&&"object"==typeof a&&("absent"===a.kind||("scalar"===a.kind?Object.hasOwn(a,"value"):"map"===a.kind&&!!a.fields&&t.every(b=>{let c=a.fields[b];return c&&"boolean"==typeof c.exists&&(!c.exists||Object.hasOwn(c,"value"))})))}function Q(a){return null===a||Number.isInteger(a)&&a>=0&&a<=511}function R(a,{configText:b,envText:c,configPath:d,envPath:e,configMode:f,envMode:g}){if(a.paths.configPath!==d||a.paths.envPath!==e||null!==a.applied.configMode&&a.applied.configMode!==f||null!==a.applied.envMode&&a.applied.envMode!==g)return!1;try{return I(b,a.before.model,a.applied.model),O(c,a.before.env,a.applied.envHash),!0}catch{return!1}}function S(a){return String(a||"").replace(/\x1b\[[0-?]*[ -/]*[@-~]/g,"")}function T(a){let b=String(a||"").match(/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/);if(!b)return!1;let c=Number(b[1]),d=Number(b[2]),e=Number(b[3]);return c>0||d>4||4===d&&e>0||4===d&&0===e&&!b[4]}async function U(a,b){return q(a,b,{windowsHide:!0,timeout:5e3,maxBuffer:65536})}async function V(a,b){return q(a,["config",b],{windowsHide:!0,timeout:5e3,maxBuffer:65536})}async function W({installation:a,fallbackPaths:b=x(),platform:c=n().platform(),runConfigCommand:d=V}={}){if(!a?.installed||!a.binaryPath)return b;let e=async(b,e)=>{let f;try{f=await d(a.binaryPath,b)}catch(b){let a;if(a=S(`${b?.stdout||""}
1
+ "use strict";exports.id=2897,exports.ids=[2897],exports.modules={12897:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>ay,GET:()=>aw,POST:()=>ax});var d=c(49796),e=c(77598),f=c(51455),g=c.n(f),h=c(76760),i=c.n(h),j=c(23211),k=c(31421),l=c(73024),m=c(48161),n=c.n(m),o=c(57975),p=c(63294);let q=(0,o.promisify)(k.execFile),r="ZEVAIROUTER_API_KEY",s=`$\{${r}}`,t=Object.freeze(["default","provider","base_url","api_key","api_mode"]);class u extends Error{constructor(a,{code:b="HERMES_SETTINGS_ERROR",status:c=500}={}){super(a),this.name="HermesSettingsError",this.code=b,this.status=c}}let v=a=>{throw new u(a,{code:"INVALID_HERMES_SETTINGS",status:400})};function w(a,b,c){var d;let e=(d=String(a||"").trim(),"~"===d?b:d.startsWith("~/")||d.startsWith("~\\")?c.join(b,d.slice(2)):d);return c.isAbsolute(e)?c.normalize(e):c.resolve(e)}function x({env:a=process.env,platform:b=n().platform(),homedir:c=n().homedir()}={}){let d,e="win32"===b?i().win32:i().posix,f=String(a.HERMES_HOME||"").trim();if(f)d=w(f,c,e);else if("win32"===b){let b=String(a.LOCALAPPDATA||"").trim()||e.join(c,"AppData","Local");d=e.join(w(b,c,e),"hermes")}else d=e.join(c,".hermes");let g=String(a.HERMES_CONFIG||"").trim()?w(a.HERMES_CONFIG,c,e):e.join(d,"config.yaml"),h=String(a.HERMES_ENV||"").trim()?w(a.HERMES_ENV,c,e):e.join(d,".env");return{configDir:d,configPath:g,envPath:h,backupPath:e.join(d,".zevairouter-backup.json")}}function y(a,b){let c=("win32"===b?i().win32:i().posix).resolve(a);return"win32"===b?c.toLowerCase():c}function z(a,b,c){"string"!=typeof a&&v(`${b} must be a string`);let d=a.trim();return d||v(`${b} is required`),(d.length>c||/[\u0000-\u001f\u007f]/.test(d))&&v(`${b} contains unsupported characters`),d}function A(a){let b=(0,p.Tp)(a||"",{keepSourceTokens:!0,prettyErrors:!1,uniqueKeys:!0});if(b.errors.length>0)throw new u("Hermes config.yaml is not valid YAML",{code:"HERMES_CONFIG_INVALID",status:422});if(b.contents||(b.contents=b.createNode({})),!(0,p.jh)(b.contents))throw new u("Hermes config.yaml must contain a top-level mapping",{code:"HERMES_CONFIG_INVALID",status:422});return b}function B(a){try{let b=JSON.stringify(a);if(void 0===b)throw TypeError("not JSON serializable");let c=JSON.parse(b);if(function a(b,c=new Set){return"number"==typeof b?Number.isInteger(b)&&!Number.isSafeInteger(b):!(!b||"object"!=typeof b||c.has(b))&&((c.add(b),Array.isArray(b))?b.some(b=>a(b,c)):Object.values(b).some(b=>a(b,c)))}(a)||!(0,o.isDeepStrictEqual)(a,c))throw TypeError("lossy JSON conversion");return c}catch{throw new u("Hermes model settings cannot be safely backed up",{code:"HERMES_CONFIG_UNSUPPORTED",status:422})}}function C(a){try{return a.toJS({maxAliasCount:100})}catch{throw new u("Hermes config.yaml contains unsupported aliases",{code:"HERMES_CONFIG_UNSUPPORTED",status:422})}}function D(a,b=new Set){return!!(0,p.Vj)(a)||!(!a||"object"!=typeof a||b.has(a))&&(b.add(a),!!Array.isArray(a.items)&&a.items.some(a=>D(a?.key,b)||D(a?.value,b)||D(a,b)))}function E(a){if((0,p.Vj)(a))throw new u("Hermes model aliases cannot be safely updated",{code:"HERMES_CONFIG_UNSUPPORTED",status:422});if(!(0,p.jh)(a)){if(!(0,p.jn)(a)||D(a))throw new u("Hermes model must be a scalar or mapping without aliases",{code:"HERMES_CONFIG_UNSUPPORTED",status:422});return}for(let b of t)if(a.has(b)&&D(a.get(b,!0)))throw new u(`Hermes model.${b} aliases cannot be safely updated`,{code:"HERMES_CONFIG_UNSUPPORTED",status:422})}function F(a){if(!a.has("model"))return{kind:"absent"};let b=a.get("model",!0);E(b);let c=C(a)?.model;if(!(0,p.jh)(b))return{kind:"scalar",value:B(c)};let d={};for(let a of t){let e=b.has(a);d[a]={exists:e,...e?{value:B(c?.[a])}:{}}}return{kind:"map",fields:d}}function G(a){var b;return(b=a?.key)&&"function"==typeof b.toJSON?b.toJSON():b}function H(a,b,c){let d=a.get(b,!0),e="function"==typeof a.createNode?a.createNode(c):c;a.set(b,e);let f=a.get(b,!0);if(d&&f&&d!==f)for(let a of["anchor","commentBefore","comment","spaceBefore"])void 0!==d[a]&&(f[a]=d[a]);return f}function I(a,b,c){let d=A(a),e=d.get("model",!0);if(!function(a,b,c){if(!(0,p.jh)(b)||c?.kind!=="map")return!1;try{E(b)}catch{return!1}let d=C(a)?.model;return t.every(a=>{let e=c.fields?.[a];return!!e&&b.has(a)===e.exists&&(!e.exists||(0,o.isDeepStrictEqual)(B(d?.[a]),e.value))})}(d,e,c))throw new u("Hermes model settings changed after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});if(b?.kind==="map")for(let a of t){let c=b.fields?.[a];c?.exists?H(e,a,c.value):e.delete(a)}else if(b?.kind==="scalar"){if(e.items.map(G).filter(a=>!t.includes(a)).length>0)throw new u("Hermes model settings gained new fields after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});H(d,"model",b.value)}else if(b?.kind==="absent"){for(let a of t)e.delete(a);0===e.items.length&&d.delete("model")}else throw new u("Hermes backup contains an unsupported model snapshot",{code:"HERMES_BACKUP_INVALID",status:409});return d.toString()}function J(a){return a&&a.match(/[^\r\n]*(?:\r\n|\n|\r|$)/g)?.filter(Boolean)||[]}function K(a){return a.replace(/(?:\r\n|\n|\r)$/,"")}function L(a){return a.slice(K(a).length)}function M(a){let b,c=(b=RegExp(`^[ \\t]*(?:export[ \\t]+)?${r}[ \\t]*=`),J(a).map((a,b)=>({line:a,index:b,content:K(a)})).filter(({content:a})=>b.test(a)));if(c.length>1)throw new u(`${r} is defined more than once`,{code:"HERMES_ENV_INVALID",status:422});return c[0]||null}function N(a){return(0,e.createHash)("sha256").update(a).digest("hex")}function O(a,b,c){let d=M(a);if(!d||N(d.content)!==c)throw new u("Hermes API key settings changed after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});let e=J(a);if(b?.exists&&"string"==typeof b.line)e[d.index]=`${b.line}${L(d.line)}`;else if(b?.exists===!1)e.splice(d.index,1);else throw new u("Hermes backup contains an unsupported environment snapshot",{code:"HERMES_BACKUP_INVALID",status:409});return e.join("")}function P(a){return!!a&&"object"==typeof a&&("absent"===a.kind||("scalar"===a.kind?Object.hasOwn(a,"value"):"map"===a.kind&&!!a.fields&&t.every(b=>{let c=a.fields[b];return c&&"boolean"==typeof c.exists&&(!c.exists||Object.hasOwn(c,"value"))})))}function Q(a){return null===a||Number.isInteger(a)&&a>=0&&a<=511}function R(a,{configText:b,envText:c,configPath:d,envPath:e,configMode:f,envMode:g}){if(a.paths.configPath!==d||a.paths.envPath!==e||null!==a.applied.configMode&&a.applied.configMode!==f||null!==a.applied.envMode&&a.applied.envMode!==g)return!1;try{return I(b,a.before.model,a.applied.model),O(c,a.before.env,a.applied.envHash),!0}catch{return!1}}function S(a){return String(a||"").replace(/\x1b\[[0-?]*[ -/]*[@-~]/g,"")}function T(a){let b=String(a||"").match(/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?(?:\+[0-9A-Za-z.-]+)?$/);if(!b)return!1;let c=Number(b[1]),d=Number(b[2]),e=Number(b[3]);return c>0||d>4||4===d&&e>0||4===d&&0===e&&!b[4]}async function U(a,b){return q(a,b,{windowsHide:!0,timeout:5e3,maxBuffer:65536})}async function V(a,b){return q(a,["config",b],{windowsHide:!0,timeout:5e3,maxBuffer:65536})}async function W({installation:a,fallbackPaths:b=x(),platform:c=n().platform(),runConfigCommand:d=V}={}){if(!a?.installed||!a.binaryPath)return b;let e=async(b,e)=>{let f;try{f=await d(a.binaryPath,b)}catch(b){let a;if(a=S(`${b?.stdout||""}
2
2
  ${b?.stderr||""}
3
3
  ${b?.message||""}`),/(?:invalid choice|unknown (?:command|subcommand)|unrecognized (?:argument|command)|no such command)/i.test(a))return null;throw new u(`Failed to discover the active Hermes ${e} path`,{code:"HERMES_PATH_DISCOVERY_FAILED",status:422})}return function(a,{platform:b,label:c}){let d="win32"===b?i().win32:i().posix,e=String(a??""),f=e.endsWith("\r\n")?e.slice(0,-2):e.endsWith("\n")?e.slice(0,-1):e;if(!(f.length>0&&f.length<=32768&&f===f.trim()&&!/[\u0000-\u001f\u007f]/.test(f)&&d.isAbsolute(f)))throw new u(`Hermes returned an invalid ${c} path`,{code:"HERMES_PATH_INVALID",status:422});return d.normalize(f)}(f?.stdout,{platform:c,label:e})},f=await e("path","config");if(!f)return b;let g=await e("env-path","environment");if(!g)return b;let h="win32"===c?i().win32:i().posix;if(y(h.dirname(f),c)!==y(h.dirname(g),c))throw new u("Hermes config and environment paths use different profiles",{code:"HERMES_PATH_INVALID",status:422});return{...b,configDir:h.dirname(f),configPath:f,envPath:g}}async function X({env:a=process.env,platform:b=n().platform(),homedir:c=n().homedir(),access:d=g().access,realpath:e=g().realpath,runVersion:f=U}={}){let h="win32"===b?l.constants.F_OK:l.constants.X_OK;for(let g of function({env:a,platform:b,homedir:c}){let d="win32"===b?i().win32:i().posix,e=x({env:a,platform:b,homedir:c}).configDir,f="win32"===b?["hermes.exe","hermes"]:["hermes"],g=String(a.PATH||"").split(d.delimiter).map(a=>a.trim().replace(/^"|"$/g,"")).filter(Boolean).flatMap(a=>f.map(b=>d.resolve(a,b)));return"win32"===b?g.push(d.join(e,"hermes-agent","venv","Scripts","hermes.exe")):(g.push(d.join(e,"hermes-agent","venv","bin","hermes")),g.push(d.join(c,".local","bin","hermes")),g.push("/usr/local/bin/hermes"),a.PREFIX&&g.push(d.join(a.PREFIX,"bin","hermes"))),[...new Set(g)]}({env:a,platform:b,homedir:c})){try{await d(g,h)}catch{continue}for(let a of[["--version"],["version"]])try{let b=await f(g,a),c=function(a){let b=S(a).match(/(?:^|\r?\n)\s*Hermes Agent\s+v?(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)(?:\s|$)/i);return b?.[1]||null}(`${b?.stdout||""}
4
4
  ${b?.stderr||""}`);if(!c)continue;let d=g;try{d=await e(g)}catch{}return{installed:!0,binaryPath:d,version:c}}catch{}}return{installed:!1,binaryPath:null,version:null}}var Y=c(30869),Z=c(24424);let $="zevairouter-host",_=Promise.resolve();function aa(a){let b=String(a??"");if(!/^[0-9]+$/.test(b))return null;let c=Number(b);return Number.isSafeInteger(c)&&c>=1&&c<=65535?c:null}function ab(a){let b=_.then(a,a);return _=b.catch(()=>{}),b}function ac(a,b){return{installationTarget:$,platform:process.platform,configDir:a.configDir,configPath:a.configPath,envPath:a.envPath,binaryPath:b?.binaryPath||null,version:b?.version||null,supported:!!(b?.installed&&T(b.version)),localBaseUrl:function(){let a=aa(process.env.PORT)??aa(Y.h0.appPort);if(null===a)throw Error("ZevaiRouter app port configuration is invalid");return`http://127.0.0.1:${a}/v1`}()}}function ad(a,b=!1){return{available:a,restorable:b,conflict:a&&!b}}function ae(a,b){return a instanceof u?j.NextResponse.json({error:a.message,code:a.code,installationTarget:$},{status:a.status}):a instanceof SyntaxError?j.NextResponse.json({error:"Request body must be valid JSON",code:"INVALID_HERMES_SETTINGS",installationTarget:$},{status:400}):(console.error(b,a instanceof Error?a.message:a),j.NextResponse.json({error:b,code:"HERMES_IO_ERROR",installationTarget:$},{status:500}))}async function af(a,b){let c;try{let d;c=await g().open(a,"r");let e=await c.stat();if(!e.isFile())throw new u("Hermes settings path is not a regular file",{code:"HERMES_PATH_INVALID",status:422});if(e.size>b)throw new u("Hermes settings file is too large to update safely",{code:"HERMES_FILE_TOO_LARGE",status:422});let f=Buffer.allocUnsafe(b+1),h=0;for(;h<f.length;){let{bytesRead:a}=await c.read(f,h,f.length-h,h);if(0===a)break;h+=a}if(h>b)throw new u("Hermes settings file is too large to update safely",{code:"HERMES_FILE_TOO_LARGE",status:422});let i=f.subarray(0,h);try{d=new TextDecoder("utf-8",{fatal:!0}).decode(i)}catch{throw new u("Hermes settings file is not valid UTF-8",{code:"HERMES_FILE_ENCODING_INVALID",status:422})}return{exists:!0,text:d,mode:511&e.mode,uid:"win32"===process.platform?null:e.uid,gid:"win32"===process.platform?null:e.gid}}catch(a){if(a?.code==="ENOENT")return{exists:!1,text:"",mode:null,uid:null,gid:null};throw a}finally{c&&await c.close().catch(()=>{})}}async function ag(a){try{let b=await g().stat(a,{bigint:!0});if(!b.isFile())throw new u("Hermes backup path is not a regular file",{code:"HERMES_PATH_INVALID",status:422});return{exists:!0,dev:b.dev,ino:b.ino,size:b.size,mode:b.mode,uid:b.uid,gid:b.gid,mtimeNs:b.mtimeNs,ctimeNs:b.ctimeNs}}catch(a){if(a?.code==="ENOENT")return{exists:!1};throw a}}async function ah(a,b){let c=await ag(a);if(!["exists","dev","ino","size","mode","uid","gid","mtimeNs","ctimeNs"].every(a=>c[a]===b[a]))throw new u("Hermes backup changed while it was being discarded",{code:"HERMES_CONFIG_CHANGED",status:409})}async function ai(a){let b;if("win32"!==process.platform)try{b=await g().open(a,"r"),await b.sync()}catch(a){if(!["EBADF","EINVAL","ENOTSUP"].includes(a?.code))throw a}finally{b&&await b.close().catch(()=>{})}}async function aj(a,b,c,{uid:d=null,gid:f=null}={}){let h,j=i().dirname(a);await g().mkdir(j,{recursive:!0,mode:448});let k=i().join(j,`.${i().basename(a)}.${process.pid}.${(0,e.randomUUID)()}.tmp`);try{h=await g().open(k,"wx",c),await h.writeFile(b,"utf8"),"win32"!==process.platform&&Number.isInteger(d)&&Number.isInteger(f)&&(d!==process.getuid()||f!==process.getgid())&&await h.chown(d,f),await h.chmod(c),await h.sync(),await h.close(),h=null,await g().rename(k,a),await ai(j)}finally{h&&await h.close().catch(()=>{}),await g().unlink(k).catch(()=>{})}}async function ak(a){try{await g().unlink(a),await ai(i().dirname(a))}catch(a){if(a?.code!=="ENOENT")throw a}}async function al(a,b){let{exists:c,text:d,mode:e}=b;c?await aj(a,d,e??384,b):await ak(a)}async function am(a,b,c){let d=await af(a,c);if(d.exists!==b.exists||d.text!==b.text||d.mode!==b.mode||d.uid!==b.uid||d.gid!==b.gid)throw new u("Hermes settings changed while the operation was in progress",{code:"HERMES_CONFIG_CHANGED",status:409})}function an(a,b){return a.exists===b.exists&&(!a.exists||a.text===b.text&&a.mode===b.mode&&(null===b.uid||a.uid===b.uid)&&(null===b.gid||a.gid===b.gid))}function ao(a,b){return null!==a?a:"win32"===process.platform?null:b()}async function ap(a,b,c,d){try{let e=await af(a,d),f=an(e,c),g=an(e,b);return f&&await al(a,b),f||g}catch{return!1}}async function aq(a){let b=await af(a.backupPath,262144);return{snapshot:b,backup:b.exists?function(a){let b;try{b=JSON.parse(a)}catch{throw new u("Hermes ZevaiRouter backup is not valid JSON",{code:"HERMES_BACKUP_INVALID",status:409})}if(!(b?.version===1&&b.paths&&"string"==typeof b.paths.configPath&&"string"==typeof b.paths.envPath&&"boolean"==typeof b.before?.configFileExisted&&"boolean"==typeof b.before?.envFileExisted&&Q(b.before.configMode)&&Q(b.before.envMode)&&P(b.before.model)&&"boolean"==typeof b.before?.env?.exists&&(!b.before.env.exists||"string"==typeof b.before.env.line)&&P(b.applied?.model)&&"string"==typeof b.applied?.envHash&&Q(b.applied?.configMode)&&Q(b.applied?.envMode)))throw new u("Hermes ZevaiRouter backup has an unsupported format",{code:"HERMES_BACKUP_INVALID",status:409});return b}(b.text):null}}async function ar(a,b,c){try{let{backup:d}=await aq(a);if(!d)return ad(!1);let e=R(d,{configText:b.text,envText:c.text,configPath:a.configPath,envPath:a.envPath,configMode:b.mode,envMode:c.mode});return ad(!0,e)}catch{return ad(!0,!1)}}function as(a){if(!function(a,{platform:b=n().platform()}={}){let c=[a.configPath,a.envPath,a.backupPath].map(a=>y(a,b));return new Set(c).size===c.length}(a))throw new u("Hermes config, environment, and backup paths must be different",{code:"HERMES_PATH_INVALID",status:422})}async function at(a){try{return await g().realpath(a)}catch(a){if(a?.code!=="ENOENT")throw a}try{if((await g().lstat(a)).isSymbolicLink())throw new u("Hermes settings path is a dangling symbolic link",{code:"HERMES_PATH_INVALID",status:422})}catch(a){if(a?.code!=="ENOENT")throw a}let b=i().dirname(a),c=[i().basename(a)];for(;;){try{let a=await g().realpath(b);return i().join(a,...c)}catch(a){if(a?.code!=="ENOENT")throw a}let d=i().dirname(b);if(d===b)return a;c.unshift(i().basename(b)),b=d}}async function au(a){let[b,c,d]=await Promise.all([at(a.configPath),at(a.envPath),at(a.backupPath)]);return{...a,configDir:i().dirname(b),configPath:b,envPath:c,backupPath:d}}async function av({useBackupPathsWhenUnavailable:a=!1}={}){let b,c=await X(),d=x();if(c.installed)b=await W({installation:c,fallbackPaths:d});else if(a){let a=await au(d);try{let{backup:c}=await aq(a);b=c?function(a,b){if([b?.paths?.configPath,b?.paths?.envPath].some(a=>"string"!=typeof a||!i().isAbsolute(a)||/[\u0000-\u001f\u007f]/.test(a)))throw new u("Hermes backup contains invalid settings paths",{code:"HERMES_BACKUP_INVALID",status:409});return{...a,configDir:i().dirname(b.paths.configPath),configPath:b.paths.configPath,envPath:b.paths.envPath}}(d,c):d}catch{b=d}}else b=d;let e=await au(b);return as(e),{installation:c,paths:e}}async function aw(){try{let{installation:a,paths:b}=await av({useBackupPathsWhenUnavailable:!0}),c=await af(b.configPath,5242880),d=await af(b.envPath,1048576),e=await ar(b,c,d);if(!a.installed)return j.NextResponse.json({installed:!1,...ac(b,a),settings:{model:null},hasZevai:!1,backup:e,message:"Hermes Agent is not installed on the ZevaiRouter host"});let f=function(a){let b=A(a),c=b.get("model",!0);if(!(0,p.jh)(c))return{model:null,hasZevai:!1};let d=C(b)?.model,e=a=>{let b=d?.[a];return"string"==typeof b?b:null},f=e("provider"),g=e("base_url"),h=e("api_key"),i=e("api_mode"),j=null;try{let a=new URL(g);["http:","https:"].includes(a.protocol)&&(a.username="",a.password="",a.search="",a.hash="",j=a.toString().replace(/\/$/,""))}catch{}let k={default:e("default"),provider:f,base_url:j,api_mode:i},l=!1;try{l=["http:","https:"].includes(new URL(g).protocol)}catch{}return{model:k,hasZevai:("custom"===f||f?.startsWith("custom:"))&&l&&h===s&&"chat_completions"===i}}(c.text);return j.NextResponse.json({installed:!0,...ac(b,a),settings:{model:f.model},hasZevai:f.hasZevai,backup:e})}catch(a){return ae(a,"Failed to inspect Hermes settings on the ZevaiRouter host")}}async function ax(a){return ab(async()=>{try{var b;let c=function(a){let b;(!a||"object"!=typeof a||Array.isArray(a))&&v("Request body must be an object");let c=z(a.model,"model",512);(c.toLowerCase().endsWith("/model-id")||/[<>]/.test(c))&&v("model must be a real model identifier, not a placeholder");let d=z(a.apiKey,"apiKey",8192);/^[A-Za-z0-9._~+/=@:%-]+$/.test(d)||v("apiKey contains unsupported characters");let e=z(a.baseUrl,"baseUrl",2048);try{b=new URL(e)}catch{v("baseUrl must be a valid URL")}b&&["http:","https:"].includes(b.protocol)&&b.hostname||v("baseUrl must use http or https"),(b.username||b.password||b.search||b.hash)&&v("baseUrl must not include credentials, a query, or a fragment");let f=b.pathname.replace(/\/+$/,"");return b.pathname=/\/v1$/i.test(f)?`${f.slice(0,-3)}/v1`:`${f}/v1`,{model:c,apiKey:d,baseUrl:b.toString().replace(/\/$/,"")}}(await a.json()),{installation:d,paths:e}=await av();if(!d.installed)throw new u("Hermes Agent is not installed on the ZevaiRouter host",{code:"HERMES_NOT_INSTALLED",status:409});if(!T(d.version))throw new u("Hermes Agent 0.4.0 or newer is required for ZevaiRouter-managed API keys",{code:"HERMES_VERSION_UNSUPPORTED",status:422});let f=await af(e.configPath,5242880),g=await af(e.envPath,1048576),h=await aq(e),i=h.backup;if(i&&!R(i,{configText:f.text,envText:g.text,configPath:e.configPath,envPath:e.envPath,configMode:f.mode,envMode:g.mode}))throw new u("Hermes settings changed after the previous ZevaiRouter Apply; reset or reconcile them first",{code:"HERMES_CONFIG_CHANGED",status:409});let k=function(a,{model:b,baseUrl:c}){let d=A(a),e=F(d),f=d.get("model",!0);for(let[a,e]of((0,p.jh)(f)||(f=H(d,"model",{})),Object.entries({default:b,provider:"custom",base_url:c,api_key:s,api_mode:"chat_completions"})))H(f,a,e);return{text:d.toString(),before:e,applied:F(d)}}(f.text,c),l=function(a,b){let c=M(a),d=c?{exists:!0,line:c.content}:{exists:!1},e=`${r}=${b}`,f=J(a);if(c)f[c.index]=`${e}${L(c.line)}`;else{if(f.length>0&&!/(?:\r\n|\n|\r)$/.test(f.at(-1))){let b=a.includes("\r\n")?"\r\n":"\n";f[f.length-1]+=b}let b=a.includes("\r\n")?"\r\n":"\n";f.push(`${e}${b}`)}return{text:f.join(""),before:d,appliedHash:N(e)}}(g.text,c.apiKey),m=(b=function({paths:a,priorBackup:b=null,configFileExisted:c,envFileExisted:d,configMode:e,envMode:f,configBefore:g,envBefore:h,configApplied:i,envAppliedHash:j,configAppliedMode:k,envAppliedMode:l,now:m=new Date}){return{version:1,createdAt:b?.createdAt||m.toISOString(),updatedAt:m.toISOString(),paths:{configPath:a.configPath,envPath:a.envPath},before:b?.before||{configFileExisted:c,envFileExisted:d,configMode:e,envMode:f,model:g,env:h},applied:{model:i,envHash:j,configMode:k,envMode:l}}}({paths:e,priorBackup:i,configFileExisted:f.exists,envFileExisted:g.exists,configMode:f.mode,envMode:g.mode,configBefore:k.before,envBefore:l.before,configApplied:k.applied,envAppliedHash:l.appliedHash,configAppliedMode:"win32"===process.platform?null:f.mode??384,envAppliedMode:"win32"===process.platform?null:384}),`${JSON.stringify(b,null,2)}
5
- `);if(Buffer.byteLength(m,"utf8")>262144)throw new u("Hermes managed settings are too large to back up safely",{code:"HERMES_BACKUP_TOO_LARGE",status:422});await am(e.configPath,f,5242880),await am(e.envPath,g,1048576),await am(e.backupPath,h.snapshot,262144);let n={exists:!0,text:m,mode:384,uid:ao(h.snapshot.uid,()=>process.getuid()),gid:ao(h.snapshot.gid,()=>process.getgid())},o={exists:!0,text:k.text,mode:f.mode??384,uid:ao(f.uid,()=>process.getuid()),gid:ao(f.gid,()=>process.getgid())},q={exists:!0,text:l.text,mode:384,uid:ao(g.uid,()=>process.getuid()),gid:ao(g.gid,()=>process.getgid())};try{await al(e.backupPath,n),await al(e.configPath,o),await al(e.envPath,q)}catch(d){let a=await ap(e.envPath,g,q,1048576),b=await ap(e.configPath,f,o,5242880),c=!!a&&!!b&&await ap(e.backupPath,h.snapshot,n,262144);throw a&&b&&c||console.error("Hermes Apply rollback could not safely restore every file"),d}return j.NextResponse.json({success:!0,message:"Hermes settings applied on the ZevaiRouter host",...ac(e,d),backup:ad(!0,!0)})}catch(a){return ae(a,"Failed to update Hermes settings on the ZevaiRouter host")}})}async function ay(a){return ab(async()=>{try{if(a?.url&&"1"===new URL(a.url,"http://localhost").searchParams.get("discard")){let a=await au(x());as(a);let b=await ag(a.backupPath);if(!b.exists)throw new u("No ZevaiRouter Hermes backup is available to discard",{code:"HERMES_BACKUP_NOT_FOUND",status:404});return await ah(a.backupPath,b),await ak(a.backupPath),j.NextResponse.json({success:!0,discarded:!0,message:"Hermes backup discarded; config and environment settings were not changed",installationTarget:$,configPath:a.configPath,envPath:a.envPath,backup:ad(!1)})}let{paths:b}=await av({useBackupPathsWhenUnavailable:!0}),c=await af(b.configPath,5242880),d=await af(b.envPath,1048576),e=await aq(b);if(!e.backup)throw new u("No ZevaiRouter Hermes backup is available to restore",{code:"HERMES_BACKUP_NOT_FOUND",status:404});let f=e.backup;if(!R(f,{configText:c.text,envText:d.text,configPath:b.configPath,envPath:b.envPath,configMode:c.mode,envMode:d.mode}))throw new u("Hermes managed settings changed after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});let g=I(c.text,f.before.model,f.applied.model),h=O(d.text,f.before.env,f.applied.envHash),i={exists:f.before.configFileExisted||"{}"!==g.trim(),text:g,mode:f.before.configMode??384,uid:c.uid,gid:c.gid},k={exists:f.before.envFileExisted||h.trim().length>0,text:h,mode:f.before.envMode??384,uid:d.uid,gid:d.gid};await am(b.configPath,c,5242880),await am(b.envPath,d,1048576),await am(b.backupPath,e.snapshot,262144);try{await al(b.configPath,i),await al(b.envPath,k),await ak(b.backupPath)}catch(f){let a=await ap(b.envPath,d,k,1048576),e=await ap(b.configPath,c,i,5242880);throw a&&e||console.error("Hermes Reset rollback could not safely restore every file"),f}return j.NextResponse.json({success:!0,message:"Previous Hermes settings restored on the ZevaiRouter host",installationTarget:$,configPath:b.configPath,envPath:b.envPath,backup:ad(!1)})}catch(b){let a=ae(b,"Failed to restore Hermes settings on the ZevaiRouter host");if(b instanceof u&&"HERMES_CONFIG_CHANGED"===b.code)return j.NextResponse.json({error:b.message,code:b.code,installationTarget:$,backup:ad(!0,!1)},{status:b.status});return a}})}(0,Z.D)([aw,ax,ay]),(0,d.A)(aw,"000e609a3cf56223ed4e071b665f752211f4cf3934",null),(0,d.A)(ax,"40817a2eba7aa7ca5b25fe214c5409bb088c6268f1",null),(0,d.A)(ay,"40d6a4a5dbcffff5e23b741c14ece5bbde2377f15d",null)},30869:(a,b,c)=>{"use strict";c.d(b,{UY:()=>i,X3:()=>k,eh:()=>f.eh,fg:()=>e.fg,h0:()=>h,oc:()=>j,vQ:()=>g});var d=c(39006),e=c(75681),f=c(81329);let g={name:"ZevaiRouter",description:"AI Infrastructure Management",version:d.version},h={npmPackageName:"zevairouter",installCmd:"npm i -g zevairouter",installCmdLatest:"npm i -g zevairouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:1997},i={maxLines:200,pollIntervalMs:1e3},j={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}},k={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},39006:a=>{"use strict";a.exports=JSON.parse('{"name":"zevairouter","version":"1.1.45","description":"Self-hosted AI router: many providers, one OpenAI-compatible /v1 endpoint and dashboard","bin":{"zevai":"cli/cli.js"},"files":["cli/cli.js","cli/app/","cli/hooks/","cli/src/","cli/package.json","cli/README.md","cli/LICENSE","scripts/start-standalone.mjs","scripts/gflow-reply-capture.py","scripts/flow-vps-setup.sh","skills/","README.md","README.zh-CN.md","DOCKER.md","LICENSE","CHANGELOG.md"],"scripts":{"dev":"next dev --webpack --port 1997","build":"node scripts/build-app.mjs","start":"node ./scripts/start-standalone.mjs","dev:bun":"bun --bun next dev --webpack --port 1997","build:bun":"bun --bun next build --webpack","start:bun":"bun ./.next/standalone/server.js","lint":"eslint .","test":"vitest run --config tests/vitest.config.js","build:cli":"node cli/scripts/build-cli.js","audit:package":"node cli/scripts/audit-package.mjs","smoke:package":"node cli/scripts/smoke-package.mjs","verify:mobile-scroll":"node cli/scripts/verify-dashboard-mobile-scroll.mjs","candidate:build":"node cli/scripts/local-candidate.mjs build","candidate:install":"node cli/scripts/local-candidate.mjs install","candidate:status":"node cli/scripts/local-candidate.mjs status","candidate:rollback":"node cli/scripts/local-candidate.mjs rollback","release":"node cli/scripts/release.js","prepack":"npm run build:cli && npm run audit:package","postinstall":"node cli/hooks/postinstall.js"},"dependencies":{"@node-saml/node-saml":"5.1.0","next":"16.4.2","node-machine-id":"1.1.12","react":"19.2.4","react-dom":"19.2.4","sql.js":"1.14.1","yaml":"2.9.0"},"comment_optional_runtime":"Optional packages are installed into ~/.zevai/runtime instead of the published tarball. Automation uses CloakBrowser with playwright-core; ZEVAI_MINIMAL_POSTINSTALL=1 skips its browser download. Other lazy runtimes are better-sqlite3, node-pty, and systray2.","overrides":{"body-parser":"^2.3.0","brace-expansion":"5.0.12","dompurify":"^3.4.12","ip-address":"^10.4.0","js-yaml":"4.3.2","nanoid":"^3.3.18","postcss":"^8.5.10","sharp":"0.35.5"},"comment_overrides":"Security floors for transitive dependencies. ESLint\'s legacy minimatch is a private, source-pinned 3.1.5 compatibility package backed by brace-expansion 5.0.9; modern minimatch and nanoid use fixed floors directly. Monaco still pins an old DOMPurify; Express, Next, ESLint, and image processing dependencies may resolve vulnerable body-parser, js-yaml, or sharp releases. Recheck and remove overrides once parent packages require fixed versions.","devDependencies":{"@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.18","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.10.1","bcryptjs":"^3.0.3","better-sqlite3":"^12.6.2","chalk":"^4.1.2","confbox":"^0.2.4","dompurify":"^3.4.12","esbuild":"^0.28.1","eslint":"^9","eslint-config-next":"16.4.2","express":"^5.2.1","jose":"^6.1.3","marked":"^18.0.1","material-symbols":"^0.45.1","minimatch":"file:vendor/minimatch3-secure","monaco-editor":"^0.55.1","node-forge":"^1.3.3","open":"^11.0.0","ora":"^9.1.0","postcss":"^8.5.10","prop-types":"^15.8.1","react-is":"^19.2.7","recharts":"^3.7.0","selfsigned":"^5.5.0","socks":"^2.8.9","socks-proxy-agent":"^10.1.0","tailwindcss":"^4","typescript":"6.0.3","undici":"^8.10.0","uuid":"^14.0.1","vitest":"4.1.11","zustand":"^5.0.10"},"engines":{"node":">=22.5.0"},"keywords":["zevairouter","zevai","ai","router","proxy","kiro","codebuddy","claude","openai","api","quota","automation"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Verifiedlabs/zevairouter.git"},"bugs":{"url":"https://github.com/Verifiedlabs/zevairouter/issues"},"homepage":"https://github.com/Verifiedlabs/zevairouter"}')},78335:()=>{},81329:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(83477);new Set(Object.entries(c(75681).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a));let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},96487:()=>{}};
5
+ `);if(Buffer.byteLength(m,"utf8")>262144)throw new u("Hermes managed settings are too large to back up safely",{code:"HERMES_BACKUP_TOO_LARGE",status:422});await am(e.configPath,f,5242880),await am(e.envPath,g,1048576),await am(e.backupPath,h.snapshot,262144);let n={exists:!0,text:m,mode:384,uid:ao(h.snapshot.uid,()=>process.getuid()),gid:ao(h.snapshot.gid,()=>process.getgid())},o={exists:!0,text:k.text,mode:f.mode??384,uid:ao(f.uid,()=>process.getuid()),gid:ao(f.gid,()=>process.getgid())},q={exists:!0,text:l.text,mode:384,uid:ao(g.uid,()=>process.getuid()),gid:ao(g.gid,()=>process.getgid())};try{await al(e.backupPath,n),await al(e.configPath,o),await al(e.envPath,q)}catch(d){let a=await ap(e.envPath,g,q,1048576),b=await ap(e.configPath,f,o,5242880),c=!!a&&!!b&&await ap(e.backupPath,h.snapshot,n,262144);throw a&&b&&c||console.error("Hermes Apply rollback could not safely restore every file"),d}return j.NextResponse.json({success:!0,message:"Hermes settings applied on the ZevaiRouter host",...ac(e,d),backup:ad(!0,!0)})}catch(a){return ae(a,"Failed to update Hermes settings on the ZevaiRouter host")}})}async function ay(a){return ab(async()=>{try{if(a?.url&&"1"===new URL(a.url,"http://localhost").searchParams.get("discard")){let a=await au(x());as(a);let b=await ag(a.backupPath);if(!b.exists)throw new u("No ZevaiRouter Hermes backup is available to discard",{code:"HERMES_BACKUP_NOT_FOUND",status:404});return await ah(a.backupPath,b),await ak(a.backupPath),j.NextResponse.json({success:!0,discarded:!0,message:"Hermes backup discarded; config and environment settings were not changed",installationTarget:$,configPath:a.configPath,envPath:a.envPath,backup:ad(!1)})}let{paths:b}=await av({useBackupPathsWhenUnavailable:!0}),c=await af(b.configPath,5242880),d=await af(b.envPath,1048576),e=await aq(b);if(!e.backup)throw new u("No ZevaiRouter Hermes backup is available to restore",{code:"HERMES_BACKUP_NOT_FOUND",status:404});let f=e.backup;if(!R(f,{configText:c.text,envText:d.text,configPath:b.configPath,envPath:b.envPath,configMode:c.mode,envMode:d.mode}))throw new u("Hermes managed settings changed after ZevaiRouter applied them",{code:"HERMES_CONFIG_CHANGED",status:409});let g=I(c.text,f.before.model,f.applied.model),h=O(d.text,f.before.env,f.applied.envHash),i={exists:f.before.configFileExisted||"{}"!==g.trim(),text:g,mode:f.before.configMode??384,uid:c.uid,gid:c.gid},k={exists:f.before.envFileExisted||h.trim().length>0,text:h,mode:f.before.envMode??384,uid:d.uid,gid:d.gid};await am(b.configPath,c,5242880),await am(b.envPath,d,1048576),await am(b.backupPath,e.snapshot,262144);try{await al(b.configPath,i),await al(b.envPath,k),await ak(b.backupPath)}catch(f){let a=await ap(b.envPath,d,k,1048576),e=await ap(b.configPath,c,i,5242880);throw a&&e||console.error("Hermes Reset rollback could not safely restore every file"),f}return j.NextResponse.json({success:!0,message:"Previous Hermes settings restored on the ZevaiRouter host",installationTarget:$,configPath:b.configPath,envPath:b.envPath,backup:ad(!1)})}catch(b){let a=ae(b,"Failed to restore Hermes settings on the ZevaiRouter host");if(b instanceof u&&"HERMES_CONFIG_CHANGED"===b.code)return j.NextResponse.json({error:b.message,code:b.code,installationTarget:$,backup:ad(!0,!1)},{status:b.status});return a}})}(0,Z.D)([aw,ax,ay]),(0,d.A)(aw,"0066315cc56112e5f253b9d839e08df23ce9156899",null),(0,d.A)(ax,"40cecae9e1b31201b37e11e8371bd0ee7df4b4d723",null),(0,d.A)(ay,"40b65e2a6149c83bd71ea175c0c5ef029f26df2caf",null)},30869:(a,b,c)=>{c.d(b,{UY:()=>i,X3:()=>k,eh:()=>f.eh,fg:()=>e.fg,h0:()=>h,oc:()=>j,vQ:()=>g});var d=c(39006),e=c(75681),f=c(81329);let g={name:"ZevaiRouter",description:"AI Infrastructure Management",version:d.version},h={npmPackageName:"zevairouter",installCmd:"npm i -g zevairouter",installCmdLatest:"npm i -g zevairouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:1997},i={maxLines:200,pollIntervalMs:1e3},j={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}},k={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions","vercel-ai-gateway":"https://ai-gateway.vercel.sh/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}}};
@@ -1,5 +1,5 @@
1
1
  "use strict";exports.id=3184,exports.ids=[3184],exports.modules={59657:(a,b,c)=>{c.d(b,{Jb:()=>i,aI:()=>f,jd:()=>h});var d=c(41004),e=c(92306);async function f(a){try{await a.body?.cancel()}catch{}}function g(a){let b=!1;return c=>{if(b||"function"!=typeof a)return!1;b=!0;try{Promise.resolve(a(c)).catch(a=>{console.error("[Stream] Transport failure callback failed:",a?.message||a)})}catch(a){console.error("[Stream] Transport failure callback failed:",a?.message||a)}return!0}}function h({onDisconnect:a,onError:b,log:c,provider:d,model:f,reqTag:g="",signal:i}={}){let j=new AbortController,k=Date.now(),l=!1,m=null,n=()=>j.abort(i.reason),o=()=>i?.removeEventListener("abort",n);i?.aborted?n():i?.addEventListener("abort",n,{once:!0});let p=(a,b,e=!1)=>{let h=Date.now()-k;e&&c?.errorLine?c.errorLine(g,a,`${b} \xb7 ${d}/${f} \xb7 ${h}ms`):c?.line?c.line(g,a,`${b} \xb7 ${d}/${f} \xb7 ${h}ms`):console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] ${a} ${d}/${f} \xb7 ${b} \xb7 ${h}ms`)};return{signal:j.signal,cleanup:o,startTime:k,isConnected:()=>!l,handleDisconnect:(b="client_closed")=>{l||(l=!0,o(),p("⚡",`DISCONNECT: ${b}`),(0,e.s)("CTRL",`${d}/${f} | disconnect=${b} | dur=${Date.now()-k}ms`),m=setTimeout(()=>{j.abort()},500),a?.({reason:b,duration:Date.now()-k}))},handleComplete:()=>{!l&&(l=!0,o(),m&&(clearTimeout(m),m=null))},handleError:a=>{if(!l){if(l=!0,o(),m&&(clearTimeout(m),m=null),"AbortError"===a.name)return void p("⚡","ABORTED");p("✗",`ERROR: ${a.message}${a.stack?`
2
- ${a.stack}`:""}`,!0),b?.(a)}},abort:()=>j.abort()}}function i(a,b,c,f=null,h=null,j=null,k=null,l=null,m=null){let n=null,o=null,p=0,q=0,r=Date.now(),s=r,t=!1,u=null,v="function"==typeof m?.progress?.subscribe,w="STREAM",x=j?.firstEventTimeoutMs||j?.firstChunkTimeoutMs||d.Z1,y=j?.progressIdleTimeoutMs||j?.stallTimeoutMs||d.xM,z=j?.absoluteTimeoutMs||d.MB,A=Number.isFinite(j?.absoluteStartedAtMs)?j.absoluteStartedAtMs:r,B=Math.max(1,z-Math.max(0,r-A)),C=g(h),D=()=>{n&&(clearTimeout(n),n=null),o&&(clearTimeout(o),o=null)},E=()=>{D(),u?.(),u=null},F=(a,b)=>{if(c.signal?.aborted)return void(0,e.s)(w,`${a} timer ignored after request abort`);let d="first_event"===a,g="absolute"===a;(0,e.s)(w,`TIMEOUT phase=${a} budget=${b}ms | chunks=${p} | bytes=${q} | sinceProgress=${Date.now()-s}ms`);let h=Error(g?"provider stream exceeded the absolute deadline":d?"provider stream did not produce a valid event in time":"provider stream progress stalled");h.name="TimeoutError",h.code=g?"STREAM_ABSOLUTE_TIMEOUT":d?"STREAM_FIRST_CHUNK_TIMEOUT":"STREAM_STALL_TIMEOUT",h.phase=a,h.timeoutMs=b,f?.setFailure?.(h),C(h),D(),c.handleError?.(h),c.abort?.()},G=()=>{if(n&&(clearTimeout(n),n=null),c.signal?.aborted||!c.isConnected())return;let a=t?"progress_idle":"first_event",b=t?y:x;n=setTimeout(()=>{n=null,F(a,b)},b)},H=(a=Date.now())=>{let b=Number.isFinite(a)?a:Date.now(),c=Math.max(0,b-s);try{k?.(t?"progress_idle":"first_event",c)}catch{}t=!0,s=b,G()},I={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(w,`complete | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`),E(),c.handleComplete()},handleError:a=>{(0,e.s)(w,`error: ${a?.message} | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`),E(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(w,`disconnect: ${a} | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`),E(),c.handleDisconnect(a)},abort:()=>{E(),c.abort()}};G(),o=setTimeout(()=>{o=null,F("absolute",z)},B),v&&(u=m.progress.subscribe(a=>{a?.type==="attempt_started"?(t=!1,s=Number.isFinite(a.atMs)?a.atMs:Date.now(),G(),((a=Date.now())=>{o&&clearTimeout(o),o=setTimeout(()=>{o=null,F("absolute",z)},Math.max(1,z-Math.max(0,Date.now()-a)))})(s)):a?.type==="validated_event"&&H(a.atMs)})),(0,e.s)(w,`pipe start | firstEventTimeout=${x}ms | progressIdleTimeout=${y}ms | absoluteTimeout=${z}ms`);let J=new TransformStream({transform(a,b){p++;let c=a?.byteLength||a?.length||0;q+=c;let d=Date.now()-s;e.T&&(p<=5||p%20==0||d>5e3)&&(0,e.s)(w,`chunk #${p} | size=${c}B | gap=${d}ms | total=${q}B`),b.enqueue(a)},flush(){(0,e.s)(w,`upstream EOF | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`)}});return function(a,b,c=null,d=null,e=null,f=null){let h=a.readable.getReader(),i=a.writable.getWriter(),j=!1,k=g(d),l="function"==typeof c?c:c?.build?.bind(c),m="object"==typeof c?c?.observe?.bind(c):null,n=f?.heartbeat?.bytes,o=Number(f?.heartbeat?.intervalMs),p=null,q=null,r=!1,s=!1,t=()=>{p&&(clearInterval(p),p=null)},u=()=>{t(),q?.(),q=null},v=a=>{if(!j&&l){j=!0;try{let b=l();b&&a.enqueue(b)}catch{}}},w=async a=>{if(!s&&!r){s=!0;try{for(;!r&&a.desiredSize>0;){if(!b.isConnected()){r=!0,u(),await Promise.allSettled([h.cancel("stream_disconnected"),i.abort("stream_disconnected")]),v(a),a.close();return}let{done:c,value:d}=await h.read();if(r)return;if(c){r=!0,u(),b.handleComplete(),a.close();return}try{m?.(d)}catch{}if(a.enqueue(d),e?.(d)){r=!0,u(),v(a),b.handleComplete(),await Promise.allSettled([h.cancel("protocol_terminal"),i.abort("protocol_terminal")]),a.close();return}}}catch(l){if(r)return;r=!0,u();let d=b.isConnected(),e=b.signal?.aborted===!0;d&&!e&&k(l),d&&!e&&c?.setFailure?.(l),b.handleError(l),h.cancel().catch(()=>{}),i.abort().catch(()=>{});let f=l?.message||"",g=l?.code||l?.cause?.code||"",j="AbortError"===l.name||f.includes("aborted")||f.includes("socket hang up")||f.includes("ECONNRESET")||f.includes("ETIMEDOUT")||f.includes("EPIPE")||"ECONNRESET"===g||"ETIMEDOUT"===g||"EPIPE"===g||"UND_ERR_SOCKET"===g;try{!d||j||c?(v(a),a.close()):a.error(l)}catch{}}finally{s=!1}}};return new ReadableStream({start(a){n?.byteLength>0&&Number.isFinite(o)&&!(o<=0)&&(a.enqueue(n),p=setInterval(()=>{if(!r&&b.isConnected()&&!(a.desiredSize<=0))try{a.enqueue(n)}catch{t()}},o),q=f?.progress?.subscribe?.(c=>{if(c?.type==="attempt_started"&&!r&&b.isConnected()&&!(a.desiredSize<=0))try{a.enqueue(n)}catch{u()}}))},pull:a=>w(a),async cancel(a){r||(r=!0,u(),b.handleDisconnect(a||"cancelled"),await Promise.allSettled([h.cancel(a),i.abort(a)]))}})}({readable:a.body.pipeThrough(J).pipeThrough(b).pipeThrough(new TransformStream({transform(a,b){(a?.byteLength||a?.length||0)>0&&(v||H(),l?.()),b.enqueue(a)}})),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},I,f,C,b.isProtocolTerminalChunk?.bind(b),m)}},74957:(a,b,c)=>{c.d(b,{Hv:()=>j});var d=c(58500),e=c(41004),f=c(93943),g=c(39609),h=c(59657),i=c(92306);class j{constructor(a,b){this.provider=a,this.config=b,this.noAuth=b?.noAuth||!1}getProvider(){return this.provider}getBaseUrls(){return this.config.baseUrls||(this.config.baseUrl?[this.config.baseUrl]:[])}getFallbackCount(){return this.getBaseUrls().length||1}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),b=this.provider.includes("responses")?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.anthropic.com/v1").replace(/\/$/,"");return`${a}/messages`}let e=this.getBaseUrls();return e[c]||e[0]||this.config.baseUrl}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};return this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]="2023-06-01")):a.accessToken?c.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(c.Authorization=`Bearer ${a.apiKey}`),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}prepareRequestBody(a,b){return JSON.stringify(a)}fetchUpstream(a,b,c){return(0,g.proxyAwareFetch)(a,b,c)}shouldRetry(a,b){return a===e.gx.RATE_LIMITED&&b+1<this.getFallbackCount()}async refreshCredentials(a,b,c=null){return null}canRefreshCredentials(a){return this.refreshCredentials!==j.prototype.refreshCredentials&&!!a?.refreshToken}needsRefresh(a){return(0,f.fp)(this.provider,a)}parseError(a,b){return{status:a.status,message:b||`HTTP ${a.status}`}}async execute({model:a,body:b,stream:c,credentials:f,sourceFormat:g=null,targetFormat:j=null,requestFormat:k=null,runtimeTransport:l=null,signal:m,log:n,proxyOptions:o=null,connectTimeoutMs:p=null}){let q={model:a,sourceFormat:g,targetFormat:j,requestFormat:k,runtimeTransport:l},r=this.getFallbackCount(),s=null,t=0,u={},v={...e.cI,...this.config.retry},w=async(a,b,c,f=null)=>{let{attempts:g,delayMs:i}=(0,e.DR)(v[b]);return!(g<=0)&&!(u[a]>=g)&&(u[a]++,n?.debug?.("RETRY",`${c} retry ${u[a]}/${g} after ${i/1e3}s`),f&&await (0,h.aI)(f),await (0,d.setTimeout)(i,void 0,{signal:m}),!0)};for(let d=0;d<r;d++){let g=this.buildUrl(a,c,d,f,q),j=this.transformRequest(a,b,c,f,q),k=this.buildHeaders(f,c,q);u[d]||(u[d]=0);let l=new AbortController,v=p||this.config?.timeoutMs||e.pH,x=setTimeout(()=>l.abort(Error("fetch connect timeout")),v),y=m?AbortSignal.any([m,l.signal]):l.signal;try{let a=this.prepareRequestBody(j,k),b="string"==typeof a?a.length:a?.byteLength??a?.length??"?",c=Date.now();(0,i.s)("FETCH",`${this.provider.toUpperCase()} → ${g} | body=${b}B | connectTimeout=${v}ms`);let f=await this.fetchUpstream(g,{method:"POST",headers:k,body:a,signal:y},o);clearTimeout(x);let p=f.headers?.get?.("content-type")||"",q=f.headers?.get?.("content-length")||"?";if((0,i.s)("FETCH",`${this.provider.toUpperCase()} ← ${f.status} | ttft=${Date.now()-c}ms | ct=${p} | cl=${q}`),await w(d,f.status,`status ${f.status}`,f)){d--;continue}if(this.shouldRetry(f.status,d)){n?.debug?.("RETRY",`${f.status} on ${g}, trying fallback ${d+1}`),t=f.status,await (0,h.aI)(f);continue}return{response:function(a,b,c,d){if(!a.body||!b)return a;let e=a.body.getReader();return new Response(new ReadableStream({async pull(a){let f;if(d?.aborted)throw d.reason;try{let g=new Promise((a,d)=>{f=setTimeout(()=>{let a=Error("response body timeout");d(a),queueMicrotask(()=>{c.abort(a),e.cancel(a).catch(()=>{})})},b)}),{done:h,value:i}=await Promise.race([e.read(),g]);if(d?.aborted)throw d.reason;h?a.close():a.enqueue(i)}catch(b){a.error(b)}finally{clearTimeout(f)}},cancel:a=>e.cancel(a)}),a)}(f,this.config?.responseTimeoutMs||e.xM,l,m),url:g,headers:k,transformedBody:j}}catch(b){clearTimeout(x),s=b;let a=l.signal.aborted&&"AbortError"===b.name;if((0,i.s)("FETCH",`${this.provider.toUpperCase()} ✖ ${b.name}: ${b.message}${a?" (connect timeout)":""}`),"AbortError"===b.name&&!a)throw b;if(await w(d,e.gx.BAD_GATEWAY,`network "${b.message}"`)){d--;continue}if(d+1<r){n?.debug?.("RETRY",`Error on ${g}, trying fallback ${d+1}`);continue}throw b}}throw s||Error(`All ${r} URLs failed with status ${t}`)}}},86724:(a,b,c)=>{c.d(b,{Z:()=>h});let d={deepseek:{scope:"all"},minimax:{scope:"all"},"minimax-cn":{scope:"all"}},e=[{match:a=>/^kimi-/i.test(a||""),scope:"toolCalls"},{match:a=>/deepseek/i.test(a||""),scope:"all"}],f="deepseek-v4-pro",g={[`${f}-max`]:{thinkingType:"enabled",reasoningEffort:"max"},[`${f}-none`]:{thinkingType:"disabled",reasoningEffort:null}};function h({provider:a,model:b,body:c}){let i=d[a],j=e.find(a=>a.match(b));var k=function({provider:a,model:b,body:c}){let d=g[b];if("deepseek"!==a||!d||!c)return c;let e={...c,model:f,extra_body:{...c.extra_body||{},thinking:{...c.extra_body?.thinking||{},type:d.thinkingType}}};return d.reasoningEffort?e.reasoning_effort=d.reasoningEffort:delete e.reasoning_effort,e}({provider:a,model:b,body:c}),l=i||j;if(!l||!k?.messages)return k;let m=k.messages.map(a=>!function(a,b){if(a?.role!=="assistant")return!1;let c=a.reasoning_content;return("string"!=typeof c||!(c.length>0))&&("toolCalls"!==b||Array.isArray(a.tool_calls)&&a.tool_calls.length>0)}(a,l.scope)?a:{...a,reasoning_content:" "});return{...k,messages:m}}},92306:(a,b,c)=>{function d(a,b){}c.d(b,{T:()=>e,s:()=>d});let e=!1},93184:(a,b,c)=>{c.d(b,{j:()=>A});var d=c(77598),e=c.n(d),f=c(74957),g=c(35024),h=c(86724),i=c(31421),j=c(73024),k=c.n(j),l=c(48161),m=c.n(l),n=c(76760),o=c.n(n);let p=`
2
+ ${a.stack}`:""}`,!0),b?.(a)}},abort:()=>j.abort()}}function i(a,b,c,f=null,h=null,j=null,k=null,l=null,m=null){let n=null,o=null,p=0,q=0,r=Date.now(),s=r,t=!1,u=null,v="function"==typeof m?.progress?.subscribe,w="STREAM",x=j?.firstEventTimeoutMs||j?.firstChunkTimeoutMs||d.Z1,y=j?.progressIdleTimeoutMs||j?.stallTimeoutMs||d.xM,z=j?.absoluteTimeoutMs||d.MB,A=Number.isFinite(j?.absoluteStartedAtMs)?j.absoluteStartedAtMs:r,B=Math.max(1,z-Math.max(0,r-A)),C=g(h),D=()=>{n&&(clearTimeout(n),n=null),o&&(clearTimeout(o),o=null)},E=()=>{D(),u?.(),u=null},F=(a,b)=>{if(c.signal?.aborted)return void(0,e.s)(w,`${a} timer ignored after request abort`);let d="first_event"===a,g="absolute"===a;(0,e.s)(w,`TIMEOUT phase=${a} budget=${b}ms | chunks=${p} | bytes=${q} | sinceProgress=${Date.now()-s}ms`);let h=Error(g?"provider stream exceeded the absolute deadline":d?"provider stream did not produce a valid event in time":"provider stream progress stalled");h.name="TimeoutError",h.code=g?"STREAM_ABSOLUTE_TIMEOUT":d?"STREAM_FIRST_CHUNK_TIMEOUT":"STREAM_STALL_TIMEOUT",h.phase=a,h.timeoutMs=b,f?.setFailure?.(h),C(h),D(),c.handleError?.(h),c.abort?.()},G=()=>{if(n&&(clearTimeout(n),n=null),c.signal?.aborted||!c.isConnected())return;let a=t?"progress_idle":"first_event",b=t?y:x;n=setTimeout(()=>{n=null,F(a,b)},b)},H=(a=Date.now())=>{let b=Number.isFinite(a)?a:Date.now(),c=Math.max(0,b-s);try{k?.(t?"progress_idle":"first_event",c)}catch{}t=!0,s=b,G()},I={signal:c.signal,startTime:c.startTime,isConnected:()=>c.isConnected(),handleComplete:()=>{(0,e.s)(w,`complete | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`),E(),c.handleComplete()},handleError:a=>{(0,e.s)(w,`error: ${a?.message} | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`),E(),c.handleError(a)},handleDisconnect:a=>{(0,e.s)(w,`disconnect: ${a} | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`),E(),c.handleDisconnect(a)},abort:()=>{E(),c.abort()}};G(),o=setTimeout(()=>{o=null,F("absolute",z)},B),v&&(u=m.progress.subscribe(a=>{a?.type==="attempt_started"?(t=!1,s=Number.isFinite(a.atMs)?a.atMs:Date.now(),G(),((a=Date.now())=>{o&&clearTimeout(o),o=setTimeout(()=>{o=null,F("absolute",z)},Math.max(1,z-Math.max(0,Date.now()-a)))})(s)):a?.type==="validated_event"&&H(a.atMs)})),(0,e.s)(w,`pipe start | firstEventTimeout=${x}ms | progressIdleTimeout=${y}ms | absoluteTimeout=${z}ms`);let J=new TransformStream({transform(a,b){p++;let c=a?.byteLength||a?.length||0;q+=c;let d=Date.now()-s;e.T&&(p<=5||p%20==0||d>5e3)&&(0,e.s)(w,`chunk #${p} | size=${c}B | gap=${d}ms | total=${q}B`),b.enqueue(a)},flush(){(0,e.s)(w,`upstream EOF | chunks=${p} | bytes=${q} | dur=${Date.now()-r}ms`)}});return function(a,b,c=null,d=null,e=null,f=null){let h=a.readable.getReader(),i=a.writable.getWriter(),j=!1,k=g(d),l="function"==typeof c?c:c?.build?.bind(c),m="object"==typeof c?c?.observe?.bind(c):null,n=f?.heartbeat?.bytes,o=Number(f?.heartbeat?.intervalMs),p=null,q=null,r=!1,s=!1,t=()=>{p&&(clearInterval(p),p=null)},u=()=>{t(),q?.(),q=null},v=a=>{if(!j&&l){j=!0;try{let b=l();b&&a.enqueue(b)}catch{}}},w=async a=>{if(!s&&!r){s=!0;try{for(;!r&&a.desiredSize>0;){if(!b.isConnected()){r=!0,u(),await Promise.allSettled([h.cancel("stream_disconnected"),i.abort("stream_disconnected")]),v(a),a.close();return}let{done:c,value:d}=await h.read();if(r)return;if(c){r=!0,u(),b.handleComplete(),a.close();return}try{m?.(d)}catch{}if(a.enqueue(d),e?.(d)){r=!0,u(),v(a),b.handleComplete(),await Promise.allSettled([h.cancel("protocol_terminal"),i.abort("protocol_terminal")]),a.close();return}}}catch(l){if(r)return;r=!0,u();let d=b.isConnected(),e=b.signal?.aborted===!0;d&&!e&&k(l),d&&!e&&c?.setFailure?.(l),b.handleError(l),h.cancel().catch(()=>{}),i.abort().catch(()=>{});let f=l?.message||"",g=l?.code||l?.cause?.code||"",j="AbortError"===l.name||f.includes("aborted")||f.includes("socket hang up")||f.includes("ECONNRESET")||f.includes("ETIMEDOUT")||f.includes("EPIPE")||"ECONNRESET"===g||"ETIMEDOUT"===g||"EPIPE"===g||"UND_ERR_SOCKET"===g;try{!d||j||c?(v(a),a.close()):a.error(l)}catch{}}finally{s=!1}}};return new ReadableStream({start(a){n?.byteLength>0&&Number.isFinite(o)&&!(o<=0)&&(a.enqueue(n),p=setInterval(()=>{if(!r&&b.isConnected()&&!(a.desiredSize<=0))try{a.enqueue(n)}catch{t()}},o),q=f?.progress?.subscribe?.(c=>{if(c?.type==="attempt_started"&&!r&&b.isConnected()&&!(a.desiredSize<=0))try{a.enqueue(n)}catch{u()}}))},pull:a=>w(a),async cancel(a){r||(r=!0,u(),b.handleDisconnect(a||"cancelled"),await Promise.allSettled([h.cancel(a),i.abort(a)]))}})}({readable:a.body.pipeThrough(J).pipeThrough(b).pipeThrough(new TransformStream({transform(a,b){(a?.byteLength||a?.length||0)>0&&(v||H(),l?.()),b.enqueue(a)}})),writable:{getWriter:()=>({abort:()=>Promise.resolve()})}},I,f,C,b.isProtocolTerminalChunk?.bind(b),m)}},74957:(a,b,c)=>{c.d(b,{Hv:()=>j});var d=c(58500),e=c(41004),f=c(93943),g=c(39609),h=c(59657),i=c(92306);class j{constructor(a,b){this.provider=a,this.config=b,this.noAuth=b?.noAuth||!1}getProvider(){return this.provider}getBaseUrls(){return this.config.baseUrls||(this.config.baseUrl?[this.config.baseUrl]:[])}getFallbackCount(){return this.getBaseUrls().length||1}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),b=this.provider.includes("responses")?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.anthropic.com/v1").replace(/\/$/,"");return`${a}/messages`}let e=this.getBaseUrls();return e[c]||e[0]||this.config.baseUrl}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};return this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]="2023-06-01")):a.accessToken?c.Authorization=`Bearer ${a.accessToken}`:a.apiKey&&(c.Authorization=`Bearer ${a.apiKey}`),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}prepareRequestBody(a,b){return JSON.stringify(a)}fetchUpstream(a,b,c){return(0,g.proxyAwareFetch)(a,b,c)}shouldRetry(a,b){return a===e.gx.RATE_LIMITED&&b+1<this.getFallbackCount()}async refreshCredentials(a,b,c=null){return null}canRefreshCredentials(a){return this.refreshCredentials!==j.prototype.refreshCredentials&&!!a?.refreshToken}needsRefresh(a){return(0,f.fp)(this.provider,a)}parseError(a,b){return{status:a.status,message:b||`HTTP ${a.status}`}}async execute({model:a,body:b,stream:c,credentials:f,sourceFormat:g=null,targetFormat:j=null,requestFormat:k=null,runtimeTransport:l=null,signal:m,log:n,proxyOptions:o=null,connectTimeoutMs:p=null}){let q={model:a,sourceFormat:g,targetFormat:j,requestFormat:k,runtimeTransport:l},r=this.getFallbackCount(),s=null,t=0,u={},v={...e.cI,...this.config.retry},w=async(a,b,c,f=null)=>{let{attempts:g,delayMs:i}=(0,e.DR)(v[b]);return!(g<=0)&&!(u[a]>=g)&&(u[a]++,n?.debug?.("RETRY",`${c} retry ${u[a]}/${g} after ${i/1e3}s`),f&&await (0,h.aI)(f),await (0,d.setTimeout)(i,void 0,{signal:m}),!0)};for(let d=0;d<r;d++){let g=this.buildUrl(a,c,d,f,q),j=this.transformRequest(a,b,c,f,q),k=this.buildHeaders(f,c,q);u[d]||(u[d]=0);let l=new AbortController,v=p||this.config?.timeoutMs||e.pH,x=setTimeout(()=>l.abort(Error("fetch connect timeout")),v),y=m?AbortSignal.any([m,l.signal]):l.signal;try{let a=this.prepareRequestBody(j,k),b="string"==typeof a?a.length:a?.byteLength??a?.length??"?",c=Date.now();(0,i.s)("FETCH",`${this.provider.toUpperCase()} → ${g} | body=${b}B | connectTimeout=${v}ms`);let f=await this.fetchUpstream(g,{method:"POST",headers:k,body:a,signal:y},o);clearTimeout(x);let p=f.headers?.get?.("content-type")||"",q=f.headers?.get?.("content-length")||"?";if((0,i.s)("FETCH",`${this.provider.toUpperCase()} ← ${f.status} | ttft=${Date.now()-c}ms | ct=${p} | cl=${q}`),await w(d,f.status,`status ${f.status}`,f)){d--;continue}if(this.shouldRetry(f.status,d)){n?.debug?.("RETRY",`${f.status} on ${g}, trying fallback ${d+1}`),t=f.status,await (0,h.aI)(f);continue}return{response:function(a,b,c,d){if(!a.body||!b)return a;let e=a.body.getReader();return new Response(new ReadableStream({async pull(a){let f;if(d?.aborted)throw d.reason;try{let g=new Promise((a,d)=>{f=setTimeout(()=>{let a=Error("response body timeout");d(a),queueMicrotask(()=>{c.abort(a),e.cancel(a).catch(()=>{})})},b)}),{done:h,value:i}=await Promise.race([e.read(),g]);if(d?.aborted)throw d.reason;h?a.close():a.enqueue(i)}catch(b){a.error(b)}finally{clearTimeout(f)}},cancel:a=>e.cancel(a)}),a)}(f,this.config?.responseTimeoutMs||e.xM,l,m),url:g,headers:k,transformedBody:j}}catch(b){clearTimeout(x),s=b;let a=l.signal.aborted&&!m?.aborted;if((0,i.s)("FETCH",`${this.provider.toUpperCase()} ✖ ${b.name}: ${b.message}${a?" (connect timeout)":""}`),"AbortError"===b.name&&!a)throw b;if(!a&&await w(d,e.gx.BAD_GATEWAY,`network "${b.message}"`)){d--;continue}if(d+1<r){n?.debug?.("RETRY",`Error on ${g}, trying fallback ${d+1}`);continue}throw b}}throw s||Error(`All ${r} URLs failed with status ${t}`)}}},86724:(a,b,c)=>{c.d(b,{Z:()=>h});let d={deepseek:{scope:"all"},minimax:{scope:"all"},"minimax-cn":{scope:"all"}},e=[{match:a=>/^kimi-/i.test(a||""),scope:"toolCalls"},{match:a=>/deepseek/i.test(a||""),scope:"all"}],f="deepseek-v4-pro",g={[`${f}-max`]:{thinkingType:"enabled",reasoningEffort:"max"},[`${f}-none`]:{thinkingType:"disabled",reasoningEffort:null}};function h({provider:a,model:b,body:c}){let i=d[a],j=e.find(a=>a.match(b));var k=function({provider:a,model:b,body:c}){let d=g[b];if("deepseek"!==a||!d||!c)return c;let e={...c,model:f,extra_body:{...c.extra_body||{},thinking:{...c.extra_body?.thinking||{},type:d.thinkingType}}};return d.reasoningEffort?e.reasoning_effort=d.reasoningEffort:delete e.reasoning_effort,e}({provider:a,model:b,body:c}),l=i||j;if(!l||!k?.messages)return k;let m=k.messages.map(a=>!function(a,b){if(a?.role!=="assistant")return!1;let c=a.reasoning_content;return("string"!=typeof c||!(c.length>0))&&("toolCalls"!==b||Array.isArray(a.tool_calls)&&a.tool_calls.length>0)}(a,l.scope)?a:{...a,reasoning_content:" "});return{...k,messages:m}}},92306:(a,b,c)=>{function d(a,b){}c.d(b,{T:()=>e,s:()=>d});let e=!1},93184:(a,b,c)=>{c.d(b,{j:()=>A});var d=c(77598),e=c.n(d),f=c(74957),g=c(35024),h=c(86724),i=c(31421),j=c(73024),k=c.n(j),l=c(48161),m=c.n(l),n=c(76760),o=c.n(n);let p=`
3
3
  const input = JSON.parse(await Bun.stdin.text());
4
4
  const out = Bun.stdout.writer();
5
5
  try {
@@ -23,4 +23,4 @@ try {
23
23
  await out.end();
24
24
  `,q=new Set(["content-encoding","content-length","transfer-encoding"]);function r(a){let b=a?.reason;if(b instanceof Error&&"AbortError"===b.name)return b;let c=Error(b instanceof Error?b.message:"Request aborted");return c.name="AbortError",c}var s=c(39609),t=c(36942);let u=new Set,v=0,w=0;function x(a){let b=Date.now();b!==v&&(v=b,w=0),w++;let c=4096n*BigInt(b)+BigInt(w),d=a?~c:c;return(a?"ses_":"msg_")+Array.from({length:6},(a,b)=>Number(d>>BigInt(40-8*b)&255n).toString(16).padStart(2,"0")).join("")+Array.from(e().getRandomValues(new Uint8Array(14)),a=>"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"[a%62]).join("")}let y={type:"function",function:{name:"read",description:"Read a file or directory from the local filesystem.",parameters:{type:"object",properties:{filePath:{type:"string",description:"The absolute path to the file or directory to read"}},required:["filePath"]}}},z="<env>\n Working directory: /workspace\n Is directory a git repo: no\n Platform: linux\n</env>";class A extends f.Hv{constructor(){super("opencode",g.xq.opencode)}transformRequest(a,b){let c={...b};return Array.isArray(c.messages)&&c.messages.some(a=>a&&"name"in a)&&(c.messages=c.messages.map(a=>{if(!a||!("name"in a))return a;let{name:b,...c}=a;return c})),Array.isArray(c.tools)&&0!==c.tools.length?c.tools.some(a=>a?.function?.name==="read")||(c.tools=[...c.tools,y]):(c.tools=[y],c.tool_choice||(c.tool_choice="none")),Array.isArray(c.messages)&&(c.messages=function(a){if(a.some(a=>a?.role==="system"&&"string"==typeof a.content&&a.content.includes("<env>")))return a;let b=a[0];return b?.role==="system"&&"string"==typeof b.content?[{...b,content:`${b.content}
25
25
 
26
- ${z}`},...a.slice(1)]:[{role:"system",content:z},...a]}(c.messages)),c.stream=!0,(0,h.Z)({provider:this.provider,model:a,body:c})}buildUrl(a){let b="https://opencode.ai";return u.has(a)?`${b}/zen/v1/messages`:`${b}/zen/v1/chat/completions`}buildHeaders(a,b=!0){let c=x(!0),d=x(!1);return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":t.B,"x-opencode-client":"cli","x-opencode-session":c,"x-opencode-session-id":c,"x-opencode-request":d,Accept:"*/*"}}fetchUpstream(a,b,c){return function(a,{method:b="GET",headers:c={},body:d=null,signal:e=null}={},{proxyUrl:f=null}={}){if(e?.aborted)return Promise.reject(r(e));let g=function(){let a=process.env.ZEVAI_BUN_BIN?.trim();if(a)return a;let b="win32"===process.platform,c=m().homedir(),d=b?"bun.exe":"bun";for(let a of b?[o().join(c,".bun","bin",d),o().join(o().dirname(process.execPath),d)]:[o().join(c,".bun","bin",d),o().join(o().dirname(process.execPath),d),o().join(c,".local","bin",d),"/opt/homebrew/bin/bun","/usr/local/bin/bun","/usr/bin/bun"])if(k().existsSync(a))return a;return d}(),h=JSON.stringify({url:String(a),method:b,headers:c instanceof Headers?Object.fromEntries(c.entries()):c,body:null==d?null:"string"==typeof d?d:d instanceof Uint8Array?Buffer.from(d).toString("utf8"):String(d),proxy:f||null});return new Promise((a,c)=>{let d=(0,i.spawn)(g,["-e",p],{stdio:["pipe","pipe","pipe"]}),f=!1,j=Buffer.alloc(0),k=null,l="",m=a=>{if(f){if(k){try{k.error(a)}catch{}k=null}}else f=!0,c(a)},n=()=>{d.killed||d.kill("SIGKILL"),m(r(e))};e?.addEventListener("abort",n,{once:!0});let o=()=>e?.removeEventListener("abort",n),s=new ReadableStream({start(a){k=a},pull(){d.stdout.resume()},cancel(){k=null,o(),d.killed||d.kill("SIGKILL")}},{highWaterMark:16}),t=a=>{k&&0!==a.length&&(k.enqueue(new Uint8Array(a)),null!==k.desiredSize&&k.desiredSize<=0&&d.stdout.pause())};d.stdout.on("data",c=>{if(f)return void t(c);let d=(j=Buffer.concat([j,c])).indexOf(10);if(-1===d)return;let e=j.subarray(0,d).toString("utf8"),g=j.subarray(d+1);j=Buffer.alloc(0),((c,d)=>{let e;try{e=JSON.parse(c)}catch{m(Error(`Bun fetch returned an invalid header: ${c.slice(0,200)}`));return}if(e.error)return m(Error(`Bun fetch failed: ${e.error}`));let g=new Headers;for(let[a,b]of e.headers||[])q.has(a.toLowerCase())||g.append(a,b);f=!0,a(new Response(![101,204,205,304].includes(e.status)&&"HEAD"!==b?s:null,{status:e.status,statusText:e.statusText||"",headers:g})),t(d)})(e,g)}),d.stderr.on("data",a=>{l=(l+a.toString("utf8")).slice(-2048)}),d.on("error",a=>{o(),m(Error("ENOENT"===a.code?`Bun runtime not found (${g}). Install Bun from https://bun.sh or set ZEVAI_BUN_BIN to its path.`:`Bun fetch could not start: ${a.message}`))}),d.on("close",a=>{(o(),f)?k&&(0===a?k.close():k.error(Error(`Bun fetch exited with code ${a} mid-response${l?`: ${l.trim()}`:""}`)),k=null):m(Error(`Bun fetch exited with code ${a} before responding${l?`: ${l.trim()}`:""}`))}),d.stdin.on("error",()=>{}),d.stdin.end(h)})}(a,b,{proxyUrl:(0,s.ip)(a,c)})}}},93943:(a,b,c)=>{c.d(b,{Dz:()=>g,Vq:()=>j,fp:()=>h});var d=c(8590);let e=new Map;function f(a){if(null==a||""===a)return null;if("number"==typeof a)return a<1e12?1e3*a:a;let b=new Date(a).getTime();return Number.isFinite(b)?b:null}function g(a){return f(a?.expiresAt??a?.tokenExpiresAt)}function h(a,b,c=Date.now()){if(!b||"codex"===a&&b.providerSpecificData?.codexRefreshBlockedAt)return!1;let e=g(b);return!!(null!==e&&e-c<(0,d.Og)(a)||"codex"===a&&b.refreshToken&&function(a,b=Date.now()){let c=f(a?.lastRefreshAt??a?.lastRefresh??a?.providerSpecificData?.lastRefreshAt);return!c||b-c>=6912e5}(b,c))}async function i(a,b,c){let d,f=(d=b?.connectionId||b?.id||b?.email||b?.name||b?.refreshToken?.slice?.(-16)||"default",`${a}:${d}`),g=e.get(f);if(g)return g;let h=Promise.resolve().then(c).finally(()=>{e.delete(f)});return e.set(f,h),h}async function j(a,b,c){return b?i(a,b,async()=>{if("codex"===a&&b.providerSpecificData?.codexRefreshBlockedAt)throw(0,d.R_)({error:"unrecoverable_refresh_error",code:b.providerSpecificData.codexRefreshErrorCode||"invalid_refresh_token"});let e=await (0,d.$B)(a,b,c);if((0,d.jT)(e))throw(0,d.R_)(e);return function(a,b,c,e=Date.now()){var f,g;if(!c)return null;if((0,d.jT)(c))return c;let h={},i=new Date(e).toISOString();c.accessToken&&(h.accessToken=c.accessToken),c.apiKey&&(h.apiKey=c.apiKey),c.token&&(h.token=c.token);let j=c.refreshToken??b?.refreshToken;j&&(h.refreshToken=j);let k=c.idToken??b?.idToken;return k&&(h.idToken=k),c.expiresIn?(h.expiresIn=c.expiresIn,h.expiresAt=function(a,b=Date.now()){return a?new Date(b+1e3*a).toISOString():null}(c.expiresIn,e)):c.expiresAt&&(h.expiresAt=c.expiresAt),c.projectId&&(h.projectId=c.projectId),c.providerSpecificData&&(f=b?.providerSpecificData,h.providerSpecificData=(g=c.providerSpecificData)&&"object"==typeof g?{...f||{},...g}:f),c.copilotToken&&(h.copilotToken=c.copilotToken),c.copilotTokenExpiresAt&&(h.copilotTokenExpiresAt=c.copilotTokenExpiresAt),("codex"===a||h.accessToken||h.apiKey||h.token||h.refreshToken||h.copilotToken)&&(h.lastRefreshAt=c.lastRefreshAt||i),h}(a,b,e)}):null}}};
26
+ ${z}`},...a.slice(1)]:[{role:"system",content:z},...a]}(c.messages)),c.stream=!0,(0,h.Z)({provider:this.provider,model:a,body:c})}buildUrl(a){let b="https://opencode.ai";return u.has(a)?`${b}/zen/v1/messages`:`${b}/zen/v1/chat/completions`}buildHeaders(a,b=!0){let c=x(!0),d=x(!1);return{"Content-Type":"application/json",Authorization:"Bearer public","User-Agent":t.B,"x-opencode-client":"cli","x-opencode-session":c,"x-opencode-session-id":c,"x-opencode-request":d,Accept:"*/*"}}fetchUpstream(a,b,c){return function(a,{method:b="GET",headers:c={},body:d=null,signal:e=null}={},{proxyUrl:f=null}={}){if(e?.aborted)return Promise.reject(r(e));let g=function(){let a=process.env.ZEVAI_BUN_BIN?.trim();if(a)return a;let b="win32"===process.platform,c=m().homedir(),d=b?"bun.exe":"bun",e=b?[o().join(c,".bun","bin",d),o().join(o().dirname(process.execPath),d)]:[o().join(c,".bun","bin",d),o().join(o().dirname(process.execPath),d),o().join(c,".local","bin",d),"/opt/homebrew/bin/bun","/usr/local/bin/bun","/usr/bin/bun"],f=process.env.DATA_DIR||(b?o().join(process.env.APPDATA||c,"zevai"):o().join(c,".zevai")),g=o().join(f,"runtime","node_modules");for(let a of(e.push(o().join(g,"bun","bin","bun.exe"),o().join(g,".bin",d)),e))if(k().existsSync(a))return a;return d}(),h=JSON.stringify({url:String(a),method:b,headers:c instanceof Headers?Object.fromEntries(c.entries()):c,body:null==d?null:"string"==typeof d?d:d instanceof Uint8Array?Buffer.from(d).toString("utf8"):String(d),proxy:f||null});return new Promise((a,c)=>{let d=(0,i.spawn)(g,["-e",p],{stdio:["pipe","pipe","pipe"]}),f=!1,j=Buffer.alloc(0),k=null,l="",m=a=>{if(f){if(k){try{k.error(a)}catch{}k=null}}else f=!0,c(a)},n=()=>{d.killed||d.kill("SIGKILL"),m(r(e))};e?.addEventListener("abort",n,{once:!0});let o=()=>e?.removeEventListener("abort",n),s=new ReadableStream({start(a){k=a},pull(){d.stdout.resume()},cancel(){k=null,o(),d.killed||d.kill("SIGKILL")}},{highWaterMark:16}),t=a=>{k&&0!==a.length&&(k.enqueue(new Uint8Array(a)),null!==k.desiredSize&&k.desiredSize<=0&&d.stdout.pause())};d.stdout.on("data",c=>{if(f)return void t(c);let d=(j=Buffer.concat([j,c])).indexOf(10);if(-1===d)return;let e=j.subarray(0,d).toString("utf8"),g=j.subarray(d+1);j=Buffer.alloc(0),((c,d)=>{let e;try{e=JSON.parse(c)}catch{m(Error(`Bun fetch returned an invalid header: ${c.slice(0,200)}`));return}if(e.error)return m(Error(`Bun fetch failed: ${e.error}`));let g=new Headers;for(let[a,b]of e.headers||[])q.has(a.toLowerCase())||g.append(a,b);f=!0,a(new Response(![101,204,205,304].includes(e.status)&&"HEAD"!==b?s:null,{status:e.status,statusText:e.statusText||"",headers:g})),t(d)})(e,g)}),d.stderr.on("data",a=>{l=(l+a.toString("utf8")).slice(-2048)}),d.on("error",a=>{o(),m(Error("ENOENT"===a.code?`Bun runtime not found (${g}). Install Bun from https://bun.sh or set ZEVAI_BUN_BIN to its path.`:`Bun fetch could not start: ${a.message}`))}),d.on("close",a=>{(o(),f)?k&&(0===a?k.close():k.error(Error(`Bun fetch exited with code ${a} mid-response${l?`: ${l.trim()}`:""}`)),k=null):m(Error(`Bun fetch exited with code ${a} before responding${l?`: ${l.trim()}`:""}`))}),d.stdin.on("error",()=>{}),d.stdin.end(h)})}(a,b,{proxyUrl:(0,s.ip)(a,c)})}}},93943:(a,b,c)=>{c.d(b,{Dz:()=>g,Vq:()=>j,fp:()=>h});var d=c(8590);let e=new Map;function f(a){if(null==a||""===a)return null;if("number"==typeof a)return a<1e12?1e3*a:a;let b=new Date(a).getTime();return Number.isFinite(b)?b:null}function g(a){return f(a?.expiresAt??a?.tokenExpiresAt)}function h(a,b,c=Date.now()){if(!b||"codex"===a&&b.providerSpecificData?.codexRefreshBlockedAt)return!1;let e=g(b);return!!(null!==e&&e-c<(0,d.Og)(a)||"codex"===a&&b.refreshToken&&function(a,b=Date.now()){let c=f(a?.lastRefreshAt??a?.lastRefresh??a?.providerSpecificData?.lastRefreshAt);return!c||b-c>=6912e5}(b,c))}async function i(a,b,c){let d,f=(d=b?.connectionId||b?.id||b?.email||b?.name||b?.refreshToken?.slice?.(-16)||"default",`${a}:${d}`),g=e.get(f);if(g)return g;let h=Promise.resolve().then(c).finally(()=>{e.delete(f)});return e.set(f,h),h}async function j(a,b,c){return b?i(a,b,async()=>{if("codex"===a&&b.providerSpecificData?.codexRefreshBlockedAt)throw(0,d.R_)({error:"unrecoverable_refresh_error",code:b.providerSpecificData.codexRefreshErrorCode||"invalid_refresh_token"});let e=await (0,d.$B)(a,b,c);if((0,d.jT)(e))throw(0,d.R_)(e);return function(a,b,c,e=Date.now()){var f,g;if(!c)return null;if((0,d.jT)(c))return c;let h={},i=new Date(e).toISOString();c.accessToken&&(h.accessToken=c.accessToken),c.apiKey&&(h.apiKey=c.apiKey),c.token&&(h.token=c.token);let j=c.refreshToken??b?.refreshToken;j&&(h.refreshToken=j);let k=c.idToken??b?.idToken;return k&&(h.idToken=k),c.expiresIn?(h.expiresIn=c.expiresIn,h.expiresAt=function(a,b=Date.now()){return a?new Date(b+1e3*a).toISOString():null}(c.expiresIn,e)):c.expiresAt&&(h.expiresAt=c.expiresAt),c.projectId&&(h.projectId=c.projectId),c.providerSpecificData&&(f=b?.providerSpecificData,h.providerSpecificData=(g=c.providerSpecificData)&&"object"==typeof g?{...f||{},...g}:f),c.copilotToken&&(h.copilotToken=c.copilotToken),c.copilotTokenExpiresAt&&(h.copilotTokenExpiresAt=c.copilotTokenExpiresAt),("codex"===a||h.accessToken||h.apiKey||h.token||h.refreshToken||h.copilotToken)&&(h.lastRefreshAt=c.lastRefreshAt||i),h}(a,b,e)}):null}}};
@@ -1 +1 @@
1
- "use strict";exports.id=415,exports.ids=[415],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},39326:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0;return{connectionProxyEnabled:b,connectionProxyUrl:e(a?.connectionProxyUrl),connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},79761:(a,b,c)=>{c.d(b,{BU:()=>l,hb:()=>k,tH:()=>j});var d=c(40669),e=c(35989),f=c(75434);let g=new Set(["account","provider","egress","integrity"]);function h(a,b="unknown",c=160){return String(a||"").trim().toLowerCase().replace(/[^a-z0-9._:-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,c)||b}function i(a={}){let b=g.has(a.scope)?a.scope:null;if(!b)return null;let c=h((0,d.g2)(h(a.provider)),"unknown-provider",80),f=h(a.accountId||a.connectionId,"unknown-account"),j=h(a.egressId,"direct"),k=(0,e.Nm)(a.modelFamily||a.model);return Object.freeze("account"===b?{scope:b,provider:c,accountId:f}:"provider"===b?{scope:b,provider:c}:"egress"===b?{scope:b,egressId:j}:{scope:b,provider:c,modelFamily:k,egressId:j})}let j=function(a={}){let b="function"==typeof a.now?a.now:Date.now,c="function"==typeof a.onTransition?a.onTransition:()=>{},e=new Map,f=0;function g(a,b,d){c(Object.freeze({type:"circuit",provider:a.dimensions.provider,phase:b,reason:a.dimensions.scope,deadlineMs:a.openUntilMs?Math.max(0,a.openUntilMs-d):0,...a.dimensions.modelFamily?{modelFamily:a.dimensions.modelFamily}:{}}))}function j(a){for(let[b,c]of e)c.failures=c.failures.filter(b=>a-b.atMs<=6e4),"closed"===c.mode&&0===c.failures.length&&a-c.lastTouchedAtMs>18e5&&e.delete(b);let b=[...e.entries()].filter(([,a])=>"closed"===a.mode).sort((a,b)=>a[1].lastTouchedAtMs-b[1].lastTouchedAtMs);for(;b.length>2048;)e.delete(b.shift()[0])}function k(a,c=!1){let d=i(a);if(!d)return null;let f=Object.values(d).join("\x1f"),g=e.get(f);return!g&&c&&(g={dimensions:d,mode:"closed",failures:[],openDurationMs:3e4,openUntilMs:null,probeLeaseId:null,probeSuccesses:0,lastTouchedAtMs:b()},e.set(f,g)),g}function l(a,b){a?.mode==="open"&&b>=a.openUntilMs&&(a.mode="half_open",a.probeLeaseId=null,g(a,"half_open",b))}function m(a,b,c=a.openDurationMs){a.mode="open",a.openDurationMs=Math.min(3e5,Math.max(3e4,c)),a.openUntilMs=b+a.openDurationMs,a.probeLeaseId=null,a.probeSuccesses=0,a.lastTouchedAtMs=b,g(a,"open",b)}return Object.freeze({recordFailure:function(a={}){let c;if(!1===a.evidentiary)return!1;let e=b();j(e);let f=k(a,!0);return!!f&&(l(f,e),"closed"===f.mode)&&(f.failures=f.failures.filter(a=>e-a.atMs<=6e4),f.failures.push(Object.freeze({atMs:e,accountId:h(a.accountId||a.connectionId,"unknown-account"),provider:h((0,d.g2)(h(a.provider)),"unknown-provider",80)})),f.lastTouchedAtMs=e,c=f.failures.length,("integrity"===f.dimensions.scope?c>=1:!(c<5)&&("provider"===f.dimensions.scope?new Set(f.failures.map(a=>a.accountId)).size>=2:"egress"!==f.dimensions.scope||new Set(f.failures.map(a=>a.provider)).size>=2))&&m(f,e),!0)},recordSuccess:function(a={}){let c=b(),d=k(a);return!!d&&(l(d,c),"closed"===d.mode&&(d.failures=[],d.lastTouchedAtMs=c,!0))},getDecision:function(a){let c=b();j(c);let d=i(a),e=k(a);return e?(l(e,c),Object.freeze({...e.dimensions,state:e.mode,openUntilMs:e.openUntilMs,openDurationMs:e.openDurationMs,probeInFlight:!!e.probeLeaseId,consecutiveProbeSuccesses:e.probeSuccesses})):Object.freeze({...d||{scope:null},state:"closed",openUntilMs:null,openDurationMs:3e4,probeInFlight:!1,consecutiveProbeSuccesses:0})},tryAcquireProbe:function(a){let c=b(),d=k(a);return d?(l(d,c),"half_open"!==d.mode)?Object.freeze({acquired:!1,reason:"open"===d.mode?"circuit_open":"circuit_closed"}):d.probeLeaseId?Object.freeze({acquired:!1,reason:"probe_in_flight"}):(d.probeLeaseId=`probe-${c}-${++f}`,d.lastTouchedAtMs=c,Object.freeze({acquired:!0,leaseId:d.probeLeaseId})):Object.freeze({acquired:!1,reason:"circuit_closed"})},releaseProbe:function(a,c={}){let d=b(),e=k(a);if(!e||"half_open"!==e.mode||!e.probeLeaseId||c.leaseId!==e.probeLeaseId)return!1;if(e.probeLeaseId=null,e.lastTouchedAtMs=d,!0===c.cancelled)return!0;if(!0===c.success)return e.probeSuccesses+=1,e.probeSuccesses>=2&&(e.mode="closed",e.failures=[],e.openDurationMs=3e4,e.openUntilMs=null,e.probeLeaseId=null,e.probeSuccesses=0,e.lastTouchedAtMs=d,g(e,"closed",d)),!0;return m(e,d,Math.min(3e5,2*e.openDurationMs)),!0}})}({onTransition:f.cN}),k=j.recordFailure;j.recordSuccess,j.getDecision,j.tryAcquireProbe;let l=j.releaseProbe},80238:(a,b,c)=>{c.d(b,{Pt:()=>D,Tr:()=>E,c1:()=>z,kI:()=>F,uT:()=>y,vk:()=>C});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(29679),i=c(91254),j=c(75681),k=c(7803),l=c(93930),m=c(79761);let n=Promise.resolve(),o=new Set(["policy_suspended","credential_rejected","reauth_required"]),p=new Set(["authentication","entitlement_or_quota","permission_denied","rate_limited","upstream_transient"]),q=new Set(["not_attempted","succeeded","transient_failed","rejected"]);function r(a,b=200){return null==a||""===a?null:String(a).slice(0,b).replace(/[^a-zA-Z0-9._:/#-]/g,"")||null}function s(a){let b=Number(a);return Number.isInteger(b)&&b>=0&&b<=599?b:null}function t(a,b){let c=a&&"object"==typeof a&&!Array.isArray(a)?a:{},d=Number(b??c.resetsAtMs),e=new Date(d),f=Number.isFinite(d)&&d>0&&Number.isFinite(e.getTime())?e.toISOString():null;return{failureClass:r(c.failureClass,80)?.toLowerCase()||null,providerErrorCode:r(c.providerErrorCode),upstreamRequestId:r(c.upstreamRequestId),failureResetAt:f,authLifecycle:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=q.has(a.refreshOutcome)?a.refreshOutcome:"not_attempted";return{initialStatus:s(a.initialStatus),refreshAttempted:!0===a.refreshAttempted,refreshOutcome:b,retryStatus:s(a.retryStatus)}}(c.authLifecycle)}}function u(a,b){return({policy_suspended:"Kiro reports that this account is suspended or disabled by upstream policy.",credential_rejected:"Kiro rejected the credential after a successful token refresh.",reauth_required:"Kiro rejected the refresh credential; sign in again before re-enabling.",entitlement_or_quota:"Kiro entitlement or quota is temporarily unavailable.",rate_limited:"Kiro rate limit is temporarily exhausted.",authentication:"Kiro authentication is temporarily unavailable.",permission_denied:"Kiro denied this request without confirming an account suspension.",upstream_transient:"Kiro upstream is temporarily unavailable."})[a]||`Kiro upstream request failed with status ${b||"unknown"}.`}function v(a){return"string"!=typeof a?"":a.trim().replace(/^(?:kiro|kr)\//i,"")}function w(a,b){let c=a?.providerSpecificData?.enabledModels;if(!Array.isArray(c)||0===c.length)return!0;let d=v(b);return c.some(a=>v(a)===d)}function x(a){return Object.freeze({...a,supportedModels:Object.freeze([...a.supportedModels||[]]),supportedOperations:Object.freeze([...a.supportedOperations||[]]),capabilities:Object.freeze([...a.capabilities||[]]),quota:a.quota?Object.freeze({...a.quota}):null,circuits:Object.freeze({...a.circuits||{}}),eligibility:Object.freeze({eligible:a.eligibility.eligible,reasons:Object.freeze([...a.eligibility.reasons])})})}async function y(a,b=null,c={}){let e=(0,j.rs)(a),g=Array.isArray(c.allowedConnectionIds)?c.allowedConnectionIds:null;if(!g&&c.apiKey&&(g=await (0,d.ME)(c.apiKey)),j.IS[e]?.noAuth){let a={id:"noauth",provider:e,priority:1,legacyOrder:0,isActive:!0,quarantinedAt:null,reauthRequired:!1,supportedModels:[],supportedOperations:[c.operation||"chat"],capabilities:c.capabilities||[],modelLocked:!1,quota:null,circuits:{},transportAvailable:!1!==c.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:"direct",health:null,sticky:!1};return a.eligibility=(0,l.Z)(a,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null}),Object.freeze([x(a)])}let[h,i]=await Promise.all([(0,d.getProviderConnections)({provider:e}),(0,d.tV)(e)]),k=new Map(i.map(a=>[a.connectionId,a])),n=Number.isFinite(c.nowMs)?c.nowMs:Date.now(),o=c.circuitRegistry||m.tH;return Object.freeze(h.map((a,d)=>{let h=a.providerSpecificData||{},i=k.get(a.id)||null,j=Date.parse(i?.fetchedAt),m=Number.isFinite(j)&&n-j<=f.JN,p=(0,f.td)(i?.usage,e,b),q=(0,f.yH)(i,n),r=Array.isArray(h.enabledModels)?h.enabledModels.map(a=>v(a)):[],s=h.connectionProxyPoolId||h.proxyPoolId||(h.vercelRelayUrl?"relay":"direct"),t={account:{scope:"account",provider:e,accountId:a.id},provider:{scope:"provider",provider:e},egress:{scope:"egress",egressId:s},integrity:{scope:"integrity",provider:e,model:b,egressId:s}},u=Object.fromEntries(Object.entries(t).map(([a,b])=>[a,o.getDecision(b)])),w=Object.entries(u).filter(([,a])=>"half_open"===a.state),y=Object.values(u).some(a=>"open"===a.state);if(!0===c.acquireCircuitProbes&&!y&&1===w.length){let[a]=w[0],b=o.tryAcquireProbe(t[a]);u[a]={...u[a],probeAcquired:!0===b.acquired,...b.leaseId?{probeLeaseId:b.leaseId}:{}}}let z={id:a.id,provider:e,priority:Number.isFinite(a.priority)?a.priority:999,legacyOrder:d,isActive:!0===a.isActive,quarantinedAt:a.quarantinedAt||null,reauthRequired:"reauth_required"===a.failureClass||"token_expired"===a.autoDisabledReason||"reauth_required"===a.autoDisabledReason,supportedModels:r,supportedOperations:Array.isArray(h.supportedOperations)?h.supportedOperations:[c.operation||"chat"],capabilities:Array.isArray(h.capabilities)?h.capabilities:[],modelLocked:(0,f.Bl)(a,b,e),quota:i?{provenance:m?"fresh":"last_successful",exhausted:!!q,remaining:p>=0?p:null,total:p>=0?100:null,fetchedAtMs:Number.isFinite(j)?j:null,validUntilMs:Number.isFinite(j)?j+f.JN:null,exhaustedUntilMs:q||null}:null,circuits:u,transportAvailable:!1!==c.transportAvailable&&!1!==h.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:s,health:"unavailable"===a.testStatus||a.lastError?"degraded":"success"===a.testStatus||"connected"===a.testStatus?"healthy":null,sticky:a.consecutiveUseCount>0};return z.eligibility=(0,l.Z)(z,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null,nowMs:n}),x(z)}))}async function z(a,b=null,g=null,l={}){let m,o=b instanceof Set?b:b?new Set([b]):new Set,p=l?.preferredConnectionId||null,q=!!l?.strictPreferred,r=n;n=new Promise(a=>{m=a});try{let b;await r;let m=(0,j.rs)(a);if(j.IS[m]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[m]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl).map(a=>a.id);c=(0,e.p)(a,b,m)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,vercelRelayUrl:f.vercelRelayUrl||""}}}let n=await (0,d.getProviderConnections)({provider:m,isActive:!0}),s=Array.isArray(l?.allowedConnectionIds)?l.allowedConnectionIds:null;if(!s&&l?.apiKey&&(s=await (0,d.ME)(l.apiKey)),Array.isArray(s)&&s.length>0){let b=new Set(s);n=n.filter(a=>b.has(a.id)),k.debug("AUTH",`${a} | API key scoped to ${n.length} allowed connection(s)`)}k.debug("AUTH",`${a} | total connections: ${n.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${g||"any"}`);let t=null;if("kiro"===m&&g)try{t=await (0,h.ED)(g)}catch(a){k.warn("AUTH",`Kiro model support cache unavailable: ${a?.message||a}`)}let u=t?.state==="supported"||t?.state==="unsupported",v={modelUnavailable:!0,provider:m,model:g};if(0===n.length){if(u)return k.warn("AUTH",`${a} | no eligible supporter for ${g}`),v;return k.warn("AUTH",`No credentials for ${a}`),null}let x=n.filter(a=>!a.quarantinedAt),y=new Set,z=new Set,A=!1;if("kiro"===m&&g){let a=x=x.filter(a=>w(a,g)),b=new Set(t?.unsupportedConnectionIds||[]),c=new Set(t?.freshCatalogConnectionIds||[]),d=n.filter(a=>{let c=a?.providerSpecificData?.enabledModels;return Array.isArray(c)&&c.length>0&&w(a,g)&&!b.has(a.id)}).map(a=>a.id),e=new Set([...t?.supportingConnectionIds||[],...d].filter(a=>!b.has(a)));z=new Set([...b,...[...c].filter(a=>!e.has(a))]),x=x.filter(a=>!z.has(a.id)),A=a.length>0&&a.every(a=>z.has(a.id)),e.size>0?(y=e,u=!0):t?.state==="unsupported"&&(x=[])}let B=new Map;if("codebuddy-cn"===m)for(let a of(await (0,d.tV)(m))){let b=(0,f.yH)(a);b&&B.set(a.connectionId,b)}let C=new Map;if("codebuddy-cn"===m)for(let a of n){if(11140!==Number(a.providerErrorCode))continue;let b=(0,f.kJ)(a);b&&C.set(a.id,b)}let D=new Set,E=new Set;if("codex"===m&&g){let a=await (0,d.tV)(m),b=new Map(a.map(a=>[a.connectionId,a]));for(let a of n)(0,f.xB)(a,g,m)&&E.add(a.id),(0,f.N2)(a,g,b.get(a.id),m,{ignoreProbe:!0})&&!E.has(a.id)&&D.add(a.id)}if("codebuddy"===m||"codebuddy-cn"===m)for(let a of n)(0,i.hN)(a)&&(0,f.xB)(a,null,m)&&E.add(a.id);let F=a=>C.has(a.id)||("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(a)&&E.has(a.id)||(0,f.Bl)(a,g,m)&&!D.has(a.id),G=a=>E.has(a.id)?"codebuddy"===m||"codebuddy-cn"===m?a[(0,f.UM)(null,m)]:new Date(Date.now()+1e3).toISOString():[(0,f.V0)(a,g,m),C.get(a.id)].filter(Boolean).sort().at(-1)||null,H=x.filter(a=>!(o.has(a.id)||F(a)||B.has(a.id))),I=H,J=!1;if("kiro"===m&&g&&!q){let a=H.filter(a=>y.has(a.id));if(a.length>0)I=a;else{let a=H.filter(a=>!y.has(a.id)),b=[...o].filter(a=>!y.has(a)).length;I=a,b>=3?(I=[],J=!0):o.size>0&&0===a.length&&(J=!0)}}if(q&&p){let b=n.find(a=>a.id===p);if(!b)return k.warn("AUTH",`${a} | pinned account not found: ${p}`),null;if(b.quarantinedAt)return k.warn("AUTH",`${a} | pinned account is quarantined: ${b.id?.slice(0,8)}`),null;if(z.has(b.id))return k.warn("AUTH",`${a} | pinned account does not support ${g}: ${b.id?.slice(0,8)}`),v;if(!x.some(a=>a.id===b.id))return k.warn("AUTH",`${a} | pinned account is not eligible for ${g||"this request"}: ${b.id?.slice(0,8)}`),u?v:null;if(o.has(b.id))return k.warn("AUTH",`${a} | pinned account excluded after failure: ${b.id?.slice(0,8)}`),null;if(F(b)||B.has(b.id)){let a=[G(b),B.has(b.id)?new Date(B.get(b.id)).toISOString():null].filter(Boolean).sort().at(-1);return{allRateLimited:!0,retryAfter:a,retryAfterHuman:(0,f.Qo)(a),lastError:b.lastError||"Pinned account unavailable",lastErrorCode:b.errorCode||null}}I=[b]}if(k.debug("AUTH",`${a} | available: ${I.length}/${x.length}`),n.forEach(a=>{let b=o.has(a.id),c=F(a),d=D.has(a.id),e=B.get(a.id),h=!!a.quarantinedAt,i=z.has(a.id);if(b||c||e||d||h||i){let j=(0,f.kJ)(a),l=E.has(a.id);k.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${c?`modelLocked(${g}) until ${j}`:""} ${d?`staleLockRecovered(${g})`:""} ${l?`recoveryProbeInFlight(${g})`:""} ${e?`quotaExhausted until ${new Date(e).toISOString()}`:""} ${h?"quarantined":""} ${i?`unsupported(${g})`:""}`)}}),0===I.length){if(J)return k.warn("AUTH",`${a} | bounded fallback exhausted for ${g}`),null;let b=x.filter(a=>F(a)),c=x.map(a=>[F(a)?G(a):null,B.has(a.id)?new Date(B.get(a.id)).toISOString():null].filter(Boolean).sort().at(-1)).filter(Boolean).sort()[0]||null;if(c){let d=b[0];return k.warn("AUTH",`${a} | all ${x.length} candidate accounts locked for ${g||"all"} (${(0,f.Qo)(c)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,f.Qo)(c),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return k.warn("AUTH",`${a} | all ${n.length} accounts unavailable`),u||A?v:null}let K=await (0,d.mt)(),L=(K.providerStrategies||{})[m]||{},M=L.fallbackStrategy||K.fallbackStrategy||"fill-first";if(p&&(b=I.find(a=>a.id===p))&&k.debug("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if(q&&p)return k.warn("AUTH",`${a} | pinned account unavailable: ${p}`),null;else if("round-robin"===M){let a=L.stickyRoundRobinLimit||K.stickyRoundRobinLimit||3,c=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else if("most-quota"===M){let a=await Promise.all(I.map(async a=>{let b=-1;try{let c=await (0,d.getQuotaSnapshot)(a.id);b=(0,f.td)(c?.usage,m,g)}catch{}return{conn:a,remaining:b}}));a.sort((a,b)=>a.remaining!==b.remaining?b.remaining-a.remaining:(a.conn.priority||999)-(b.conn.priority||999)),b=(a.filter(a=>0!==a.remaining)[0]||a[0]).conn,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else if("lowest-latency"===M){let{getLatencyStats:e}=await Promise.resolve().then(c.bind(c,93999)),f=await e(),g=I.map(a=>{let b=f.get(`${a.provider}|${a.id}`)||f.get(`${m}|${a.id}`);return{conn:a,avgMs:b?b.avgMs:null,samples:b?b.samples:0}});g.sort((a,b)=>null===a.avgMs&&null===b.avgMs?(a.conn.priority||999)-(b.conn.priority||999):null===a.avgMs?1:null===b.avgMs?-1:a.avgMs!==b.avgMs?a.avgMs-b.avgMs:(a.conn.priority||999)-(b.conn.priority||999)),b=g[0].conn,k.debug("AUTH",`${a} | lowest-latency → ${b.id?.slice(0,8)} (${g[0].avgMs??"?"}ms avg, ${g[0].samples} samples)`),await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else b=I[0];if(D.has(b.id)){let a=(0,f.WP)(g,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}if(("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(b)){let a=(0,f.WP)(null,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}let N=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId||b.providerSpecificData?.projectId||null,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:N.connectionProxyEnabled,connectionProxyUrl:N.connectionProxyUrl,connectionNoProxy:N.connectionNoProxy,strictProxy:!0===N.strictProxy,connectionProxyPoolId:N.proxyPoolId||null,vercelRelayUrl:N.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{m&&m()}}async function A(a,b,e,h=null,l=null,m=null,n=null,o=null){let p,q,r;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let s=(0,j.rs)(h),t=(0,f.UM)(l,s);if((0,f.d5)(b,e))return await (0,d.updateProviderConnection)(a,{[t]:null}),k.warn("AUTH",`shared egress/WAF error; fallback without locking account [${b}]`),{shouldFallback:!0,cooldownMs:0};if((0,f.P0)(b,e))return await (0,d.updateProviderConnection)(a,{[t]:null}),k.warn("AUTH",`non-account error; no fallback [${b}] ${"string"==typeof e?e.slice(0,100):"Provider error"}`),{shouldFallback:!1,cooldownMs:0};let u=(await (0,d.getProviderConnections)({provider:s})).find(b=>b.id===a),v=u?.backoffLevel||0,w=(0,f.UO)(e),x="codebuddy-cn"===s&&14018===w,y="codebuddy"===s&&14018===w,z="codebuddy-cn"===s&&11140===w;if(z){let c=new Date().toISOString(),e="CodeBuddy CN rejected this credential (11140 request illegal).";return await (0,d.Iu)(a,(a,d)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let f={...a,providerSpecificData:(0,i.r_)(a.providerSpecificData,c,w)};return{connection:{[t]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,providerErrorCode:w,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:"credential_rejected",consecutiveAuthFailures:Math.max(1,(a.consecutiveAuthFailures||0)+1),backoffLevel:0,providerSpecificData:f.providerSpecificData},quotaUsage:(0,i.pX)(d?.usage||{},f)}}),k.warn("AUTH",`${u?.displayName||u?.name||a.slice(0,8)} quarantined immediately [11140]`),{shouldFallback:!0,cooldownMs:0}}if(x){let b=await (0,d.getQuotaSnapshot)(a);m=(0,f.lI)(b?.usage)||m}m&&m>Date.now()?(p=!0,q=Math.min(m-Date.now(),g.fh),r=0):{shouldFallback:p,cooldownMs:q,newBackoffLevel:r}=(0,f.hk)(b,e,v);let B=l&&(0,f.Hp)(b,e)?(0,f.gU)(l,s):{};if(!p)return await (0,d.updateProviderConnection)(a,{[t]:null,...B}),{shouldFallback:!1,cooldownMs:0};let C="string"==typeof e?e.slice(0,100):"Provider error",D=x||y,E=D?null:(0,f.LV)(s,l),F=(0,f.S5)(E,q,s),G=new Date().toISOString(),H={...F,...B,[t]:null,...D?{[(0,f.UM)(null,s)]:null}:{},testStatus:"unavailable",lastError:C,errorCode:b,providerErrorCode:w,modelLockReason:{model:E||"__all",providerErrorCode:w,reason:C,lockedAt:G,resetsAt:new Date(Date.now()+q).toISOString()},lastErrorAt:G,backoffLevel:r??v};if(D)try{await (0,d.Iu)(a,(a,b)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let c={...a,providerSpecificData:(0,i.QN)(a.providerSpecificData,G)};return{connection:{...H,providerSpecificData:c.providerSpecificData},quotaUsage:(0,i.pX)(b?.usage||{},c)}})}catch(a){throw k.warn("AUTH",`CodeBuddy runtime exhaustion update failed: ${a?.message||a}`),a}else await (0,d.updateProviderConnection)(a,H);let I=Object.keys(F)[0],J=u?.displayName||u?.name||u?.email||a.slice(0,8);if(k.warn("AUTH",`${J} locked ${I} for ${Math.round(q/1e3)}s [${b}]`),h&&c.e(6802).then(c.bind(c,86802)).then(a=>{a.alertProviderDown(h,`${J}: ${C}`),(429===b||C.toLowerCase().includes("quota"))&&a.alertQuotaExhausted(h,J)}).catch(()=>{}),h&&b&&C&&console.error(`❌ ${h} [${b}]: ${C}`),new Set([401,403]).has(b)&&!x){let c=("string"==typeof e?e:"").toLowerCase(),f=["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>c.includes(a)),g=o?.failureClass==="credential_rejected";if(z||g||!f&&["token expired","token is expired","token has expired","expired token","token invalid","invalid token","revoked","invalid_grant","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>c.includes(a))){let e=(u?.consecutiveAuthFailures||0)+1;e>=3?(await (0,d.updateProviderConnection)(a,{isActive:!1,autoDisabledAt:new Date().toISOString(),autoDisabledReason:c.includes("banned")||c.includes("suspended")||c.includes("restricted")||c.includes("account disabled")?"banned":"token_expired",consecutiveAuthFailures:e}),k.warn("AUTH",`⛔ Auto-disabled ${J} after ${e} consecutive auth failures [${b}]: ${C}`)):(await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:e}),k.warn("AUTH",`${J} auth failure ${e}/3 [${b}]: ${C}`))}}return{shouldFallback:!0,cooldownMs:q}}async function B(a,b,c,e,g){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let h=(await (0,d.getProviderConnections)({provider:c})).find(b=>b.id===a),i=h?.displayName||h?.name||h?.email||a.slice(0,8),j=new Date().toISOString(),l=`${c} rejected the refresh credential; sign in again before re-enabling.`;return await (0,d.updateProviderConnection)(a,{[(0,f.UM)(e,c)]:null,isActive:!1,testStatus:"unavailable",lastError:l,lastErrorType:"auth",errorCode:b,failureClass:"reauth_required",providerErrorCode:g.providerErrorCode,upstreamRequestId:g.upstreamRequestId,failureResetAt:g.failureResetAt,authLifecycle:g.authLifecycle,quarantinedAt:j,quarantineReason:l,lastErrorAt:j,autoDisabledAt:j,autoDisabledReason:"reauth_required",consecutiveAuthFailures:Math.max(1,(h?.consecutiveAuthFailures||0)+1),backoffLevel:0}),k.warn("AUTH",`${i} quarantined immediately [reauth_required]`),{shouldFallback:!0,cooldownMs:0}}async function C(a,b,c,e=null,i=null,l=null,m=null,n=null){let q,s,v,w=(0,j.rs)(e);if("antigravity"===w){let c=t(m,l),e="policy_suspended"===c.failureClass&&"ORG_CODE_ASSIST_RESTRICTED"===c.providerErrorCode,g="account_validation_required"===c.failureClass&&"VALIDATION_REQUIRED"===c.providerErrorCode;if(e||g){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let e=(await (0,d.getProviderConnections)({provider:w})).find(b=>b.id===a),h=new Date().toISOString(),j=g?"Google requires account verification before Antigravity can use Gemini Code Assist.":"Google organization policy blocks Gemini Code Assist access for this Antigravity account.",l=(0,f.UM)(i,w);await (0,d.Op)(a,a=>({...Object.fromEntries(Object.keys(a||{}).filter(a=>a.startsWith("modelLock_")).map(a=>[a,null])),[l]:null,modelLockReason:null,isActive:!1,testStatus:"unavailable",lastError:j,errorCode:b,failureClass:c.failureClass,providerErrorCode:c.providerErrorCode,upstreamRequestId:c.upstreamRequestId,failureResetAt:c.failureResetAt,authLifecycle:c.authLifecycle,quarantinedAt:h,quarantineReason:j,lastErrorAt:h,autoDisabledAt:h,autoDisabledReason:c.failureClass,consecutiveAuthFailures:Math.max(1,(a?.consecutiveAuthFailures||0)+1),backoffLevel:0}));let m=e?.displayName||e?.name||e?.email||a.slice(0,8);return k.warn("AUTH",`${m} quarantined immediately [${c.failureClass}]`),{shouldFallback:!0,cooldownMs:0}}}if("kiro"!==w){let d=t(m,l);return"reauth_required"===d.failureClass?B(a,b,w,i,d):A(a,b,c,e,i,l,n,d)}if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let x=(0,f.UM)(i,w),y=t(m,l),{failureClass:z}=y;if("shared_egress_waf"===z||(0,f.d5)(b,c))return await (0,d.updateProviderConnection)(a,{[x]:null}),k.warn("AUTH",`Kiro shared egress/WAF error; fallback without account punishment [${b}]`),{shouldFallback:!0,cooldownMs:0};if(function(a,b){if("invalid_model"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?MODEL|MODEL[_-]?(?:NOT[_-]?(?:FOUND|SUPPORTED)|UNSUPPORTED)/.test(c)}(z,y.providerErrorCode)){await (0,d.updateProviderConnection)(a,{[x]:null});let b=!1;try{await (0,h.FL)(a,i);let c=(await (0,d.getProviderConnections)({provider:w,isActive:!0})).filter(a=>!a.quarantinedAt).map(a=>a.id);b=!!i&&await (0,h.CY)(i,a,c)}catch(a){k.warn("AUTH",`Kiro model support cache update failed: ${a?.message||a}`)}return k.warn("AUTH",`Kiro model is unsupported by ${a.slice(0,8)}; ${b?"trying a known supporter":"not rotating to an unknown account"}`),{shouldFallback:b,cooldownMs:0}}if(function(a,b){if("invalid_request"===a||"request_error"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?(?:REQUEST|ARGUMENT)|VALIDATION|BAD[_-]?REQUEST|MALFORMED/.test(c)}(z,y.providerErrorCode)||(0,f.P0)(b,c))return await (0,d.updateProviderConnection)(a,{[x]:null}),k.warn("AUTH",`Kiro request error; no account lock or credential rotation [${b}]`),{shouldFallback:!1,cooldownMs:0};let D=(await (0,d.getProviderConnections)({provider:w})).find(b=>b.id===a),E=D?.backoffLevel||0,F=y.providerErrorCode||r((0,f.UO)(c)),G=D?.displayName||D?.name||D?.email||a.slice(0,8);if(o.has(z)){let c=new Date().toISOString(),e=u(z,b);return await (0,d.updateProviderConnection)(a,{[x]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,failureClass:z,providerErrorCode:F,upstreamRequestId:y.upstreamRequestId,failureResetAt:y.failureResetAt,authLifecycle:y.authLifecycle,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:z,consecutiveAuthFailures:Math.max(1,(D?.consecutiveAuthFailures||0)+1),backoffLevel:0}),k.warn("AUTH",`${G} quarantined immediately [${z}]`),{shouldFallback:!0,cooldownMs:0}}let H=Number(l);if(Number.isFinite(H)&&H>Date.now()?(q=!0,s=Math.min(H-Date.now(),g.fh),v=0):{shouldFallback:q,cooldownMs:s,newBackoffLevel:v}=(0,f.hk)(b,c,E),!q)return await (0,d.updateProviderConnection)(a,{[x]:null}),{shouldFallback:!1,cooldownMs:0};let I=p.has(z)||403===b||408===b||429===b||b>=500,J=z||(429===b?"rate_limited":403===b?"permission_denied":b>=500?"upstream_transient":null),K=u(J,b),L=I?null:(0,f.LV)(w,i),M=(0,f.S5)(L,s,w),N=new Date().toISOString(),O=new Date(Date.now()+s).toISOString();await (0,d.updateProviderConnection)(a,{...M,[x]:null,testStatus:"unavailable",lastError:K,errorCode:b,failureClass:J,providerErrorCode:F,upstreamRequestId:y.upstreamRequestId,failureResetAt:y.failureResetAt,authLifecycle:y.authLifecycle,modelLockReason:{model:L||"__all",providerErrorCode:F,reason:K,lockedAt:N,resetsAt:O},lastErrorAt:N,backoffLevel:v??E,consecutiveAuthFailures:0});let P=Object.keys(M)[0];if(k.warn("AUTH",`${G} locked ${P} for ${Math.round(s/1e3)}s [${b}]`),!z&&(401===b||403===b)){let e=("string"==typeof c?c:"").toLowerCase();if(!["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>e.includes(a))&&["token expired","token invalid","invalid token","revoked","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>e.includes(a))){let c=(D?.consecutiveAuthFailures||0)+1,f=["banned","suspended","restricted","account disabled"].some(a=>e.includes(a));if(c>=3){let e=new Date().toISOString(),g=f?u("policy_suspended",b):"Kiro rejected this credential three consecutive times.";await (0,d.updateProviderConnection)(a,{isActive:!1,quarantinedAt:e,quarantineReason:g,failureClass:f?"policy_suspended":"authentication",autoDisabledAt:e,autoDisabledReason:f?"policy_suspended":"token_expired",consecutiveAuthFailures:c}),k.warn("AUTH",`${G} quarantined after ${c} unstructured auth failures`)}else await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:c})}}return{shouldFallback:!0,cooldownMs:s}}async function D(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,g=(0,j.rs)(e.provider),h=(0,f.LV)(g,c),l=Date.now(),m=(0,f.UM)(c,g),n=!1,o=!1,p=(a,b=!1)=>{if(!a||b&&(a.quarantinedAt||e.quarantinedAt))return null;let d=(a,b)=>{if(!a.startsWith(b))return!1;let d=a.slice(b.length);return"__all"===d||!c||(0,f.LV)(g,d)===h};if(b&&Object.keys(a).some(b=>(d(b,"modelLock_")||d(b,"modelRecoveryProbe_"))&&a[b]!==e[b]&&Date.parse(a[b])>l))return n=!0,null;let i=Object.keys(a).filter(a=>a.startsWith("modelLock_")),j=c?(0,f.MC)(c,g):null,k=!!j&&null!=a[j];if("unavailable"!==a.testStatus&&!a.lastError&&0===i.length&&!k)return null;let o=i.filter(d=>{if(b&&a[d]!==e[d])return!1;let i=d.slice(10);if(c&&(0,f.LV)(g,i)===h||c&&"modelLock___all"===d)return!0;let j=a[d];return j&&new Date(j).getTime()<=l});if(0===o.length&&"unavailable"!==a.testStatus&&!a.lastError&&!k)return null;let p=i.filter(b=>!o.includes(b)&&Date.parse(a[b])>l),q={...Object.fromEntries(o.map(a=>[a,null])),...k?{[j]:null}:{}};return b&&a[m]!==e[m]||(q[m]=null),0===p.length&&Object.assign(q,{testStatus:"active",lastError:null,errorCode:null,providerErrorCode:null,..."kiro"===g?{failureClass:null,upstreamRequestId:null,failureResetAt:null,authLifecycle:null}:{},modelLockReason:null,lastErrorAt:null,backoffLevel:0,consecutiveAuthFailures:0}),q};if("kiro"===g){await (0,d.Op)(a,a=>p(a,!0)),n&&k.debug("AUTH",`Kiro success did not clear newer failure state for ${a.slice(0,8)}`);return}if("codebuddy"===g||"codebuddy-cn"===g){let b=(0,i.kt)(e);await (0,d.Iu)(a,a=>{if(a.quarantinedAt||(0,i.uF)(a))return null;let c=(0,i.kt)(a);if(c&&c!==b)return null;let d=p(a)||{};return(b&&(0,i.kt)(a)===b&&(d.providerSpecificData=(0,i.US)(a.providerSpecificData),d[(0,f.UM)(null,g)]=null,o=!0),0===Object.keys(d).length)?null:{connection:d,...o?{quotaUsage:null}:{}}});return}let q=p(e);q&&await (0,d.updateProviderConnection)(a,q)}function E(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function F(a){return!!a&&await (0,d.ek)(a)}},91254:(a,b,c)=>{c.d(b,{CG:()=>p,QN:()=>k,US:()=>o,hN:()=>j,kt:()=>i,pX:()=>q,r_:()=>n,uF:()=>m});let d="codebuddyRuntimeExhaustedAt",e="codebuddyRuntimeExhaustedCode",f="codebuddyRuntimeRejectedAt",g="codebuddyRuntimeRejectedCode";function h(a){return a?.provider==="codebuddy"||a?.provider==="codebuddy-cn"}function i(a){return h(a)&&a.providerSpecificData?.[d]||null}function j(a){return!!i(a)}function k(a,b){return{...a||{},[d]:b,[e]:14018}}function l(a){return a?.provider!=="codebuddy-cn"?null:a.providerSpecificData?.[f]||null}function m(a){return!!l(a)}function n(a,b,c=11140){return{...a||{},[f]:b,[g]:c}}function o(a){let b={...a||{}};return delete b[d],delete b[e],b}function p(a){let b=o(a);return delete b[f],delete b[g],b}function q(a,b){if(!h(b))return a;let c=l(b),d=i(b);if(!c&&!d)return a;let e=a?.billingQuotas||a?.quotas||{};if(c)return{...a||{},message:"CodeBuddy CN chat API rejected this credential (11140); billing package balance is nominal and does not prove chat access.",billingQuotas:e,runtimeStatus:"credential_rejected",chatUsable:!1,runtimeRejectedAt:c,runtimeRejectedCode:Number(b.providerSpecificData?.[g])||11140};let f=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=Number(b?.total);return[a,{...b||{},...Number.isFinite(c)?{used:c}:{},remaining:0,remainingPercentage:0}]}));return{...a||{},message:"CodeBuddy chat API reported exhausted credits (14018); billing package balance is nominal until a chat request succeeds.",billingQuotas:e,quotas:f,runtimeStatus:"exhausted",chatUsable:!1,runtimeExhausted:!0,runtimeExhaustedAt:d,runtimeExhaustedCode:14018}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93930:(a,b,c)=>{c.d(b,{Z:()=>e});let d=Object.freeze([["unsupported_model",(a,b)=>Array.isArray(a.supportedModels)&&a.supportedModels.length>0&&!a.supportedModels.includes(b.model)],["unsupported_operation",(a,b)=>Array.isArray(a.supportedOperations)&&a.supportedOperations.length>0&&!a.supportedOperations.includes(b.operation)],["unsupported_capability",(a,b)=>{let c=new Set(a.capabilities||[]);return c.size>0&&(b.requiredCapabilities||[]).some(a=>!c.has(a))}],["api_key_model_restricted",(a,b)=>Array.isArray(b.allowedModels)&&b.allowedModels.length>0&&!b.allowedModels.includes(b.model)],["api_key_provider_restricted",(a,b)=>Array.isArray(b.allowedProviders)&&b.allowedProviders.length>0&&!b.allowedProviders.includes(a.provider)],["connection_restricted",(a,b)=>Array.isArray(b.allowedConnectionIds)&&b.allowedConnectionIds.length>0&&!b.allowedConnectionIds.includes(a.id)],["explicit_pin_mismatch",(a,b)=>!!b.pinnedConnectionId&&b.pinnedConnectionId!==a.id],["inactive",a=>!0!==a.isActive],["quarantined",a=>!!a.quarantinedAt],["reauth_required",a=>!0===a.reauthRequired],["model_locked",a=>!0===a.modelLocked],["quota_exhausted",(a,b)=>{let c=a.quota;return!!c&&!0===c.exhausted&&("last_successful"!==c.provenance||!(Number(c.remaining)>0&&Number(c.validUntilMs)>Number(b.nowMs||Date.now())))}],["circuit_open",a=>Object.values(a.circuits||{}).some(a=>a?.state==="open"||a?.state==="half_open"&&a?.probeAcquired!==!0)],["missing_transport",a=>!1===a.transportAvailable],["outbound_rejected",a=>!1===a.outboundAllowed]]);function e(a={},b={}){let c=d.filter(([,c])=>c(a,b)).map(([a])=>a);return Object.freeze({eligible:0===c.length,reasons:Object.freeze(c)})}}};
1
+ "use strict";exports.id=415,exports.ids=[415],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},39326:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0;return{connectionProxyEnabled:b,connectionProxyUrl:e(a?.connectionProxyUrl),connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},47293:(a,b,c)=>{c.d(b,{A:()=>f});let d=new Uint8Array(16);var e=c(50122);let f=function(a,b,c){return b||a||!crypto.randomUUID?function(a,b,c){let f=(a=a||{}).random??a.rng?.()??crypto.getRandomValues(d);if(f.length<16)throw Error("Random bytes length must be >= 16");if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=f[a];return b}return(0,e.k)(f)}(a,b,c):crypto.randomUUID()}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},79761:(a,b,c)=>{c.d(b,{BU:()=>l,hb:()=>k,tH:()=>j});var d=c(40669),e=c(35989),f=c(75434);let g=new Set(["account","provider","egress","integrity"]);function h(a,b="unknown",c=160){return String(a||"").trim().toLowerCase().replace(/[^a-z0-9._:-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,c)||b}function i(a={}){let b=g.has(a.scope)?a.scope:null;if(!b)return null;let c=h((0,d.g2)(h(a.provider)),"unknown-provider",80),f=h(a.accountId||a.connectionId,"unknown-account"),j=h(a.egressId,"direct"),k=(0,e.Nm)(a.modelFamily||a.model);return Object.freeze("account"===b?{scope:b,provider:c,accountId:f}:"provider"===b?{scope:b,provider:c}:"egress"===b?{scope:b,egressId:j}:{scope:b,provider:c,modelFamily:k,egressId:j})}let j=function(a={}){let b="function"==typeof a.now?a.now:Date.now,c="function"==typeof a.onTransition?a.onTransition:()=>{},e=new Map,f=0;function g(a,b,d){c(Object.freeze({type:"circuit",provider:a.dimensions.provider,phase:b,reason:a.dimensions.scope,deadlineMs:a.openUntilMs?Math.max(0,a.openUntilMs-d):0,...a.dimensions.modelFamily?{modelFamily:a.dimensions.modelFamily}:{}}))}function j(a){for(let[b,c]of e)c.failures=c.failures.filter(b=>a-b.atMs<=6e4),"closed"===c.mode&&0===c.failures.length&&a-c.lastTouchedAtMs>18e5&&e.delete(b);let b=[...e.entries()].filter(([,a])=>"closed"===a.mode).sort((a,b)=>a[1].lastTouchedAtMs-b[1].lastTouchedAtMs);for(;b.length>2048;)e.delete(b.shift()[0])}function k(a,c=!1){let d=i(a);if(!d)return null;let f=Object.values(d).join("\x1f"),g=e.get(f);return!g&&c&&(g={dimensions:d,mode:"closed",failures:[],openDurationMs:3e4,openUntilMs:null,probeLeaseId:null,probeSuccesses:0,lastTouchedAtMs:b()},e.set(f,g)),g}function l(a,b){a?.mode==="open"&&b>=a.openUntilMs&&(a.mode="half_open",a.probeLeaseId=null,g(a,"half_open",b))}function m(a,b,c=a.openDurationMs){a.mode="open",a.openDurationMs=Math.min(3e5,Math.max(3e4,c)),a.openUntilMs=b+a.openDurationMs,a.probeLeaseId=null,a.probeSuccesses=0,a.lastTouchedAtMs=b,g(a,"open",b)}return Object.freeze({recordFailure:function(a={}){let c;if(!1===a.evidentiary)return!1;let e=b();j(e);let f=k(a,!0);return!!f&&(l(f,e),"closed"===f.mode)&&(f.failures=f.failures.filter(a=>e-a.atMs<=6e4),f.failures.push(Object.freeze({atMs:e,accountId:h(a.accountId||a.connectionId,"unknown-account"),provider:h((0,d.g2)(h(a.provider)),"unknown-provider",80)})),f.lastTouchedAtMs=e,c=f.failures.length,("integrity"===f.dimensions.scope?c>=1:!(c<5)&&("provider"===f.dimensions.scope?new Set(f.failures.map(a=>a.accountId)).size>=2:"egress"!==f.dimensions.scope||new Set(f.failures.map(a=>a.provider)).size>=2))&&m(f,e),!0)},recordSuccess:function(a={}){let c=b(),d=k(a);return!!d&&(l(d,c),"closed"===d.mode&&(d.failures=[],d.lastTouchedAtMs=c,!0))},getDecision:function(a){let c=b();j(c);let d=i(a),e=k(a);return e?(l(e,c),Object.freeze({...e.dimensions,state:e.mode,openUntilMs:e.openUntilMs,openDurationMs:e.openDurationMs,probeInFlight:!!e.probeLeaseId,consecutiveProbeSuccesses:e.probeSuccesses})):Object.freeze({...d||{scope:null},state:"closed",openUntilMs:null,openDurationMs:3e4,probeInFlight:!1,consecutiveProbeSuccesses:0})},tryAcquireProbe:function(a){let c=b(),d=k(a);return d?(l(d,c),"half_open"!==d.mode)?Object.freeze({acquired:!1,reason:"open"===d.mode?"circuit_open":"circuit_closed"}):d.probeLeaseId?Object.freeze({acquired:!1,reason:"probe_in_flight"}):(d.probeLeaseId=`probe-${c}-${++f}`,d.lastTouchedAtMs=c,Object.freeze({acquired:!0,leaseId:d.probeLeaseId})):Object.freeze({acquired:!1,reason:"circuit_closed"})},releaseProbe:function(a,c={}){let d=b(),e=k(a);if(!e||"half_open"!==e.mode||!e.probeLeaseId||c.leaseId!==e.probeLeaseId)return!1;if(e.probeLeaseId=null,e.lastTouchedAtMs=d,!0===c.cancelled)return!0;if(!0===c.success)return e.probeSuccesses+=1,e.probeSuccesses>=2&&(e.mode="closed",e.failures=[],e.openDurationMs=3e4,e.openUntilMs=null,e.probeLeaseId=null,e.probeSuccesses=0,e.lastTouchedAtMs=d,g(e,"closed",d)),!0;return m(e,d,Math.min(3e5,2*e.openDurationMs)),!0}})}({onTransition:f.cN}),k=j.recordFailure;j.recordSuccess,j.getDecision,j.tryAcquireProbe;let l=j.releaseProbe},80238:(a,b,c)=>{c.d(b,{Pt:()=>D,Tr:()=>E,c1:()=>z,kI:()=>F,uT:()=>y,vk:()=>C});var d=c(89718),e=c(39326),f=c(12557),g=c(3662),h=c(29679),i=c(91254),j=c(75681),k=c(7803),l=c(93930),m=c(79761);let n=Promise.resolve(),o=new Set(["policy_suspended","credential_rejected","reauth_required"]),p=new Set(["authentication","entitlement_or_quota","permission_denied","rate_limited","upstream_transient"]),q=new Set(["not_attempted","succeeded","transient_failed","rejected"]);function r(a,b=200){return null==a||""===a?null:String(a).slice(0,b).replace(/[^a-zA-Z0-9._:/#-]/g,"")||null}function s(a){let b=Number(a);return Number.isInteger(b)&&b>=0&&b<=599?b:null}function t(a,b){let c=a&&"object"==typeof a&&!Array.isArray(a)?a:{},d=Number(b??c.resetsAtMs),e=new Date(d),f=Number.isFinite(d)&&d>0&&Number.isFinite(e.getTime())?e.toISOString():null;return{failureClass:r(c.failureClass,80)?.toLowerCase()||null,providerErrorCode:r(c.providerErrorCode),upstreamRequestId:r(c.upstreamRequestId),failureResetAt:f,authLifecycle:function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=q.has(a.refreshOutcome)?a.refreshOutcome:"not_attempted";return{initialStatus:s(a.initialStatus),refreshAttempted:!0===a.refreshAttempted,refreshOutcome:b,retryStatus:s(a.retryStatus)}}(c.authLifecycle)}}function u(a,b){return({policy_suspended:"Kiro reports that this account is suspended or disabled by upstream policy.",credential_rejected:"Kiro rejected the credential after a successful token refresh.",reauth_required:"Kiro rejected the refresh credential; sign in again before re-enabling.",entitlement_or_quota:"Kiro entitlement or quota is temporarily unavailable.",rate_limited:"Kiro rate limit is temporarily exhausted.",authentication:"Kiro authentication is temporarily unavailable.",permission_denied:"Kiro denied this request without confirming an account suspension.",upstream_transient:"Kiro upstream is temporarily unavailable."})[a]||`Kiro upstream request failed with status ${b||"unknown"}.`}function v(a){return"string"!=typeof a?"":a.trim().replace(/^(?:kiro|kr)\//i,"")}function w(a,b){let c=a?.providerSpecificData?.enabledModels;if(!Array.isArray(c)||0===c.length)return!0;let d=v(b);return c.some(a=>v(a)===d)}function x(a){return Object.freeze({...a,supportedModels:Object.freeze([...a.supportedModels||[]]),supportedOperations:Object.freeze([...a.supportedOperations||[]]),capabilities:Object.freeze([...a.capabilities||[]]),quota:a.quota?Object.freeze({...a.quota}):null,circuits:Object.freeze({...a.circuits||{}}),eligibility:Object.freeze({eligible:a.eligibility.eligible,reasons:Object.freeze([...a.eligibility.reasons])})})}async function y(a,b=null,c={}){let e=(0,j.rs)(a),g=Array.isArray(c.allowedConnectionIds)?c.allowedConnectionIds:null;if(!g&&c.apiKey&&(g=await (0,d.ME)(c.apiKey)),j.IS[e]?.noAuth){let a={id:"noauth",provider:e,priority:1,legacyOrder:0,isActive:!0,quarantinedAt:null,reauthRequired:!1,supportedModels:[],supportedOperations:[c.operation||"chat"],capabilities:c.capabilities||[],modelLocked:!1,quota:null,circuits:{},transportAvailable:!1!==c.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:"direct",health:null,sticky:!1};return a.eligibility=(0,l.Z)(a,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null}),Object.freeze([x(a)])}let[h,i]=await Promise.all([(0,d.getProviderConnections)({provider:e}),(0,d.tV)(e)]),k=new Map(i.map(a=>[a.connectionId,a])),n=Number.isFinite(c.nowMs)?c.nowMs:Date.now(),o=c.circuitRegistry||m.tH;return Object.freeze(h.map((a,d)=>{let h=a.providerSpecificData||{},i=k.get(a.id)||null,j=Date.parse(i?.fetchedAt),m=Number.isFinite(j)&&n-j<=f.JN,p=(0,f.td)(i?.usage,e,b),q=(0,f.yH)(i,n),r=Array.isArray(h.enabledModels)?h.enabledModels.map(a=>v(a)):[],s=h.connectionProxyPoolId||h.proxyPoolId||(h.vercelRelayUrl?"relay":"direct"),t={account:{scope:"account",provider:e,accountId:a.id},provider:{scope:"provider",provider:e},egress:{scope:"egress",egressId:s},integrity:{scope:"integrity",provider:e,model:b,egressId:s}},u=Object.fromEntries(Object.entries(t).map(([a,b])=>[a,o.getDecision(b)])),w=Object.entries(u).filter(([,a])=>"half_open"===a.state),y=Object.values(u).some(a=>"open"===a.state);if(!0===c.acquireCircuitProbes&&!y&&1===w.length){let[a]=w[0],b=o.tryAcquireProbe(t[a]);u[a]={...u[a],probeAcquired:!0===b.acquired,...b.leaseId?{probeLeaseId:b.leaseId}:{}}}let z={id:a.id,provider:e,priority:Number.isFinite(a.priority)?a.priority:999,legacyOrder:d,isActive:!0===a.isActive,quarantinedAt:a.quarantinedAt||null,reauthRequired:"reauth_required"===a.failureClass||"token_expired"===a.autoDisabledReason||"reauth_required"===a.autoDisabledReason,supportedModels:r,supportedOperations:Array.isArray(h.supportedOperations)?h.supportedOperations:[c.operation||"chat"],capabilities:Array.isArray(h.capabilities)?h.capabilities:[],modelLocked:(0,f.Bl)(a,b,e),quota:i?{provenance:m?"fresh":"last_successful",exhausted:!!q,remaining:p>=0?p:null,total:p>=0?100:null,fetchedAtMs:Number.isFinite(j)?j:null,validUntilMs:Number.isFinite(j)?j+f.JN:null,exhaustedUntilMs:q||null}:null,circuits:u,transportAvailable:!1!==c.transportAvailable&&!1!==h.transportAvailable,outboundAllowed:!1!==c.outboundAllowed,egressId:s,health:"unavailable"===a.testStatus||a.lastError?"degraded":"success"===a.testStatus||"connected"===a.testStatus?"healthy":null,sticky:a.consecutiveUseCount>0};return z.eligibility=(0,l.Z)(z,{...c,provider:e,model:b,operation:c.operation||"chat",allowedConnectionIds:g,pinnedConnectionId:c.strictPreferred?c.preferredConnectionId:null,nowMs:n}),x(z)}))}async function z(a,b=null,g=null,l={}){let m,o=b instanceof Set?b:b?new Set([b]):new Set,p=l?.preferredConnectionId||null,q=!!l?.strictPreferred,r=n;n=new Promise(a=>{m=a});try{let b;await r;let m=(0,j.rs)(a);if(j.IS[m]?.noAuth){let a=((await (0,d.mt)()).providerStrategies||{})[m]||{},b=a.rotateStrategy||"none",c=a.proxyPoolId||null;if("none"!==b){let a=(await (0,d.ui)({isActive:!0})).filter(a=>a.proxyUrl),f=a.filter(a=>"error"!==a.testStatus),g=(f.length?f:a).map(a=>a.id);c=(0,e.p)(g,b,m)}let f=await (0,e.B)({proxyPoolId:c||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:f.connectionProxyEnabled,connectionProxyUrl:f.connectionProxyUrl,connectionNoProxy:f.connectionNoProxy,connectionProxyPoolId:f.proxyPoolId||null,strictProxy:!0===f.strictProxy,vercelRelayUrl:f.vercelRelayUrl||""}}}let n=await (0,d.getProviderConnections)({provider:m,isActive:!0}),s=Array.isArray(l?.allowedConnectionIds)?l.allowedConnectionIds:null;if(!s&&l?.apiKey&&(s=await (0,d.ME)(l.apiKey)),Array.isArray(s)&&s.length>0){let b=new Set(s);n=n.filter(a=>b.has(a.id)),k.debug("AUTH",`${a} | API key scoped to ${n.length} allowed connection(s)`)}k.debug("AUTH",`${a} | total connections: ${n.length}, excludeIds: ${o.size>0?[...o].join(","):"none"}, model: ${g||"any"}`);let t=null;if("kiro"===m&&g)try{t=await (0,h.ED)(g)}catch(a){k.warn("AUTH",`Kiro model support cache unavailable: ${a?.message||a}`)}let u=t?.state==="supported"||t?.state==="unsupported",v={modelUnavailable:!0,provider:m,model:g};if(0===n.length){if(u)return k.warn("AUTH",`${a} | no eligible supporter for ${g}`),v;return k.warn("AUTH",`No credentials for ${a}`),null}let x=n.filter(a=>!a.quarantinedAt),y=new Set,z=new Set,A=!1;if("kiro"===m&&g){let a=x=x.filter(a=>w(a,g)),b=new Set(t?.unsupportedConnectionIds||[]),c=new Set(t?.freshCatalogConnectionIds||[]),d=n.filter(a=>{let c=a?.providerSpecificData?.enabledModels;return Array.isArray(c)&&c.length>0&&w(a,g)&&!b.has(a.id)}).map(a=>a.id),e=new Set([...t?.supportingConnectionIds||[],...d].filter(a=>!b.has(a)));z=new Set([...b,...[...c].filter(a=>!e.has(a))]),x=x.filter(a=>!z.has(a.id)),A=a.length>0&&a.every(a=>z.has(a.id)),e.size>0?(y=e,u=!0):t?.state==="unsupported"&&(x=[])}let B=new Map;if("codebuddy-cn"===m)for(let a of(await (0,d.tV)(m))){let b=(0,f.yH)(a);b&&B.set(a.connectionId,b)}let C=new Map;if("codebuddy-cn"===m)for(let a of n){if(11140!==Number(a.providerErrorCode))continue;let b=(0,f.kJ)(a);b&&C.set(a.id,b)}let D=new Set,E=new Set;if("codex"===m&&g){let a=await (0,d.tV)(m),b=new Map(a.map(a=>[a.connectionId,a]));for(let a of n)(0,f.xB)(a,g,m)&&E.add(a.id),(0,f.N2)(a,g,b.get(a.id),m,{ignoreProbe:!0})&&!E.has(a.id)&&D.add(a.id)}if("codebuddy"===m||"codebuddy-cn"===m)for(let a of n)(0,i.hN)(a)&&(0,f.xB)(a,null,m)&&E.add(a.id);let F=a=>C.has(a.id)||("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(a)&&E.has(a.id)||(0,f.Bl)(a,g,m)&&!D.has(a.id),G=a=>E.has(a.id)?"codebuddy"===m||"codebuddy-cn"===m?a[(0,f.UM)(null,m)]:new Date(Date.now()+1e3).toISOString():[(0,f.V0)(a,g,m),C.get(a.id)].filter(Boolean).sort().at(-1)||null,H=x.filter(a=>!(o.has(a.id)||F(a)||B.has(a.id))),I=H,J=!1;if("kiro"===m&&g&&!q){let a=H.filter(a=>y.has(a.id));if(a.length>0)I=a;else{let a=H.filter(a=>!y.has(a.id)),b=[...o].filter(a=>!y.has(a)).length;I=a,b>=3?(I=[],J=!0):o.size>0&&0===a.length&&(J=!0)}}if(q&&p){let b=n.find(a=>a.id===p);if(!b)return k.warn("AUTH",`${a} | pinned account not found: ${p}`),null;if(b.quarantinedAt)return k.warn("AUTH",`${a} | pinned account is quarantined: ${b.id?.slice(0,8)}`),null;if(z.has(b.id))return k.warn("AUTH",`${a} | pinned account does not support ${g}: ${b.id?.slice(0,8)}`),v;if(!x.some(a=>a.id===b.id))return k.warn("AUTH",`${a} | pinned account is not eligible for ${g||"this request"}: ${b.id?.slice(0,8)}`),u?v:null;if(o.has(b.id))return k.warn("AUTH",`${a} | pinned account excluded after failure: ${b.id?.slice(0,8)}`),null;if(F(b)||B.has(b.id)){let a=[G(b),B.has(b.id)?new Date(B.get(b.id)).toISOString():null].filter(Boolean).sort().at(-1);return{allRateLimited:!0,retryAfter:a,retryAfterHuman:(0,f.Qo)(a),lastError:b.lastError||"Pinned account unavailable",lastErrorCode:b.errorCode||null}}I=[b]}if(k.debug("AUTH",`${a} | available: ${I.length}/${x.length}`),n.forEach(a=>{let b=o.has(a.id),c=F(a),d=D.has(a.id),e=B.get(a.id),h=!!a.quarantinedAt,i=z.has(a.id);if(b||c||e||d||h||i){let j=(0,f.kJ)(a),l=E.has(a.id);k.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${c?`modelLocked(${g}) until ${j}`:""} ${d?`staleLockRecovered(${g})`:""} ${l?`recoveryProbeInFlight(${g})`:""} ${e?`quotaExhausted until ${new Date(e).toISOString()}`:""} ${h?"quarantined":""} ${i?`unsupported(${g})`:""}`)}}),0===I.length){if(J)return k.warn("AUTH",`${a} | bounded fallback exhausted for ${g}`),null;let b=x.filter(a=>F(a)),c=x.map(a=>[F(a)?G(a):null,B.has(a.id)?new Date(B.get(a.id)).toISOString():null].filter(Boolean).sort().at(-1)).filter(Boolean).sort()[0]||null;if(c){let d=b[0];return k.warn("AUTH",`${a} | all ${x.length} candidate accounts locked for ${g||"all"} (${(0,f.Qo)(c)}) | lastError=${d?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:c,retryAfterHuman:(0,f.Qo)(c),lastError:d?.lastError||null,lastErrorCode:d?.errorCode||null}}return k.warn("AUTH",`${a} | all ${n.length} accounts unavailable`),u||A?v:null}let K=await (0,d.mt)(),L=(K.providerStrategies||{})[m]||{},M=L.fallbackStrategy||K.fallbackStrategy||"fill-first";if(p&&(b=I.find(a=>a.id===p))&&k.debug("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if(q&&p)return k.warn("AUTH",`${a} | pinned account unavailable: ${p}`),null;else if("round-robin"===M){let a=L.stickyRoundRobinLimit||K.stickyRoundRobinLimit||3,c=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&e<a?(b=c,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:(b.consecutiveUseCount||0)+1})):(b=[...I].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else if("most-quota"===M){let a=await Promise.all(I.map(async a=>{let b=-1;try{let c=await (0,d.getQuotaSnapshot)(a.id);b=(0,f.td)(c?.usage,m,g)}catch{}return{conn:a,remaining:b}}));a.sort((a,b)=>a.remaining!==b.remaining?b.remaining-a.remaining:(a.conn.priority||999)-(b.conn.priority||999)),b=(a.filter(a=>0!==a.remaining)[0]||a[0]).conn,await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else if("lowest-latency"===M){let{getLatencyStats:e}=await Promise.resolve().then(c.bind(c,93999)),f=await e(),g=I.map(a=>{let b=f.get(`${a.provider}|${a.id}`)||f.get(`${m}|${a.id}`);return{conn:a,avgMs:b?b.avgMs:null,samples:b?b.samples:0}});g.sort((a,b)=>null===a.avgMs&&null===b.avgMs?(a.conn.priority||999)-(b.conn.priority||999):null===a.avgMs?1:null===b.avgMs?-1:a.avgMs!==b.avgMs?a.avgMs-b.avgMs:(a.conn.priority||999)-(b.conn.priority||999)),b=g[0].conn,k.debug("AUTH",`${a} | lowest-latency → ${b.id?.slice(0,8)} (${g[0].avgMs??"?"}ms avg, ${g[0].samples} samples)`),await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1})}else b=I[0];if(D.has(b.id)){let a=(0,f.WP)(g,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}if(("codebuddy"===m||"codebuddy-cn"===m)&&(0,i.hN)(b)){let a=(0,f.WP)(null,m);await (0,d.updateProviderConnection)(b.id,a),b={...b,...a}}let N=await (0,e.B)(b.providerSpecificData||{});return{authType:b.authType,apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,idToken:b.idToken,expiresAt:b.expiresAt,expiresIn:b.expiresIn,lastRefreshAt:b.lastRefreshAt,projectId:b.projectId||b.providerSpecificData?.projectId||null,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:N.connectionProxyEnabled,connectionProxyUrl:N.connectionProxyUrl,connectionNoProxy:N.connectionNoProxy,strictProxy:!0===N.strictProxy,connectionProxyPoolId:N.proxyPoolId||null,vercelRelayUrl:N.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{m&&m()}}async function A(a,b,e,h=null,l=null,m=null,n=null,o=null){let p,q,r;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let s=(0,j.rs)(h),t=(0,f.UM)(l,s);if((0,f.d5)(b,e))return await (0,d.updateProviderConnection)(a,{[t]:null}),k.warn("AUTH",`shared egress/WAF error; fallback without locking account [${b}]`),{shouldFallback:!0,cooldownMs:0};if((0,f.P0)(b,e))return await (0,d.updateProviderConnection)(a,{[t]:null}),k.warn("AUTH",`non-account error; no fallback [${b}] ${"string"==typeof e?e.slice(0,100):"Provider error"}`),{shouldFallback:!1,cooldownMs:0};let u=(await (0,d.getProviderConnections)({provider:s})).find(b=>b.id===a),v=u?.backoffLevel||0,w=(0,f.UO)(e),x="codebuddy-cn"===s&&14018===w,y="codebuddy"===s&&14018===w,z="codebuddy-cn"===s&&11140===w;if(z){let c=new Date().toISOString(),e="CodeBuddy CN rejected this credential (11140 request illegal).";return await (0,d.Iu)(a,(a,d)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let f={...a,providerSpecificData:(0,i.r_)(a.providerSpecificData,c,w)};return{connection:{[t]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,providerErrorCode:w,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:"credential_rejected",consecutiveAuthFailures:Math.max(1,(a.consecutiveAuthFailures||0)+1),backoffLevel:0,providerSpecificData:f.providerSpecificData},quotaUsage:(0,i.pX)(d?.usage||{},f)}}),k.warn("AUTH",`${u?.displayName||u?.name||a.slice(0,8)} quarantined immediately [11140]`),{shouldFallback:!0,cooldownMs:0}}if(x){let b=await (0,d.getQuotaSnapshot)(a);m=(0,f.lI)(b?.usage)||m}m&&m>Date.now()?(p=!0,q=Math.min(m-Date.now(),g.fh),r=0):{shouldFallback:p,cooldownMs:q,newBackoffLevel:r}=(0,f.hk)(b,e,v);let B=l&&(0,f.Hp)(b,e)?(0,f.gU)(l,s):{};if(!p)return await (0,d.updateProviderConnection)(a,{[t]:null,...B}),{shouldFallback:!1,cooldownMs:0};let C="string"==typeof e?e.slice(0,100):"Provider error",D=x||y,E=D?null:(0,f.LV)(s,l),F=(0,f.S5)(E,q,s),G=new Date().toISOString(),H={...F,...B,[t]:null,...D?{[(0,f.UM)(null,s)]:null}:{},testStatus:"unavailable",lastError:C,errorCode:b,providerErrorCode:w,modelLockReason:{model:E||"__all",providerErrorCode:w,reason:C,lockedAt:G,resetsAt:new Date(Date.now()+q).toISOString()},lastErrorAt:G,backoffLevel:r??v};if(D)try{await (0,d.Iu)(a,(a,b)=>{if(a.manuallyReenabledAt&&a.manuallyReenabledAt!==n?.manuallyReenabledAt)return null;let c={...a,providerSpecificData:(0,i.QN)(a.providerSpecificData,G)};return{connection:{...H,providerSpecificData:c.providerSpecificData},quotaUsage:(0,i.pX)(b?.usage||{},c)}})}catch(a){throw k.warn("AUTH",`CodeBuddy runtime exhaustion update failed: ${a?.message||a}`),a}else await (0,d.updateProviderConnection)(a,H);let I=Object.keys(F)[0],J=u?.displayName||u?.name||u?.email||a.slice(0,8);if(k.warn("AUTH",`${J} locked ${I} for ${Math.round(q/1e3)}s [${b}]`),h&&c.e(6802).then(c.bind(c,86802)).then(a=>{a.alertProviderDown(h,`${J}: ${C}`),(429===b||C.toLowerCase().includes("quota"))&&a.alertQuotaExhausted(h,J)}).catch(()=>{}),h&&b&&C&&console.error(`❌ ${h} [${b}]: ${C}`),new Set([401,403]).has(b)&&!x){let c=("string"==typeof e?e:"").toLowerCase(),f=["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>c.includes(a)),g=o?.failureClass==="credential_rejected";if(z||g||!f&&["token expired","token is expired","token has expired","expired token","token invalid","invalid token","revoked","invalid_grant","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>c.includes(a))){let e=(u?.consecutiveAuthFailures||0)+1;e>=3?(await (0,d.updateProviderConnection)(a,{isActive:!1,autoDisabledAt:new Date().toISOString(),autoDisabledReason:c.includes("banned")||c.includes("suspended")||c.includes("restricted")||c.includes("account disabled")?"banned":"token_expired",consecutiveAuthFailures:e}),k.warn("AUTH",`⛔ Auto-disabled ${J} after ${e} consecutive auth failures [${b}]: ${C}`)):(await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:e}),k.warn("AUTH",`${J} auth failure ${e}/3 [${b}]: ${C}`))}}return{shouldFallback:!0,cooldownMs:q}}async function B(a,b,c,e,g){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let h=(await (0,d.getProviderConnections)({provider:c})).find(b=>b.id===a),i=h?.displayName||h?.name||h?.email||a.slice(0,8),j=new Date().toISOString(),l=`${c} rejected the refresh credential; sign in again before re-enabling.`;return await (0,d.updateProviderConnection)(a,{[(0,f.UM)(e,c)]:null,isActive:!1,testStatus:"unavailable",lastError:l,lastErrorType:"auth",errorCode:b,failureClass:"reauth_required",providerErrorCode:g.providerErrorCode,upstreamRequestId:g.upstreamRequestId,failureResetAt:g.failureResetAt,authLifecycle:g.authLifecycle,quarantinedAt:j,quarantineReason:l,lastErrorAt:j,autoDisabledAt:j,autoDisabledReason:"reauth_required",consecutiveAuthFailures:Math.max(1,(h?.consecutiveAuthFailures||0)+1),backoffLevel:0}),k.warn("AUTH",`${i} quarantined immediately [reauth_required]`),{shouldFallback:!0,cooldownMs:0}}async function C(a,b,c,e=null,i=null,l=null,m=null,n=null){let q,s,v,w=(0,j.rs)(e);if("antigravity"===w){let c=t(m,l),e="policy_suspended"===c.failureClass&&"ORG_CODE_ASSIST_RESTRICTED"===c.providerErrorCode,g="account_validation_required"===c.failureClass&&"VALIDATION_REQUIRED"===c.providerErrorCode;if(e||g){if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let e=(await (0,d.getProviderConnections)({provider:w})).find(b=>b.id===a),h=new Date().toISOString(),j=g?"Google requires account verification before Antigravity can use Gemini Code Assist.":"Google organization policy blocks Gemini Code Assist access for this Antigravity account.",l=(0,f.UM)(i,w);await (0,d.Op)(a,a=>({...Object.fromEntries(Object.keys(a||{}).filter(a=>a.startsWith("modelLock_")).map(a=>[a,null])),[l]:null,modelLockReason:null,isActive:!1,testStatus:"unavailable",lastError:j,errorCode:b,failureClass:c.failureClass,providerErrorCode:c.providerErrorCode,upstreamRequestId:c.upstreamRequestId,failureResetAt:c.failureResetAt,authLifecycle:c.authLifecycle,quarantinedAt:h,quarantineReason:j,lastErrorAt:h,autoDisabledAt:h,autoDisabledReason:c.failureClass,consecutiveAuthFailures:Math.max(1,(a?.consecutiveAuthFailures||0)+1),backoffLevel:0}));let m=e?.displayName||e?.name||e?.email||a.slice(0,8);return k.warn("AUTH",`${m} quarantined immediately [${c.failureClass}]`),{shouldFallback:!0,cooldownMs:0}}}if("kiro"!==w){let d=t(m,l);return"reauth_required"===d.failureClass?B(a,b,w,i,d):A(a,b,c,e,i,l,n,d)}if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let x=(0,f.UM)(i,w),y=t(m,l),{failureClass:z}=y;if("shared_egress_waf"===z||(0,f.d5)(b,c))return await (0,d.updateProviderConnection)(a,{[x]:null}),k.warn("AUTH",`Kiro shared egress/WAF error; fallback without account punishment [${b}]`),{shouldFallback:!0,cooldownMs:0};if(function(a,b){if("invalid_model"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?MODEL|MODEL[_-]?(?:NOT[_-]?(?:FOUND|SUPPORTED)|UNSUPPORTED)/.test(c)}(z,y.providerErrorCode)){await (0,d.updateProviderConnection)(a,{[x]:null});let b=!1;try{await (0,h.FL)(a,i);let c=(await (0,d.getProviderConnections)({provider:w,isActive:!0})).filter(a=>!a.quarantinedAt).map(a=>a.id);b=!!i&&await (0,h.CY)(i,a,c)}catch(a){k.warn("AUTH",`Kiro model support cache update failed: ${a?.message||a}`)}return k.warn("AUTH",`Kiro model is unsupported by ${a.slice(0,8)}; ${b?"trying a known supporter":"not rotating to an unknown account"}`),{shouldFallback:b,cooldownMs:0}}if(function(a,b){if("invalid_request"===a||"request_error"===a)return!0;let c=String(b||"").toUpperCase();return/INVALID[_-]?(?:REQUEST|ARGUMENT)|VALIDATION|BAD[_-]?REQUEST|MALFORMED/.test(c)}(z,y.providerErrorCode)||(0,f.P0)(b,c))return await (0,d.updateProviderConnection)(a,{[x]:null}),k.warn("AUTH",`Kiro request error; no account lock or credential rotation [${b}]`),{shouldFallback:!1,cooldownMs:0};let D=(await (0,d.getProviderConnections)({provider:w})).find(b=>b.id===a),E=D?.backoffLevel||0,F=y.providerErrorCode||r((0,f.UO)(c)),G=D?.displayName||D?.name||D?.email||a.slice(0,8);if(o.has(z)){let c=new Date().toISOString(),e=u(z,b);return await (0,d.updateProviderConnection)(a,{[x]:null,isActive:!1,testStatus:"unavailable",lastError:e,errorCode:b,failureClass:z,providerErrorCode:F,upstreamRequestId:y.upstreamRequestId,failureResetAt:y.failureResetAt,authLifecycle:y.authLifecycle,quarantinedAt:c,quarantineReason:e,lastErrorAt:c,autoDisabledAt:c,autoDisabledReason:z,consecutiveAuthFailures:Math.max(1,(D?.consecutiveAuthFailures||0)+1),backoffLevel:0}),k.warn("AUTH",`${G} quarantined immediately [${z}]`),{shouldFallback:!0,cooldownMs:0}}let H=Number(l);if(Number.isFinite(H)&&H>Date.now()?(q=!0,s=Math.min(H-Date.now(),g.fh),v=0):{shouldFallback:q,cooldownMs:s,newBackoffLevel:v}=(0,f.hk)(b,c,E),!q)return await (0,d.updateProviderConnection)(a,{[x]:null}),{shouldFallback:!1,cooldownMs:0};let I=p.has(z)||403===b||408===b||429===b||b>=500,J=z||(429===b?"rate_limited":403===b?"permission_denied":b>=500?"upstream_transient":null),K=u(J,b),L=I?null:(0,f.LV)(w,i),M=(0,f.S5)(L,s,w),N=new Date().toISOString(),O=new Date(Date.now()+s).toISOString();await (0,d.updateProviderConnection)(a,{...M,[x]:null,testStatus:"unavailable",lastError:K,errorCode:b,failureClass:J,providerErrorCode:F,upstreamRequestId:y.upstreamRequestId,failureResetAt:y.failureResetAt,authLifecycle:y.authLifecycle,modelLockReason:{model:L||"__all",providerErrorCode:F,reason:K,lockedAt:N,resetsAt:O},lastErrorAt:N,backoffLevel:v??E,consecutiveAuthFailures:0});let P=Object.keys(M)[0];if(k.warn("AUTH",`${G} locked ${P} for ${Math.round(s/1e3)}s [${b}]`),!z&&(401===b||403===b)){let e=("string"==typeof c?c:"").toLowerCase();if(!["quota","payment","billing","entitlement","subscription","insufficient_quota"].some(a=>e.includes(a))&&["token expired","token invalid","invalid token","revoked","unauthorized","invalid api key","invalid_api_key","banned","suspended","restricted","account disabled"].some(a=>e.includes(a))){let c=(D?.consecutiveAuthFailures||0)+1,f=["banned","suspended","restricted","account disabled"].some(a=>e.includes(a));if(c>=3){let e=new Date().toISOString(),g=f?u("policy_suspended",b):"Kiro rejected this credential three consecutive times.";await (0,d.updateProviderConnection)(a,{isActive:!1,quarantinedAt:e,quarantineReason:g,failureClass:f?"policy_suspended":"authentication",autoDisabledAt:e,autoDisabledReason:f?"policy_suspended":"token_expired",consecutiveAuthFailures:c}),k.warn("AUTH",`${G} quarantined after ${c} unstructured auth failures`)}else await (0,d.updateProviderConnection)(a,{consecutiveAuthFailures:c})}}return{shouldFallback:!0,cooldownMs:s}}async function D(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,g=(0,j.rs)(e.provider),h=(0,f.LV)(g,c),l=Date.now(),m=(0,f.UM)(c,g),n=!1,o=!1,p=(a,b=!1)=>{if(!a||b&&(a.quarantinedAt||e.quarantinedAt))return null;let d=(a,b)=>{if(!a.startsWith(b))return!1;let d=a.slice(b.length);return"__all"===d||!c||(0,f.LV)(g,d)===h};if(b&&Object.keys(a).some(b=>(d(b,"modelLock_")||d(b,"modelRecoveryProbe_"))&&a[b]!==e[b]&&Date.parse(a[b])>l))return n=!0,null;let i=Object.keys(a).filter(a=>a.startsWith("modelLock_")),j=c?(0,f.MC)(c,g):null,k=!!j&&null!=a[j];if("unavailable"!==a.testStatus&&!a.lastError&&0===i.length&&!k)return null;let o=i.filter(d=>{if(b&&a[d]!==e[d])return!1;let i=d.slice(10);if(c&&(0,f.LV)(g,i)===h||c&&"modelLock___all"===d)return!0;let j=a[d];return j&&new Date(j).getTime()<=l});if(0===o.length&&"unavailable"!==a.testStatus&&!a.lastError&&!k)return null;let p=i.filter(b=>!o.includes(b)&&Date.parse(a[b])>l),q={...Object.fromEntries(o.map(a=>[a,null])),...k?{[j]:null}:{}};return b&&a[m]!==e[m]||(q[m]=null),0===p.length&&Object.assign(q,{testStatus:"active",lastError:null,errorCode:null,providerErrorCode:null,..."kiro"===g?{failureClass:null,upstreamRequestId:null,failureResetAt:null,authLifecycle:null}:{},modelLockReason:null,lastErrorAt:null,backoffLevel:0,consecutiveAuthFailures:0}),q};if("kiro"===g){await (0,d.Op)(a,a=>p(a,!0)),n&&k.debug("AUTH",`Kiro success did not clear newer failure state for ${a.slice(0,8)}`);return}if("codebuddy"===g||"codebuddy-cn"===g){let b=(0,i.kt)(e);await (0,d.Iu)(a,a=>{if(a.quarantinedAt||(0,i.uF)(a))return null;let c=(0,i.kt)(a);if(c&&c!==b)return null;let d=p(a)||{};return(b&&(0,i.kt)(a)===b&&(d.providerSpecificData=(0,i.US)(a.providerSpecificData),d[(0,f.UM)(null,g)]=null,o=!0),0===Object.keys(d).length)?null:{connection:d,...o?{quotaUsage:null}:{}}});return}let q=p(e);q&&await (0,d.updateProviderConnection)(a,q)}function E(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function F(a){return!!a&&await (0,d.ek)(a)}},91254:(a,b,c)=>{c.d(b,{CG:()=>p,QN:()=>k,US:()=>o,hN:()=>j,kt:()=>i,pX:()=>q,r_:()=>n,uF:()=>m});let d="codebuddyRuntimeExhaustedAt",e="codebuddyRuntimeExhaustedCode",f="codebuddyRuntimeRejectedAt",g="codebuddyRuntimeRejectedCode";function h(a){return a?.provider==="codebuddy"||a?.provider==="codebuddy-cn"}function i(a){return h(a)&&a.providerSpecificData?.[d]||null}function j(a){return!!i(a)}function k(a,b){return{...a||{},[d]:b,[e]:14018}}function l(a){return a?.provider!=="codebuddy-cn"?null:a.providerSpecificData?.[f]||null}function m(a){return!!l(a)}function n(a,b,c=11140){return{...a||{},[f]:b,[g]:c}}function o(a){let b={...a||{}};return delete b[d],delete b[e],b}function p(a){let b=o(a);return delete b[f],delete b[g],b}function q(a,b){if(!h(b))return a;let c=l(b),d=i(b);if(!c&&!d)return a;let e=a?.billingQuotas||a?.quotas||{};if(c)return{...a||{},message:"CodeBuddy CN chat API rejected this credential (11140); billing package balance is nominal and does not prove chat access.",billingQuotas:e,runtimeStatus:"credential_rejected",chatUsable:!1,runtimeRejectedAt:c,runtimeRejectedCode:Number(b.providerSpecificData?.[g])||11140};let f=Object.fromEntries(Object.entries(e).map(([a,b])=>{let c=Number(b?.total);return[a,{...b||{},...Number.isFinite(c)?{used:c}:{},remaining:0,remainingPercentage:0}]}));return{...a||{},message:"CodeBuddy chat API reported exhausted credits (14018); billing package balance is nominal until a chat request succeeds.",billingQuotas:e,quotas:f,runtimeStatus:"exhausted",chatUsable:!1,runtimeExhausted:!0,runtimeExhaustedAt:d,runtimeExhaustedCode:14018}}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},93930:(a,b,c)=>{c.d(b,{Z:()=>e});let d=Object.freeze([["unsupported_model",(a,b)=>Array.isArray(a.supportedModels)&&a.supportedModels.length>0&&!a.supportedModels.includes(b.model)],["unsupported_operation",(a,b)=>Array.isArray(a.supportedOperations)&&a.supportedOperations.length>0&&!a.supportedOperations.includes(b.operation)],["unsupported_capability",(a,b)=>{let c=new Set(a.capabilities||[]);return c.size>0&&(b.requiredCapabilities||[]).some(a=>!c.has(a))}],["api_key_model_restricted",(a,b)=>Array.isArray(b.allowedModels)&&b.allowedModels.length>0&&!b.allowedModels.includes(b.model)],["api_key_provider_restricted",(a,b)=>Array.isArray(b.allowedProviders)&&b.allowedProviders.length>0&&!b.allowedProviders.includes(a.provider)],["connection_restricted",(a,b)=>Array.isArray(b.allowedConnectionIds)&&b.allowedConnectionIds.length>0&&!b.allowedConnectionIds.includes(a.id)],["explicit_pin_mismatch",(a,b)=>!!b.pinnedConnectionId&&b.pinnedConnectionId!==a.id],["inactive",a=>!0!==a.isActive],["quarantined",a=>!!a.quarantinedAt],["reauth_required",a=>!0===a.reauthRequired],["model_locked",a=>!0===a.modelLocked],["quota_exhausted",(a,b)=>{let c=a.quota;return!!c&&!0===c.exhausted&&("last_successful"!==c.provenance||!(Number(c.remaining)>0&&Number(c.validUntilMs)>Number(b.nowMs||Date.now())))}],["circuit_open",a=>Object.values(a.circuits||{}).some(a=>a?.state==="open"||a?.state==="half_open"&&a?.probeAcquired!==!0)],["missing_transport",a=>!1===a.transportAvailable],["outbound_rejected",a=>!1===a.outboundAllowed]]);function e(a={},b={}){let c=d.filter(([,c])=>c(a,b)).map(([a])=>a);return Object.freeze({eligible:0===c.length,reasons:Object.freeze(c)})}}};