omniroute 0.3.0 → 0.5.0

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 (909) hide show
  1. package/README.md +86 -1135
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +30 -24
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/prerender-manifest.json +99 -3
  6. package/app/.next/routes-manifest.json +36 -0
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +2 -0
  8. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -0
  9. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -0
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  14. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  17. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +2 -0
  20. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -0
  21. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -0
  22. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  26. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  32. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  38. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +2 -2
  41. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  47. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  50. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/_global-error/page.js +2 -2
  53. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/_global-error.html +2 -2
  55. package/app/.next/server/app/_global-error.rsc +3 -3
  56. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
  57. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  58. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  59. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  60. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
  61. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  62. package/app/.next/server/app/_not-found/page.js +1 -1
  63. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  64. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/_not-found.html +1 -1
  66. package/app/.next/server/app/_not-found.rsc +5 -5
  67. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
  68. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  69. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  70. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  71. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  72. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  73. package/app/.next/server/app/api/auth/login/route.js +1 -1
  74. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  75. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cache/route.js +2 -0
  78. package/app/.next/server/app/api/cache/route.js.nft.json +1 -0
  79. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -0
  80. package/app/.next/server/app/api/cache/stats/route.js +1 -1
  81. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -157
  83. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  84. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  86. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  88. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +1 -1
  90. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +2 -2
  92. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +2 -2
  94. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  96. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  98. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  101. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  103. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  105. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/cloud/auth/route.js +1 -156
  107. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -156
  110. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -156
  113. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  116. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  119. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/combos/route.js +1 -1
  123. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/combos/test/route.js +1 -156
  126. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/compliance/audit-log/route.js +1 -156
  129. package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/db-backups/route.js +1 -156
  132. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  133. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/evals/[suiteId]/route.js +1 -1
  135. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/evals/route.js +1 -1
  137. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/fallback/chains/route.js +3 -1
  139. package/app/.next/server/app/api/fallback/chains/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/init/route.js +1 -1
  142. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  145. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/keys/route.js +1 -1
  148. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/models/alias/route.js +1 -1
  151. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/models/catalog/route.js +2 -156
  155. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/models/route.js +2 -156
  158. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/monitoring/health/route.js +2 -0
  161. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -0
  162. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -0
  163. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +2 -2
  164. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  168. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  169. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  172. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  176. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/policies/route.js +3 -1
  179. package/app/.next/server/app/api/policies/route.js.nft.json +1 -1
  180. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/pricing/defaults/route.js +1 -1
  182. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/pricing/models/route.js +1 -156
  184. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/pricing/route.js +1 -156
  187. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/provider-models/route.js +1 -156
  190. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -156
  193. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/provider-nodes/route.js +2 -156
  196. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -156
  200. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  202. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  203. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  205. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  206. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  208. package/app/.next/server/app/api/providers/client/route.js +1 -156
  209. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/providers/route.js +2 -1
  212. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/providers/test-batch/route.js +2 -156
  215. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  217. package/app/.next/server/app/api/providers/validate/route.js +1 -156
  218. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  220. package/app/.next/server/app/api/rate-limit/route.js +1 -156
  221. package/app/.next/server/app/api/rate-limit/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  223. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  224. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  226. package/app/.next/server/app/api/resilience/reset/route.js +1 -1
  227. package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -1
  228. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  229. package/app/.next/server/app/api/resilience/route.js +1 -156
  230. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  232. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  233. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  234. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -156
  235. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  236. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  237. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  238. package/app/.next/server/app/api/settings/proxy/route.js +1 -156
  239. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  240. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  241. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/settings/require-login/route.js +1 -156
  243. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  245. package/app/.next/server/app/api/settings/route.js +1 -1
  246. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -156
  249. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -156
  252. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  255. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  256. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  257. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  258. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  259. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  260. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  262. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  263. package/app/.next/server/app/api/telemetry/summary/route.js +1 -1
  264. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  265. package/app/.next/server/app/api/token-health/route.js +1 -156
  266. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  267. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  268. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  269. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  270. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  271. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  272. package/app/.next/server/app/api/translator/send/route.js +1 -1
  273. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  275. package/app/.next/server/app/api/translator/translate/route.js +1 -156
  276. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  278. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  279. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  280. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  281. package/app/.next/server/app/api/usage/analytics/route.js +1 -156
  282. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  284. package/app/.next/server/app/api/usage/budget/route.js +3 -1
  285. package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
  286. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  287. package/app/.next/server/app/api/usage/call-logs/[id]/route.js +1 -156
  288. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  289. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/usage/call-logs/route.js +1 -156
  291. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/usage/history/route.js +1 -156
  294. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  296. package/app/.next/server/app/api/usage/logs/route.js +1 -156
  297. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  298. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  299. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  300. package/app/.next/server/app/api/usage/request-logs/route.js +1 -156
  301. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  302. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  303. package/app/.next/server/app/api/v1/api/chat/route.js +1 -156
  304. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  307. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  310. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  313. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  314. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  315. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  316. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  317. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  318. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  319. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  320. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  321. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  322. package/app/.next/server/app/api/v1/messages/route.js +1 -156
  323. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  324. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  325. package/app/.next/server/app/api/v1/models/route.js +2 -1
  326. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  327. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  328. package/app/.next/server/app/api/v1/moderations/route.js +1 -156
  329. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  330. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  331. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -156
  332. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  333. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  334. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -156
  335. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  336. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  337. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  338. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  339. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  340. package/app/.next/server/app/api/v1/rerank/route.js +1 -156
  341. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  342. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  343. package/app/.next/server/app/api/v1/responses/route.js +1 -156
  344. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  345. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  346. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  347. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -156
  348. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  349. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  350. package/app/.next/server/app/api/v1beta/models/route.js +2 -1
  351. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  352. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  353. package/app/.next/server/app/callback/page.js +1 -1
  354. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  355. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  356. package/app/.next/server/app/callback.html +1 -1
  357. package/app/.next/server/app/callback.rsc +5 -5
  358. package/app/.next/server/app/callback.segments/_full.segment.rsc +5 -5
  359. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  360. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  361. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  362. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  363. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  364. package/app/.next/server/app/dashboard/analytics.html +1 -0
  365. package/app/.next/server/app/dashboard/analytics.meta +17 -0
  366. package/app/.next/server/app/dashboard/analytics.rsc +24 -0
  367. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +9 -0
  368. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +4 -0
  369. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
  370. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  371. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +24 -0
  372. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +6 -0
  373. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +9 -0
  374. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +5 -0
  375. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  376. package/app/.next/server/app/dashboard/cli-tools.rsc +7 -7
  377. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  378. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  379. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  380. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  381. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +7 -7
  382. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  383. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  384. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  385. package/app/.next/server/app/dashboard/combos.html +1 -1
  386. package/app/.next/server/app/dashboard/combos.rsc +7 -7
  387. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  388. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  389. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  390. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  391. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +7 -7
  392. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  393. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  394. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  395. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  396. package/app/.next/server/app/dashboard/endpoint.rsc +7 -7
  397. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  398. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  399. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  400. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  401. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +7 -7
  402. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  403. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  404. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  405. package/app/.next/server/app/dashboard/health.html +1 -0
  406. package/app/.next/server/app/dashboard/health.meta +17 -0
  407. package/app/.next/server/app/dashboard/health.rsc +24 -0
  408. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +9 -0
  409. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +4 -0
  410. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +4 -0
  411. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +5 -0
  412. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +24 -0
  413. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +6 -0
  414. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +9 -0
  415. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +5 -0
  416. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  417. package/app/.next/server/app/dashboard/onboarding.rsc +6 -6
  418. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  419. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  420. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  421. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  422. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +6 -6
  423. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  424. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +4 -4
  425. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +2 -2
  426. package/app/.next/server/app/dashboard/profile.html +1 -1
  427. package/app/.next/server/app/dashboard/profile.rsc +6 -6
  428. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  429. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  430. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  431. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  432. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +6 -6
  433. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  434. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  435. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  436. package/app/.next/server/app/dashboard/providers/new.html +1 -1
  437. package/app/.next/server/app/dashboard/providers/new.rsc +7 -7
  438. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  439. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  440. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  441. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  442. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  443. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +7 -7
  444. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  445. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  446. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  447. package/app/.next/server/app/dashboard/providers.html +1 -1
  448. package/app/.next/server/app/dashboard/providers.rsc +7 -7
  449. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  450. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  451. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  452. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  453. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +7 -7
  454. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  455. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  456. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  457. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  458. package/app/.next/server/app/dashboard/settings/pricing.rsc +7 -7
  459. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  460. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  461. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  462. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  463. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  464. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  465. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  466. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  467. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  468. package/app/.next/server/app/dashboard/settings.html +1 -1
  469. package/app/.next/server/app/dashboard/settings.rsc +7 -7
  470. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  471. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  472. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  473. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  474. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +7 -7
  475. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  476. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +4 -4
  477. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +2 -2
  478. package/app/.next/server/app/dashboard/translator.html +2 -2
  479. package/app/.next/server/app/dashboard/translator.rsc +7 -7
  480. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  481. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  482. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  483. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  484. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +7 -7
  485. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  486. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  487. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  488. package/app/.next/server/app/dashboard/usage.html +2 -2
  489. package/app/.next/server/app/dashboard/usage.rsc +7 -7
  490. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  491. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  492. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  493. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  494. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +7 -7
  495. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  496. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  497. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  498. package/app/.next/server/app/docs/page.js +3 -2
  499. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  500. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  501. package/app/.next/server/app/docs.html +1 -1
  502. package/app/.next/server/app/docs.rsc +21 -20
  503. package/app/.next/server/app/docs.segments/_full.segment.rsc +21 -20
  504. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  505. package/app/.next/server/app/docs.segments/_index.segment.rsc +4 -4
  506. package/app/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  507. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  508. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  509. package/app/.next/server/app/forbidden/page.js +2 -0
  510. package/app/.next/server/app/forbidden/page.js.nft.json +1 -0
  511. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -0
  512. package/app/.next/server/app/forbidden.html +1 -0
  513. package/app/.next/server/app/forbidden.meta +15 -0
  514. package/app/.next/server/app/forbidden.rsc +23 -0
  515. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +23 -0
  516. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +6 -0
  517. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +9 -0
  518. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +5 -0
  519. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +9 -0
  520. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +4 -0
  521. package/app/.next/server/app/forgot-password/page.js +2 -0
  522. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -0
  523. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -0
  524. package/app/.next/server/app/forgot-password.html +1 -0
  525. package/app/.next/server/app/forgot-password.meta +15 -0
  526. package/app/.next/server/app/forgot-password.rsc +23 -0
  527. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +23 -0
  528. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +6 -0
  529. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +9 -0
  530. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +5 -0
  531. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +9 -0
  532. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +4 -0
  533. package/app/.next/server/app/index.html +1 -1
  534. package/app/.next/server/app/index.rsc +5 -5
  535. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  536. package/app/.next/server/app/index.segments/_full.segment.rsc +5 -5
  537. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  538. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  539. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  540. package/app/.next/server/app/landing/page.js +1 -1
  541. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  542. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  543. package/app/.next/server/app/landing.html +1 -1
  544. package/app/.next/server/app/landing.rsc +6 -6
  545. package/app/.next/server/app/landing.segments/_full.segment.rsc +6 -6
  546. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  547. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  548. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  549. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +2 -2
  550. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  551. package/app/.next/server/app/login/page.js +1 -1
  552. package/app/.next/server/app/login/page.js.nft.json +1 -1
  553. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  554. package/app/.next/server/app/login.html +1 -1
  555. package/app/.next/server/app/login.rsc +6 -6
  556. package/app/.next/server/app/login.segments/_full.segment.rsc +6 -6
  557. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  558. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  559. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  560. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  561. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  562. package/app/.next/server/app/page.js +1 -1
  563. package/app/.next/server/app/page.js.nft.json +1 -1
  564. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  565. package/app/.next/server/app/privacy/page.js +1 -1
  566. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  567. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  568. package/app/.next/server/app/privacy.html +1 -1
  569. package/app/.next/server/app/privacy.rsc +20 -21
  570. package/app/.next/server/app/privacy.segments/_full.segment.rsc +20 -21
  571. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  572. package/app/.next/server/app/privacy.segments/_index.segment.rsc +4 -4
  573. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +2 -2
  574. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +2 -2
  575. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  576. package/app/.next/server/app/terms/page.js +1 -1
  577. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  578. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  579. package/app/.next/server/app/terms.html +1 -1
  580. package/app/.next/server/app/terms.rsc +21 -19
  581. package/app/.next/server/app/terms.segments/_full.segment.rsc +21 -19
  582. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  583. package/app/.next/server/app/terms.segments/_index.segment.rsc +4 -4
  584. package/app/.next/server/app/terms.segments/_tree.segment.rsc +2 -2
  585. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  586. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  587. package/app/.next/server/app-paths-manifest.json +30 -24
  588. package/app/.next/server/chunks/1228.js +3 -1
  589. package/app/.next/server/chunks/152.js +1 -1
  590. package/app/.next/server/chunks/1746.js +1 -0
  591. package/app/.next/server/chunks/216.js +37 -0
  592. package/app/.next/server/chunks/2399.js +1 -1
  593. package/app/.next/server/chunks/3676.js +2 -1
  594. package/app/.next/server/chunks/4004.js +1 -1
  595. package/app/.next/server/chunks/4352.js +46 -0
  596. package/app/.next/server/chunks/4443.js +1 -1
  597. package/app/.next/server/chunks/{8259.js → 4469.js} +52 -2
  598. package/app/.next/server/chunks/4755.js +3 -3
  599. package/app/.next/server/chunks/4832.js +2 -2
  600. package/app/.next/server/chunks/5040.js +1 -1
  601. package/app/.next/server/chunks/5727.js +1 -0
  602. package/app/.next/server/chunks/6599.js +1 -1
  603. package/app/.next/server/chunks/7093.js +2 -0
  604. package/app/.next/server/chunks/7615.js +9 -2
  605. package/app/.next/server/chunks/7763.js +1 -0
  606. package/app/.next/server/chunks/7802.js +1 -0
  607. package/app/.next/server/chunks/7968.js +3 -1
  608. package/app/.next/server/chunks/8392.js +1 -0
  609. package/app/.next/server/chunks/8847.js +3 -0
  610. package/app/.next/server/chunks/9263.js +1 -0
  611. package/app/.next/server/middleware.js +207 -2
  612. package/app/.next/server/pages/404.html +1 -1
  613. package/app/.next/server/pages/500.html +2 -2
  614. package/app/.next/server/server-reference-manifest.js +1 -1
  615. package/app/.next/server/server-reference-manifest.json +1 -1
  616. package/app/.next/static/chunks/1525-886426e50105474d.js +21 -0
  617. package/app/.next/static/chunks/3191-0bbb8ebd1bd32d1d.js +1 -0
  618. package/app/.next/static/chunks/7896-42bb02212fd79c37.js +2 -0
  619. package/app/.next/static/chunks/9751-3a35163d337d54ea.js +37 -0
  620. package/app/.next/static/chunks/app/(dashboard)/dashboard/analytics/page-7a3dc7db5858bb3b.js +1 -0
  621. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-148b0ad18f6bec86.js → page-4cec40aa933b932e.js} +1 -1
  622. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-bdb5be890b523066.js +1 -0
  623. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-c08e4e402bafcf57.js +1 -0
  624. package/app/.next/static/chunks/app/(dashboard)/dashboard/health/page-f2287385af528be2.js +1 -0
  625. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-47808673eb1f72ec.js +1 -0
  626. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-c02303813bcb9777.js +1 -0
  627. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-958706ed6aa9d18b.js +1 -0
  628. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/new/{page-4bd8ea64f2e8008b.js → page-9667287d75830fd5.js} +1 -1
  629. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-2af3523f530f984a.js +1 -0
  630. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-a94b8f5327b8392c.js +1 -0
  631. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-834e40170968cf11.js +1 -0
  632. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-c891465a1a2938d2.js → page-6190920e7526556c.js} +1 -1
  633. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-32e5d24d60a03c23.js +1 -0
  634. package/app/.next/static/chunks/app/(dashboard)/{layout-e84875e22efbf437.js → layout-b6fc79d0628b97e3.js} +1 -1
  635. package/app/.next/static/chunks/app/_global-error/page-c02303813bcb9777.js +1 -0
  636. package/app/.next/static/chunks/app/_not-found/page-c02303813bcb9777.js +1 -0
  637. package/app/.next/static/chunks/app/api/auth/login/route-c02303813bcb9777.js +1 -0
  638. package/app/.next/static/chunks/app/api/auth/logout/route-c02303813bcb9777.js +1 -0
  639. package/app/.next/static/chunks/app/api/cache/route-c02303813bcb9777.js +1 -0
  640. package/app/.next/static/chunks/app/api/cache/stats/route-c02303813bcb9777.js +1 -0
  641. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-c02303813bcb9777.js +1 -0
  642. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-c02303813bcb9777.js +1 -0
  643. package/app/.next/static/chunks/app/api/cli-tools/backups/route-c02303813bcb9777.js +1 -0
  644. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-c02303813bcb9777.js +1 -0
  645. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-c02303813bcb9777.js +1 -0
  646. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-c02303813bcb9777.js +1 -0
  647. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-c02303813bcb9777.js +1 -0
  648. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-c02303813bcb9777.js +1 -0
  649. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-c02303813bcb9777.js +1 -0
  650. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-c02303813bcb9777.js +1 -0
  651. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-c02303813bcb9777.js +1 -0
  652. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-c02303813bcb9777.js +1 -0
  653. package/app/.next/static/chunks/app/api/cloud/auth/route-c02303813bcb9777.js +1 -0
  654. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-c02303813bcb9777.js +1 -0
  655. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-c02303813bcb9777.js +1 -0
  656. package/app/.next/static/chunks/app/api/cloud/models/alias/route-c02303813bcb9777.js +1 -0
  657. package/app/.next/static/chunks/app/api/combos/[id]/route-c02303813bcb9777.js +1 -0
  658. package/app/.next/static/chunks/app/api/combos/metrics/route-c02303813bcb9777.js +1 -0
  659. package/app/.next/static/chunks/app/api/combos/route-c02303813bcb9777.js +1 -0
  660. package/app/.next/static/chunks/app/api/combos/test/route-c02303813bcb9777.js +1 -0
  661. package/app/.next/static/chunks/app/api/compliance/audit-log/route-c02303813bcb9777.js +1 -0
  662. package/app/.next/static/chunks/app/api/db-backups/route-c02303813bcb9777.js +1 -0
  663. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-c02303813bcb9777.js +1 -0
  664. package/app/.next/static/chunks/app/api/evals/route-c02303813bcb9777.js +1 -0
  665. package/app/.next/static/chunks/app/api/fallback/chains/route-c02303813bcb9777.js +1 -0
  666. package/app/.next/static/chunks/app/api/init/route-c02303813bcb9777.js +1 -0
  667. package/app/.next/static/chunks/app/api/keys/[id]/route-c02303813bcb9777.js +1 -0
  668. package/app/.next/static/chunks/app/api/keys/route-c02303813bcb9777.js +1 -0
  669. package/app/.next/static/chunks/app/api/models/alias/route-c02303813bcb9777.js +1 -0
  670. package/app/.next/static/chunks/app/api/models/availability/route-c02303813bcb9777.js +1 -0
  671. package/app/.next/static/chunks/app/api/models/catalog/route-c02303813bcb9777.js +1 -0
  672. package/app/.next/static/chunks/app/api/models/route-c02303813bcb9777.js +1 -0
  673. package/app/.next/static/chunks/app/api/monitoring/health/route-c02303813bcb9777.js +1 -0
  674. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-c02303813bcb9777.js +1 -0
  675. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-c02303813bcb9777.js +1 -0
  676. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-c02303813bcb9777.js +1 -0
  677. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-c02303813bcb9777.js +1 -0
  678. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-c02303813bcb9777.js +1 -0
  679. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-c02303813bcb9777.js +1 -0
  680. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-c02303813bcb9777.js +1 -0
  681. package/app/.next/static/chunks/app/api/policies/route-c02303813bcb9777.js +1 -0
  682. package/app/.next/static/chunks/app/api/pricing/defaults/route-c02303813bcb9777.js +1 -0
  683. package/app/.next/static/chunks/app/api/pricing/models/route-c02303813bcb9777.js +1 -0
  684. package/app/.next/static/chunks/app/api/pricing/route-c02303813bcb9777.js +1 -0
  685. package/app/.next/static/chunks/app/api/provider-models/route-c02303813bcb9777.js +1 -0
  686. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-c02303813bcb9777.js +1 -0
  687. package/app/.next/static/chunks/app/api/provider-nodes/route-c02303813bcb9777.js +1 -0
  688. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-c02303813bcb9777.js +1 -0
  689. package/app/.next/static/chunks/app/api/providers/[id]/models/route-c02303813bcb9777.js +1 -0
  690. package/app/.next/static/chunks/app/api/providers/[id]/route-c02303813bcb9777.js +1 -0
  691. package/app/.next/static/chunks/app/api/providers/[id]/test/route-c02303813bcb9777.js +1 -0
  692. package/app/.next/static/chunks/app/api/providers/client/route-c02303813bcb9777.js +1 -0
  693. package/app/.next/static/chunks/app/api/providers/route-c02303813bcb9777.js +1 -0
  694. package/app/.next/static/chunks/app/api/providers/test-batch/route-c02303813bcb9777.js +1 -0
  695. package/app/.next/static/chunks/app/api/providers/validate/route-c02303813bcb9777.js +1 -0
  696. package/app/.next/static/chunks/app/api/rate-limit/route-c02303813bcb9777.js +1 -0
  697. package/app/.next/static/chunks/app/api/rate-limits/route-c02303813bcb9777.js +1 -0
  698. package/app/.next/static/chunks/app/api/resilience/reset/route-c02303813bcb9777.js +1 -0
  699. package/app/.next/static/chunks/app/api/resilience/route-c02303813bcb9777.js +1 -0
  700. package/app/.next/static/chunks/app/api/restart/route-c02303813bcb9777.js +1 -0
  701. package/app/.next/static/chunks/app/api/sessions/route-c02303813bcb9777.js +1 -0
  702. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-c02303813bcb9777.js +1 -0
  703. package/app/.next/static/chunks/app/api/settings/ip-filter/route-c02303813bcb9777.js +1 -0
  704. package/app/.next/static/chunks/app/api/settings/proxy/route-c02303813bcb9777.js +1 -0
  705. package/app/.next/static/chunks/app/api/settings/proxy/test/route-c02303813bcb9777.js +1 -0
  706. package/app/.next/static/chunks/app/api/settings/require-login/route-c02303813bcb9777.js +1 -0
  707. package/app/.next/static/chunks/app/api/settings/route-c02303813bcb9777.js +1 -0
  708. package/app/.next/static/chunks/app/api/settings/system-prompt/route-c02303813bcb9777.js +1 -0
  709. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-c02303813bcb9777.js +1 -0
  710. package/app/.next/static/chunks/app/api/shutdown/route-c02303813bcb9777.js +1 -0
  711. package/app/.next/static/chunks/app/api/storage/health/route-c02303813bcb9777.js +1 -0
  712. package/app/.next/static/chunks/app/api/sync/cloud/route-c02303813bcb9777.js +1 -0
  713. package/app/.next/static/chunks/app/api/sync/initialize/route-c02303813bcb9777.js +1 -0
  714. package/app/.next/static/chunks/app/api/tags/route-c02303813bcb9777.js +1 -0
  715. package/app/.next/static/chunks/app/api/telemetry/summary/route-c02303813bcb9777.js +1 -0
  716. package/app/.next/static/chunks/app/api/token-health/route-c02303813bcb9777.js +1 -0
  717. package/app/.next/static/chunks/app/api/translator/detect/route-c02303813bcb9777.js +1 -0
  718. package/app/.next/static/chunks/app/api/translator/history/route-c02303813bcb9777.js +1 -0
  719. package/app/.next/static/chunks/app/api/translator/load/route-c02303813bcb9777.js +1 -0
  720. package/app/.next/static/chunks/app/api/translator/save/route-c02303813bcb9777.js +1 -0
  721. package/app/.next/static/chunks/app/api/translator/send/route-c02303813bcb9777.js +1 -0
  722. package/app/.next/static/chunks/app/api/translator/translate/route-c02303813bcb9777.js +1 -0
  723. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-c02303813bcb9777.js +1 -0
  724. package/app/.next/static/chunks/app/api/usage/analytics/route-c02303813bcb9777.js +1 -0
  725. package/app/.next/static/chunks/app/api/usage/budget/route-c02303813bcb9777.js +1 -0
  726. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-c02303813bcb9777.js +1 -0
  727. package/app/.next/static/chunks/app/api/usage/call-logs/route-c02303813bcb9777.js +1 -0
  728. package/app/.next/static/chunks/app/api/usage/history/route-c02303813bcb9777.js +1 -0
  729. package/app/.next/static/chunks/app/api/usage/logs/route-c02303813bcb9777.js +1 -0
  730. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-c02303813bcb9777.js +1 -0
  731. package/app/.next/static/chunks/app/api/usage/request-logs/route-c02303813bcb9777.js +1 -0
  732. package/app/.next/static/chunks/app/api/v1/api/chat/route-c02303813bcb9777.js +1 -0
  733. package/app/.next/static/chunks/app/api/v1/audio/speech/route-c02303813bcb9777.js +1 -0
  734. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-c02303813bcb9777.js +1 -0
  735. package/app/.next/static/chunks/app/api/v1/chat/completions/route-c02303813bcb9777.js +1 -0
  736. package/app/.next/static/chunks/app/api/v1/embeddings/route-c02303813bcb9777.js +1 -0
  737. package/app/.next/static/chunks/app/api/v1/images/generations/route-c02303813bcb9777.js +1 -0
  738. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-c02303813bcb9777.js +1 -0
  739. package/app/.next/static/chunks/app/api/v1/messages/route-c02303813bcb9777.js +1 -0
  740. package/app/.next/static/chunks/app/api/v1/models/route-c02303813bcb9777.js +1 -0
  741. package/app/.next/static/chunks/app/api/v1/moderations/route-c02303813bcb9777.js +1 -0
  742. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-c02303813bcb9777.js +1 -0
  743. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-c02303813bcb9777.js +1 -0
  744. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-c02303813bcb9777.js +1 -0
  745. package/app/.next/static/chunks/app/api/v1/rerank/route-c02303813bcb9777.js +1 -0
  746. package/app/.next/static/chunks/app/api/v1/responses/route-c02303813bcb9777.js +1 -0
  747. package/app/.next/static/chunks/app/api/v1/route-c02303813bcb9777.js +1 -0
  748. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-c02303813bcb9777.js +1 -0
  749. package/app/.next/static/chunks/app/api/v1beta/models/route-c02303813bcb9777.js +1 -0
  750. package/app/.next/static/chunks/app/forbidden/page-6806872971c364f0.js +1 -0
  751. package/app/.next/static/chunks/app/forgot-password/page-9c116a597f3df4d1.js +1 -0
  752. package/app/.next/static/chunks/app/global-error-6abc2976016d7bd1.js +1 -0
  753. package/app/.next/static/chunks/app/landing/page-174931045e0028b2.js +1 -0
  754. package/app/.next/static/chunks/app/layout-6504ce60623b0a41.js +1 -0
  755. package/app/.next/static/chunks/app/login/{page-e99ed6a85e91ae7c.js → page-93ac51059ef434b7.js} +1 -1
  756. package/app/.next/static/chunks/app/not-found-e1af8b9c5785b71b.js +1 -0
  757. package/app/.next/static/chunks/app/page-c02303813bcb9777.js +1 -0
  758. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-c02303813bcb9777.js +1 -0
  759. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-c02303813bcb9777.js +1 -0
  760. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-c02303813bcb9777.js +1 -0
  761. package/app/.next/static/css/61fcae3369881104.css +1 -0
  762. package/app/.next/static/sTDitYd6vQZvJjlRJcZVe/_buildManifest.js +1 -0
  763. package/app/package.json +2 -2
  764. package/package.json +2 -2
  765. package/app/.next/server/chunks/1969.js +0 -1
  766. package/app/.next/server/chunks/21.js +0 -46
  767. package/app/.next/server/chunks/4412.js +0 -156
  768. package/app/.next/server/chunks/4436.js +0 -1
  769. package/app/.next/server/chunks/481.js +0 -156
  770. package/app/.next/server/chunks/5267.js +0 -1
  771. package/app/.next/server/chunks/5640.js +0 -1
  772. package/app/.next/server/chunks/9328.js +0 -156
  773. package/app/.next/static/HcUrNktdfL89Ss5F7FHxP/_buildManifest.js +0 -1
  774. package/app/.next/static/chunks/1525-213a0aff01eb1c70.js +0 -21
  775. package/app/.next/static/chunks/6941-0643e7aebf5ed645.js +0 -1
  776. package/app/.next/static/chunks/7896-5591822b8348e380.js +0 -1
  777. package/app/.next/static/chunks/8013-04b90e92e614b5d9.js +0 -1
  778. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-28e46119138cf102.js +0 -1
  779. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/page-ab8b870377087bc7.js +0 -1
  780. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-bc5764734a448526.js +0 -1
  781. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-329f30be723f33ce.js +0 -1
  782. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-fb1fa9ae8a3af8c8.js +0 -1
  783. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-fc3451fe77f856f1.js +0 -1
  784. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/page-95b884cdbf859e56.js +0 -1
  785. package/app/.next/static/chunks/app/(dashboard)/dashboard/settings/pricing/page-a22d14af518d5b43.js +0 -1
  786. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-7a0943932e7e5e51.js +0 -1
  787. package/app/.next/static/chunks/app/_global-error/page-329f30be723f33ce.js +0 -1
  788. package/app/.next/static/chunks/app/_not-found/page-329f30be723f33ce.js +0 -1
  789. package/app/.next/static/chunks/app/api/auth/login/route-329f30be723f33ce.js +0 -1
  790. package/app/.next/static/chunks/app/api/auth/logout/route-329f30be723f33ce.js +0 -1
  791. package/app/.next/static/chunks/app/api/cache/stats/route-329f30be723f33ce.js +0 -1
  792. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-329f30be723f33ce.js +0 -1
  793. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-329f30be723f33ce.js +0 -1
  794. package/app/.next/static/chunks/app/api/cli-tools/backups/route-329f30be723f33ce.js +0 -1
  795. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-329f30be723f33ce.js +0 -1
  796. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-329f30be723f33ce.js +0 -1
  797. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-329f30be723f33ce.js +0 -1
  798. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-329f30be723f33ce.js +0 -1
  799. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-329f30be723f33ce.js +0 -1
  800. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-329f30be723f33ce.js +0 -1
  801. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-329f30be723f33ce.js +0 -1
  802. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-329f30be723f33ce.js +0 -1
  803. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-329f30be723f33ce.js +0 -1
  804. package/app/.next/static/chunks/app/api/cloud/auth/route-329f30be723f33ce.js +0 -1
  805. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-329f30be723f33ce.js +0 -1
  806. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-329f30be723f33ce.js +0 -1
  807. package/app/.next/static/chunks/app/api/cloud/models/alias/route-329f30be723f33ce.js +0 -1
  808. package/app/.next/static/chunks/app/api/combos/[id]/route-329f30be723f33ce.js +0 -1
  809. package/app/.next/static/chunks/app/api/combos/metrics/route-329f30be723f33ce.js +0 -1
  810. package/app/.next/static/chunks/app/api/combos/route-329f30be723f33ce.js +0 -1
  811. package/app/.next/static/chunks/app/api/combos/test/route-329f30be723f33ce.js +0 -1
  812. package/app/.next/static/chunks/app/api/compliance/audit-log/route-329f30be723f33ce.js +0 -1
  813. package/app/.next/static/chunks/app/api/db-backups/route-329f30be723f33ce.js +0 -1
  814. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-329f30be723f33ce.js +0 -1
  815. package/app/.next/static/chunks/app/api/evals/route-329f30be723f33ce.js +0 -1
  816. package/app/.next/static/chunks/app/api/fallback/chains/route-329f30be723f33ce.js +0 -1
  817. package/app/.next/static/chunks/app/api/init/route-329f30be723f33ce.js +0 -1
  818. package/app/.next/static/chunks/app/api/keys/[id]/route-329f30be723f33ce.js +0 -1
  819. package/app/.next/static/chunks/app/api/keys/route-329f30be723f33ce.js +0 -1
  820. package/app/.next/static/chunks/app/api/models/alias/route-329f30be723f33ce.js +0 -1
  821. package/app/.next/static/chunks/app/api/models/availability/route-329f30be723f33ce.js +0 -1
  822. package/app/.next/static/chunks/app/api/models/catalog/route-329f30be723f33ce.js +0 -1
  823. package/app/.next/static/chunks/app/api/models/route-329f30be723f33ce.js +0 -1
  824. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-329f30be723f33ce.js +0 -1
  825. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-329f30be723f33ce.js +0 -1
  826. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-329f30be723f33ce.js +0 -1
  827. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-329f30be723f33ce.js +0 -1
  828. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-329f30be723f33ce.js +0 -1
  829. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-329f30be723f33ce.js +0 -1
  830. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-329f30be723f33ce.js +0 -1
  831. package/app/.next/static/chunks/app/api/policies/route-329f30be723f33ce.js +0 -1
  832. package/app/.next/static/chunks/app/api/pricing/defaults/route-329f30be723f33ce.js +0 -1
  833. package/app/.next/static/chunks/app/api/pricing/models/route-329f30be723f33ce.js +0 -1
  834. package/app/.next/static/chunks/app/api/pricing/route-329f30be723f33ce.js +0 -1
  835. package/app/.next/static/chunks/app/api/provider-models/route-329f30be723f33ce.js +0 -1
  836. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-329f30be723f33ce.js +0 -1
  837. package/app/.next/static/chunks/app/api/provider-nodes/route-329f30be723f33ce.js +0 -1
  838. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-329f30be723f33ce.js +0 -1
  839. package/app/.next/static/chunks/app/api/providers/[id]/models/route-329f30be723f33ce.js +0 -1
  840. package/app/.next/static/chunks/app/api/providers/[id]/route-329f30be723f33ce.js +0 -1
  841. package/app/.next/static/chunks/app/api/providers/[id]/test/route-329f30be723f33ce.js +0 -1
  842. package/app/.next/static/chunks/app/api/providers/client/route-329f30be723f33ce.js +0 -1
  843. package/app/.next/static/chunks/app/api/providers/route-329f30be723f33ce.js +0 -1
  844. package/app/.next/static/chunks/app/api/providers/test-batch/route-329f30be723f33ce.js +0 -1
  845. package/app/.next/static/chunks/app/api/providers/validate/route-329f30be723f33ce.js +0 -1
  846. package/app/.next/static/chunks/app/api/rate-limit/route-329f30be723f33ce.js +0 -1
  847. package/app/.next/static/chunks/app/api/rate-limits/route-329f30be723f33ce.js +0 -1
  848. package/app/.next/static/chunks/app/api/resilience/reset/route-329f30be723f33ce.js +0 -1
  849. package/app/.next/static/chunks/app/api/resilience/route-329f30be723f33ce.js +0 -1
  850. package/app/.next/static/chunks/app/api/restart/route-329f30be723f33ce.js +0 -1
  851. package/app/.next/static/chunks/app/api/sessions/route-329f30be723f33ce.js +0 -1
  852. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-329f30be723f33ce.js +0 -1
  853. package/app/.next/static/chunks/app/api/settings/ip-filter/route-329f30be723f33ce.js +0 -1
  854. package/app/.next/static/chunks/app/api/settings/proxy/route-329f30be723f33ce.js +0 -1
  855. package/app/.next/static/chunks/app/api/settings/proxy/test/route-329f30be723f33ce.js +0 -1
  856. package/app/.next/static/chunks/app/api/settings/require-login/route-329f30be723f33ce.js +0 -1
  857. package/app/.next/static/chunks/app/api/settings/route-329f30be723f33ce.js +0 -1
  858. package/app/.next/static/chunks/app/api/settings/system-prompt/route-329f30be723f33ce.js +0 -1
  859. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-329f30be723f33ce.js +0 -1
  860. package/app/.next/static/chunks/app/api/shutdown/route-329f30be723f33ce.js +0 -1
  861. package/app/.next/static/chunks/app/api/storage/health/route-329f30be723f33ce.js +0 -1
  862. package/app/.next/static/chunks/app/api/sync/cloud/route-329f30be723f33ce.js +0 -1
  863. package/app/.next/static/chunks/app/api/sync/initialize/route-329f30be723f33ce.js +0 -1
  864. package/app/.next/static/chunks/app/api/tags/route-329f30be723f33ce.js +0 -1
  865. package/app/.next/static/chunks/app/api/telemetry/summary/route-329f30be723f33ce.js +0 -1
  866. package/app/.next/static/chunks/app/api/token-health/route-329f30be723f33ce.js +0 -1
  867. package/app/.next/static/chunks/app/api/translator/detect/route-329f30be723f33ce.js +0 -1
  868. package/app/.next/static/chunks/app/api/translator/history/route-329f30be723f33ce.js +0 -1
  869. package/app/.next/static/chunks/app/api/translator/load/route-329f30be723f33ce.js +0 -1
  870. package/app/.next/static/chunks/app/api/translator/save/route-329f30be723f33ce.js +0 -1
  871. package/app/.next/static/chunks/app/api/translator/send/route-329f30be723f33ce.js +0 -1
  872. package/app/.next/static/chunks/app/api/translator/translate/route-329f30be723f33ce.js +0 -1
  873. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-329f30be723f33ce.js +0 -1
  874. package/app/.next/static/chunks/app/api/usage/analytics/route-329f30be723f33ce.js +0 -1
  875. package/app/.next/static/chunks/app/api/usage/budget/route-329f30be723f33ce.js +0 -1
  876. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-329f30be723f33ce.js +0 -1
  877. package/app/.next/static/chunks/app/api/usage/call-logs/route-329f30be723f33ce.js +0 -1
  878. package/app/.next/static/chunks/app/api/usage/history/route-329f30be723f33ce.js +0 -1
  879. package/app/.next/static/chunks/app/api/usage/logs/route-329f30be723f33ce.js +0 -1
  880. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-329f30be723f33ce.js +0 -1
  881. package/app/.next/static/chunks/app/api/usage/request-logs/route-329f30be723f33ce.js +0 -1
  882. package/app/.next/static/chunks/app/api/v1/api/chat/route-329f30be723f33ce.js +0 -1
  883. package/app/.next/static/chunks/app/api/v1/audio/speech/route-329f30be723f33ce.js +0 -1
  884. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-329f30be723f33ce.js +0 -1
  885. package/app/.next/static/chunks/app/api/v1/chat/completions/route-329f30be723f33ce.js +0 -1
  886. package/app/.next/static/chunks/app/api/v1/embeddings/route-329f30be723f33ce.js +0 -1
  887. package/app/.next/static/chunks/app/api/v1/images/generations/route-329f30be723f33ce.js +0 -1
  888. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-329f30be723f33ce.js +0 -1
  889. package/app/.next/static/chunks/app/api/v1/messages/route-329f30be723f33ce.js +0 -1
  890. package/app/.next/static/chunks/app/api/v1/models/route-329f30be723f33ce.js +0 -1
  891. package/app/.next/static/chunks/app/api/v1/moderations/route-329f30be723f33ce.js +0 -1
  892. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-329f30be723f33ce.js +0 -1
  893. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-329f30be723f33ce.js +0 -1
  894. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-329f30be723f33ce.js +0 -1
  895. package/app/.next/static/chunks/app/api/v1/rerank/route-329f30be723f33ce.js +0 -1
  896. package/app/.next/static/chunks/app/api/v1/responses/route-329f30be723f33ce.js +0 -1
  897. package/app/.next/static/chunks/app/api/v1/route-329f30be723f33ce.js +0 -1
  898. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-329f30be723f33ce.js +0 -1
  899. package/app/.next/static/chunks/app/api/v1beta/models/route-329f30be723f33ce.js +0 -1
  900. package/app/.next/static/chunks/app/global-error-bbdc13af28c5aba1.js +0 -1
  901. package/app/.next/static/chunks/app/landing/page-19e96efb956a6d32.js +0 -1
  902. package/app/.next/static/chunks/app/layout-485b011f69e6ed37.js +0 -1
  903. package/app/.next/static/chunks/app/not-found-2ba4520c9df30430.js +0 -1
  904. package/app/.next/static/chunks/app/page-329f30be723f33ce.js +0 -1
  905. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-329f30be723f33ce.js +0 -1
  906. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-329f30be723f33ce.js +0 -1
  907. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-329f30be723f33ce.js +0 -1
  908. package/app/.next/static/css/2862d4067eab20b2.css +0 -1
  909. /package/app/.next/static/{HcUrNktdfL89Ss5F7FHxP → sTDitYd6vQZvJjlRJcZVe}/_ssgManifest.js +0 -0
@@ -1 +1,3 @@
1
- "use strict";exports.id=7968,exports.ids=[1228,7968],exports.modules={24575:(a,b,c)=>{c.d(b,{A5:()=>f,BS:()=>g,Go:()=>i,JF:()=>e,NZ:()=>h});let d=new Map;function e(a,b,{success:c,latencyMs:e,fallbackCount:f=0,strategy:g="priority"}){d.has(a)||d.set(a,{totalRequests:0,totalSuccesses:0,totalFailures:0,totalFallbacks:0,totalLatencyMs:0,strategy:g,lastUsedAt:null,byModel:{}});let h=d.get(a);if(h.totalRequests++,h.totalLatencyMs+=e,h.totalFallbacks+=f,h.lastUsedAt=new Date().toISOString(),h.strategy=g,c?h.totalSuccesses++:h.totalFailures++,b){h.byModel[b]||(h.byModel[b]={requests:0,successes:0,failures:0,totalLatencyMs:0,lastStatus:null,lastUsedAt:null});let a=h.byModel[b];a.requests++,a.totalLatencyMs+=e,a.lastUsedAt=new Date().toISOString(),c?(a.successes++,a.lastStatus="ok"):(a.failures++,a.lastStatus="error")}}function f(a){let b=d.get(a);return b?{...b,avgLatencyMs:b.totalRequests>0?Math.round(b.totalLatencyMs/b.totalRequests):0,successRate:b.totalRequests>0?Math.round(b.totalSuccesses/b.totalRequests*100):0,fallbackRate:b.totalRequests>0?Math.round(b.totalFallbacks/b.totalRequests*100):0,byModel:Object.fromEntries(Object.entries(b.byModel).map(([a,b])=>[a,{...b,avgLatencyMs:b.requests>0?Math.round(b.totalLatencyMs/b.requests):0,successRate:b.requests>0?Math.round(b.successes/b.requests*100):0}]))}:null}function g(){let a={};for(let[b]of d)a[b]=f(b);return a}function h(a){d.delete(a)}function i(){d.clear()}},51228:(a,b,c)=>{c.d(b,{ez:()=>h,getAllCircuitBreakerStatuses:()=>k,getCircuitBreaker:()=>j});let d="CLOSED",e="OPEN",f="HALF_OPEN";class g{constructor(a,b={}){this.name=a,this.failureThreshold=b.failureThreshold??5,this.resetTimeout=b.resetTimeout??3e4,this.halfOpenRequests=b.halfOpenRequests??1,this.onStateChange=b.onStateChange||null,this.isFailure=b.isFailure||(()=>!0),this.state=d,this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this.halfOpenAllowed=0}async execute(a){if(this.state===e)if(this._shouldAttemptReset())this._transition(f);else throw new h(`Circuit breaker "${this.name}" is OPEN. Try again later.`,this.name,this._timeUntilReset());if(this.state===f&&this.halfOpenAllowed<=0)throw new h(`Circuit breaker "${this.name}" is HALF_OPEN, no more probe requests allowed.`,this.name,this._timeUntilReset());this.state===f&&this.halfOpenAllowed--;try{let b=await a();return this._onSuccess(),b}catch(a){throw this.isFailure(a)&&this._onFailure(),a}}canExecute(){return this.state===d||(this.state===e?this._shouldAttemptReset():this.state===f&&this.halfOpenAllowed>0)}getStatus(){return{name:this.name,state:this.state,failureCount:this.failureCount,lastFailureTime:this.lastFailureTime}}reset(){this._transition(d),this.failureCount=0,this.successCount=0,this.lastFailureTime=null}_onSuccess(){this.state===f&&(this.successCount++,this._transition(d),this.failureCount=0),this.failureCount=0}_onFailure(){this.failureCount++,this.lastFailureTime=Date.now(),this.state===f?this._transition(e):this.failureCount>=this.failureThreshold&&this._transition(e)}_shouldAttemptReset(){return!this.lastFailureTime||Date.now()-this.lastFailureTime>=this.resetTimeout}_timeUntilReset(){return this.lastFailureTime?Math.max(0,this.resetTimeout-(Date.now()-this.lastFailureTime)):0}_transition(a){let b=this.state;this.state=a,a===f&&(this.halfOpenAllowed=this.halfOpenRequests),this.onStateChange&&b!==a&&this.onStateChange(this.name,b,a)}}class h extends Error{constructor(a,b,c){super(a),this.name="CircuitBreakerOpenError",this.circuitName=b,this.retryAfterMs=c}}let i=new Map;function j(a,b){return i.has(a)||i.set(a,new g(a,b)),i.get(a)}function k(){return Array.from(i.values()).map(a=>a.getStatus())}},57968:(a,b,c)=>{c.d(b,{Pr:()=>v,Vg:()=>function a(b,c,d=new Set,e=0){if(e>3)throw Error(`Max combo nesting depth (3) exceeded at "${b}"`);if(d.has(b))throw Error(`Circular combo reference detected: ${b}`);d.add(b);let f=Array.isArray(c)?c:c?.combos||[],g=f.find(a=>a.name===b);if(g&&g.models)for(let b of g.models){let c=r(b).model;f.find(a=>a.name===c)&&a(c,f,new Set(d),e+1)}}});var d=c(49263),e=c(89865),f=c(24575);let g={strategy:"priority",maxRetries:1,retryDelayMs:2e3,timeoutMs:12e4,concurrencyPerModel:3,queueTimeoutMs:3e4,healthCheckEnabled:!0,healthCheckTimeoutMs:3e3,maxComboDepth:3,trackMetrics:!0};function h(a,b,c){let d=b?.comboDefaults||{},e=c&&b?.providerOverrides?.[c]||{},f=a?.config||{},h=a=>Object.fromEntries(Object.entries(a).filter(([,a])=>null!=a));return{...g,...h(d),...h(e),...h(f)}}let i=new Map;function j(a,b=3){i.has(a)||i.set(a,{running:0,max:b,queue:[],rateLimitedUntil:null});let c=i.get(a);return c.max=b,c}function k(a){return!!a.rateLimitedUntil&&(!(Date.now()>=a.rateLimitedUntil)||(a.rateLimitedUntil=null,!1))}function l(a){let b=i.get(a);if(b)for(;b.queue.length>0&&b.running<b.max&&!k(b);){let c=b.queue.shift();clearTimeout(c.timer),b.running++,c.resolve(m(a))}}function m(a){let b=!1;return()=>{if(b)return;b=!0;let c=i.get(a);c&&c.running>0&&(c.running--,l(a))}}var n=c(51228),o=c(66451);let p=[429,502,503,504],q=new Map;function r(a){return"string"==typeof a?{model:a,weight:0}:{model:a.model,weight:a.weight||0}}function s(a,b,c=new Set,d=0){if(d>3)return a.models.map(a=>r(a).model);if(c.has(a.name))return[];c.add(a.name);let e=Array.isArray(b)?b:b?.combos||[],f=[];for(let b of a.models||[]){let a=r(b).model,g=e.find(b=>b.name===a);if(g){let a=s(g,e,new Set(c),d+1);f.push(...a)}else f.push(a)}return f}function t(a){let b=a.map(a=>r(a)),c=b.reduce((a,b)=>a+b.weight,0);if(c<=0)return b[Math.floor(Math.random()*b.length)].model;let d=Math.random()*c;for(let a of b)if((d-=a.weight)<=0)return a.model;return b[b.length-1].model}function u(a,b){let c=a.map(a=>r(a));return[c.find(a=>a.model===b),...c.filter(a=>a.model!==b).sort((a,b)=>b.weight-a.weight)].filter(Boolean).map(a=>a.model)}async function v({body:a,combo:b,handleSingleModel:c,isModelAvailable:i,log:j,settings:k,allCombos:l}){let m,q=b.strategy||"priority",v=b.models||[];if("round-robin"===q)return w({body:a,combo:b,handleSingleModel:c,isModelAvailable:i,log:j,settings:k,allCombos:l});let x=k?h(b,k):{...g,...b.config||{}},y=x.maxRetries??1,z=x.retryDelayMs??2e3;if(l){let a=s(b,l);if("weighted"===q){let a=t(v);m=(m=u(v,a)).flatMap(a=>{let b=(Array.isArray(l)?l:l?.combos||[]).find(b=>b.name===a);return b?s(b,l):[a]}),j.info("COMBO",`Weighted selection with nested resolution: ${m.length} total models`)}else m=a,j.info("COMBO",`Priority with nested resolution: ${m.length} total models`)}else if("weighted"===q){let a=t(v);m=u(v,a),j.info("COMBO",`Weighted selection: ${a} (from ${v.length} models)`)}else m=v.map(a=>r(a).model);let A=null,B=null,C=null,D=Date.now(),E=0;for(let e=0;e<m.length;e++){let g=m[e],h=(0,o.Xh)(g),k=h.provider||h.providerAlias||"unknown",l=(0,d.T_)(k),r=(0,n.getCircuitBreaker)(`combo:${k}`,{failureThreshold:l.circuitBreakerThreshold,resetTimeout:l.circuitBreakerReset});if(!r.canExecute()){j.info("COMBO",`Skipping ${g}: circuit breaker OPEN for ${k}`),e>0&&E++;continue}if(i&&!await i(g)){j.info("COMBO",`Skipping ${g} (all accounts in cooldown)`),e>0&&E++;continue}for(let h=0;h<=y;h++){h>0&&(j.info("COMBO",`Retrying ${g} in ${z}ms (attempt ${h+1}/${y+1})`),await new Promise(a=>setTimeout(a,z))),j.info("COMBO",`Trying model ${e+1}/${m.length}: ${g}${h>0?` (retry ${h})`:""}`);let i=await c(a,g);if(i.ok){let a=Date.now()-D;return j.info("COMBO",`Model ${g} succeeded (${a}ms, ${E} fallbacks)`),(0,f.JF)(b.name,g,{success:!0,latencyMs:a,fallbackCount:E,strategy:q}),i}let l=i.statusText||"",n=null;try{let a=i.clone();try{let b=await a.json();l=b?.error?.message||b?.error||b?.message||l,n=b?.retryAfter||null}catch{try{let a=await i.text();a&&(l=a.substring(0,500))}catch{}}}catch{}if(n&&(!B||new Date(n)<new Date(B))&&(B=n),"string"!=typeof l)try{l=JSON.stringify(l)}catch{l=String(l)}let{shouldFallback:o,cooldownMs:s}=(0,d.hk)(i.status,l,0,null,k);if(p.includes(i.status)&&r._onFailure(),!o)return j.warn("COMBO",`Model ${g} failed (no fallback)`,{status:i.status}),i;let t=[408,429,500,502,503,504].includes(i.status);if(!(h<y)||!t){A=l||String(i.status),C||(C=i.status),e>0&&E++,j.warn("COMBO",`Model ${g} failed, trying next`,{status:i.status});break}}}let F=m.every(a=>{let b=(0,o.Xh)(a).provider||(0,o.Xh)(a).providerAlias||"unknown";return!(0,n.getCircuitBreaker)(`combo:${b}`).canExecute()}),G=Date.now()-D;if((0,f.JF)(b.name,null,{success:!1,latencyMs:G,fallbackCount:E,strategy:q}),F)return j.warn("COMBO","All models have circuit breaker OPEN — aborting"),(0,e.wO)(503,"All providers temporarily unavailable (circuit breakers open)");let H=C||406,I=A||"All combo models unavailable";if(B){let a=(0,d.Qo)(B);return j.warn("COMBO",`All models failed | ${I} (${a})`),(0,e.wO)(H,I,B,a)}return j.warn("COMBO",`All models failed | ${I}`),new Response(JSON.stringify({error:{message:I}}),{status:H,headers:{"Content-Type":"application/json"}})}async function w({body:a,combo:b,handleSingleModel:c,isModelAvailable:i,log:t,settings:u,allCombos:v}){let w,x=b.models||[],y=u?h(b,u):{...g,...b.config||{}},z=y.concurrencyPerModel??3,A=y.queueTimeoutMs??3e4,B=y.maxRetries??1,C=y.retryDelayMs??2e3,D=(w=v?s(b,v):x.map(a=>r(a).model)).length;if(0===D)return(0,e.wO)(406,"Round-robin combo has no models");let E=q.get(b.name)||0;q.set(b.name,E+1);let F=E%D,G=Date.now(),H=null,I=null,J=null,K=0;for(let e=0;e<D;e++){let g,h=w[(F+e)%D],q=(0,o.Xh)(h),r=q.provider||q.providerAlias||"unknown",s=(0,d.T_)(r),u=(0,n.getCircuitBreaker)(`combo:${r}`,{failureThreshold:s.circuitBreakerThreshold,resetTimeout:s.circuitBreakerReset});if(!u.canExecute()){t.info("COMBO-RR",`Skipping ${h}: circuit breaker OPEN for ${r}`),e>0&&K++;continue}if(i&&!await i(h)){t.info("COMBO-RR",`Skipping ${h} (all accounts in cooldown)`),e>0&&K++;continue}try{g=await function(a,{maxConcurrency:b=3,timeoutMs:c=3e4}={}){let d=j(a,b);return d.running<d.max&&!k(d)?(d.running++,Promise.resolve(m(a))):new Promise((b,e)=>{let f=setTimeout(()=>{let b=d.queue.findIndex(a=>a.timer===f);-1!==b&&d.queue.splice(b,1);let g=Error(`Semaphore timeout after ${c}ms for ${a}`);g.code="SEMAPHORE_TIMEOUT",e(g)},c);d.queue.push({resolve:b,reject:e,timer:f})})}(h,{maxConcurrency:z,timeoutMs:A})}catch(a){if("SEMAPHORE_TIMEOUT"===a.code){t.warn("COMBO-RR",`Semaphore timeout for ${h}, trying next model`),e>0&&K++;continue}throw a}try{for(let g=0;g<=B;g++){g>0&&(t.info("COMBO-RR",`Retrying ${h} in ${C}ms (attempt ${g+1}/${B+1})`),await new Promise(a=>setTimeout(a,C))),t.info("COMBO-RR",`[RR #${E}] → ${h}${e>0?` (fallback +${e})`:""}${g>0?` (retry ${g})`:""}`);let i=await c(a,h);if(i.ok){let a=Date.now()-G;return t.info("COMBO-RR",`${h} succeeded (${a}ms, ${K} fallbacks)`),(0,f.JF)(b.name,h,{success:!0,latencyMs:a,fallbackCount:K,strategy:"round-robin"}),i}let k=i.statusText||"",m=null;try{let a=i.clone();try{let b=await a.json();k=b?.error?.message||b?.error||b?.message||k,m=b?.retryAfter||null}catch{try{let a=await i.text();a&&(k=a.substring(0,500))}catch{}}}catch{}if(m&&(!J||new Date(m)<new Date(J))&&(J=m),"string"!=typeof k)try{k=JSON.stringify(k)}catch{k=String(k)}let{shouldFallback:n,cooldownMs:o}=(0,d.hk)(i.status,k,0,null,r);if(p.includes(i.status)&&o>0&&(!function(a,b){let c=j(a);c.rateLimitedUntil=Date.now()+b,setTimeout(()=>{c.rateLimitedUntil&&Date.now()>=c.rateLimitedUntil&&(c.rateLimitedUntil=null,l(a))},b+50)}(h,o),u._onFailure(),t.warn("COMBO-RR",`${h} error ${i.status}, cooldown ${o}ms (breaker: ${u.getStatus().failureCount}/${s.circuitBreakerThreshold})`)),!n)return t.warn("COMBO-RR",`${h} failed (no fallback)`,{status:i.status}),i;let q=[408,429,500,502,503,504].includes(i.status);if(!(g<B)||!q){H=k||String(i.status),I||(I=i.status),e>0&&K++,t.warn("COMBO-RR",`${h} failed, trying next model`,{status:i.status});break}}}finally{g()}}let L=Date.now()-G;if((0,f.JF)(b.name,null,{success:!1,latencyMs:L,fallbackCount:K,strategy:"round-robin"}),w.every(a=>{let b=(0,o.Xh)(a).provider||(0,o.Xh)(a).providerAlias||"unknown";return!(0,n.getCircuitBreaker)(`combo:${b}`).canExecute()}))return t.warn("COMBO-RR","All models have circuit breaker OPEN — aborting"),(0,e.wO)(503,"All providers temporarily unavailable (circuit breakers open)");let M=I||406,N=H||"All round-robin combo models unavailable";if(J){let a=(0,d.Qo)(J);return t.warn("COMBO-RR",`All models failed | ${N} (${a})`),(0,e.wO)(M,N,J,a)}return t.warn("COMBO-RR",`All models failed | ${N}`),new Response(JSON.stringify({error:{message:N}}),{status:M,headers:{"Content-Type":"application/json"}})}},66451:(a,b,c)=>{c.d(b,{Xh:()=>i,js:()=>j});var d=c(29485);let e={};for(let[a,b]of Object.entries(d.PROVIDER_ID_TO_ALIAS))e[b]&&console.log(`[MODEL] Warning: alias "${b}" maps to both "${e[b]}" and "${a}". Using "${a}".`),e[b]=a;let f={github:{"claude-4.5-opus":"claude-opus-4-5-20251101","claude-opus-4.5":"claude-opus-4-5-20251101","gemini-3-pro":"gemini-3-pro-preview","gemini-3-flash":"gemini-3-flash-preview","raptor-mini":"oswe-vscode-prime"},antigravity:{"gemini-3-flash":"gemini-3-flash-preview"}},g=new Map;for(let[a,b]of Object.entries(d.vq)){let c=e[a]||a;for(let a of b||[]){let b=a?.id;if(!b)continue;let d=g.get(b)||[];d.includes(c)||(d.push(c),g.set(b,d))}}function h(a,b){if(!b||"string"!=typeof b)return b;let c=f[e[a]||a];return c?.[b]||b}function i(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(/\.\.[\/\\]/.test(a)||/[\x00-\x1f]/.test(a))return console.log(`[MODEL] Warning: rejected malformed model string: "${a.substring(0,50)}"`),{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function j(a,b){let c=i(a);if(!c.isAlias){let a=h(c.provider,c.model);return{provider:c.provider,model:a}}let f="function"==typeof b?await b():b,j=function(a,b){var c,d;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:null}(c.model,f);if(j){let a=h(j.provider,j.model);return{provider:j.provider,model:a}}let k=c.model,l=g.get(k)||[];if(l.includes("openai"))return{provider:"openai",model:k};let m=l.filter(a=>"openai"!==a);if(1===m.length){let a=m[0],b=h(a,k);return{provider:a,model:b}}if(m.length>1){let a=m.map(a=>d.PROVIDER_ID_TO_ALIAS[a]||a),b=a.slice(0,2).map(a=>`${a}/${k}`),c=`Ambiguous model '${k}'. Use provider/model prefix (ex: ${b.join(" or ")}).`;return console.warn(`[MODEL] ${c} Candidates: ${a.join(", ")}`),{provider:null,model:k,errorType:"ambiguous_model",errorMessage:c,candidateProviders:m,candidateAliases:a}}return{provider:"openai",model:k}}}};
1
+ "use strict";exports.id=7968,exports.ids=[1228,7968,8847],exports.modules={8809:(a,b,c)=>{c.d(b,{M4:()=>m,QM:()=>n,_s:()=>l,io:()=>i,mE:()=>f,qA:()=>k,tv:()=>j,vX:()=>o,xV:()=>e,xd:()=>p,z$:()=>g,zd:()=>h});var d=c(14469);function e(a,b){(0,d.sm)().prepare("INSERT OR REPLACE INTO domain_fallback_chains (model, chain) VALUES (?, ?)").run(a,JSON.stringify(b))}function f(){let a=(0,d.sm)().prepare("SELECT model, chain FROM domain_fallback_chains").all(),b={};for(let c of a)b[c.model]=JSON.parse(c.chain);return b}function g(a){return(0,d.sm)().prepare("DELETE FROM domain_fallback_chains WHERE model = ?").run(a).changes>0}function h(a,b){(0,d.sm)().prepare(`INSERT OR REPLACE INTO domain_budgets (api_key_id, daily_limit_usd, monthly_limit_usd, warning_threshold)
2
+ VALUES (?, ?, ?, ?)`).run(a,b.dailyLimitUsd,b.monthlyLimitUsd||0,b.warningThreshold??.8)}function i(a){let b=(0,d.sm)().prepare("SELECT * FROM domain_budgets WHERE api_key_id = ?").get(a);return b?{dailyLimitUsd:b.daily_limit_usd,monthlyLimitUsd:b.monthly_limit_usd,warningThreshold:b.warning_threshold}:null}function j(a,b,c=Date.now()){(0,d.sm)().prepare("INSERT INTO domain_cost_history (api_key_id, cost, timestamp) VALUES (?, ?, ?)").run(a,b,c)}function k(a,b){return(0,d.sm)().prepare("SELECT cost, timestamp FROM domain_cost_history WHERE api_key_id = ? AND timestamp >= ? ORDER BY timestamp").all(a,b)}function l(a){(0,d.sm)().prepare("DELETE FROM domain_lockout_state WHERE identifier = ?").run(a)}function m(){let a=(0,d.sm)(),b=Date.now();return a.prepare("SELECT identifier, locked_until FROM domain_lockout_state WHERE locked_until IS NOT NULL AND locked_until > ?").all(b).map(a=>({identifier:a.identifier,lockedUntil:a.locked_until}))}function n(a,b){(0,d.sm)().prepare(`INSERT OR REPLACE INTO domain_circuit_breakers (name, state, failure_count, last_failure_time, options)
3
+ VALUES (?, ?, ?, ?, ?)`).run(a,b.state,b.failureCount,b.lastFailureTime,b.options?JSON.stringify(b.options):null)}function o(a){let b=(0,d.sm)().prepare("SELECT * FROM domain_circuit_breakers WHERE name = ?").get(a);return b?{state:b.state,failureCount:b.failure_count,lastFailureTime:b.last_failure_time,options:b.options?JSON.parse(b.options):null}:null}function p(){return(0,d.sm)().prepare("SELECT name, state, failure_count, last_failure_time FROM domain_circuit_breakers").all().map(a=>({name:a.name,state:a.state,failureCount:a.failure_count,lastFailureTime:a.last_failure_time}))}},24575:(a,b,c)=>{c.d(b,{A5:()=>f,BS:()=>g,Go:()=>i,JF:()=>e,NZ:()=>h});let d=new Map;function e(a,b,{success:c,latencyMs:e,fallbackCount:f=0,strategy:g="priority"}){d.has(a)||d.set(a,{totalRequests:0,totalSuccesses:0,totalFailures:0,totalFallbacks:0,totalLatencyMs:0,strategy:g,lastUsedAt:null,byModel:{}});let h=d.get(a);if(h.totalRequests++,h.totalLatencyMs+=e,h.totalFallbacks+=f,h.lastUsedAt=new Date().toISOString(),h.strategy=g,c?h.totalSuccesses++:h.totalFailures++,b){h.byModel[b]||(h.byModel[b]={requests:0,successes:0,failures:0,totalLatencyMs:0,lastStatus:null,lastUsedAt:null});let a=h.byModel[b];a.requests++,a.totalLatencyMs+=e,a.lastUsedAt=new Date().toISOString(),c?(a.successes++,a.lastStatus="ok"):(a.failures++,a.lastStatus="error")}}function f(a){let b=d.get(a);return b?{...b,avgLatencyMs:b.totalRequests>0?Math.round(b.totalLatencyMs/b.totalRequests):0,successRate:b.totalRequests>0?Math.round(b.totalSuccesses/b.totalRequests*100):0,fallbackRate:b.totalRequests>0?Math.round(b.totalFallbacks/b.totalRequests*100):0,byModel:Object.fromEntries(Object.entries(b.byModel).map(([a,b])=>[a,{...b,avgLatencyMs:b.requests>0?Math.round(b.totalLatencyMs/b.requests):0,successRate:b.requests>0?Math.round(b.successes/b.requests*100):0}]))}:null}function g(){let a={};for(let[b]of d)a[b]=f(b);return a}function h(a){d.delete(a)}function i(){d.clear()}},51228:(a,b,c)=>{c.d(b,{ez:()=>i,getAllCircuitBreakerStatuses:()=>l,getCircuitBreaker:()=>k});var d=c(8809);let e="CLOSED",f="OPEN",g="HALF_OPEN";class h{constructor(a,b={}){this.name=a,this.failureThreshold=b.failureThreshold??5,this.resetTimeout=b.resetTimeout??3e4,this.halfOpenRequests=b.halfOpenRequests??1,this.onStateChange=b.onStateChange||null,this.isFailure=b.isFailure||(()=>!0),this.state=e,this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this.halfOpenAllowed=0,this._restoreFromDb()}_restoreFromDb(){try{let a=(0,d.vX)(this.name);a&&(this.state=a.state,this.failureCount=a.failureCount,this.lastFailureTime=a.lastFailureTime,this.state===g&&(this.halfOpenAllowed=this.halfOpenRequests))}catch{}}_persistToDb(){try{(0,d.QM)(this.name,{state:this.state,failureCount:this.failureCount,lastFailureTime:this.lastFailureTime,options:{failureThreshold:this.failureThreshold,resetTimeout:this.resetTimeout,halfOpenRequests:this.halfOpenRequests}})}catch{}}async execute(a){if(this.state===f)if(this._shouldAttemptReset())this._transition(g);else throw new i(`Circuit breaker "${this.name}" is OPEN. Try again later.`,this.name,this._timeUntilReset());if(this.state===g&&this.halfOpenAllowed<=0)throw new i(`Circuit breaker "${this.name}" is HALF_OPEN, no more probe requests allowed.`,this.name,this._timeUntilReset());this.state===g&&this.halfOpenAllowed--;try{let b=await a();return this._onSuccess(),b}catch(a){throw this.isFailure(a)&&this._onFailure(),a}}canExecute(){return this.state===e||(this.state===f?this._shouldAttemptReset():this.state===g&&this.halfOpenAllowed>0)}getStatus(){return{name:this.name,state:this.state,failureCount:this.failureCount,lastFailureTime:this.lastFailureTime}}reset(){this._transition(e),this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this._persistToDb()}_onSuccess(){this.state===g&&(this.successCount++,this._transition(e),this.failureCount=0),this.failureCount=0,this._persistToDb()}_onFailure(){this.failureCount++,this.lastFailureTime=Date.now(),this.state===g?this._transition(f):this.failureCount>=this.failureThreshold&&this._transition(f),this._persistToDb()}_shouldAttemptReset(){return!this.lastFailureTime||Date.now()-this.lastFailureTime>=this.resetTimeout}_timeUntilReset(){return this.lastFailureTime?Math.max(0,this.resetTimeout-(Date.now()-this.lastFailureTime)):0}_transition(a){let b=this.state;this.state=a,a===g&&(this.halfOpenAllowed=this.halfOpenRequests),this.onStateChange&&b!==a&&this.onStateChange(this.name,b,a)}}class i extends Error{constructor(a,b,c){super(a),this.name="CircuitBreakerOpenError",this.circuitName=b,this.retryAfterMs=c}}let j=new Map;function k(a,b){return j.has(a)||j.set(a,new h(a,b)),j.get(a)}function l(){try{for(let a of(0,d.xd)())j.has(a.name)||k(a.name)}catch{}return Array.from(j.values()).map(a=>a.getStatus())}},57968:(a,b,c)=>{c.d(b,{Pr:()=>w,Vg:()=>function a(b,c,d=new Set,e=0){if(e>3)throw Error(`Max combo nesting depth (3) exceeded at "${b}"`);if(d.has(b))throw Error(`Circular combo reference detected: ${b}`);d.add(b);let f=Array.isArray(c)?c:c?.combos||[],g=f.find(a=>a.name===b);if(g&&g.models)for(let b of g.models){let c=r(b).model;f.find(a=>a.name===c)&&a(c,f,new Set(d),e+1)}}});var d=c(49263),e=c(89865),f=c(24575);let g={strategy:"priority",maxRetries:1,retryDelayMs:2e3,timeoutMs:12e4,concurrencyPerModel:3,queueTimeoutMs:3e4,healthCheckEnabled:!0,healthCheckTimeoutMs:3e3,maxComboDepth:3,trackMetrics:!0};function h(a,b,c){let d=b?.comboDefaults||{},e=c&&b?.providerOverrides?.[c]||{},f=a?.config||{},h=a=>Object.fromEntries(Object.entries(a).filter(([,a])=>null!=a));return{...g,...h(d),...h(e),...h(f)}}let i=new Map;function j(a,b=3){i.has(a)||i.set(a,{running:0,max:b,queue:[],rateLimitedUntil:null});let c=i.get(a);return c.max=b,c}function k(a){return!!a.rateLimitedUntil&&(!(Date.now()>=a.rateLimitedUntil)||(a.rateLimitedUntil=null,!1))}function l(a){let b=i.get(a);if(b)for(;b.queue.length>0&&b.running<b.max&&!k(b);){let c=b.queue.shift();clearTimeout(c.timer),b.running++,c.resolve(m(a))}}function m(a){let b=!1;return()=>{if(b)return;b=!0;let c=i.get(a);c&&c.running>0&&(c.running--,l(a))}}var n=c(51228),o=c(66451);let p=[429,502,503,504],q=new Map;function r(a){return"string"==typeof a?{model:a,weight:0}:{model:a.model,weight:a.weight||0}}function s(a,b,c=new Set,d=0){if(d>3)return a.models.map(a=>r(a).model);if(c.has(a.name))return[];c.add(a.name);let e=Array.isArray(b)?b:b?.combos||[],f=[];for(let b of a.models||[]){let a=r(b).model,g=e.find(b=>b.name===a);if(g){let a=s(g,e,new Set(c),d+1);f.push(...a)}else f.push(a)}return f}function t(a){let b=a.map(a=>r(a)),c=b.reduce((a,b)=>a+b.weight,0);if(c<=0)return b[Math.floor(Math.random()*b.length)].model;let d=Math.random()*c;for(let a of b)if((d-=a.weight)<=0)return a.model;return b[b.length-1].model}function u(a,b){let c=a.map(a=>r(a));return[c.find(a=>a.model===b),...c.filter(a=>a.model!==b).sort((a,b)=>b.weight-a.weight)].filter(Boolean).map(a=>a.model)}async function v(a){try{let{getPricingForModel:b}=await Promise.resolve().then(c.bind(c,24352)),d=await Promise.all(a.map(async a=>{let c=(0,o.Xh)(a),d=c.provider||c.providerAlias||"unknown",e=c.model||a;try{let c=await b(d,e);return{modelStr:a,cost:c?.input??1/0}}catch{return{modelStr:a,cost:1/0}}}));return d.sort((a,b)=>a.cost-b.cost),d.map(a=>a.modelStr)}catch{return a}}async function w({body:a,combo:b,handleSingleModel:c,isModelAvailable:i,log:j,settings:k,allCombos:l}){let m,q=b.strategy||"priority",w=b.models||[];if("round-robin"===q)return x({body:a,combo:b,handleSingleModel:c,isModelAvailable:i,log:j,settings:k,allCombos:l});let y=k?h(b,k):{...g,...b.config||{}},z=y.maxRetries??1,A=y.retryDelayMs??2e3;if(l){let a=s(b,l);if("weighted"===q){let a=t(w);m=(m=u(w,a)).flatMap(a=>{let b=(Array.isArray(l)?l:l?.combos||[]).find(b=>b.name===a);return b?s(b,l):[a]}),j.info("COMBO",`Weighted selection with nested resolution: ${m.length} total models`)}else m=a,j.info("COMBO",`${q} with nested resolution: ${m.length} total models`)}else if("weighted"===q){let a=t(w);m=u(w,a),j.info("COMBO",`Weighted selection: ${a} (from ${w.length} models)`)}else m=w.map(a=>r(a).model);"random"===q?(m=function(a){for(let b=a.length-1;b>0;b--){let c=Math.floor(Math.random()*(b+1));[a[b],a[c]]=[a[c],a[b]]}return a}([...m]),j.info("COMBO",`Random shuffle: ${m.length} models`)):"least-used"===q?(m=function(a,b){let c=(0,f.A5)(b);if(!c||!c.byModel)return a;let d=a.map(a=>({modelStr:a,requests:c.byModel[a]?.requests??0}));return d.sort((a,b)=>a.requests-b.requests),d.map(a=>a.modelStr)}(m,b.name),j.info("COMBO",`Least-used ordering: ${m[0]} has fewest requests`)):"cost-optimized"===q&&(m=await v(m),j.info("COMBO",`Cost-optimized ordering: cheapest first (${m[0]})`));let B=null,C=null,D=null,E=Date.now(),F=0;for(let e=0;e<m.length;e++){let g=m[e],h=(0,o.Xh)(g),k=h.provider||h.providerAlias||"unknown",l=(0,d.T_)(k),r=(0,n.getCircuitBreaker)(`combo:${k}`,{failureThreshold:l.circuitBreakerThreshold,resetTimeout:l.circuitBreakerReset});if(!r.canExecute()){j.info("COMBO",`Skipping ${g}: circuit breaker OPEN for ${k}`),e>0&&F++;continue}if(i&&!await i(g)){j.info("COMBO",`Skipping ${g} (all accounts in cooldown)`),e>0&&F++;continue}for(let h=0;h<=z;h++){h>0&&(j.info("COMBO",`Retrying ${g} in ${A}ms (attempt ${h+1}/${z+1})`),await new Promise(a=>setTimeout(a,A))),j.info("COMBO",`Trying model ${e+1}/${m.length}: ${g}${h>0?` (retry ${h})`:""}`);let i=await c(a,g);if(i.ok){let a=Date.now()-E;return j.info("COMBO",`Model ${g} succeeded (${a}ms, ${F} fallbacks)`),(0,f.JF)(b.name,g,{success:!0,latencyMs:a,fallbackCount:F,strategy:q}),i}let l=i.statusText||"",n=null;try{let a=i.clone();try{let b=await a.json();l=b?.error?.message||b?.error||b?.message||l,n=b?.retryAfter||null}catch{try{let a=await i.text();a&&(l=a.substring(0,500))}catch{}}}catch{}if(n&&(!C||new Date(n)<new Date(C))&&(C=n),"string"!=typeof l)try{l=JSON.stringify(l)}catch{l=String(l)}let{shouldFallback:o,cooldownMs:s}=(0,d.hk)(i.status,l,0,null,k);if(p.includes(i.status)&&r._onFailure(),!o)return j.warn("COMBO",`Model ${g} failed (no fallback)`,{status:i.status}),i;let t=[408,429,500,502,503,504].includes(i.status);if(!(h<z)||!t){B=l||String(i.status),D||(D=i.status),e>0&&F++,j.warn("COMBO",`Model ${g} failed, trying next`,{status:i.status});break}}}let G=m.every(a=>{let b=(0,o.Xh)(a).provider||(0,o.Xh)(a).providerAlias||"unknown";return!(0,n.getCircuitBreaker)(`combo:${b}`).canExecute()}),H=Date.now()-E;if((0,f.JF)(b.name,null,{success:!1,latencyMs:H,fallbackCount:F,strategy:q}),G)return j.warn("COMBO","All models have circuit breaker OPEN — aborting"),(0,e.wO)(503,"All providers temporarily unavailable (circuit breakers open)");let I=D||406,J=B||"All combo models unavailable";if(C){let a=(0,d.Qo)(C);return j.warn("COMBO",`All models failed | ${J} (${a})`),(0,e.wO)(I,J,C,a)}return j.warn("COMBO",`All models failed | ${J}`),new Response(JSON.stringify({error:{message:J}}),{status:I,headers:{"Content-Type":"application/json"}})}async function x({body:a,combo:b,handleSingleModel:c,isModelAvailable:i,log:t,settings:u,allCombos:v}){let w,x=b.models||[],y=u?h(b,u):{...g,...b.config||{}},z=y.concurrencyPerModel??3,A=y.queueTimeoutMs??3e4,B=y.maxRetries??1,C=y.retryDelayMs??2e3,D=(w=v?s(b,v):x.map(a=>r(a).model)).length;if(0===D)return(0,e.wO)(406,"Round-robin combo has no models");let E=q.get(b.name)||0;q.set(b.name,E+1);let F=E%D,G=Date.now(),H=null,I=null,J=null,K=0;for(let e=0;e<D;e++){let g,h=w[(F+e)%D],q=(0,o.Xh)(h),r=q.provider||q.providerAlias||"unknown",s=(0,d.T_)(r),u=(0,n.getCircuitBreaker)(`combo:${r}`,{failureThreshold:s.circuitBreakerThreshold,resetTimeout:s.circuitBreakerReset});if(!u.canExecute()){t.info("COMBO-RR",`Skipping ${h}: circuit breaker OPEN for ${r}`),e>0&&K++;continue}if(i&&!await i(h)){t.info("COMBO-RR",`Skipping ${h} (all accounts in cooldown)`),e>0&&K++;continue}try{g=await function(a,{maxConcurrency:b=3,timeoutMs:c=3e4}={}){let d=j(a,b);return d.running<d.max&&!k(d)?(d.running++,Promise.resolve(m(a))):new Promise((b,e)=>{let f=setTimeout(()=>{let b=d.queue.findIndex(a=>a.timer===f);-1!==b&&d.queue.splice(b,1);let g=Error(`Semaphore timeout after ${c}ms for ${a}`);g.code="SEMAPHORE_TIMEOUT",e(g)},c);d.queue.push({resolve:b,reject:e,timer:f})})}(h,{maxConcurrency:z,timeoutMs:A})}catch(a){if("SEMAPHORE_TIMEOUT"===a.code){t.warn("COMBO-RR",`Semaphore timeout for ${h}, trying next model`),e>0&&K++;continue}throw a}try{for(let g=0;g<=B;g++){g>0&&(t.info("COMBO-RR",`Retrying ${h} in ${C}ms (attempt ${g+1}/${B+1})`),await new Promise(a=>setTimeout(a,C))),t.info("COMBO-RR",`[RR #${E}] → ${h}${e>0?` (fallback +${e})`:""}${g>0?` (retry ${g})`:""}`);let i=await c(a,h);if(i.ok){let a=Date.now()-G;return t.info("COMBO-RR",`${h} succeeded (${a}ms, ${K} fallbacks)`),(0,f.JF)(b.name,h,{success:!0,latencyMs:a,fallbackCount:K,strategy:"round-robin"}),i}let k=i.statusText||"",m=null;try{let a=i.clone();try{let b=await a.json();k=b?.error?.message||b?.error||b?.message||k,m=b?.retryAfter||null}catch{try{let a=await i.text();a&&(k=a.substring(0,500))}catch{}}}catch{}if(m&&(!J||new Date(m)<new Date(J))&&(J=m),"string"!=typeof k)try{k=JSON.stringify(k)}catch{k=String(k)}let{shouldFallback:n,cooldownMs:o}=(0,d.hk)(i.status,k,0,null,r);if(p.includes(i.status)&&o>0&&(!function(a,b){let c=j(a);c.rateLimitedUntil=Date.now()+b,setTimeout(()=>{c.rateLimitedUntil&&Date.now()>=c.rateLimitedUntil&&(c.rateLimitedUntil=null,l(a))},b+50)}(h,o),u._onFailure(),t.warn("COMBO-RR",`${h} error ${i.status}, cooldown ${o}ms (breaker: ${u.getStatus().failureCount}/${s.circuitBreakerThreshold})`)),!n)return t.warn("COMBO-RR",`${h} failed (no fallback)`,{status:i.status}),i;let q=[408,429,500,502,503,504].includes(i.status);if(!(g<B)||!q){H=k||String(i.status),I||(I=i.status),e>0&&K++,t.warn("COMBO-RR",`${h} failed, trying next model`,{status:i.status});break}}}finally{g()}}let L=Date.now()-G;if((0,f.JF)(b.name,null,{success:!1,latencyMs:L,fallbackCount:K,strategy:"round-robin"}),w.every(a=>{let b=(0,o.Xh)(a).provider||(0,o.Xh)(a).providerAlias||"unknown";return!(0,n.getCircuitBreaker)(`combo:${b}`).canExecute()}))return t.warn("COMBO-RR","All models have circuit breaker OPEN — aborting"),(0,e.wO)(503,"All providers temporarily unavailable (circuit breakers open)");let M=I||406,N=H||"All round-robin combo models unavailable";if(J){let a=(0,d.Qo)(J);return t.warn("COMBO-RR",`All models failed | ${N} (${a})`),(0,e.wO)(M,N,J,a)}return t.warn("COMBO-RR",`All models failed | ${N}`),new Response(JSON.stringify({error:{message:N}}),{status:M,headers:{"Content-Type":"application/json"}})}},66451:(a,b,c)=>{c.d(b,{Xh:()=>i,js:()=>j});var d=c(29485);let e={};for(let[a,b]of Object.entries(d.PROVIDER_ID_TO_ALIAS))e[b]&&console.log(`[MODEL] Warning: alias "${b}" maps to both "${e[b]}" and "${a}". Using "${a}".`),e[b]=a;let f={github:{"claude-4.5-opus":"claude-opus-4-5-20251101","claude-opus-4.5":"claude-opus-4-5-20251101","gemini-3-pro":"gemini-3-pro-preview","gemini-3-flash":"gemini-3-flash-preview","raptor-mini":"oswe-vscode-prime"},antigravity:{"gemini-3-flash":"gemini-3-flash-preview"}},g=new Map;for(let[a,b]of Object.entries(d.vq)){let c=e[a]||a;for(let a of b||[]){let b=a?.id;if(!b)continue;let d=g.get(b)||[];d.includes(c)||(d.push(c),g.set(b,d))}}function h(a,b){if(!b||"string"!=typeof b)return b;let c=f[e[a]||a];return c?.[b]||b}function i(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(/\.\.[\/\\]/.test(a)||/[\x00-\x1f]/.test(a))return console.log(`[MODEL] Warning: rejected malformed model string: "${a.substring(0,50)}"`),{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:e[c]||c,model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function j(a,b){let c=i(a);if(!c.isAlias){let a=h(c.provider,c.model);return{provider:c.provider,model:a}}let f="function"==typeof b?await b():b,j=function(a,b){var c,d;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:e[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:e[d=f.provider]||d,model:f.model}:null}(c.model,f);if(j){let a=h(j.provider,j.model);return{provider:j.provider,model:a}}let k=c.model,l=g.get(k)||[];if(l.includes("openai"))return{provider:"openai",model:k};let m=l.filter(a=>"openai"!==a);if(1===m.length){let a=m[0],b=h(a,k);return{provider:a,model:b}}if(m.length>1){let a=m.map(a=>d.PROVIDER_ID_TO_ALIAS[a]||a),b=a.slice(0,2).map(a=>`${a}/${k}`),c=`Ambiguous model '${k}'. Use provider/model prefix (ex: ${b.join(" or ")}).`;return console.warn(`[MODEL] ${c} Candidates: ${a.join(", ")}`),{provider:null,model:k,errorType:"ambiguous_model",errorMessage:c,candidateProviders:m,candidateAliases:a}}return{provider:"openai",model:k}}}};
@@ -0,0 +1 @@
1
+ exports.id=8392,exports.ids=[7136,7271,8392],exports.modules={19225:(a,b,c)=>{"use strict";a.exports=c(44870)},48904:(a,b,c)=>{"use strict";c.d(b,{k:()=>f});var d=c(54250),e=c(74832);async function f({body:a,credentials:b,log:c}){let{provider:e,model:f}=(0,d.Uk)(a.model);if(!e)return{success:!1,status:400,error:`Invalid image model: ${a.model}. Use format: provider/model`};let i=(0,d.bV)(e);return i?"gemini-image"===i.format?g({model:f,providerConfig:i,body:a,credentials:b,log:c}):"hyperbolic"===i.format?j({model:f,provider:e,providerConfig:i,body:a,credentials:b,log:c}):"nanobanana"===i.format?k({model:f,provider:e,providerConfig:i,body:a,credentials:b,log:c}):h({model:f,provider:e,providerConfig:i,body:a,credentials:b,log:c}):{success:!1,status:400,error:`Unknown image provider: ${e}`}}async function g({model:a,providerConfig:b,body:c,credentials:d,log:f}){let g=Date.now(),h=`${b.baseUrl}/${a}:generateContent`,i="antigravity",j={model:c.model,prompt:"string"==typeof c.prompt?c.prompt.slice(0,200):String(c.prompt??"").slice(0,200),size:c.size||"default",n:c.n||1},k={contents:[{parts:[{text:c.prompt}]}],generationConfig:{responseModalities:["TEXT","IMAGE"]}},l=d.accessToken||d.apiKey,m={"Content-Type":"application/json",Authorization:`Bearer ${l}`};if(f){let b="string"==typeof c.prompt?c.prompt.slice(0,60):String(c.prompt??"").slice(0,60);f.info("IMAGE",`antigravity/${a} (gemini) | prompt: "${b}..." | format: gemini-image`)}try{let b=await fetch(h,{method:"POST",headers:m,body:JSON.stringify(k)});if(!b.ok){let c=await b.text();return f&&f.error("IMAGE",`antigravity error ${b.status}: ${c.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:b.status,model:`antigravity/${a}`,provider:i,duration:Date.now()-g,error:c.slice(0,500),requestBody:j}).catch(()=>{}),{success:!1,status:b.status,error:c}}let d=await b.json(),l=[];for(let a of d.candidates||[]){let b=a.content?.parts||[];for(let a of b)a.inlineData&&l.push({b64_json:a.inlineData.data,revised_prompt:b.find(a=>a.text)?.text||c.prompt})}return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`antigravity/${a}`,provider:i,duration:Date.now()-g,tokens:{prompt_tokens:0,completion_tokens:0},requestBody:j,responseBody:{images_count:l.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:l}}}catch(b){return f&&f.error("IMAGE",`antigravity fetch error: ${b.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`antigravity/${a}`,provider:i,duration:Date.now()-g,error:b.message,requestBody:j}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${b.message}`}}}async function h({model:a,provider:b,providerConfig:c,body:d,credentials:f,log:g}){let h=Date.now(),j={model:d.model,prompt:"string"==typeof d.prompt?d.prompt.slice(0,200):String(d.prompt??"").slice(0,200),size:d.size||"default",n:d.n||1,quality:d.quality||void 0},k={model:a,prompt:d.prompt};void 0!==d.n&&(k.n=d.n),void 0!==d.size&&(k.size=d.size),void 0!==d.quality&&(k.quality=d.quality),void 0!==d.response_format&&(k.response_format=d.response_format),void 0!==d.style&&(k.style=d.style);let l={"Content-Type":"application/json"},m=f.apiKey||f.accessToken;if("bearer"===c.authHeader?l.Authorization=`Bearer ${m}`:"x-api-key"===c.authHeader&&(l["x-api-key"]=m),g){let c="string"==typeof d.prompt?d.prompt.slice(0,60):String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} | prompt: "${c}..." | size: ${d.size||"default"}`)}let n=JSON.stringify(k),o=await i(c.baseUrl,l,n,b,g);return!o.success&&c.fallbackUrl&&[404,410,502,503].includes(o.status)&&(g&&g.info("IMAGE",`${b}: primary URL failed (${o.status}), trying fallback...`),o=await i(c.fallbackUrl,l,n,b,g)),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:o.status||(o.success?200:502),model:`${b}/${a}`,provider:b,duration:Date.now()-h,tokens:{prompt_tokens:0,completion_tokens:0},error:o.success?null:"string"==typeof o.error?o.error.slice(0,500):null,requestBody:j,responseBody:o.success?{images_count:o.data?.data?.length||0}:null}).catch(()=>{}),o}async function i(a,b,c,d,e){try{let f=await fetch(a,{method:"POST",headers:b,body:c});if(!f.ok){let a=await f.text();return e&&e.error("IMAGE",`${d} error ${f.status}: ${a.slice(0,200)}`),{success:!1,status:f.status,error:a}}let g=await f.json();return{success:!0,data:{created:g.created||Math.floor(Date.now()/1e3),data:g.data||[]}}}catch(a){return e&&e.error("IMAGE",`${d} fetch error: ${a.message}`),{success:!1,status:502,error:`Image provider error: ${a.message}`}}}async function j({model:a,provider:b,providerConfig:c,body:d,credentials:f,log:g}){let h=Date.now(),i=f.apiKey||f.accessToken,[j,k]=(d.size||"1024x1024").split("x").map(Number),l={model_name:a,prompt:d.prompt,height:k||1024,width:j||1024,backend:"auto"};if(g){let c=String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} (hyperbolic) | prompt: "${c}..."`)}try{let f=await fetch(c.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(l)});if(!f.ok){let c=await f.text();return g&&g.error("IMAGE",`${b} error ${f.status}: ${c.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:f.status,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.slice(0,500)}).catch(()=>{}),{success:!1,status:f.status,error:c}}let j=((await f.json()).images||[]).map(a=>({b64_json:a.image,revised_prompt:d.prompt}));return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-h,responseBody:{images_count:j.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:j}}}catch(c){return g&&g.error("IMAGE",`${b} fetch error: ${c.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.message}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${c.message}`}}}async function k({model:a,provider:b,providerConfig:c,body:d,credentials:f,log:g}){let h=Date.now(),i=f.apiKey||f.accessToken,j="nanobanana-pro"===a,k=j&&c.proUrl?c.proUrl:c.baseUrl,l={prompt:d.prompt};if(g){let c=String(d.prompt??"").slice(0,60);g.info("IMAGE",`${b}/${a} (nanobanana ${j?"pro":"flash"}) | prompt: "${c}..."`)}try{let c=await fetch(k,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify(l)});if(!c.ok){let d=await c.text();return g&&g.error("IMAGE",`${b} error ${c.status}: ${d.slice(0,200)}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:c.status,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:d.slice(0,500)}).catch(()=>{}),{success:!1,status:c.status,error:d}}let f=await c.json(),j=[];if(f.image)j.push({b64_json:f.image,revised_prompt:d.prompt});else if(f.images)for(let a of f.images)j.push({b64_json:"string"==typeof a?a:a.image||a.data,revised_prompt:d.prompt});else if(f.data)return{success:!0,data:f};return(0,e.gK)({method:"POST",path:"/v1/images/generations",status:200,model:`${b}/${a}`,provider:b,duration:Date.now()-h,responseBody:{images_count:j.length}}).catch(()=>{}),{success:!0,data:{created:Math.floor(Date.now()/1e3),data:j}}}catch(c){return g&&g.error("IMAGE",`${b} fetch error: ${c.message}`),(0,e.gK)({method:"POST",path:"/v1/images/generations",status:502,model:`${b}/${a}`,provider:b,duration:Date.now()-h,error:c.message}).catch(()=>{}),{success:!1,status:502,error:`Image provider error: ${c.message}`}}}},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},54250:(a,b,c)=>{"use strict";c.d(b,{Uk:()=>f,bV:()=>e,lw:()=>g});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[{id:"gemini-2.5-flash-preview-image-generation",name:"Nano Banana"}],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024"]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,supportedSizes:c.supportedSizes});return a}},78335:()=>{},90364:(a,b,c)=>{"use strict";c.d(b,{K:()=>function a(b,c="Upstream provider error"){let d={error:{message:c,type:"upstream_error",code:"upstream_error"}};if(b&&"object"==typeof b){let a=b.error;return"string"==typeof a?{error:{message:a,type:"upstream_error",code:"upstream_error"}}:a&&"object"==typeof a?b:{error:b}}if("string"==typeof b){let e=b.trim();if(!e)return d;try{let b=JSON.parse(e);return a(b,c)}catch{return{error:{message:e,type:"upstream_error",code:"upstream_error"}}}}return d}})},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},96487:()=>{},97271:(a,b,c)=>{"use strict";c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(28108);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]}};
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=8847,exports.ids=[1228,8847],exports.modules={8809:(a,b,c)=>{c.d(b,{M4:()=>m,QM:()=>n,_s:()=>l,io:()=>i,mE:()=>f,qA:()=>k,tv:()=>j,vX:()=>o,xV:()=>e,xd:()=>p,z$:()=>g,zd:()=>h});var d=c(14469);function e(a,b){(0,d.sm)().prepare("INSERT OR REPLACE INTO domain_fallback_chains (model, chain) VALUES (?, ?)").run(a,JSON.stringify(b))}function f(){let a=(0,d.sm)().prepare("SELECT model, chain FROM domain_fallback_chains").all(),b={};for(let c of a)b[c.model]=JSON.parse(c.chain);return b}function g(a){return(0,d.sm)().prepare("DELETE FROM domain_fallback_chains WHERE model = ?").run(a).changes>0}function h(a,b){(0,d.sm)().prepare(`INSERT OR REPLACE INTO domain_budgets (api_key_id, daily_limit_usd, monthly_limit_usd, warning_threshold)
2
+ VALUES (?, ?, ?, ?)`).run(a,b.dailyLimitUsd,b.monthlyLimitUsd||0,b.warningThreshold??.8)}function i(a){let b=(0,d.sm)().prepare("SELECT * FROM domain_budgets WHERE api_key_id = ?").get(a);return b?{dailyLimitUsd:b.daily_limit_usd,monthlyLimitUsd:b.monthly_limit_usd,warningThreshold:b.warning_threshold}:null}function j(a,b,c=Date.now()){(0,d.sm)().prepare("INSERT INTO domain_cost_history (api_key_id, cost, timestamp) VALUES (?, ?, ?)").run(a,b,c)}function k(a,b){return(0,d.sm)().prepare("SELECT cost, timestamp FROM domain_cost_history WHERE api_key_id = ? AND timestamp >= ? ORDER BY timestamp").all(a,b)}function l(a){(0,d.sm)().prepare("DELETE FROM domain_lockout_state WHERE identifier = ?").run(a)}function m(){let a=(0,d.sm)(),b=Date.now();return a.prepare("SELECT identifier, locked_until FROM domain_lockout_state WHERE locked_until IS NOT NULL AND locked_until > ?").all(b).map(a=>({identifier:a.identifier,lockedUntil:a.locked_until}))}function n(a,b){(0,d.sm)().prepare(`INSERT OR REPLACE INTO domain_circuit_breakers (name, state, failure_count, last_failure_time, options)
3
+ VALUES (?, ?, ?, ?, ?)`).run(a,b.state,b.failureCount,b.lastFailureTime,b.options?JSON.stringify(b.options):null)}function o(a){let b=(0,d.sm)().prepare("SELECT * FROM domain_circuit_breakers WHERE name = ?").get(a);return b?{state:b.state,failureCount:b.failure_count,lastFailureTime:b.last_failure_time,options:b.options?JSON.parse(b.options):null}:null}function p(){return(0,d.sm)().prepare("SELECT name, state, failure_count, last_failure_time FROM domain_circuit_breakers").all().map(a=>({name:a.name,state:a.state,failureCount:a.failure_count,lastFailureTime:a.last_failure_time}))}},51228:(a,b,c)=>{c.d(b,{ez:()=>i,getAllCircuitBreakerStatuses:()=>l,getCircuitBreaker:()=>k});var d=c(8809);let e="CLOSED",f="OPEN",g="HALF_OPEN";class h{constructor(a,b={}){this.name=a,this.failureThreshold=b.failureThreshold??5,this.resetTimeout=b.resetTimeout??3e4,this.halfOpenRequests=b.halfOpenRequests??1,this.onStateChange=b.onStateChange||null,this.isFailure=b.isFailure||(()=>!0),this.state=e,this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this.halfOpenAllowed=0,this._restoreFromDb()}_restoreFromDb(){try{let a=(0,d.vX)(this.name);a&&(this.state=a.state,this.failureCount=a.failureCount,this.lastFailureTime=a.lastFailureTime,this.state===g&&(this.halfOpenAllowed=this.halfOpenRequests))}catch{}}_persistToDb(){try{(0,d.QM)(this.name,{state:this.state,failureCount:this.failureCount,lastFailureTime:this.lastFailureTime,options:{failureThreshold:this.failureThreshold,resetTimeout:this.resetTimeout,halfOpenRequests:this.halfOpenRequests}})}catch{}}async execute(a){if(this.state===f)if(this._shouldAttemptReset())this._transition(g);else throw new i(`Circuit breaker "${this.name}" is OPEN. Try again later.`,this.name,this._timeUntilReset());if(this.state===g&&this.halfOpenAllowed<=0)throw new i(`Circuit breaker "${this.name}" is HALF_OPEN, no more probe requests allowed.`,this.name,this._timeUntilReset());this.state===g&&this.halfOpenAllowed--;try{let b=await a();return this._onSuccess(),b}catch(a){throw this.isFailure(a)&&this._onFailure(),a}}canExecute(){return this.state===e||(this.state===f?this._shouldAttemptReset():this.state===g&&this.halfOpenAllowed>0)}getStatus(){return{name:this.name,state:this.state,failureCount:this.failureCount,lastFailureTime:this.lastFailureTime}}reset(){this._transition(e),this.failureCount=0,this.successCount=0,this.lastFailureTime=null,this._persistToDb()}_onSuccess(){this.state===g&&(this.successCount++,this._transition(e),this.failureCount=0),this.failureCount=0,this._persistToDb()}_onFailure(){this.failureCount++,this.lastFailureTime=Date.now(),this.state===g?this._transition(f):this.failureCount>=this.failureThreshold&&this._transition(f),this._persistToDb()}_shouldAttemptReset(){return!this.lastFailureTime||Date.now()-this.lastFailureTime>=this.resetTimeout}_timeUntilReset(){return this.lastFailureTime?Math.max(0,this.resetTimeout-(Date.now()-this.lastFailureTime)):0}_transition(a){let b=this.state;this.state=a,a===g&&(this.halfOpenAllowed=this.halfOpenRequests),this.onStateChange&&b!==a&&this.onStateChange(this.name,b,a)}}class i extends Error{constructor(a,b,c){super(a),this.name="CircuitBreakerOpenError",this.circuitName=b,this.retryAfterMs=c}}let j=new Map;function k(a,b){return j.has(a)||j.set(a,new h(a,b)),j.get(a)}function l(){try{for(let a of(0,d.xd)())j.has(a.name)||k(a.name)}catch{}return Array.from(j.values()).map(a=>a.getStatus())}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=9263,exports.ids=[7271,9263],exports.modules={49263:(a,b,c)=>{c.d(b,{AO:()=>l,Qo:()=>o,R7:()=>h,T_:()=>f,UY:()=>n,getAllModelLockouts:()=>i,hk:()=>k,vp:()=>m});var d=c(97271),e=c(28108);function f(a){let b=(0,e.oQ)(a);return d.PROVIDER_PROFILES[b]??d.PROVIDER_PROFILES.apikey}let g=new Map;function h(a,b,c,d,e){if(!c)return;let f=`${a}:${b}:${c}`;g.set(f,{reason:d,until:Date.now()+e,lockedAt:Date.now()})}function i(){let a=Date.now(),b=[];for(let[c,d]of g)if(a<=d.until){let[e,f,g]=c.split(":");b.push({provider:e,connectionId:f,model:g,reason:d.reason,remainingMs:d.until-a})}return b}function j(a=0){return Math.min(d.EQ.base*Math.pow(2,a),d.EQ.max)}function k(a,b,c=0,e=null,g=null){if(b){let a="string"==typeof b?b:JSON.stringify(b),e=a.toLowerCase();if(e.includes("no credentials"))return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.AUTH_ERROR};if(e.includes("request not allowed"))return{shouldFallback:!0,cooldownMs:d.Bm.requestNotAllowed,reason:d.QS.RATE_LIMIT_EXCEEDED};if(e.includes("rate limit")||e.includes("too many requests")||e.includes("quota exceeded")||e.includes("capacity")||e.includes("overloaded")){let b=Math.min(c+1,d.EQ.maxLevel),e=function(a){if(!a)return d.QS.UNKNOWN;let b=String(a).toLowerCase();return b.includes("quota exceeded")||b.includes("quota depleted")||b.includes("billing")?d.QS.QUOTA_EXHAUSTED:b.includes("rate limit")||b.includes("too many requests")||b.includes("rate_limit")?d.QS.RATE_LIMIT_EXCEEDED:b.includes("capacity")||b.includes("overloaded")||b.includes("resource exhausted")?d.QS.MODEL_CAPACITY:b.includes("unauthorized")||b.includes("invalid api key")||b.includes("authentication")?d.QS.AUTH_ERROR:b.includes("server error")||b.includes("internal error")?d.QS.SERVER_ERROR:d.QS.UNKNOWN}(a);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:b,reason:e}}}if(a===d.gx.UNAUTHORIZED)return{shouldFallback:!0,cooldownMs:d.Bm.unauthorized,reason:d.QS.AUTH_ERROR};if(a===d.gx.PAYMENT_REQUIRED||a===d.gx.FORBIDDEN)return{shouldFallback:!0,cooldownMs:d.Bm.paymentRequired,reason:d.QS.QUOTA_EXHAUSTED};if(a===d.gx.NOT_FOUND)return{shouldFallback:!0,cooldownMs:d.Bm.notFound,reason:d.QS.UNKNOWN};if(a===d.gx.RATE_LIMITED){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:j(c),newBackoffLevel:a,reason:d.QS.RATE_LIMIT_EXCEEDED}}if([d.gx.NOT_ACCEPTABLE,d.gx.REQUEST_TIMEOUT,d.gx.SERVER_ERROR,d.gx.BAD_GATEWAY,d.gx.SERVICE_UNAVAILABLE,d.gx.GATEWAY_TIMEOUT].includes(a)){let a=g?f(g):null,b=a?.transientCooldown??d.Bm.transientInitial,e=a?.maxBackoffLevel??d.EQ.maxLevel;return{shouldFallback:!0,cooldownMs:Math.min(b*Math.pow(2,c),d.Bm.transientMax),newBackoffLevel:Math.min(c+1,e),reason:d.QS.SERVER_ERROR}}return a===d.gx.BAD_REQUEST?{shouldFallback:!1,cooldownMs:0,reason:d.QS.UNKNOWN}:{shouldFallback:!0,cooldownMs:d.Bm.transient,reason:d.QS.UNKNOWN}}function l(a){return!!a&&new Date(a).getTime()>Date.now()}function m(a){return new Date(Date.now()+a).toISOString()}function n(a){let b=null,c=Date.now();for(let d of a){if(!d.rateLimitedUntil)continue;let a=new Date(d.rateLimitedUntil).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}setInterval(()=>{let a=Date.now();for(let[b,c]of g)a>c.until&&g.delete(b)},15e3).unref()},97271:(a,b,c)=>{c.d(b,{$V:()=>n,EQ:()=>u,Co:()=>m,Bm:()=>w,DEFAULT_API_LIMITS:()=>y,O:()=>t,Uc:()=>p,eo:()=>q,LY:()=>s,MT:()=>j,gx:()=>r,NA:()=>o,xq:()=>l,PROVIDER_PROFILES:()=>x,QS:()=>v,C8:()=>z,TH:()=>k});var d=c(29021),e=c(33873);let f=["clientId","clientSecret","tokenUrl","authUrl","refreshUrl"],g=0,h=null;var i=c(28108);let j=parseInt(process.env.FETCH_TIMEOUT_MS||"120000",10),k=parseInt(process.env.STREAM_IDLE_TIMEOUT_MS||"60000",10),l=(0,i.Z0)();!function(a){let b;if(h&&Date.now()-g<6e4)return;let c=(b=process.env.DATA_DIR||(0,e.join)(process.cwd(),"data"),(0,e.join)(b,"provider-credentials.json"));if(!(0,d.existsSync)(c))return h||console.log("[CREDENTIALS] No external credentials file found, using defaults."),h=a,g=Date.now();try{let b=(0,d.readFileSync)(c,"utf-8"),e=JSON.parse(b),g=0;for(let[b,c]of Object.entries(e)){if(!a[b]){console.log(`[CREDENTIALS] Warning: unknown provider "${b}" in credentials file, skipping.`);continue}if(!c||"object"!=typeof c){console.log(`[CREDENTIALS] Warning: provider "${b}" value must be an object, got ${typeof c}. Skipping.`);continue}for(let d of f)void 0!==c[d]&&(a[b][d]=c[d],g++)}let i=null!==h;console.log(`[CREDENTIALS] ${i?"Reloaded":"Loaded"} external credentials: ${g} field(s) from ${c}`)}catch(a){console.log(`[CREDENTIALS] Error reading credentials file: ${a.message}. Using defaults.`)}h=a,g=Date.now()}(l);let m="You are Claude Code, Anthropic's official CLI for Claude.",n="Please ignore the following [ignore]You are Antigravity, a powerful agentic AI coding assistant designed by the Google Deepmind team working on Advanced Agentic Coding.You are pair programming with a USER to solve their coding task. The task may require creating a new codebase, modifying or debugging an existing codebase, or simply answering a question.**Absolute paths only****Proactiveness**[/ignore]",o={google:{token:"https://oauth2.googleapis.com/token",auth:"https://accounts.google.com/o/oauth2/auth"},openai:{token:"https://auth.openai.com/oauth/token",auth:"https://auth.openai.com/oauth/authorize"},anthropic:{token:"https://console.anthropic.com/v1/oauth/token",auth:"https://console.anthropic.com/v1/oauth/authorize"},qwen:{token:"https://chat.qwen.ai/api/v1/oauth2/token",auth:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{token:"https://iflow.cn/oauth/token",auth:"https://iflow.cn/oauth"},github:{token:"https://github.com/login/oauth/access_token",auth:"https://github.com/login/oauth/authorize",deviceCode:"https://github.com/login/device/code"}},p=64e3,q=32e3,r={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},s={[r.BAD_REQUEST]:{type:"invalid_request_error",code:"bad_request"},[r.UNAUTHORIZED]:{type:"authentication_error",code:"invalid_api_key"},[r.FORBIDDEN]:{type:"permission_error",code:"insufficient_quota"},[r.NOT_FOUND]:{type:"invalid_request_error",code:"model_not_found"},[r.RATE_LIMITED]:{type:"rate_limit_error",code:"rate_limit_exceeded"},[r.SERVER_ERROR]:{type:"server_error",code:"internal_server_error"},[r.BAD_GATEWAY]:{type:"server_error",code:"bad_gateway"},[r.SERVICE_UNAVAILABLE]:{type:"server_error",code:"service_unavailable"},[r.GATEWAY_TIMEOUT]:{type:"server_error",code:"gateway_timeout"}},t={[r.BAD_REQUEST]:"Bad request",[r.UNAUTHORIZED]:"Invalid API key provided",[r.FORBIDDEN]:"You exceeded your current quota",[r.NOT_FOUND]:"Model not found",[r.RATE_LIMITED]:"Rate limit exceeded",[r.SERVER_ERROR]:"Internal server error",[r.BAD_GATEWAY]:"Bad gateway - upstream provider error",[r.SERVICE_UNAVAILABLE]:"Service temporarily unavailable",[r.GATEWAY_TIMEOUT]:"Gateway timeout"},u={base:1e3,max:12e4,maxLevel:15},v={QUOTA_EXHAUSTED:"quota_exhausted",RATE_LIMIT_EXCEEDED:"rate_limit_exceeded",MODEL_CAPACITY:"model_capacity",SERVER_ERROR:"server_error",AUTH_ERROR:"auth_error",UNKNOWN:"unknown"},w={unauthorized:12e4,paymentRequired:12e4,notFound:12e4,transientInitial:5e3,transientMax:6e4,transient:5e3,requestNotAllowed:5e3,rateLimit:12e4,serviceUnavailable:2e3,authExpired:12e4},x={oauth:{transientCooldown:5e3,rateLimitCooldown:6e4,maxBackoffLevel:8,circuitBreakerThreshold:3,circuitBreakerReset:6e4},apikey:{transientCooldown:3e3,rateLimitCooldown:0,maxBackoffLevel:5,circuitBreakerThreshold:5,circuitBreakerReset:3e4}},y={requestsPerMinute:100,minTimeBetweenRequests:200,concurrentRequests:10},z=["Please write a 5-10 word title for the following conversation:"]}};