zevairouter 1.1.32 → 1.1.34

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 (1236) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/cli/app/.next-cli-build/BUILD_ID +1 -1
  3. package/cli/app/.next-cli-build/app-path-routes-manifest.json +13 -12
  4. package/cli/app/.next-cli-build/build-manifest.json +2 -2
  5. package/cli/app/.next-cli-build/prerender-manifest.json +4 -4
  6. package/cli/app/.next-cli-build/routes-manifest.json +6 -0
  7. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js +1 -1
  8. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page.js.nft.json +1 -1
  9. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/automation/page_client-reference-manifest.js +1 -1
  10. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +1 -1
  11. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  12. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  13. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
  14. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  15. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  16. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  17. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  18. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  19. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  20. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  21. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  22. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  23. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  24. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  25. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js +1 -1
  26. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page.js.nft.json +1 -1
  27. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/context/page_client-reference-manifest.js +1 -1
  28. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  29. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  30. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  31. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  32. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  33. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  34. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +1 -1
  35. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  36. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  37. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +2 -2
  38. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  39. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  40. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +1 -1
  41. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  42. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  43. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +1 -1
  44. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  45. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  46. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +1 -1
  47. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  48. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  49. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +1 -1
  50. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  51. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  52. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  53. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  54. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  55. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  56. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  57. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  58. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  59. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  60. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  61. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  62. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  63. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  64. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  65. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  66. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  67. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  68. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  69. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  70. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  71. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  72. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  73. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  74. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  75. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  76. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +1 -1
  77. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  78. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  79. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js +1 -1
  80. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page.js.nft.json +1 -1
  81. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/terminal/page_client-reference-manifest.js +1 -1
  82. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  83. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  84. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  85. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  86. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  87. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  88. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  89. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  90. package/cli/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  91. package/cli/app/.next-cli-build/server/app/_global-error/page.js +2 -2
  92. package/cli/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  93. package/cli/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  94. package/cli/app/.next-cli-build/server/app/_global-error.html +1 -1
  95. package/cli/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  96. package/cli/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  97. package/cli/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  98. package/cli/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  99. package/cli/app/.next-cli-build/server/app/_not-found/page.js +1 -1
  100. package/cli/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  101. package/cli/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  102. package/cli/app/.next-cli-build/server/app/_not-found.html +1 -1
  103. package/cli/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  104. package/cli/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  105. package/cli/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +4 -4
  106. package/cli/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  107. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  108. package/cli/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  109. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  110. package/cli/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  111. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  112. package/cli/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  113. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  114. package/cli/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  115. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  116. package/cli/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  117. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js +1 -1
  118. package/cli/app/.next-cli-build/server/app/api/auth/saml/acs/route.js.nft.json +1 -1
  119. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js +1 -1
  120. package/cli/app/.next-cli-build/server/app/api/auth/saml/metadata/route.js.nft.json +1 -1
  121. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js +1 -1
  122. package/cli/app/.next-cli-build/server/app/api/auth/saml/start/route.js.nft.json +1 -1
  123. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js +1 -1
  124. package/cli/app/.next-cli-build/server/app/api/auth/saml/test/route.js.nft.json +1 -1
  125. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  126. package/cli/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  127. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js +1 -1
  128. package/cli/app/.next-cli-build/server/app/api/cache/stats/route.js.nft.json +1 -1
  129. package/cli/app/.next-cli-build/server/app/api/changelog/route.js +1 -1
  130. package/cli/app/.next-cli-build/server/app/api/changelog/route.js.nft.json +1 -1
  131. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -16
  132. package/cli/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  133. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  134. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  135. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  136. package/cli/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  137. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  138. package/cli/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  139. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  140. package/cli/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  141. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js +1 -1
  142. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-gateway/accounts/route.js.nft.json +1 -1
  143. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -2
  144. package/cli/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  145. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  146. package/cli/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  147. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  148. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  149. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +2 -2
  150. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  151. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  152. package/cli/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  153. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +3 -3
  154. package/cli/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  155. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  156. package/cli/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  157. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +3 -15
  158. package/cli/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js.nft.json +1 -1
  159. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -1
  160. package/cli/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  161. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -3
  162. package/cli/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  163. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +2 -2
  164. package/cli/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  165. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -1
  166. package/cli/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js.nft.json +1 -1
  167. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  168. package/cli/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  169. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  170. package/cli/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  171. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  172. package/cli/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  173. package/cli/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  174. package/cli/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  175. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js +1 -1
  176. package/cli/app/.next-cli-build/server/app/api/context/[id]/route.js.nft.json +1 -1
  177. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js +1 -1
  178. package/cli/app/.next-cli-build/server/app/api/context/bulk/route.js.nft.json +1 -1
  179. package/cli/app/.next-cli-build/server/app/api/context/route.js +1 -1
  180. package/cli/app/.next-cli-build/server/app/api/context/route.js.nft.json +1 -1
  181. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js +1 -1
  182. package/cli/app/.next-cli-build/server/app/api/dashboard/chat/completions/route.js.nft.json +1 -1
  183. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js +1 -1
  184. package/cli/app/.next-cli-build/server/app/api/dashboard/cli-tools/keys/route.js.nft.json +1 -1
  185. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js +1 -1
  186. package/cli/app/.next-cli-build/server/app/api/dashboard/media/[operation]/route.js.nft.json +1 -1
  187. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js +1 -1
  188. package/cli/app/.next-cli-build/server/app/api/dashboard/media/videos/[id]/route.js.nft.json +1 -1
  189. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js +1 -1
  190. package/cli/app/.next-cli-build/server/app/api/headroom/enable/route.js.nft.json +1 -1
  191. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js +1 -1
  192. package/cli/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  193. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  194. package/cli/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  195. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js +1 -1
  196. package/cli/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  197. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  198. package/cli/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  199. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  200. package/cli/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  201. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js +1 -1
  202. package/cli/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  203. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js +1 -1
  204. package/cli/app/.next-cli-build/server/app/api/health/ready/route.js.nft.json +1 -1
  205. package/cli/app/.next-cli-build/server/app/api/health/route.js +1 -1
  206. package/cli/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  207. package/cli/app/.next-cli-build/server/app/api/init/route.js +1 -1
  208. package/cli/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  209. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js +1 -1
  210. package/cli/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  211. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  212. package/cli/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  213. package/cli/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  214. package/cli/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  215. package/cli/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  216. package/cli/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  217. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  218. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  219. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +1 -1
  220. package/cli/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  221. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  222. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  223. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  224. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  225. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  226. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  227. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  228. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  229. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  230. package/cli/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  231. package/cli/app/.next-cli-build/server/app/api/metrics/route.js +2 -2
  232. package/cli/app/.next-cli-build/server/app/api/metrics/route.js.nft.json +1 -1
  233. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  234. package/cli/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  235. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  236. package/cli/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  237. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  238. package/cli/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  239. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  240. package/cli/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  241. package/cli/app/.next-cli-build/server/app/api/models/route.js +1 -1
  242. package/cli/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  243. package/cli/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  244. package/cli/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  245. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  246. package/cli/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  247. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js +1 -1
  248. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  249. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  250. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  251. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js +1 -1
  252. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/[jobId]/route.js.nft.json +1 -1
  253. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js +1 -1
  254. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/latest/route.js.nft.json +1 -1
  255. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js +1 -1
  256. package/cli/app/.next-cli-build/server/app/api/oauth/antigravity/bulk-import/route.js.nft.json +1 -1
  257. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js +1 -1
  258. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  259. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  260. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  261. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js +1 -1
  262. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route.js.nft.json +1 -1
  263. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js +1 -1
  264. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/latest/route.js.nft.json +1 -1
  265. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js +1 -1
  266. package/cli/app/.next-cli-build/server/app/api/oauth/cloudflare-ai/bulk-import/route.js.nft.json +1 -1
  267. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js +1 -1
  268. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  269. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  270. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  271. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js +1 -1
  272. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/[jobId]/route.js.nft.json +1 -1
  273. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js +1 -1
  274. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/latest/route.js.nft.json +1 -1
  275. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js +1 -1
  276. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-import/route.js.nft.json +1 -1
  277. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js +1 -1
  278. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/bulk-token/route.js.nft.json +1 -1
  279. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js +1 -1
  280. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy/quota-cookie/route.js.nft.json +1 -1
  281. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js +1 -1
  282. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  283. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  284. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  285. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js +1 -1
  286. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route.js.nft.json +1 -1
  287. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js +1 -1
  288. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/latest/route.js.nft.json +1 -1
  289. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js +1 -1
  290. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-import/route.js.nft.json +1 -1
  291. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js +1 -1
  292. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/bulk-token/route.js.nft.json +1 -1
  293. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js +1 -1
  294. package/cli/app/.next-cli-build/server/app/api/oauth/codebuddy-cn/quota-cookie/route.js.nft.json +1 -1
  295. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  296. package/cli/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  297. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  298. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  299. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  300. package/cli/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  301. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  302. package/cli/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  303. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js +1 -1
  304. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  305. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  306. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  307. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js +1 -1
  308. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/[jobId]/route.js.nft.json +1 -1
  309. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js +1 -1
  310. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/latest/route.js.nft.json +1 -1
  311. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  312. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-import/route.js.nft.json +1 -1
  313. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js +1 -1
  314. package/cli/app/.next-cli-build/server/app/api/oauth/grok-cli/bulk-token/route.js.nft.json +1 -1
  315. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  316. package/cli/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  317. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  318. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  319. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  320. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  321. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js +1 -1
  322. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  323. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  324. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  325. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js +1 -1
  326. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/[jobId]/route.js.nft.json +1 -1
  327. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js +1 -1
  328. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/latest/route.js.nft.json +1 -1
  329. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js +1 -1
  330. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/bulk-import/route.js.nft.json +1 -1
  331. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  332. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  333. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  334. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  335. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  336. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  337. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  338. package/cli/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  339. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js +1 -1
  340. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route.js.nft.json +1 -1
  341. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js +1 -1
  342. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route.js.nft.json +1 -1
  343. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js +1 -1
  344. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/[jobId]/route.js.nft.json +1 -1
  345. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js +1 -1
  346. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/latest/route.js.nft.json +1 -1
  347. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js +1 -1
  348. package/cli/app/.next-cli-build/server/app/api/oauth/qoder/bulk-import/route.js.nft.json +1 -1
  349. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +1 -1
  350. package/cli/app/.next-cli-build/server/app/api/oauth/xiaomi-mimo/auto-import/route.js.nft.json +1 -1
  351. package/cli/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  352. package/cli/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  353. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  354. package/cli/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  355. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  356. package/cli/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  357. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  358. package/cli/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  359. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  360. package/cli/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  361. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js +51 -1
  362. package/cli/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  363. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  364. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  365. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  366. package/cli/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  367. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js +51 -1
  368. package/cli/app/.next-cli-build/server/app/api/providers/bulk-delete/route.js.nft.json +1 -1
  369. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  370. package/cli/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  371. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js +2 -2
  372. package/cli/app/.next-cli-build/server/app/api/providers/codebuddy/discover-models/route.js.nft.json +1 -1
  373. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  374. package/cli/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  375. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js +1 -0
  376. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route.js.nft.json +1 -0
  377. package/cli/app/.next-cli-build/server/app/api/providers/opencode/discover-models/route_client-reference-manifest.js +1 -0
  378. package/cli/app/.next-cli-build/server/app/api/providers/route.js +2 -2
  379. package/cli/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  380. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  381. package/cli/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  382. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  383. package/cli/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  384. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -51
  385. package/cli/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  386. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  387. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  388. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  389. package/cli/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  390. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  391. package/cli/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  392. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  393. package/cli/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  394. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  395. package/cli/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  396. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  397. package/cli/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  398. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js +2 -2
  399. package/cli/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  400. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  401. package/cli/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  402. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js +2 -2
  403. package/cli/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  404. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js +2 -2
  405. package/cli/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  406. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js +2 -2
  407. package/cli/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  408. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js +2 -2
  409. package/cli/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  410. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js +2 -2
  411. package/cli/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  412. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js +2 -2
  413. package/cli/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  414. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  415. package/cli/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  416. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  417. package/cli/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  418. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  419. package/cli/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  420. package/cli/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  421. package/cli/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  422. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  423. package/cli/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  424. package/cli/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  425. package/cli/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  426. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js +1 -1
  427. package/cli/app/.next-cli-build/server/app/api/terminal/auth/setup/route.js.nft.json +1 -1
  428. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js +1 -1
  429. package/cli/app/.next-cli-build/server/app/api/terminal/auth/status/route.js.nft.json +1 -1
  430. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js +1 -1
  431. package/cli/app/.next-cli-build/server/app/api/terminal/auth/unlock/route.js.nft.json +1 -1
  432. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js +1 -1
  433. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/input/route.js.nft.json +1 -1
  434. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js +1 -1
  435. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/resize/route.js.nft.json +1 -1
  436. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js +1 -1
  437. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/route.js.nft.json +1 -1
  438. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js +2 -2
  439. package/cli/app/.next-cli-build/server/app/api/terminal/session/[id]/stream/route.js.nft.json +1 -1
  440. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js +1 -1
  441. package/cli/app/.next-cli-build/server/app/api/terminal/session/route.js.nft.json +1 -1
  442. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  443. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  444. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  445. package/cli/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  446. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  447. package/cli/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  448. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  449. package/cli/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  450. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  451. package/cli/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  452. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  453. package/cli/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  454. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  455. package/cli/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  456. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  457. package/cli/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  458. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  459. package/cli/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  460. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  461. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  462. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  463. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  464. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  465. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  466. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  467. package/cli/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  468. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  469. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  470. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  471. package/cli/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  472. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js +1 -1
  473. package/cli/app/.next-cli-build/server/app/api/usage/aggregate/route.js.nft.json +1 -1
  474. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  475. package/cli/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  476. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  477. package/cli/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  478. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  479. package/cli/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  480. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  481. package/cli/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  482. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js +2 -2
  483. package/cli/app/.next-cli-build/server/app/api/usage/quota-stream/route.js.nft.json +1 -1
  484. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  485. package/cli/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  486. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  487. package/cli/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  488. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js +2 -2
  489. package/cli/app/.next-cli-build/server/app/api/usage/routing-stream/route.js.nft.json +1 -1
  490. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  491. package/cli/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  492. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  493. package/cli/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  494. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  495. package/cli/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  496. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  497. package/cli/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  498. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  499. package/cli/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  500. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  501. package/cli/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  502. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  503. package/cli/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  504. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  505. package/cli/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  506. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  507. package/cli/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  508. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  509. package/cli/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  510. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  511. package/cli/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  512. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  513. package/cli/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  514. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  515. package/cli/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  516. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  517. package/cli/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  518. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  519. package/cli/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  520. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  521. package/cli/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  522. package/cli/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  523. package/cli/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  524. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js +51 -1
  525. package/cli/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  526. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js +1 -1
  527. package/cli/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  528. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js +1 -1
  529. package/cli/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  530. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js +1 -1
  531. package/cli/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  532. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js +1 -1
  533. package/cli/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  534. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +51 -1
  535. package/cli/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  536. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  537. package/cli/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  538. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  539. package/cli/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  540. package/cli/app/.next-cli-build/server/app/api/version/route.js +1 -1
  541. package/cli/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  542. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  543. package/cli/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  544. package/cli/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  545. package/cli/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  546. package/cli/app/.next-cli-build/server/app/callback/page.js +1 -1
  547. package/cli/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  548. package/cli/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  549. package/cli/app/.next-cli-build/server/app/callback.html +1 -1
  550. package/cli/app/.next-cli-build/server/app/callback.rsc +4 -4
  551. package/cli/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  552. package/cli/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  553. package/cli/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +4 -4
  554. package/cli/app/.next-cli-build/server/app/dashboard/automation.html +1 -1
  555. package/cli/app/.next-cli-build/server/app/dashboard/automation.rsc +4 -4
  556. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/!KGRhc2hib2FyZCk/dashboard/automation/__PAGE__.segment.rsc +4 -4
  557. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_full.segment.rsc +4 -4
  558. package/cli/app/.next-cli-build/server/app/dashboard/automation.segments/_tree.segment.rsc +2 -2
  559. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  560. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +4 -4
  561. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +4 -4
  562. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +4 -4
  563. package/cli/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  564. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  565. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +4 -4
  566. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +4 -4
  567. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  568. package/cli/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  569. package/cli/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  570. package/cli/app/.next-cli-build/server/app/dashboard/combos.rsc +4 -4
  571. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +4 -4
  572. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  573. package/cli/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  574. package/cli/app/.next-cli-build/server/app/dashboard/context.html +1 -1
  575. package/cli/app/.next-cli-build/server/app/dashboard/context.rsc +4 -4
  576. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/!KGRhc2hib2FyZCk/dashboard/context/__PAGE__.segment.rsc +4 -4
  577. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_full.segment.rsc +4 -4
  578. package/cli/app/.next-cli-build/server/app/dashboard/context.segments/_tree.segment.rsc +2 -2
  579. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  580. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.rsc +4 -4
  581. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +4 -4
  582. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  583. package/cli/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  584. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  585. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +4 -4
  586. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +4 -4
  587. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +4 -4
  588. package/cli/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  589. package/cli/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  590. package/cli/app/.next-cli-build/server/app/dashboard/mitm.rsc +4 -4
  591. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +4 -4
  592. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +4 -4
  593. package/cli/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  594. package/cli/app/.next-cli-build/server/app/dashboard/playground.html +1 -1
  595. package/cli/app/.next-cli-build/server/app/dashboard/playground.rsc +4 -4
  596. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/!KGRhc2hib2FyZCk/dashboard/playground/__PAGE__.segment.rsc +4 -4
  597. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_full.segment.rsc +4 -4
  598. package/cli/app/.next-cli-build/server/app/dashboard/playground.segments/_tree.segment.rsc +2 -2
  599. package/cli/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  600. package/cli/app/.next-cli-build/server/app/dashboard/profile.rsc +4 -4
  601. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +4 -4
  602. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +4 -4
  603. package/cli/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  604. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  605. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.rsc +4 -4
  606. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +4 -4
  607. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  608. package/cli/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  609. package/cli/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  610. package/cli/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  611. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +5 -5
  612. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  613. package/cli/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  614. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  615. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +4 -4
  616. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +4 -4
  617. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +4 -4
  618. package/cli/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  619. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  620. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +4 -4
  621. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +4 -4
  622. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +4 -4
  623. package/cli/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  624. package/cli/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  625. package/cli/app/.next-cli-build/server/app/dashboard/quota.rsc +4 -4
  626. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +4 -4
  627. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +4 -4
  628. package/cli/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  629. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  630. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  631. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  632. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  633. package/cli/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  634. package/cli/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  635. package/cli/app/.next-cli-build/server/app/dashboard/skills.rsc +4 -4
  636. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +4 -4
  637. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +4 -4
  638. package/cli/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  639. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  640. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.rsc +4 -4
  641. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +4 -4
  642. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +4 -4
  643. package/cli/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  644. package/cli/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  645. package/cli/app/.next-cli-build/server/app/dashboard/translator.rsc +4 -4
  646. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +4 -4
  647. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  648. package/cli/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  649. package/cli/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  650. package/cli/app/.next-cli-build/server/app/dashboard/usage.rsc +4 -4
  651. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +4 -4
  652. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  653. package/cli/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  654. package/cli/app/.next-cli-build/server/app/dashboard.html +1 -1
  655. package/cli/app/.next-cli-build/server/app/dashboard.rsc +4 -4
  656. package/cli/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +4 -4
  657. package/cli/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +4 -4
  658. package/cli/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  659. package/cli/app/.next-cli-build/server/app/index.html +1 -1
  660. package/cli/app/.next-cli-build/server/app/index.rsc +4 -4
  661. package/cli/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  662. package/cli/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  663. package/cli/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  664. package/cli/app/.next-cli-build/server/app/landing/page.js +1 -1
  665. package/cli/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  666. package/cli/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  667. package/cli/app/.next-cli-build/server/app/landing.html +1 -1
  668. package/cli/app/.next-cli-build/server/app/landing.rsc +4 -4
  669. package/cli/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  670. package/cli/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  671. package/cli/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +4 -4
  672. package/cli/app/.next-cli-build/server/app/login/page.js +1 -1
  673. package/cli/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  674. package/cli/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  675. package/cli/app/.next-cli-build/server/app/login.html +1 -1
  676. package/cli/app/.next-cli-build/server/app/login.rsc +4 -4
  677. package/cli/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  678. package/cli/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  679. package/cli/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  680. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  681. package/cli/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  682. package/cli/app/.next-cli-build/server/app/page.js +1 -1
  683. package/cli/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  684. package/cli/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  685. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js +2 -2
  686. package/cli/app/.next-cli-build/server/app/provider-icons/[provider]/route.js.nft.json +1 -1
  687. package/cli/app/.next-cli-build/server/app-paths-manifest.json +13 -12
  688. package/cli/app/.next-cli-build/server/chunks/1131.js +1 -1
  689. package/cli/app/.next-cli-build/server/chunks/1133.js +1 -1
  690. package/cli/app/.next-cli-build/server/chunks/1283.js +7 -7
  691. package/cli/app/.next-cli-build/server/chunks/1350.js +1 -1
  692. package/cli/app/.next-cli-build/server/chunks/1756.js +1 -1
  693. package/cli/app/.next-cli-build/server/chunks/220.js +1 -1
  694. package/cli/app/.next-cli-build/server/chunks/2339.js +1 -0
  695. package/cli/app/.next-cli-build/server/chunks/2442.js +1 -1
  696. package/cli/app/.next-cli-build/server/chunks/2456.js +1 -1
  697. package/cli/app/.next-cli-build/server/chunks/{440.js → 3294.js} +3 -4
  698. package/cli/app/.next-cli-build/server/chunks/3477.js +1 -1
  699. package/cli/app/.next-cli-build/server/chunks/3593.js +1 -1
  700. package/cli/app/.next-cli-build/server/chunks/3721.js +4 -4
  701. package/cli/app/.next-cli-build/server/chunks/3792.js +1 -1
  702. package/cli/app/.next-cli-build/server/chunks/3949.js +1 -1
  703. package/cli/app/.next-cli-build/server/chunks/3999.js +1 -1
  704. package/cli/app/.next-cli-build/server/chunks/40.js +1 -1
  705. package/cli/app/.next-cli-build/server/chunks/4055.js +1 -1
  706. package/cli/app/.next-cli-build/server/chunks/412.js +1 -1
  707. package/cli/app/.next-cli-build/server/chunks/4236.js +1 -1
  708. package/cli/app/.next-cli-build/server/chunks/4322.js +1 -1
  709. package/cli/app/.next-cli-build/server/chunks/437.js +1 -1
  710. package/cli/app/.next-cli-build/server/chunks/4493.js +2 -0
  711. package/cli/app/.next-cli-build/server/chunks/4586.js +3 -3
  712. package/cli/app/.next-cli-build/server/chunks/4720.js +1 -1
  713. package/cli/app/.next-cli-build/server/chunks/4780.js +1 -1
  714. package/cli/app/.next-cli-build/server/chunks/4827.js +1 -1
  715. package/cli/app/.next-cli-build/server/chunks/4897.js +1 -1
  716. package/cli/app/.next-cli-build/server/chunks/5019.js +1 -1
  717. package/cli/app/.next-cli-build/server/chunks/5024.js +1 -1
  718. package/cli/app/.next-cli-build/server/chunks/5217.js +1 -1
  719. package/cli/app/.next-cli-build/server/chunks/5224.js +1 -0
  720. package/cli/app/.next-cli-build/server/chunks/5330.js +10 -13
  721. package/cli/app/.next-cli-build/server/chunks/5434.js +1 -1
  722. package/cli/app/.next-cli-build/server/chunks/5436.js +1 -1
  723. package/cli/app/.next-cli-build/server/chunks/5545.js +1 -1
  724. package/cli/app/.next-cli-build/server/chunks/5681.js +1 -1
  725. package/cli/app/.next-cli-build/server/chunks/5752.js +1 -1
  726. package/cli/app/.next-cli-build/server/chunks/5800.js +1 -1
  727. package/cli/app/.next-cli-build/server/chunks/5949.js +2 -2
  728. package/cli/app/.next-cli-build/server/chunks/6182.js +3 -3
  729. package/cli/app/.next-cli-build/server/chunks/6252.js +1 -1
  730. package/cli/app/.next-cli-build/server/chunks/6846.js +1 -1
  731. package/cli/app/.next-cli-build/server/chunks/6936.js +3 -3
  732. package/cli/app/.next-cli-build/server/chunks/7170.js +1 -1
  733. package/cli/app/.next-cli-build/server/chunks/7319.js +24 -27
  734. package/cli/app/.next-cli-build/server/chunks/7432.js +1 -1
  735. package/cli/app/.next-cli-build/server/chunks/773.js +1 -0
  736. package/cli/app/.next-cli-build/server/chunks/8239.js +60 -0
  737. package/cli/app/.next-cli-build/server/chunks/8255.js +1 -1
  738. package/cli/app/.next-cli-build/server/chunks/8306.js +1 -1
  739. package/cli/app/.next-cli-build/server/chunks/8590.js +1 -0
  740. package/cli/app/.next-cli-build/server/chunks/8655.js +2 -2
  741. package/cli/app/.next-cli-build/server/chunks/8895.js +4 -4
  742. package/cli/app/.next-cli-build/server/chunks/891.js +1 -1
  743. package/cli/app/.next-cli-build/server/chunks/9489.js +1 -1
  744. package/cli/app/.next-cli-build/server/chunks/{2750.js → 9528.js} +3 -2
  745. package/cli/app/.next-cli-build/server/chunks/9835.js +1 -1
  746. package/cli/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  747. package/cli/app/.next-cli-build/server/middleware.js +5 -5
  748. package/cli/app/.next-cli-build/server/pages/404.html +1 -1
  749. package/cli/app/.next-cli-build/server/pages/500.html +1 -1
  750. package/cli/app/.next-cli-build/server/preview-props.json +3 -3
  751. package/cli/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  752. package/cli/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  753. package/cli/app/.next-cli-build/static/QnZGjZBbNqQkbGSTiHVnz/_buildManifest.js +1 -0
  754. package/cli/app/.next-cli-build/static/chunks/{5497-a9a321ee476bd2ce.js → 5497-00e385b36b5faf04.js} +2 -2
  755. package/cli/app/.next-cli-build/static/chunks/620-f497c666bb6c6074.js +1 -0
  756. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9c505cf411125a6a.js +3 -0
  757. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-4bd92dec9d25dff3.js +1 -0
  758. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-295bb7a0a231d3e2.js +1 -0
  759. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-295bb7a0a231d3e2.js +1 -0
  760. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-295bb7a0a231d3e2.js +1 -0
  761. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-295bb7a0a231d3e2.js +1 -0
  762. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-295bb7a0a231d3e2.js +1 -0
  763. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-295bb7a0a231d3e2.js +1 -0
  764. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-295bb7a0a231d3e2.js +1 -0
  765. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-295bb7a0a231d3e2.js +1 -0
  766. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-295bb7a0a231d3e2.js +1 -0
  767. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-295bb7a0a231d3e2.js +1 -0
  768. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-295bb7a0a231d3e2.js +1 -0
  769. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-295bb7a0a231d3e2.js +1 -0
  770. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-295bb7a0a231d3e2.js +1 -0
  771. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-295bb7a0a231d3e2.js +1 -0
  772. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-295bb7a0a231d3e2.js +1 -0
  773. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-295bb7a0a231d3e2.js +1 -0
  774. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-295bb7a0a231d3e2.js +1 -0
  775. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-295bb7a0a231d3e2.js +1 -0
  776. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-295bb7a0a231d3e2.js +1 -0
  777. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-295bb7a0a231d3e2.js +1 -0
  778. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-295bb7a0a231d3e2.js +1 -0
  779. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-295bb7a0a231d3e2.js +1 -0
  780. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-295bb7a0a231d3e2.js +1 -0
  781. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-295bb7a0a231d3e2.js +1 -0
  782. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-295bb7a0a231d3e2.js +1 -0
  783. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-295bb7a0a231d3e2.js +1 -0
  784. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-295bb7a0a231d3e2.js +1 -0
  785. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-295bb7a0a231d3e2.js +1 -0
  786. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-295bb7a0a231d3e2.js +1 -0
  787. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-295bb7a0a231d3e2.js +1 -0
  788. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-295bb7a0a231d3e2.js +1 -0
  789. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-295bb7a0a231d3e2.js +1 -0
  790. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-295bb7a0a231d3e2.js +1 -0
  791. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-295bb7a0a231d3e2.js +1 -0
  792. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-295bb7a0a231d3e2.js +1 -0
  793. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-295bb7a0a231d3e2.js +1 -0
  794. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-295bb7a0a231d3e2.js +1 -0
  795. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-295bb7a0a231d3e2.js +1 -0
  796. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-295bb7a0a231d3e2.js +1 -0
  797. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-295bb7a0a231d3e2.js +1 -0
  798. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-295bb7a0a231d3e2.js +1 -0
  799. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-295bb7a0a231d3e2.js +1 -0
  800. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-295bb7a0a231d3e2.js +1 -0
  801. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-295bb7a0a231d3e2.js +1 -0
  802. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-295bb7a0a231d3e2.js +1 -0
  803. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-295bb7a0a231d3e2.js +1 -0
  804. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-295bb7a0a231d3e2.js +1 -0
  805. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-295bb7a0a231d3e2.js +1 -0
  806. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-295bb7a0a231d3e2.js +1 -0
  807. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-295bb7a0a231d3e2.js +1 -0
  808. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-295bb7a0a231d3e2.js +1 -0
  809. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-295bb7a0a231d3e2.js +1 -0
  810. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-295bb7a0a231d3e2.js +1 -0
  811. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-295bb7a0a231d3e2.js +1 -0
  812. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-295bb7a0a231d3e2.js +1 -0
  813. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-295bb7a0a231d3e2.js +1 -0
  814. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-295bb7a0a231d3e2.js +1 -0
  815. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-295bb7a0a231d3e2.js +1 -0
  816. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-295bb7a0a231d3e2.js +1 -0
  817. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-295bb7a0a231d3e2.js +1 -0
  818. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-295bb7a0a231d3e2.js +1 -0
  819. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-295bb7a0a231d3e2.js +1 -0
  820. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-295bb7a0a231d3e2.js +1 -0
  821. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-295bb7a0a231d3e2.js +1 -0
  822. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-295bb7a0a231d3e2.js +1 -0
  823. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-295bb7a0a231d3e2.js +1 -0
  824. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-295bb7a0a231d3e2.js +1 -0
  825. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-295bb7a0a231d3e2.js +1 -0
  826. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-295bb7a0a231d3e2.js +1 -0
  827. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-295bb7a0a231d3e2.js +1 -0
  828. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-295bb7a0a231d3e2.js +1 -0
  829. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  830. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  831. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  832. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  833. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  834. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  835. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  836. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  837. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  838. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  839. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  840. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  841. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  842. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  843. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  844. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-295bb7a0a231d3e2.js +1 -0
  845. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-295bb7a0a231d3e2.js +1 -0
  846. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  847. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  848. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  849. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  850. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  851. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-295bb7a0a231d3e2.js +1 -0
  852. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-295bb7a0a231d3e2.js +1 -0
  853. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-295bb7a0a231d3e2.js +1 -0
  854. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-295bb7a0a231d3e2.js +1 -0
  855. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-295bb7a0a231d3e2.js +1 -0
  856. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-295bb7a0a231d3e2.js +1 -0
  857. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  858. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  859. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  860. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  861. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  862. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-295bb7a0a231d3e2.js +1 -0
  863. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-295bb7a0a231d3e2.js +1 -0
  864. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-295bb7a0a231d3e2.js +1 -0
  865. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-295bb7a0a231d3e2.js +1 -0
  866. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  867. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  868. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  869. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  870. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  871. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-295bb7a0a231d3e2.js +1 -0
  872. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-295bb7a0a231d3e2.js +1 -0
  873. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-295bb7a0a231d3e2.js +1 -0
  874. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-295bb7a0a231d3e2.js +1 -0
  875. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-295bb7a0a231d3e2.js +1 -0
  876. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-295bb7a0a231d3e2.js +1 -0
  877. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-295bb7a0a231d3e2.js +1 -0
  878. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-295bb7a0a231d3e2.js +1 -0
  879. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-295bb7a0a231d3e2.js +1 -0
  880. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-295bb7a0a231d3e2.js +1 -0
  881. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-295bb7a0a231d3e2.js +1 -0
  882. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-295bb7a0a231d3e2.js +1 -0
  883. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-295bb7a0a231d3e2.js +1 -0
  884. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-295bb7a0a231d3e2.js +1 -0
  885. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-295bb7a0a231d3e2.js +1 -0
  886. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-295bb7a0a231d3e2.js +1 -0
  887. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-295bb7a0a231d3e2.js +1 -0
  888. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-295bb7a0a231d3e2.js +1 -0
  889. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-295bb7a0a231d3e2.js +1 -0
  890. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-295bb7a0a231d3e2.js +1 -0
  891. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-295bb7a0a231d3e2.js +1 -0
  892. package/cli/app/.next-cli-build/static/chunks/app/api/providers/opencode/discover-models/route-295bb7a0a231d3e2.js +1 -0
  893. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-295bb7a0a231d3e2.js +1 -0
  894. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-295bb7a0a231d3e2.js +1 -0
  895. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-295bb7a0a231d3e2.js +1 -0
  896. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-295bb7a0a231d3e2.js +1 -0
  897. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-295bb7a0a231d3e2.js +1 -0
  898. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-295bb7a0a231d3e2.js +1 -0
  899. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-295bb7a0a231d3e2.js +1 -0
  900. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-295bb7a0a231d3e2.js +1 -0
  901. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-295bb7a0a231d3e2.js +1 -0
  902. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-295bb7a0a231d3e2.js +1 -0
  903. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-295bb7a0a231d3e2.js +1 -0
  904. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-295bb7a0a231d3e2.js +1 -0
  905. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-295bb7a0a231d3e2.js +1 -0
  906. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-295bb7a0a231d3e2.js +1 -0
  907. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-295bb7a0a231d3e2.js +1 -0
  908. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-295bb7a0a231d3e2.js +1 -0
  909. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-295bb7a0a231d3e2.js +1 -0
  910. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-295bb7a0a231d3e2.js +1 -0
  911. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-295bb7a0a231d3e2.js +1 -0
  912. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-295bb7a0a231d3e2.js +1 -0
  913. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-295bb7a0a231d3e2.js +1 -0
  914. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-295bb7a0a231d3e2.js +1 -0
  915. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-295bb7a0a231d3e2.js +1 -0
  916. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-295bb7a0a231d3e2.js +1 -0
  917. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-295bb7a0a231d3e2.js +1 -0
  918. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-295bb7a0a231d3e2.js +1 -0
  919. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-295bb7a0a231d3e2.js +1 -0
  920. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-295bb7a0a231d3e2.js +1 -0
  921. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-295bb7a0a231d3e2.js +1 -0
  922. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-295bb7a0a231d3e2.js +1 -0
  923. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-295bb7a0a231d3e2.js +1 -0
  924. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-295bb7a0a231d3e2.js +1 -0
  925. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-295bb7a0a231d3e2.js +1 -0
  926. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-295bb7a0a231d3e2.js +1 -0
  927. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-295bb7a0a231d3e2.js +1 -0
  928. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-295bb7a0a231d3e2.js +1 -0
  929. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-295bb7a0a231d3e2.js +1 -0
  930. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-295bb7a0a231d3e2.js +1 -0
  931. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-295bb7a0a231d3e2.js +1 -0
  932. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-295bb7a0a231d3e2.js +1 -0
  933. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-295bb7a0a231d3e2.js +1 -0
  934. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-295bb7a0a231d3e2.js +1 -0
  935. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-295bb7a0a231d3e2.js +1 -0
  936. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-295bb7a0a231d3e2.js +1 -0
  937. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-295bb7a0a231d3e2.js +1 -0
  938. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-295bb7a0a231d3e2.js +1 -0
  939. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-295bb7a0a231d3e2.js +1 -0
  940. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-295bb7a0a231d3e2.js +1 -0
  941. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-295bb7a0a231d3e2.js +1 -0
  942. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-295bb7a0a231d3e2.js +1 -0
  943. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-295bb7a0a231d3e2.js +1 -0
  944. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-295bb7a0a231d3e2.js +1 -0
  945. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-295bb7a0a231d3e2.js +1 -0
  946. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-295bb7a0a231d3e2.js +1 -0
  947. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-295bb7a0a231d3e2.js +1 -0
  948. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-295bb7a0a231d3e2.js +1 -0
  949. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-295bb7a0a231d3e2.js +1 -0
  950. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-295bb7a0a231d3e2.js +1 -0
  951. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-295bb7a0a231d3e2.js +1 -0
  952. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-295bb7a0a231d3e2.js +1 -0
  953. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-295bb7a0a231d3e2.js +1 -0
  954. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-295bb7a0a231d3e2.js +1 -0
  955. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-295bb7a0a231d3e2.js +1 -0
  956. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-295bb7a0a231d3e2.js +1 -0
  957. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-295bb7a0a231d3e2.js +1 -0
  958. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-295bb7a0a231d3e2.js +1 -0
  959. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-295bb7a0a231d3e2.js +1 -0
  960. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-295bb7a0a231d3e2.js +1 -0
  961. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-295bb7a0a231d3e2.js +1 -0
  962. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-295bb7a0a231d3e2.js +1 -0
  963. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-295bb7a0a231d3e2.js +1 -0
  964. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-295bb7a0a231d3e2.js +1 -0
  965. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-295bb7a0a231d3e2.js +1 -0
  966. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-295bb7a0a231d3e2.js +1 -0
  967. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-295bb7a0a231d3e2.js +1 -0
  968. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-295bb7a0a231d3e2.js +1 -0
  969. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-295bb7a0a231d3e2.js +1 -0
  970. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-295bb7a0a231d3e2.js +1 -0
  971. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-295bb7a0a231d3e2.js +1 -0
  972. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-295bb7a0a231d3e2.js +1 -0
  973. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-295bb7a0a231d3e2.js +1 -0
  974. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-295bb7a0a231d3e2.js +1 -0
  975. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-295bb7a0a231d3e2.js +1 -0
  976. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-295bb7a0a231d3e2.js +1 -0
  977. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-295bb7a0a231d3e2.js +1 -0
  978. package/cli/app/.next-cli-build/static/chunks/app/page-295bb7a0a231d3e2.js +1 -0
  979. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-295bb7a0a231d3e2.js +1 -0
  980. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-295bb7a0a231d3e2.js +1 -0
  981. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-295bb7a0a231d3e2.js +1 -0
  982. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-295bb7a0a231d3e2.js +1 -0
  983. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-295bb7a0a231d3e2.js +1 -0
  984. package/cli/app/.next-cli-build/static/css/13d9e8c54ece137d.css +1 -0
  985. package/cli/app/CHANGELOG.md +44 -0
  986. package/cli/app/cli/hooks/postinstall.js +0 -12
  987. package/cli/app/cli/hooks/startupRuntime.js +0 -10
  988. package/cli/app/package.json +1 -1
  989. package/cli/app/src/lib/db/adapters/sqljsAdapter.js +82 -15
  990. package/cli/app/src/lib/db/migrate.js +27 -3
  991. package/cli/app/src/mitm/server.js +32 -34
  992. package/cli/cli.js +3 -7
  993. package/cli/hooks/postinstall.js +0 -12
  994. package/cli/hooks/startupRuntime.js +0 -10
  995. package/cli/package.json +1 -1
  996. package/cli/src/cli/terminalUI.js +21 -5
  997. package/package.json +1 -1
  998. package/cli/app/.next-cli-build/server/chunks/1585.js +0 -1
  999. package/cli/app/.next-cli-build/server/chunks/1998.js +0 -1
  1000. package/cli/app/.next-cli-build/server/chunks/3912.js +0 -2
  1001. package/cli/app/.next-cli-build/server/chunks/5295.js +0 -51
  1002. package/cli/app/.next-cli-build/server/chunks/7634.js +0 -10
  1003. package/cli/app/.next-cli-build/static/ZV1b0QFpI7Py60MZLjqfn/_buildManifest.js +0 -1
  1004. package/cli/app/.next-cli-build/static/chunks/620-e558cc55d89edd47.js +0 -1
  1005. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-dda271970d82f452.js +0 -3
  1006. package/cli/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-7b3b291fb9d2dc65.js +0 -1
  1007. package/cli/app/.next-cli-build/static/chunks/app/_global-error/page-5bba6c0b89069588.js +0 -1
  1008. package/cli/app/.next-cli-build/static/chunks/app/api/auth/login/route-5bba6c0b89069588.js +0 -1
  1009. package/cli/app/.next-cli-build/static/chunks/app/api/auth/logout/route-5bba6c0b89069588.js +0 -1
  1010. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-5bba6c0b89069588.js +0 -1
  1011. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-5bba6c0b89069588.js +0 -1
  1012. package/cli/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-5bba6c0b89069588.js +0 -1
  1013. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/acs/route-5bba6c0b89069588.js +0 -1
  1014. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/metadata/route-5bba6c0b89069588.js +0 -1
  1015. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/start/route-5bba6c0b89069588.js +0 -1
  1016. package/cli/app/.next-cli-build/static/chunks/app/api/auth/saml/test/route-5bba6c0b89069588.js +0 -1
  1017. package/cli/app/.next-cli-build/static/chunks/app/api/auth/status/route-5bba6c0b89069588.js +0 -1
  1018. package/cli/app/.next-cli-build/static/chunks/app/api/cache/stats/route-5bba6c0b89069588.js +0 -1
  1019. package/cli/app/.next-cli-build/static/chunks/app/api/changelog/route-5bba6c0b89069588.js +0 -1
  1020. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-5bba6c0b89069588.js +0 -1
  1021. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-5bba6c0b89069588.js +0 -1
  1022. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-5bba6c0b89069588.js +0 -1
  1023. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-5bba6c0b89069588.js +0 -1
  1024. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-5bba6c0b89069588.js +0 -1
  1025. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-gateway/accounts/route-5bba6c0b89069588.js +0 -1
  1026. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-5bba6c0b89069588.js +0 -1
  1027. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-5bba6c0b89069588.js +0 -1
  1028. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-5bba6c0b89069588.js +0 -1
  1029. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-5bba6c0b89069588.js +0 -1
  1030. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-5bba6c0b89069588.js +0 -1
  1031. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-5bba6c0b89069588.js +0 -1
  1032. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-5bba6c0b89069588.js +0 -1
  1033. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/grok-build-settings/route-5bba6c0b89069588.js +0 -1
  1034. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-5bba6c0b89069588.js +0 -1
  1035. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-5bba6c0b89069588.js +0 -1
  1036. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-5bba6c0b89069588.js +0 -1
  1037. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/omp-settings/route-5bba6c0b89069588.js +0 -1
  1038. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-5bba6c0b89069588.js +0 -1
  1039. package/cli/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-5bba6c0b89069588.js +0 -1
  1040. package/cli/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-5bba6c0b89069588.js +0 -1
  1041. package/cli/app/.next-cli-build/static/chunks/app/api/combos/route-5bba6c0b89069588.js +0 -1
  1042. package/cli/app/.next-cli-build/static/chunks/app/api/context/[id]/route-5bba6c0b89069588.js +0 -1
  1043. package/cli/app/.next-cli-build/static/chunks/app/api/context/bulk/route-5bba6c0b89069588.js +0 -1
  1044. package/cli/app/.next-cli-build/static/chunks/app/api/context/route-5bba6c0b89069588.js +0 -1
  1045. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/chat/completions/route-5bba6c0b89069588.js +0 -1
  1046. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/cli-tools/keys/route-5bba6c0b89069588.js +0 -1
  1047. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/[operation]/route-5bba6c0b89069588.js +0 -1
  1048. package/cli/app/.next-cli-build/static/chunks/app/api/dashboard/media/videos/[id]/route-5bba6c0b89069588.js +0 -1
  1049. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/enable/route-5bba6c0b89069588.js +0 -1
  1050. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/extras/route-5bba6c0b89069588.js +0 -1
  1051. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/proxy/[...path]/route-5bba6c0b89069588.js +0 -1
  1052. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/restart/route-5bba6c0b89069588.js +0 -1
  1053. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/start/route-5bba6c0b89069588.js +0 -1
  1054. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/status/route-5bba6c0b89069588.js +0 -1
  1055. package/cli/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-5bba6c0b89069588.js +0 -1
  1056. package/cli/app/.next-cli-build/static/chunks/app/api/health/ready/route-5bba6c0b89069588.js +0 -1
  1057. package/cli/app/.next-cli-build/static/chunks/app/api/health/route-5bba6c0b89069588.js +0 -1
  1058. package/cli/app/.next-cli-build/static/chunks/app/api/init/route-5bba6c0b89069588.js +0 -1
  1059. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/rotate/route-5bba6c0b89069588.js +0 -1
  1060. package/cli/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-5bba6c0b89069588.js +0 -1
  1061. package/cli/app/.next-cli-build/static/chunks/app/api/keys/route-5bba6c0b89069588.js +0 -1
  1062. package/cli/app/.next-cli-build/static/chunks/app/api/locale/route-5bba6c0b89069588.js +0 -1
  1063. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-5bba6c0b89069588.js +0 -1
  1064. package/cli/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-5bba6c0b89069588.js +0 -1
  1065. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-5bba6c0b89069588.js +0 -1
  1066. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-5bba6c0b89069588.js +0 -1
  1067. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-5bba6c0b89069588.js +0 -1
  1068. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-5bba6c0b89069588.js +0 -1
  1069. package/cli/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-5bba6c0b89069588.js +0 -1
  1070. package/cli/app/.next-cli-build/static/chunks/app/api/metrics/route-5bba6c0b89069588.js +0 -1
  1071. package/cli/app/.next-cli-build/static/chunks/app/api/models/alias/route-5bba6c0b89069588.js +0 -1
  1072. package/cli/app/.next-cli-build/static/chunks/app/api/models/availability/route-5bba6c0b89069588.js +0 -1
  1073. package/cli/app/.next-cli-build/static/chunks/app/api/models/custom/route-5bba6c0b89069588.js +0 -1
  1074. package/cli/app/.next-cli-build/static/chunks/app/api/models/disabled/route-5bba6c0b89069588.js +0 -1
  1075. package/cli/app/.next-cli-build/static/chunks/app/api/models/route-5bba6c0b89069588.js +0 -1
  1076. package/cli/app/.next-cli-build/static/chunks/app/api/models/test/route-5bba6c0b89069588.js +0 -1
  1077. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-5bba6c0b89069588.js +0 -1
  1078. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1079. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1080. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1081. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1082. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/antigravity/bulk-import/route-5bba6c0b89069588.js +0 -1
  1083. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1084. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1085. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1086. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1087. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cloudflare-ai/bulk-import/route-5bba6c0b89069588.js +0 -1
  1088. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1089. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1090. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1091. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1092. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-import/route-5bba6c0b89069588.js +0 -1
  1093. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/bulk-token/route-5bba6c0b89069588.js +0 -1
  1094. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy/quota-cookie/route-5bba6c0b89069588.js +0 -1
  1095. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1096. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1097. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1098. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1099. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-import/route-5bba6c0b89069588.js +0 -1
  1100. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/bulk-token/route-5bba6c0b89069588.js +0 -1
  1101. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codebuddy-cn/quota-cookie/route-5bba6c0b89069588.js +0 -1
  1102. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-5bba6c0b89069588.js +0 -1
  1103. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-5bba6c0b89069588.js +0 -1
  1104. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-5bba6c0b89069588.js +0 -1
  1105. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-5bba6c0b89069588.js +0 -1
  1106. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1107. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1108. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1109. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1110. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-import/route-5bba6c0b89069588.js +0 -1
  1111. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/grok-cli/bulk-token/route-5bba6c0b89069588.js +0 -1
  1112. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-5bba6c0b89069588.js +0 -1
  1113. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-5bba6c0b89069588.js +0 -1
  1114. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-5bba6c0b89069588.js +0 -1
  1115. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1116. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1117. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1118. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1119. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/bulk-import/route-5bba6c0b89069588.js +0 -1
  1120. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-5bba6c0b89069588.js +0 -1
  1121. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-5bba6c0b89069588.js +0 -1
  1122. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-5bba6c0b89069588.js +0 -1
  1123. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-5bba6c0b89069588.js +0 -1
  1124. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/cancel/route-5bba6c0b89069588.js +0 -1
  1125. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/manual/[workerId]/route-5bba6c0b89069588.js +0 -1
  1126. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/[jobId]/route-5bba6c0b89069588.js +0 -1
  1127. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/latest/route-5bba6c0b89069588.js +0 -1
  1128. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/qoder/bulk-import/route-5bba6c0b89069588.js +0 -1
  1129. package/cli/app/.next-cli-build/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-5bba6c0b89069588.js +0 -1
  1130. package/cli/app/.next-cli-build/static/chunks/app/api/pricing/route-5bba6c0b89069588.js +0 -1
  1131. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-5bba6c0b89069588.js +0 -1
  1132. package/cli/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-5bba6c0b89069588.js +0 -1
  1133. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-5bba6c0b89069588.js +0 -1
  1134. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-5bba6c0b89069588.js +0 -1
  1135. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-5bba6c0b89069588.js +0 -1
  1136. package/cli/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-5bba6c0b89069588.js +0 -1
  1137. package/cli/app/.next-cli-build/static/chunks/app/api/providers/bulk-delete/route-5bba6c0b89069588.js +0 -1
  1138. package/cli/app/.next-cli-build/static/chunks/app/api/providers/client/route-5bba6c0b89069588.js +0 -1
  1139. package/cli/app/.next-cli-build/static/chunks/app/api/providers/codebuddy/discover-models/route-5bba6c0b89069588.js +0 -1
  1140. package/cli/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-5bba6c0b89069588.js +0 -1
  1141. package/cli/app/.next-cli-build/static/chunks/app/api/providers/route-5bba6c0b89069588.js +0 -1
  1142. package/cli/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-5bba6c0b89069588.js +0 -1
  1143. package/cli/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-5bba6c0b89069588.js +0 -1
  1144. package/cli/app/.next-cli-build/static/chunks/app/api/providers/validate/route-5bba6c0b89069588.js +0 -1
  1145. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-5bba6c0b89069588.js +0 -1
  1146. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-5bba6c0b89069588.js +0 -1
  1147. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-5bba6c0b89069588.js +0 -1
  1148. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-5bba6c0b89069588.js +0 -1
  1149. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-5bba6c0b89069588.js +0 -1
  1150. package/cli/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-5bba6c0b89069588.js +0 -1
  1151. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/health/route-5bba6c0b89069588.js +0 -1
  1152. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-5bba6c0b89069588.js +0 -1
  1153. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/logs/route-5bba6c0b89069588.js +0 -1
  1154. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/restart/route-5bba6c0b89069588.js +0 -1
  1155. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/start/route-5bba6c0b89069588.js +0 -1
  1156. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stats/route-5bba6c0b89069588.js +0 -1
  1157. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-5bba6c0b89069588.js +0 -1
  1158. package/cli/app/.next-cli-build/static/chunks/app/api/pxpipe/stop/route-5bba6c0b89069588.js +0 -1
  1159. package/cli/app/.next-cli-build/static/chunks/app/api/settings/database/route-5bba6c0b89069588.js +0 -1
  1160. package/cli/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-5bba6c0b89069588.js +0 -1
  1161. package/cli/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-5bba6c0b89069588.js +0 -1
  1162. package/cli/app/.next-cli-build/static/chunks/app/api/settings/route-5bba6c0b89069588.js +0 -1
  1163. package/cli/app/.next-cli-build/static/chunks/app/api/shutdown/route-5bba6c0b89069588.js +0 -1
  1164. package/cli/app/.next-cli-build/static/chunks/app/api/tags/route-5bba6c0b89069588.js +0 -1
  1165. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/setup/route-5bba6c0b89069588.js +0 -1
  1166. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/status/route-5bba6c0b89069588.js +0 -1
  1167. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/auth/unlock/route-5bba6c0b89069588.js +0 -1
  1168. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/input/route-5bba6c0b89069588.js +0 -1
  1169. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/resize/route-5bba6c0b89069588.js +0 -1
  1170. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/route-5bba6c0b89069588.js +0 -1
  1171. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/[id]/stream/route-5bba6c0b89069588.js +0 -1
  1172. package/cli/app/.next-cli-build/static/chunks/app/api/terminal/session/route-5bba6c0b89069588.js +0 -1
  1173. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-5bba6c0b89069588.js +0 -1
  1174. package/cli/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-5bba6c0b89069588.js +0 -1
  1175. package/cli/app/.next-cli-build/static/chunks/app/api/translator/load/route-5bba6c0b89069588.js +0 -1
  1176. package/cli/app/.next-cli-build/static/chunks/app/api/translator/save/route-5bba6c0b89069588.js +0 -1
  1177. package/cli/app/.next-cli-build/static/chunks/app/api/translator/send/route-5bba6c0b89069588.js +0 -1
  1178. package/cli/app/.next-cli-build/static/chunks/app/api/translator/translate/route-5bba6c0b89069588.js +0 -1
  1179. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-5bba6c0b89069588.js +0 -1
  1180. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-5bba6c0b89069588.js +0 -1
  1181. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-5bba6c0b89069588.js +0 -1
  1182. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-5bba6c0b89069588.js +0 -1
  1183. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-5bba6c0b89069588.js +0 -1
  1184. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-5bba6c0b89069588.js +0 -1
  1185. package/cli/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-5bba6c0b89069588.js +0 -1
  1186. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-5bba6c0b89069588.js +0 -1
  1187. package/cli/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-5bba6c0b89069588.js +0 -1
  1188. package/cli/app/.next-cli-build/static/chunks/app/api/usage/aggregate/route-5bba6c0b89069588.js +0 -1
  1189. package/cli/app/.next-cli-build/static/chunks/app/api/usage/chart/route-5bba6c0b89069588.js +0 -1
  1190. package/cli/app/.next-cli-build/static/chunks/app/api/usage/history/route-5bba6c0b89069588.js +0 -1
  1191. package/cli/app/.next-cli-build/static/chunks/app/api/usage/logs/route-5bba6c0b89069588.js +0 -1
  1192. package/cli/app/.next-cli-build/static/chunks/app/api/usage/providers/route-5bba6c0b89069588.js +0 -1
  1193. package/cli/app/.next-cli-build/static/chunks/app/api/usage/quota-stream/route-5bba6c0b89069588.js +0 -1
  1194. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-5bba6c0b89069588.js +0 -1
  1195. package/cli/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-5bba6c0b89069588.js +0 -1
  1196. package/cli/app/.next-cli-build/static/chunks/app/api/usage/routing-stream/route-5bba6c0b89069588.js +0 -1
  1197. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stats/route-5bba6c0b89069588.js +0 -1
  1198. package/cli/app/.next-cli-build/static/chunks/app/api/usage/stream/route-5bba6c0b89069588.js +0 -1
  1199. package/cli/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-5bba6c0b89069588.js +0 -1
  1200. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-5bba6c0b89069588.js +0 -1
  1201. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-5bba6c0b89069588.js +0 -1
  1202. package/cli/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-5bba6c0b89069588.js +0 -1
  1203. package/cli/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-5bba6c0b89069588.js +0 -1
  1204. package/cli/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-5bba6c0b89069588.js +0 -1
  1205. package/cli/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-5bba6c0b89069588.js +0 -1
  1206. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-5bba6c0b89069588.js +0 -1
  1207. package/cli/app/.next-cli-build/static/chunks/app/api/v1/messages/route-5bba6c0b89069588.js +0 -1
  1208. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-5bba6c0b89069588.js +0 -1
  1209. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-5bba6c0b89069588.js +0 -1
  1210. package/cli/app/.next-cli-build/static/chunks/app/api/v1/models/route-5bba6c0b89069588.js +0 -1
  1211. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-5bba6c0b89069588.js +0 -1
  1212. package/cli/app/.next-cli-build/static/chunks/app/api/v1/responses/route-5bba6c0b89069588.js +0 -1
  1213. package/cli/app/.next-cli-build/static/chunks/app/api/v1/route-5bba6c0b89069588.js +0 -1
  1214. package/cli/app/.next-cli-build/static/chunks/app/api/v1/search/route-5bba6c0b89069588.js +0 -1
  1215. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/[id]/route-5bba6c0b89069588.js +0 -1
  1216. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/edits/route-5bba6c0b89069588.js +0 -1
  1217. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/extensions/route-5bba6c0b89069588.js +0 -1
  1218. package/cli/app/.next-cli-build/static/chunks/app/api/v1/videos/generations/route-5bba6c0b89069588.js +0 -1
  1219. package/cli/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-5bba6c0b89069588.js +0 -1
  1220. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-5bba6c0b89069588.js +0 -1
  1221. package/cli/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-5bba6c0b89069588.js +0 -1
  1222. package/cli/app/.next-cli-build/static/chunks/app/api/version/route-5bba6c0b89069588.js +0 -1
  1223. package/cli/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-5bba6c0b89069588.js +0 -1
  1224. package/cli/app/.next-cli-build/static/chunks/app/api/version/update/route-5bba6c0b89069588.js +0 -1
  1225. package/cli/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-5bba6c0b89069588.js +0 -1
  1226. package/cli/app/.next-cli-build/static/chunks/app/page-5bba6c0b89069588.js +0 -1
  1227. package/cli/app/.next-cli-build/static/chunks/app/provider-icons/[provider]/route-5bba6c0b89069588.js +0 -1
  1228. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-5bba6c0b89069588.js +0 -1
  1229. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-5bba6c0b89069588.js +0 -1
  1230. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-5bba6c0b89069588.js +0 -1
  1231. package/cli/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-5bba6c0b89069588.js +0 -1
  1232. package/cli/app/.next-cli-build/static/css/2259cb9ea5269549.css +0 -1
  1233. package/cli/app/cli/hooks/notionTlsRuntime.js +0 -57
  1234. package/cli/app/public/providers/notion-ai.png +0 -0
  1235. package/cli/hooks/notionTlsRuntime.js +0 -57
  1236. /package/cli/app/.next-cli-build/static/{ZV1b0QFpI7Py60MZLjqfn → QnZGjZBbNqQkbGSTiHVnz}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=5434,exports.ids=[5434],exports.modules={32693:(a,b,c)=>{c.d(b,{Lb:()=>h,kP:()=>g,mm:()=>f,u1:()=>i});let d=/(?:\[1m\])+$/i,e=new Set(["198000","298000","498000","698000"]);function f(a){if("string"!=typeof a||!a)return a;let b=a.replace(/\/+$/,"");return`${b.replace(/(?:\/v1)+$/i,"")}/v1`}function g(a){return"string"!=typeof a?"":a.replace(d,"")}function h(a,b){let c=g(a);return b&&c?`${c}[1m]`:c}function i(a){return"string"==typeof a&&e.has(a)?a:""}},35989:(a,b,c)=>{c.d(b,{Nm:()=>h,by:()=>l,td:()=>m});var d=c(40669);let e=new Set(["connect","first_event","progress_idle","total"]),f=/\((?:none|minimal|low|medium|high|xhigh|max|thinking)\)$/i;function g(a,b,c=120){return String(a||"").trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,c)||b}function h(a){return g((String(a||"").trim().split("/").at(-1)||"").replace(f,""),"unknown-model")}function i(a={}){let b,c=g(a.phase,"unknown-phase",40);return{provider:(b=g(a.provider,"unknown-provider",80),g((0,d.g2)(b),"unknown-provider",80)),modelFamily:h(a.modelFamily||a.model),operation:g(a.operation,"chat",40),phase:c}}function j(a){return[a.provider,a.modelFamily,a.operation,a.phase].join("\x1f")}function k(a,b){if(0===a.length)return null;let c=Math.max(1,Math.ceil(b*a.length));return a[c-1]}let l=function(a={}){let b=Number(a.maxSamples),c=Number(a.alpha),d=Number.isInteger(b)&&b>0?Math.min(b,256):256,f=Number.isFinite(c)&&c>0&&c<=1?c:.2,g="function"==typeof a.now?a.now:Date.now,h=new Map;return Object.freeze({record:function(a={}){if(!Number.isFinite(a.durationMs)||a.durationMs<=0)return!1;let b=i(a);if(!e.has(b.phase))return!1;let c=j(b),k=h.get(c);return k||(k={dimensions:b,samples:[],ewmaMs:null,updatedAtMs:null},h.set(c,k)),k.samples.push(a.durationMs),k.samples.length>d&&k.samples.shift(),k.ewmaMs=null===k.ewmaMs?a.durationMs:f*a.durationMs+(1-f)*k.ewmaMs,k.updatedAtMs=g(),!0},snapshot:function(a={}){let b=i(a),c=h.get(j(b));if(!c)return Object.freeze({...b,count:0,learned:!1,minMs:null,maxMs:null,p50Ms:null,p95Ms:null,p99Ms:null,ewmaMs:null,updatedAtMs:null});let d=[...c.samples].sort((a,b)=>a-b);return Object.freeze({...c.dimensions,count:d.length,learned:d.length>=20,minMs:d[0],maxMs:d.at(-1),p50Ms:k(d,.5),p95Ms:k(d,.95),p99Ms:k(d,.99),ewmaMs:c.ewmaMs,updatedAtMs:c.updatedAtMs})}})}();function m(a,b=l){let c=new Map,d=!1;return Object.freeze({observe(a,b){if(d||!e.has(a)||"total"===a||!Number.isFinite(b)||b<=0)return!1;let f=c.get(a);return"progress_idle"===a?c.set(a,Math.max(f||0,b)):void 0===f&&c.set(a,b),!0},finish({success:e,totalMs:f}={}){if(d||(d=!0,!0!==e||!Number.isFinite(f)||f<=0))return!1;for(let[d,e]of c)b.record({...a,phase:d,durationMs:e});return b.record({...a,phase:"total",durationMs:f}),!0}})}},40669:(a,b,c)=>{c.d(b,{Xh:()=>g,g2:()=>f,js:()=>h});var d=c(32693);let e={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi","kimi-coding":"kimi",cl:"cline",oc:"opencode",ocg:"opencode-go",qd:"qoder",qoder:"qoder",acl:"autoclaw",autoclaw:"autoclaw",cb:"codebuddy","cb-cn":"codebuddy-cn",codebuddy:"codebuddy","codebuddy-cn":"codebuddy-cn",el:"elevenlabs",openai:"openai",vercel:"vercel-ai-gateway","vercel-ai-gateway":"vercel-ai-gateway",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",hf:"huggingface",huggingface:"huggingface",ds:"deepseek",deepseek:"deepseek",cmc:"commandcode",commandcode:"commandcode",groq:"groq",xai:"xai",gcli:"grok-cli","grok-cli":"grok-cli",pa:"perplexity-agent","perplexity-agent":"perplexity-agent",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",na:"notion-ai","notion-ai":"notion-ai",mimo:"xiaomi-mimo","mimo-desktop":"xiaomi-mimo",xmd:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",fish:"fish-audio","fish-audio":"fish-audio",trae:"trae",marscode:"trae",ws:"windsurf",windsurf:"windsurf",zd:"zed",zed:"zed",dv:"devin-cli",devin:"devin-cli","devin-cli":"devin-cli",xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan",mmf:"mimo-free","mimo-free":"mimo-free",venice:"venice",fl:"featherless",featherless:"featherless",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly",agentrouter:"agentrouter",aimlapi:"aimlapi",aiml:"aimlapi",novita:"novita",modal:"modal",mdl:"modal",reka:"reka",nlpcloud:"nlpcloud",nlpc:"nlpcloud",bazaarlink:"bazaarlink",bzl:"bazaarlink",completions:"completions",cpl:"completions",enally:"enally",enly:"enally",freetheai:"freetheai",fta:"freetheai",llm7:"llm7",lepton:"lepton",kluster:"kluster",ai21:"ai21","inference-net":"inference-net",inet:"inference-net",predibase:"predibase",bytez:"bytez",morph:"morph",longcat:"longcat",lc:"longcat",puter:"puter",pu:"puter",uncloseai:"uncloseai",unc:"uncloseai",scaleway:"scaleway",scw:"scaleway",deepinfra:"deepinfra",sambanova:"sambanova",samba:"sambanova",nscale:"nscale",baseten:"baseten",publicai:"publicai","nous-research":"nous-research",nous:"nous-research",glhf:"glhf",bb:"blackbox",blackbox:"blackbox",ps:"poolside",poolside:"poolside",tr:"tokenrouter",tokenrouter:"tokenrouter",alitp:"alitp-intl","alitp-intl":"alitp-intl",kgw:"kilo-gateway","kilo-gateway":"kilo-gateway",kilogateway:"kilo-gateway",hunyuan:"tencent",tencent:"tencent","tencent-hunyuan":"tencent",qianfan:"baidu",baidu:"baidu",ernie:"baidu","baidu-qianfan":"baidu","llm-7":"llm7",morphllm:"morph","bazaar-link":"bazaarlink"};function f(a){return e[a]||a}function g(a){if(!(a=(0,d.kP)(a)))return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:f(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function h(a,b){let c=g(a=(0,d.kP)(a));if(!c.isAlias)return{provider:c.provider,model:c.model};let e="function"==typeof b?await b():b,h=function(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c){let a=(0,d.kP)(c);if(!a.includes("/"))return null;let b=a.indexOf("/");return{provider:f(a.slice(0,b)),model:(0,d.kP)(a.slice(b+1))}}return"object"==typeof c&&c.provider&&c.model?{provider:f(c.provider),model:(0,d.kP)(c.model)}:null}(c.model,e);return h||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":/^gpt-5\.6(-\w+)*$/.test(b)||/^gpt-5\.5(-\w+)*$/.test(b)||/^gpt-5\.4(-\w+)*$/.test(b)||/^gpt-5(\.\d+)?-codex(-\w+)*$/.test(b)?"codex":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},69110:(a,b,c)=>{let d;c.d(b,{k:()=>g});let e=new Set(["decision","attempt_open","semantic_commit","failover","terminal","circuit","probe"]);function f(){return{decisions:0,mode:{legacy:0,shadow:0,active:0},candidates:0,attempts:0,failovers:0,semanticCommits:0,circuits:0,probes:0,terminals:{success:0,failure:0},failureClasses:{},terminalDurationMs:0}}let g=(d=f(),Object.freeze({record(a={}){if(!e.has(a.type))return!1;if("decision"===a.type)d.decisions+=1,Object.hasOwn(d.mode,a.mode)&&(d.mode[a.mode]+=1),Number.isFinite(a.candidateCount)&&(d.candidates+=a.candidateCount);else if("attempt_open"===a.type)d.attempts+=1;else if("semantic_commit"===a.type)d.semanticCommits+=1;else if("failover"===a.type)d.failovers+=1;else if("circuit"===a.type)d.circuits+=1;else if("probe"===a.type)d.probes+=1;else if("terminal"===a.type){let b="string"==typeof a.failureClass&&a.failureClass.length>0;d.terminals[b?"failure":"success"]+=1,b&&(d.failureClasses[a.failureClass]=(d.failureClasses[a.failureClass]||0)+1),Number.isFinite(a.durationMs)&&a.durationMs>0&&(d.terminalDurationMs+=a.durationMs)}return!0},snapshot:()=>{var a;return Object.freeze({...a=d,mode:Object.freeze({...a.mode}),terminals:Object.freeze({...a.terminals}),failureClasses:Object.freeze({...a.failureClasses})})},reset(){d=f()}}))},75434:(a,b,c)=>{c.d(b,{ST:()=>n,cN:()=>l,q:()=>m,vr:()=>j});var d=c(35989),e=c(69110);let f=new Set(["decision","attempt_open","semantic_commit","failover","terminal","circuit","probe"]),g=new Set(["requestTag","provider","connectionId","mode","reason","phase","failureClass","code"]),h=new Set(["candidateCount","attemptIndex","durationMs","deadlineMs","score"]),i=new Set(["health","priority","quota","latency","stability"]);function j(a={}){if(!a||"object"!=typeof a||Array.isArray(a))return Object.freeze({});let b={};for(let[c,d]of Object.entries(a))if(g.has(c)){let a=function(a,b=120){if("string"!=typeof a)return null;let c=a.replace(/[\r\n\t]+/g," ").trim();return!c||c.includes("@")?null:c.slice(0,b)}(d);null!==a&&(b[c]=a)}else if(h.has(c)){let a=Number.isFinite(d)?d:null;null!==a&&(b[c]=a)}else if("scoreComponents"===c){let a=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a).filter(([a,b])=>i.has(a)&&Number.isFinite(b));return b.length>0?Object.freeze(Object.fromEntries(b)):null}(d);a&&(b[c]=a)}return Object.freeze(b)}let k=function(a={}){let b=Number(a.maxEvents),c=Number.isInteger(b)&&b>0?Math.min(500,b):500,g="function"==typeof a.now?a.now:Date.now,h=[],i=new Set,k=0;return Object.freeze({emit(a){let b=function(a,b,c){if(!f.has(a?.type))return null;let e=a.modelFamily||a.model?(0,d.Nm)(a.modelFamily||a.model):null;return Object.freeze({sequence:c,timestamp:b(),type:a.type,...j(a),...e?{modelFamily:e}:{}})}(a,g,k+1);if(!b)return null;for(let a of(k=b.sequence,h.push(b),h.length>c&&h.shift(),e.k.record(b),i))a(b);return b},snapshot:()=>Object.freeze([...h]),after(a=0){let b=Number.isSafeInteger(a)&&a>0?a:0;return Object.freeze(h.filter(a=>a.sequence>b))},subscribe:a=>"function"!=typeof a?()=>{}:(i.add(a),()=>i.delete(a)),clear(){h.length=0}})}(),l=k.emit;k.snapshot;let m=k.after,n=k.subscribe}};
1
+ "use strict";exports.id=5434,exports.ids=[5434],exports.modules={32693:(a,b,c)=>{c.d(b,{Lb:()=>h,kP:()=>g,mm:()=>f,u1:()=>i});let d=/(?:\[1m\])+$/i,e=new Set(["198000","298000","498000","698000"]);function f(a){if("string"!=typeof a||!a)return a;let b=a.replace(/\/+$/,"");return`${b.replace(/(?:\/v1)+$/i,"")}/v1`}function g(a){return"string"!=typeof a?"":a.replace(d,"")}function h(a,b){let c=g(a);return b&&c?`${c}[1m]`:c}function i(a){return"string"==typeof a&&e.has(a)?a:""}},35989:(a,b,c)=>{c.d(b,{Nm:()=>h,by:()=>l,td:()=>m});var d=c(40669);let e=new Set(["connect","first_event","progress_idle","total"]),f=/\((?:none|minimal|low|medium|high|xhigh|max|thinking)\)$/i;function g(a,b,c=120){return String(a||"").trim().toLowerCase().replace(/[^a-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,c)||b}function h(a){return g((String(a||"").trim().split("/").at(-1)||"").replace(f,""),"unknown-model")}function i(a={}){let b,c=g(a.phase,"unknown-phase",40);return{provider:(b=g(a.provider,"unknown-provider",80),g((0,d.g2)(b),"unknown-provider",80)),modelFamily:h(a.modelFamily||a.model),operation:g(a.operation,"chat",40),phase:c}}function j(a){return[a.provider,a.modelFamily,a.operation,a.phase].join("\x1f")}function k(a,b){if(0===a.length)return null;let c=Math.max(1,Math.ceil(b*a.length));return a[c-1]}let l=function(a={}){let b=Number(a.maxSamples),c=Number(a.alpha),d=Number.isInteger(b)&&b>0?Math.min(b,256):256,f=Number.isFinite(c)&&c>0&&c<=1?c:.2,g="function"==typeof a.now?a.now:Date.now,h=new Map;return Object.freeze({record:function(a={}){if(!Number.isFinite(a.durationMs)||a.durationMs<=0)return!1;let b=i(a);if(!e.has(b.phase))return!1;let c=j(b),k=h.get(c);return k||(k={dimensions:b,samples:[],ewmaMs:null,updatedAtMs:null},h.set(c,k)),k.samples.push(a.durationMs),k.samples.length>d&&k.samples.shift(),k.ewmaMs=null===k.ewmaMs?a.durationMs:f*a.durationMs+(1-f)*k.ewmaMs,k.updatedAtMs=g(),!0},snapshot:function(a={}){let b=i(a),c=h.get(j(b));if(!c)return Object.freeze({...b,count:0,learned:!1,minMs:null,maxMs:null,p50Ms:null,p95Ms:null,p99Ms:null,ewmaMs:null,updatedAtMs:null});let d=[...c.samples].sort((a,b)=>a-b);return Object.freeze({...c.dimensions,count:d.length,learned:d.length>=20,minMs:d[0],maxMs:d.at(-1),p50Ms:k(d,.5),p95Ms:k(d,.95),p99Ms:k(d,.99),ewmaMs:c.ewmaMs,updatedAtMs:c.updatedAtMs})}})}();function m(a,b=l){let c=new Map,d=!1;return Object.freeze({observe(a,b){if(d||!e.has(a)||"total"===a||!Number.isFinite(b)||b<=0)return!1;let f=c.get(a);return"progress_idle"===a?c.set(a,Math.max(f||0,b)):void 0===f&&c.set(a,b),!0},finish({success:e,totalMs:f}={}){if(d||(d=!0,!0!==e||!Number.isFinite(f)||f<=0))return!1;for(let[d,e]of c)b.record({...a,phase:d,durationMs:e});return b.record({...a,phase:"total",durationMs:f}),!0}})}},40669:(a,b,c)=>{c.d(b,{Xh:()=>g,g2:()=>f,js:()=>h});var d=c(32693);let e={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi","kimi-coding":"kimi",cl:"cline",oc:"opencode",ocg:"opencode-go",qd:"qoder",qoder:"qoder",acl:"autoclaw",autoclaw:"autoclaw",cb:"codebuddy","cb-cn":"codebuddy-cn",codebuddy:"codebuddy","codebuddy-cn":"codebuddy-cn",el:"elevenlabs",openai:"openai",vercel:"vercel-ai-gateway","vercel-ai-gateway":"vercel-ai-gateway",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",hf:"huggingface",huggingface:"huggingface",ds:"deepseek",deepseek:"deepseek",cmc:"commandcode",commandcode:"commandcode",groq:"groq",xai:"xai",gcli:"grok-cli","grok-cli":"grok-cli",pa:"perplexity-agent","perplexity-agent":"perplexity-agent",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","mimo-desktop":"xiaomi-mimo",xmd:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",fish:"fish-audio","fish-audio":"fish-audio",trae:"trae",marscode:"trae",ws:"windsurf",windsurf:"windsurf",zd:"zed",zed:"zed",dv:"devin-cli",devin:"devin-cli","devin-cli":"devin-cli",xmtp:"xiaomi-tokenplan","xiaomi-tokenplan":"xiaomi-tokenplan",mmf:"mimo-free","mimo-free":"mimo-free",venice:"venice",fl:"featherless",featherless:"featherless",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly",agentrouter:"agentrouter",aimlapi:"aimlapi",aiml:"aimlapi",novita:"novita",modal:"modal",mdl:"modal",reka:"reka",nlpcloud:"nlpcloud",nlpc:"nlpcloud",bazaarlink:"bazaarlink",bzl:"bazaarlink",completions:"completions",cpl:"completions",enally:"enally",enly:"enally",freetheai:"freetheai",fta:"freetheai",llm7:"llm7",lepton:"lepton",kluster:"kluster",ai21:"ai21","inference-net":"inference-net",inet:"inference-net",predibase:"predibase",bytez:"bytez",morph:"morph",longcat:"longcat",lc:"longcat",puter:"puter",pu:"puter",uncloseai:"uncloseai",unc:"uncloseai",scaleway:"scaleway",scw:"scaleway",deepinfra:"deepinfra",sambanova:"sambanova",samba:"sambanova",nscale:"nscale",baseten:"baseten",publicai:"publicai","nous-research":"nous-research",nous:"nous-research",glhf:"glhf",bb:"blackbox",blackbox:"blackbox",ps:"poolside",poolside:"poolside",tr:"tokenrouter",tokenrouter:"tokenrouter",alitp:"alitp-intl","alitp-intl":"alitp-intl",kgw:"kilo-gateway","kilo-gateway":"kilo-gateway",kilogateway:"kilo-gateway",hunyuan:"tencent",tencent:"tencent","tencent-hunyuan":"tencent",qianfan:"baidu",baidu:"baidu",ernie:"baidu","baidu-qianfan":"baidu","llm-7":"llm7",morphllm:"morph","bazaar-link":"bazaarlink"};function f(a){return e[a]||a}function g(a){if(!(a=(0,d.kP)(a)))return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:f(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function h(a,b){let c=g(a=(0,d.kP)(a));if(!c.isAlias)return{provider:c.provider,model:c.model};let e="function"==typeof b?await b():b,h=function(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c){let a=(0,d.kP)(c);if(!a.includes("/"))return null;let b=a.indexOf("/");return{provider:f(a.slice(0,b)),model:(0,d.kP)(a.slice(b+1))}}return"object"==typeof c&&c.provider&&c.model?{provider:f(c.provider),model:(0,d.kP)(c.model)}:null}(c.model,e);return h||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":/^gpt-5\.6(-\w+)*$/.test(b)||/^gpt-5\.5(-\w+)*$/.test(b)||/^gpt-5\.4(-\w+)*$/.test(b)||/^gpt-5(\.\d+)?-codex(-\w+)*$/.test(b)?"codex":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},69110:(a,b,c)=>{let d;c.d(b,{k:()=>g});let e=new Set(["decision","attempt_open","semantic_commit","failover","terminal","circuit","probe"]);function f(){return{decisions:0,mode:{legacy:0,shadow:0,active:0},candidates:0,attempts:0,failovers:0,semanticCommits:0,circuits:0,probes:0,terminals:{success:0,failure:0},failureClasses:{},terminalDurationMs:0}}let g=(d=f(),Object.freeze({record(a={}){if(!e.has(a.type))return!1;if("decision"===a.type)d.decisions+=1,Object.hasOwn(d.mode,a.mode)&&(d.mode[a.mode]+=1),Number.isFinite(a.candidateCount)&&(d.candidates+=a.candidateCount);else if("attempt_open"===a.type)d.attempts+=1;else if("semantic_commit"===a.type)d.semanticCommits+=1;else if("failover"===a.type)d.failovers+=1;else if("circuit"===a.type)d.circuits+=1;else if("probe"===a.type)d.probes+=1;else if("terminal"===a.type){let b="string"==typeof a.failureClass&&a.failureClass.length>0;d.terminals[b?"failure":"success"]+=1,b&&(d.failureClasses[a.failureClass]=(d.failureClasses[a.failureClass]||0)+1),Number.isFinite(a.durationMs)&&a.durationMs>0&&(d.terminalDurationMs+=a.durationMs)}return!0},snapshot:()=>{var a;return Object.freeze({...a=d,mode:Object.freeze({...a.mode}),terminals:Object.freeze({...a.terminals}),failureClasses:Object.freeze({...a.failureClasses})})},reset(){d=f()}}))},75434:(a,b,c)=>{c.d(b,{ST:()=>n,cN:()=>l,q:()=>m,vr:()=>j});var d=c(35989),e=c(69110);let f=new Set(["decision","attempt_open","semantic_commit","failover","terminal","circuit","probe"]),g=new Set(["requestTag","provider","connectionId","mode","reason","phase","failureClass","code"]),h=new Set(["candidateCount","attemptIndex","durationMs","deadlineMs","score"]),i=new Set(["health","priority","quota","latency","stability"]);function j(a={}){if(!a||"object"!=typeof a||Array.isArray(a))return Object.freeze({});let b={};for(let[c,d]of Object.entries(a))if(g.has(c)){let a=function(a,b=120){if("string"!=typeof a)return null;let c=a.replace(/[\r\n\t]+/g," ").trim();return!c||c.includes("@")?null:c.slice(0,b)}(d);null!==a&&(b[c]=a)}else if(h.has(c)){let a=Number.isFinite(d)?d:null;null!==a&&(b[c]=a)}else if("scoreComponents"===c){let a=function(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b=Object.entries(a).filter(([a,b])=>i.has(a)&&Number.isFinite(b));return b.length>0?Object.freeze(Object.fromEntries(b)):null}(d);a&&(b[c]=a)}return Object.freeze(b)}let k=function(a={}){let b=Number(a.maxEvents),c=Number.isInteger(b)&&b>0?Math.min(500,b):500,g="function"==typeof a.now?a.now:Date.now,h=[],i=new Set,k=0;return Object.freeze({emit(a){let b=function(a,b,c){if(!f.has(a?.type))return null;let e=a.modelFamily||a.model?(0,d.Nm)(a.modelFamily||a.model):null;return Object.freeze({sequence:c,timestamp:b(),type:a.type,...j(a),...e?{modelFamily:e}:{}})}(a,g,k+1);if(!b)return null;for(let a of(k=b.sequence,h.push(b),h.length>c&&h.shift(),e.k.record(b),i))a(b);return b},snapshot:()=>Object.freeze([...h]),after(a=0){let b=Number.isSafeInteger(a)&&a>0?a:0;return Object.freeze(h.filter(a=>a.sequence>b))},subscribe:a=>"function"!=typeof a?()=>{}:(i.add(a),()=>i.delete(a)),clear(){h.length=0}})}(),l=k.emit;k.snapshot;let m=k.after,n=k.subscribe}};
@@ -1,4 +1,4 @@
1
1
  "use strict";exports.id=5436,exports.ids=[5436],exports.modules={5529:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={buildUrl:a=>`https://api.stability.ai/v2beta/stable-image/generate/${a.includes("ultra")?"ultra":a.includes("sd3")?"sd3":"core"}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Bearer ${b}`,Accept:"application/json"}},buildBody:(a,b)=>{let c={prompt:b.prompt,output_format:(b.output_format||"png").toLowerCase()};return b.size&&(c.aspect_ratio=(0,d.CY)(b.size)),b.style&&(c.style_preset=b.style),a.includes("sd3")&&(c.model=a),c},normalize:a=>a.image?{created:(0,d.kv)(),data:[{b64_json:a.image}]}:{created:(0,d.kv)(),data:[]}}},7648:(a,b,c)=>{c.d(b,{A:()=>k});var d=c(77598),e=c(29975),f=c(75924);let g="-image",h="high",i=new Set(["gpt-image-1.5","gpt-image-2","gpt-image-2.5","gpt-image-2.5-flare","gpt-image-2.5-sunburst"]);async function j(a,b,c={}){let d=a.body.getReader(),e=new TextDecoder,f="",g=null,h=null,i=0,k=0;for(;;){let a,{done:j,value:l}=await d.read();if(j)break;for(i+=l?.byteLength||0,f+=e.decode(l,{stream:!0});-1!==(a=f.indexOf("\n\n"));){let d=f.slice(0,a);f=f.slice(a+2);let e=d.split("\n"),j=null,l="";for(let a of e)a.startsWith("event:")?j=a.slice(6).trim():a.startsWith("data:")&&(l+=a.slice(5).trim());if(!j)continue;j!==h&&(b?.info?.("IMAGE",`codex progress: ${j}`),h=j);let m=Date.now();if(c.onProgress&&m-k>200&&(k=m,c.onProgress({stage:j,bytesReceived:i})),"response.image_generation_call.partial_image"===j&&l)try{let a=JSON.parse(l);c.onPartialImage&&a?.partial_image_b64&&c.onPartialImage({b64_json:a.partial_image_b64,index:a.partial_image_index})}catch{}if("response.output_item.done"===j&&l)try{let a=JSON.parse(l),b=a?.item;b?.type==="image_generation_call"&&b.result&&(g=b.result)}catch{}}}return g}let k={stream:!0,buildUrl:()=>"https://chatgpt.com/backend-api/codex/responses",buildHeaders:a=>{let b=a?.providerSpecificData?.chatgptAccountId||function(a){try{let b=String(a||"").split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4,e=JSON.parse(Buffer.from(c+"=".repeat(d),"base64").toString("utf8"));return e?.["https://api.openai.com/auth"]?.chatgpt_account_id||null}catch{return null}}(a?.idToken);return{accept:"text/event-stream, application/json",authorization:`Bearer ${a?.accessToken||""}`,"chatgpt-account-id":b||"","content-type":"application/json",originator:f.Hi,session_id:(0,d.randomUUID)(),"user-agent":(0,f.cw)(),version:f.Ch,"x-client-request-id":(0,d.randomUUID)()}},buildBody:(a,b)=>{let c=[],e=new Set,f=a=>{if("string"!=typeof a||e.has(a))return;let b=a&&"string"==typeof a?/^data:image\//i.test(a)||/^https?:\/\//i.test(a)?a:`data:image/png;base64,${a}`:null;b&&(e.add(a),c.push(b))};Array.isArray(b.images)&&b.images.forEach(f),f(b.image);let j=b.image_detail||h,k=function(a,b){if(!i.has(a))return{responsesModel:a.endsWith(g)?a.slice(0,-g.length):a};return{responsesModel:"gpt-5.3-codex",toolModel:a,action:b?"edit":"generate"}}(a,c.length>0),l={type:"image_generation",output_format:(b.output_format||"png").toLowerCase()};return k.toolModel&&(l.model=k.toolModel,l.action=k.action),b.size&&""!==b.size&&(l.size=b.size),b.quality&&""!==b.quality&&(l.quality=b.quality),b.background&&""!==b.background&&(l.background=b.background),{model:k.responsesModel,instructions:"",input:[{type:"message",role:"user",content:function(a,b,c=h){let d=[];return b.forEach((a,b)=>{d.push({type:"input_text",text:`<image name=image${b+1}>`}),d.push({type:"input_image",image_url:a,detail:c}),d.push({type:"input_text",text:"</image>"})}),d.push({type:"input_text",text:a}),d}(b.prompt,c,j)}],tools:[l],tool_choice:"auto",parallel_tool_calls:!1,prompt_cache_key:(0,d.randomUUID)(),stream:!0,store:!1,reasoning:null}},async parseResponse(a,{log:b,streamToClient:c,onRequestSuccess:d}){if(c)return{sseResponse:new Response(new ReadableStream({async start(c){let f=new TextEncoder,g=(a,b)=>{c.enqueue(f.encode(`event: ${a}
2
2
  data: ${JSON.stringify(b)}
3
3
 
4
- `))};try{let c=await j(a,b,{onProgress:a=>g("progress",a),onPartialImage:a=>g("partial_image",a)});c?(d&&await d(),g("done",{created:(0,e.kv)(),data:[{b64_json:c}]})):g("error",{message:"Codex did not return an image. Account may not be entitled (Plus/Pro required)."})}catch(a){g("error",{message:a?.message||"Stream failed"})}finally{c.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no","Access-Control-Allow-Origin":"*"}})};let f=await j(a,b);if(!f)throw Error("Codex did not return an image. Account may not be entitled (Plus/Pro required).");return{created:(0,e.kv)(),data:[{b64_json:f}]}},normalize:a=>a}},10326:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(29975);let e="https://api.dev.runwayml.com/v1",f={async:!0,buildUrl:a=>`${e}/${a.includes("image")?"text_to_image":"image_to_video"}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Bearer ${b}`,"X-Runway-Version":"2024-11-06"}},buildBody:(a,b)=>{let c=!a.includes("image"),e=(0,d.CY)(b.size);return c?{promptText:b.prompt,model:a,ratio:e,duration:5,...b.image?{promptImage:b.image}:{}}:{promptText:b.prompt,model:a,ratio:e,...b.image?{referenceImages:[{uri:b.image}]}:{}}},async parseResponse(a,{headers:b}){let{id:c}=await a.json();if(!c)throw Error("Runway: no task id returned");let f=`${e}/tasks/${c}`,g=Date.now()+d.vv;for(;Date.now()<g;){await (0,d.yy)(d.fv);let a=await fetch(f,{headers:b});if(!a.ok)throw Error(`Runway status ${a.status}`);let c=await a.json();if("SUCCEEDED"===c.status)return c;if("FAILED"===c.status||"CANCELLED"===c.status)throw Error(c.failure||"Runway task failed")}throw Error("Runway polling timeout")},normalize:a=>{let b=Array.isArray(a.output)?a.output:[];return{created:(0,d.kv)(),data:b.map(a=>({url:a}))}}}},12185:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={async:!0,buildUrl:a=>`https://api.bfl.ai/v1/${a}`,buildHeaders:a=>({"Content-Type":"application/json","x-key":a?.apiKey||a?.accessToken}),buildBody:(a,b)=>{let c={prompt:b.prompt};if(b.size){let[a,d]=b.size.split("x").map(Number);a&&(c.width=a),d&&(c.height=d)}return b.image&&(c.image_prompt=b.image),c},async parseResponse(a,{headers:b}){let c=(await a.json()).polling_url;if(!c)throw Error("BFL: no polling_url returned");let e=Date.now()+d.vv;for(;Date.now()<e;){await (0,d.yy)(d.fv);let a=await fetch(c,{headers:{"x-key":b["x-key"],Accept:"application/json"}});if(!a.ok)throw Error(`BFL status ${a.status}`);let e=await a.json();if("Ready"===e.status)return e;if("Error"===e.status||"Failed"===e.status)throw Error(e.error||"BFL generation failed")}throw Error("BFL polling timeout")},normalize:a=>{let b=a.result?.sample;return b?{created:(0,d.kv)(),data:[{url:b}]}:{created:(0,d.kv)(),data:[]}}}},16867:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>s});var e=c(61613),f=c(38952),g=c(7648),h=c(30782),i=c(24849),j=c(33081),k=c(62796),l=c(45738),m=c(5529),n=c(12185),o=c(10326),p=c(90734),q=c(91285),r=a([q]);q=(r.then?(await r)():r)[0];let t={openai:(0,e.A)("openai"),minimax:(0,e.A)("minimax"),openrouter:(0,e.A)("openrouter"),recraft:(0,e.A)("recraft"),xai:(0,e.A)("xai"),gemini:f.A,codex:g.A,sdwebui:h.A,comfyui:i.A,huggingface:j.A,nanobanana:k.A,"fal-ai":l.A,"stability-ai":m.A,"black-forest-labs":n.A,runwayml:o.A,"cloudflare-ai":p.A,antigravity:q.A};function s(a){return t[a]||null}d()}catch(a){d(a)}})},24849:(a,b,c)=>{c.d(b,{A:()=>d});let d={noAuth:!0,buildUrl:()=>"http://localhost:8188",buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>({prompt:b.prompt}),normalize:a=>a}},29975:(a,b,c)=>{c.d(b,{CY:()=>g,W6:()=>h,fv:()=>d,kv:()=>i,vv:()=>e,yy:()=>f});let d=1500,e=12e4,f=a=>new Promise(b=>setTimeout(b,a));function g(a){return a&&"string"==typeof a&&({"1024x1024":"1:1","1024x1792":"9:16","1792x1024":"16:9","1024x1536":"2:3","1536x1024":"3:2"})[a]||"1:1"}async function h(a){let b=await fetch(a);if(!b.ok)throw Error(`Failed to fetch image: ${b.status}`);let c=await b.arrayBuffer();return Buffer.from(c).toString("base64")}function i(){return Math.floor(Date.now()/1e3)}},30782:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={noAuth:!0,buildUrl:()=>"http://localhost:7860/sdapi/v1/txt2img",buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>{let{prompt:c,n:d=1,size:e="1024x1024"}=b,[f,g]=e.split("x").map(Number);return{prompt:c,width:f||512,height:g||512,steps:20,batch_size:d}},normalize:a=>{let b=Array.isArray(a.images)?a.images.map(a=>({b64_json:a})):[];return{created:(0,d.kv)(),data:b}}}},33081:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={buildUrl:a=>`https://api-inference.huggingface.co/models/${a}`,buildHeaders:a=>{let b={"Content-Type":"application/json"},c=a?.apiKey||a?.accessToken;return c&&(b.Authorization=`Bearer ${c}`),b},buildBody:(a,b)=>({inputs:b.prompt}),async parseResponse(a){let b=await a.arrayBuffer(),c=Buffer.from(b).toString("base64");return{created:(0,d.kv)(),data:[{b64_json:c}]}},normalize:a=>a}},38952:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={buildUrl:(a,b)=>{let c=b?.apiKey||b?.accessToken,d=a.replace(/^models\//,"");return`https://generativelanguage.googleapis.com/v1beta/models/${d}:generateContent?key=${encodeURIComponent(c)}`},buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>({contents:[{parts:[{text:b.prompt}]}],generationConfig:{responseModalities:["TEXT","IMAGE"]}}),normalize:(a,b)=>{let c=(a.candidates?.[0]?.content?.parts||[]).filter(a=>a.inlineData?.data).map(a=>({b64_json:a.inlineData.data}));return{created:(0,d.kv)(),data:c.length>0?c:[{b64_json:"",revised_prompt:b}]}}}},45738:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={async:!0,buildUrl:a=>`https://queue.fal.run/${a}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Key ${b}`}},buildBody:(a,b)=>{let c={prompt:b.prompt,num_images:b.n||1};return b.size&&(c.image_size=(0,d.CY)(b.size)),b.image&&(c.image_url=b.image),c},async parseResponse(a,{headers:b}){let{status_url:c,response_url:e}=await a.json(),f=Date.now()+d.vv;for(;Date.now()<f;){await (0,d.yy)(d.fv);let a=await fetch(c,{headers:b});if(!a.ok)throw Error(`Fal status ${a.status}`);let f=await a.json();if("COMPLETED"===f.status){let a=await fetch(e,{headers:b});return await a.json()}if("FAILED"===f.status)throw Error(f.error||"Fal generation failed")}throw Error("Fal polling timeout")},normalize:a=>{let b=Array.isArray(a.images)?a.images:a.image?[a.image]:[];return{created:(0,d.kv)(),data:b.map(a=>({url:a.url||a}))}}}},55436:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>p});var e=c(80238),f=c(89718),g=c(38775),h=c(72301),i=c(43659),j=c(41004),k=c(58136),l=c(18910),m=c(11410),n=c(7803),o=a([h,m]);[h,m]=o.then?(await o)():o;let r=new Set(["sdwebui","comfyui"]);async function p(a){let b;try{b=await a.json()}catch{return(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=a.headers.get("x-connection-id")||null,h=(a.headers.get("accept")||"").includes("text/event-stream"),k="binary"===c.searchParams.get("response_format"),o=b.model,p=(0,e.Tr)(a),r=await (0,f.mt)();if(r.requireApiKey){if(!p)return(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(p))return(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}if(!o||"string"!=typeof o)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing model");if(!b.prompt)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing required field: prompt");let s=await (0,m.M)(p,o);if(s.error)return s.error;let t=await (0,g.d_)(o);if(t){let a=r.comboStrategies||{},c=a[o]?.fallbackStrategy||r.comboStrategy||"fallback",e=r.comboStickyRoundRobinLimit;return n.info("IMAGE",`Combo "${o}" with ${t.length} models (strategy: ${c}, sticky: ${e})`),s.finish(await (0,l.Pr)({body:b,models:t,handleSingleModel:(a,b)=>q(a,b,{wantsStream:h,binaryOutput:k,preferredConnectionId:d,apiKey:p}),log:n,comboName:o,comboStrategy:c,comboStickyLimit:e}))}return s.finish(await q(b,o,{wantsStream:h,binaryOutput:k,preferredConnectionId:d,apiKey:p}))}async function q(a,b,{wantsStream:c,binaryOutput:d,preferredConnectionId:f,apiKey:l}={}){let m=await (0,g.mA)(b);if(!m.provider)return(0,i.yj)(j.gx.BAD_REQUEST,"Invalid model format");let{provider:n,model:o}=m;if(r.has(n)){let b=await (0,h.l)({body:a,modelInfo:{provider:n,model:o},credentials:null,binaryOutput:d});return b.success?b.response:(0,i.yj)(b.status||j.gx.BAD_GATEWAY,b.error||"Image generation failed")}let p=new Set,s=null,t=null;for(;;){let b=await (0,e.c1)(n,p,o,{preferredConnectionId:f,...l?{apiKey:l}:{}});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=s||b.lastError||"Unavailable",c=t||Number(b.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return(0,i.wO)(c,`[${n}/${o}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===p.size)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${n}`);return(0,i.yj)(t||j.gx.SERVICE_UNAVAILABLE,s||"All accounts unavailable")}let g=await (0,k.eU)(n,b),m=await (0,h.l)({body:a,modelInfo:{provider:n,model:o},credentials:g,streamToClient:c,binaryOutput:d,onCredentialsRefreshed:async a=>{await (0,k.vN)(b.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(b.connectionId,b,o)}});if(m.success)return m.response;let{shouldFallback:q}=await (0,e.vk)(b.connectionId,m.status,m.error,n,o);if(q){p.add(b.connectionId),s=m.error,t=m.status;continue}return m.response}}d()}catch(a){d(a)}})},61613:(a,b,c)=>{c.d(b,{A:()=>e});let d={openai:"https://api.openai.com/v1/images/generations",minimax:"https://api.minimaxi.com/v1/images/generations",openrouter:"https://openrouter.ai/api/v1/images/generations",recraft:"https://external.api.recraft.ai/v1/images/generations",xai:"https://api.x.ai/v1/images/generations"};function e(a){return{buildUrl:()=>d[a],buildHeaders:b=>{let c={"Content-Type":"application/json"},d=b?.apiKey||b?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),"openrouter"===a&&(c["HTTP-Referer"]="https://endpoint-proxy.local",c["X-Title"]="Endpoint Proxy"),c},buildBody:(b,c)=>{let{prompt:d,n:e=1,size:f="1024x1024",quality:g,style:h,response_format:i}=c;if("xai"===a){let a={model:b,prompt:d,n:e};return i&&(a.response_format=i),a}let j={model:b,prompt:d,n:e,size:f};return g&&(j.quality=g),h&&(j.style=h),i&&(j.response_format=i),j},normalize:a=>a}}},62796:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={async:!0,buildUrl:()=>"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",buildHeaders:a=>{let b={"Content-Type":"application/json"},c=a?.apiKey||a?.accessToken;return c&&(b.Authorization=`Bearer ${c}`),b},buildBody:(a,b)=>{let c=(0,d.CY)(b.size),e=!!(b.image||Array.isArray(b.images)&&b.images.length),f={prompt:b.prompt,type:e?"IMAGETOIAMGE":"TEXTTOIAMGE",numImages:b.n||1,image_size:c,callBackUrl:"https://localhost/callback"};if(e){let a=Array.isArray(b.images)?b.images.filter(Boolean):[];b.image&&a.push(b.image),f.imageUrls=a}return f},async parseResponse(a,{headers:b}){let c=await a.json();if(200!==c.code)throw Error(c.msg||"NanoBanana submit failed");let e=c.data?.taskId;if(!e)throw Error("NanoBanana: no taskId returned");let f=`https://api.nanobananaapi.ai/api/v1/nanobanana/record-info?taskId=${encodeURIComponent(e)}`,g=Date.now()+d.vv;for(;Date.now()<g;){await (0,d.yy)(d.fv);let a=await fetch(f,{headers:b});if(!a.ok)throw Error(`NanoBanana status ${a.status}`);let c=await a.json(),e=c.data?.successFlag;if(1===e)return c.data;if(2===e||3===e)throw Error(c.data?.errorMessage||"NanoBanana generation failed")}throw Error("NanoBanana polling timeout")},normalize:(a,b)=>{let c=a.response?.resultImageUrl||a.response?.originImageUrl;return c?{created:(0,d.kv)(),data:[{url:c,revised_prompt:b}]}:{created:(0,d.kv)(),data:[]}}}},72301:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{l:()=>m});var e=c(43659),f=c(41004),g=c(8590),h=c(55330),i=c(16867),j=c(29975),k=a([h,i]);function l(a){return"u">typeof FormData&&a instanceof FormData||"string"==typeof a?a:JSON.stringify(a)}async function m({body:a,modelInfo:b,credentials:c,log:d,streamToClient:k=!1,binaryOutput:n=!1,onCredentialsRefreshed:o,onRequestSuccess:p}){let q,r,s,t,u,{provider:v,model:w}=b;if(!a.prompt)return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: prompt");let x=(0,i.j)(v);if(!x)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${v}' does not support image generation`);if(x.useExecutor&&x.executeViaExecutor){let b;try{d?.debug?.("IMAGE",`${v.toUpperCase()} | ${w} | prompt="${a.prompt.slice(0,50)}..." (executor)`),b=await x.executeViaExecutor(w,a,c,d)}catch(b){let a=(0,e.lR)(b,v,w,f.gx.BAD_GATEWAY);return d?.debug?.("IMAGE",`Executor error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}p&&await p();let g=x.normalize(b,a.prompt),h=g.created&&Array.isArray(g.data)?g:b;if(n){let b=h.data?.[0],c=b?.b64_json;if(!c&&b?.url)try{c=await (0,j.W6)(b.url)}catch{}if(c){let b=Buffer.from(c,"base64"),d=(a.output_format||"png").toLowerCase();return{success:!0,response:new Response(b,{headers:{"Content-Type":"jpeg"===d||"jpg"===d?"image/jpeg":"webp"===d?"image/webp":"image/png","Content-Disposition":`inline; filename="image.${"jpeg"===d?"jpg":d}"`,"Access-Control-Allow-Origin":"*"}})}}}return{success:!0,response:new Response(JSON.stringify(h),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}try{q=x.buildUrl(w,c),s=await x.buildBody(w,a),r=x.buildHeaders(c,s,w,a)}catch(a){return(0,e.A1)(f.gx.BAD_REQUEST,a.message||`Invalid ${v} image request`)}d?.debug?.("IMAGE",`${v.toUpperCase()} | ${w} | prompt="${a.prompt.slice(0,50)}..."`);try{t=await fetch(q,{method:"POST",headers:r,body:l(s)})}catch(b){let a=(0,e.lR)(b,v,w,f.gx.BAD_GATEWAY);return d?.debug?.("IMAGE",`Fetch error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}let y=(0,h.SB)(v);if(!y?.noAuth&&!x.noAuth&&(t.status===f.gx.UNAUTHORIZED||t.status===f.gx.FORBIDDEN)){let b=await (0,g.qZ)(()=>y.refreshCredentials(c,d),3,d);if(b?.accessToken||b?.apiKey){d?.info?.("TOKEN",`${v.toUpperCase()} | refreshed for image generation`),Object.assign(c,b),o&&await o(b);try{let b=await x.buildBody(w,a),d=x.buildHeaders(c,b,w,a),e=x.buildUrl(w,c);t=await fetch(e,{method:"POST",headers:d,body:l(b)})}catch{d?.warn?.("TOKEN",`${v.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${v.toUpperCase()} | refresh failed`)}if(!t.ok){let{statusCode:a,message:b}=await (0,e.zL)(t),c=(0,e.lR)(Error(b),v,w,a);return d?.debug?.("IMAGE",`Provider error: ${c}`),(0,e.A1)(a,c)}try{if(x.parseResponse){if(u=await x.parseResponse(t,{headers:r,log:d,streamToClient:k,onRequestSuccess:p,url:q,requestBody:s,model:w,body:a}),u?.sseResponse)return{success:!0,response:u.sseResponse}}else u=await t.json()}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||`Invalid response from ${v}`)}p&&await p();let z=x.normalize(u,a.prompt),A=z.created&&Array.isArray(z.data)?z:u;if(n){let b=A.data?.[0],c=b?.b64_json;if(!c&&b?.url)try{c=await (0,j.W6)(b.url)}catch{}if(c){let b=Buffer.from(c,"base64"),d=(a.output_format||"png").toLowerCase();return{success:!0,response:new Response(b,{headers:{"Content-Type":"jpeg"===d||"jpg"===d?"image/jpeg":"webp"===d?"image/webp":"image/png","Content-Disposition":`inline; filename="image.${"jpeg"===d?"jpg":d}"`,"Access-Control-Allow-Origin":"*"}})}}}return{success:!0,response:new Response(JSON.stringify(A),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}[h,i]=k.then?(await k)():k,d()}catch(a){d(a)}})},90734:(a,b,c)=>{c.d(b,{A:()=>m});var d=c(29975);let e=new Set(["@cf/black-forest-labs/flux-2-dev","@cf/black-forest-labs/flux-2-klein-4b","@cf/black-forest-labs/flux-2-klein-9b"]),f=["negative_prompt","guidance","seed","num_steps","steps","strength"];function g(a){var b;let c;return{...(b=a.size,!(c=/^(\d+)x(\d+)$/.exec(String(b||"")))?{}:{width:Number(c[1]),height:Number(c[2])}),...Number.isFinite(Number(a.width))?{width:Number(a.width)}:{},...Number.isFinite(Number(a.height))?{height:Number(a.height)}:{}}}async function h(a){if(Array.isArray(a))return{bytes:a,b64:Buffer.from(a).toString("base64")};if("string"!=typeof a)return null;let b=a.trim();if(!b)return null;if(/^https?:\/\//i.test(b)){let a=await (0,d.W6)(b);return{bytes:i(a),b64:a}}let c=/^data:image\/[^;]+;base64,(.+)$/i.exec(b),e=c?c[1]:b;return{bytes:i(e),b64:e}}function i(a){try{return Array.from(Buffer.from(a,"base64"))}catch{return a}}function j(a,b,c){for(let d of f){let e=b[d];null!=e&&""!==e&&c(a,d,e)}}async function k(a){let b={prompt:a.prompt,...g(a)};j(b,a,(a,b,c)=>{a[b]=c});let c=await h(a.image);c&&(b.image_b64=c.b64,b.image=c.bytes);let d=await h(a.mask_image||a.maskImage||a.mask);return d&&(b.mask_b64=d.b64,b.mask=d.bytes,b.mask_image=d.bytes),b}function l(a){var b;if(a?.created&&Array.isArray(a?.data))return a;let c=a?.result??a,e=Array.isArray(c?.responses)?c.responses.find(a=>a?.success!==!1)?.result:null;if(e)return l(e);let f="string"==typeof(b=("string"==typeof c?c:null)||c?.image||c?.data?.[0]?.b64_json||c?.data?.[0]?.url)&&b?/^data:image\/[^;]+;base64,/i.test(b)?{b64_json:b.replace(/^data:image\/[^;]+;base64,/i,"")}:/^https?:\/\//i.test(b)?{url:b}:{b64_json:b}:null;return{created:(0,d.kv)(),data:f?[f]:[]}}let m={buildUrl:(a,b)=>{let c=b?.providerSpecificData?.accountId;if(!c)throw Error("cloudflare-ai requires accountId in providerSpecificData");return`https://api.cloudflare.com/client/v4/accounts/${c}/ai/run/${a}`},buildHeaders:(a,b)=>{let c={};"u">typeof FormData&&b instanceof FormData||(c["Content-Type"]="application/json");let d=a?.apiKey||a?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),c},buildBody:async(a,b)=>e.has(a)?function(a){let b=new FormData;for(let[c,d]of(b.append("prompt",a.prompt),Object.entries(g(a))))b.append(c,String(d));return j(b,a,(a,b,c)=>{a.append(b,String(c))}),b}(b):await k(b),async parseResponse(a){if((a.headers.get("Content-Type")||"").toLowerCase().startsWith("image/")){let b=await a.arrayBuffer();return{created:(0,d.kv)(),data:[{b64_json:Buffer.from(b).toString("base64")}]}}return l(await a.json())},normalize:l}},91285:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A:()=>h});var e=c(29975),f=c(55330),g=a([f]);f=(g.then?(await g)():g)[0];let h={useExecutor:!0,buildUrl:()=>"",buildHeaders:()=>({}),buildBody:()=>({}),async executeViaExecutor(a,b,c,d){let e=(0,f.SB)("antigravity");if(!e)throw Error("Antigravity executor not found");let g=[{text:b.prompt}],h=b.image||Array.isArray(b.images)&&b.images[0];if(h){let a=function(a){if(!a||"string"!=typeof a)return null;let b=a.match(/^data:(image\/[^;]+);base64,(.+)$/);return b?{inlineData:{mimeType:b[1],data:b[2]}}:/^[A-Za-z0-9+/]/.test(a)&&a.length>100&&!a.startsWith("http")?{inlineData:{mimeType:"image/png",data:a}}:null}(h);a&&g.unshift(a)}let i=await e.execute({model:a,body:{contents:[{role:"user",parts:g}]},stream:!1,credentials:c,log:d});if(!i.response.ok)throw Error(await i.response.text()||`HTTP ${i.response.status}`);return i.response.json()},normalize:(a,b)=>{let c=a.candidates||a.response?.candidates||[],d=(c[0]?.content?.parts||[]).filter(a=>a.inlineData?.data).map(a=>({b64_json:a.inlineData.data}));return{created:(0,e.kv)(),data:d.length>0?d:[{b64_json:"",revised_prompt:b}]}}};d()}catch(a){d(a)}})}};
4
+ `))};try{let c=await j(a,b,{onProgress:a=>g("progress",a),onPartialImage:a=>g("partial_image",a)});c?(d&&await d(),g("done",{created:(0,e.kv)(),data:[{b64_json:c}]})):g("error",{message:"Codex did not return an image. Account may not be entitled (Plus/Pro required)."})}catch(a){g("error",{message:a?.message||"Stream failed"})}finally{c.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no","Access-Control-Allow-Origin":"*"}})};let f=await j(a,b);if(!f)throw Error("Codex did not return an image. Account may not be entitled (Plus/Pro required).");return{created:(0,e.kv)(),data:[{b64_json:f}]}},normalize:a=>a}},10326:(a,b,c)=>{c.d(b,{A:()=>f});var d=c(29975);let e="https://api.dev.runwayml.com/v1",f={async:!0,buildUrl:a=>`${e}/${a.includes("image")?"text_to_image":"image_to_video"}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Bearer ${b}`,"X-Runway-Version":"2024-11-06"}},buildBody:(a,b)=>{let c=!a.includes("image"),e=(0,d.CY)(b.size);return c?{promptText:b.prompt,model:a,ratio:e,duration:5,...b.image?{promptImage:b.image}:{}}:{promptText:b.prompt,model:a,ratio:e,...b.image?{referenceImages:[{uri:b.image}]}:{}}},async parseResponse(a,{headers:b}){let{id:c}=await a.json();if(!c)throw Error("Runway: no task id returned");let f=`${e}/tasks/${c}`,g=Date.now()+d.vv;for(;Date.now()<g;){await (0,d.yy)(d.fv);let a=await fetch(f,{headers:b});if(!a.ok)throw Error(`Runway status ${a.status}`);let c=await a.json();if("SUCCEEDED"===c.status)return c;if("FAILED"===c.status||"CANCELLED"===c.status)throw Error(c.failure||"Runway task failed")}throw Error("Runway polling timeout")},normalize:a=>{let b=Array.isArray(a.output)?a.output:[];return{created:(0,d.kv)(),data:b.map(a=>({url:a}))}}}},12185:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={async:!0,buildUrl:a=>`https://api.bfl.ai/v1/${a}`,buildHeaders:a=>({"Content-Type":"application/json","x-key":a?.apiKey||a?.accessToken}),buildBody:(a,b)=>{let c={prompt:b.prompt};if(b.size){let[a,d]=b.size.split("x").map(Number);a&&(c.width=a),d&&(c.height=d)}return b.image&&(c.image_prompt=b.image),c},async parseResponse(a,{headers:b}){let c=(await a.json()).polling_url;if(!c)throw Error("BFL: no polling_url returned");let e=Date.now()+d.vv;for(;Date.now()<e;){await (0,d.yy)(d.fv);let a=await fetch(c,{headers:{"x-key":b["x-key"],Accept:"application/json"}});if(!a.ok)throw Error(`BFL status ${a.status}`);let e=await a.json();if("Ready"===e.status)return e;if("Error"===e.status||"Failed"===e.status)throw Error(e.error||"BFL generation failed")}throw Error("BFL polling timeout")},normalize:a=>{let b=a.result?.sample;return b?{created:(0,d.kv)(),data:[{url:b}]}:{created:(0,d.kv)(),data:[]}}}},16867:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>s});var e=c(61613),f=c(38952),g=c(7648),h=c(30782),i=c(24849),j=c(33081),k=c(62796),l=c(45738),m=c(5529),n=c(12185),o=c(10326),p=c(90734),q=c(91285),r=a([q]);q=(r.then?(await r)():r)[0];let t={openai:(0,e.A)("openai"),minimax:(0,e.A)("minimax"),openrouter:(0,e.A)("openrouter"),recraft:(0,e.A)("recraft"),xai:(0,e.A)("xai"),gemini:f.A,codex:g.A,sdwebui:h.A,comfyui:i.A,huggingface:j.A,nanobanana:k.A,"fal-ai":l.A,"stability-ai":m.A,"black-forest-labs":n.A,runwayml:o.A,"cloudflare-ai":p.A,antigravity:q.A};function s(a){return t[a]||null}d()}catch(a){d(a)}})},24849:(a,b,c)=>{c.d(b,{A:()=>d});let d={noAuth:!0,buildUrl:()=>"http://localhost:8188",buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>({prompt:b.prompt}),normalize:a=>a}},29975:(a,b,c)=>{c.d(b,{CY:()=>g,W6:()=>h,fv:()=>d,kv:()=>i,vv:()=>e,yy:()=>f});let d=1500,e=12e4,f=a=>new Promise(b=>setTimeout(b,a));function g(a){return a&&"string"==typeof a&&({"1024x1024":"1:1","1024x1792":"9:16","1792x1024":"16:9","1024x1536":"2:3","1536x1024":"3:2"})[a]||"1:1"}async function h(a){let b=await fetch(a);if(!b.ok)throw Error(`Failed to fetch image: ${b.status}`);let c=await b.arrayBuffer();return Buffer.from(c).toString("base64")}function i(){return Math.floor(Date.now()/1e3)}},30782:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={noAuth:!0,buildUrl:()=>"http://localhost:7860/sdapi/v1/txt2img",buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>{let{prompt:c,n:d=1,size:e="1024x1024"}=b,[f,g]=e.split("x").map(Number);return{prompt:c,width:f||512,height:g||512,steps:20,batch_size:d}},normalize:a=>{let b=Array.isArray(a.images)?a.images.map(a=>({b64_json:a})):[];return{created:(0,d.kv)(),data:b}}}},33081:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={buildUrl:a=>`https://api-inference.huggingface.co/models/${a}`,buildHeaders:a=>{let b={"Content-Type":"application/json"},c=a?.apiKey||a?.accessToken;return c&&(b.Authorization=`Bearer ${c}`),b},buildBody:(a,b)=>({inputs:b.prompt}),async parseResponse(a){let b=await a.arrayBuffer(),c=Buffer.from(b).toString("base64");return{created:(0,d.kv)(),data:[{b64_json:c}]}},normalize:a=>a}},38952:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={buildUrl:(a,b)=>{let c=b?.apiKey||b?.accessToken,d=a.replace(/^models\//,"");return`https://generativelanguage.googleapis.com/v1beta/models/${d}:generateContent?key=${encodeURIComponent(c)}`},buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>({contents:[{parts:[{text:b.prompt}]}],generationConfig:{responseModalities:["TEXT","IMAGE"]}}),normalize:(a,b)=>{let c=(a.candidates?.[0]?.content?.parts||[]).filter(a=>a.inlineData?.data).map(a=>({b64_json:a.inlineData.data}));return{created:(0,d.kv)(),data:c.length>0?c:[{b64_json:"",revised_prompt:b}]}}}},45738:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={async:!0,buildUrl:a=>`https://queue.fal.run/${a}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Key ${b}`}},buildBody:(a,b)=>{let c={prompt:b.prompt,num_images:b.n||1};return b.size&&(c.image_size=(0,d.CY)(b.size)),b.image&&(c.image_url=b.image),c},async parseResponse(a,{headers:b}){let{status_url:c,response_url:e}=await a.json(),f=Date.now()+d.vv;for(;Date.now()<f;){await (0,d.yy)(d.fv);let a=await fetch(c,{headers:b});if(!a.ok)throw Error(`Fal status ${a.status}`);let f=await a.json();if("COMPLETED"===f.status){let a=await fetch(e,{headers:b});return await a.json()}if("FAILED"===f.status)throw Error(f.error||"Fal generation failed")}throw Error("Fal polling timeout")},normalize:a=>{let b=Array.isArray(a.images)?a.images:a.image?[a.image]:[];return{created:(0,d.kv)(),data:b.map(a=>({url:a.url||a}))}}}},55436:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>p});var e=c(80238),f=c(89718),g=c(38775),h=c(72301),i=c(43659),j=c(41004),k=c(58136),l=c(18910),m=c(11410),n=c(7803),o=a([h,m]);[h,m]=o.then?(await o)():o;let r=new Set(["sdwebui","comfyui"]);async function p(a){let b;try{b=await a.json()}catch{return(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=a.headers.get("x-connection-id")||null,h=(a.headers.get("accept")||"").includes("text/event-stream"),k="binary"===c.searchParams.get("response_format"),o=b.model,p=(0,e.Tr)(a),r=await (0,f.mt)();if(r.requireApiKey){if(!p)return(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(p))return(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}if(!o||"string"!=typeof o)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing model");if(!b.prompt)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing required field: prompt");let s=await (0,m.M)(p,o);if(s.error)return s.error;let t=await (0,g.d_)(o);if(t){let a=r.comboStrategies||{},c=a[o]?.fallbackStrategy||r.comboStrategy||"fallback",e=r.comboStickyRoundRobinLimit;return n.info("IMAGE",`Combo "${o}" with ${t.length} models (strategy: ${c}, sticky: ${e})`),s.run(()=>(0,l.Pr)({body:b,models:t,handleSingleModel:(a,b)=>q(a,b,{wantsStream:h,binaryOutput:k,preferredConnectionId:d,apiKey:p}),log:n,comboName:o,comboStrategy:c,comboStickyLimit:e}))}return s.run(()=>q(b,o,{wantsStream:h,binaryOutput:k,preferredConnectionId:d,apiKey:p}))}async function q(a,b,{wantsStream:c,binaryOutput:d,preferredConnectionId:f,apiKey:l}={}){let m=await (0,g.mA)(b);if(!m.provider)return(0,i.yj)(j.gx.BAD_REQUEST,"Invalid model format");let{provider:n,model:o}=m;if(r.has(n)){let b=await (0,h.l)({body:a,modelInfo:{provider:n,model:o},credentials:null,binaryOutput:d});return b.success?b.response:(0,i.yj)(b.status||j.gx.BAD_GATEWAY,b.error||"Image generation failed")}let p=new Set,s=null,t=null;for(;;){let b=await (0,e.c1)(n,p,o,{preferredConnectionId:f,...l?{apiKey:l}:{}});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=s||b.lastError||"Unavailable",c=t||Number(b.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return(0,i.wO)(c,`[${n}/${o}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===p.size)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${n}`);return(0,i.yj)(t||j.gx.SERVICE_UNAVAILABLE,s||"All accounts unavailable")}let g=await (0,k.eU)(n,b),m=await (0,h.l)({body:a,modelInfo:{provider:n,model:o},credentials:g,streamToClient:c,binaryOutput:d,onCredentialsRefreshed:async a=>{await (0,k.vN)(b.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(b.connectionId,b,o)}});if(m.success)return m.response;let{shouldFallback:q}=await (0,e.vk)(b.connectionId,m.status,m.error,n,o);if(q){p.add(b.connectionId),s=m.error,t=m.status;continue}return m.response}}d()}catch(a){d(a)}})},61613:(a,b,c)=>{c.d(b,{A:()=>e});let d={openai:"https://api.openai.com/v1/images/generations",minimax:"https://api.minimaxi.com/v1/images/generations",openrouter:"https://openrouter.ai/api/v1/images/generations",recraft:"https://external.api.recraft.ai/v1/images/generations",xai:"https://api.x.ai/v1/images/generations"};function e(a){return{buildUrl:()=>d[a],buildHeaders:b=>{let c={"Content-Type":"application/json"},d=b?.apiKey||b?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),"openrouter"===a&&(c["HTTP-Referer"]="https://endpoint-proxy.local",c["X-Title"]="Endpoint Proxy"),c},buildBody:(b,c)=>{let{prompt:d,n:e=1,size:f="1024x1024",quality:g,style:h,response_format:i}=c;if("xai"===a){let a={model:b,prompt:d,n:e};return i&&(a.response_format=i),a}let j={model:b,prompt:d,n:e,size:f};return g&&(j.quality=g),h&&(j.style=h),i&&(j.response_format=i),j},normalize:a=>a}}},62796:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(29975);let e={async:!0,buildUrl:()=>"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",buildHeaders:a=>{let b={"Content-Type":"application/json"},c=a?.apiKey||a?.accessToken;return c&&(b.Authorization=`Bearer ${c}`),b},buildBody:(a,b)=>{let c=(0,d.CY)(b.size),e=!!(b.image||Array.isArray(b.images)&&b.images.length),f={prompt:b.prompt,type:e?"IMAGETOIAMGE":"TEXTTOIAMGE",numImages:b.n||1,image_size:c,callBackUrl:"https://localhost/callback"};if(e){let a=Array.isArray(b.images)?b.images.filter(Boolean):[];b.image&&a.push(b.image),f.imageUrls=a}return f},async parseResponse(a,{headers:b}){let c=await a.json();if(200!==c.code)throw Error(c.msg||"NanoBanana submit failed");let e=c.data?.taskId;if(!e)throw Error("NanoBanana: no taskId returned");let f=`https://api.nanobananaapi.ai/api/v1/nanobanana/record-info?taskId=${encodeURIComponent(e)}`,g=Date.now()+d.vv;for(;Date.now()<g;){await (0,d.yy)(d.fv);let a=await fetch(f,{headers:b});if(!a.ok)throw Error(`NanoBanana status ${a.status}`);let c=await a.json(),e=c.data?.successFlag;if(1===e)return c.data;if(2===e||3===e)throw Error(c.data?.errorMessage||"NanoBanana generation failed")}throw Error("NanoBanana polling timeout")},normalize:(a,b)=>{let c=a.response?.resultImageUrl||a.response?.originImageUrl;return c?{created:(0,d.kv)(),data:[{url:c,revised_prompt:b}]}:{created:(0,d.kv)(),data:[]}}}},72301:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{l:()=>m});var e=c(43659),f=c(41004),g=c(8590),h=c(55330),i=c(16867),j=c(29975),k=a([h,i]);function l(a){return"u">typeof FormData&&a instanceof FormData||"string"==typeof a?a:JSON.stringify(a)}async function m({body:a,modelInfo:b,credentials:c,log:d,streamToClient:k=!1,binaryOutput:n=!1,onCredentialsRefreshed:o,onRequestSuccess:p}){let q,r,s,t,u,{provider:v,model:w}=b;if(!a.prompt)return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: prompt");let x=(0,i.j)(v);if(!x)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${v}' does not support image generation`);if(x.useExecutor&&x.executeViaExecutor){let b;try{d?.debug?.("IMAGE",`${v.toUpperCase()} | ${w} | prompt="${a.prompt.slice(0,50)}..." (executor)`),b=await x.executeViaExecutor(w,a,c,d)}catch(b){let a=(0,e.lR)(b,v,w,f.gx.BAD_GATEWAY);return d?.debug?.("IMAGE",`Executor error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}p&&await p();let g=x.normalize(b,a.prompt),h=g.created&&Array.isArray(g.data)?g:b;if(n){let b=h.data?.[0],c=b?.b64_json;if(!c&&b?.url)try{c=await (0,j.W6)(b.url)}catch{}if(c){let b=Buffer.from(c,"base64"),d=(a.output_format||"png").toLowerCase();return{success:!0,response:new Response(b,{headers:{"Content-Type":"jpeg"===d||"jpg"===d?"image/jpeg":"webp"===d?"image/webp":"image/png","Content-Disposition":`inline; filename="image.${"jpeg"===d?"jpg":d}"`,"Access-Control-Allow-Origin":"*"}})}}}return{success:!0,response:new Response(JSON.stringify(h),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}try{q=x.buildUrl(w,c),s=await x.buildBody(w,a),r=x.buildHeaders(c,s,w,a)}catch(a){return(0,e.A1)(f.gx.BAD_REQUEST,a.message||`Invalid ${v} image request`)}d?.debug?.("IMAGE",`${v.toUpperCase()} | ${w} | prompt="${a.prompt.slice(0,50)}..."`);try{t=await fetch(q,{method:"POST",headers:r,body:l(s)})}catch(b){let a=(0,e.lR)(b,v,w,f.gx.BAD_GATEWAY);return d?.debug?.("IMAGE",`Fetch error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}let y=(0,h.SB)(v);if(!y?.noAuth&&!x.noAuth&&(t.status===f.gx.UNAUTHORIZED||t.status===f.gx.FORBIDDEN)&&y.canRefreshCredentials(c)){let b=null;try{b=await (0,g.qZ)(()=>y.refreshCredentials(c,d),3,d)}catch(a){d?.warn?.("TOKEN",`${v.toUpperCase()} | refresh threw: ${a?.message||a}`)}if(b?.accessToken||b?.apiKey){d?.info?.("TOKEN",`${v.toUpperCase()} | refreshed for image generation`),Object.assign(c,b),o&&await o(b);try{let b=await x.buildBody(w,a),d=x.buildHeaders(c,b,w,a),e=x.buildUrl(w,c);t=await fetch(e,{method:"POST",headers:d,body:l(b)})}catch{d?.warn?.("TOKEN",`${v.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${v.toUpperCase()} | refresh failed`)}if(!t.ok){let{statusCode:a,message:b}=await (0,e.zL)(t),c=(0,e.lR)(Error(b),v,w,a);return d?.debug?.("IMAGE",`Provider error: ${c}`),(0,e.A1)(a,c)}try{if(x.parseResponse){if(u=await x.parseResponse(t,{headers:r,log:d,streamToClient:k,onRequestSuccess:p,url:q,requestBody:s,model:w,body:a}),u?.sseResponse)return{success:!0,response:u.sseResponse}}else u=await t.json()}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||`Invalid response from ${v}`)}p&&await p();let z=x.normalize(u,a.prompt),A=z.created&&Array.isArray(z.data)?z:u;if(n){let b=A.data?.[0],c=b?.b64_json;if(!c&&b?.url)try{c=await (0,j.W6)(b.url)}catch{}if(c){let b=Buffer.from(c,"base64"),d=(a.output_format||"png").toLowerCase();return{success:!0,response:new Response(b,{headers:{"Content-Type":"jpeg"===d||"jpg"===d?"image/jpeg":"webp"===d?"image/webp":"image/png","Content-Disposition":`inline; filename="image.${"jpeg"===d?"jpg":d}"`,"Access-Control-Allow-Origin":"*"}})}}}return{success:!0,response:new Response(JSON.stringify(A),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}[h,i]=k.then?(await k)():k,d()}catch(a){d(a)}})},90734:(a,b,c)=>{c.d(b,{A:()=>m});var d=c(29975);let e=new Set(["@cf/black-forest-labs/flux-2-dev","@cf/black-forest-labs/flux-2-klein-4b","@cf/black-forest-labs/flux-2-klein-9b"]),f=["negative_prompt","guidance","seed","num_steps","steps","strength"];function g(a){var b;let c;return{...(b=a.size,!(c=/^(\d+)x(\d+)$/.exec(String(b||"")))?{}:{width:Number(c[1]),height:Number(c[2])}),...Number.isFinite(Number(a.width))?{width:Number(a.width)}:{},...Number.isFinite(Number(a.height))?{height:Number(a.height)}:{}}}async function h(a){if(Array.isArray(a))return{bytes:a,b64:Buffer.from(a).toString("base64")};if("string"!=typeof a)return null;let b=a.trim();if(!b)return null;if(/^https?:\/\//i.test(b)){let a=await (0,d.W6)(b);return{bytes:i(a),b64:a}}let c=/^data:image\/[^;]+;base64,(.+)$/i.exec(b),e=c?c[1]:b;return{bytes:i(e),b64:e}}function i(a){try{return Array.from(Buffer.from(a,"base64"))}catch{return a}}function j(a,b,c){for(let d of f){let e=b[d];null!=e&&""!==e&&c(a,d,e)}}async function k(a){let b={prompt:a.prompt,...g(a)};j(b,a,(a,b,c)=>{a[b]=c});let c=await h(a.image);c&&(b.image_b64=c.b64,b.image=c.bytes);let d=await h(a.mask_image||a.maskImage||a.mask);return d&&(b.mask_b64=d.b64,b.mask=d.bytes,b.mask_image=d.bytes),b}function l(a){var b;if(a?.created&&Array.isArray(a?.data))return a;let c=a?.result??a,e=Array.isArray(c?.responses)?c.responses.find(a=>a?.success!==!1)?.result:null;if(e)return l(e);let f="string"==typeof(b=("string"==typeof c?c:null)||c?.image||c?.data?.[0]?.b64_json||c?.data?.[0]?.url)&&b?/^data:image\/[^;]+;base64,/i.test(b)?{b64_json:b.replace(/^data:image\/[^;]+;base64,/i,"")}:/^https?:\/\//i.test(b)?{url:b}:{b64_json:b}:null;return{created:(0,d.kv)(),data:f?[f]:[]}}let m={buildUrl:(a,b)=>{let c=b?.providerSpecificData?.accountId;if(!c)throw Error("cloudflare-ai requires accountId in providerSpecificData");return`https://api.cloudflare.com/client/v4/accounts/${c}/ai/run/${a}`},buildHeaders:(a,b)=>{let c={};"u">typeof FormData&&b instanceof FormData||(c["Content-Type"]="application/json");let d=a?.apiKey||a?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),c},buildBody:async(a,b)=>e.has(a)?function(a){let b=new FormData;for(let[c,d]of(b.append("prompt",a.prompt),Object.entries(g(a))))b.append(c,String(d));return j(b,a,(a,b,c)=>{a.append(b,String(c))}),b}(b):await k(b),async parseResponse(a){if((a.headers.get("Content-Type")||"").toLowerCase().startsWith("image/")){let b=await a.arrayBuffer();return{created:(0,d.kv)(),data:[{b64_json:Buffer.from(b).toString("base64")}]}}return l(await a.json())},normalize:l}},91285:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{A:()=>h});var e=c(29975),f=c(55330),g=a([f]);f=(g.then?(await g)():g)[0];let h={useExecutor:!0,buildUrl:()=>"",buildHeaders:()=>({}),buildBody:()=>({}),async executeViaExecutor(a,b,c,d){let e=(0,f.SB)("antigravity");if(!e)throw Error("Antigravity executor not found");let g=[{text:b.prompt}],h=b.image||Array.isArray(b.images)&&b.images[0];if(h){let a=function(a){if(!a||"string"!=typeof a)return null;let b=a.match(/^data:(image\/[^;]+);base64,(.+)$/);return b?{inlineData:{mimeType:b[1],data:b[2]}}:/^[A-Za-z0-9+/]/.test(a)&&a.length>100&&!a.startsWith("http")?{inlineData:{mimeType:"image/png",data:a}}:null}(h);a&&g.unshift(a)}let i=await e.execute({model:a,body:{contents:[{role:"user",parts:g}]},stream:!1,credentials:c,log:d});if(!i.response.ok)throw Error(await i.response.text()||`HTTP ${i.response.status}`);return i.response.json()},normalize:(a,b)=>{let c=a.candidates||a.response?.candidates||[],d=(c[0]?.content?.parts||[]).filter(a=>a.inlineData?.data).map(a=>({b64_json:a.inlineData.data}));return{created:(0,e.kv)(),data:d.length>0?d:[{b64_json:"",revised_prompt:b}]}}};d()}catch(a){d(a)}})}};
@@ -1 +1 @@
1
- "use strict";exports.id=5545,exports.ids=[1998,5545],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h+=1,a}function j(a){if(!a)return i();let b=0,c=String(a);for(let a=0;a<c.length;a+=1)b=31*b+c.charCodeAt(a)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},38160:(a,b,c)=>{c.d(b,{Ou:()=>k,eG:()=>i,gQ:()=>j});var d=c(75924);let e=new Map,f=new Map,g=null;function h(a){return"string"==typeof a?a.trim()||null:a&&"object"==typeof a&&"string"==typeof a.id&&a.id.trim()||null}async function i(a,b,c={}){if(!a||!b)return null;let d=h(c.preferredProjectId),g=e.get(a);if(g&&Date.now()-g.fetchedAt<36e5&&(!d||d===g.projectId))return g.projectId;let j=d?`${a}::${d}`:a;if(f.has(j))return f.get(j).promise;let k=new AbortController,m=(async()=>{try{let c=await l(b,k.signal,{preferredProjectId:d});if(c)return e.set(a,{projectId:c,fetchedAt:Date.now()}),c;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{f.delete(j)}})();return f.set(j,{promise:m,controller:k,startedAt:Date.now()}),m}async function j(a,b={}){if(!a)return{projectId:null,tierId:null,requiresUserProject:!1,error:"missing access token"};try{return await m(a,void 0,b)}catch(a){return{projectId:null,tierId:null,requiresUserProject:!1,error:a?.message||String(a)}}}function k(a){e.delete(a)}async function l(a,b,c={}){return(await m(a,b,c)).projectId}async function m(a,b,c={}){let e=h(c.preferredProjectId),f=await fetch(d.nZ.loadCodeAssist,{method:"POST",headers:{...d.Ic,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:d.zv}),signal:b});if(!f.ok){let a=await f.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${f.status} ${a.slice(0,200)}`)}let g=await f.json(),i=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(g);if(i)return{projectId:i,tierId:o(g).tierId||null,requiresUserProject:!1,loadRaw:g};let j=o(g),k=j.tierId||"free-tier";if(j.userDefined)return e?{projectId:await n(a,k,b,e)||e,tierId:k,requiresUserProject:!0,loadRaw:g,error:void 0}:(console.warn("[ProjectId] GSuite/DASHER has no free-tier project from loadCodeAssist; caller should reuse a stored/peer managed project id."),{projectId:null,tierId:k,requiresUserProject:!0,loadRaw:g,error:"no managed project on account; use stored or peer projectId"});let l=await n(a,k,b,null);return{projectId:l,tierId:k,requiresUserProject:!1,loadRaw:g,error:l?void 0:"onboardUser did not return a project id"}}async function n(a,b,c,e=null){console.log(`[ProjectId] Onboarding user with tier: ${b}`+(e?` project=${e}`:""));let f={tierId:b,metadata:d.zv};e&&(f.cloudaicompanionProject=e);for(let b=1;b<=5&&!c?.aborted;b++){let g=new AbortController,h=setTimeout(()=>g.abort(),3e4),i=()=>g.abort();c?.addEventListener("abort",i);try{let c=await fetch(d.nZ.onboardUser,{method:"POST",headers:{...d.Ic,Authorization:`Bearer ${a}`},body:JSON.stringify(f),signal:g.signal});if(clearTimeout(h),!c.ok){let a=await c.text().catch(()=>"");throw Error(`onboardUser HTTP ${c.status}: ${a.slice(0,200)}`)}let i=await c.json();if(!0===i.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(i);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;if(e)return console.log(`[ProjectId] onboard done without id; using preferred project ${e}`),e;throw Error("onboardUser done but no project_id in response")}console.log(`[ProjectId] Onboard attempt ${b}/5: not done yet, waiting...`),await new Promise(a=>setTimeout(a,2e3))}catch(a){if(clearTimeout(h),"AbortError"===a.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(5===b)return console.warn(`[ProjectId] onboardUser failed after 5 attempts: ${a.message}`),null;console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${a.message}, retrying...`),await new Promise(a=>setTimeout(a,2e3))}finally{clearTimeout(h),c?.removeEventListener("abort",i)}}return null}function o(a){let b=null,c=!1;if(a?.currentTier?.id&&"string"==typeof a.currentTier.id&&(b=a.currentTier.id.trim(),c=!!a.currentTier.userDefinedCloudaicompanionProject),Array.isArray(a?.allowedTiers)){for(let d of a.allowedTiers)if(d&&"object"==typeof d&&!0===d.isDefault&&d.id){b=String(d.id).trim(),c=!!d.userDefinedCloudaicompanionProject;break}if(!b){let d=a.allowedTiers.find(a=>a?.id==="free-tier");d?(b="free-tier",c=!!d.userDefinedCloudaicompanionProject):a.allowedTiers[0]?.id&&(b=String(a.allowedTiers[0].id).trim(),c=!!a.allowedTiers[0].userDefinedCloudaicompanionProject)}}return"free-tier"===b&&(c=!1),{tierId:b,userDefined:c}}g=setInterval(()=>{try{let a=Date.now();for(let[b,c]of e)(!c||a-c.fetchedAt>=36e5)&&e.delete(b);for(let[b,c]of f){if(!c||"number"!=typeof c.startedAt){f.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}f.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),g?.unref?.()},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}}}},58136:(a,b,c)=>{c.d(b,{eU:()=>t,I9:()=>n,Sc:()=>o,vN:()=>s});var d=c(7803),e=c(89718),f=c(38160),g=c(8590),h=c(93943),i=c(64991);function j(a){let b=Error("Refresh request aborted");return b.name="AbortError",void 0!==a&&(b.cause=a),b}class k{constructor(a={}){this.getProfile=a.getProfile||i.JJ,this.now=a.now||Date.now,this.setTimer=a.setTimer||setTimeout,this.clearTimer=a.clearTimer||clearTimeout,this.lanes=new Map}run(a,b,c={}){if("function"!=typeof b)return Promise.reject(TypeError("Refresh operation must be a function"));let d=c.signal;if(d?.aborted)return Promise.reject(j(d.reason));let e=this.#a(a);return new Promise((a,c)=>{let f={operation:b,resolve:a,reject:c,signal:d,state:"queued",callerSettled:!1,onAbort:null};(f.onAbort=()=>{if(!f.callerSettled&&(f.callerSettled=!0,f.reject(j(d.reason)),"queued"===f.state)){let a=e.queue.indexOf(f);a>=0&&e.queue.splice(a,1),f.state="aborted",this.#b(f),this.#c(e)}},d?.addEventListener?.("abort",f.onAbort,{once:!0}),d?.aborted)?f.onAbort():(e.queue.push(f),this.#c(e))})}#a(a){let b=String(a||"default").trim().toLowerCase()||"default",c=this.lanes.get(b);if(c)return c;let d=this.getProfile(b)||{};return c={key:b,profile:{maxConcurrent:Math.max(1,Number(d.maxConcurrent)||1),minDelayMs:Math.max(0,Number(d.minDelayMs)||0)},queue:[],active:0,lastStartedAt:null,timer:null},this.lanes.set(b,c),c}#c(a){if(!a.timer&&!(a.active>=a.profile.maxConcurrent))for(;a.queue.length>0&&a.active<a.profile.maxConcurrent;){let b=null===a.lastStartedAt?0:Math.max(0,a.lastStartedAt+a.profile.minDelayMs-this.now());if(b>0){a.timer=this.setTimer(()=>{a.timer=null,this.#c(a)},b),a.timer?.unref?.();return}let c=a.queue.shift();c&&"queued"===c.state&&this.#d(a,c)}}#d(a,b){b.state="running",a.active+=1,a.lastStartedAt=this.now(),Promise.resolve().then(b.operation).then(a=>this.#e(b,b.resolve,a),a=>this.#e(b,b.reject,a)).finally(()=>{b.state="done",a.active=Math.max(0,a.active-1),this.#b(b),this.#c(a)})}#e(a,b,c){a.callerSettled||(a.callerSettled=!0,this.#b(a),b(c))}#b(a){a.signal?.removeEventListener?.("abort",a.onAbort)}}let l=function(a={}){return new k(a)}(),m=g.oD,n=(a,b,c)=>(0,g.I9)(a,b,c,d),o=(a,b,c={})=>(c.scheduler||l).run(a,()=>(0,h.Vq)(a,b,d),{signal:c.signal});function p(a,b=Date.now()){return new Date(b+1e3*a).toISOString()}function q(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}function r({permanent:a,code:b,status:c}){let d=Error(a?"Kiro refresh credential is missing or rejected":"Kiro credential refresh failed temporarily");return d.name=a?"KiroRefreshCredentialError":"KiroRefreshTransientError",d.permanent=a,d.code=b,d.status=c,d}async function s(a,b){try{let c=function(a,b=Date.now()){let c={};if(a.accessToken&&(c.accessToken=a.accessToken),a.refreshToken&&(c.refreshToken=a.refreshToken),a.idToken&&(c.idToken=a.idToken),a.lastRefreshAt&&(c.lastRefreshAt=a.lastRefreshAt),a.expiresAt&&(c.expiresAt=a.expiresAt),a.expiresIn)c.expiresAt=p(a.expiresIn,b),c.expiresIn=a.expiresIn;else if(a.expiresAt){let d=q(a.expiresAt);d&&(c.expiresAt=d,c.expiresIn=Math.max(1,Math.floor((new Date(d).getTime()-b)/1e3)))}return a.providerSpecificData&&(c.providerSpecificData={...a.existingProviderSpecificData||{},...a.providerSpecificData}),(a.copilotToken||a.copilotTokenExpiresAt)&&(c.providerSpecificData={...c.providerSpecificData||a.existingProviderSpecificData||{},...a.copilotToken?{copilotToken:a.copilotToken}:{},...a.copilotTokenExpiresAt?{copilotTokenExpiresAt:a.copilotTokenExpiresAt}:{}}),a.projectId&&(c.projectId=a.projectId),c}(b),f=await (0,e.updateProviderConnection)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function t(a,b,c={}){let e={...b},i=c.scheduler||l;if((0,h.fp)(a,e)){let b=e.expiresAt?new Date(e.expiresAt).getTime():null,h=b?b-Date.now():null,j=(0,g.Og)(a);if(d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===h?null:Math.round(h/1e3),refreshLeadMs:j,lastRefreshAt:e.lastRefreshAt||null}),"kiro"===a&&!e.refreshToken)throw r({permanent:!0,code:"MISSING_REFRESH_TOKEN",status:401});let k=await o(a,e,{scheduler:i,signal:c.signal});if(k?.accessToken||k?.apiKey||k?.copilotToken){let b={...k,existingProviderSpecificData:e.providerSpecificData},c=await s(e.connectionId,b);if("kiro"===a&&!c)throw r({permanent:!1,code:"PERSIST_REFRESH_FAILED",status:502});!function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&((0,f.Ou)(b),(0,f.eG)(b,c).then(a=>{a&&s(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})}))}(a,(e={...e,...k,expiresAt:k.expiresIn?p(k.expiresIn):q(k.expiresAt)||k.expiresAt||e.expiresAt,providerSpecificData:k.providerSpecificData?{...e.providerSpecificData,...k.providerSpecificData}:e.providerSpecificData}).connectionId,e.accessToken)}else if("kiro"===a)throw r({permanent:!1,code:"TRANSIENT_REFRESH_FAILURE",status:502})}if("github"===a&&e.providerSpecificData?.copilotTokenExpiresAt){let b=1e3*e.providerSpecificData.copilotTokenExpiresAt-Date.now();if(b<m){d.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round(b/1e3)});let f=await i.run(a,()=>{let a;return a=e.accessToken,(0,g.jR)(a,d)},{signal:c.signal});if(f){let a={...e.providerSpecificData,copilotToken:f.token,copilotTokenExpiresAt:f.expiresAt};await s(e.connectionId,{providerSpecificData:a}),e.providerSpecificData=a,e.copilotToken=f.token}}}return e}},64991:(a,b,c)=>{c.d(b,{JJ:()=>f,Wk:()=>d});let d=Object.freeze({maxConcurrent:4,minDelayMs:0}),e=Object.freeze({kiro:Object.freeze({maxConcurrent:1,minDelayMs:3e3})});function f(a){return e[String(a||"").trim().toLowerCase()]||d}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,Iu:()=>d.Iu,Kg:()=>d.Kg,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)}};
1
+ "use strict";exports.id=5545,exports.ids=[5545],exports.modules={7803:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>o,error:()=>r,errorLine:()=>l,fmtThink:()=>m,info:()=>p,line:()=>k,maskKey:()=>v,nextTag:()=>i,request:()=>s,response:()=>t,stream:()=>u,tagForSession:()=>j,warn:()=>q});let d={DEBUG:0,INFO:1,WARN:2,ERROR:3},e=d[process.env.LOG_LEVEL?.toUpperCase?.()]??d.INFO;function f(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let g=["\uD83D\uDFE2","\uD83D\uDD35","\uD83D\uDFE3","\uD83D\uDFE1","\uD83D\uDFE0","\uD83D\uDD34","⚪","\uD83D\uDFE4"],h=0;function i(){let a=g[h%g.length];return h+=1,a}function j(a){if(!a)return i();let b=0,c=String(a);for(let a=0;a<c.length;a+=1)b=31*b+c.charCodeAt(a)|0;return g[Math.abs(b)%g.length]}function k(a,b,c){e>d.INFO||console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function l(a,b,c){console.log(`[${f()}] ${a||"⚪"} ${b} ${c}`)}function m(a){return a&&a.mode?"none"===a.mode?"off":"auto"===a.mode?"auto":"budget"===a.mode?a.budget>=1e3?`${Math.round(a.budget/1e3)}k`:`${a.budget}`:"level"===a.mode?a.level:null:null}function n(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function o(a,b,c){if(e<=d.DEBUG){let d=c?` ${n(c)}`:"";console.log(`[${f()}] 🔍 [${a}] ${b}${d}`)}}function p(a,b,c){if(e<=d.INFO){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ℹ️ [${a}] ${b}${d}`)}}function q(a,b,c){if(e<=d.WARN){let d=c?` ${n(c)}`:"";console.warn(`[${f()}] ⚠️ [${a}] ${b}${d}`)}}function r(a,b,c){if(e<=d.ERROR){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ❌ [${a}] ${b}${d}`)}}function s(a,b,c){let d=c?` ${n(c)}`:"";console.log(`\x1b[36m[${f()}] 📥 ${a} ${b}${d}\x1b[0m`)}function t(a,b,c){let d=c?` ${n(c)}`:"";console.log(`[${f()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${d}`)}function u(a,b){let c=b?` ${n(b)}`:"";console.log(`[${f()}] 🌊 [STREAM] ${a}${c}`)}function v(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},38160:(a,b,c)=>{c.d(b,{Ou:()=>k,eG:()=>i,gQ:()=>j});var d=c(75924);let e=new Map,f=new Map,g=null;function h(a){return"string"==typeof a?a.trim()||null:a&&"object"==typeof a&&"string"==typeof a.id&&a.id.trim()||null}async function i(a,b,c={}){if(!a||!b)return null;let d=h(c.preferredProjectId),g=e.get(a);if(g&&Date.now()-g.fetchedAt<36e5&&(!d||d===g.projectId))return g.projectId;let j=d?`${a}::${d}`:a;if(f.has(j))return f.get(j).promise;let k=new AbortController,m=(async()=>{try{let c=await l(b,k.signal,{preferredProjectId:d});if(c)return e.set(a,{projectId:c,fetchedAt:Date.now()}),c;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{f.delete(j)}})();return f.set(j,{promise:m,controller:k,startedAt:Date.now()}),m}async function j(a,b={}){if(!a)return{projectId:null,tierId:null,requiresUserProject:!1,error:"missing access token"};try{return await m(a,void 0,b)}catch(a){return{projectId:null,tierId:null,requiresUserProject:!1,error:a?.message||String(a)}}}function k(a){e.delete(a)}async function l(a,b,c={}){return(await m(a,b,c)).projectId}async function m(a,b,c={}){let e=h(c.preferredProjectId),f=await fetch(d.nZ.loadCodeAssist,{method:"POST",headers:{...d.Ic,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:d.zv}),signal:b});if(!f.ok){let a=await f.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${f.status} ${a.slice(0,200)}`)}let g=await f.json(),i=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(g);if(i)return{projectId:i,tierId:o(g).tierId||null,requiresUserProject:!1,loadRaw:g};let j=o(g),k=j.tierId||"free-tier";if(j.userDefined)return e?{projectId:await n(a,k,b,e)||e,tierId:k,requiresUserProject:!0,loadRaw:g,error:void 0}:(console.warn("[ProjectId] GSuite/DASHER has no free-tier project from loadCodeAssist; caller should reuse a stored/peer managed project id."),{projectId:null,tierId:k,requiresUserProject:!0,loadRaw:g,error:"no managed project on account; use stored or peer projectId"});let l=await n(a,k,b,null);return{projectId:l,tierId:k,requiresUserProject:!1,loadRaw:g,error:l?void 0:"onboardUser did not return a project id"}}async function n(a,b,c,e=null){console.log(`[ProjectId] Onboarding user with tier: ${b}`+(e?` project=${e}`:""));let f={tierId:b,metadata:d.zv};e&&(f.cloudaicompanionProject=e);for(let b=1;b<=5&&!c?.aborted;b++){let g=new AbortController,h=setTimeout(()=>g.abort(),3e4),i=()=>g.abort();c?.addEventListener("abort",i);try{let c=await fetch(d.nZ.onboardUser,{method:"POST",headers:{...d.Ic,Authorization:`Bearer ${a}`},body:JSON.stringify(f),signal:g.signal});if(clearTimeout(h),!c.ok){let a=await c.text().catch(()=>"");throw Error(`onboardUser HTTP ${c.status}: ${a.slice(0,200)}`)}let i=await c.json();if(!0===i.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(i);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;if(e)return console.log(`[ProjectId] onboard done without id; using preferred project ${e}`),e;throw Error("onboardUser done but no project_id in response")}console.log(`[ProjectId] Onboard attempt ${b}/5: not done yet, waiting...`),await new Promise(a=>setTimeout(a,2e3))}catch(a){if(clearTimeout(h),"AbortError"===a.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(5===b)return console.warn(`[ProjectId] onboardUser failed after 5 attempts: ${a.message}`),null;console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${a.message}, retrying...`),await new Promise(a=>setTimeout(a,2e3))}finally{clearTimeout(h),c?.removeEventListener("abort",i)}}return null}function o(a){let b=null,c=!1;if(a?.currentTier?.id&&"string"==typeof a.currentTier.id&&(b=a.currentTier.id.trim(),c=!!a.currentTier.userDefinedCloudaicompanionProject),Array.isArray(a?.allowedTiers)){for(let d of a.allowedTiers)if(d&&"object"==typeof d&&!0===d.isDefault&&d.id){b=String(d.id).trim(),c=!!d.userDefinedCloudaicompanionProject;break}if(!b){let d=a.allowedTiers.find(a=>a?.id==="free-tier");d?(b="free-tier",c=!!d.userDefinedCloudaicompanionProject):a.allowedTiers[0]?.id&&(b=String(a.allowedTiers[0].id).trim(),c=!!a.allowedTiers[0].userDefinedCloudaicompanionProject)}}return"free-tier"===b&&(c=!1),{tierId:b,userDefined:c}}g=setInterval(()=>{try{let a=Date.now();for(let[b,c]of e)(!c||a-c.fetchedAt>=36e5)&&e.delete(b);for(let[b,c]of f){if(!c||"number"!=typeof c.startedAt){f.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}f.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),g?.unref?.()},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}}}},58136:(a,b,c)=>{c.d(b,{eU:()=>t,I9:()=>n,Sc:()=>o,vN:()=>s});var d=c(7803),e=c(89718),f=c(38160),g=c(8590),h=c(93943),i=c(64991);function j(a){let b=Error("Refresh request aborted");return b.name="AbortError",void 0!==a&&(b.cause=a),b}class k{constructor(a={}){this.getProfile=a.getProfile||i.JJ,this.now=a.now||Date.now,this.setTimer=a.setTimer||setTimeout,this.clearTimer=a.clearTimer||clearTimeout,this.lanes=new Map}run(a,b,c={}){if("function"!=typeof b)return Promise.reject(TypeError("Refresh operation must be a function"));let d=c.signal;if(d?.aborted)return Promise.reject(j(d.reason));let e=this.#a(a);return new Promise((a,c)=>{let f={operation:b,resolve:a,reject:c,signal:d,state:"queued",callerSettled:!1,onAbort:null};(f.onAbort=()=>{if(!f.callerSettled&&(f.callerSettled=!0,f.reject(j(d.reason)),"queued"===f.state)){let a=e.queue.indexOf(f);a>=0&&e.queue.splice(a,1),f.state="aborted",this.#b(f),this.#c(e)}},d?.addEventListener?.("abort",f.onAbort,{once:!0}),d?.aborted)?f.onAbort():(e.queue.push(f),this.#c(e))})}#a(a){let b=String(a||"default").trim().toLowerCase()||"default",c=this.lanes.get(b);if(c)return c;let d=this.getProfile(b)||{};return c={key:b,profile:{maxConcurrent:Math.max(1,Number(d.maxConcurrent)||1),minDelayMs:Math.max(0,Number(d.minDelayMs)||0)},queue:[],active:0,lastStartedAt:null,timer:null},this.lanes.set(b,c),c}#c(a){if(!a.timer&&!(a.active>=a.profile.maxConcurrent))for(;a.queue.length>0&&a.active<a.profile.maxConcurrent;){let b=null===a.lastStartedAt?0:Math.max(0,a.lastStartedAt+a.profile.minDelayMs-this.now());if(b>0){a.timer=this.setTimer(()=>{a.timer=null,this.#c(a)},b),a.timer?.unref?.();return}let c=a.queue.shift();c&&"queued"===c.state&&this.#d(a,c)}}#d(a,b){b.state="running",a.active+=1,a.lastStartedAt=this.now(),Promise.resolve().then(b.operation).then(a=>this.#e(b,b.resolve,a),a=>this.#e(b,b.reject,a)).finally(()=>{b.state="done",a.active=Math.max(0,a.active-1),this.#b(b),this.#c(a)})}#e(a,b,c){a.callerSettled||(a.callerSettled=!0,this.#b(a),b(c))}#b(a){a.signal?.removeEventListener?.("abort",a.onAbort)}}let l=function(a={}){return new k(a)}(),m=g.oD,n=(a,b,c)=>(0,g.I9)(a,b,c,d),o=(a,b,c={})=>(c.scheduler||l).run(a,()=>(0,h.Vq)(a,b,d),{signal:c.signal});function p(a,b=Date.now()){return new Date(b+1e3*a).toISOString()}function q(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}function r({permanent:a,code:b,status:c}){let d=Error(a?"Kiro refresh credential is missing or rejected":"Kiro credential refresh failed temporarily");return d.name=a?"KiroRefreshCredentialError":"KiroRefreshTransientError",d.permanent=a,d.code=b,d.status=c,d}async function s(a,b){try{let c=function(a,b=Date.now()){let c={};if(a.accessToken&&(c.accessToken=a.accessToken),a.refreshToken&&(c.refreshToken=a.refreshToken),a.idToken&&(c.idToken=a.idToken),a.lastRefreshAt&&(c.lastRefreshAt=a.lastRefreshAt),a.expiresAt&&(c.expiresAt=a.expiresAt),a.expiresIn)c.expiresAt=p(a.expiresIn,b),c.expiresIn=a.expiresIn;else if(a.expiresAt){let d=q(a.expiresAt);d&&(c.expiresAt=d,c.expiresIn=Math.max(1,Math.floor((new Date(d).getTime()-b)/1e3)))}return a.providerSpecificData&&(c.providerSpecificData={...a.existingProviderSpecificData||{},...a.providerSpecificData}),(a.copilotToken||a.copilotTokenExpiresAt)&&(c.providerSpecificData={...c.providerSpecificData||a.existingProviderSpecificData||{},...a.copilotToken?{copilotToken:a.copilotToken}:{},...a.copilotTokenExpiresAt?{copilotTokenExpiresAt:a.copilotTokenExpiresAt}:{}}),a.projectId&&(c.projectId=a.projectId),c}(b),f=await (0,e.updateProviderConnection)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function t(a,b,c={}){let e={...b},i=c.scheduler||l;if((0,h.fp)(a,e)){let b=e.expiresAt?new Date(e.expiresAt).getTime():null,h=b?b-Date.now():null,j=(0,g.Og)(a);if(d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===h?null:Math.round(h/1e3),refreshLeadMs:j,lastRefreshAt:e.lastRefreshAt||null}),"kiro"===a&&!e.refreshToken)throw r({permanent:!0,code:"MISSING_REFRESH_TOKEN",status:401});let k=await o(a,e,{scheduler:i,signal:c.signal});if(k?.accessToken||k?.apiKey||k?.copilotToken){let b={...k,existingProviderSpecificData:e.providerSpecificData},c=await s(e.connectionId,b);if("kiro"===a&&!c)throw r({permanent:!1,code:"PERSIST_REFRESH_FAILED",status:502});!function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&((0,f.Ou)(b),(0,f.eG)(b,c).then(a=>{a&&s(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})}))}(a,(e={...e,...k,expiresAt:k.expiresIn?p(k.expiresIn):q(k.expiresAt)||k.expiresAt||e.expiresAt,providerSpecificData:k.providerSpecificData?{...e.providerSpecificData,...k.providerSpecificData}:e.providerSpecificData}).connectionId,e.accessToken)}else if("kiro"===a)throw r({permanent:!1,code:"TRANSIENT_REFRESH_FAILURE",status:502})}if("github"===a&&e.providerSpecificData?.copilotTokenExpiresAt){let b=1e3*e.providerSpecificData.copilotTokenExpiresAt-Date.now();if(b<m){d.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round(b/1e3)});let f=await i.run(a,()=>{let a;return a=e.accessToken,(0,g.jR)(a,d)},{signal:c.signal});if(f){let a={...e.providerSpecificData,copilotToken:f.token,copilotTokenExpiresAt:f.expiresAt};await s(e.connectionId,{providerSpecificData:a}),e.providerSpecificData=a,e.copilotToken=f.token}}}return e}},64991:(a,b,c)=>{c.d(b,{JJ:()=>f,Wk:()=>d});let d=Object.freeze({maxConcurrent:4,minDelayMs:0}),e=Object.freeze({kiro:Object.freeze({maxConcurrent:1,minDelayMs:3e3})});function f(a){return e[String(a||"").trim().toLowerCase()]||d}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,Iu:()=>d.Iu,Kg:()=>d.Kg,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.getModelAliases,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.deleteModelAlias,getProviderConnections:()=>d.getProviderConnections,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)}};
@@ -1 +1 @@
1
- "use strict";exports.id=5681,exports.ids=[5681],exports.modules={75681:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>C,DI:()=>x,IS:()=>q,JH:()=>w,Pd:()=>y,br:()=>v,fg:()=>u,gC:()=>B,gb:()=>A,jO:()=>I,js:()=>G,mq:()=>z,nJ:()=>r,rs:()=>E,wG:()=>F,wb:()=>H,zN:()=>t,zt:()=>D});var d=c(48806),e=c(87098),f=c(17559),g=c(25433),h=c(34204),i=c(15082),j=c(90874),k=c(79875),l=c(91861),m=c(35824),n=c(41190);c(32534);let o="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";function p(a){return{id:a.id,alias:a.alias,aliases:a.aliases,...a.display,authModes:a.authModes,passthroughModels:a.passthroughModels,serviceKinds:a.serviceKinds}}let q={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",deprecated:!0,deprecationNotice:o,website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},authModes:["oauth","apikey"]},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:o,website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"}},codebuddy:{id:"codebuddy",alias:"cb",name:"CodeBuddy",icon:"smart_toy",color:"#006EFF",deprecated:!0,deprecationNotice:o,website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai/login",apiKeyUrl:"https://www.codebuddy.ai/profile"},authModes:["oauth","apikey"]},"codebuddy-cn":{id:"codebuddy-cn",alias:"cb-cn",name:"CodeBuddy CN",icon:"smart_toy",color:"#1E40AF",deprecated:!0,deprecationNotice:o,website:"https://www.codebuddy.cn",notice:{signupUrl:"https://copilot.tencent.com",apiKeyUrl:"https://copilot.tencent.com/profile/"},authModes:["oauth","apikey"]},qoder:{id:"qoder",alias:"qd",name:"Qoder",icon:"water_drop",color:"#EC4899",deprecated:!0,deprecationNotice:o,website:"https://qoder.com",notice:{signupUrl:"https://qoder.com",apiKeyUrl:"https://qoder.com/account"},authModes:["oauth","apikey"]},opencode:{id:"opencode",alias:"oc",name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC",noAuth:!0,passthroughModels:!0,modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"}},"mimo-free":{id:"mimo-free",alias:"mmf",name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF",noAuth:!0,hasFree:!0,passthroughModels:!0,website:"https://xiaomimimo.com",notice:{text:"Free Xiaomi MiMo Code endpoint (no API key). Uses bootstrap JWT + Chrome UA. May rate-limit or break if upstream anti-abuse changes."}}},r={poolside:p(k.A),"kilo-gateway":p(h.A),bazaarlink:p(g.A),llm7:p(i.A),openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, 200 req/day; after $10 credit: 1,000 req/day (OpenRouter terms).",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0,serviceKinds:["llm","embedding","tts","imageToText","video"],embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"openai/text-embedding-3-small",name:"Text Embedding 3 Small (OpenRouter)",dimensions:1536},{id:"openai/text-embedding-3-large",name:"Text Embedding 3 Large (OpenRouter)",dimensions:3072},{id:"openai/text-embedding-ada-002",name:"Text Embedding Ada 002 (OpenRouter)",dimensions:1536}]},videoConfig:{baseUrl:"https://openrouter.ai/api/v1/videos"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"},serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"fastpitch",name:"FastPitch"},{id:"tacotron2",name:"Tacotron2"}]},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"},serviceKinds:["llm","video"],videoConfig:{baseUrl:"https://us-central1-aiplatform.googleapis.com/v1"}},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",mediaPriority:1,website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"},serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}]},searchViaChat:{defaultModel:"gemini-2.5-flash",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",models:[{id:"text-embedding-004",name:"Text Embedding 004",dimensions:768},{id:"embedding-001",name:"Embedding 001",dimensions:768}]},ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts",models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS"}]}},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"},serviceKinds:["llm","image"],hasProviderSpecificData:!0},byteplus:{id:"byteplus",alias:"bpm",name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"},serviceKinds:["llm"]}},s=[{id:"speech-2.8-hd",name:"Speech 2.8 HD"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo"},{id:"speech-2.6-hd",name:"Speech 2.6 HD"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo"},{id:"speech-02-hd",name:"Speech 02 HD"},{id:"speech-02-turbo",name:"Speech 02 Turbo"},{id:"speech-01-hd",name:"Speech 01 HD"},{id:"speech-01-turbo",name:"Speech 01 Turbo"}],t={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757",deprecated:!0,deprecationNotice:o,website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"}},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.",serviceKinds:["llm","image"],website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"}},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6",deprecated:!0,deprecationNotice:o,thinkingConfig:{options:["auto","none","minimal","low","medium","high","xhigh","max","ultra"],defaultMode:"auto"},serviceKinds:["llm","image"],kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."},website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"}},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333",deprecated:!0,deprecationNotice:o,serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",dimensions:3072}]},website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"}},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},trae:{id:"trae",alias:"trae",name:"Trae",icon:"bolt",color:"#FF6A00",textIcon:"TR",deprecated:!0,deprecationNotice:o,hidden:!0,authModes:["oauth","apikey"],website:"https://www.trae.ai",notice:{text:"Sign in with Trae (browser), or paste a Cloud-IDE-JWT token from DevTools. Token lasts ~14 days.",signupUrl:"https://www.trae.ai"}},windsurf:{id:"windsurf",alias:"ws",name:"Windsurf",icon:"sailing",color:"#09B6A2",textIcon:"WS",deprecated:!0,deprecationNotice:o,hidden:!0,authModes:["oauth","apikey"],website:"https://windsurf.com",notice:{text:"Sign in with Windsurf (browser), or paste a Codeium API key (sk-ws-…). Chat runs over Codeium's gRPC-web backend.",signupUrl:"https://windsurf.com"}},zed:{id:"zed",alias:"zd",name:"Zed",icon:"bolt",color:"#084CCF",textIcon:"ZD",deprecated:!0,deprecationNotice:o,hidden:!0,authModes:["oauth"],website:"https://zed.dev",notice:{text:"Sign in with Zed (browser) — a local RSA keypair secures the callback. Zed fronts Anthropic/OpenAI/Google/xAI via cloud.zed.dev.",signupUrl:"https://zed.dev"}},"devin-cli":{id:"devin-cli",alias:"dv",name:"Devin CLI",icon:"terminal",color:"#6E56CF",textIcon:"DV",deprecated:!0,deprecationNotice:o,hidden:!0,noAuth:!0,authModes:["none"],website:"https://devin.ai",notice:{text:"Runs the local `devin acp` binary over stdio — requires the Devin CLI installed and logged in (devin auth login) on this host. Can execute host shell commands."}},xai:{id:d.A.id,alias:d.A.alias,...d.A.display,serviceKinds:d.A.serviceKinds,imageConfig:d.A.imageConfig,videoConfig:d.A.videoConfig,searchViaChat:d.A.searchViaChat,authModes:d.A.authModes,hasOAuth:d.A.hasOAuth},kimi:{id:"kimi",alias:"kimi",aliases:["kimi-coding","kmc"],name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",signupUrl:"https://www.kimi.com/code"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k3",pricingUrl:"https://platform.kimi.ai/docs/pricing/chat"},authModes:["oauth","apikey"],hasOAuth:!0},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},clinepass:{id:"clinepass",alias:"clinepass",name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"},authModes:["oauth","apikey"],hasOAuth:!0,thinkingConfig:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4}},kimchi:{id:"kimchi",alias:"kimchi",name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"},hasOAuth:!0,passthroughModels:!0,serviceKinds:["llm","imageToText"]},"grok-cli":{id:"grok-cli",alias:"gcli",name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build subscription credits (cli-chat-proxy.grok.com).",signupUrl:"https://grok.com/supergrok"},hasOAuth:!0,thinkingConfig:{options:["low","medium","high"],defaultMode:"high"}},autoclaw:{id:"autoclaw",alias:"acl",name:"AutoClaw",icon:"bolt",color:"#7C3AED",textIcon:"AC",website:"https://autoclaw.z.ai",notice:{signupUrl:"https://autoclaw.z.ai"}}},u={"alims-intl":p(e.A),baidu:p(f.A),tokenrouter:p(m.A),"alitp-intl":p(n.A),morph:p(j.A),tencent:p(l.A),glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","image","imageToText","webSearch","tts"],searchViaChat:{defaultModel:"MiniMax-M2.7",pricingUrl:"https://www.minimaxi.com/document/price"},ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts",models:s}},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts",models:s}},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},"xiaomi-mimo":{id:"xiaomi-mimo",alias:"mimo",aliases:["mimo-desktop","xmd"],name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys"},authModes:["oauth","apikey"],hasOAuth:!0,hasProviderSpecificData:!0,serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"}},"xiaomi-tokenplan":{id:"xiaomi-tokenplan",alias:"xmtp",name:"Xiaomi MiMo (Token Plan)",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://mimo.xiaomi.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://mimo.xiaomi.com"},hasProviderSpecificData:!0,regions:[{id:"sgp",label:"Singapore",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1"},{id:"cn",label:"China",baseUrl:"https://token-plan-cn.xiaomimimo.com/v1"},{id:"ams",label:"Europe",baseUrl:"https://token-plan-ams.xiaomimimo.com/v1"}],defaultRegion:"sgp"},"volcengine-ark":{id:"volcengine-ark",alias:"ark",name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"},serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],thinkingConfig:{options:["auto","none","minimal","low","medium","high","xhigh","max"],defaultMode:"auto"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"},ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"tts-1",name:"TTS-1"},{id:"tts-1-hd",name:"TTS-1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe"}]},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]}},"vercel-ai-gateway":{id:"vercel-ai-gateway",alias:"vercel",name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"},passthroughModels:!0,serviceKinds:["llm","image"]},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"},serviceKinds:["llm","imageToText"]},"opencode-go":{id:"opencode-go",alias:"ocg",name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then $10/mo). Access to DeepSeek, GLM, Kimi, MiMo, MiniMax, Qwen, and Responses-only models.",apiKeyUrl:"https://opencode.ai/auth"}},azure:{id:"azure",alias:"azure",name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"},hasProviderSpecificData:!0},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},commandcode:{id:"commandcode",alias:"cmc",name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"},serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]}},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"},serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]}},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"},serviceKinds:["llm","webSearch"],searchConfig:{baseUrl:"https://api.perplexity.ai/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},"perplexity-agent":{id:"perplexity-agent",alias:"pa",name:"Perplexity Agent",icon:"travel_explore",color:"#20808D",textIcon:"PA",website:"https://www.perplexity.ai",notice:{text:"Perplexity Agent API exposes GPT, Claude, Gemini, Grok, GLM, Kimi, and Sonar models through one OpenAI-compatible Responses API.",apiKeyUrl:"https://www.perplexity.ai/settings/api"},passthroughModels:!0,modelsFetcher:{url:"https://api.perplexity.ai/v1/models",type:"openai"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"perplexity/sonar",endpoint:"https://api.perplexity.ai/v1/responses",pricingUrl:"https://docs.perplexity.ai/docs/agent-api/models"}},clinepass:{id:"clinepass",alias:"clinepass",name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot",apiKeyUrl:"https://app.cline.bot"},authModes:["oauth","apikey"],hasOAuth:!0},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]}},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]}},venice:{id:"venice",alias:"venice",name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"},passthroughModels:!0,modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",dimensions:1024}]}},featherless:{id:"featherless",alias:"fl",name:"Featherless",icon:"flutter_dash",color:"#111827",textIcon:"FL",website:"https://featherless.ai",notice:{apiKeyUrl:"https://featherless.ai/account/api-keys"},passthroughModels:!0,modelsFetcher:{url:"https://api.featherless.ai/v1/models",type:"openai"}},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]}},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]}},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"},serviceKinds:["stt","imageToText","tts"],ttsConfig:{baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[]},sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]}},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"},serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",format:"assemblyai",async:!0,models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]}},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"},serviceKinds:["image"]},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},"fish-audio":{id:"fish-audio",alias:"fish",name:"Fish Audio",icon:"graphic_eq",color:"#00C2FF",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/app/api-keys/"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fish-audio",models:[{id:"s2.1-pro-free",name:"S2.1 Pro Free"},{id:"s2.1-pro",name:"S2.1 Pro"},{id:"s2-pro",name:"S2 Pro"},{id:"s1",name:"S1"}]}},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]}},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]}},"local-device":{id:"local-device",alias:"local-device",name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},"google-tts":{id:"google-tts",alias:"google-tts",name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},"edge-tts":{id:"edge-tts",alias:"edge-tts",name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},coqui:{id:"coqui",alias:"coqui",name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]}},tortoise:{id:"tortoise",alias:"tortoise",name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]}},inworld:{id:"inworld",alias:"inworld",name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},"voyage-ai":{id:"voyage-ai",alias:"voyage",name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"voyage-3-large",name:"Voyage 3 Large",dimensions:1024},{id:"voyage-3.5",name:"Voyage 3.5",dimensions:1024},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",dimensions:1024},{id:"voyage-code-3",name:"Voyage Code 3",dimensions:1024},{id:"voyage-finance-2",name:"Voyage Finance 2",dimensions:1024},{id:"voyage-law-2",name:"Voyage Law 2",dimensions:1024},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",dimensions:1024}]}},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui",serviceKinds:["image"]},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI",serviceKinds:["image"]},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"},serviceKinds:["image","imageToText","tts","stt"],hiddenKinds:["tts"],ttsConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},sttConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]}},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"},serviceKinds:["llm"]},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},tavily:{id:"tavily",alias:"tavily",name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},"brave-search":{id:"brave-search",alias:"brave",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},serper:{id:"serper",alias:"serper",name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},exa:{id:"exa",alias:"exa",name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},searxng:{id:"searxng",alias:"searxng",name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},"google-pse":{id:"google-pse",alias:"gpse",name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},linkup:{id:"linkup",alias:"linkup",name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},searchapi:{id:"searchapi",alias:"searchapi",name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},youcom:{id:"youcom",alias:"youcom",name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},firecrawl:{id:"firecrawl",alias:"firecrawl",name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},"fal-ai":{id:"fal-ai",alias:"fal",name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.fal.ai/v1/models?limit=1",method:"GET",authType:"apikey",authHeader:"key"}},"stability-ai":{id:"stability-ai",alias:"stability",name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v1/user/account",method:"GET",authType:"apikey",authHeader:"bearer"}},"black-forest-labs":{id:"black-forest-labs",alias:"bfl",name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1/get_result?id=ping",method:"GET",authType:"apikey",authHeader:"x-key"}},recraft:{id:"recraft",alias:"recraft",name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"},serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/users/me",method:"GET",authType:"apikey",authHeader:"bearer"}},topaz:{id:"topaz",alias:"topaz",name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"},serviceKinds:["image"]},runwayml:{id:"runwayml",alias:"runway",name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"},serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1/organization",method:"GET",authType:"apikey",authHeader:"bearer",extraHeaders:{"X-Runway-Version":"2024-11-06"}}},"aws-polly":{id:"aws-polly",alias:"polly",name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"},serviceKinds:["tts"],hasProviderSpecificData:!0,ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]}},"jina-ai":{id:"jina-ai",alias:"jina",name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial; Jina terms apply).",apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},"jina-reader":{id:"jina-reader",alias:"jina",name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}}},v={"grok-web":{id:"grok-web",alias:"gw",name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",passthroughModels:!0,serviceKinds:["llm"]},"perplexity-web":{id:"perplexity-web",alias:"pw",name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",serviceKinds:["llm"]},"notion-ai":{id:"notion-ai",alias:"na",name:"Notion AI (Experimental)",icon:"auto_awesome",color:"#111111",textIcon:"NA",website:"https://www.notion.so",authType:"cookie",authHint:"Paste the token_v2 cookie (or full Cookie header) from your own Notion session. Space ID and user ID are optional and can be auto-resolved.",serviceKinds:["llm"]}},w="openai-compatible-",x="anthropic-compatible-",y="custom-embedding-";function z(a){return"string"==typeof a&&a.startsWith(w)}function A(a){return"string"==typeof a&&a.startsWith(x)}function B(a){return"string"==typeof a&&a.startsWith(y)}let C={...q,...r,...t,...u,...v};function D(a){for(let b of Object.values(C))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function E(a){let b=D(a);return b?.id||a}function F(a){let b=C[a];return b?.alias||a}let G=Object.values(C).reduce((a,b)=>{for(let c of(a[b.alias]=b.id,b.aliases||[]))a[c]=b.id;return a},{});Object.values(C).reduce((a,b)=>(a[b.id]=b.alias,a),{});let H=["claude","antigravity","kiro","codebuddy","codebuddy-cn","qoder","github","codex","kimi","ollama","gemini-cli","glm","glm-cn","minimax","minimax-cn","autoclaw","qwen","iflow","grok-cli","cloudflare-ai","xai","cline","clinepass","kimchi","cursor","blackbox","deepseek"],I=["glm","glm-cn","minimax","minimax-cn","codebuddy","codebuddy-cn","qoder","cloudflare-ai","xai","clinepass","blackbox","ollama","kimi","deepseek","kiro"]}};
1
+ "use strict";exports.id=5681,exports.ids=[5681],exports.modules={75681:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>C,DI:()=>x,IS:()=>q,JH:()=>w,Pd:()=>y,br:()=>v,fg:()=>u,gC:()=>B,gb:()=>A,jO:()=>I,js:()=>G,mq:()=>z,nJ:()=>r,rs:()=>E,wG:()=>F,wb:()=>H,zN:()=>t,zt:()=>D});var d=c(48806),e=c(87098),f=c(17559),g=c(25433),h=c(34204),i=c(15082),j=c(90874),k=c(79875),l=c(91861),m=c(35824),n=c(41190);c(32534);let o="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";function p(a){return{id:a.id,alias:a.alias,aliases:a.aliases,...a.display,authModes:a.authModes,passthroughModels:a.passthroughModels,serviceKinds:a.serviceKinds}}let q={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",deprecated:!0,deprecationNotice:o,website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"},authModes:["oauth","apikey"]},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:o,website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"}},codebuddy:{id:"codebuddy",alias:"cb",name:"CodeBuddy",icon:"smart_toy",color:"#006EFF",deprecated:!0,deprecationNotice:o,website:"https://www.codebuddy.ai",notice:{signupUrl:"https://www.codebuddy.ai/login",apiKeyUrl:"https://www.codebuddy.ai/profile"},authModes:["oauth","apikey"]},"codebuddy-cn":{id:"codebuddy-cn",alias:"cb-cn",name:"CodeBuddy CN",icon:"smart_toy",color:"#1E40AF",deprecated:!0,deprecationNotice:o,website:"https://www.codebuddy.cn",notice:{signupUrl:"https://copilot.tencent.com",apiKeyUrl:"https://copilot.tencent.com/profile/"},authModes:["oauth","apikey"]},qoder:{id:"qoder",alias:"qd",name:"Qoder",icon:"water_drop",color:"#EC4899",deprecated:!0,deprecationNotice:o,website:"https://qoder.com",notice:{signupUrl:"https://qoder.com",apiKeyUrl:"https://qoder.com/account"},authModes:["oauth","apikey"]},opencode:{id:"opencode",alias:"oc",name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC",noAuth:!0,passthroughModels:!0,modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"}},"mimo-free":{id:"mimo-free",alias:"mmf",name:"MiMo Code Free",icon:"smart_toy",color:"#FF6900",textIcon:"MF",noAuth:!0,hasFree:!0,passthroughModels:!0,website:"https://xiaomimimo.com",notice:{text:"Free Xiaomi MiMo Code endpoint (no API key). Uses bootstrap JWT + Chrome UA. May rate-limit or break if upstream anti-abuse changes."}}},r={poolside:p(k.A),"kilo-gateway":p(h.A),bazaarlink:p(g.A),llm7:p(i.A),openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, 200 req/day; after $10 credit: 1,000 req/day (OpenRouter terms).",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0,serviceKinds:["llm","embedding","tts","imageToText","video"],embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"openai/text-embedding-3-small",name:"Text Embedding 3 Small (OpenRouter)",dimensions:1536},{id:"openai/text-embedding-3-large",name:"Text Embedding 3 Large (OpenRouter)",dimensions:3072},{id:"openai/text-embedding-ada-002",name:"Text Embedding Ada 002 (OpenRouter)",dimensions:1536}]},videoConfig:{baseUrl:"https://openrouter.ai/api/v1/videos"}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"},serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"fastpitch",name:"FastPitch"},{id:"tacotron2",name:"Tacotron2"}]},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"},serviceKinds:["llm","video"],videoConfig:{baseUrl:"https://us-central1-aiplatform.googleapis.com/v1"}},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",mediaPriority:1,website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"},serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}]},searchViaChat:{defaultModel:"gemini-2.5-flash",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",models:[{id:"text-embedding-004",name:"Text Embedding 004",dimensions:768},{id:"embedding-001",name:"Embedding 001",dimensions:768}]},ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts",models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS"}]}},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"},serviceKinds:["llm","image"],hasProviderSpecificData:!0},byteplus:{id:"byteplus",alias:"bpm",name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"},serviceKinds:["llm"]}},s=[{id:"speech-2.8-hd",name:"Speech 2.8 HD"},{id:"speech-2.8-turbo",name:"Speech 2.8 Turbo"},{id:"speech-2.6-hd",name:"Speech 2.6 HD"},{id:"speech-2.6-turbo",name:"Speech 2.6 Turbo"},{id:"speech-02-hd",name:"Speech 02 HD"},{id:"speech-02-turbo",name:"Speech 02 Turbo"},{id:"speech-01-hd",name:"Speech 01 HD"},{id:"speech-01-turbo",name:"Speech 01 Turbo"}],t={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757",deprecated:!0,deprecationNotice:o,website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"}},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.",serviceKinds:["llm","image"],website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"}},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6",deprecated:!0,deprecationNotice:o,thinkingConfig:{options:["auto","none","minimal","low","medium","high","xhigh","max","ultra"],defaultMode:"auto"},serviceKinds:["llm","image"],kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."},website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"}},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333",deprecated:!0,deprecationNotice:o,serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",dimensions:3072}]},website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"}},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},trae:{id:"trae",alias:"trae",name:"Trae",icon:"bolt",color:"#FF6A00",textIcon:"TR",deprecated:!0,deprecationNotice:o,hidden:!0,authModes:["oauth","apikey"],website:"https://www.trae.ai",notice:{text:"Sign in with Trae (browser), or paste a Cloud-IDE-JWT token from DevTools. Token lasts ~14 days.",signupUrl:"https://www.trae.ai"}},windsurf:{id:"windsurf",alias:"ws",name:"Windsurf",icon:"sailing",color:"#09B6A2",textIcon:"WS",deprecated:!0,deprecationNotice:o,hidden:!0,authModes:["oauth","apikey"],website:"https://windsurf.com",notice:{text:"Sign in with Windsurf (browser), or paste a Codeium API key (sk-ws-…). Chat runs over Codeium's gRPC-web backend.",signupUrl:"https://windsurf.com"}},zed:{id:"zed",alias:"zd",name:"Zed",icon:"bolt",color:"#084CCF",textIcon:"ZD",deprecated:!0,deprecationNotice:o,hidden:!0,authModes:["oauth"],website:"https://zed.dev",notice:{text:"Sign in with Zed (browser) — a local RSA keypair secures the callback. Zed fronts Anthropic/OpenAI/Google/xAI via cloud.zed.dev.",signupUrl:"https://zed.dev"}},"devin-cli":{id:"devin-cli",alias:"dv",name:"Devin CLI",icon:"terminal",color:"#6E56CF",textIcon:"DV",deprecated:!0,deprecationNotice:o,hidden:!0,noAuth:!0,authModes:["none"],website:"https://devin.ai",notice:{text:"Runs the local `devin acp` binary over stdio — requires the Devin CLI installed and logged in (devin auth login) on this host. Can execute host shell commands."}},xai:{id:d.A.id,alias:d.A.alias,...d.A.display,serviceKinds:d.A.serviceKinds,imageConfig:d.A.imageConfig,videoConfig:d.A.videoConfig,searchViaChat:d.A.searchViaChat,authModes:d.A.authModes,hasOAuth:d.A.hasOAuth},kimi:{id:"kimi",alias:"kimi",aliases:["kimi-coding","kmc"],name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys",signupUrl:"https://www.kimi.com/code"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k3",pricingUrl:"https://platform.kimi.ai/docs/pricing/chat"},authModes:["oauth","apikey"],hasOAuth:!0},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}},clinepass:{id:"clinepass",alias:"clinepass",name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot"},authModes:["oauth","apikey"],hasOAuth:!0,thinkingConfig:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4}},kimchi:{id:"kimchi",alias:"kimchi",name:"Kimchi",icon:"restaurant",color:"#FF521D",textIcon:"KC",website:"https://kimchi.dev",notice:{signupUrl:"https://app.kimchi.dev"},hasOAuth:!0,passthroughModels:!0,serviceKinds:["llm","imageToText"]},"grok-cli":{id:"grok-cli",alias:"gcli",name:"Grok CLI (Grok Build)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GC",website:"https://x.ai",notice:{text:"Sign in with your xAI / Grok account via device code. Uses Grok Build subscription credits (cli-chat-proxy.grok.com).",signupUrl:"https://grok.com/supergrok"},hasOAuth:!0,thinkingConfig:{options:["low","medium","high"],defaultMode:"high"}},autoclaw:{id:"autoclaw",alias:"acl",name:"AutoClaw",icon:"bolt",color:"#7C3AED",textIcon:"AC",website:"https://autoclaw.z.ai",notice:{signupUrl:"https://autoclaw.z.ai"}}},u={"alims-intl":p(e.A),baidu:p(f.A),tokenrouter:p(m.A),"alitp-intl":p(n.A),morph:p(j.A),tencent:p(l.A),glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","image","imageToText","webSearch","tts"],searchViaChat:{defaultModel:"MiniMax-M2.7",pricingUrl:"https://www.minimaxi.com/document/price"},ttsConfig:{baseUrl:"https://api.minimax.io/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts",models:s}},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.minimaxi.com/v1/t2a_v2",authType:"apikey",authHeader:"bearer",format:"minimax-tts",models:s}},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},"xiaomi-mimo":{id:"xiaomi-mimo",alias:"mimo",aliases:["mimo-desktop","xmd"],name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://platform.xiaomimimo.com/console/api-keys"},authModes:["oauth","apikey"],hasOAuth:!0,hasProviderSpecificData:!0,serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",authType:"apikey",authHeader:"bearer",format:"xiaomi-mimo-tts"}},"xiaomi-tokenplan":{id:"xiaomi-tokenplan",alias:"xmtp",name:"Xiaomi MiMo (Token Plan)",icon:"smart_toy",color:"#FF6700",textIcon:"XT",website:"https://mimo.xiaomi.com",notice:{text:"Xiaomi MiMo Token Plan subscription (API key starts with tp-). Token Plan keys are cluster-specific — select the region matching your subscription.",apiKeyUrl:"https://mimo.xiaomi.com"},hasProviderSpecificData:!0,regions:[{id:"sgp",label:"Singapore",baseUrl:"https://token-plan-sgp.xiaomimimo.com/v1"},{id:"cn",label:"China",baseUrl:"https://token-plan-cn.xiaomimimo.com/v1"},{id:"ams",label:"Europe",baseUrl:"https://token-plan-ams.xiaomimimo.com/v1"}],defaultRegion:"sgp"},"volcengine-ark":{id:"volcengine-ark",alias:"ark",name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"},serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],thinkingConfig:{options:["auto","none","minimal","low","medium","high","xhigh","max"],defaultMode:"auto"},searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"},ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"tts-1",name:"TTS-1"},{id:"tts-1-hd",name:"TTS-1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe"}]},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]}},"vercel-ai-gateway":{id:"vercel-ai-gateway",alias:"vercel",name:"Vercel AI Gateway",icon:"deployed_code",color:"#111827",textIcon:"VG",website:"https://vercel.com/ai-gateway",notice:{text:"Unified OpenAI-compatible endpoint from Vercel. Use your AI Gateway API key, then pick models with provider/model IDs like anthropic/claude-sonnet-4.6 or openai/gpt-5.4.",apiKeyUrl:"https://vercel.com/dashboard/~/ai-gateway"},passthroughModels:!0,serviceKinds:["llm","image"]},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"},serviceKinds:["llm","imageToText"]},"opencode-go":{id:"opencode-go",alias:"ocg",name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then $10/mo). Access to DeepSeek, GLM, Kimi, MiMo, MiniMax, Qwen, and Responses-only models.",apiKeyUrl:"https://opencode.ai/auth"}},azure:{id:"azure",alias:"azure",name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"},hasProviderSpecificData:!0},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},commandcode:{id:"commandcode",alias:"cmc",name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"},serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]}},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"},serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]}},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"},serviceKinds:["llm","webSearch"],searchConfig:{baseUrl:"https://api.perplexity.ai/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},"perplexity-agent":{id:"perplexity-agent",alias:"pa",name:"Perplexity Agent",icon:"travel_explore",color:"#20808D",textIcon:"PA",website:"https://www.perplexity.ai",notice:{text:"Perplexity Agent API exposes GPT, Claude, Gemini, Grok, GLM, Kimi, and Sonar models through one OpenAI-compatible Responses API.",apiKeyUrl:"https://www.perplexity.ai/settings/api"},passthroughModels:!0,modelsFetcher:{url:"https://api.perplexity.ai/v1/models",type:"openai"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"perplexity/sonar",endpoint:"https://api.perplexity.ai/v1/responses",pricingUrl:"https://docs.perplexity.ai/docs/agent-api/models"}},clinepass:{id:"clinepass",alias:"clinepass",name:"ClinePass",icon:"vpn_key",color:"#5B9BD5",textIcon:"CP",website:"https://cline.bot",notice:{signupUrl:"https://app.cline.bot",apiKeyUrl:"https://app.cline.bot"},authModes:["oauth","apikey"],hasOAuth:!0},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]}},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]}},venice:{id:"venice",alias:"venice",name:"Venice AI",icon:"shield",color:"#DC2626",textIcon:"VE",website:"https://venice.ai",notice:{text:"OpenAI-compatible. Private inference + uncensored models (Venice Uncensored, GLM, Qwen, DeepSeek, Llama).",apiKeyUrl:"https://venice.ai/settings/api"},passthroughModels:!0,modelsFetcher:{url:"https://api.venice.ai/api/v1/models",type:"openai"},serviceKinds:["llm","embedding","image"],embeddingConfig:{baseUrl:"https://api.venice.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-bge-m3",name:"BGE-M3 Embedding",dimensions:1024}]}},featherless:{id:"featherless",alias:"fl",name:"Featherless",icon:"flutter_dash",color:"#111827",textIcon:"FL",website:"https://featherless.ai",notice:{apiKeyUrl:"https://featherless.ai/account/api-keys"},passthroughModels:!0,modelsFetcher:{url:"https://api.featherless.ai/v1/models",type:"openai"}},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]}},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]}},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"},serviceKinds:["stt","imageToText","tts"],ttsConfig:{baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[]},sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]}},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"},serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",format:"assemblyai",async:!0,models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]}},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"},serviceKinds:["image"]},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},"fish-audio":{id:"fish-audio",alias:"fish",name:"Fish Audio",icon:"graphic_eq",color:"#00C2FF",textIcon:"FA",website:"https://fish.audio",notice:{apiKeyUrl:"https://fish.audio/app/api-keys/"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.fish.audio/v1/tts",authType:"apikey",authHeader:"bearer",format:"fish-audio",models:[{id:"s2.1-pro-free",name:"S2.1 Pro Free"},{id:"s2.1-pro",name:"S2.1 Pro"},{id:"s2-pro",name:"S2 Pro"},{id:"s1",name:"S1"}]}},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]}},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]}},"local-device":{id:"local-device",alias:"local-device",name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},"google-tts":{id:"google-tts",alias:"google-tts",name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},"edge-tts":{id:"edge-tts",alias:"edge-tts",name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},coqui:{id:"coqui",alias:"coqui",name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]}},tortoise:{id:"tortoise",alias:"tortoise",name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]}},inworld:{id:"inworld",alias:"inworld",name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},"voyage-ai":{id:"voyage-ai",alias:"voyage",name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"voyage-3-large",name:"Voyage 3 Large",dimensions:1024},{id:"voyage-3.5",name:"Voyage 3.5",dimensions:1024},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",dimensions:1024},{id:"voyage-code-3",name:"Voyage Code 3",dimensions:1024},{id:"voyage-finance-2",name:"Voyage Finance 2",dimensions:1024},{id:"voyage-law-2",name:"Voyage Law 2",dimensions:1024},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",dimensions:1024}]}},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui",serviceKinds:["image"]},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI",serviceKinds:["image"]},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"},serviceKinds:["image","imageToText","tts","stt"],hiddenKinds:["tts"],ttsConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},sttConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]}},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"},serviceKinds:["llm"]},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},tavily:{id:"tavily",alias:"tavily",name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},"brave-search":{id:"brave-search",alias:"brave",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},serper:{id:"serper",alias:"serper",name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},exa:{id:"exa",alias:"exa",name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},searxng:{id:"searxng",alias:"searxng",name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},"google-pse":{id:"google-pse",alias:"gpse",name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},linkup:{id:"linkup",alias:"linkup",name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},searchapi:{id:"searchapi",alias:"searchapi",name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},youcom:{id:"youcom",alias:"youcom",name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},firecrawl:{id:"firecrawl",alias:"firecrawl",name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},"fal-ai":{id:"fal-ai",alias:"fal",name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.fal.ai/v1/models?limit=1",method:"GET",authType:"apikey",authHeader:"key"}},"stability-ai":{id:"stability-ai",alias:"stability",name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v1/user/account",method:"GET",authType:"apikey",authHeader:"bearer"}},"black-forest-labs":{id:"black-forest-labs",alias:"bfl",name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1/get_result?id=ping",method:"GET",authType:"apikey",authHeader:"x-key"}},recraft:{id:"recraft",alias:"recraft",name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"},serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/users/me",method:"GET",authType:"apikey",authHeader:"bearer"}},topaz:{id:"topaz",alias:"topaz",name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"},serviceKinds:["image"]},runwayml:{id:"runwayml",alias:"runway",name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"},serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1/organization",method:"GET",authType:"apikey",authHeader:"bearer",extraHeaders:{"X-Runway-Version":"2024-11-06"}}},"aws-polly":{id:"aws-polly",alias:"polly",name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"},serviceKinds:["tts"],hasProviderSpecificData:!0,ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]}},"jina-ai":{id:"jina-ai",alias:"jina",name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial; Jina terms apply).",apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},"jina-reader":{id:"jina-reader",alias:"jina",name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}}},v={"grok-web":{id:"grok-web",alias:"gw",name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",passthroughModels:!0,serviceKinds:["llm"]},"perplexity-web":{id:"perplexity-web",alias:"pw",name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",serviceKinds:["llm"]}},w="openai-compatible-",x="anthropic-compatible-",y="custom-embedding-";function z(a){return"string"==typeof a&&a.startsWith(w)}function A(a){return"string"==typeof a&&a.startsWith(x)}function B(a){return"string"==typeof a&&a.startsWith(y)}let C={...q,...r,...t,...u,...v};function D(a){for(let b of Object.values(C))if(b.alias===a||b.id===a||b.aliases?.includes(a))return b;return null}function E(a){let b=D(a);return b?.id||a}function F(a){let b=C[a];return b?.alias||a}let G=Object.values(C).reduce((a,b)=>{for(let c of(a[b.alias]=b.id,b.aliases||[]))a[c]=b.id;return a},{});Object.values(C).reduce((a,b)=>(a[b.id]=b.alias,a),{});let H=["claude","antigravity","kiro","codebuddy","codebuddy-cn","qoder","github","codex","kimi","ollama","gemini-cli","glm","glm-cn","minimax","minimax-cn","autoclaw","qwen","iflow","grok-cli","cloudflare-ai","xai","cline","clinepass","kimchi","cursor","blackbox","deepseek"],I=["glm","glm-cn","minimax","minimax-cn","codebuddy","codebuddy-cn","qoder","cloudflare-ai","xai","clinepass","blackbox","ollama","kimi","deepseek","kiro"]}};