@amir83nasr/10router 0.1.14 → 0.1.16

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 (846) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +4 -5
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +16 -16
  5. package/.next/routes-manifest.json +0 -6
  6. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  7. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  10. package/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  11. package/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  13. package/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  14. package/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(dashboard)/dashboard/console-log/page.js +1 -1
  16. package/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  17. package/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js +1 -1
  19. package/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  20. package/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js +2 -2
  22. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page.js.nft.json +1 -1
  23. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/[id]/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js +1 -1
  25. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page.js.nft.json +1 -1
  26. package/.next/server/app/(dashboard)/dashboard/media-providers/systemone/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(dashboard)/dashboard/page.js +1 -1
  28. package/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  29. package/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  31. package/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  32. package/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  34. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  35. package/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  37. package/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  38. package/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  40. package/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  41. package/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  43. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  44. package/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  45. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js +1 -1
  46. package/.next/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  47. package/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  49. package/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  50. package/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js +1 -1
  52. package/.next/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  53. package/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  55. package/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  56. package/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/_global-error/page.js +2 -2
  58. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/_global-error.html +1 -1
  60. package/.next/server/app/_global-error.rsc +1 -1
  61. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  62. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/.next/server/app/_not-found/page.js +1 -1
  65. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  66. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/_not-found.html +1 -1
  68. package/.next/server/app/_not-found.rsc +6 -6
  69. package/.next/server/app/_not-found.segments/_full.segment.rsc +6 -6
  70. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +6 -6
  71. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  72. package/.next/server/app/api/auth/login/route.js +1 -1
  73. package/.next/server/app/api/auth/logout/route.js +1 -1
  74. package/.next/server/app/api/auth/oidc/callback/route.js +1 -1
  75. package/.next/server/app/api/auth/oidc/start/route.js +1 -1
  76. package/.next/server/app/api/auth/oidc/test/route.js +1 -1
  77. package/.next/server/app/api/auth/reset-password/route.js +1 -1
  78. package/.next/server/app/api/auth/saml/acs/route.js +1 -1
  79. package/.next/server/app/api/auth/saml/metadata/route.js +2 -2
  80. package/.next/server/app/api/auth/saml/start/route.js +1 -1
  81. package/.next/server/app/api/auth/saml/test/route.js +1 -1
  82. package/.next/server/app/api/auth/status/route.js +2 -2
  83. package/.next/server/app/api/changelog/route.js +1 -1
  84. package/.next/server/app/api/cli-tools/all-statuses/route.js +1 -1
  85. package/.next/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  86. package/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  87. package/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  88. package/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  89. package/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  90. package/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  91. package/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  92. package/.next/server/app/api/cli-tools/dsh-settings/route.js +1 -1
  93. package/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  94. package/.next/server/app/api/combos/[id]/route.js +1 -1
  95. package/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  96. package/.next/server/app/api/combos/route.js +1 -1
  97. package/.next/server/app/api/headroom/extras/route.js +1 -1
  98. package/.next/server/app/api/headroom/proxy/[...path]/route.js +1 -1
  99. package/.next/server/app/api/headroom/restart/route.js +1 -1
  100. package/.next/server/app/api/headroom/start/route.js +1 -1
  101. package/.next/server/app/api/headroom/status/route.js +1 -1
  102. package/.next/server/app/api/headroom/stop/route.js +1 -1
  103. package/.next/server/app/api/health/route.js +1 -1
  104. package/.next/server/app/api/init/route.js +1 -1
  105. package/.next/server/app/api/keys/[id]/route.js +1 -1
  106. package/.next/server/app/api/keys/route.js +1 -1
  107. package/.next/server/app/api/locale/route.js +1 -1
  108. package/.next/server/app/api/mcp/[plugin]/message/route.js +1 -1
  109. package/.next/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  110. package/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  111. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  112. package/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  113. package/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  114. package/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  115. package/.next/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  116. package/.next/server/app/api/models/alias/route.js +1 -1
  117. package/.next/server/app/api/models/availability/route.js +1 -1
  118. package/.next/server/app/api/models/catalog-sync/route.js +1 -1
  119. package/.next/server/app/api/models/catalog-sync/route.js.nft.json +1 -1
  120. package/.next/server/app/api/models/custom/route.js +1 -1
  121. package/.next/server/app/api/models/custom/route.js.nft.json +1 -1
  122. package/.next/server/app/api/models/disabled/route.js +1 -1
  123. package/.next/server/app/api/models/route.js +1 -1
  124. package/.next/server/app/api/models/route.js.nft.json +1 -1
  125. package/.next/server/app/api/models/test/route.js +1 -1
  126. package/.next/server/app/api/models/test/route.js.nft.json +1 -1
  127. package/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  128. package/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  129. package/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  130. package/.next/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  131. package/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
  132. package/.next/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  133. package/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  134. package/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  135. package/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  136. package/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  137. package/.next/server/app/api/oauth/grok-cli/bulk-import/route.js +1 -1
  138. package/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  139. package/.next/server/app/api/oauth/xiaomi-mimo/api-key/route.js +1 -1
  140. package/.next/server/app/api/oauth/xiaomi-mimo/auto-import/route.js +2 -2
  141. package/.next/server/app/api/pricing/route.js +1 -1
  142. package/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  143. package/.next/server/app/api/provider-nodes/route.js +1 -1
  144. package/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  145. package/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  146. package/.next/server/app/api/providers/[id]/models/route.js +1 -1
  147. package/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  148. package/.next/server/app/api/providers/[id]/route.js +1 -1
  149. package/.next/server/app/api/providers/[id]/test/route.js +1 -1
  150. package/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  151. package/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  152. package/.next/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  153. package/.next/server/app/api/providers/client/route.js +1 -1
  154. package/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  155. package/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  156. package/.next/server/app/api/providers/route.js +1 -1
  157. package/.next/server/app/api/providers/route.js.nft.json +1 -1
  158. package/.next/server/app/api/providers/suggested-models/route.js +1 -1
  159. package/.next/server/app/api/providers/test-batch/route.js +1 -1
  160. package/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  161. package/.next/server/app/api/providers/validate/route.js +1 -1
  162. package/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  163. package/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  164. package/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  165. package/.next/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  166. package/.next/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  167. package/.next/server/app/api/proxy-pools/route.js +1 -1
  168. package/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  169. package/.next/server/app/api/pxpipe/health/route.js +2 -2
  170. package/.next/server/app/api/pxpipe/install/route.js +1 -1
  171. package/.next/server/app/api/pxpipe/logs/route.js +1 -1
  172. package/.next/server/app/api/pxpipe/restart/route.js +1 -1
  173. package/.next/server/app/api/pxpipe/start/route.js +2 -2
  174. package/.next/server/app/api/pxpipe/stats/route.js +1 -1
  175. package/.next/server/app/api/pxpipe/status/route.js +1 -1
  176. package/.next/server/app/api/pxpipe/stop/route.js +1 -1
  177. package/.next/server/app/api/settings/database/route.js +1 -1
  178. package/.next/server/app/api/settings/proxy-test/route.js +1 -1
  179. package/.next/server/app/api/settings/require-login/route.js +1 -1
  180. package/.next/server/app/api/settings/route.js +1 -1
  181. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  182. package/.next/server/app/api/shutdown/route.js +1 -1
  183. package/.next/server/app/api/tags/route.js +1 -1
  184. package/.next/server/app/api/translator/console-logs/route.js +1 -1
  185. package/.next/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  186. package/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  187. package/.next/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  188. package/.next/server/app/api/translator/load/route.js +1 -1
  189. package/.next/server/app/api/translator/save/route.js +1 -1
  190. package/.next/server/app/api/translator/send/route.js +1 -1
  191. package/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  192. package/.next/server/app/api/translator/translate/route.js +1 -1
  193. package/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  194. package/.next/server/app/api/tunnel/disable/route.js +1 -1
  195. package/.next/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  196. package/.next/server/app/api/tunnel/enable/route.js +1 -1
  197. package/.next/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  198. package/.next/server/app/api/tunnel/status/route.js +1 -1
  199. package/.next/server/app/api/tunnel/tailscale-check/route.js +1 -1
  200. package/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  201. package/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  202. package/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  203. package/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  204. package/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  205. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  206. package/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  207. package/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  208. package/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  209. package/.next/server/app/api/usage/chart/route.js +1 -1
  210. package/.next/server/app/api/usage/health/route.js +1 -1
  211. package/.next/server/app/api/usage/history/route.js +1 -1
  212. package/.next/server/app/api/usage/logs/route.js +1 -1
  213. package/.next/server/app/api/usage/providers/route.js +1 -1
  214. package/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  215. package/.next/server/app/api/usage/request-details/route.js +1 -1
  216. package/.next/server/app/api/usage/request-logs/route.js +1 -1
  217. package/.next/server/app/api/usage/stats/route.js +1 -1
  218. package/.next/server/app/api/usage/stream/route.js +2 -2
  219. package/.next/server/app/api/v1/api/chat/route.js +1 -1
  220. package/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  221. package/.next/server/app/api/v1/audio/speech/route.js +1 -1
  222. package/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  223. package/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  224. package/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  225. package/.next/server/app/api/v1/audio/voices/route.js +1 -1
  226. package/.next/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  227. package/.next/server/app/api/v1/chat/completions/route.js +1 -1
  228. package/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  229. package/.next/server/app/api/v1/embeddings/route.js +1 -1
  230. package/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  231. package/.next/server/app/api/v1/images/generations/route.js +2 -2
  232. package/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  233. package/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  234. package/.next/server/app/api/v1/messages/route.js +1 -1
  235. package/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  236. package/.next/server/app/api/v1/models/[...model]/route.js +1 -1
  237. package/.next/server/app/api/v1/models/[...model]/route.js.nft.json +1 -1
  238. package/.next/server/app/api/v1/models/info/route.js +1 -1
  239. package/.next/server/app/api/v1/models/info/route.js.nft.json +1 -1
  240. package/.next/server/app/api/v1/models/route.js +1 -1
  241. package/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  242. package/.next/server/app/api/v1/responses/compact/route.js +1 -1
  243. package/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  244. package/.next/server/app/api/v1/responses/route.js +1 -1
  245. package/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  246. package/.next/server/app/api/v1/route.js +1 -1
  247. package/.next/server/app/api/v1/route.js.nft.json +1 -1
  248. package/.next/server/app/api/v1/search/route.js +1 -1
  249. package/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  250. package/.next/server/app/api/v1/systemone/route.js +1 -1
  251. package/.next/server/app/api/v1/systemone/route.js.nft.json +1 -1
  252. package/.next/server/app/api/v1/videos/[id]/route.js +1 -1
  253. package/.next/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  254. package/.next/server/app/api/v1/videos/edits/route.js +1 -1
  255. package/.next/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  256. package/.next/server/app/api/v1/videos/extensions/route.js +1 -1
  257. package/.next/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  258. package/.next/server/app/api/v1/videos/generations/route.js +1 -1
  259. package/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  260. package/.next/server/app/api/v1/web/fetch/route.js +1 -1
  261. package/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  262. package/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  263. package/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  264. package/.next/server/app/api/v1beta/models/route.js +1 -1
  265. package/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  266. package/.next/server/app/api/version/route.js +1 -1
  267. package/.next/server/app/api/version/shutdown/route.js +1 -1
  268. package/.next/server/app/api/version/update/route.js +1 -1
  269. package/.next/server/app/callback/page.js +1 -1
  270. package/.next/server/app/callback/page.js.nft.json +1 -1
  271. package/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  272. package/.next/server/app/callback.html +1 -1
  273. package/.next/server/app/callback.rsc +6 -6
  274. package/.next/server/app/callback.segments/_full.segment.rsc +6 -6
  275. package/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  276. package/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +6 -6
  277. package/.next/server/app/dashboard/cli-tools.html +1 -1
  278. package/.next/server/app/dashboard/cli-tools.rsc +9 -9
  279. package/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +8 -8
  280. package/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +9 -9
  281. package/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  282. package/.next/server/app/dashboard/combos.html +1 -1
  283. package/.next/server/app/dashboard/combos.rsc +8 -8
  284. package/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +8 -8
  285. package/.next/server/app/dashboard/combos.segments/_full.segment.rsc +8 -8
  286. package/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  287. package/.next/server/app/dashboard/endpoint.html +1 -1
  288. package/.next/server/app/dashboard/endpoint.rsc +9 -9
  289. package/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +8 -8
  290. package/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +9 -9
  291. package/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  292. package/.next/server/app/dashboard/media-providers/systemone.html +1 -1
  293. package/.next/server/app/dashboard/media-providers/systemone.rsc +8 -8
  294. package/.next/server/app/dashboard/media-providers/systemone.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/systemone/__PAGE__.segment.rsc +8 -8
  295. package/.next/server/app/dashboard/media-providers/systemone.segments/_full.segment.rsc +8 -8
  296. package/.next/server/app/dashboard/media-providers/systemone.segments/_tree.segment.rsc +2 -2
  297. package/.next/server/app/dashboard/profile.html +1 -1
  298. package/.next/server/app/dashboard/profile.rsc +8 -8
  299. package/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +8 -8
  300. package/.next/server/app/dashboard/profile.segments/_full.segment.rsc +8 -8
  301. package/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  302. package/.next/server/app/dashboard/providers/new.html +1 -1
  303. package/.next/server/app/dashboard/providers/new.rsc +8 -8
  304. package/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +8 -8
  305. package/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +8 -8
  306. package/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  307. package/.next/server/app/dashboard/providers.html +1 -1
  308. package/.next/server/app/dashboard/providers.rsc +8 -8
  309. package/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +8 -8
  310. package/.next/server/app/dashboard/providers.segments/_full.segment.rsc +8 -8
  311. package/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  312. package/.next/server/app/dashboard/proxy-pools.html +1 -1
  313. package/.next/server/app/dashboard/proxy-pools.rsc +8 -8
  314. package/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +8 -8
  315. package/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +8 -8
  316. package/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  317. package/.next/server/app/dashboard/pxpipe.html +1 -1
  318. package/.next/server/app/dashboard/pxpipe.rsc +7 -7
  319. package/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +7 -7
  320. package/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +7 -7
  321. package/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +2 -2
  322. package/.next/server/app/dashboard/quota.html +2 -2
  323. package/.next/server/app/dashboard/quota.rsc +9 -9
  324. package/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +9 -9
  325. package/.next/server/app/dashboard/quota.segments/_full.segment.rsc +9 -9
  326. package/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  327. package/.next/server/app/dashboard/settings/pricing/page.js +1 -1
  328. package/.next/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  329. package/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  330. package/.next/server/app/dashboard/settings/pricing.html +1 -1
  331. package/.next/server/app/dashboard/settings/pricing.rsc +6 -6
  332. package/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +6 -6
  333. package/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  334. package/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +6 -6
  335. package/.next/server/app/dashboard/token-saver.html +1 -1
  336. package/.next/server/app/dashboard/token-saver.rsc +7 -7
  337. package/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +7 -7
  338. package/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +7 -7
  339. package/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +2 -2
  340. package/.next/server/app/dashboard/usage.html +2 -2
  341. package/.next/server/app/dashboard/usage.rsc +8 -8
  342. package/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +8 -8
  343. package/.next/server/app/dashboard/usage.segments/_full.segment.rsc +8 -8
  344. package/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  345. package/.next/server/app/dashboard.html +1 -1
  346. package/.next/server/app/dashboard.rsc +9 -9
  347. package/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +8 -8
  348. package/.next/server/app/dashboard.segments/_full.segment.rsc +9 -9
  349. package/.next/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  350. package/.next/server/app/index.html +1 -1
  351. package/.next/server/app/index.rsc +6 -6
  352. package/.next/server/app/index.segments/__PAGE__.segment.rsc +6 -6
  353. package/.next/server/app/index.segments/_full.segment.rsc +6 -6
  354. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  355. package/.next/server/app/landing/page.js +1 -1
  356. package/.next/server/app/landing/page.js.nft.json +1 -1
  357. package/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  358. package/.next/server/app/landing.html +1 -1
  359. package/.next/server/app/landing.rsc +7 -7
  360. package/.next/server/app/landing.segments/_full.segment.rsc +7 -7
  361. package/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  362. package/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +7 -7
  363. package/.next/server/app/login/page.js +1 -1
  364. package/.next/server/app/login/page.js.nft.json +1 -1
  365. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  366. package/.next/server/app/login.html +1 -1
  367. package/.next/server/app/login.rsc +6 -6
  368. package/.next/server/app/login.segments/_full.segment.rsc +6 -6
  369. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  370. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +6 -6
  371. package/.next/server/app/manifest.webmanifest/route.js +1 -1
  372. package/.next/server/app/page.js +1 -1
  373. package/.next/server/app/page.js.nft.json +1 -1
  374. package/.next/server/app/page_client-reference-manifest.js +1 -1
  375. package/.next/server/app-paths-manifest.json +4 -5
  376. package/.next/server/chunks/1018.js +1 -0
  377. package/.next/server/chunks/1412.js +1 -1
  378. package/.next/server/chunks/1564.js +1 -1
  379. package/.next/server/chunks/1649.js +1 -0
  380. package/.next/server/chunks/1751.js +1 -0
  381. package/.next/server/chunks/1842.js +1 -0
  382. package/.next/server/chunks/2143.js +1 -1
  383. package/.next/server/chunks/2282.js +11 -13
  384. package/.next/server/chunks/{2706.js → 2338.js} +1 -1
  385. package/.next/server/chunks/2339.js +1 -1
  386. package/.next/server/chunks/2355.js +1 -0
  387. package/.next/server/chunks/2531.js +1 -0
  388. package/.next/server/chunks/2801.js +1 -1
  389. package/.next/server/chunks/31.js +1 -0
  390. package/.next/server/chunks/3671.js +1 -0
  391. package/.next/server/chunks/4301.js +1 -1
  392. package/.next/server/chunks/4364.js +1 -1
  393. package/.next/server/chunks/4915.js +1 -1
  394. package/.next/server/chunks/537.js +5 -9
  395. package/.next/server/chunks/6343.js +6 -6
  396. package/.next/server/chunks/6617.js +9 -0
  397. package/.next/server/chunks/6823.js +1 -1
  398. package/.next/server/chunks/6971.js +1 -0
  399. package/.next/server/chunks/7019.js +2 -2
  400. package/.next/server/chunks/7156.js +1 -1
  401. package/.next/server/chunks/7314.js +1 -0
  402. package/.next/server/chunks/7337.js +1 -0
  403. package/.next/server/chunks/7459.js +3 -3
  404. package/.next/server/chunks/7591.js +1 -0
  405. package/.next/server/chunks/7904.js +1 -0
  406. package/.next/server/chunks/8567.js +1 -1
  407. package/.next/server/chunks/8923.js +1 -1
  408. package/.next/server/chunks/9287.js +1 -1
  409. package/.next/server/chunks/9429.js +1 -1
  410. package/.next/server/chunks/9603.js +1 -1
  411. package/.next/server/instrumentation.js +1 -1
  412. package/.next/server/instrumentation.js.nft.json +1 -1
  413. package/.next/server/middleware-build-manifest.js +1 -1
  414. package/.next/server/pages/404.html +1 -1
  415. package/.next/server/pages/500.html +1 -1
  416. package/.next/server/server-reference-manifest.js +1 -1
  417. package/.next/server/server-reference-manifest.json +1 -1
  418. package/.next/static/EsP8l_VAPRRfBiiJPJqQe/_buildManifest.js +1 -0
  419. package/.next/static/chunks/1278-77eb0511471e063a.js +1 -0
  420. package/.next/static/chunks/1660-c4c1cfa3cb7c9b2e.js +1 -0
  421. package/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-c913b130003c1672.js → page-dd70f2cee9c910a9.js} +3 -3
  422. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-361bb54d1d354b4c.js +1 -0
  423. package/.next/static/chunks/app/(dashboard)/dashboard/media-providers/systemone/[id]/{page-7340dad2b87640cf.js → page-a5e128afd334522f.js} +2 -2
  424. package/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-a41e2c8e26eb5956.js +21 -0
  425. package/.next/static/chunks/app/(dashboard)/dashboard/providers/page-feb4f47de991b067.js +1 -0
  426. package/.next/static/chunks/app/(dashboard)/dashboard/quota/page-f718869c90907a6a.js +1 -0
  427. package/.next/static/chunks/app/_global-error/page-f46617319221a4f8.js +1 -0
  428. package/.next/static/chunks/app/api/auth/login/route-f46617319221a4f8.js +1 -0
  429. package/.next/static/chunks/app/api/auth/logout/route-f46617319221a4f8.js +1 -0
  430. package/.next/static/chunks/app/api/auth/oidc/callback/route-f46617319221a4f8.js +1 -0
  431. package/.next/static/chunks/app/api/auth/oidc/start/route-f46617319221a4f8.js +1 -0
  432. package/.next/static/chunks/app/api/auth/oidc/test/route-f46617319221a4f8.js +1 -0
  433. package/.next/static/chunks/app/api/auth/reset-password/route-f46617319221a4f8.js +1 -0
  434. package/.next/static/chunks/app/api/auth/saml/acs/route-f46617319221a4f8.js +1 -0
  435. package/.next/static/chunks/app/api/auth/saml/metadata/route-f46617319221a4f8.js +1 -0
  436. package/.next/static/chunks/app/api/auth/saml/start/route-f46617319221a4f8.js +1 -0
  437. package/.next/static/chunks/app/api/auth/saml/test/route-f46617319221a4f8.js +1 -0
  438. package/.next/static/chunks/app/api/auth/status/route-f46617319221a4f8.js +1 -0
  439. package/.next/static/chunks/app/api/changelog/route-f46617319221a4f8.js +1 -0
  440. package/.next/static/chunks/app/api/cli-tools/all-statuses/route-f46617319221a4f8.js +1 -0
  441. package/.next/static/chunks/app/api/cli-tools/claude-settings/route-f46617319221a4f8.js +1 -0
  442. package/.next/static/chunks/app/api/cli-tools/codex-settings/route-f46617319221a4f8.js +1 -0
  443. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-f46617319221a4f8.js +1 -0
  444. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-f46617319221a4f8.js +1 -0
  445. package/.next/static/chunks/app/api/cli-tools/cowork-settings/route-f46617319221a4f8.js +1 -0
  446. package/.next/static/chunks/app/api/cli-tools/dsh-settings/route-f46617319221a4f8.js +1 -0
  447. package/.next/static/chunks/app/api/cli-tools/opencode-settings/route-f46617319221a4f8.js +1 -0
  448. package/.next/static/chunks/app/api/combos/[id]/route-f46617319221a4f8.js +1 -0
  449. package/.next/static/chunks/app/api/combos/route-f46617319221a4f8.js +1 -0
  450. package/.next/static/chunks/app/api/headroom/extras/route-f46617319221a4f8.js +1 -0
  451. package/.next/static/chunks/app/api/headroom/proxy/[...path]/route-f46617319221a4f8.js +1 -0
  452. package/.next/static/chunks/app/api/headroom/restart/route-f46617319221a4f8.js +1 -0
  453. package/.next/static/chunks/app/api/headroom/start/route-f46617319221a4f8.js +1 -0
  454. package/.next/static/chunks/app/api/headroom/status/route-f46617319221a4f8.js +1 -0
  455. package/.next/static/chunks/app/api/headroom/stop/route-f46617319221a4f8.js +1 -0
  456. package/.next/static/chunks/app/api/health/route-f46617319221a4f8.js +1 -0
  457. package/.next/static/chunks/app/api/init/route-f46617319221a4f8.js +1 -0
  458. package/.next/static/chunks/app/api/keys/[id]/route-f46617319221a4f8.js +1 -0
  459. package/.next/static/chunks/app/api/keys/route-f46617319221a4f8.js +1 -0
  460. package/.next/static/chunks/app/api/locale/route-f46617319221a4f8.js +1 -0
  461. package/.next/static/chunks/app/api/mcp/[plugin]/message/route-f46617319221a4f8.js +1 -0
  462. package/.next/static/chunks/app/api/mcp/[plugin]/sse/route-f46617319221a4f8.js +1 -0
  463. package/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-f46617319221a4f8.js +1 -0
  464. package/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-f46617319221a4f8.js +1 -0
  465. package/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-f46617319221a4f8.js +1 -0
  466. package/.next/static/chunks/app/api/media-providers/tts/voices/route-f46617319221a4f8.js +1 -0
  467. package/.next/static/chunks/app/api/models/alias/route-f46617319221a4f8.js +1 -0
  468. package/.next/static/chunks/app/api/models/availability/route-f46617319221a4f8.js +1 -0
  469. package/.next/static/chunks/app/api/models/catalog-sync/route-f46617319221a4f8.js +1 -0
  470. package/.next/static/chunks/app/api/models/custom/route-f46617319221a4f8.js +1 -0
  471. package/.next/static/chunks/app/api/models/disabled/route-f46617319221a4f8.js +1 -0
  472. package/.next/static/chunks/app/api/models/route-f46617319221a4f8.js +1 -0
  473. package/.next/static/chunks/app/api/models/test/route-f46617319221a4f8.js +1 -0
  474. package/.next/static/chunks/app/api/oauth/[provider]/[action]/route-f46617319221a4f8.js +1 -0
  475. package/.next/static/chunks/app/api/oauth/codex/bulk-import/route-f46617319221a4f8.js +1 -0
  476. package/.next/static/chunks/app/api/oauth/codex/import-token/route-f46617319221a4f8.js +1 -0
  477. package/.next/static/chunks/app/api/oauth/cursor/auto-import/route-f46617319221a4f8.js +1 -0
  478. package/.next/static/chunks/app/api/oauth/cursor/import/route-f46617319221a4f8.js +1 -0
  479. package/.next/static/chunks/app/api/oauth/gitlab/pat/route-f46617319221a4f8.js +1 -0
  480. package/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-f46617319221a4f8.js +1 -0
  481. package/.next/static/chunks/app/api/oauth/iflow/cookie/route-f46617319221a4f8.js +1 -0
  482. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-f46617319221a4f8.js +1 -0
  483. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-f46617319221a4f8.js +1 -0
  484. package/.next/static/chunks/app/api/pricing/route-f46617319221a4f8.js +1 -0
  485. package/.next/static/chunks/app/api/provider-nodes/[id]/route-f46617319221a4f8.js +1 -0
  486. package/.next/static/chunks/app/api/provider-nodes/route-f46617319221a4f8.js +1 -0
  487. package/.next/static/chunks/app/api/provider-nodes/validate/route-f46617319221a4f8.js +1 -0
  488. package/.next/static/chunks/app/api/providers/[id]/models/route-f46617319221a4f8.js +1 -0
  489. package/.next/static/chunks/app/api/providers/[id]/route-f46617319221a4f8.js +1 -0
  490. package/.next/static/chunks/app/api/providers/[id]/test/route-f46617319221a4f8.js +1 -0
  491. package/.next/static/chunks/app/api/providers/[id]/test-models/route-f46617319221a4f8.js +1 -0
  492. package/.next/static/chunks/app/api/providers/client/route-f46617319221a4f8.js +1 -0
  493. package/.next/static/chunks/app/api/providers/kilo/free-models/route-f46617319221a4f8.js +1 -0
  494. package/.next/static/chunks/app/api/providers/route-f46617319221a4f8.js +1 -0
  495. package/.next/static/chunks/app/api/providers/suggested-models/route-f46617319221a4f8.js +1 -0
  496. package/.next/static/chunks/app/api/providers/test-batch/route-f46617319221a4f8.js +1 -0
  497. package/.next/static/chunks/app/api/providers/validate/route-f46617319221a4f8.js +1 -0
  498. package/.next/static/chunks/app/api/proxy-pools/[id]/route-f46617319221a4f8.js +1 -0
  499. package/.next/static/chunks/app/api/proxy-pools/[id]/test/route-f46617319221a4f8.js +1 -0
  500. package/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-f46617319221a4f8.js +1 -0
  501. package/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-f46617319221a4f8.js +1 -0
  502. package/.next/static/chunks/app/api/proxy-pools/route-f46617319221a4f8.js +1 -0
  503. package/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-f46617319221a4f8.js +1 -0
  504. package/.next/static/chunks/app/api/pxpipe/health/route-f46617319221a4f8.js +1 -0
  505. package/.next/static/chunks/app/api/pxpipe/install/route-f46617319221a4f8.js +1 -0
  506. package/.next/static/chunks/app/api/pxpipe/logs/route-f46617319221a4f8.js +1 -0
  507. package/.next/static/chunks/app/api/pxpipe/restart/route-f46617319221a4f8.js +1 -0
  508. package/.next/static/chunks/app/api/pxpipe/start/route-f46617319221a4f8.js +1 -0
  509. package/.next/static/chunks/app/api/pxpipe/stats/route-f46617319221a4f8.js +1 -0
  510. package/.next/static/chunks/app/api/pxpipe/status/route-f46617319221a4f8.js +1 -0
  511. package/.next/static/chunks/app/api/pxpipe/stop/route-f46617319221a4f8.js +1 -0
  512. package/.next/static/chunks/app/api/settings/database/route-f46617319221a4f8.js +1 -0
  513. package/.next/static/chunks/app/api/settings/proxy-test/route-f46617319221a4f8.js +1 -0
  514. package/.next/static/chunks/app/api/settings/require-login/route-f46617319221a4f8.js +1 -0
  515. package/.next/static/chunks/app/api/settings/route-f46617319221a4f8.js +1 -0
  516. package/.next/static/chunks/app/api/shutdown/route-f46617319221a4f8.js +1 -0
  517. package/.next/static/chunks/app/api/tags/route-f46617319221a4f8.js +1 -0
  518. package/.next/static/chunks/app/api/translator/console-logs/route-f46617319221a4f8.js +1 -0
  519. package/.next/static/chunks/app/api/translator/console-logs/stream/route-f46617319221a4f8.js +1 -0
  520. package/.next/static/chunks/app/api/translator/load/route-f46617319221a4f8.js +1 -0
  521. package/.next/static/chunks/app/api/translator/save/route-f46617319221a4f8.js +1 -0
  522. package/.next/static/chunks/app/api/translator/send/route-f46617319221a4f8.js +1 -0
  523. package/.next/static/chunks/app/api/translator/translate/route-f46617319221a4f8.js +1 -0
  524. package/.next/static/chunks/app/api/tunnel/disable/route-f46617319221a4f8.js +1 -0
  525. package/.next/static/chunks/app/api/tunnel/enable/route-f46617319221a4f8.js +1 -0
  526. package/.next/static/chunks/app/api/tunnel/status/route-f46617319221a4f8.js +1 -0
  527. package/.next/static/chunks/app/api/tunnel/tailscale-check/route-f46617319221a4f8.js +1 -0
  528. package/.next/static/chunks/app/api/tunnel/tailscale-disable/route-f46617319221a4f8.js +1 -0
  529. package/.next/static/chunks/app/api/tunnel/tailscale-enable/route-f46617319221a4f8.js +1 -0
  530. package/.next/static/chunks/app/api/tunnel/tailscale-install/route-f46617319221a4f8.js +1 -0
  531. package/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-f46617319221a4f8.js +1 -0
  532. package/.next/static/chunks/app/api/usage/[connectionId]/route-f46617319221a4f8.js +1 -0
  533. package/.next/static/chunks/app/api/usage/chart/route-f46617319221a4f8.js +1 -0
  534. package/.next/static/chunks/app/api/usage/health/route-f46617319221a4f8.js +1 -0
  535. package/.next/static/chunks/app/api/usage/history/route-f46617319221a4f8.js +1 -0
  536. package/.next/static/chunks/app/api/usage/logs/route-f46617319221a4f8.js +1 -0
  537. package/.next/static/chunks/app/api/usage/providers/route-f46617319221a4f8.js +1 -0
  538. package/.next/static/chunks/app/api/usage/request-details/route-f46617319221a4f8.js +1 -0
  539. package/.next/static/chunks/app/api/usage/request-logs/route-f46617319221a4f8.js +1 -0
  540. package/.next/static/chunks/app/api/usage/stats/route-f46617319221a4f8.js +1 -0
  541. package/.next/static/chunks/app/api/usage/stream/route-f46617319221a4f8.js +1 -0
  542. package/.next/static/chunks/app/api/v1/api/chat/route-f46617319221a4f8.js +1 -0
  543. package/.next/static/chunks/app/api/v1/audio/speech/route-f46617319221a4f8.js +1 -0
  544. package/.next/static/chunks/app/api/v1/audio/transcriptions/route-f46617319221a4f8.js +1 -0
  545. package/.next/static/chunks/app/api/v1/audio/voices/route-f46617319221a4f8.js +1 -0
  546. package/.next/static/chunks/app/api/v1/chat/completions/route-f46617319221a4f8.js +1 -0
  547. package/.next/static/chunks/app/api/v1/embeddings/route-f46617319221a4f8.js +1 -0
  548. package/.next/static/chunks/app/api/v1/images/generations/route-f46617319221a4f8.js +1 -0
  549. package/.next/static/chunks/app/api/v1/messages/count_tokens/route-f46617319221a4f8.js +1 -0
  550. package/.next/static/chunks/app/api/v1/messages/route-f46617319221a4f8.js +1 -0
  551. package/.next/static/chunks/app/api/v1/models/[...model]/route-f46617319221a4f8.js +1 -0
  552. package/.next/static/chunks/app/api/v1/models/info/route-f46617319221a4f8.js +1 -0
  553. package/.next/static/chunks/app/api/v1/models/route-f46617319221a4f8.js +1 -0
  554. package/.next/static/chunks/app/api/v1/responses/compact/route-f46617319221a4f8.js +1 -0
  555. package/.next/static/chunks/app/api/v1/responses/route-f46617319221a4f8.js +1 -0
  556. package/.next/static/chunks/app/api/v1/route-f46617319221a4f8.js +1 -0
  557. package/.next/static/chunks/app/api/v1/search/route-f46617319221a4f8.js +1 -0
  558. package/.next/static/chunks/app/api/v1/systemone/route-f46617319221a4f8.js +1 -0
  559. package/.next/static/chunks/app/api/v1/videos/[id]/route-f46617319221a4f8.js +1 -0
  560. package/.next/static/chunks/app/api/v1/videos/edits/route-f46617319221a4f8.js +1 -0
  561. package/.next/static/chunks/app/api/v1/videos/extensions/route-f46617319221a4f8.js +1 -0
  562. package/.next/static/chunks/app/api/v1/videos/generations/route-f46617319221a4f8.js +1 -0
  563. package/.next/static/chunks/app/api/v1/web/fetch/route-f46617319221a4f8.js +1 -0
  564. package/.next/static/chunks/app/api/v1beta/models/[...path]/route-f46617319221a4f8.js +1 -0
  565. package/.next/static/chunks/app/api/v1beta/models/route-f46617319221a4f8.js +1 -0
  566. package/.next/static/chunks/app/api/version/route-f46617319221a4f8.js +1 -0
  567. package/.next/static/chunks/app/api/version/shutdown/route-f46617319221a4f8.js +1 -0
  568. package/.next/static/chunks/app/api/version/update/route-f46617319221a4f8.js +1 -0
  569. package/.next/static/chunks/app/landing/{page-a76ba2642bd02bf5.js → page-1c5aa0e05b21c61a.js} +1 -1
  570. package/.next/static/chunks/app/manifest.webmanifest/route-f46617319221a4f8.js +1 -0
  571. package/.next/static/chunks/app/page-f46617319221a4f8.js +1 -0
  572. package/.next/static/chunks/next/dist/client/components/builtin/app-error-f46617319221a4f8.js +1 -0
  573. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-f46617319221a4f8.js +1 -0
  574. package/.next/static/chunks/next/dist/client/components/builtin/not-found-f46617319221a4f8.js +1 -0
  575. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-f46617319221a4f8.js +1 -0
  576. package/.next/static/css/e5f3812777d2d9e9.css +1 -0
  577. package/CHANGELOG.md +20 -0
  578. package/open-sse/AGENTS.md +1 -1
  579. package/open-sse/config/errorConfig.js +4 -0
  580. package/open-sse/config/opencodeErrors.js +59 -0
  581. package/open-sse/config/opencodeGo.js +34 -0
  582. package/open-sse/config/providerModels.js +13 -0
  583. package/open-sse/config/providers.js +0 -11
  584. package/open-sse/executors/base.js +4 -1
  585. package/open-sse/executors/index.js +0 -3
  586. package/open-sse/executors/opencode-go.js +28 -103
  587. package/open-sse/executors/opencode-zen.js +31 -105
  588. package/open-sse/executors/opencode.js +40 -106
  589. package/open-sse/executors/opencodeShared.js +146 -0
  590. package/open-sse/executors/zed.js +307 -70
  591. package/open-sse/handlers/chatCore/claudeMessageBody.js +357 -0
  592. package/open-sse/handlers/chatCore/nonStreamingHandler.js +36 -110
  593. package/open-sse/handlers/chatCore/sseToJsonHandler.js +147 -4
  594. package/open-sse/handlers/chatCore.js +48 -12
  595. package/open-sse/handlers/embeddingProviders/index.js +0 -1
  596. package/open-sse/handlers/imageProviders/index.js +0 -4
  597. package/open-sse/handlers/imageProviders/openai.js +1 -1
  598. package/open-sse/handlers/search/callers.js +0 -28
  599. package/open-sse/handlers/search/chatSearch.js +1 -57
  600. package/open-sse/handlers/search/normalizers.js +0 -49
  601. package/open-sse/handlers/sttCore.js +0 -17
  602. package/open-sse/handlers/ttsCore.js +1 -1
  603. package/open-sse/handlers/ttsProviders/genericFormats.js +0 -35
  604. package/open-sse/providers/registry/index.js +14 -53
  605. package/open-sse/providers/registry/opencode-go.js +15 -6
  606. package/open-sse/providers/registry/opencode-zen.js +25 -9
  607. package/open-sse/providers/registry/opencode.js +5 -3
  608. package/open-sse/services/accountFallback.js +1 -0
  609. package/open-sse/services/opencodeGoProbe.js +39 -0
  610. package/open-sse/services/usage/glm.js +6 -12
  611. package/open-sse/services/usage/misc.js +1 -92
  612. package/open-sse/services/usage/zed.js +18 -3
  613. package/open-sse/services/usage.js +2 -14
  614. package/open-sse/shared/zedAuth.js +53 -5
  615. package/open-sse/translator/concerns/classifier.js +70 -0
  616. package/open-sse/translator/concerns/thinkingUnified.js +18 -6
  617. package/open-sse/translator/formats/claude.js +47 -19
  618. package/open-sse/translator/request/claude-to-openai.js +20 -0
  619. package/open-sse/translator/request/openai-to-claude.js +11 -0
  620. package/open-sse/utils/error.js +37 -3
  621. package/open-sse/utils/opencodeErrors.js +63 -0
  622. package/open-sse/utils/opencodeFingerprint.js +122 -23
  623. package/open-sse/utils/opencodeFreeUsage.js +57 -12
  624. package/open-sse/utils/usageTracking.js +5 -3
  625. package/package.json +2 -2
  626. package/src/app/(dashboard)/dashboard/cli-tools/components/cards/ClaudeToolCard.tsx +12 -0
  627. package/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.tsx +10 -0
  628. package/src/app/(dashboard)/dashboard/providers/[id]/ModelRow.tsx +14 -0
  629. package/src/app/(dashboard)/dashboard/providers/[id]/OpenCodeGoConnectionCard.tsx +113 -0
  630. package/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +11 -2
  631. package/src/app/(dashboard)/dashboard/providers/components/ModelsCard.tsx +14 -5
  632. package/src/app/(dashboard)/dashboard/providers/page.tsx +33 -45
  633. package/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.ts +0 -33
  634. package/src/app/api/cli-tools/claude-settings/route.js +10 -0
  635. package/src/app/api/oauth/[provider]/[action]/route.js +2 -0
  636. package/src/app/api/providers/[id]/models/route.js +0 -3
  637. package/src/app/api/providers/[id]/test/testUtils.js +18 -103
  638. package/src/app/api/providers/validate/route.js +9 -37
  639. package/src/app/api/usage/[connectionId]/route.js +1 -1
  640. package/src/components/app-sidebar.tsx +1 -0
  641. package/src/lib/modelCatalog/sync.js +2 -4
  642. package/src/shared/components/EditConnectionModal.tsx +1 -1
  643. package/src/shared/constants/cliTools.js +9 -9
  644. package/src/shared/constants/models.ts +2 -0
  645. package/src/shared/constants/ttsProviders.ts +0 -21
  646. package/src/shared/utils/providerIcon.ts +0 -12
  647. package/src/sse/services/model.ts +2 -12
  648. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js +0 -1
  649. package/.next/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +0 -1
  650. package/.next/server/app/api/media-providers/tts/minimax/voices/route_client-reference-manifest.js +0 -1
  651. package/.next/server/chunks/1011.js +0 -1
  652. package/.next/server/chunks/1194.js +0 -1
  653. package/.next/server/chunks/1289.js +0 -1
  654. package/.next/server/chunks/1633.js +0 -1
  655. package/.next/server/chunks/3425.js +0 -1
  656. package/.next/server/chunks/4129.js +0 -1
  657. package/.next/server/chunks/5496.js +0 -1
  658. package/.next/server/chunks/5761.js +0 -1
  659. package/.next/server/chunks/6056.js +0 -1
  660. package/.next/server/chunks/7816.js +0 -1
  661. package/.next/server/chunks/8940.js +0 -1
  662. package/.next/static/chunks/1278-1bef1ffb32ea7f41.js +0 -1
  663. package/.next/static/chunks/1660-25564899e7912146.js +0 -1
  664. package/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-58a29f3cb409597a.js +0 -1
  665. package/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-fab6f4b4cccc1a6f.js +0 -21
  666. package/.next/static/chunks/app/(dashboard)/dashboard/providers/page-9054f870a5e0f5c6.js +0 -1
  667. package/.next/static/chunks/app/(dashboard)/dashboard/quota/page-61780f0a2b494680.js +0 -1
  668. package/.next/static/chunks/app/_global-error/page-9a2a13ac6b89ba91.js +0 -1
  669. package/.next/static/chunks/app/api/auth/login/route-9a2a13ac6b89ba91.js +0 -1
  670. package/.next/static/chunks/app/api/auth/logout/route-9a2a13ac6b89ba91.js +0 -1
  671. package/.next/static/chunks/app/api/auth/oidc/callback/route-9a2a13ac6b89ba91.js +0 -1
  672. package/.next/static/chunks/app/api/auth/oidc/start/route-9a2a13ac6b89ba91.js +0 -1
  673. package/.next/static/chunks/app/api/auth/oidc/test/route-9a2a13ac6b89ba91.js +0 -1
  674. package/.next/static/chunks/app/api/auth/reset-password/route-9a2a13ac6b89ba91.js +0 -1
  675. package/.next/static/chunks/app/api/auth/saml/acs/route-9a2a13ac6b89ba91.js +0 -1
  676. package/.next/static/chunks/app/api/auth/saml/metadata/route-9a2a13ac6b89ba91.js +0 -1
  677. package/.next/static/chunks/app/api/auth/saml/start/route-9a2a13ac6b89ba91.js +0 -1
  678. package/.next/static/chunks/app/api/auth/saml/test/route-9a2a13ac6b89ba91.js +0 -1
  679. package/.next/static/chunks/app/api/auth/status/route-9a2a13ac6b89ba91.js +0 -1
  680. package/.next/static/chunks/app/api/changelog/route-9a2a13ac6b89ba91.js +0 -1
  681. package/.next/static/chunks/app/api/cli-tools/all-statuses/route-9a2a13ac6b89ba91.js +0 -1
  682. package/.next/static/chunks/app/api/cli-tools/claude-settings/route-9a2a13ac6b89ba91.js +0 -1
  683. package/.next/static/chunks/app/api/cli-tools/codex-settings/route-9a2a13ac6b89ba91.js +0 -1
  684. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-9a2a13ac6b89ba91.js +0 -1
  685. package/.next/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-9a2a13ac6b89ba91.js +0 -1
  686. package/.next/static/chunks/app/api/cli-tools/cowork-settings/route-9a2a13ac6b89ba91.js +0 -1
  687. package/.next/static/chunks/app/api/cli-tools/dsh-settings/route-9a2a13ac6b89ba91.js +0 -1
  688. package/.next/static/chunks/app/api/cli-tools/opencode-settings/route-9a2a13ac6b89ba91.js +0 -1
  689. package/.next/static/chunks/app/api/combos/[id]/route-9a2a13ac6b89ba91.js +0 -1
  690. package/.next/static/chunks/app/api/combos/route-9a2a13ac6b89ba91.js +0 -1
  691. package/.next/static/chunks/app/api/headroom/extras/route-9a2a13ac6b89ba91.js +0 -1
  692. package/.next/static/chunks/app/api/headroom/proxy/[...path]/route-9a2a13ac6b89ba91.js +0 -1
  693. package/.next/static/chunks/app/api/headroom/restart/route-9a2a13ac6b89ba91.js +0 -1
  694. package/.next/static/chunks/app/api/headroom/start/route-9a2a13ac6b89ba91.js +0 -1
  695. package/.next/static/chunks/app/api/headroom/status/route-9a2a13ac6b89ba91.js +0 -1
  696. package/.next/static/chunks/app/api/headroom/stop/route-9a2a13ac6b89ba91.js +0 -1
  697. package/.next/static/chunks/app/api/health/route-9a2a13ac6b89ba91.js +0 -1
  698. package/.next/static/chunks/app/api/init/route-9a2a13ac6b89ba91.js +0 -1
  699. package/.next/static/chunks/app/api/keys/[id]/route-9a2a13ac6b89ba91.js +0 -1
  700. package/.next/static/chunks/app/api/keys/route-9a2a13ac6b89ba91.js +0 -1
  701. package/.next/static/chunks/app/api/locale/route-9a2a13ac6b89ba91.js +0 -1
  702. package/.next/static/chunks/app/api/mcp/[plugin]/message/route-9a2a13ac6b89ba91.js +0 -1
  703. package/.next/static/chunks/app/api/mcp/[plugin]/sse/route-9a2a13ac6b89ba91.js +0 -1
  704. package/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-9a2a13ac6b89ba91.js +0 -1
  705. package/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-9a2a13ac6b89ba91.js +0 -1
  706. package/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-9a2a13ac6b89ba91.js +0 -1
  707. package/.next/static/chunks/app/api/media-providers/tts/minimax/voices/route-9a2a13ac6b89ba91.js +0 -1
  708. package/.next/static/chunks/app/api/media-providers/tts/voices/route-9a2a13ac6b89ba91.js +0 -1
  709. package/.next/static/chunks/app/api/models/alias/route-9a2a13ac6b89ba91.js +0 -1
  710. package/.next/static/chunks/app/api/models/availability/route-9a2a13ac6b89ba91.js +0 -1
  711. package/.next/static/chunks/app/api/models/catalog-sync/route-9a2a13ac6b89ba91.js +0 -1
  712. package/.next/static/chunks/app/api/models/custom/route-9a2a13ac6b89ba91.js +0 -1
  713. package/.next/static/chunks/app/api/models/disabled/route-9a2a13ac6b89ba91.js +0 -1
  714. package/.next/static/chunks/app/api/models/route-9a2a13ac6b89ba91.js +0 -1
  715. package/.next/static/chunks/app/api/models/test/route-9a2a13ac6b89ba91.js +0 -1
  716. package/.next/static/chunks/app/api/oauth/[provider]/[action]/route-9a2a13ac6b89ba91.js +0 -1
  717. package/.next/static/chunks/app/api/oauth/codex/bulk-import/route-9a2a13ac6b89ba91.js +0 -1
  718. package/.next/static/chunks/app/api/oauth/codex/import-token/route-9a2a13ac6b89ba91.js +0 -1
  719. package/.next/static/chunks/app/api/oauth/cursor/auto-import/route-9a2a13ac6b89ba91.js +0 -1
  720. package/.next/static/chunks/app/api/oauth/cursor/import/route-9a2a13ac6b89ba91.js +0 -1
  721. package/.next/static/chunks/app/api/oauth/gitlab/pat/route-9a2a13ac6b89ba91.js +0 -1
  722. package/.next/static/chunks/app/api/oauth/grok-cli/bulk-import/route-9a2a13ac6b89ba91.js +0 -1
  723. package/.next/static/chunks/app/api/oauth/iflow/cookie/route-9a2a13ac6b89ba91.js +0 -1
  724. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/api-key/route-9a2a13ac6b89ba91.js +0 -1
  725. package/.next/static/chunks/app/api/oauth/xiaomi-mimo/auto-import/route-9a2a13ac6b89ba91.js +0 -1
  726. package/.next/static/chunks/app/api/pricing/route-9a2a13ac6b89ba91.js +0 -1
  727. package/.next/static/chunks/app/api/provider-nodes/[id]/route-9a2a13ac6b89ba91.js +0 -1
  728. package/.next/static/chunks/app/api/provider-nodes/route-9a2a13ac6b89ba91.js +0 -1
  729. package/.next/static/chunks/app/api/provider-nodes/validate/route-9a2a13ac6b89ba91.js +0 -1
  730. package/.next/static/chunks/app/api/providers/[id]/models/route-9a2a13ac6b89ba91.js +0 -1
  731. package/.next/static/chunks/app/api/providers/[id]/route-9a2a13ac6b89ba91.js +0 -1
  732. package/.next/static/chunks/app/api/providers/[id]/test/route-9a2a13ac6b89ba91.js +0 -1
  733. package/.next/static/chunks/app/api/providers/[id]/test-models/route-9a2a13ac6b89ba91.js +0 -1
  734. package/.next/static/chunks/app/api/providers/client/route-9a2a13ac6b89ba91.js +0 -1
  735. package/.next/static/chunks/app/api/providers/kilo/free-models/route-9a2a13ac6b89ba91.js +0 -1
  736. package/.next/static/chunks/app/api/providers/route-9a2a13ac6b89ba91.js +0 -1
  737. package/.next/static/chunks/app/api/providers/suggested-models/route-9a2a13ac6b89ba91.js +0 -1
  738. package/.next/static/chunks/app/api/providers/test-batch/route-9a2a13ac6b89ba91.js +0 -1
  739. package/.next/static/chunks/app/api/providers/validate/route-9a2a13ac6b89ba91.js +0 -1
  740. package/.next/static/chunks/app/api/proxy-pools/[id]/route-9a2a13ac6b89ba91.js +0 -1
  741. package/.next/static/chunks/app/api/proxy-pools/[id]/test/route-9a2a13ac6b89ba91.js +0 -1
  742. package/.next/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-9a2a13ac6b89ba91.js +0 -1
  743. package/.next/static/chunks/app/api/proxy-pools/deno-deploy/route-9a2a13ac6b89ba91.js +0 -1
  744. package/.next/static/chunks/app/api/proxy-pools/route-9a2a13ac6b89ba91.js +0 -1
  745. package/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-9a2a13ac6b89ba91.js +0 -1
  746. package/.next/static/chunks/app/api/pxpipe/health/route-9a2a13ac6b89ba91.js +0 -1
  747. package/.next/static/chunks/app/api/pxpipe/install/route-9a2a13ac6b89ba91.js +0 -1
  748. package/.next/static/chunks/app/api/pxpipe/logs/route-9a2a13ac6b89ba91.js +0 -1
  749. package/.next/static/chunks/app/api/pxpipe/restart/route-9a2a13ac6b89ba91.js +0 -1
  750. package/.next/static/chunks/app/api/pxpipe/start/route-9a2a13ac6b89ba91.js +0 -1
  751. package/.next/static/chunks/app/api/pxpipe/stats/route-9a2a13ac6b89ba91.js +0 -1
  752. package/.next/static/chunks/app/api/pxpipe/status/route-9a2a13ac6b89ba91.js +0 -1
  753. package/.next/static/chunks/app/api/pxpipe/stop/route-9a2a13ac6b89ba91.js +0 -1
  754. package/.next/static/chunks/app/api/settings/database/route-9a2a13ac6b89ba91.js +0 -1
  755. package/.next/static/chunks/app/api/settings/proxy-test/route-9a2a13ac6b89ba91.js +0 -1
  756. package/.next/static/chunks/app/api/settings/require-login/route-9a2a13ac6b89ba91.js +0 -1
  757. package/.next/static/chunks/app/api/settings/route-9a2a13ac6b89ba91.js +0 -1
  758. package/.next/static/chunks/app/api/shutdown/route-9a2a13ac6b89ba91.js +0 -1
  759. package/.next/static/chunks/app/api/tags/route-9a2a13ac6b89ba91.js +0 -1
  760. package/.next/static/chunks/app/api/translator/console-logs/route-9a2a13ac6b89ba91.js +0 -1
  761. package/.next/static/chunks/app/api/translator/console-logs/stream/route-9a2a13ac6b89ba91.js +0 -1
  762. package/.next/static/chunks/app/api/translator/load/route-9a2a13ac6b89ba91.js +0 -1
  763. package/.next/static/chunks/app/api/translator/save/route-9a2a13ac6b89ba91.js +0 -1
  764. package/.next/static/chunks/app/api/translator/send/route-9a2a13ac6b89ba91.js +0 -1
  765. package/.next/static/chunks/app/api/translator/translate/route-9a2a13ac6b89ba91.js +0 -1
  766. package/.next/static/chunks/app/api/tunnel/disable/route-9a2a13ac6b89ba91.js +0 -1
  767. package/.next/static/chunks/app/api/tunnel/enable/route-9a2a13ac6b89ba91.js +0 -1
  768. package/.next/static/chunks/app/api/tunnel/status/route-9a2a13ac6b89ba91.js +0 -1
  769. package/.next/static/chunks/app/api/tunnel/tailscale-check/route-9a2a13ac6b89ba91.js +0 -1
  770. package/.next/static/chunks/app/api/tunnel/tailscale-disable/route-9a2a13ac6b89ba91.js +0 -1
  771. package/.next/static/chunks/app/api/tunnel/tailscale-enable/route-9a2a13ac6b89ba91.js +0 -1
  772. package/.next/static/chunks/app/api/tunnel/tailscale-install/route-9a2a13ac6b89ba91.js +0 -1
  773. package/.next/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-9a2a13ac6b89ba91.js +0 -1
  774. package/.next/static/chunks/app/api/usage/[connectionId]/route-9a2a13ac6b89ba91.js +0 -1
  775. package/.next/static/chunks/app/api/usage/chart/route-9a2a13ac6b89ba91.js +0 -1
  776. package/.next/static/chunks/app/api/usage/health/route-9a2a13ac6b89ba91.js +0 -1
  777. package/.next/static/chunks/app/api/usage/history/route-9a2a13ac6b89ba91.js +0 -1
  778. package/.next/static/chunks/app/api/usage/logs/route-9a2a13ac6b89ba91.js +0 -1
  779. package/.next/static/chunks/app/api/usage/providers/route-9a2a13ac6b89ba91.js +0 -1
  780. package/.next/static/chunks/app/api/usage/request-details/route-9a2a13ac6b89ba91.js +0 -1
  781. package/.next/static/chunks/app/api/usage/request-logs/route-9a2a13ac6b89ba91.js +0 -1
  782. package/.next/static/chunks/app/api/usage/stats/route-9a2a13ac6b89ba91.js +0 -1
  783. package/.next/static/chunks/app/api/usage/stream/route-9a2a13ac6b89ba91.js +0 -1
  784. package/.next/static/chunks/app/api/v1/api/chat/route-9a2a13ac6b89ba91.js +0 -1
  785. package/.next/static/chunks/app/api/v1/audio/speech/route-9a2a13ac6b89ba91.js +0 -1
  786. package/.next/static/chunks/app/api/v1/audio/transcriptions/route-9a2a13ac6b89ba91.js +0 -1
  787. package/.next/static/chunks/app/api/v1/audio/voices/route-9a2a13ac6b89ba91.js +0 -1
  788. package/.next/static/chunks/app/api/v1/chat/completions/route-9a2a13ac6b89ba91.js +0 -1
  789. package/.next/static/chunks/app/api/v1/embeddings/route-9a2a13ac6b89ba91.js +0 -1
  790. package/.next/static/chunks/app/api/v1/images/generations/route-9a2a13ac6b89ba91.js +0 -1
  791. package/.next/static/chunks/app/api/v1/messages/count_tokens/route-9a2a13ac6b89ba91.js +0 -1
  792. package/.next/static/chunks/app/api/v1/messages/route-9a2a13ac6b89ba91.js +0 -1
  793. package/.next/static/chunks/app/api/v1/models/[...model]/route-9a2a13ac6b89ba91.js +0 -1
  794. package/.next/static/chunks/app/api/v1/models/info/route-9a2a13ac6b89ba91.js +0 -1
  795. package/.next/static/chunks/app/api/v1/models/route-9a2a13ac6b89ba91.js +0 -1
  796. package/.next/static/chunks/app/api/v1/responses/compact/route-9a2a13ac6b89ba91.js +0 -1
  797. package/.next/static/chunks/app/api/v1/responses/route-9a2a13ac6b89ba91.js +0 -1
  798. package/.next/static/chunks/app/api/v1/route-9a2a13ac6b89ba91.js +0 -1
  799. package/.next/static/chunks/app/api/v1/search/route-9a2a13ac6b89ba91.js +0 -1
  800. package/.next/static/chunks/app/api/v1/systemone/route-9a2a13ac6b89ba91.js +0 -1
  801. package/.next/static/chunks/app/api/v1/videos/[id]/route-9a2a13ac6b89ba91.js +0 -1
  802. package/.next/static/chunks/app/api/v1/videos/edits/route-9a2a13ac6b89ba91.js +0 -1
  803. package/.next/static/chunks/app/api/v1/videos/extensions/route-9a2a13ac6b89ba91.js +0 -1
  804. package/.next/static/chunks/app/api/v1/videos/generations/route-9a2a13ac6b89ba91.js +0 -1
  805. package/.next/static/chunks/app/api/v1/web/fetch/route-9a2a13ac6b89ba91.js +0 -1
  806. package/.next/static/chunks/app/api/v1beta/models/[...path]/route-9a2a13ac6b89ba91.js +0 -1
  807. package/.next/static/chunks/app/api/v1beta/models/route-9a2a13ac6b89ba91.js +0 -1
  808. package/.next/static/chunks/app/api/version/route-9a2a13ac6b89ba91.js +0 -1
  809. package/.next/static/chunks/app/api/version/shutdown/route-9a2a13ac6b89ba91.js +0 -1
  810. package/.next/static/chunks/app/api/version/update/route-9a2a13ac6b89ba91.js +0 -1
  811. package/.next/static/chunks/app/manifest.webmanifest/route-9a2a13ac6b89ba91.js +0 -1
  812. package/.next/static/chunks/app/page-9a2a13ac6b89ba91.js +0 -1
  813. package/.next/static/chunks/next/dist/client/components/builtin/app-error-9a2a13ac6b89ba91.js +0 -1
  814. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-9a2a13ac6b89ba91.js +0 -1
  815. package/.next/static/chunks/next/dist/client/components/builtin/not-found-9a2a13ac6b89ba91.js +0 -1
  816. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-9a2a13ac6b89ba91.js +0 -1
  817. package/.next/static/css/efaf98e3b295f727.css +0 -1
  818. package/.next/static/wBARQPScPhD6SLn7WQvI9/_buildManifest.js +0 -1
  819. package/open-sse/executors/xiaomi-tokenplan.js +0 -20
  820. package/open-sse/handlers/imageProviders/huggingface.js +0 -23
  821. package/open-sse/handlers/ttsProviders/minimax.js +0 -63
  822. package/open-sse/providers/registry/fish-audio.js +0 -31
  823. package/open-sse/providers/registry/glm-cn.js +0 -39
  824. package/open-sse/providers/registry/groq.js +0 -62
  825. package/open-sse/providers/registry/huggingface.js +0 -40
  826. package/open-sse/providers/registry/minimax-cn.js +0 -82
  827. package/open-sse/providers/registry/minimax.js +0 -94
  828. package/open-sse/providers/registry/siliconflow.js +0 -39
  829. package/open-sse/providers/registry/vercel-ai-gateway.js +0 -42
  830. package/open-sse/providers/registry/xiaomi-tokenplan.js +0 -66
  831. package/open-sse/providers/registry/xquik.js +0 -31
  832. package/open-sse/services/usage/groq.js +0 -133
  833. package/open-sse/services/usage/minimax.js +0 -297
  834. package/public/providers/fish-audio.png +0 -0
  835. package/public/providers/glm-cn.png +0 -0
  836. package/public/providers/groq.png +0 -0
  837. package/public/providers/huggingface.png +0 -0
  838. package/public/providers/minimax-cn.png +0 -0
  839. package/public/providers/minimax.png +0 -0
  840. package/public/providers/siliconflow.png +0 -0
  841. package/public/providers/vercel-ai-gateway.png +0 -0
  842. package/public/providers/vercel.png +0 -0
  843. package/public/providers/xiaomi-tokenplan.png +0 -0
  844. package/public/providers/xquik.png +0 -0
  845. package/src/app/api/media-providers/tts/minimax/voices/route.js +0 -126
  846. /package/.next/static/{wBARQPScPhD6SLn7WQvI9 → EsP8l_VAPRRfBiiJPJqQe}/_ssgManifest.js +0 -0
@@ -10,7 +10,12 @@ import {
10
10
  saveUsageStats,
11
11
  formatDoneLine,
12
12
  } from "./requestDetail.js";
13
- import { ROLE, RESPONSES_ITEM } from "../../translator/schema/index.js";
13
+ import { ROLE, RESPONSES_ITEM, CLAUDE_BLOCK } from "../../translator/schema/index.js";
14
+ import {
15
+ chatCompletionToClaudeMessage,
16
+ claudeMessageToChatCompletion,
17
+ parseClaudeSSEToMessage,
18
+ } from "./claudeMessageBody.js";
14
19
 
15
20
  // Responses-API providers (e.g. codex) may emit SSE without content-type + use Responses output shape
16
21
  const isResponsesProvider = (p) => PROVIDERS[p]?.format === FORMATS.OPENAI_RESPONSES;
@@ -227,10 +232,15 @@ export async function handleForcedSSEToJson({
227
232
  log,
228
233
  }) {
229
234
  const contentType = providerResponse.headers.get("content-type") || "";
235
+ // Responses-API providers (codex) are known to stream without a content type;
236
+ // for every other provider an absent header means the body is not a stream we
237
+ // may consume here — returning null leaves it intact for the JSON handler.
230
238
  const isSSE =
231
239
  contentType.includes("text/event-stream") ||
232
240
  (contentType === "" && isResponsesProvider(provider));
233
- if (!isSSE) return null; // not handled here
241
+ // Not an aggregated stream — the caller falls back to the JSON handler. The
242
+ // pending counter must stay untouched here: this handler did not serve it.
243
+ if (!isSSE) return null;
234
244
 
235
245
  trackDone();
236
246
 
@@ -251,6 +261,15 @@ export async function handleForcedSSEToJson({
251
261
  if (isCodexResponsesApi) {
252
262
  try {
253
263
  const jsonResponse = await convertResponsesStreamToJson(providerResponse.body);
264
+ // A `response.failed` event is the upstream's own failure signal; an empty
265
+ // "successful" body would hide it from the client.
266
+ if (jsonResponse.status === "failed") {
267
+ appendLog({ status: `FAILED ${HTTP_STATUS.BAD_GATEWAY}` });
268
+ return createErrorResult(
269
+ HTTP_STATUS.BAD_GATEWAY,
270
+ "Upstream Responses stream reported failure",
271
+ );
272
+ }
254
273
  if (onRequestSuccess) await onRequestSuccess();
255
274
 
256
275
  const usage = jsonResponse.usage || {};
@@ -345,7 +364,36 @@ export async function handleForcedSSEToJson({
345
364
  }));
346
365
  const hasToolCalls = toolCalls.length > 0;
347
366
 
348
- if (sourceFormat === FORMATS.ANTIGRAVITY || sourceFormat === FORMATS.GEMINI) {
367
+ if (sourceFormat === FORMATS.CLAUDE) {
368
+ // The client speaks Anthropic Messages: reuse the same conversion a
369
+ // chat-native upstream gets, so both forced-stream upstream dialects
370
+ // produce one identical Claude body.
371
+ finalResp = chatCompletionToClaudeMessage({
372
+ id: jsonResponse.id,
373
+ created: jsonResponse.created_at,
374
+ model: jsonResponse.model || model,
375
+ choices: [
376
+ {
377
+ index: 0,
378
+ message: {
379
+ role: ROLE.ASSISTANT,
380
+ content: textContent,
381
+ ...(hasToolCalls ? { tool_calls: toolCalls } : {}),
382
+ },
383
+ finish_reason: hasToolCalls
384
+ ? "tool_calls"
385
+ : jsonResponse.status === "completed" || jsonResponse.status === "done"
386
+ ? "stop"
387
+ : jsonResponse.status || "stop",
388
+ },
389
+ ],
390
+ usage: {
391
+ prompt_tokens: inTokens,
392
+ completion_tokens: outTokens,
393
+ ...cacheDetails,
394
+ },
395
+ });
396
+ } else if (sourceFormat === FORMATS.ANTIGRAVITY || sourceFormat === FORMATS.GEMINI) {
349
397
  finalResp = {
350
398
  response: {
351
399
  candidates: [
@@ -406,6 +454,94 @@ export async function handleForcedSSEToJson({
406
454
  // Standard Chat Completions SSE path
407
455
  try {
408
456
  const sseText = await providerResponse.text();
457
+
458
+ // A provider that speaks Claude on the wire (opencode's `union-alpha`, any
459
+ // anthropic-compatible endpoint) streams Anthropic events, which the chat
460
+ // aggregator cannot fold — it would produce an empty message. Aggregate in
461
+ // the format the upstream actually used.
462
+ //
463
+ // `targetFormat` is what we asked for, not proof of what came back: some
464
+ // providers answer their Claude transport in OpenAI dialect. The aggregator
465
+ // returns null when no Anthropic event was seen, and the standard chat path
466
+ // below then handles the body it really is.
467
+ const isClaudeUpstream =
468
+ targetFormat === FORMATS.CLAUDE || /"type"\s*:\s*"message_start"/.test(sseText);
469
+ const claudeMessage = isClaudeUpstream ? parseClaudeSSEToMessage(sseText, model) : null;
470
+ if (claudeMessage) {
471
+ const message = claudeMessage;
472
+ if (message.error) {
473
+ const upstreamCode = String(message.error.code || "");
474
+ const status =
475
+ message.error.type === "invalid_request_error" ||
476
+ upstreamCode === "context_length_exceeded" ||
477
+ upstreamCode === "bad_request"
478
+ ? HTTP_STATUS.BAD_REQUEST
479
+ : HTTP_STATUS.BAD_GATEWAY;
480
+ return createErrorResult(status, message.error.message || "Upstream SSE stream failed");
481
+ }
482
+
483
+ if (onRequestSuccess) await onRequestSuccess();
484
+
485
+ const usage = message.usage || {};
486
+ appendLog({ tokens: usage, status: "200 OK" });
487
+ saveUsageStats({
488
+ provider,
489
+ model,
490
+ tokens: usage,
491
+ connectionId,
492
+ apiKey,
493
+ endpoint: clientRawRequest?.endpoint,
494
+ silent: true,
495
+ });
496
+ if (log?.line)
497
+ log.line(
498
+ reqTag,
499
+ "DONE",
500
+ formatDoneLine({ usage, latency: { total: Date.now() - requestStartTime } }),
501
+ );
502
+
503
+ const totalLatency = Date.now() - requestStartTime;
504
+ const textBlocks = (message.content || []).filter((b) => b.type === CLAUDE_BLOCK.TEXT);
505
+ const thinkingBlocks = (message.content || []).filter(
506
+ (b) => b.type === CLAUDE_BLOCK.THINKING,
507
+ );
508
+ saveRequestDetail(
509
+ buildRequestDetail(
510
+ {
511
+ ...ctx,
512
+ latency: { ttft: totalLatency, total: totalLatency },
513
+ tokens: {
514
+ prompt_tokens: usage.input_tokens || 0,
515
+ completion_tokens: usage.output_tokens || 0,
516
+ },
517
+ response: {
518
+ content: textBlocks.map((b) => b.text || "").join("") || null,
519
+ thinking: thinkingBlocks.map((b) => b.thinking || "").join("") || null,
520
+ finish_reason: message.stop_reason || "unknown",
521
+ },
522
+ status: "success",
523
+ },
524
+ { endpoint: clientRawRequest?.endpoint || null },
525
+ ),
526
+ ).catch(() => {});
527
+
528
+ // Claude → chat conversion only when the client asked for chat; a Claude
529
+ // client (or any other) receives the aggregated message unchanged.
530
+ const finalBody =
531
+ sourceFormat === FORMATS.CLAUDE
532
+ ? message
533
+ : sourceFormat === FORMATS.OPENAI
534
+ ? claudeMessageToChatCompletion(message)
535
+ : message;
536
+
537
+ return {
538
+ success: true,
539
+ response: new Response(JSON.stringify(restoreToolNames(finalBody, toolNameMap)), {
540
+ headers: { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*" },
541
+ }),
542
+ };
543
+ }
544
+
409
545
  const parsed = parseSSEToOpenAIResponse(sseText, model);
410
546
  if (!parsed)
411
547
  return createErrorResult(
@@ -491,10 +627,17 @@ export async function handleForcedSSEToJson({
491
627
  // lost on the non-streaming return path. Inlined (not imported from
492
628
  // nonStreamingHandler.js) to avoid a circular import: nonStreamingHandler
493
629
  // already imports parseSSEToOpenAIResponse from this module.
630
+ // A Claude-format client gets an Anthropic `message`, never a raw
631
+ // `chat.completion`. Every non-streaming /v1/messages request lands here
632
+ // when the provider forces streaming (opencode, codex, zed, openai), and
633
+ // Claude Code reads `message.content[]` — an OpenAI body throws a TypeError
634
+ // inside the client, which auto mode reports as "classifier unavailable".
494
635
  const finalBody =
495
636
  sourceFormat === FORMATS.OPENAI_RESPONSES
496
637
  ? chatCompletionToResponses(parsed, customToolNames)
497
- : parsed;
638
+ : sourceFormat === FORMATS.CLAUDE
639
+ ? chatCompletionToClaudeMessage(parsed)
640
+ : parsed;
498
641
 
499
642
  return {
500
643
  success: true,
@@ -177,10 +177,24 @@ export async function handleChatCore({
177
177
  }
178
178
  }
179
179
 
180
+ // Client preference (what the response must look like) is independent of the
181
+ // transport a provider needs. `stream` below is the upstream flag; the
182
+ // client-facing decision is `clientWantsJson` further down.
183
+ const acceptHeader = clientRawRequest?.headers?.accept || "";
184
+ const clientPrefersJson = acceptHeader.includes("application/json");
185
+ const clientPrefersSSE = acceptHeader.includes("text/event-stream");
180
186
  const clientRequestedStreaming =
181
187
  body.stream === true || sourceFormat === FORMATS.ANTIGRAVITY || sourceFormat === FORMATS.GEMINI;
182
188
  const providerRequiresStreaming = PROVIDERS[provider]?.forceStream === true;
183
- let stream = providerRequiresStreaming ? true : body.stream !== false;
189
+ // Anthropic Messages defaults to a JSON body when `stream` is omitted; OpenAI
190
+ // chat callers have historically been served SSE in that case here. An
191
+ // explicit Accept: text/event-stream still opts a Claude client into SSE.
192
+ const sourceDefaultsToJson = sourceFormat === FORMATS.CLAUDE && !clientPrefersSSE;
193
+ let stream = providerRequiresStreaming
194
+ ? true
195
+ : body.stream === undefined
196
+ ? !sourceDefaultsToJson
197
+ : body.stream !== false;
184
198
 
185
199
  // Image generation models require non-streaming (Google v1internal:generateContent)
186
200
  const modelType = getModelType(alias, model);
@@ -197,9 +211,8 @@ export async function handleChatCore({
197
211
 
198
212
  // Check client Accept header preference for non-streaming requests
199
213
  // This fixes AI SDK compatibility where clients send Accept: application/json
200
- const acceptHeader = clientRawRequest?.headers?.accept || "";
201
- const clientPrefersJson = acceptHeader.includes("application/json");
202
- const clientPrefersSSE = acceptHeader.includes("text/event-stream");
214
+ // (`acceptHeader`, `clientPrefersJson` and `clientPrefersSSE` are resolved
215
+ // with the stream negotiation above so both decisions share one reading.)
203
216
  if (
204
217
  clientPrefersJson &&
205
218
  !clientPrefersSSE &&
@@ -293,6 +306,21 @@ export async function handleChatCore({
293
306
  stripContinuityFields(translatedBody);
294
307
  }
295
308
 
309
+ // Reasoning depth is a model capability, so a model that cannot reason silently
310
+ // loses the client's effort selection inside applyThinking. Report that drop
311
+ // once per request: without it an ignored effort looks like a provider quirk.
312
+ const requestedThinking = extractThinking(body);
313
+ if (requestedThinking && requestedThinking.mode !== "none") {
314
+ const thinkingCaps = getCapabilitiesForModel(provider, stripThinkingSuffix(upstreamModel));
315
+ if (!thinkingCaps.reasoning) {
316
+ const requested = log?.fmtThink?.(requestedThinking) || requestedThinking.mode;
317
+ log?.warn?.(
318
+ "THINKING",
319
+ `${provider}/${model} cannot reason — requested ${requested} omitted`,
320
+ );
321
+ }
322
+ }
323
+
296
324
  // Dedupe duplicate built-in tools when equivalent MCP tools are present (Claude clients only).
297
325
  if (clientTool === "claude" && Array.isArray(translatedBody.tools)) {
298
326
  const { tools: deduped, stripped } = dedupeTools(translatedBody.tools);
@@ -687,9 +715,20 @@ export async function handleChatCore({
687
715
  appendRequestLog({ model, provider, connectionId, ...extra }).catch(() => {});
688
716
  const trackDone = () => trackPendingRequest(model, provider, connectionId, false);
689
717
 
690
- // Provider forced streaming but client wants JSON
691
- if (!clientRequestedStreaming && providerRequiresStreaming) {
692
- const result = await handleForcedSSEToJson({
718
+ // The client did not ask for SSE: either the provider only streams, or the
719
+ // request was negotiated as JSON. Aggregating the upstream stream is tried
720
+ // first; it declines a non-SSE body so a provider that ignored `stream` — or
721
+ // one that answered JSON on a forced-stream endpoint — still reaches the
722
+ // ordinary non-streaming handler instead of being written as an SSE response.
723
+ const clientWantsJson =
724
+ !stream ||
725
+ (providerRequiresStreaming && !clientRequestedStreaming && !clientPrefersSSE) ||
726
+ // Source-format contract: an Anthropic Messages client that did not ask to
727
+ // stream keeps a JSON body even if its provider forces streaming upstream.
728
+ (sourceFormat === FORMATS.CLAUDE && body.stream !== true && !clientPrefersSSE);
729
+
730
+ if (clientWantsJson) {
731
+ const forcedResult = await handleForcedSSEToJson({
693
732
  ...sharedCtx,
694
733
  providerResponse,
695
734
  sourceFormat,
@@ -699,14 +738,11 @@ export async function handleChatCore({
699
738
  trackDone,
700
739
  appendLog,
701
740
  });
702
- if (result) {
741
+ if (forcedResult) {
703
742
  streamController.handleComplete();
704
- return result;
743
+ return forcedResult;
705
744
  }
706
- }
707
745
 
708
- // True non-streaming response
709
- if (!stream) {
710
746
  const result = await handleNonStreamingResponse({
711
747
  ...sharedCtx,
712
748
  providerResponse,
@@ -15,7 +15,6 @@ const OPENAI_COMPAT_PROVIDERS = [
15
15
  "github",
16
16
  "nvidia",
17
17
  "jina-ai",
18
- "vercel-ai-gateway",
19
18
  ];
20
19
 
21
20
  const ADAPTERS = {
@@ -4,7 +4,6 @@ import gemini from "./gemini.js";
4
4
  import codex from "./codex.js";
5
5
  import sdwebui from "./sdwebui.js";
6
6
  import comfyui from "./comfyui.js";
7
- import huggingface from "./huggingface.js";
8
7
  import nanobanana from "./nanobanana.js";
9
8
  import falAi from "./falAi.js";
10
9
  import stabilityAi from "./stabilityAi.js";
@@ -14,16 +13,13 @@ import antigravity from "./antigravity.js";
14
13
 
15
14
  const ADAPTERS = {
16
15
  openai: createOpenAIAdapter("openai"),
17
- minimax: createOpenAIAdapter("minimax"),
18
16
  openrouter: createOpenAIAdapter("openrouter"),
19
17
  recraft: createOpenAIAdapter("recraft"),
20
- "vercel-ai-gateway": createOpenAIAdapter("vercel-ai-gateway"),
21
18
  xai: createOpenAIAdapter("xai"),
22
19
  gemini,
23
20
  codex,
24
21
  sdwebui,
25
22
  comfyui,
26
- huggingface,
27
23
  nanobanana,
28
24
  antigravity,
29
25
  "fal-ai": falAi,
@@ -1,4 +1,4 @@
1
- // OpenAI-compatible adapter (used by openai, minimax, openrouter, recraft)
1
+ // OpenAI-compatible adapter (used by openai, openrouter, recraft)
2
2
  import { PROVIDER_MEDIA } from "../../providers/index.js";
3
3
 
4
4
  const imageCfg = (id) => PROVIDER_MEDIA[id]?.imageConfig || {};
@@ -347,33 +347,6 @@ function buildSearxngRequest(config, params) {
347
347
  };
348
348
  }
349
349
 
350
- function buildXquikRequest(config, params) {
351
- const apiKey = params.token;
352
- if (!apiKey) throw new Error("Xquik requires an API key");
353
-
354
- const queryType = getProviderSetting(params, "queryType");
355
- if (queryType && !["Latest", "Top"].includes(queryType)) {
356
- throw new Error("Xquik queryType must be Latest or Top");
357
- }
358
-
359
- const qp = new URLSearchParams({
360
- q: params.query,
361
- limit: String(params.maxResults),
362
- });
363
- const cursor = getProviderSetting(params, "cursor");
364
- if (cursor) qp.set("cursor", cursor);
365
- if (queryType) qp.set("queryType", queryType);
366
- if (params.language) qp.set("language", params.language);
367
-
368
- return {
369
- url: `${resolveBaseUrl(config, params)}?${qp}`,
370
- init: {
371
- method: "GET",
372
- headers: { Accept: "application/json", "x-api-key": apiKey },
373
- },
374
- };
375
- }
376
-
377
350
  // ── Ollama Cloud web_search ──────────────────────────────────────────────
378
351
  // POST https://ollama.com/api/web_search { query, max_results }
379
352
  // Response: { results: [{ title, url, content, published_at? }] }
@@ -435,7 +408,6 @@ const BUILDERS = {
435
408
  searchapi: buildSearchApiRequest,
436
409
  youcom: buildYouComRequest,
437
410
  searxng: buildSearxngRequest,
438
- xquik: buildXquikRequest,
439
411
  "ollama-search": buildOllamaSearchRequest,
440
412
  glm: buildGlmSearchRequest,
441
413
  };
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Wrap chat-completions endpoints (with built-in web search) into the unified
3
3
  * /v1/search response format. Supports gemini, antigravity, openai, xai,
4
- * minimax, perplexity.
4
+ * perplexity.
5
5
  */
6
6
  import { PROVIDER_MEDIA } from "../../providers/index.js";
7
7
  import { ANTIGRAVITY_IDE_USER_AGENT } from "../../providers/shared.js";
@@ -253,62 +253,6 @@ const CHAT_SEARCH_CONFIG = {
253
253
  },
254
254
  },
255
255
 
256
- minimax: {
257
- endpoint: () => searchEndpoint("minimax"),
258
- buildBody: (query, model) => ({
259
- model,
260
- messages: [{ role: "user", content: query }],
261
- tools: [{ type: "web_search" }],
262
- }),
263
- buildHeaders: (token) => ({
264
- "Content-Type": "application/json",
265
- Authorization: `Bearer ${token}`,
266
- }),
267
- extractAnswer: (data) => {
268
- const msg = data?.choices?.[0]?.message || {};
269
- const text = msg.content || "";
270
- const citations = [];
271
- const direct = Array.isArray(data?.web_search_results) ? data.web_search_results : [];
272
- for (const it of direct) {
273
- const url = it?.url || it?.link;
274
- if (url) {
275
- citations.push({
276
- url,
277
- title: it.title || "",
278
- snippet: it.snippet || it.summary || "",
279
- });
280
- }
281
- }
282
- if (!citations.length) {
283
- const calls = Array.isArray(msg.tool_calls) ? msg.tool_calls : [];
284
- for (const call of calls) {
285
- const argStr = call?.function?.arguments;
286
- if (!argStr) continue;
287
- let parsed;
288
- try {
289
- parsed = typeof argStr === "string" ? JSON.parse(argStr) : argStr;
290
- } catch {
291
- continue;
292
- }
293
- const items = parsed?.results || parsed?.search_results || [];
294
- if (Array.isArray(items)) {
295
- for (const it of items) {
296
- const url = it?.url || it?.link;
297
- if (!url) continue;
298
- citations.push({
299
- url,
300
- title: it.title || "",
301
- snippet: it.snippet || "",
302
- });
303
- }
304
- }
305
- }
306
- }
307
- const tokens = data?.usage?.total_tokens || 0;
308
- return { text, citations, tokens };
309
- },
310
- },
311
-
312
256
  perplexity: {
313
257
  endpoint: () => searchEndpoint("perplexity"),
314
258
  buildBody: (query, model) => ({
@@ -281,54 +281,6 @@ function normalizeSearxng(data, _query, _searchType) {
281
281
  return { results, totalResults: results.length };
282
282
  }
283
283
 
284
- function normalizeXquik(data, _query, _searchType) {
285
- const now = new Date().toISOString();
286
- const items = Array.isArray(data.tweets) ? data.tweets : [];
287
- const results = items.map((item, idx) => {
288
- const username = typeof item?.author?.username === "string" ? item.author.username : "";
289
- const authorName = typeof item?.author?.name === "string" ? item.author.name : "";
290
- const tweetId = typeof item?.id === "string" ? item.id : String(item?.id || "");
291
- const url =
292
- username && tweetId
293
- ? `https://x.com/${encodeURIComponent(username)}/status/${encodeURIComponent(tweetId)}`
294
- : tweetId
295
- ? `https://x.com/i/web/status/${encodeURIComponent(tweetId)}`
296
- : "";
297
- const author = username ? `@${username}` : authorName || null;
298
- const title = author ? `${author} on X` : "X post";
299
- const imageUrl = Array.isArray(item?.media)
300
- ? item.media.find((media) => typeof media?.mediaUrl === "string")?.mediaUrl
301
- : null;
302
-
303
- return makeResult(
304
- "xquik",
305
- {
306
- title,
307
- url,
308
- snippet: typeof item?.text === "string" ? item.text : "",
309
- published_at: typeof item?.createdAt === "string" ? item.createdAt : null,
310
- author,
311
- image_url: imageUrl || null,
312
- source_type: "x_post",
313
- full_text: typeof item?.text === "string" ? item.text : undefined,
314
- text_format: "text",
315
- },
316
- idx,
317
- now,
318
- );
319
- });
320
- const nextCursor =
321
- typeof data.next_cursor === "string" && data.next_cursor ? data.next_cursor : null;
322
- return {
323
- results,
324
- totalResults: null,
325
- pagination: {
326
- has_more: data.has_next_page === true,
327
- next_cursor: nextCursor,
328
- },
329
- };
330
- }
331
-
332
284
  function normalizeOllamaSearch(data, _query, _searchType) {
333
285
  const now = new Date().toISOString();
334
286
  const items = Array.isArray(data?.results) ? data.results : Array.isArray(data) ? data : [];
@@ -399,7 +351,6 @@ const NORMALIZERS = {
399
351
  searchapi: normalizeSearchApi,
400
352
  youcom: normalizeYouCom,
401
353
  searxng: normalizeSearxng,
402
- xquik: normalizeXquik,
403
354
  "ollama-search": normalizeOllamaSearch,
404
355
  glm: normalizeGlmSearch,
405
356
  };
@@ -159,21 +159,6 @@ async function transcribeGemini(cfg, file, model, token, formData) {
159
159
  }
160
160
 
161
161
  // HuggingFace: POST raw binary to {baseUrl}/{model_id}
162
- async function transcribeHuggingFace(cfg, file, model, token) {
163
- if (model.includes("..") || model.includes("//"))
164
- return createErrorResult(400, "Invalid model ID");
165
- const url = `${cfg.baseUrl.replace(/\/+$/, "")}/${model}`;
166
- const buf = await file.arrayBuffer();
167
- const res = await fetch(url, {
168
- method: "POST",
169
- headers: { ...buildAuthHeaders(cfg, token), "Content-Type": resolveAudioContentType(file) },
170
- body: buf,
171
- });
172
- if (!res.ok) return upstreamError(res);
173
- const data = await res.json();
174
- return jsonResponse({ text: data.text || "" });
175
- }
176
-
177
162
  // Default: OpenAI/Groq/Whisper-compatible multipart
178
163
  async function transcribeOpenAICompatible(cfg, file, model, token, formData) {
179
164
  const fd = new FormData();
@@ -249,8 +234,6 @@ export async function handleSttCore({ provider, model, formData, credentials, st
249
234
  return await transcribeAssemblyAI(cfg, file, model, token);
250
235
  case "nvidia-asr":
251
236
  return await transcribeNvidia(cfg, file, model, token);
252
- case "huggingface-asr":
253
- return await transcribeHuggingFace(cfg, file, model, token);
254
237
  case "gemini-stt":
255
238
  return await transcribeGemini(cfg, file, model, token, formData);
256
239
  default:
@@ -74,7 +74,7 @@ export async function handleTtsCore({
74
74
  return createTtsResponse(result.base64, result.format, responseFormat);
75
75
  }
76
76
 
77
- // Generic config-driven (hyperbolic, deepgram, nvidia, huggingface, inworld, cartesia, playht, coqui, tortoise, qwen, ...)
77
+ // Generic config-driven (hyperbolic, deepgram, nvidia, inworld, cartesia, playht, coqui, tortoise, qwen, ...)
78
78
  const result = await synthesizeViaConfig(provider, input.trim(), model, credentials);
79
79
  if (result) return createTtsResponse(result.base64, result.format, responseFormat);
80
80
 
@@ -1,7 +1,6 @@
1
1
  // Generic config-driven TTS handlers — dispatched by ttsConfig.format.
2
2
  // Each handler accepts { baseUrl, apiKey, text, modelId, voiceId } and returns { base64, format }.
3
3
  import { responseToBase64, throwUpstreamError } from "./_base.js";
4
- import minimaxTts from "./minimax.js";
5
4
 
6
5
  // Hyperbolic: POST { text } → { audio: base64 }
7
6
  async function hyperbolic({ baseUrl, apiKey, text }) {
@@ -39,37 +38,6 @@ async function nvidia({ baseUrl, apiKey, text, modelId, voiceId }) {
39
38
  return responseToBase64(res, "wav");
40
39
  }
41
40
 
42
- // HuggingFace: POST {baseUrl}/{modelId} { inputs: text } → binary
43
- async function huggingface({ baseUrl, apiKey, text, modelId }) {
44
- if (!modelId || modelId.includes("..")) throw new Error("Invalid HuggingFace model ID");
45
- const res = await fetch(`${baseUrl}/${modelId}`, {
46
- method: "POST",
47
- headers: { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}` },
48
- body: JSON.stringify({ inputs: text }),
49
- });
50
- if (!res.ok) await throwUpstreamError(res);
51
- return responseToBase64(res, "wav");
52
- }
53
-
54
- // Fish Audio: model travels in an HTTP header, the voice is a reference_id, returns binary
55
- async function fishAudio({ baseUrl, apiKey, text, modelId, voiceId }) {
56
- const res = await fetch(baseUrl, {
57
- method: "POST",
58
- headers: {
59
- "Content-Type": "application/json",
60
- Authorization: `Bearer ${apiKey}`,
61
- model: modelId || "s2.1-pro-free",
62
- },
63
- body: JSON.stringify({
64
- text,
65
- format: "mp3",
66
- ...(voiceId ? { reference_id: voiceId } : {}),
67
- }),
68
- });
69
- if (!res.ok) await throwUpstreamError(res);
70
- return responseToBase64(res, "mp3");
71
- }
72
-
73
41
  // Inworld: Basic auth, JSON { audioContent }
74
42
  async function inworld({ baseUrl, apiKey, text, modelId, voiceId }) {
75
43
  const res = await fetch(baseUrl, {
@@ -179,13 +147,10 @@ export const FORMAT_HANDLERS = {
179
147
  hyperbolic,
180
148
  deepgram,
181
149
  "nvidia-tts": nvidia,
182
- "huggingface-tts": huggingface,
183
150
  inworld,
184
151
  cartesia,
185
152
  playht,
186
153
  coqui,
187
154
  tortoise,
188
155
  openai: openaiCompat,
189
- "minimax-tts": minimaxTts,
190
- "fish-audio": fishAudio,
191
156
  };