omniroute 2.3.15 → 2.3.17

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 (264) hide show
  1. package/README.md +141 -22
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +60 -60
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/media/page.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/_global-error.html +2 -2
  44. package/app/.next/server/app/_global-error.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  46. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  47. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  48. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  49. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  50. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  51. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  61. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/models/catalog/route.js +1 -1
  107. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/models/route.js +1 -2
  110. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/monitoring/health/route.js +1 -2
  113. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  130. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  133. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/providers/route.js +1 -2
  138. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  190. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  191. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  193. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  194. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  196. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  197. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  202. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  203. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/docs/page.js +2 -3
  205. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  206. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  209. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  212. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  213. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  216. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app-paths-manifest.json +60 -60
  218. package/app/.next/server/chunks/1248.js +1 -1
  219. package/app/.next/server/chunks/1526.js +1 -1
  220. package/app/.next/server/chunks/1584.js +1 -1
  221. package/app/.next/server/chunks/1623.js +1 -1
  222. package/app/.next/server/chunks/1880.js +1 -1
  223. package/app/.next/server/chunks/1909.js +1 -1
  224. package/app/.next/server/chunks/1960.js +1 -1
  225. package/app/.next/server/chunks/1990.js +1 -1
  226. package/app/.next/server/chunks/2214.js +1 -1
  227. package/app/.next/server/chunks/2372.js +1 -1
  228. package/app/.next/server/chunks/2594.js +1 -1
  229. package/app/.next/server/chunks/3061.js +1 -1
  230. package/app/.next/server/chunks/3371.js +1 -1
  231. package/app/.next/server/chunks/3911.js +1 -1
  232. package/app/.next/server/chunks/496.js +1 -1
  233. package/app/.next/server/chunks/5047.js +1 -1
  234. package/app/.next/server/chunks/5094.js +1 -1
  235. package/app/.next/server/chunks/5097.js +1 -1
  236. package/app/.next/server/chunks/5521.js +1 -1
  237. package/app/.next/server/chunks/5945.js +1 -1
  238. package/app/.next/server/chunks/5979.js +2 -0
  239. package/app/.next/server/chunks/6118.js +1 -1
  240. package/app/.next/server/chunks/6930.js +1 -1
  241. package/app/.next/server/chunks/7011.js +1 -1
  242. package/app/.next/server/chunks/708.js +1 -1
  243. package/app/.next/server/chunks/7650.js +1 -1
  244. package/app/.next/server/chunks/8220.js +1 -1
  245. package/app/.next/server/chunks/8369.js +1 -1
  246. package/app/.next/server/chunks/8464.js +1 -1
  247. package/app/.next/server/chunks/8706.js +1 -1
  248. package/app/.next/server/chunks/8976.js +1 -1
  249. package/app/.next/server/chunks/9119.js +1 -1
  250. package/app/.next/server/chunks/944.js +1 -1
  251. package/app/.next/server/chunks/9837.js +1 -1
  252. package/app/.next/server/pages/500.html +2 -2
  253. package/app/.next/server/server-reference-manifest.js +1 -1
  254. package/app/.next/server/server-reference-manifest.json +1 -1
  255. package/app/.next/static/chunks/5846-91acb28376b52f2b.js +2 -0
  256. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-822261c5b1a31e5f.js +1 -0
  257. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-07cbc45d62a20735.js +1 -0
  258. package/app/package.json +1 -1
  259. package/package.json +1 -1
  260. package/app/.next/static/chunks/5846-7237f07660b67a4b.js +0 -2
  261. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-bcd322cc28b040e9.js +0 -1
  262. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-adb79ef07d8dd6c5.js +0 -1
  263. /package/app/.next/static/{DJl2bxmaQkEJjPXC10cm7 → QxDWWnX69o-VpbuyG_9Li}/_buildManifest.js +0 -0
  264. /package/app/.next/static/{DJl2bxmaQkEJjPXC10cm7 → QxDWWnX69o-VpbuyG_9Li}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=8369,exports.ids=[8369],exports.modules={8959:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>m,IS:()=>i,JH:()=>l,Q2:()=>n,fg:()=>k,gb:()=>h,js:()=>o,mq:()=>g,zN:()=>j});var e=c(43701),f=a([e]);e=(f.then?(await f)():f)[0];let i={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},j={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},k={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"}},l="openai-compatible-",m="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(l)}function h(a){return"string"==typeof a&&a.startsWith(m)}let n={...i,...j,...k},o=Object.values(n).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(n).reduce((a,b)=>(a[b.id]=b.alias,a),{}),(0,e.LA)(i,"FREE_PROVIDERS"),(0,e.LA)(j,"OAUTH_PROVIDERS"),(0,e.LA)(k,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},38369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>t});var e=c(83596),f=c(8959),g=a([f]);f=(g.then?(await g)():g)[0];let u=new Set(["openai","openai-responses"]),v=new Set(["gemini","gemini-cli"]);function h(a){return(a||"").trim().replace(/\/$/,"")}function i(a){return{"Content-Type":"application/json",Authorization:`Bearer ${a}`}}async function j({provider:a,apiKey:b,baseUrl:c,providerSpecificData:d={},modelId:e="gpt-4o-mini",modelsUrl:g}){if(!c)return{valid:!1,error:"Missing base URL"};let j=g||function(a){let b=h(a);if(!b)return"";for(let a of["/chat/completions","/responses","/chat","/messages"])if(b.endsWith(a))return`${b.slice(0,-a.length)}/models`;return`${b}/models`}(c);if(!j)return{valid:!1,error:"Invalid models endpoint"};let k=await fetch(j,{method:"GET",headers:i(b)});if(k.ok)return{valid:!0,error:null};if(401===k.status||403===k.status)return{valid:!1,error:"Invalid API key"};let l=function(a,b,c={}){let d=h(b);return d?(0,f.mq)(a)?c?.apiType==="responses"?`${d}/responses`:`${d}/chat/completions`:d.endsWith("/chat/completions")||d.endsWith("/responses")||d.endsWith("/chat")?d:d.endsWith("/v1")?`${d}/chat/completions`:d:""}(a,c,d);if(!l)return{valid:!1,error:`Validation failed: ${k.status}`};let m=await fetch(l,{method:"POST",headers:i(b),body:JSON.stringify({model:e,messages:[{role:"user",content:"test"}],max_tokens:1})});return m.ok?{valid:!0,error:null}:401===m.status||403===m.status?{valid:!1,error:"Invalid API key"}:404===m.status||405===m.status?{valid:!1,error:"Provider validation endpoint not supported"}:m.status>=500?{valid:!1,error:`Provider unavailable (${m.status})`}:{valid:!0,error:null}}async function k({apiKey:a,baseUrl:b,modelId:c,headers:d={}}){if(!b)return{valid:!1,error:"Missing base URL"};let e={"Content-Type":"application/json",...d};e["x-api-key"]||e["X-API-Key"]||(e["x-api-key"]=a),e["anthropic-version"]||e["Anthropic-Version"]||(e["anthropic-version"]="2023-06-01");let f=await fetch(b,{method:"POST",headers:e,body:JSON.stringify({model:c||"claude-3-5-sonnet-20241022",max_tokens:1,messages:[{role:"user",content:"test"}]})});return 401===f.status||403===f.status?{valid:!1,error:"Invalid API key"}:{valid:!0,error:null}}async function l({apiKey:a,baseUrl:b}){if(!b)return{valid:!1,error:"Missing base URL"};let c=b.includes("?")?"&":"?",d=await fetch(`${b}${c}key=${encodeURIComponent(a)}`,{method:"GET",headers:{"Content-Type":"application/json"}});return d.ok?{valid:!0,error:null}:401===d.status||403===d.status?{valid:!1,error:"Invalid API key"}:{valid:!1,error:`Validation failed: ${d.status}`}}async function m({apiKey:a}){try{let b=await fetch("https://api.deepgram.com/v1/auth/token",{method:"GET",headers:{Authorization:`Token ${a}`}});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!1,error:`Validation failed: ${b.status}`}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function n({apiKey:a}){try{let b=await fetch("https://api.assemblyai.com/v2/transcript?limit=1",{method:"GET",headers:{Authorization:a,"Content-Type":"application/json"}});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!1,error:`Validation failed: ${b.status}`}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function o({apiKey:a}){try{let b=await fetch("https://api.nanobananaapi.ai/api/v1/nanobanana/generate",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({prompt:"test",model:"nanobanana-flash"})});if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!0,error:null}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function p({apiKey:a}){try{let b=await fetch("https://api.elevenlabs.io/v1/voices",{method:"GET",headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!1,error:`Validation failed: ${b.status}`}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function q({apiKey:a}){try{let b=await fetch("https://api.inworld.ai/tts/v1/voice",{method:"POST",headers:{Authorization:`Basic ${a}`,"Content-Type":"application/json"},body:JSON.stringify({text:"test",modelId:"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!0,error:null}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function r({apiKey:a,providerSpecificData:b={}}){let c=h(b.baseUrl);if(!c)return{valid:!1,error:"No base URL configured for OpenAI compatible provider"};try{let b=await fetch(`${c}/models`,{method:"GET",headers:i(a)});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"}}catch{}let d=b.apiType||"chat",e=`${c}${"responses"===d?"/responses":"/chat/completions"}`;try{let b=await fetch(e,{method:"POST",headers:i(a),body:JSON.stringify({model:"gpt-4o-mini",messages:[{role:"user",content:"test"}],max_tokens:1})});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};if(b.status>=400&&b.status<500)return{valid:!0,error:null};if(b.status>=500)return{valid:!1,error:`Provider unavailable (${b.status})`}}catch{}try{let b=await fetch(c,{method:"GET",headers:i(a),signal:AbortSignal.timeout(5e3)});if(b.status<500)return{valid:!0,error:null};return{valid:!1,error:`Provider unavailable (${b.status})`}}catch(a){return{valid:!1,error:a.message||"Connection failed"}}}async function s({apiKey:a,providerSpecificData:b={}}){let c=h(b.baseUrl);if(!c)return{valid:!1,error:"No base URL configured for Anthropic compatible provider"};c.endsWith("/messages")&&(c=c.slice(0,-9));let d={"Content-Type":"application/json","x-api-key":a,"anthropic-version":"2023-06-01",Authorization:`Bearer ${a}`};try{let a=await fetch(`${c}/models`,{method:"GET",headers:d});if(a.ok)return{valid:!0,error:null};if(401===a.status||403===a.status)return{valid:!1,error:"Invalid API key"}}catch{}try{let a=await fetch(`${c}/messages`,{method:"POST",headers:d,body:JSON.stringify({model:"claude-3-5-sonnet-20241022",max_tokens:1,messages:[{role:"user",content:"test"}]})});if(401===a.status||403===a.status)return{valid:!1,error:"Invalid API key"};return{valid:!0,error:null}}catch(a){return{valid:!1,error:a.message||"Connection failed"}}}async function t({provider:a,apiKey:b,providerSpecificData:c={}}){if(!a||!b)return{valid:!1,error:"Provider and API key required",unsupported:!1};if((0,f.mq)(a))try{return await r({apiKey:b,providerSpecificData:c})}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}if((0,f.gb)(a))try{return await s({apiKey:b,providerSpecificData:c})}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}let d={deepgram:m,assemblyai:n,nanobanana:o,elevenlabs:p,inworld:q};if(d[a])try{return await d[a]({apiKey:b,providerSpecificData:c})}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}let g=(0,e.qs)(a);if(!g)return{valid:!1,error:"Provider validation not supported",unsupported:!0};let i=g.models?.[0]?.id||null,t=function(a,b={}){return b?.baseUrl?h(b.baseUrl):a?.baseUrl?h(a.baseUrl):""}(g,c);try{if(u.has(g.format))return await j({provider:a,apiKey:b,baseUrl:t,providerSpecificData:c,modelId:i,modelsUrl:g.modelsUrl});if("claude"===g.format){let a=`${t}${g.urlSuffix||""}`,c={...g.headers||{}};return"x-api-key"===(g.authHeader||"").toLowerCase()?c["x-api-key"]=b:c.Authorization=`Bearer ${b}`,await k({apiKey:b,baseUrl:a,modelId:i,headers:c})}if(v.has(g.format))return await l({apiKey:b,baseUrl:t});return{valid:!1,error:"Provider validation not supported",unsupported:!0}}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}}d()}catch(a){d(a)}})},43701:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
1
+ "use strict";exports.id=8369,exports.ids=[8369],exports.modules={8959:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>m,IS:()=>i,JH:()=>l,Q2:()=>n,fg:()=>k,gb:()=>h,js:()=>o,mq:()=>g,zN:()=>j});var e=c(43701),f=a([e]);e=(f.then?(await f)():f)[0];let i={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},j={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},k={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"}},l="openai-compatible-",m="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(l)}function h(a){return"string"==typeof a&&a.startsWith(m)}let n={...i,...j,...k},o=Object.values(n).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(n).reduce((a,b)=>(a[b.id]=b.alias,a),{}),(0,e.LA)(i,"FREE_PROVIDERS"),(0,e.LA)(j,"OAUTH_PROVIDERS"),(0,e.LA)(k,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},38369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{j:()=>t});var e=c(83596),f=c(8959),g=a([f]);f=(g.then?(await g)():g)[0];let u=new Set(["openai","openai-responses"]),v=new Set(["gemini","gemini-cli"]);function h(a){return(a||"").trim().replace(/\/$/,"")}function i(a){return{"Content-Type":"application/json",Authorization:`Bearer ${a}`}}async function j({provider:a,apiKey:b,baseUrl:c,providerSpecificData:d={},modelId:e="gpt-4o-mini",modelsUrl:g}){if(!c)return{valid:!1,error:"Missing base URL"};let j=g||function(a){let b=h(a);if(!b)return"";for(let a of["/chat/completions","/responses","/chat","/messages"])if(b.endsWith(a))return`${b.slice(0,-a.length)}/models`;return`${b}/models`}(c);if(!j)return{valid:!1,error:"Invalid models endpoint"};let k=await fetch(j,{method:"GET",headers:i(b)});if(k.ok)return{valid:!0,error:null};if(401===k.status||403===k.status)return{valid:!1,error:"Invalid API key"};let l=function(a,b,c={}){let d=h(b);return d?(0,f.mq)(a)?c?.apiType==="responses"?`${d}/responses`:`${d}/chat/completions`:d.endsWith("/chat/completions")||d.endsWith("/responses")||d.endsWith("/chat")?d:d.endsWith("/v1")?`${d}/chat/completions`:d:""}(a,c,d);if(!l)return{valid:!1,error:`Validation failed: ${k.status}`};let m=await fetch(l,{method:"POST",headers:i(b),body:JSON.stringify({model:e,messages:[{role:"user",content:"test"}],max_tokens:1})});return m.ok?{valid:!0,error:null}:401===m.status||403===m.status?{valid:!1,error:"Invalid API key"}:404===m.status||405===m.status?{valid:!1,error:"Provider validation endpoint not supported"}:m.status>=500?{valid:!1,error:`Provider unavailable (${m.status})`}:{valid:!0,error:null}}async function k({apiKey:a,baseUrl:b,modelId:c,headers:d={}}){if(!b)return{valid:!1,error:"Missing base URL"};let e={"Content-Type":"application/json",...d};e["x-api-key"]||e["X-API-Key"]||(e["x-api-key"]=a),e["anthropic-version"]||e["Anthropic-Version"]||(e["anthropic-version"]="2023-06-01");let f=await fetch(b,{method:"POST",headers:e,body:JSON.stringify({model:c||"claude-3-5-sonnet-20241022",max_tokens:1,messages:[{role:"user",content:"test"}]})});return 401===f.status||403===f.status?{valid:!1,error:"Invalid API key"}:{valid:!0,error:null}}async function l({apiKey:a,baseUrl:b}){if(!b)return{valid:!1,error:"Missing base URL"};let c=b.includes("?")?"&":"?",d=await fetch(`${b}${c}key=${encodeURIComponent(a)}`,{method:"GET",headers:{"Content-Type":"application/json"}});return d.ok?{valid:!0,error:null}:401===d.status||403===d.status?{valid:!1,error:"Invalid API key"}:{valid:!1,error:`Validation failed: ${d.status}`}}async function m({apiKey:a}){try{let b=await fetch("https://api.deepgram.com/v1/auth/token",{method:"GET",headers:{Authorization:`Token ${a}`}});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!1,error:`Validation failed: ${b.status}`}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function n({apiKey:a}){try{let b=await fetch("https://api.assemblyai.com/v2/transcript?limit=1",{method:"GET",headers:{Authorization:a,"Content-Type":"application/json"}});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!1,error:`Validation failed: ${b.status}`}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function o({apiKey:a}){try{let b=await fetch("https://api.nanobananaapi.ai/api/v1/nanobanana/generate",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({prompt:"test",model:"nanobanana-flash"})});if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!0,error:null}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function p({apiKey:a}){try{let b=await fetch("https://api.elevenlabs.io/v1/voices",{method:"GET",headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!1,error:`Validation failed: ${b.status}`}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function q({apiKey:a}){try{let b=await fetch("https://api.inworld.ai/tts/v1/voice",{method:"POST",headers:{Authorization:`Basic ${a}`,"Content-Type":"application/json"},body:JSON.stringify({text:"test",modelId:"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};return{valid:!0,error:null}}catch(a){return{valid:!1,error:a.message||"Validation failed"}}}async function r({apiKey:a,providerSpecificData:b={}}){let c=h(b.baseUrl);if(!c)return{valid:!1,error:"No base URL configured for OpenAI compatible provider"};try{let b=await fetch(`${c}/models`,{method:"GET",headers:i(a)});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"}}catch{}let d=b.apiType||"chat",e=`${c}${"responses"===d?"/responses":"/chat/completions"}`;try{let b=await fetch(e,{method:"POST",headers:i(a),body:JSON.stringify({model:"gpt-4o-mini",messages:[{role:"user",content:"test"}],max_tokens:1})});if(b.ok)return{valid:!0,error:null};if(401===b.status||403===b.status)return{valid:!1,error:"Invalid API key"};if(b.status>=400&&b.status<500)return{valid:!0,error:null};if(b.status>=500)return{valid:!1,error:`Provider unavailable (${b.status})`}}catch{}try{let b=await fetch(c,{method:"GET",headers:i(a),signal:AbortSignal.timeout(5e3)});if(b.status<500)return{valid:!0,error:null};return{valid:!1,error:`Provider unavailable (${b.status})`}}catch(a){return{valid:!1,error:a.message||"Connection failed"}}}async function s({apiKey:a,providerSpecificData:b={}}){let c=h(b.baseUrl);if(!c)return{valid:!1,error:"No base URL configured for Anthropic compatible provider"};c.endsWith("/messages")&&(c=c.slice(0,-9));let d={"Content-Type":"application/json","x-api-key":a,"anthropic-version":"2023-06-01",Authorization:`Bearer ${a}`};try{let a=await fetch(`${c}/models`,{method:"GET",headers:d});if(a.ok)return{valid:!0,error:null};if(401===a.status||403===a.status)return{valid:!1,error:"Invalid API key"}}catch{}try{let a=await fetch(`${c}/messages`,{method:"POST",headers:d,body:JSON.stringify({model:"claude-3-5-sonnet-20241022",max_tokens:1,messages:[{role:"user",content:"test"}]})});if(401===a.status||403===a.status)return{valid:!1,error:"Invalid API key"};return{valid:!0,error:null}}catch(a){return{valid:!1,error:a.message||"Connection failed"}}}async function t({provider:a,apiKey:b,providerSpecificData:c={}}){if(!a||!b)return{valid:!1,error:"Provider and API key required",unsupported:!1};if((0,f.mq)(a))try{return await r({apiKey:b,providerSpecificData:c})}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}if((0,f.gb)(a))try{return await s({apiKey:b,providerSpecificData:c})}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}let d={deepgram:m,assemblyai:n,nanobanana:o,elevenlabs:p,inworld:q};if(d[a])try{return await d[a]({apiKey:b,providerSpecificData:c})}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}let g=(0,e.qs)(a);if(!g)return{valid:!1,error:"Provider validation not supported",unsupported:!0};let i=g.models?.[0]?.id||null,t=function(a,b={}){return b?.baseUrl?h(b.baseUrl):a?.baseUrl?h(a.baseUrl):""}(g,c);try{if(u.has(g.format))return await j({provider:a,apiKey:b,baseUrl:t,providerSpecificData:c,modelId:i,modelsUrl:g.modelsUrl});if("claude"===g.format){let a=`${t}${g.urlSuffix||""}`,c={...g.headers||{}};return"x-api-key"===(g.authHeader||"").toLowerCase()?c["x-api-key"]=b:c.Authorization=`Bearer ${b}`,await k({apiKey:b,baseUrl:a,modelId:i,headers:c})}if(v.has(g.format))return await l({apiKey:b,baseUrl:t});return{valid:!1,error:"Provider validation not supported",unsupported:!0}}catch(a){return{valid:!1,error:a.message||"Validation failed",unsupported:!1}}}d()}catch(a){d(a)}})},43701:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
2
2
  ${a}`),Error(`Provider validation failed for ${b}`)}}d()}catch(a){d(a)}})}};