@rsalmn/extremerouter 0.8.4 → 0.8.6

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 (1186) hide show
  1. package/README.id.md +130 -0
  2. package/README.md +73 -32
  3. package/README.zh-CN.md +130 -0
  4. package/app/.next-cli-build/BUILD_ID +1 -1
  5. package/app/.next-cli-build/app-path-routes-manifest.json +25 -10
  6. package/app/.next-cli-build/build-manifest.json +2 -2
  7. package/app/.next-cli-build/prerender-manifest.json +3 -3
  8. package/app/.next-cli-build/routes-manifest.json +94 -0
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js +2 -2
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page.js.nft.json +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/alerts/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +2 -2
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js +3 -3
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js +2 -2
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  34. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  35. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  36. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js +3 -3
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js +2 -2
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js +2 -2
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/overview/page_client-reference-manifest.js +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js +2 -2
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js +2 -2
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +4 -4
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js +2 -2
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page.js +2 -0
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page.js.nft.json +1 -0
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/smart-routing/page_client-reference-manifest.js +1 -0
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js +2 -2
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/swarm/page_client-reference-manifest.js +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js +2 -2
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  90. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  91. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  93. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  94. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  96. package/app/.next-cli-build/server/app/_global-error/page.js +3 -3
  97. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  99. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  100. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  101. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  102. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  103. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  104. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  105. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  106. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  107. package/app/.next-cli-build/server/app/_not-found/page.js +2 -2
  108. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  110. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  111. package/app/.next-cli-build/server/app/_not-found.rsc +6 -6
  112. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +6 -6
  113. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  114. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +6 -6
  115. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  116. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  117. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  118. package/app/.next-cli-build/server/app/api/alerts/test/route.js +2 -2
  119. package/app/.next-cli-build/server/app/api/alerts/test/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/auth/login/route.js +1 -1
  121. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/auth/logout/route.js +1 -1
  123. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js +1 -1
  127. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js +1 -1
  129. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js +1 -1
  131. package/app/.next-cli-build/server/app/api/auth/reset-password/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/auth/status/route.js +1 -1
  133. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/breaker/route.js +1 -1
  135. package/app/.next-cli-build/server/app/api/breaker/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/cache/route.js +1 -1
  137. package/app/.next-cli-build/server/app/api/cache/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +9 -11
  139. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  141. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  143. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +5 -2
  145. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +5 -2
  147. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +4 -1
  149. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +5 -2
  151. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  153. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  157. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +7 -4
  159. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +5 -2
  161. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +10 -9
  163. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +5 -2
  165. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +5 -2
  167. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +5 -2
  169. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +5 -2
  171. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  173. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/combos/lab/route.js +1 -0
  175. package/app/.next-cli-build/server/app/api/combos/lab/route.js.nft.json +1 -0
  176. package/app/.next-cli-build/server/app/api/combos/lab/route_client-reference-manifest.js +1 -0
  177. package/app/.next-cli-build/server/app/api/combos/route.js +1 -1
  178. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/combos/simulate/route.js +1 -0
  180. package/app/.next-cli-build/server/app/api/combos/simulate/route.js.nft.json +1 -0
  181. package/app/.next-cli-build/server/app/api/combos/simulate/route_client-reference-manifest.js +1 -0
  182. package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js +1 -1
  183. package/app/.next-cli-build/server/app/api/combos/validate-roles/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/dashboard/stream/route.js +2 -2
  185. package/app/.next-cli-build/server/app/api/dashboard/stream/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/headroom/start/route.js +1 -1
  187. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/headroom/status/route.js +1 -1
  189. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/headroom/stop/route.js +2 -2
  191. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/health/overview/route.js +1 -0
  193. package/app/.next-cli-build/server/app/api/health/overview/route.js.nft.json +1 -0
  194. package/app/.next-cli-build/server/app/api/health/overview/route_client-reference-manifest.js +1 -0
  195. package/app/.next-cli-build/server/app/api/health/providers/route.js +1 -1
  196. package/app/.next-cli-build/server/app/api/health/providers/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/health/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/health/stream/route.js +2 -2
  200. package/app/.next-cli-build/server/app/api/health/stream/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/init/route.js +1 -1
  202. package/app/.next-cli-build/server/app/api/init/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/keys/[id]/route.js +1 -1
  204. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/keys/route.js +1 -1
  206. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/locale/route.js +1 -1
  208. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js +1 -1
  210. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js +2 -2
  212. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  214. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  216. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  218. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js +1 -1
  220. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  222. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/models/alias/route.js +1 -1
  224. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/models/availability/route.js +1 -1
  226. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/models/custom/route.js +1 -1
  228. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/models/disabled/route.js +1 -1
  230. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  232. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  234. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/oauth/1min/import/route.js +1 -1
  236. package/app/.next-cli-build/server/app/api/oauth/1min/import/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  238. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  240. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  242. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  244. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  246. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route.js +1 -0
  248. package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route.js.nft.json +1 -0
  249. package/app/.next-cli-build/server/app/api/oauth/freebuff/import/route_client-reference-manifest.js +1 -0
  250. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js +1 -1
  251. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js +1 -1
  253. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/auto-import/route.js +1 -1
  255. package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/auto-import/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/import/route.js +1 -1
  257. package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/import/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/quota/route.js +1 -1
  259. package/app/.next-cli-build/server/app/api/oauth/kimi-desktop/quota/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js +1 -1
  261. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  263. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js +1 -1
  265. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js +1 -1
  267. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  269. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  271. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js +1 -1
  273. package/app/.next-cli-build/server/app/api/oauth/qwen/import/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/oauth/wp-studio/import/route.js +1 -1
  275. package/app/.next-cli-build/server/app/api/oauth/wp-studio/import/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js +2 -2
  277. package/app/.next-cli-build/server/app/api/oauth/zed/auto-import/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js +1 -1
  279. package/app/.next-cli-build/server/app/api/oauth/zed/import/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/pricing/route.js +1 -1
  281. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js +1 -1
  283. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  285. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js +1 -1
  287. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/providers/[id]/agnes-profile/route.js +1 -1
  289. package/app/.next-cli-build/server/app/api/providers/[id]/agnes-profile/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route.js +3 -0
  291. package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route.js.nft.json +1 -0
  292. package/app/.next-cli-build/server/app/api/providers/[id]/felo-profile/route_client-reference-manifest.js +1 -0
  293. package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js +1 -1
  294. package/app/.next-cli-build/server/app/api/providers/[id]/freebuff-profile/route.js.nft.json +1 -1
  295. package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js +1 -1
  296. package/app/.next-cli-build/server/app/api/providers/[id]/health-timeline/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js +1 -1
  298. package/app/.next-cli-build/server/app/api/providers/[id]/inxora-profile/route.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +3 -1
  300. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  301. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js +1 -1
  302. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-api-profile/route.js.nft.json +1 -1
  303. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js +1 -1
  304. package/app/.next-cli-build/server/app/api/providers/[id]/onemin-profile/route.js.nft.json +1 -1
  305. package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js +1 -1
  306. package/app/.next-cli-build/server/app/api/providers/[id]/qwencloud-profile/route.js.nft.json +1 -1
  307. package/app/.next-cli-build/server/app/api/providers/[id]/route.js +1 -1
  308. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  309. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js +1 -1
  310. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  311. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  312. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js +1 -1
  314. package/app/.next-cli-build/server/app/api/providers/[id]/v0-profile/route.js.nft.json +1 -1
  315. package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js +1 -1
  316. package/app/.next-cli-build/server/app/api/providers/[id]/vault-pool/route.js.nft.json +1 -1
  317. package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route.js +1 -0
  318. package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route.js.nft.json +1 -0
  319. package/app/.next-cli-build/server/app/api/providers/[id]/zai-profile/route_client-reference-manifest.js +1 -0
  320. package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js +1 -1
  321. package/app/.next-cli-build/server/app/api/providers/[id]/zenmux-plans/route.js.nft.json +1 -1
  322. package/app/.next-cli-build/server/app/api/providers/capture/launch/route.js +1 -0
  323. package/app/.next-cli-build/server/app/api/providers/capture/launch/route.js.nft.json +1 -0
  324. package/app/.next-cli-build/server/app/api/providers/capture/launch/route_client-reference-manifest.js +1 -0
  325. package/app/.next-cli-build/server/app/api/providers/capture/route.js +1 -0
  326. package/app/.next-cli-build/server/app/api/providers/capture/route.js.nft.json +1 -0
  327. package/app/.next-cli-build/server/app/api/providers/capture/route_client-reference-manifest.js +1 -0
  328. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  329. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  330. package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route.js +1 -0
  331. package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route.js.nft.json +1 -0
  332. package/app/.next-cli-build/server/app/api/providers/felo-capture/launch/route_client-reference-manifest.js +1 -0
  333. package/app/.next-cli-build/server/app/api/providers/felo-capture/route.js +1 -0
  334. package/app/.next-cli-build/server/app/api/providers/felo-capture/route.js.nft.json +1 -0
  335. package/app/.next-cli-build/server/app/api/providers/felo-capture/route_client-reference-manifest.js +1 -0
  336. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js +1 -1
  337. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  338. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  339. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  340. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js +1 -1
  341. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  342. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js +1 -1
  343. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  344. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  345. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  346. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js +1 -1
  347. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  348. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  349. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  350. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js +2 -2
  351. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  352. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js +2 -2
  353. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  354. package/app/.next-cli-build/server/app/api/proxy-pools/route.js +1 -1
  355. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  356. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  357. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  358. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js +2 -2
  359. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  360. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js +1 -1
  361. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  362. package/app/.next-cli-build/server/app/api/settings/database/route.js +1 -1
  363. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  364. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js +1 -1
  365. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  366. package/app/.next-cli-build/server/app/api/settings/require-login/route.js +1 -1
  367. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  368. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  369. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  370. package/app/.next-cli-build/server/app/api/shutdown/route.js +1 -1
  371. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  372. package/app/.next-cli-build/server/app/api/smart-routing/active/route.js +1 -0
  373. package/app/.next-cli-build/server/app/api/smart-routing/active/route.js.nft.json +1 -0
  374. package/app/.next-cli-build/server/app/api/smart-routing/active/route_client-reference-manifest.js +1 -0
  375. package/app/.next-cli-build/server/app/api/smart-routing/history/route.js +17 -0
  376. package/app/.next-cli-build/server/app/api/smart-routing/history/route.js.nft.json +1 -0
  377. package/app/.next-cli-build/server/app/api/smart-routing/history/route_client-reference-manifest.js +1 -0
  378. package/app/.next-cli-build/server/app/api/smart-routing/lab/route.js +16 -0
  379. package/app/.next-cli-build/server/app/api/smart-routing/lab/route.js.nft.json +1 -0
  380. package/app/.next-cli-build/server/app/api/smart-routing/lab/route_client-reference-manifest.js +1 -0
  381. package/app/.next-cli-build/server/app/api/smart-routing/stream/route.js +7 -0
  382. package/app/.next-cli-build/server/app/api/smart-routing/stream/route.js.nft.json +1 -0
  383. package/app/.next-cli-build/server/app/api/smart-routing/stream/route_client-reference-manifest.js +1 -0
  384. package/app/.next-cli-build/server/app/api/swarm/active/route.js +1 -1
  385. package/app/.next-cli-build/server/app/api/swarm/active/route.js.nft.json +1 -1
  386. package/app/.next-cli-build/server/app/api/swarm/stream/route.js +4 -2
  387. package/app/.next-cli-build/server/app/api/swarm/stream/route.js.nft.json +1 -1
  388. package/app/.next-cli-build/server/app/api/tags/route.js +1 -1
  389. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  390. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  391. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  392. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +2 -2
  393. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  394. package/app/.next-cli-build/server/app/api/translator/load/route.js +1 -1
  395. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  396. package/app/.next-cli-build/server/app/api/translator/save/route.js +1 -1
  397. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  398. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  399. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  400. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  401. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  402. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js +1 -1
  403. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  404. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js +1 -1
  405. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  406. package/app/.next-cli-build/server/app/api/tunnel/status/route.js +1 -1
  407. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  408. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js +1 -1
  409. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  410. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  411. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  412. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  413. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  414. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  415. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  416. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  417. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  418. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  419. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  420. package/app/.next-cli-build/server/app/api/usage/chart/route.js +1 -1
  421. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  422. package/app/.next-cli-build/server/app/api/usage/history/route.js +1 -1
  423. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  424. package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js +1 -1
  425. package/app/.next-cli-build/server/app/api/usage/leaderboard/route.js.nft.json +1 -1
  426. package/app/.next-cli-build/server/app/api/usage/logs/route.js +1 -1
  427. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  428. package/app/.next-cli-build/server/app/api/usage/meta/route.js +1 -1
  429. package/app/.next-cli-build/server/app/api/usage/meta/route.js.nft.json +1 -1
  430. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  431. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  432. package/app/.next-cli-build/server/app/api/usage/request-details/route.js +1 -1
  433. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  434. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js +1 -1
  435. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  436. package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js +1 -1
  437. package/app/.next-cli-build/server/app/api/usage/retry-stats/route.js.nft.json +1 -1
  438. package/app/.next-cli-build/server/app/api/usage/stats/route.js +1 -1
  439. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  440. package/app/.next-cli-build/server/app/api/usage/stream/route.js +2 -2
  441. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  442. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js +1 -1
  443. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  444. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  445. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  446. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js +1 -1
  447. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  448. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  449. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  450. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js +1 -1
  451. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  452. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  453. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  454. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  455. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  456. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js +1 -1
  457. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  458. package/app/.next-cli-build/server/app/api/v1/messages/route.js +1 -1
  459. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  460. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js +1 -1
  461. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  462. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  463. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  464. package/app/.next-cli-build/server/app/api/v1/models/route.js +1 -1
  465. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  466. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js +1 -1
  467. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  468. package/app/.next-cli-build/server/app/api/v1/responses/route.js +1 -1
  469. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  470. package/app/.next-cli-build/server/app/api/v1/route.js +1 -1
  471. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  472. package/app/.next-cli-build/server/app/api/v1/search/route.js +1 -1
  473. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  474. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js +1 -1
  475. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  476. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js +1 -1
  477. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  478. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  479. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  480. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  481. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  482. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  483. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  484. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  485. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  486. package/app/.next-cli-build/server/app/callback/page.js +2 -2
  487. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  488. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  489. package/app/.next-cli-build/server/app/callback.html +1 -1
  490. package/app/.next-cli-build/server/app/callback.rsc +6 -6
  491. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +6 -6
  492. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  493. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +6 -6
  494. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  495. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  496. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  497. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js +2 -2
  498. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  499. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  500. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  501. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +7 -7
  502. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +7 -7
  503. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  504. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +6 -6
  505. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  506. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +2 -2
  507. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  508. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  509. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  510. package/app/.next-cli-build/server/app/favicon.ico/route.js +1 -1
  511. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  512. package/app/.next-cli-build/server/app/index.html +1 -1
  513. package/app/.next-cli-build/server/app/index.rsc +6 -6
  514. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  515. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +6 -6
  516. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  517. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +6 -6
  518. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  519. package/app/.next-cli-build/server/app/landing/page.js +2 -2
  520. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  521. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  522. package/app/.next-cli-build/server/app/landing.html +1 -1
  523. package/app/.next-cli-build/server/app/landing.rsc +6 -6
  524. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +6 -6
  525. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  526. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +6 -6
  527. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  528. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  529. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  530. package/app/.next-cli-build/server/app/login/page.js +2 -2
  531. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  532. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  533. package/app/.next-cli-build/server/app/login.html +1 -1
  534. package/app/.next-cli-build/server/app/login.rsc +7 -7
  535. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +7 -7
  536. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  537. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +6 -6
  538. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  539. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  540. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  541. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js +2 -2
  542. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  543. package/app/.next-cli-build/server/app/page.js +2 -2
  544. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  545. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  546. package/app/.next-cli-build/server/app-paths-manifest.json +25 -10
  547. package/app/.next-cli-build/server/chunks/1241.js +1 -1
  548. package/app/.next-cli-build/server/chunks/1350.js +5 -2
  549. package/app/.next-cli-build/server/chunks/1429.js +1 -1
  550. package/app/.next-cli-build/server/chunks/1719.js +1 -1
  551. package/app/.next-cli-build/server/chunks/1891.js +10 -0
  552. package/app/.next-cli-build/server/chunks/212.js +1 -1
  553. package/app/.next-cli-build/server/chunks/2409.js +1 -1
  554. package/app/.next-cli-build/server/chunks/3520.js +1 -0
  555. package/app/.next-cli-build/server/chunks/3535.js +1 -1
  556. package/app/.next-cli-build/server/chunks/3593.js +1 -1
  557. package/app/.next-cli-build/server/chunks/3841.js +1 -0
  558. package/app/.next-cli-build/server/chunks/3988.js +1 -0
  559. package/app/.next-cli-build/server/chunks/4046.js +1 -1
  560. package/app/.next-cli-build/server/chunks/4109.js +4 -0
  561. package/app/.next-cli-build/server/chunks/412.js +5 -5
  562. package/app/.next-cli-build/server/chunks/422.js +1 -1
  563. package/app/.next-cli-build/server/chunks/4502.js +16 -0
  564. package/app/.next-cli-build/server/chunks/4739.js +1 -1
  565. package/app/.next-cli-build/server/chunks/4780.js +1 -1
  566. package/app/.next-cli-build/server/chunks/507.js +1 -1
  567. package/app/.next-cli-build/server/chunks/5253.js +17 -0
  568. package/app/.next-cli-build/server/chunks/5258.js +1 -1
  569. package/app/.next-cli-build/server/chunks/5330.js +37 -28
  570. package/app/.next-cli-build/server/chunks/5612.js +1 -1
  571. package/app/.next-cli-build/server/chunks/5615.js +1 -1
  572. package/app/.next-cli-build/server/chunks/5628.js +1 -1
  573. package/app/.next-cli-build/server/chunks/5699.js +1 -1
  574. package/app/.next-cli-build/server/chunks/5961.js +1 -1
  575. package/app/.next-cli-build/server/chunks/6306.js +1 -1
  576. package/app/.next-cli-build/server/chunks/6630.js +1 -1
  577. package/app/.next-cli-build/server/chunks/6777.js +1 -1
  578. package/app/.next-cli-build/server/chunks/6878.js +1 -0
  579. package/app/.next-cli-build/server/chunks/698.js +1 -1
  580. package/app/.next-cli-build/server/chunks/7016.js +3 -0
  581. package/app/.next-cli-build/server/chunks/7410.js +1 -1
  582. package/app/.next-cli-build/server/chunks/7566.js +2 -2
  583. package/app/.next-cli-build/server/chunks/7765.js +13 -0
  584. package/app/.next-cli-build/server/chunks/7965.js +1 -1
  585. package/app/.next-cli-build/server/chunks/8048.js +1 -0
  586. package/app/.next-cli-build/server/chunks/809.js +1 -0
  587. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  588. package/app/.next-cli-build/server/chunks/8266.js +1 -0
  589. package/app/.next-cli-build/server/chunks/8271.js +1 -1
  590. package/app/.next-cli-build/server/chunks/8520.js +1 -1
  591. package/app/.next-cli-build/server/chunks/874.js +2 -2
  592. package/app/.next-cli-build/server/chunks/8802.js +2 -2
  593. package/app/.next-cli-build/server/chunks/885.js +11 -7
  594. package/app/.next-cli-build/server/chunks/8895.js +4 -4
  595. package/app/.next-cli-build/server/chunks/9365.js +9 -0
  596. package/app/.next-cli-build/server/chunks/9703.js +5 -5
  597. package/app/.next-cli-build/server/chunks/9903.js +1 -1
  598. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  599. package/app/.next-cli-build/server/middleware.js +6 -6
  600. package/app/.next-cli-build/server/pages/404.html +1 -1
  601. package/app/.next-cli-build/server/pages/500.html +1 -1
  602. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  603. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  604. package/app/.next-cli-build/static/FP2YsqoRbzETOIHRfld7X/_buildManifest.js +1 -0
  605. package/app/.next-cli-build/static/chunks/1321-a387932dc3179f86.js +1 -0
  606. package/app/.next-cli-build/static/chunks/5497-c6d8b48c8828240a.js +7 -0
  607. package/app/.next-cli-build/static/chunks/705-42ad329bbe0c47df.js +1 -0
  608. package/app/.next-cli-build/static/chunks/9497-d27e455b90c7936e.js +1 -0
  609. package/app/.next-cli-build/static/chunks/981-eead750d8fdba2cb.js +3 -0
  610. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/alerts/{page-c263cd784e69e6f1.js → page-812b19e92ea94f14.js} +1 -1
  611. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-9a0e996c5bc5a169.js +1 -0
  612. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-3c3074cf3f61df46.js → page-0e1d5c3cf52823c3.js} +1 -1
  613. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-f7cdc992cb310077.js → page-3122fd2735ba291c.js} +1 -1
  614. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-a84afe4d66f3439a.js +3 -0
  615. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-959b3ee3c662de33.js → page-9850fafcf9dd605b.js} +1 -1
  616. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-9879594c5128cd91.js +1 -0
  617. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/page-1c94a0710d61767e.js +1 -0
  618. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/{page-7d472b122fb182f0.js → page-9e98db59d6b1d05f.js} +1 -1
  619. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/{page-83272baae17d38f1.js → page-026721fa921475e0.js} +1 -1
  620. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-f36e5ac11783fd1e.js → page-ec37860600228def.js} +1 -1
  621. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/{page-4069e1d40a3c70a6.js → page-99c8024bece93467.js} +1 -1
  622. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-e794909abbc7a09a.js → page-825c8673e6351d02.js} +1 -1
  623. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-1d972fd3baee7474.js → page-65072e4024bb73b6.js} +1 -1
  624. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/page-b92bc7ebaa0813b2.js +1 -0
  625. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-d3be818ebce4ade2.js +1 -0
  626. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-5ef2d54550eda9da.js +1 -0
  627. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-d208597b457fee58.js +1 -0
  628. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9eea89b85926cfd8.js +10 -0
  629. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/{page-bcf9d97ab4dc20d9.js → page-aaaaeede554f51a5.js} +1 -1
  630. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/{page-5b11b61863963cad.js → page-1f465a9d64823fe6.js} +1 -1
  631. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/proxy-pools/{page-58d8d0fa5523ff95.js → page-70bfba02b4fc414f.js} +1 -1
  632. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-e249d28461673557.js +1 -0
  633. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/{page-a8b151d5ae9004ea.js → page-17bcf4e0db497e3a.js} +1 -1
  634. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/smart-routing/page-5c8e7b3b71579268.js +1 -0
  635. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/swarm/page-6cda956597418bd9.js +1 -0
  636. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-d57c129c03c9cb36.js → page-6e8f34517990d858.js} +1 -1
  637. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-61d162d7a7f88a11.js → page-d9e35b679b85696a.js} +1 -1
  638. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-7ea08e0acef52ce3.js +1 -0
  639. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-20cc41f2e1307f06.js +1 -0
  640. package/app/.next-cli-build/static/chunks/app/_global-error/page-d93feb6893aee449.js +1 -0
  641. package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-d93feb6893aee449.js +1 -0
  642. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-d93feb6893aee449.js +1 -0
  643. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-d93feb6893aee449.js +1 -0
  644. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-d93feb6893aee449.js +1 -0
  645. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-d93feb6893aee449.js +1 -0
  646. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-d93feb6893aee449.js +1 -0
  647. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-d93feb6893aee449.js +1 -0
  648. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-d93feb6893aee449.js +1 -0
  649. package/app/.next-cli-build/static/chunks/app/api/breaker/route-d93feb6893aee449.js +1 -0
  650. package/app/.next-cli-build/static/chunks/app/api/cache/route-d93feb6893aee449.js +1 -0
  651. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-d93feb6893aee449.js +1 -0
  652. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-d93feb6893aee449.js +1 -0
  653. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-d93feb6893aee449.js +1 -0
  654. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-d93feb6893aee449.js +1 -0
  655. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-d93feb6893aee449.js +1 -0
  656. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-d93feb6893aee449.js +1 -0
  657. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-d93feb6893aee449.js +1 -0
  658. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-d93feb6893aee449.js +1 -0
  659. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-d93feb6893aee449.js +1 -0
  660. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-d93feb6893aee449.js +1 -0
  661. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-d93feb6893aee449.js +1 -0
  662. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-d93feb6893aee449.js +1 -0
  663. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-d93feb6893aee449.js +1 -0
  664. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-d93feb6893aee449.js +1 -0
  665. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-d93feb6893aee449.js +1 -0
  666. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-d93feb6893aee449.js +1 -0
  667. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-d93feb6893aee449.js +1 -0
  668. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-d93feb6893aee449.js +1 -0
  669. package/app/.next-cli-build/static/chunks/app/api/combos/lab/route-d93feb6893aee449.js +1 -0
  670. package/app/.next-cli-build/static/chunks/app/api/combos/route-d93feb6893aee449.js +1 -0
  671. package/app/.next-cli-build/static/chunks/app/api/combos/simulate/route-d93feb6893aee449.js +1 -0
  672. package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-d93feb6893aee449.js +1 -0
  673. package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-d93feb6893aee449.js +1 -0
  674. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-d93feb6893aee449.js +1 -0
  675. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-d93feb6893aee449.js +1 -0
  676. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-d93feb6893aee449.js +1 -0
  677. package/app/.next-cli-build/static/chunks/app/api/health/overview/route-d93feb6893aee449.js +1 -0
  678. package/app/.next-cli-build/static/chunks/app/api/health/providers/route-d93feb6893aee449.js +1 -0
  679. package/app/.next-cli-build/static/chunks/app/api/health/route-d93feb6893aee449.js +1 -0
  680. package/app/.next-cli-build/static/chunks/app/api/health/stream/route-d93feb6893aee449.js +1 -0
  681. package/app/.next-cli-build/static/chunks/app/api/init/route-d93feb6893aee449.js +1 -0
  682. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-d93feb6893aee449.js +1 -0
  683. package/app/.next-cli-build/static/chunks/app/api/keys/route-d93feb6893aee449.js +1 -0
  684. package/app/.next-cli-build/static/chunks/app/api/locale/route-d93feb6893aee449.js +1 -0
  685. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-d93feb6893aee449.js +1 -0
  686. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-d93feb6893aee449.js +1 -0
  687. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-d93feb6893aee449.js +1 -0
  688. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-d93feb6893aee449.js +1 -0
  689. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-d93feb6893aee449.js +1 -0
  690. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-d93feb6893aee449.js +1 -0
  691. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-d93feb6893aee449.js +1 -0
  692. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-d93feb6893aee449.js +1 -0
  693. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-d93feb6893aee449.js +1 -0
  694. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-d93feb6893aee449.js +1 -0
  695. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-d93feb6893aee449.js +1 -0
  696. package/app/.next-cli-build/static/chunks/app/api/models/route-d93feb6893aee449.js +1 -0
  697. package/app/.next-cli-build/static/chunks/app/api/models/test/route-d93feb6893aee449.js +1 -0
  698. package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-d93feb6893aee449.js +1 -0
  699. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-d93feb6893aee449.js +1 -0
  700. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-d93feb6893aee449.js +1 -0
  701. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-d93feb6893aee449.js +1 -0
  702. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-d93feb6893aee449.js +1 -0
  703. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-d93feb6893aee449.js +1 -0
  704. package/app/.next-cli-build/static/chunks/app/api/oauth/freebuff/import/route-d93feb6893aee449.js +1 -0
  705. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-d93feb6893aee449.js +1 -0
  706. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-d93feb6893aee449.js +1 -0
  707. package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/auto-import/route-d93feb6893aee449.js +1 -0
  708. package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/import/route-d93feb6893aee449.js +1 -0
  709. package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/quota/route-d93feb6893aee449.js +1 -0
  710. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-d93feb6893aee449.js +1 -0
  711. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-d93feb6893aee449.js +1 -0
  712. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-d93feb6893aee449.js +1 -0
  713. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-d93feb6893aee449.js +1 -0
  714. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-d93feb6893aee449.js +1 -0
  715. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-d93feb6893aee449.js +1 -0
  716. package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-d93feb6893aee449.js +1 -0
  717. package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-d93feb6893aee449.js +1 -0
  718. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-d93feb6893aee449.js +1 -0
  719. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-d93feb6893aee449.js +1 -0
  720. package/app/.next-cli-build/static/chunks/app/api/pricing/route-d93feb6893aee449.js +1 -0
  721. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-d93feb6893aee449.js +1 -0
  722. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-d93feb6893aee449.js +1 -0
  723. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-d93feb6893aee449.js +1 -0
  724. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-d93feb6893aee449.js +1 -0
  725. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/felo-profile/route-d93feb6893aee449.js +1 -0
  726. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-d93feb6893aee449.js +1 -0
  727. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-d93feb6893aee449.js +1 -0
  728. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-d93feb6893aee449.js +1 -0
  729. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-d93feb6893aee449.js +1 -0
  730. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-d93feb6893aee449.js +1 -0
  731. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-d93feb6893aee449.js +1 -0
  732. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-d93feb6893aee449.js +1 -0
  733. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-d93feb6893aee449.js +1 -0
  734. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-d93feb6893aee449.js +1 -0
  735. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-d93feb6893aee449.js +1 -0
  736. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-d93feb6893aee449.js +1 -0
  737. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-d93feb6893aee449.js +1 -0
  738. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zai-profile/route-d93feb6893aee449.js +1 -0
  739. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-d93feb6893aee449.js +1 -0
  740. package/app/.next-cli-build/static/chunks/app/api/providers/capture/launch/route-d93feb6893aee449.js +1 -0
  741. package/app/.next-cli-build/static/chunks/app/api/providers/capture/route-d93feb6893aee449.js +1 -0
  742. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-d93feb6893aee449.js +1 -0
  743. package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/launch/route-d93feb6893aee449.js +1 -0
  744. package/app/.next-cli-build/static/chunks/app/api/providers/felo-capture/route-d93feb6893aee449.js +1 -0
  745. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-d93feb6893aee449.js +1 -0
  746. package/app/.next-cli-build/static/chunks/app/api/providers/route-d93feb6893aee449.js +1 -0
  747. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-d93feb6893aee449.js +1 -0
  748. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-d93feb6893aee449.js +1 -0
  749. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-d93feb6893aee449.js +1 -0
  750. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-d93feb6893aee449.js +1 -0
  751. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-d93feb6893aee449.js +1 -0
  752. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-d93feb6893aee449.js +1 -0
  753. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-d93feb6893aee449.js +1 -0
  754. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-d93feb6893aee449.js +1 -0
  755. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-d93feb6893aee449.js +1 -0
  756. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-d93feb6893aee449.js +1 -0
  757. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-d93feb6893aee449.js +1 -0
  758. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-d93feb6893aee449.js +1 -0
  759. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-d93feb6893aee449.js +1 -0
  760. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-d93feb6893aee449.js +1 -0
  761. package/app/.next-cli-build/static/chunks/app/api/settings/route-d93feb6893aee449.js +1 -0
  762. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-d93feb6893aee449.js +1 -0
  763. package/app/.next-cli-build/static/chunks/app/api/smart-routing/active/route-d93feb6893aee449.js +1 -0
  764. package/app/.next-cli-build/static/chunks/app/api/smart-routing/history/route-d93feb6893aee449.js +1 -0
  765. package/app/.next-cli-build/static/chunks/app/api/smart-routing/lab/route-d93feb6893aee449.js +1 -0
  766. package/app/.next-cli-build/static/chunks/app/api/smart-routing/stream/route-d93feb6893aee449.js +1 -0
  767. package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-d93feb6893aee449.js +1 -0
  768. package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-d93feb6893aee449.js +1 -0
  769. package/app/.next-cli-build/static/chunks/app/api/tags/route-d93feb6893aee449.js +1 -0
  770. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-d93feb6893aee449.js +1 -0
  771. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-d93feb6893aee449.js +1 -0
  772. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-d93feb6893aee449.js +1 -0
  773. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-d93feb6893aee449.js +1 -0
  774. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-d93feb6893aee449.js +1 -0
  775. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-d93feb6893aee449.js +1 -0
  776. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-d93feb6893aee449.js +1 -0
  777. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-d93feb6893aee449.js +1 -0
  778. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-d93feb6893aee449.js +1 -0
  779. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-d93feb6893aee449.js +1 -0
  780. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-d93feb6893aee449.js +1 -0
  781. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-d93feb6893aee449.js +1 -0
  782. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-d93feb6893aee449.js +1 -0
  783. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-d93feb6893aee449.js +1 -0
  784. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-d93feb6893aee449.js +1 -0
  785. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-d93feb6893aee449.js +1 -0
  786. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-d93feb6893aee449.js +1 -0
  787. package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-d93feb6893aee449.js +1 -0
  788. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-d93feb6893aee449.js +1 -0
  789. package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-d93feb6893aee449.js +1 -0
  790. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-d93feb6893aee449.js +1 -0
  791. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-d93feb6893aee449.js +1 -0
  792. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-d93feb6893aee449.js +1 -0
  793. package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-d93feb6893aee449.js +1 -0
  794. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-d93feb6893aee449.js +1 -0
  795. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-d93feb6893aee449.js +1 -0
  796. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-d93feb6893aee449.js +1 -0
  797. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-d93feb6893aee449.js +1 -0
  798. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-d93feb6893aee449.js +1 -0
  799. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-d93feb6893aee449.js +1 -0
  800. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-d93feb6893aee449.js +1 -0
  801. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-d93feb6893aee449.js +1 -0
  802. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-d93feb6893aee449.js +1 -0
  803. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-d93feb6893aee449.js +1 -0
  804. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-d93feb6893aee449.js +1 -0
  805. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-d93feb6893aee449.js +1 -0
  806. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-d93feb6893aee449.js +1 -0
  807. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-d93feb6893aee449.js +1 -0
  808. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-d93feb6893aee449.js +1 -0
  809. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-d93feb6893aee449.js +1 -0
  810. package/app/.next-cli-build/static/chunks/app/api/v1/route-d93feb6893aee449.js +1 -0
  811. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-d93feb6893aee449.js +1 -0
  812. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-d93feb6893aee449.js +1 -0
  813. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-d93feb6893aee449.js +1 -0
  814. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-d93feb6893aee449.js +1 -0
  815. package/app/.next-cli-build/static/chunks/app/api/version/route-d93feb6893aee449.js +1 -0
  816. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-d93feb6893aee449.js +1 -0
  817. package/app/.next-cli-build/static/chunks/app/api/version/update/route-d93feb6893aee449.js +1 -0
  818. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-bc142d42a8a549b4.js +1 -0
  819. package/app/.next-cli-build/static/chunks/app/{layout-10bff7b57a2a3c2c.js → layout-0e3fdd66d189006c.js} +1 -1
  820. package/app/.next-cli-build/static/chunks/app/login/{page-32ab5d7c75651107.js → page-4b39978fc147efa3.js} +1 -1
  821. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-d93feb6893aee449.js +1 -0
  822. package/app/.next-cli-build/static/chunks/app/page-d93feb6893aee449.js +1 -0
  823. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-d93feb6893aee449.js +1 -0
  824. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-d93feb6893aee449.js +1 -0
  825. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-d93feb6893aee449.js +1 -0
  826. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-d93feb6893aee449.js +1 -0
  827. package/app/.next-cli-build/static/css/d30ee18d498368cc.css +1 -0
  828. package/app/node_modules/playwright-core/browsers.json +75 -0
  829. package/app/node_modules/playwright-core/index.js +17 -0
  830. package/app/node_modules/playwright-core/index.mjs +28 -0
  831. package/app/node_modules/playwright-core/lib/bootstrap.js +88 -0
  832. package/app/node_modules/playwright-core/lib/coreBundle.js +74830 -0
  833. package/app/node_modules/playwright-core/lib/utilsBundle.js +90764 -0
  834. package/app/node_modules/playwright-core/package.json +34 -0
  835. package/app/package.json +2 -5
  836. package/app/public/providers/ai21.svg +4 -0
  837. package/app/public/providers/aihorde.png +0 -0
  838. package/app/public/providers/aimlapi.svg +4 -0
  839. package/app/public/providers/ainative.svg +4 -0
  840. package/app/public/providers/aion.svg +4 -0
  841. package/app/public/providers/anyapi.svg +4 -0
  842. package/app/public/providers/arcee-ai.svg +4 -0
  843. package/app/public/providers/auriko.svg +4 -0
  844. package/app/public/providers/azure-ai.svg +4 -0
  845. package/app/public/providers/bai.svg +4 -0
  846. package/app/public/providers/baseten.svg +4 -0
  847. package/app/public/providers/bazaarlink.svg +8 -0
  848. package/app/public/providers/bluesminds.svg +4 -0
  849. package/app/public/providers/bytez.svg +4 -0
  850. package/app/public/providers/charm-hyper.svg +4 -0
  851. package/app/public/providers/chat-oripe.svg +4 -0
  852. package/app/public/providers/chatanywhere.svg +4 -0
  853. package/app/public/providers/cheaperinference.svg +4 -0
  854. package/app/public/providers/chenzk.svg +4 -0
  855. package/app/public/providers/clarifai.svg +4 -0
  856. package/app/public/providers/cloudcode-one.svg +4 -0
  857. package/app/public/providers/conol-web.svg +1 -0
  858. package/app/public/providers/crof.svg +4 -0
  859. package/app/public/providers/dahl.png +0 -0
  860. package/app/public/providers/datarobot.svg +4 -0
  861. package/app/public/providers/dgrid.png +0 -0
  862. package/app/public/providers/digitalocean.svg +4 -0
  863. package/app/public/providers/dit.svg +4 -0
  864. package/app/public/providers/docker-model-runner.svg +1 -0
  865. package/app/public/providers/dxnt.svg +4 -0
  866. package/app/public/providers/electronhub.svg +4 -0
  867. package/app/public/providers/empower.svg +4 -0
  868. package/app/public/providers/factory.svg +4 -0
  869. package/app/public/providers/fastrouter.svg +4 -0
  870. package/app/public/providers/felo-web.svg +50 -0
  871. package/app/public/providers/fireworks.svg +3 -0
  872. package/app/public/providers/fishaudio.svg +1 -0
  873. package/app/public/providers/free-ai.svg +4 -0
  874. package/app/public/providers/freeaiapikey.svg +4 -0
  875. package/app/public/providers/freebuff.svg +6 -0
  876. package/app/public/providers/freeinference.svg +4 -0
  877. package/app/public/providers/freemodel-dev.svg +4 -0
  878. package/app/public/providers/freetheai.svg +4 -0
  879. package/app/public/providers/friendliai.svg +4 -0
  880. package/app/public/providers/g4f-gemini.png +0 -0
  881. package/app/public/providers/g4f-groq.png +0 -0
  882. package/app/public/providers/g4f-nvidia.png +0 -0
  883. package/app/public/providers/g4f-ollama.png +0 -0
  884. package/app/public/providers/g4f-pollinations.svg +9 -0
  885. package/app/public/providers/gemini-business.svg +1 -0
  886. package/app/public/providers/getgoapi.svg +4 -0
  887. package/app/public/providers/gitlab.png +0 -0
  888. package/app/public/providers/gitlawb-gmi.svg +4 -0
  889. package/app/public/providers/gitlawb.svg +4 -0
  890. package/app/public/providers/gladia.svg +1 -0
  891. package/app/public/providers/hackclub.png +0 -0
  892. package/app/public/providers/hailuo-web.svg +1 -0
  893. package/app/public/providers/helixmind.svg +4 -0
  894. package/app/public/providers/helyxai.png +0 -0
  895. package/app/public/providers/heroku.svg +4 -0
  896. package/app/public/providers/hyperagent.svg +1 -0
  897. package/app/public/providers/inception.svg +4 -0
  898. package/app/public/providers/inference-net.svg +4 -0
  899. package/app/public/providers/inner-ai.svg +1 -0
  900. package/app/public/providers/kenari.svg +4 -0
  901. package/app/public/providers/kilo-gateway.svg +4 -0
  902. package/app/public/providers/lambda-ai.svg +4 -0
  903. package/app/public/providers/laozhang.svg +4 -0
  904. package/app/public/providers/lemonade.svg +1 -0
  905. package/app/public/providers/liquid.svg +4 -0
  906. package/app/public/providers/literouter.svg +4 -0
  907. package/app/public/providers/llama-cpp.svg +1 -0
  908. package/app/public/providers/llamafile.svg +1 -0
  909. package/app/public/providers/llamagate.svg +4 -0
  910. package/app/public/providers/llm-kiwi.svg +4 -0
  911. package/app/public/providers/llm7.png +0 -0
  912. package/app/public/providers/llmgateway.svg +4 -0
  913. package/app/public/providers/lm-studio.svg +1 -0
  914. package/app/public/providers/maritalk.svg +4 -0
  915. package/app/public/providers/meganova-ai.svg +4 -0
  916. package/app/public/providers/meta-ai.svg +68 -0
  917. package/app/public/providers/meta-llama.svg +4 -0
  918. package/app/public/providers/mimocode.png +0 -0
  919. package/app/public/providers/mixlayer.svg +4 -0
  920. package/app/public/providers/mnn-ai.svg +4 -0
  921. package/app/public/providers/modal.svg +4 -0
  922. package/app/public/providers/modelscope.svg +4 -0
  923. package/app/public/providers/morph.svg +4 -0
  924. package/app/public/providers/naga-ac.svg +4 -0
  925. package/app/public/providers/naga-ai.svg +4 -0
  926. package/app/public/providers/nanogpt.svg +4 -0
  927. package/app/public/providers/nara.svg +4 -0
  928. package/app/public/providers/navy.svg +4 -0
  929. package/app/public/providers/notion-web.svg +1 -0
  930. package/app/public/providers/nous-research.svg +4 -0
  931. package/app/public/providers/nscale.svg +4 -0
  932. package/app/public/providers/nube.svg +4 -0
  933. package/app/public/providers/oci.svg +4 -0
  934. package/app/public/providers/ofoxai.svg +4 -0
  935. package/app/public/providers/ollama-cloud.svg +4 -0
  936. package/app/public/providers/oobabooga.svg +1 -0
  937. package/app/public/providers/openadapter.svg +4 -0
  938. package/app/public/providers/opencode-zen.svg +4 -0
  939. package/app/public/providers/openference-api.svg +4 -0
  940. package/app/public/providers/orcarouter.svg +4 -0
  941. package/app/public/providers/ovhcloud.svg +4 -0
  942. package/app/public/providers/piapi.svg +4 -0
  943. package/app/public/providers/pioneer.svg +4 -0
  944. package/app/public/providers/poixe-ai.svg +4 -0
  945. package/app/public/providers/poolside.svg +4 -0
  946. package/app/public/providers/predibase.svg +4 -0
  947. package/app/public/providers/publicai.svg +4 -0
  948. package/app/public/providers/qiniu.svg +4 -0
  949. package/app/public/providers/regolo.svg +4 -0
  950. package/app/public/providers/reka.svg +4 -0
  951. package/app/public/providers/requesty.svg +4 -0
  952. package/app/public/providers/rev-ai.svg +1 -0
  953. package/app/public/providers/routeway.svg +4 -0
  954. package/app/public/providers/sambanova.svg +4 -0
  955. package/app/public/providers/sap.svg +4 -0
  956. package/app/public/providers/scaleway.svg +4 -0
  957. package/app/public/providers/snowflake.svg +4 -0
  958. package/app/public/providers/soniox.svg +1 -0
  959. package/app/public/providers/speechmatics.svg +1 -0
  960. package/app/public/providers/speka.svg +4 -0
  961. package/app/public/providers/sumopod.svg +4 -0
  962. package/app/public/providers/synthetic.svg +4 -0
  963. package/app/public/providers/tencent-aistudio-web.png +0 -0
  964. package/app/public/providers/thebai.svg +4 -0
  965. package/app/public/providers/theoldllm.png +0 -0
  966. package/app/public/providers/tokenharbor.svg +12 -0
  967. package/app/public/providers/tokenreply.svg +4 -0
  968. package/app/public/providers/triton.svg +1 -0
  969. package/app/public/providers/uncloseai.png +0 -0
  970. package/app/public/providers/unorouter.svg +4 -0
  971. package/app/public/providers/upstage.svg +4 -0
  972. package/app/public/providers/vllm.svg +1 -0
  973. package/app/public/providers/void-ai.svg +4 -0
  974. package/app/public/providers/wafer.svg +4 -0
  975. package/app/public/providers/wandb.svg +4 -0
  976. package/app/public/providers/watsonx.svg +4 -0
  977. package/app/public/providers/writer.svg +4 -0
  978. package/app/public/providers/x5lab.svg +4 -0
  979. package/app/public/providers/xinference.svg +1 -0
  980. package/app/public/providers/yolo-auto.svg +4 -0
  981. package/app/public/providers/{chatglm-cn.svg → zai-web.svg} +3 -3
  982. package/app/public/providers/zerolimitai.svg +4 -0
  983. package/app/public/providers/zylo-api.svg +4 -0
  984. package/package.json +3 -1
  985. package/app/.next-cli-build/server/chunks/2231.js +0 -1
  986. package/app/.next-cli-build/server/chunks/2701.js +0 -10
  987. package/app/.next-cli-build/server/chunks/2742.js +0 -1
  988. package/app/.next-cli-build/server/chunks/6070.js +0 -1
  989. package/app/.next-cli-build/server/chunks/6560.js +0 -1
  990. package/app/.next-cli-build/server/chunks/7187.js +0 -1
  991. package/app/.next-cli-build/server/chunks/7218.js +0 -1
  992. package/app/.next-cli-build/server/chunks/7872.js +0 -1
  993. package/app/.next-cli-build/server/chunks/8955.js +0 -16
  994. package/app/.next-cli-build/server/chunks/9422.js +0 -13
  995. package/app/.next-cli-build/static/JRaGItQgERhBp83cHyRqE/_buildManifest.js +0 -1
  996. package/app/.next-cli-build/static/chunks/1321-a7bfb848c63bdbf7.js +0 -1
  997. package/app/.next-cli-build/static/chunks/5497-6eb58895074fec6d.js +0 -7
  998. package/app/.next-cli-build/static/chunks/705-35d16348285626c8.js +0 -1
  999. package/app/.next-cli-build/static/chunks/8105-49cec265df0de251.js +0 -1
  1000. package/app/.next-cli-build/static/chunks/981-777b2911f938c030.js +0 -3
  1001. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-ecd3a85a40e51c66.js +0 -1
  1002. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-b4a78d784383253c.js +0 -3
  1003. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/page-5689c88f2746c37a.js +0 -1
  1004. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/health/page-133cf1aa2ce53c87.js +0 -1
  1005. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/overview/page-2dae733c8e1582bf.js +0 -1
  1006. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/page-7325c65533e4cf60.js +0 -1
  1007. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/playground/page-e7ba910803086460.js +0 -1
  1008. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/page-0f877a8a2550a1ea.js +0 -1
  1009. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-6b500acebeff856b.js +0 -10
  1010. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-c02ccb0fd35970d1.js +0 -1
  1011. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/swarm/page-594a59006196a03a.js +0 -1
  1012. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/page-483f01fd35d212f5.js +0 -1
  1013. package/app/.next-cli-build/static/chunks/app/(dashboard)/layout-0a63db83d5e05667.js +0 -1
  1014. package/app/.next-cli-build/static/chunks/app/_global-error/page-158df2528a1edacc.js +0 -1
  1015. package/app/.next-cli-build/static/chunks/app/api/alerts/test/route-158df2528a1edacc.js +0 -1
  1016. package/app/.next-cli-build/static/chunks/app/api/auth/login/route-158df2528a1edacc.js +0 -1
  1017. package/app/.next-cli-build/static/chunks/app/api/auth/logout/route-158df2528a1edacc.js +0 -1
  1018. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/callback/route-158df2528a1edacc.js +0 -1
  1019. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/start/route-158df2528a1edacc.js +0 -1
  1020. package/app/.next-cli-build/static/chunks/app/api/auth/oidc/test/route-158df2528a1edacc.js +0 -1
  1021. package/app/.next-cli-build/static/chunks/app/api/auth/reset-password/route-158df2528a1edacc.js +0 -1
  1022. package/app/.next-cli-build/static/chunks/app/api/auth/status/route-158df2528a1edacc.js +0 -1
  1023. package/app/.next-cli-build/static/chunks/app/api/breaker/route-158df2528a1edacc.js +0 -1
  1024. package/app/.next-cli-build/static/chunks/app/api/cache/route-158df2528a1edacc.js +0 -1
  1025. package/app/.next-cli-build/static/chunks/app/api/cli-tools/all-statuses/route-158df2528a1edacc.js +0 -1
  1026. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-158df2528a1edacc.js +0 -1
  1027. package/app/.next-cli-build/static/chunks/app/api/cli-tools/antigravity-mitm/route-158df2528a1edacc.js +0 -1
  1028. package/app/.next-cli-build/static/chunks/app/api/cli-tools/claude-settings/route-158df2528a1edacc.js +0 -1
  1029. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cline-settings/route-158df2528a1edacc.js +0 -1
  1030. package/app/.next-cli-build/static/chunks/app/api/cli-tools/codex-settings/route-158df2528a1edacc.js +0 -1
  1031. package/app/.next-cli-build/static/chunks/app/api/cli-tools/copilot-settings/route-158df2528a1edacc.js +0 -1
  1032. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-registry/route-158df2528a1edacc.js +0 -1
  1033. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-mcp-tools/route-158df2528a1edacc.js +0 -1
  1034. package/app/.next-cli-build/static/chunks/app/api/cli-tools/cowork-settings/route-158df2528a1edacc.js +0 -1
  1035. package/app/.next-cli-build/static/chunks/app/api/cli-tools/deepseek-tui-settings/route-158df2528a1edacc.js +0 -1
  1036. package/app/.next-cli-build/static/chunks/app/api/cli-tools/droid-settings/route-158df2528a1edacc.js +0 -1
  1037. package/app/.next-cli-build/static/chunks/app/api/cli-tools/hermes-settings/route-158df2528a1edacc.js +0 -1
  1038. package/app/.next-cli-build/static/chunks/app/api/cli-tools/jcode-settings/route-158df2528a1edacc.js +0 -1
  1039. package/app/.next-cli-build/static/chunks/app/api/cli-tools/kilo-settings/route-158df2528a1edacc.js +0 -1
  1040. package/app/.next-cli-build/static/chunks/app/api/cli-tools/openclaw-settings/route-158df2528a1edacc.js +0 -1
  1041. package/app/.next-cli-build/static/chunks/app/api/cli-tools/opencode-settings/route-158df2528a1edacc.js +0 -1
  1042. package/app/.next-cli-build/static/chunks/app/api/combos/[id]/route-158df2528a1edacc.js +0 -1
  1043. package/app/.next-cli-build/static/chunks/app/api/combos/route-158df2528a1edacc.js +0 -1
  1044. package/app/.next-cli-build/static/chunks/app/api/combos/validate-roles/route-158df2528a1edacc.js +0 -1
  1045. package/app/.next-cli-build/static/chunks/app/api/dashboard/stream/route-158df2528a1edacc.js +0 -1
  1046. package/app/.next-cli-build/static/chunks/app/api/headroom/start/route-158df2528a1edacc.js +0 -1
  1047. package/app/.next-cli-build/static/chunks/app/api/headroom/status/route-158df2528a1edacc.js +0 -1
  1048. package/app/.next-cli-build/static/chunks/app/api/headroom/stop/route-158df2528a1edacc.js +0 -1
  1049. package/app/.next-cli-build/static/chunks/app/api/health/providers/route-158df2528a1edacc.js +0 -1
  1050. package/app/.next-cli-build/static/chunks/app/api/health/route-158df2528a1edacc.js +0 -1
  1051. package/app/.next-cli-build/static/chunks/app/api/health/stream/route-158df2528a1edacc.js +0 -1
  1052. package/app/.next-cli-build/static/chunks/app/api/init/route-158df2528a1edacc.js +0 -1
  1053. package/app/.next-cli-build/static/chunks/app/api/keys/[id]/route-158df2528a1edacc.js +0 -1
  1054. package/app/.next-cli-build/static/chunks/app/api/keys/route-158df2528a1edacc.js +0 -1
  1055. package/app/.next-cli-build/static/chunks/app/api/locale/route-158df2528a1edacc.js +0 -1
  1056. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/message/route-158df2528a1edacc.js +0 -1
  1057. package/app/.next-cli-build/static/chunks/app/api/mcp/[plugin]/sse/route-158df2528a1edacc.js +0 -1
  1058. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/deepgram/voices/route-158df2528a1edacc.js +0 -1
  1059. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-158df2528a1edacc.js +0 -1
  1060. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/inworld/voices/route-158df2528a1edacc.js +0 -1
  1061. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/minimax/voices/route-158df2528a1edacc.js +0 -1
  1062. package/app/.next-cli-build/static/chunks/app/api/media-providers/tts/voices/route-158df2528a1edacc.js +0 -1
  1063. package/app/.next-cli-build/static/chunks/app/api/models/alias/route-158df2528a1edacc.js +0 -1
  1064. package/app/.next-cli-build/static/chunks/app/api/models/availability/route-158df2528a1edacc.js +0 -1
  1065. package/app/.next-cli-build/static/chunks/app/api/models/custom/route-158df2528a1edacc.js +0 -1
  1066. package/app/.next-cli-build/static/chunks/app/api/models/disabled/route-158df2528a1edacc.js +0 -1
  1067. package/app/.next-cli-build/static/chunks/app/api/models/route-158df2528a1edacc.js +0 -1
  1068. package/app/.next-cli-build/static/chunks/app/api/models/test/route-158df2528a1edacc.js +0 -1
  1069. package/app/.next-cli-build/static/chunks/app/api/oauth/1min/import/route-158df2528a1edacc.js +0 -1
  1070. package/app/.next-cli-build/static/chunks/app/api/oauth/[provider]/[action]/route-158df2528a1edacc.js +0 -1
  1071. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/bulk-import/route-158df2528a1edacc.js +0 -1
  1072. package/app/.next-cli-build/static/chunks/app/api/oauth/codex/import-token/route-158df2528a1edacc.js +0 -1
  1073. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/auto-import/route-158df2528a1edacc.js +0 -1
  1074. package/app/.next-cli-build/static/chunks/app/api/oauth/cursor/import/route-158df2528a1edacc.js +0 -1
  1075. package/app/.next-cli-build/static/chunks/app/api/oauth/gitlab/pat/route-158df2528a1edacc.js +0 -1
  1076. package/app/.next-cli-build/static/chunks/app/api/oauth/iflow/cookie/route-158df2528a1edacc.js +0 -1
  1077. package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/auto-import/route-158df2528a1edacc.js +0 -1
  1078. package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/import/route-158df2528a1edacc.js +0 -1
  1079. package/app/.next-cli-build/static/chunks/app/api/oauth/kimi-desktop/quota/route-158df2528a1edacc.js +0 -1
  1080. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/api-key/route-158df2528a1edacc.js +0 -1
  1081. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/auto-import/route-158df2528a1edacc.js +0 -1
  1082. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import/route-158df2528a1edacc.js +0 -1
  1083. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/import-cli-proxy/route-158df2528a1edacc.js +0 -1
  1084. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-authorize/route-158df2528a1edacc.js +0 -1
  1085. package/app/.next-cli-build/static/chunks/app/api/oauth/kiro/social-exchange/route-158df2528a1edacc.js +0 -1
  1086. package/app/.next-cli-build/static/chunks/app/api/oauth/qwen/import/route-158df2528a1edacc.js +0 -1
  1087. package/app/.next-cli-build/static/chunks/app/api/oauth/wp-studio/import/route-158df2528a1edacc.js +0 -1
  1088. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/auto-import/route-158df2528a1edacc.js +0 -1
  1089. package/app/.next-cli-build/static/chunks/app/api/oauth/zed/import/route-158df2528a1edacc.js +0 -1
  1090. package/app/.next-cli-build/static/chunks/app/api/pricing/route-158df2528a1edacc.js +0 -1
  1091. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/[id]/route-158df2528a1edacc.js +0 -1
  1092. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/route-158df2528a1edacc.js +0 -1
  1093. package/app/.next-cli-build/static/chunks/app/api/provider-nodes/validate/route-158df2528a1edacc.js +0 -1
  1094. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/agnes-profile/route-158df2528a1edacc.js +0 -1
  1095. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/freebuff-profile/route-158df2528a1edacc.js +0 -1
  1096. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/health-timeline/route-158df2528a1edacc.js +0 -1
  1097. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/inxora-profile/route-158df2528a1edacc.js +0 -1
  1098. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/models/route-158df2528a1edacc.js +0 -1
  1099. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-api-profile/route-158df2528a1edacc.js +0 -1
  1100. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/onemin-profile/route-158df2528a1edacc.js +0 -1
  1101. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/qwencloud-profile/route-158df2528a1edacc.js +0 -1
  1102. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/route-158df2528a1edacc.js +0 -1
  1103. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test/route-158df2528a1edacc.js +0 -1
  1104. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/test-models/route-158df2528a1edacc.js +0 -1
  1105. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/v0-profile/route-158df2528a1edacc.js +0 -1
  1106. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/vault-pool/route-158df2528a1edacc.js +0 -1
  1107. package/app/.next-cli-build/static/chunks/app/api/providers/[id]/zenmux-plans/route-158df2528a1edacc.js +0 -1
  1108. package/app/.next-cli-build/static/chunks/app/api/providers/client/route-158df2528a1edacc.js +0 -1
  1109. package/app/.next-cli-build/static/chunks/app/api/providers/kilo/free-models/route-158df2528a1edacc.js +0 -1
  1110. package/app/.next-cli-build/static/chunks/app/api/providers/route-158df2528a1edacc.js +0 -1
  1111. package/app/.next-cli-build/static/chunks/app/api/providers/suggested-models/route-158df2528a1edacc.js +0 -1
  1112. package/app/.next-cli-build/static/chunks/app/api/providers/test-batch/route-158df2528a1edacc.js +0 -1
  1113. package/app/.next-cli-build/static/chunks/app/api/providers/validate/route-158df2528a1edacc.js +0 -1
  1114. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/route-158df2528a1edacc.js +0 -1
  1115. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/[id]/test/route-158df2528a1edacc.js +0 -1
  1116. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/cloudflare-deploy/route-158df2528a1edacc.js +0 -1
  1117. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/deno-deploy/route-158df2528a1edacc.js +0 -1
  1118. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/route-158df2528a1edacc.js +0 -1
  1119. package/app/.next-cli-build/static/chunks/app/api/proxy-pools/vercel-deploy/route-158df2528a1edacc.js +0 -1
  1120. package/app/.next-cli-build/static/chunks/app/api/pxpipe/install/route-158df2528a1edacc.js +0 -1
  1121. package/app/.next-cli-build/static/chunks/app/api/pxpipe/status/route-158df2528a1edacc.js +0 -1
  1122. package/app/.next-cli-build/static/chunks/app/api/settings/database/route-158df2528a1edacc.js +0 -1
  1123. package/app/.next-cli-build/static/chunks/app/api/settings/proxy-test/route-158df2528a1edacc.js +0 -1
  1124. package/app/.next-cli-build/static/chunks/app/api/settings/require-login/route-158df2528a1edacc.js +0 -1
  1125. package/app/.next-cli-build/static/chunks/app/api/settings/route-158df2528a1edacc.js +0 -1
  1126. package/app/.next-cli-build/static/chunks/app/api/shutdown/route-158df2528a1edacc.js +0 -1
  1127. package/app/.next-cli-build/static/chunks/app/api/swarm/active/route-158df2528a1edacc.js +0 -1
  1128. package/app/.next-cli-build/static/chunks/app/api/swarm/stream/route-158df2528a1edacc.js +0 -1
  1129. package/app/.next-cli-build/static/chunks/app/api/tags/route-158df2528a1edacc.js +0 -1
  1130. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/route-158df2528a1edacc.js +0 -1
  1131. package/app/.next-cli-build/static/chunks/app/api/translator/console-logs/stream/route-158df2528a1edacc.js +0 -1
  1132. package/app/.next-cli-build/static/chunks/app/api/translator/load/route-158df2528a1edacc.js +0 -1
  1133. package/app/.next-cli-build/static/chunks/app/api/translator/save/route-158df2528a1edacc.js +0 -1
  1134. package/app/.next-cli-build/static/chunks/app/api/translator/send/route-158df2528a1edacc.js +0 -1
  1135. package/app/.next-cli-build/static/chunks/app/api/translator/translate/route-158df2528a1edacc.js +0 -1
  1136. package/app/.next-cli-build/static/chunks/app/api/tunnel/disable/route-158df2528a1edacc.js +0 -1
  1137. package/app/.next-cli-build/static/chunks/app/api/tunnel/enable/route-158df2528a1edacc.js +0 -1
  1138. package/app/.next-cli-build/static/chunks/app/api/tunnel/status/route-158df2528a1edacc.js +0 -1
  1139. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-check/route-158df2528a1edacc.js +0 -1
  1140. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-disable/route-158df2528a1edacc.js +0 -1
  1141. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-enable/route-158df2528a1edacc.js +0 -1
  1142. package/app/.next-cli-build/static/chunks/app/api/tunnel/tailscale-install/route-158df2528a1edacc.js +0 -1
  1143. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/codex-reset-credits/route-158df2528a1edacc.js +0 -1
  1144. package/app/.next-cli-build/static/chunks/app/api/usage/[connectionId]/route-158df2528a1edacc.js +0 -1
  1145. package/app/.next-cli-build/static/chunks/app/api/usage/chart/route-158df2528a1edacc.js +0 -1
  1146. package/app/.next-cli-build/static/chunks/app/api/usage/history/route-158df2528a1edacc.js +0 -1
  1147. package/app/.next-cli-build/static/chunks/app/api/usage/leaderboard/route-158df2528a1edacc.js +0 -1
  1148. package/app/.next-cli-build/static/chunks/app/api/usage/logs/route-158df2528a1edacc.js +0 -1
  1149. package/app/.next-cli-build/static/chunks/app/api/usage/meta/route-158df2528a1edacc.js +0 -1
  1150. package/app/.next-cli-build/static/chunks/app/api/usage/providers/route-158df2528a1edacc.js +0 -1
  1151. package/app/.next-cli-build/static/chunks/app/api/usage/request-details/route-158df2528a1edacc.js +0 -1
  1152. package/app/.next-cli-build/static/chunks/app/api/usage/request-logs/route-158df2528a1edacc.js +0 -1
  1153. package/app/.next-cli-build/static/chunks/app/api/usage/retry-stats/route-158df2528a1edacc.js +0 -1
  1154. package/app/.next-cli-build/static/chunks/app/api/usage/stats/route-158df2528a1edacc.js +0 -1
  1155. package/app/.next-cli-build/static/chunks/app/api/usage/stream/route-158df2528a1edacc.js +0 -1
  1156. package/app/.next-cli-build/static/chunks/app/api/v1/api/chat/route-158df2528a1edacc.js +0 -1
  1157. package/app/.next-cli-build/static/chunks/app/api/v1/audio/speech/route-158df2528a1edacc.js +0 -1
  1158. package/app/.next-cli-build/static/chunks/app/api/v1/audio/transcriptions/route-158df2528a1edacc.js +0 -1
  1159. package/app/.next-cli-build/static/chunks/app/api/v1/audio/voices/route-158df2528a1edacc.js +0 -1
  1160. package/app/.next-cli-build/static/chunks/app/api/v1/chat/completions/route-158df2528a1edacc.js +0 -1
  1161. package/app/.next-cli-build/static/chunks/app/api/v1/embeddings/route-158df2528a1edacc.js +0 -1
  1162. package/app/.next-cli-build/static/chunks/app/api/v1/images/generations/route-158df2528a1edacc.js +0 -1
  1163. package/app/.next-cli-build/static/chunks/app/api/v1/messages/count_tokens/route-158df2528a1edacc.js +0 -1
  1164. package/app/.next-cli-build/static/chunks/app/api/v1/messages/route-158df2528a1edacc.js +0 -1
  1165. package/app/.next-cli-build/static/chunks/app/api/v1/models/[kind]/route-158df2528a1edacc.js +0 -1
  1166. package/app/.next-cli-build/static/chunks/app/api/v1/models/info/route-158df2528a1edacc.js +0 -1
  1167. package/app/.next-cli-build/static/chunks/app/api/v1/models/route-158df2528a1edacc.js +0 -1
  1168. package/app/.next-cli-build/static/chunks/app/api/v1/responses/compact/route-158df2528a1edacc.js +0 -1
  1169. package/app/.next-cli-build/static/chunks/app/api/v1/responses/route-158df2528a1edacc.js +0 -1
  1170. package/app/.next-cli-build/static/chunks/app/api/v1/route-158df2528a1edacc.js +0 -1
  1171. package/app/.next-cli-build/static/chunks/app/api/v1/search/route-158df2528a1edacc.js +0 -1
  1172. package/app/.next-cli-build/static/chunks/app/api/v1/web/fetch/route-158df2528a1edacc.js +0 -1
  1173. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/[...path]/route-158df2528a1edacc.js +0 -1
  1174. package/app/.next-cli-build/static/chunks/app/api/v1beta/models/route-158df2528a1edacc.js +0 -1
  1175. package/app/.next-cli-build/static/chunks/app/api/version/route-158df2528a1edacc.js +0 -1
  1176. package/app/.next-cli-build/static/chunks/app/api/version/shutdown/route-158df2528a1edacc.js +0 -1
  1177. package/app/.next-cli-build/static/chunks/app/api/version/update/route-158df2528a1edacc.js +0 -1
  1178. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-bb9f307074c5c23a.js +0 -1
  1179. package/app/.next-cli-build/static/chunks/app/manifest.webmanifest/route-158df2528a1edacc.js +0 -1
  1180. package/app/.next-cli-build/static/chunks/app/page-158df2528a1edacc.js +0 -1
  1181. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/app-error-158df2528a1edacc.js +0 -1
  1182. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/forbidden-158df2528a1edacc.js +0 -1
  1183. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/not-found-158df2528a1edacc.js +0 -1
  1184. package/app/.next-cli-build/static/chunks/next/dist/client/components/builtin/unauthorized-158df2528a1edacc.js +0 -1
  1185. package/app/.next-cli-build/static/css/d25230f8c6390408.css +0 -1
  1186. /package/app/.next-cli-build/static/{JRaGItQgERhBp83cHyRqE → FP2YsqoRbzETOIHRfld7X}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=6070,exports.ids=[6070],exports.modules={3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,gd:()=>i,t2:()=>j,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i={kiro:864e5},j=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"empty response",cooldownMs:5e3},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},26070:(a,b,c)=>{c.d(b,{xq:()=>p,B$:()=>s,vq:()=>q,sr:()=>r});var d=c(47834),e=c(41004);let f={baseUrl:"",format:"openai",headers:{},auth:{header:"Authorization",scheme:"bearer",source:["accessToken","apiKey"]},forceStream:!1,urlSuffix:"",quirks:{},passthroughModels:!1,retry:e.cI,timeoutMs:e.pH,executor:"default"};var g=c(99511);let h={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},i=(...a)=>a.map(a=>({...h[a],type:"tts"})),j=i("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),k=i("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),l=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),m={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":k,"tts-1":j,"tts-1-hd":j},allVoices:k},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":k,"openai/tts-1":j,"openai/tts-1-hd":j},allVoices:k},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":l,"gemini-2.5-flash-preview-tts":l,"gemini-2.5-pro-preview-tts":l},allVoices:l}},n=["clientId","clientSecret","tokenUrl"],o=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),p={},q={},r={},s={};for(let a of d.A){a.transport&&(p[a.id]=function(a,b){let c={...a};if(c.format||(c.format=f.format),b)for(let a of n)void 0===c[a]&&void 0!==b[a]&&(c[a]=b[a]);return c}(a.transport,a.oauth),a.transports&&(p[a.id].transports=a.transports)),void 0!==a.models&&(q[a.alias||a.id]=a.models.map(g.pk)),a.oauth&&(r[a.id]=a.oauth);let b={};for(let c of o)void 0!==a[c]&&(b[c]=a[c]);a.media&&Object.assign(b,a.media),Object.keys(b).length&&(s[a.id]=b)}Object.assign(q,function(){let a={};for(let[b,c]of Object.entries(m))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=m.openai.allVoices,a["openrouter-tts-voices"]=m.openrouter.allVoices,a}())},41004:(a,b,c)=>{c.d(b,{C8:()=>n,DR:()=>m,IK:()=>i,Uc:()=>j,cI:()=>l,eo:()=>k,gx:()=>d,pH:()=>h,v1:()=>e,xM:()=>g}),c(3662);let d={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},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20};function f(a,b){let c=process.env[a];if(null==c||""===c)return b;let d=parseInt(c,10);return Number.isFinite(d)&&d>0?d:b}let g=f("STREAM_STALL_TIMEOUT_MS",36e4);f("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5);let h=f("FETCH_CONNECT_TIMEOUT_MS",6e4),i=f("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3),j=64e3,k=32e3,l={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function m(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let n=["Please write a 5-10 word title for the following conversation:"]},99511:(a,b,c)=>{function d(a){return a.split(/[-_\s]+/).filter(Boolean).map(a=>/^\d/.test(a)?a:a.charAt(0).toUpperCase()+a.slice(1)).join(" ")}c.d(b,{g5:()=>g,gr:()=>h,pk:()=>f});let e=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,a=>`Kimi K${a[1]}${a[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,a=>`GLM ${a[1]}${a[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,a=>`MiniMax M${a[1]}`],[/^gpt-(.+)$/i,a=>`GPT ${d(a[1])}`],[/^gemini-(.+)$/i,a=>`Gemini ${d(a[1])}`],[/^grok-(.+)$/i,a=>`Grok ${d(a[1])}`],[/^deepseek-(.+)$/i,a=>`DeepSeek ${d(a[1])}`],[/^qwen([\d.]+.*)$/i,a=>`Qwen ${d(a[1])}`]];function f(a){let b="string"==typeof a?{id:a}:a;return void 0!==b.name?b:{...b,name:function(a){if("string"!=typeof a)return a;for(let[b,c]of e){let d=a.match(b);if(d)return c(d)}return a}(b.id)}}function g(a){return a?.strip||[]}function h(a){return a?.targetFormat||null}}};
@@ -1 +0,0 @@
1
- exports.id=6560,exports.ids=[6560],exports.modules={962:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/McpMarketplaceModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/McpMarketplaceModal.js","default")},3080:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/OAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/OAuthModal.js","default")},4996:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/CapacityBadges.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/CapacityBadges.js","default")},5843:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/NoAuthProxyCard.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/NoAuthProxyCard.js","default")},7290:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Card.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Card.js","default")},8229:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/IconButton.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/IconButton.js","default")},10079:(a,b,c)=>{"use strict";c.d(b,{ConfirmModal:()=>f,default:()=>e});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Modal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Modal.js","default"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call ConfirmModal() from the server but ConfirmModal is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Modal.js","ConfirmModal")},14285:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KiroOAuthWrapper.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KiroOAuthWrapper.js","default")},16380:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KimiDesktopQuotaCard.jsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KimiDesktopQuotaCard.jsx","default")},18200:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/AddCustomEmbeddingModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/AddCustomEmbeddingModal.js","default")},18421:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Tooltip.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Tooltip.js","default")},20493:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ComboFormModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ComboFormModal.js","default")},26866:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Sidebar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Sidebar.js","default")},29354:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/HeaderMenu.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/HeaderMenu.js","default")},29674:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/NineRemoteButton.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/NineRemoteButton.js","default")},30508:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(5735),e=c(65573),f=c(91970),g=c(89718),h=c(33792);c(45512),c(71230),c(83784),c(7290),c(10079),c(92082),c(70061),c(33893),c(70092),c(40515),c(89886),c(26866),c(92669),c(49123),c(3080),c(94582),c(70603),c(20493),c(962),c(45205),c(29674),c(29354),c(33811),c(82448),c(14285),c(87228),c(40167),c(56966),c(87925),c(16380),c(33937),c(37008),c(38086),c(80342),c(64148),c(70139),c(18200),c(5843),c(54065),c(18421),c(81923),c(4996),c(98738),c(72701),c(8229),c(41970);var i=c(61780);async function j({children:a}){if(!1!==(await (0,g.mt)()).requireLogin){let a=await (0,e.UL)();await (0,h.dY)(a.get("auth_token")?.value)||(0,f.redirect)("/login")}return(0,d.jsx)(i.default,{children:a})}c(64420)},33792:(a,b,c)=>{"use strict";c.d(b,{Dc:()=>r,OZ:()=>u,YK:()=>p,dY:()=>s,nz:()=>v,tm:()=>t});var d=c(86935),e=c(69614),f=c(34013),g=c(73024),h=c.n(g),i=c(76760),j=c.n(i),k=c(77598),l=c.n(k),m=c(58273),n=c(89718);let o=new TextEncoder().encode(function(){if(process.env.JWT_SECRET)return process.env.JWT_SECRET;let a=j().join(m.n,"jwt-secret");try{return h().readFileSync(a,"utf8").trim()}catch{}h().mkdirSync(m.n,{recursive:!0});let b=l().randomBytes(32).toString("hex");return h().writeFileSync(a,b,{mode:384}),b}());function p(a){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a?.headers?.get?.("x-forwarded-proto");return b||"https"===c}async function q(a={}){return new d.P({authenticated:!0,...a}).setProtectedHeader({alg:"HS256"}).setIssuedAt().setExpirationTime("24h").sign(o)}async function r(a){if(!a)return!1;try{return await (0,e.V)(a,o),!0}catch{return!1}}async function s(a){if(!a)return null;try{let{payload:b}=await (0,e.V)(a,o);return b}catch{return null}}async function t(a,b,c={}){let d=await q(c);a.set("auth_token",d,{httpOnly:!0,secure:p(b),sameSite:"lax",path:"/"})}function u(a){a.delete("auth_token")}async function v(a){if("string"!=typeof a||!a)return!1;let b=await (0,n.mt)(),c=b?.password;return c?f.Ay.compare(a,c):a===(process.env.INITIAL_PASSWORD||"123456")}},33811:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ChangelogModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ChangelogModal.js","default")},33893:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Badge.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Badge.js","default")},33937:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/OneMinAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/OneMinAuthModal.js","default")},37008:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/QwenAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/QwenAuthModal.js","default")},38086:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/WpStudioAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/WpStudioAuthModal.js","default")},40167:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/CursorAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/CursorAuthModal.js","default")},40515:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ThemeToggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ThemeToggle.js","default")},41970:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/EmptyState.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/EmptyState.js","default")},45205:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/LanguageSwitcher.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/LanguageSwitcher.js","default")},45512:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Button.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Button.js","default")},49123:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Footer.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Footer.js","default")},54065:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/SegmentedControl.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/SegmentedControl.js","default")},56966:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ZedAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ZedAuthModal.js","default")},61780:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/layouts/DashboardLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/layouts/DashboardLayout.js","default")},64148:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/GitLabAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/GitLabAuthModal.js","default")},64420:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/layouts/AuthLayout.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/layouts/AuthLayout.js","default")},70061:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Avatar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Avatar.js","default")},70092:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Toggle.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Toggle.js","default")},70139:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/EditConnectionModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/EditConnectionModal.js","default")},70603:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ManualConfigModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ManualConfigModal.js","default")},71230:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Input.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Input.js","default")},72701:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Toolbar.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Toolbar.js","default")},74624:(a,b,c)=>{Promise.resolve().then(c.bind(c,67738)),Promise.resolve().then(c.bind(c,25919)),Promise.resolve().then(c.bind(c,75171)),Promise.resolve().then(c.bind(c,99070)),Promise.resolve().then(c.bind(c,38930)),Promise.resolve().then(c.bind(c,17660)),Promise.resolve().then(c.bind(c,11229)),Promise.resolve().then(c.bind(c,62727)),Promise.resolve().then(c.bind(c,51109)),Promise.resolve().then(c.bind(c,51585)),Promise.resolve().then(c.bind(c,26584)),Promise.resolve().then(c.bind(c,48781)),Promise.resolve().then(c.bind(c,43182)),Promise.resolve().then(c.bind(c,70727)),Promise.resolve().then(c.bind(c,3236)),Promise.resolve().then(c.bind(c,51175)),Promise.resolve().then(c.bind(c,79488)),Promise.resolve().then(c.bind(c,83552)),Promise.resolve().then(c.bind(c,619)),Promise.resolve().then(c.bind(c,42758)),Promise.resolve().then(c.bind(c,8590)),Promise.resolve().then(c.bind(c,5291)),Promise.resolve().then(c.bind(c,56110)),Promise.resolve().then(c.bind(c,267)),Promise.resolve().then(c.bind(c,53838)),Promise.resolve().then(c.bind(c,85306)),Promise.resolve().then(c.bind(c,74812)),Promise.resolve().then(c.bind(c,39645)),Promise.resolve().then(c.bind(c,20084)),Promise.resolve().then(c.bind(c,95145)),Promise.resolve().then(c.bind(c,83352)),Promise.resolve().then(c.bind(c,29370)),Promise.resolve().then(c.bind(c,50585)),Promise.resolve().then(c.bind(c,79346)),Promise.resolve().then(c.bind(c,88831)),Promise.resolve().then(c.bind(c,58980)),Promise.resolve().then(c.bind(c,11633)),Promise.resolve().then(c.bind(c,6386)),Promise.resolve().then(c.bind(c,91099)),Promise.resolve().then(c.bind(c,4770)),Promise.resolve().then(c.bind(c,32189)),Promise.resolve().then(c.bind(c,19308)),Promise.resolve().then(c.bind(c,53845)),Promise.resolve().then(c.bind(c,95514)),Promise.resolve().then(c.bind(c,32171)),Promise.resolve().then(c.bind(c,32971)),Promise.resolve().then(c.bind(c,74756)),Promise.resolve().then(c.bind(c,24656))},80342:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/IFlowCookieModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/IFlowCookieModal.js","default")},81923:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ProviderInfoCard.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ProviderInfoCard.js","default")},82448:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KiroAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KiroAuthModal.js","default")},83784:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Select.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Select.js","default")},87228:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KiroSocialOAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KiroSocialOAuthModal.js","default")},87776:(a,b,c)=>{Promise.resolve().then(c.bind(c,18200)),Promise.resolve().then(c.bind(c,70061)),Promise.resolve().then(c.bind(c,33893)),Promise.resolve().then(c.bind(c,45512)),Promise.resolve().then(c.bind(c,4996)),Promise.resolve().then(c.bind(c,7290)),Promise.resolve().then(c.bind(c,33811)),Promise.resolve().then(c.bind(c,20493)),Promise.resolve().then(c.bind(c,40167)),Promise.resolve().then(c.bind(c,70139)),Promise.resolve().then(c.bind(c,41970)),Promise.resolve().then(c.bind(c,49123)),Promise.resolve().then(c.bind(c,64148)),Promise.resolve().then(c.bind(c,92669)),Promise.resolve().then(c.bind(c,29354)),Promise.resolve().then(c.bind(c,8229)),Promise.resolve().then(c.bind(c,80342)),Promise.resolve().then(c.bind(c,71230)),Promise.resolve().then(c.bind(c,87925)),Promise.resolve().then(c.bind(c,16380)),Promise.resolve().then(c.bind(c,82448)),Promise.resolve().then(c.bind(c,14285)),Promise.resolve().then(c.bind(c,87228)),Promise.resolve().then(c.bind(c,45205)),Promise.resolve().then(c.bind(c,64420)),Promise.resolve().then(c.bind(c,61780)),Promise.resolve().then(c.bind(c,92082)),Promise.resolve().then(c.bind(c,70603)),Promise.resolve().then(c.bind(c,962)),Promise.resolve().then(c.bind(c,10079)),Promise.resolve().then(c.bind(c,94582)),Promise.resolve().then(c.bind(c,29674)),Promise.resolve().then(c.bind(c,5843)),Promise.resolve().then(c.bind(c,3080)),Promise.resolve().then(c.bind(c,33937)),Promise.resolve().then(c.bind(c,98738)),Promise.resolve().then(c.bind(c,81923)),Promise.resolve().then(c.bind(c,37008)),Promise.resolve().then(c.bind(c,54065)),Promise.resolve().then(c.bind(c,83784)),Promise.resolve().then(c.bind(c,26866)),Promise.resolve().then(c.bind(c,89886)),Promise.resolve().then(c.bind(c,40515)),Promise.resolve().then(c.bind(c,70092)),Promise.resolve().then(c.bind(c,72701)),Promise.resolve().then(c.bind(c,18421)),Promise.resolve().then(c.bind(c,38086)),Promise.resolve().then(c.bind(c,56966))},87925:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KimiDesktopAuthModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/KimiDesktopAuthModal.js","default")},92082:(a,b,c)=>{"use strict";c.d(b,{CardSkeleton:()=>h,PageLoading:()=>f,Skeleton:()=>g,Spinner:()=>e,default:()=>i});var d=c(77943);let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call Spinner() from the server but Spinner is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Loading.js","Spinner"),f=(0,d.registerClientReference)(function(){throw Error("Attempted to call PageLoading() from the server but PageLoading is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Loading.js","PageLoading"),g=(0,d.registerClientReference)(function(){throw Error("Attempted to call Skeleton() from the server but Skeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Loading.js","Skeleton"),h=(0,d.registerClientReference)(function(){throw Error("Attempted to call CardSkeleton() from the server but CardSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Loading.js","CardSkeleton"),i=(0,d.registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Loading.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Loading.js","default")},92669:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Header.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/Header.js","default")},94582:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ModelSelectModal.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/ModelSelectModal.js","default")},98738:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/PageHeader.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/ExtremeRouter/ExtremeRouter/src/shared/components/PageHeader.js","default")}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7187,exports.ids=[7187],exports.modules={12557:(a,b,c)=>{c.d(b,{Bl:()=>m,CR:()=>g,Fw:()=>f,Qo:()=>i,S5:()=>o,hk:()=>e,kJ:()=>n,zZ:()=>h});var d=c(3662);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a,b){if(402===a)return!0;let c="string"==typeof b?b:(()=>{try{return JSON.stringify(b)}catch{return String(b)}})();return/out of credits|credits.*(?:top up|billing|exhausted)|quota.*(?:exhausted|exceeded|reached)/i.test(c)}function g(a=new Date){let b=function(a=new Date){let b=new Date(a.getTime());return new Date(Date.UTC(b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()+1,0,0,0,0))}(a);return{isActive:!1,rateLimitedUntil:b.toISOString(),testStatus:"quota_exhausted",lastErrorType:"quota_exhausted",errorCode:402,quotaExhaustedAt:a.toISOString(),quotaResetsAt:b.toISOString()}}function h(){return{isActive:!0,rateLimitedUntil:null,testStatus:"active",quotaExhaustedAt:null,quotaResetsAt:null}}function i(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(" ")}`}let j="modelLock_",k=`${j}__all`;function l(a){return a?`${j}${a}`:k}function m(a,b){let c=a[l(b)]||a[k];return!!c&&new Date(c).getTime()>Date.now()}function n(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(j)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a<b)&&(b=a)}return b?new Date(b).toISOString():null}function o(a,b){return{[l(a)]:new Date(Date.now()+b).toISOString()}}},40669:(a,b,c)=>{c.d(b,{Xh:()=>g,g2:()=>f,js:()=>h});var d=c(47834);let e={el:"elevenlabs",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};for(let a of d.A)for(let b of(e[a.id]=a.id,a.alias&&(e[a.alias]=a.id),a.aliases||[]))e[b]=a.id;function f(a){return e[a]||a}function g(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1);return{provider:f(c),model:d,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function h(a,b){let c=g(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let d="function"==typeof b?await b():b,e=function(a,b){if(!b)return null;let c=b[a];if(!c)return null;if("string"==typeof c&&c.includes("/")){let a=c.indexOf("/");return{provider:f(c.slice(0,a)),model:c.slice(a+1)}}return"object"==typeof c&&c.provider&&c.model?{provider:f(c.provider),model:c.model}:null}(c.model,d);return e||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return i.find(([a])=>a.test(b))?.[1]||"openai"}(c.model),model:c.model}}let i=[[/^claude-/,"anthropic"],[/^gemini-/,"gemini"],[/^gpt-/,"openai"],[/^o[134]/,"openai"],[/^deepseek-/,"openrouter"]]},43659:(a,b,c)=>{c.d(b,{A1:()=>h,lR:()=>j,wO:()=>i,yj:()=>f,zL:()=>g});var d=c(3662),e=c(74129);function f(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*","anthropic-version":e.b8}})}async function g(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let f=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:f}}function h(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:f(a,b)}}function i(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`,type:"server_error",code:"service_unavailable"}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function j(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7218,exports.ids=[7218],exports.modules={2097:(a,b,c)=>{c.r(b),c.d(b,{DELETE:()=>l,GET:()=>j,PUT:()=>k,validateContextLength:()=>i});var d=c(23211),e=c(89718),f=c(82121),g=c(12280),h=c(31589);function i(a){if(null==a)return{ok:!0,value:null};let b=Number(a);return!Number.isInteger(b)||b<=0?{ok:!1,error:"context_length must be a positive integer"}:b>2e6?{ok:!1,error:"context_length must not exceed 2000000"}:{ok:!0,value:b}}async function j(a,{params:b}){try{let{id:a}=await b,c=await (0,e.L)(a);return c?d.NextResponse.json(c):d.NextResponse.json({error:"Combo not found"},{status:404})}catch(a){return console.error("Error fetching combo:",a),d.NextResponse.json({error:"Failed to fetch combo"},{status:500})}}async function k(a,{params:b}){try{let{id:c}=await b,j=await a.json(),k=await (0,e.L)(c);if(!k)return d.NextResponse.json({error:"Combo not found"},{status:404});let l={name:void 0!==j.name?"string"==typeof j.name?j.name.trim():j.name:k.name,models:void 0!==j.models?Array.isArray(j.models)?j.models.map(a=>"string"==typeof a?a.trim():a):j.models:k.models,kind:void 0!==j.kind?j.kind:k.kind,strategyConfig:void 0!==j.strategyConfig?j.strategyConfig:k.strategyConfig,context_length:void 0!==j.context_length?j.context_length:k.context_length},m=(0,g.uH)(l);if(!m.valid)return d.NextResponse.json({error:m.errors[0],errors:m.errors},{status:400});let n=i(l.context_length);if(!n.ok)return d.NextResponse.json({error:n.error},{status:400});if(l.context_length=n.value,!m.valid)return d.NextResponse.json({error:m.errors[0],errors:m.errors},{status:400});let o=(0,h.Ub)(l.strategyConfig?.fallbackStrategy||"fallback",l.strategyConfig,l.models);if(o.length)return d.NextResponse.json({error:o[0].reason,violations:o},{status:400});let p=await (0,e.Dj)(l.name);if(p&&p.id!==c)return d.NextResponse.json({error:"Combo name already exists"},{status:409});let q=await (0,e.oG)(c,{...l,revision:j.revision});if(q?.conflict)return d.NextResponse.json({error:"Combo was changed by another session",code:"revision_conflict"},{status:409});if(!q)return d.NextResponse.json({error:"Combo not found"},{status:404});return(0,f.UP)(k.name),q.name!==k.name&&(0,f.UP)(q.name),d.NextResponse.json(q)}catch(a){return console.error("Error updating combo:",a),d.NextResponse.json({error:"Failed to update combo"},{status:500})}}async function l(a,{params:b}){try{let{id:a}=await b,c=await (0,e.L)(a);if(!c||!await (0,e.CG)(a))return d.NextResponse.json({error:"Combo not found"},{status:404});return(0,f.UP)(c.name),d.NextResponse.json({success:!0})}catch(a){return console.error("Error deleting combo:",a),d.NextResponse.json({error:"Failed to delete combo"},{status:500})}}},3662:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,gd:()=>i,t2:()=>j,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i={kiro:864e5},j=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"empty response",cooldownMs:5e3},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},14170:(a,b,c)=>{c.d(b,{h:()=>d,t:()=>e});let d={OPENAI:"openai",OPENAI_RESPONSES:"openai-responses",OPENAI_RESPONSE:"openai-response",CLAUDE:"claude",GEMINI:"gemini",GEMINI_CLI:"gemini-cli",VERTEX:"vertex",CODEX:"codex",ANTIGRAVITY:"antigravity",KIRO:"kiro",CURSOR:"cursor",OLLAMA:"ollama",COMMANDCODE:"commandcode",ZED:"zed"};function e(a,b){return a.includes("/v1/responses")?d.OPENAI_RESPONSES:a.includes("/v1/messages")?d.CLAUDE:a.includes("/v1/chat/completions")&&Array.isArray(b?.input)?d.OPENAI:null}},24467:(a,b,c)=>{c.d(b,{DS:()=>r,GK:()=>m,MX:()=>l,RF:()=>s,X6:()=>f,Yh:()=>t,aS:()=>p,gI:()=>h,hy:()=>i,i5:()=>o,j8:()=>n});var d=c(78474);global._circuitBreakers||(global._circuitBreakers=new Map,global._breakerEmitter=new d.EventEmitter,global._breakerEmitter.setMaxListeners(50));let e=global._circuitBreakers,f=global._breakerEmitter,g={enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1};function h(a,b){let c=b&&"object"==typeof b?b:{};if(!c.connectionProxyEnabled)return a;let d=c.connectionProxyPoolId||"",e=c.connectionProxyUrl||"";return`${a}:proxy:${d||e}`}function i(a){let b=Number(a)||0;return 0===b||429===b||b>=500}function j(a){let b=e.get(a);return b||(b={key:a,state:"closed",failures:[],openedAt:null,cooldownEndsAt:null,halfOpenCalls:0,lastActivityAt:Date.now()},e.set(a,b)),b}function k(a){let b=e.get(a);b&&f.emit("breaker:update",{provider:b.key,state:b.state,failures:b.failures.length,openedAt:b.openedAt,cooldownEndsAt:b.cooldownEndsAt})}function l(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let e=c||a,f=j(e);f.lastActivityAt=Date.now();let h=Date.now();if("open"===f.state)if(!f.cooldownEndsAt||!(h>=f.cooldownEndsAt))return!0;else f.state="halfOpen",f.halfOpenCalls=0,k(e);if("halfOpen"===f.state){if(f.halfOpenCalls>=d.halfOpenMaxCalls)return!0;f.halfOpenCalls++}return!1}function m(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let f=e.get(c||a);if(!f)return!1;let h=Date.now();return"open"===f.state?!f.cooldownEndsAt||!(h>=f.cooldownEndsAt):"halfOpen"===f.state&&f.halfOpenCalls>=d.halfOpenMaxCalls}function n(a,b={},c=null){if(!({...g,...b?.circuitBreaker||{}}).enabled)return;let d=c||a,e=j(d);e.lastActivityAt=Date.now(),("closed"!==e.state||e.failures.length>0)&&(e.state="closed",e.failures=[],e.openedAt=null,e.cooldownEndsAt=null,e.halfOpenCalls=0,k(d))}function o(a,b,c={},d=null){let e={...g,...c?.circuitBreaker||{}};if(!e.enabled)return;let f=d||a,h=j(f);h.lastActivityAt=Date.now();let i=Date.now();if("halfOpen"===h.state){h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,h.halfOpenCalls=0,h.failures=[{ts:i,status:b}],k(f);return}if("closed"===h.state){h.failures.push({ts:i,status:b});let a=i-e.windowMs;h.failures=h.failures.filter(b=>b.ts>=a),h.failures.length>=e.failureThreshold&&(h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,k(f))}}function p(a,b=null){let c=e.get(b||a);!c||(c.lastActivityAt=Date.now(),"halfOpen"===c.state&&c.halfOpenCalls>0&&c.halfOpenCalls--)}let q=0;function r(){let a=Date.now();!function(a){if(a-q<6e4)return;q=a;let b=a-6e5;for(let[a,c]of e)"closed"===c.state&&(c.lastActivityAt||0)<b&&e.delete(a)}(a);let b=[];for(let c of e.values()){let d=c.state,e=null;"open"===c.state&&c.cooldownEndsAt&&0===(e=Math.max(0,c.cooldownEndsAt-a))&&(d="halfOpen"),b.push({provider:c.key,state:d,failures:c.failures.length,openedAt:c.openedAt,cooldownEndsAt:c.cooldownEndsAt,cooldownRemainingMs:e})}return b}function s(a,b=null){let c=e.get(b||a);return c&&"open"===c.state&&c.cooldownEndsAt?c.cooldownEndsAt:null}function t(a,b=null){if(b){let a=e.get(b);return!!a&&(a.state="closed",a.failures=[],a.openedAt=null,a.cooldownEndsAt=null,a.halfOpenCalls=0,k(b),!0)}let c=!1;for(let[b,d]of e)(b===a||b.startsWith(`${a}:`))&&(d.state="closed",d.failures=[],d.openedAt=null,d.cooldownEndsAt=null,d.halfOpenCalls=0,k(b),c=!0);return c}},26922:(a,b,c)=>{c.d(b,{KZ:()=>k,S6:()=>h,Yr:()=>o,f6:()=>l,fc:()=>g,kU:()=>i,pT:()=>j,w_:()=>m});var d=c(62842),e=c(55673);let f=["minLength","maxLength","exclusiveMinimum","exclusiveMaximum","minItems","maxItems","format","default","examples","$schema","$defs","definitions","const","$ref","$comment","deprecated","readOnly","writeOnly","additionalProperties","propertyNames","patternProperties","enumDescriptions","anyOf","oneOf","allOf","not","dependencies","dependentSchemas","dependentRequired","title","optional","deprecated","if","then","else","contentMediaType","contentEncoding","cornerRadius","fillColor","fontFamily","fontSize","fontWeight","gap","padding","strokeColor","strokeThickness","textColor"],g=[{category:"HARM_CATEGORY_HATE_SPEECH",threshold:"OFF"},{category:"HARM_CATEGORY_DANGEROUS_CONTENT",threshold:"OFF"},{category:"HARM_CATEGORY_SEXUALLY_EXPLICIT",threshold:"OFF"},{category:"HARM_CATEGORY_HARASSMENT",threshold:"OFF"},{category:"HARM_CATEGORY_CIVIC_INTEGRITY",threshold:"OFF"}];function h(a){let b=[];if("string"==typeof a)b.push({text:a});else if(Array.isArray(a)){for(let c of a)if(c.type===e.x4.TEXT)b.push({text:c.text});else if(c.type===e.x4.IMAGE_URL&&c.image_url?.url?.startsWith("data:")){let a=c.image_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if(c.type===e.x4.IMAGE_URL&&c.image_url?.url&&(c.image_url.url.startsWith("http://")||c.image_url.url.startsWith("https://")))b.push({fileData:{fileUri:c.image_url.url,mimeType:"image/*"}});else if(c.type===e.x4.INPUT_AUDIO&&c.input_audio?.data){let a=c.input_audio.format||"wav",d="mp3"===a?"audio/mpeg":`audio/${a}`;b.push({inlineData:{mime_type:d,data:c.input_audio.data}})}else if(c.type===e.x4.AUDIO_URL&&c.audio_url?.url?.startsWith("data:")){let a=c.audio_url.url,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d),e=a.substring(d+1),f=c.split(";")[0];b.push({inlineData:{mime_type:f,data:e}})}}else if(c.type===e.x4.FILE&&c.file?.file_data?.startsWith("data:")){let a=c.file.file_data,d=a.indexOf(",");if(-1!==d){let c=a.substring(5,d).split(";")[0],e=a.substring(d+1);b.push({inlineData:{mime_type:c,data:e}})}}}return b}function i(a,b=""){return"string"==typeof a?a:Array.isArray(a)?a.filter(a=>a.type===e.x4.TEXT).map(a=>a.text).join(b):""}function j(a){return(0,d.N)(a,null)}function k(){return`agent-${crypto.randomUUID()}`}function l(){return crypto.randomUUID()+Date.now().toString()}function m(){let a=["useful","bright","swift","calm","bold"],b=["fuze","wave","spark","flow","core"],c=a[Math.floor(Math.random()*a.length)],d=b[Math.floor(Math.random()*b.length)];return`${c}-${d}-${crypto.randomUUID().slice(0,5)}`}function n(a){let b=0,c=-1;for(let d=0;d<a.length;d++){let e=a[d],f=0,g=e.type;"object"===g||e.properties?f=3:"array"===g||e.items?f=2:g&&"null"!==g&&(f=1),f>c&&(c=f,b=d)}return b}function o(a){return a&&"object"==typeof a&&(!function a(b){if(b&&"object"==typeof b)for(let c of(void 0===b.const||b.enum||(b.enum=[b.const],delete b.const),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.enum&&Array.isArray(b.enum)&&(b.enum=b.enum.map(a=>String(a)),b.type||(b.type="string")),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b){if(b&&"object"==typeof b){if(b.allOf&&Array.isArray(b.allOf)){let a={};for(let c of b.allOf)if(c.properties&&(a.properties||(a.properties={}),Object.assign(a.properties,c.properties)),c.required&&Array.isArray(c.required))for(let b of(a.required||(a.required=[]),c.required))a.required.includes(b)||a.required.push(b);delete b.allOf,a.properties&&(b.properties={...b.properties,...a.properties}),a.required&&(b.required=[...b.required||[],...a.required])}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.anyOf&&Array.isArray(b.anyOf)&&b.anyOf.length>0){let a=b.anyOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=n(a),d=a[c];delete b.anyOf,Object.assign(b,d)}}if(b.oneOf&&Array.isArray(b.oneOf)&&b.oneOf.length>0){let a=b.oneOf.filter(a=>a&&"null"!==a.type);if(a.length>0){let c=n(a),d=a[c];delete b.oneOf,Object.assign(b,d)}}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b){if(b.type&&Array.isArray(b.type)){let a=b.type.filter(a=>"null"!==a);b.type=a.length>0?a[0]:"string"}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of(b.properties&&!b.type&&(b.type="object"),Object.values(b)))c&&"object"==typeof c&&a(c)}(a),!function a(b,c){if(b&&"object"==typeof b){if(Array.isArray(b)){for(let d of b)a(d,c);return}for(let d of Object.keys(b)){if(c.includes(d)||d.startsWith("x-")){delete b[d];continue}let e=b[d];e&&"object"==typeof e&&a(e,c)}}}(a,f),!function a(b){if(b&&"object"==typeof b){if(b.required&&Array.isArray(b.required)&&b.properties){let a=b.required.filter(a=>Object.prototype.hasOwnProperty.call(b.properties,a));0===a.length?delete b.required:b.required=a}for(let c of Object.values(b))c&&"object"==typeof c&&a(c)}}(a),!function a(b){if(b&&"object"==typeof b)for(let c of("object"!==b.type||b.properties&&0!==Object.keys(b.properties).length||(b.properties={reason:{type:"string",description:"Brief explanation of why you are calling this tool"}},b.required=["reason"]),Object.values(b)))c&&"object"==typeof c&&a(c)}(a)),a}},55673:(a,b,c)=>{c.d(b,{R4:()=>g,BY:()=>l,a_:()=>j.a_,RV:()=>e,rP:()=>k,x4:()=>f,bC:()=>j.bC,Du:()=>h,z7:()=>d,m8:()=>i});let d={USER:"user",ASSISTANT:"assistant",TOOL:"tool",SYSTEM:"system",DEVELOPER:"developer"},e={USER:"user",MODEL:"model"},f={TEXT:"text",IMAGE_URL:"image_url",IMAGE:"image",INPUT_AUDIO:"input_audio",AUDIO_URL:"audio_url",FILE:"file",FUNCTION:"function"},g={TEXT:"text",IMAGE:"image",DOCUMENT:"document",TOOL_USE:"tool_use",TOOL_RESULT:"tool_result",THINKING:"thinking",REDACTED_THINKING:"redacted_thinking"},h={MESSAGE:"message",FUNCTION_CALL:"function_call",FUNCTION_CALL_OUTPUT:"function_call_output",REASONING:"reasoning",OUTPUT_TEXT:"output_text",INPUT_TEXT:"input_text",INPUT_IMAGE:"input_image",SUMMARY_TEXT:"summary_text"},i=[f.TEXT,f.IMAGE_URL,f.IMAGE,f.INPUT_AUDIO,f.AUDIO_URL,f.FILE];f.TEXT,f.IMAGE_URL,f.IMAGE,g.TOOL_RESULT;var j=c(69320);let k="unknown",l="image/png"},62842:(a,b,c)=>{c.d(b,{N:()=>d});function d(a,b){if("string"!=typeof a)return a;try{return JSON.parse(a)}catch{return b}}},69320:(a,b,c)=>{c.d(b,{Ut:()=>e,a_:()=>f,bC:()=>d});let d={STOP:"stop",LENGTH:"length",TOOL_CALLS:"tool_calls",CONTENT_FILTER:"content_filter"},e={END_TURN:"end_turn",MAX_TOKENS:"max_tokens",TOOL_USE:"tool_use",STOP_SEQUENCE:"stop_sequence"},f={STOP:"STOP",MAX_TOKENS:"MAX_TOKENS",SAFETY:"SAFETY",RECITATION:"RECITATION",BLOCKLIST:"BLOCKLIST",PROHIBITED_CONTENT:"PROHIBITED_CONTENT"}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mY:()=>d.mY,mt:()=>d.mt,o5:()=>d.o5,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(39422)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=7872,exports.ids=[7872],exports.modules={1133:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{O:()=>x,g:()=>w});var e=c(48895),f=c(89718),g=c(69788),h=c(6551),i=c(55330),j=c(74129),k=c(39609),l=c(39326),m=c(18271),n=c(30869),o=a([e,i,m]);[e,i,m]=o.then?(await o)():o;let y=n.oc,z={claude:{getUsage:g.g,sendPing:s},codex:{getUsage:h.Tl,sendPing:u}},A=global.__quotaAutoPing??={interval:null,running:!1,resetCache:{},failureCache:{}};function p(a){let b=new Date(a).getTime();return Number.isFinite(b)?new Date(6e4*Math.floor(b/6e4)).toISOString():a}function q(a,b=null){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function r(a){if(!a||!0===a.unlimited)return!1;let b=q(a.remaining);if(null!==b)return b<=0;let c=q(a.used),d=q(a.total);return null!==d&&d>0&&null!==c&&c>=d}async function s(a,b,c,d){return(await d.proxyAwareFetch("https://api.anthropic.com/v1/messages?beta=true",{method:"POST",headers:{...j.$B,Authorization:`Bearer ${a.accessToken}`,"content-type":"application/json"},body:JSON.stringify({model:b.pingModel,max_tokens:b.pingMaxTokens,messages:[{role:"user",content:b.pingText}]})},c)).ok}async function t(a){if("function"==typeof a?.text)return void await a.text();let b=a?.body?.getReader?.();if(b)try{for(;;){let{done:a}=await b.read();if(a)return}}finally{b.releaseLock?.()}}async function u(a,b,c,d){var e;let f=d.getExecutor("codex"),{response:g}=await f.execute({model:b.pingModel,stream:!0,credentials:{accessToken:a.accessToken,connectionId:a.id,providerSpecificData:a.providerSpecificData},proxyOptions:c,log:console,body:{model:b.pingModel,input:(e=b.pingText,[{type:"message",role:"user",content:[{type:"input_text",text:e}]}]),instructions:b.pingInstructions,reasoning:b.pingReasoningEffort?{effort:b.pingReasoningEffort,summary:"auto"}:void 0,store:!1,stream:!0}});if(!g.ok){try{await g.body?.cancel?.()}catch{}return!1}return await t(g),!0}async function v(a,b,c,d,e,f=A){var g,h,i;let j=(g=a.id,`${b}:${g}`),k=f.resetCache[j];if(!c.pingWhenResetAtSlides&&k&&Date.now()<new Date(k).getTime()-y.refreshAheadMs||function(a,b,c=Date.now()){let d=a.failureCache[b];return d&&c-d<y.failureCooldownMs}(f,j))return;let l=(h=await e.resolveConnectionProxyConfig(a.providerSpecificData),{connectionProxyEnabled:!0===h.connectionProxyEnabled,connectionProxyUrl:h.connectionProxyUrl||"",connectionNoProxy:h.connectionNoProxy||"",vercelRelayUrl:h.vercelRelayUrl||"",strictProxy:!1}),m=a;try{m=(await e.refreshAndUpdateCredentials(m,!1,l)).connection}catch(c){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${a.id}: refresh failed: ${c.message}`);return}let n=await d.getUsage(m.accessToken,l),o=n?.quotas||{},q=o?.[c.quotaKey],s=q?.resetAt;if(!s||(f.resetCache[j]=s,c.skipWhenBlockingQuotaExhausted&&(i=c.quotaKey,Object.entries(o||{}).some(([a,b])=>a!==i&&!String(a).toLowerCase().includes("session")&&r(b)))||r(q)))return;let t=Date.now(),u=p(s),w=m.lastPingedResetKey||p(m.lastPingedResetAt);if(!(!function(a,b,c,d){if(a.pingWhenResetAtSlides){let d,e;return!!b&&(d=new Date(b).getTime(),e=new Date(c).getTime(),(Number.isFinite(d)&&Number.isFinite(e)?e-d:0)>=(a.resetAtDriftMs||0))}let e=new Date(c).getTime();return Number.isFinite(e)&&d>=e-y.pingLeadMs}(c,k,s,t)||function(a,b,c=Date.now()){if(!b)return!1;let d=new Date(a.lastPingAt).getTime();return Number.isFinite(d)&&c-d<b}(m,c.minPingIntervalMs,t))&&w!==u){if(!await d.sendPing(m,c,l,e)){f.failureCache[j]=Date.now(),console.warn(`[AutoPing] ${b}:${m.id}: ping failed (reset ${s})`);return}delete f.failureCache[j],await e.updateProviderConnection(m.id,{lastPingedResetAt:s,lastPingedResetKey:u,lastPingAt:new Date().toISOString(),updatedAt:new Date().toISOString()}),console.log(`[AutoPing] ${b}:${m.id}: ping sent (reset ${s})`)}}async function w(a={getSettings:f.mt,getProviderConnections:f.getProviderConnections,updateProviderConnection:f.updateProviderConnection,resolveConnectionProxyConfig:l.B,refreshAndUpdateCredentials:m.refreshAndUpdateCredentials,proxyAwareFetch:k.proxyAwareFetch,getExecutor:i.SB},b=A){if(!b.running){b.running=!0;try{let d=await a.getSettings();for(let[e,f]of Object.entries(y.providers)){let g=z[e];if(!g)continue;let h=d?.[f.settingsKey]?.connections||{};if(0!==Object.keys(h).length)for(let d of(await a.getProviderConnections({provider:e,isActive:!0})).filter(a=>"oauth"===a.authType&&!0===h[a.id]))try{await v(d,e,f,g,a,b)}catch(a){var c;b.failureCache[c=d.id,`${e}:${c}`]=Date.now(),console.warn(`[AutoPing] ${e}:${d.id}: ${a.message}`)}}}catch(a){console.warn("[AutoPing] tick error:",a.message)}finally{b.running=!1}}}function x(){!A.interval&&(console.log("[AutoPing] scheduler started"),w().catch(()=>{}),A.interval=setInterval(()=>{w().catch(()=>{})},y.tickIntervalMs),A.interval.unref&&A.interval.unref())}d()}catch(a){d(a)}})},24467:(a,b,c)=>{c.d(b,{DS:()=>r,GK:()=>m,MX:()=>l,RF:()=>s,X6:()=>f,Yh:()=>t,aS:()=>p,gI:()=>h,hy:()=>i,i5:()=>o,j8:()=>n});var d=c(78474);global._circuitBreakers||(global._circuitBreakers=new Map,global._breakerEmitter=new d.EventEmitter,global._breakerEmitter.setMaxListeners(50));let e=global._circuitBreakers,f=global._breakerEmitter,g={enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1};function h(a,b){let c=b&&"object"==typeof b?b:{};if(!c.connectionProxyEnabled)return a;let d=c.connectionProxyPoolId||"",e=c.connectionProxyUrl||"";return`${a}:proxy:${d||e}`}function i(a){let b=Number(a)||0;return 0===b||429===b||b>=500}function j(a){let b=e.get(a);return b||(b={key:a,state:"closed",failures:[],openedAt:null,cooldownEndsAt:null,halfOpenCalls:0,lastActivityAt:Date.now()},e.set(a,b)),b}function k(a){let b=e.get(a);b&&f.emit("breaker:update",{provider:b.key,state:b.state,failures:b.failures.length,openedAt:b.openedAt,cooldownEndsAt:b.cooldownEndsAt})}function l(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let e=c||a,f=j(e);f.lastActivityAt=Date.now();let h=Date.now();if("open"===f.state)if(!f.cooldownEndsAt||!(h>=f.cooldownEndsAt))return!0;else f.state="halfOpen",f.halfOpenCalls=0,k(e);if("halfOpen"===f.state){if(f.halfOpenCalls>=d.halfOpenMaxCalls)return!0;f.halfOpenCalls++}return!1}function m(a,b={},c=null){let d={...g,...b?.circuitBreaker||{}};if(!d.enabled)return!1;let f=e.get(c||a);if(!f)return!1;let h=Date.now();return"open"===f.state?!f.cooldownEndsAt||!(h>=f.cooldownEndsAt):"halfOpen"===f.state&&f.halfOpenCalls>=d.halfOpenMaxCalls}function n(a,b={},c=null){if(!({...g,...b?.circuitBreaker||{}}).enabled)return;let d=c||a,e=j(d);e.lastActivityAt=Date.now(),("closed"!==e.state||e.failures.length>0)&&(e.state="closed",e.failures=[],e.openedAt=null,e.cooldownEndsAt=null,e.halfOpenCalls=0,k(d))}function o(a,b,c={},d=null){let e={...g,...c?.circuitBreaker||{}};if(!e.enabled)return;let f=d||a,h=j(f);h.lastActivityAt=Date.now();let i=Date.now();if("halfOpen"===h.state){h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,h.halfOpenCalls=0,h.failures=[{ts:i,status:b}],k(f);return}if("closed"===h.state){h.failures.push({ts:i,status:b});let a=i-e.windowMs;h.failures=h.failures.filter(b=>b.ts>=a),h.failures.length>=e.failureThreshold&&(h.state="open",h.openedAt=i,h.cooldownEndsAt=i+e.cooldownMs,k(f))}}function p(a,b=null){let c=e.get(b||a);!c||(c.lastActivityAt=Date.now(),"halfOpen"===c.state&&c.halfOpenCalls>0&&c.halfOpenCalls--)}let q=0;function r(){let a=Date.now();!function(a){if(a-q<6e4)return;q=a;let b=a-6e5;for(let[a,c]of e)"closed"===c.state&&(c.lastActivityAt||0)<b&&e.delete(a)}(a);let b=[];for(let c of e.values()){let d=c.state,e=null;"open"===c.state&&c.cooldownEndsAt&&0===(e=Math.max(0,c.cooldownEndsAt-a))&&(d="halfOpen"),b.push({provider:c.key,state:d,failures:c.failures.length,openedAt:c.openedAt,cooldownEndsAt:c.cooldownEndsAt,cooldownRemainingMs:e})}return b}function s(a,b=null){let c=e.get(b||a);return c&&"open"===c.state&&c.cooldownEndsAt?c.cooldownEndsAt:null}function t(a,b=null){if(b){let a=e.get(b);return!!a&&(a.state="closed",a.failures=[],a.openedAt=null,a.cooldownEndsAt=null,a.halfOpenCalls=0,k(b),!0)}let c=!1;for(let[b,d]of e)(b===a||b.startsWith(`${a}:`))&&(d.state="closed",d.failures=[],d.openedAt=null,d.cooldownEndsAt=null,d.halfOpenCalls=0,k(b),c=!0);return c}},25334:(a,b,c)=>{function d(a){return null==a?"":String(a).trim()}c.d(b,{k:()=>f});let e=["http:","https:","socks5:","socks4:","socks5h:","socks4a:"];function f({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"<typeof process||!process.env)return;let g=d(b),h=d(c);if(!a){"1"===process.env.NINE_ROUTER_PROXY_MANAGED&&(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_PROXY_MANAGED,delete process.env.NINE_ROUTER_PROXY_URL,delete process.env.NINE_ROUTER_NO_PROXY);return}let i="1"===process.env.NINE_ROUTER_PROXY_MANAGED,j=!1;if(i&&(g||(delete process.env.HTTP_PROXY,delete process.env.HTTPS_PROXY,delete process.env.ALL_PROXY,delete process.env.NINE_ROUTER_PROXY_URL),h||(delete process.env.NO_PROXY,delete process.env.NINE_ROUTER_NO_PROXY)),g){let a=function(a){if(!a||/[\n\r`$]/.test(a))return null;try{let b=new URL(a);if(!e.includes(b.protocol))return null;return b.href}catch{return null}}(g);a&&(process.env.HTTP_PROXY=a,process.env.HTTPS_PROXY=a,process.env.ALL_PROXY=a,process.env.NINE_ROUTER_PROXY_URL=a,j=!0)}h&&(process.env.NO_PROXY=h,process.env.NINE_ROUTER_NO_PROXY=h,j=!0),j?process.env.NINE_ROUTER_PROXY_MANAGED="1":i&&delete process.env.NINE_ROUTER_PROXY_MANAGED}},30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"@rsalmn/extremerouter",installCmd:"npm i -g @rsalmn/extremerouter",installCmdLatest:"npm i -g @rsalmn/extremerouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.5",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},81329:(a,b,c)=>{c.d(b,{CP:()=>f,Xg:()=>d.Xg,eh:()=>e,vq:()=>d.PROVIDER_MODELS});var d=c(45699);Object.entries(c(40615).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.PROVIDER_MODELS).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name}))),f=(a,b=null)=>a?.kind||a?.type||b}};
@@ -1,16 +0,0 @@
1
- "use strict";exports.id=8955,exports.ids=[8955],exports.modules={31589:(a,b,c)=>{c.d(b,{Ub:()=>l});var d=c(47834),e=c(40669);let f=Object.freeze({toolUse:!0,fileAccess:!0,streaming:!0,multiTurn:!0,controlRole:!0,reliableJson:!0}),g=Object.freeze({toolUse:!1,fileAccess:!1,streaming:!1,multiTurn:!1,controlRole:!1,reliableJson:!1}),h={webCookie:Object.freeze({toolUse:!1,fileAccess:!1,streaming:!0,multiTurn:!0,controlRole:!1,reliableJson:!1})},i=Object.freeze({manager:{controlRole:!0,reliableJson:!0,multiTurn:!0},staff:{controlRole:!0,reliableJson:!0,multiTurn:!0},audit:{controlRole:!0,reliableJson:!0,multiTurn:!0},judge:{controlRole:!0,reliableJson:!0,multiTurn:!0}}),j=new Map;for(let a of d.A)if(a.capabilities&&"object"==typeof a.capabilities)j.set(a.id,{...f,...a.capabilities});else{let b=h[a.category];j.set(a.id,b?{...b}:{...f})}function k(a,b){if(!a||"string"!=typeof a)return!0;let c=a.indexOf("/"),d=c>=0?a.slice(0,c):a;return function(a,b){let c,d=i[b];if(!d)return!0;let f=(c=(0,e.g2)(a),j.get(c)||{...g});for(let[a,b]of Object.entries(d))if(b&&!f[a])return!1;return!0}((0,e.g2)(d),b)}function l(a,b,c=[]){let d=[],e=Array.isArray(c)&&c.length>0?c[0]:"";if("swarm"===a){for(let{role:a,model:c}of[{role:"manager",model:b?.managerModel||e},{role:"staff",model:b?.staffModel||e},{role:"audit",model:b?.auditModel||e}])if(c&&!k(c,a)){let b=c.split("/")[0];d.push({role:a,model:c,reason:`Provider "${b}" cannot serve as ${a} — web cookie providers lack tool use and file access required for control roles.`})}}else if("fusion"===a){let a=b?.judgeModel||e;if(a&&!k(a,"judge")){let b=a.split("/")[0];d.push({role:"judge",model:a,reason:`Provider "${b}" cannot serve as judge — web cookie providers lack tool use and file access required for the judge role.`})}}return d}},36701:(a,b,c)=>{c.d(b,{SH:()=>l,ZW:()=>p,_5:()=>k,_s:()=>j,bt:()=>n,gF:()=>m,kA:()=>o,ni:()=>f});var d=c(78474),e=c(77598);global._swarmEmitter||(global._swarmEmitter=new d.EventEmitter,global._swarmEmitter.setMaxListeners(200),global._swarmRuns=new Map,global._swarmEmitTimers={});let f=global._swarmEmitter,g=global._swarmRuns,h=global._swarmEmitTimers;function i(a,b,c=120){let d=b?.worker!==void 0?`:w${b.worker}`:"",e=`${a}:${b?.runId||""}${d}`;h[e]&&clearTimeout(h[e]),h[e]=setTimeout(()=>{delete h[e],f.emit(a,b)},c)}function j({comboName:a,promptPreview:b,managerModel:c,staffModel:d,auditModel:f,workerCount:h}){let k=(0,e.randomUUID)(),l=Date.now(),m={runId:k,comboName:a,promptPreview:(b||"").slice(0,200),managerModel:c,staffModel:d,auditModel:f,workerCount:h||0,status:"running",startedAt:l,completedAt:null,totalDurationMs:null,stages:{gatekeeper:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c,verdict:null},manager:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c,strategy:null},workers:{status:"pending",startedAt:null,completedAt:null,durationMs:null,workers:[]},audit:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:d||f},synthesis:{status:"pending",startedAt:null,completedAt:null,durationMs:null,model:c}}};for(let a=0;a<(h||0);a++)m.stages.workers.workers.push({index:a,status:"pending",model:null,durationMs:null});if(g.set(k,m),g.size>50){let a=[...g.entries()].sort((a,b)=>a[1].startedAt-b[1].startedAt)[0];a&&g.delete(a[0])}return i("swarm:start",{runId:k,comboName:a,promptPreview:m.promptPreview,workerCount:m.workerCount},0),m}function k(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&(e.status="running",e.startedAt=Date.now(),Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"running",...c}))}function l(a,b,c={}){let d=g.get(a);if(!d)return;let e=d.stages[b];e&&"done"!==e.status&&(e.status="done",e.completedAt=Date.now(),e.durationMs=e.startedAt?e.completedAt-e.startedAt:null,Object.assign(e,c),i("swarm:stage",{runId:a,stage:b,status:"done",durationMs:e.durationMs,...c}))}function m(a,b,c,d={}){let e=g.get(a);if(!e)return;for(;e.stages.workers.workers.length<=b;)e.stages.workers.workers.push({index:e.stages.workers.workers.length,status:"pending",model:null,durationMs:null});let f=e.stages.workers.workers[b];f&&(f.status=c,Object.assign(f,d),i("swarm:stage",{runId:a,stage:"workers",worker:b,status:c,...d}))}function n(a,b){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="error",c.error=String(b?.message||b||"unknown"),c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,i("swarm:error",{runId:a,error:c.error,totalDurationMs:c.totalDurationMs},0))}function o(a,b={}){let c=g.get(a);c&&"done"!==c.status&&"error"!==c.status&&(c.status="done",c.completedAt=Date.now(),c.totalDurationMs=c.completedAt-c.startedAt,Object.assign(c,b),i("swarm:complete",{runId:a,totalDurationMs:c.totalDurationMs,...b},0))}function p(a=20){return[...g.values()].sort((a,b)=>b.startedAt-a.startedAt).slice(0,a)}},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},82121:(a,b,c)=>{c.d(b,{zH:()=>_,dW:()=>ac,Vt:()=>$,$x:()=>U,Vu:()=>Y,Ni:()=>af,Pr:()=>Z,vt:()=>ad,je:()=>L,UP:()=>X,wj:()=>ab});var d=c(12557),e=c(43659),f=c(66306),g=c(26922),h=c(24467),i=c(31589),j=c(40669);function k(a,b,c){let d,e=new AbortController,f=()=>e.abort(c?.reason||Error("parent aborted"));return c?.aborted?f():c?.addEventListener("abort",f,{once:!0}),{promise:new Promise(c=>{d=setTimeout(()=>{e.abort(Error("combo task timeout")),c({__timeout:!0})},b),Promise.resolve().then(()=>a(e.signal)).then(a=>c(a)).catch(a=>c({__error:a})).finally(()=>clearTimeout(d))}),signal:e.signal,abort(a="combo task cancelled"){e.signal.aborted||e.abort(Error(a))},cleanup(){clearTimeout(d),c?.removeEventListener("abort",f)}}}var l=c(14170);function m(a){return a?.request?.contents?l.h.ANTIGRAVITY:Array.isArray(a?.contents)?l.h.GEMINI:a?.input===void 0||a?.messages?a?.anthropic_version||a?.system!==void 0?l.h.CLAUDE:l.h.OPENAI:l.h.OPENAI_RESPONSES}function n(a,b,c=m(a)){let d={...a};if(c===l.h.ANTIGRAVITY){let c={...a.request||{}};c.contents=[...c.contents||[],{role:"user",parts:[{text:b}]}],d.request=c}else c===l.h.GEMINI?d.contents=[...a.contents||[],{role:"user",parts:[{text:b}]}]:c===l.h.OPENAI_RESPONSES?d.input=[..."string"==typeof a.input?[{role:"user",content:a.input}]:[...a.input||[]],{role:"user",content:[{type:"input_text",text:b}]}]:d.messages=[...a.messages||[],{role:"user",content:b}];return d}function o(a){return(a||[]).filter(Boolean).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`[Tool result: ${(0,g.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,g.kU)(c.content)||"";return{...c,content:`${e}${e?"\n":""}[Called tools: ${d}]`}}if(Array.isArray(a.content)&&a.content.some(a=>a?.type==="tool_use"||a?.type==="tool_result")){let b=a.content.map(a=>a?.text||(a?.type==="tool_use"?`[Called tool: ${a.name||"tool"}]`:a?.type==="tool_result"?`[Tool result: ${(0,g.kU)(a.content)}]`:"")).filter(Boolean).join("\n");return{...a,content:b}}return a})}function p(a,b=m(a)){let{tools:c,tool_choice:d,...e}=a,f={...e,stream:!1};return b===l.h.OPENAI_RESPONSES?Array.isArray(f.input)&&(f.input=o(f.input)):b===l.h.ANTIGRAVITY?f.request={...f.request||{},tools:void 0}:Array.isArray(f.messages)&&(f.messages=o(f.messages)),f}function q(a,b){let c=String(a||"");return c.length<=b?c:`${c.slice(0,b)}
2
- [truncated by combo budget]`}let r=[/you are (an? )?(expert|senior|principal|staff)?\s*(coding|programming|software|ai)\s*(assistant|agent|engineer|companion|specialist)/i,/you are (claude|cursor|cline|copilot|windsurf|aider|roo|cody|continue)/i,/your (primary )?(task|role|job|goal) is to (help|assist|act as)/i,/follow the user[''']?s instructions/i,/you are operating as (a |an )?(pair|interactive|autonomous)/i,/write (clean|idiomatic|production)[- ]ready code/i,/you have access to (a set of |various )?tools/i,/<environment|<context|<system_prompt>/i];function s(a){return!!a&&"string"==typeof a&&!(a.length<80)&&r.some(b=>b.test(a))}function t(a){if(!a)return a;let b={...a};for(let a of["messages","input"])Array.isArray(b[a])&&(b[a]=b[a].filter(a=>{var b;return a?.role!=="system"&&a?.role!=="developer"||!s("string"==typeof(b=a.content)?b:Array.isArray(b)?b.map(a=>"string"==typeof a?a:a?.text||"").join("\n"):"")}));if("string"==typeof b.system&&s(b.system))delete b.system;else if(Array.isArray(b.system)){let a=b.system.filter(a=>!(a?.type==="text"&&s(a.text)));b.system=a.length>0?a:void 0,void 0===b.system&&delete b.system}for(let a of["system_instruction","systemInstruction"]){let c=b[a];c&&s(Array.isArray(c.parts)?c.parts.map(a=>a?.text||"").join("\n"):"")&&delete b[a]}return b}let u={default:"You are a specialist worker in a swarm. Focus exclusively on your assigned subtask. Produce complete, production-ready output. Do not attempt other subtasks.",architecture:"You are a software architect. Design the structure, interfaces, and module boundaries for your assigned component. Prioritize clean separation of concerns.","game-logic":"You are a game-logic specialist. Implement mechanics, state machines, and rules with correctness and balance in mind.","data-layer":"You are a data/persistence specialist. Implement storage, schemas, serialization, and access patterns with integrity and performance in mind.",ui:"You are a UI/UX specialist. Build accessible, responsive interfaces with clean component structure.",testing:"You are a testing specialist. Write thorough tests covering happy paths, edge cases, and failure modes.",security:"You are a security specialist. Harden inputs, prevent injection/XSS, and enforce least-privilege.",devops:"You are a DevOps specialist. Handle deployment, configuration, and operational concerns."};function v(a){let b=u[a?.role]||u.default,c=a?.instruction||a?.title||"Complete your assigned subtask.";return["=== SWARM WORKER DIRECTIVE ===",b,"",`Subtask: ${a?.title||"Untitled"}`,"",c,"\nOutput ONLY your work for this subtask. Do not reference other workers or the orchestrator.\n=== END DIRECTIVE ==="].join("\n")}var w=c(36701);let x={workerHardTimeoutMs:9e4,workerQuorum:2,stragglerGraceMs:1e4,managerTimeoutMs:6e4,minWorkers:2,maxWorkers:8},y="=== SWARM GATEKEEPER ===\nYou are the GATEKEEPER of a hierarchical swarm. Classify the user's most recent request as SIMPLE or COMPLEX.\n\nSIMPLE = greeting, small talk, a factual question, a one-line clarification, or anything answerable in under ~50 tokens without decomposition.\nCOMPLEX = a coding task, multi-step build request, design problem, debugging session, or anything benefiting from decomposition into parallel specialist work.\n\nRespond with EXACTLY one line, nothing else:\nVERDICT: SIMPLE\nor\nVERDICT: COMPLEX";function z(a){return['=== SWARM MANAGER (STRATEGY) ===\nYou are the MANAGER of a hierarchical swarm. Analyze the user\'s request and produce a high-level execution strategy that decomposes it into independent parallel subtasks.\n\nRespond with ONLY a JSON object (no markdown fences, no prose) of this exact shape:\n{\n "assessment": "<1-2 sentence summary of what the request needs>",\n "subtasks": [\n { "id": 1, "title": "<short title>", "role": "<architecture|game-logic|data-layer|ui|testing|security|devops|default>", "instruction": "<detailed instruction for the specialist worker>" }\n ]\n}\n\nRules:\n- Aim for 2-5 subtasks. Each must be independently executable in parallel.\n- `role` must be one of the listed values; pick the best specialist fit.\n- `instruction` must be self-contained — a worker sees only its own subtask.\n- Do NOT include integration/assembly as a subtask; the Staff auditor + Manager synthesis handle that.\n\n=== USER REQUEST ===',a].join("\n")}function A(a){return["=== SWARM STAFF (AUDIT) ===\nYou are the STAFF auditor of a hierarchical swarm. Specialist workers have independently completed their assigned subtasks. Your job is to produce a TECHNICAL AUDIT REPORT that the Manager will use to synthesize the final answer.\n\nFor each worker output, evaluate:\n- Completeness: did it fulfill the subtask instruction?\n- Correctness: any bugs, type errors, logic flaws, or missing edge cases?\n- Consistency: naming conflicts, duplicated logic, or mismatched interfaces with other workers?\n- Integration risks: what will need reconciliation when combining outputs?\n\nThen provide a CONSOLIDATION PLAN: the order in which outputs should be merged, what conflicts to resolve, and what gaps remain.\n\n=== SUBTASKS & WORKER OUTPUTS ===",a.map(a=>{let b=a.output||"(worker did not produce output)";return`### Subtask ${a.id}: ${a.title}
3
- Role: ${a.role}
4
- Instruction: ${a.instruction}
5
-
6
- #### Worker Output
7
- ${b}`}).join("\n\n---\n\n"),"=== END ===\n\nNow write the technical audit report. Be concrete and specific. Reference subtask IDs."].join("\n")}function B(a,b){return["=== SWARM MANAGER (SYNTHESIS) ===\nYou are the MANAGER producing the FINAL ANSWER. A Staff auditor has reviewed the parallel worker outputs and produced a technical audit report below. Synthesize ONE cohesive, complete, production-quality answer for the user's original request.\n\nRules:\n- Resolve any conflicts the auditor flagged.\n- Integrate all worker outputs into a single coherent result (codebase, explanation, or both).\n- Do NOT mention the swarm, workers, audit, or that multiple agents were used. The user sees only your final answer.\n- Match the user's language and intent exactly.\n\n=== TECHNICAL AUDIT REPORT ===",a,"=== END AUDIT ===\n\n=== ORIGINAL USER REQUEST ===",b,"\nNow produce the final answer."].join("\n")}function C(a){for(let b of["messages","input"])if(Array.isArray(a[b]))for(let c=a[b].length-1;c>=0;c--){let d=a[b][c];if(d?.role==="user"){if("string"==typeof d.content)return d.content;if(Array.isArray(d.content))return d.content.map(a=>"string"==typeof a?a:a?.text||"").join("")}}if(Array.isArray(a.contents)){let b=a.contents[a.contents.length-1];if(b?.role==="user"&&Array.isArray(b.parts))return b.parts.map(a=>a?.text||"").join("")}return""}function D(a){if(!a)return null;let b=a.replace(/```json\s*/gi,"").replace(/```/g,"").trim(),c=b.indexOf("{"),d=b.lastIndexOf("}");if(-1!==c&&-1!==d&&d>c)try{let a=JSON.parse(b.slice(c,d+1));if(Array.isArray(a.subtasks)&&a.subtasks.length>0)return a}catch{}let e=[];for(let a of function*(a){let b=0,c=-1,d=!1,e=!1;for(let f=0;f<a.length;f++){let g=a[f];if(e){e=!1;continue}if("\\"===g){e=!0;continue}if('"'===g){d=!d;continue}!d&&("{"===g?(0===b&&(c=f),b++):"}"===g&&0==--b&&c>=0&&(yield a.slice(c,f+1),c=-1))}}(b))if(/"id"\s*:/.test(a))try{let b=JSON.parse(a);b&&(b.title||b.instruction||b.role)&&e.push({id:"number"==typeof b.id?b.id:e.length+1,title:b.title||`Subtask ${e.length+1}`,role:b.role||"default",instruction:b.instruction||b.title||""})}catch{}return e.length>0?{assessment:"(recovered from truncated output)",subtasks:e}:null}function E(a){let{tools:b,tool_choice:c,...d}=a,e={...d,stream:!1};return Array.isArray(e.messages)&&(e.messages=U(e.messages)),e}let F=new Map;async function G({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,w._5)(a,"gatekeeper",{model:c}),C(b);let g=_(t(E(b)),y);try{let b=await ab(d(g,c,{isPanel:!0,role:"gatekeeper"}),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,w.SH)(a,"gatekeeper",{verdict:"complex"}),H(c,f),"complex";let h=$(await b.clone().json().catch(()=>({}))),i=/VERDICT:\s*SIMPLE/i.test(h)?"simple":"complex";return(0,w.SH)(a,"gatekeeper",{verdict:i}),F.delete(c),f?.info?.("SWARM",`Gatekeeper verdict: ${i}`),i}catch(b){return f?.warn?.("SWARM",`Gatekeeper error, assuming complex: ${b?.message||b}`),(0,w.SH)(a,"gatekeeper",{verdict:"complex"}),H(c,f),"complex"}}function H(a,b){let c=(F.get(a)||0)+1;F.set(a,c),3===c&&b?.warn?.("SWARM",`Gatekeeper has failed ${c} consecutive times for ${a}. Every request is falling through to a full swarm pipeline — the manager model may be degraded.`)}async function I({runId:a,body:b,managerModel:c,handleSingleModel:d,cfg:e,log:f}){(0,w._5)(a,"manager",{model:c});let g=C(b),h=_(t(E(b)),z(g));try{let b=await ab(d(h,c,{isPanel:!0,role:"manager"}),e.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,w.SH)(a,"manager",{strategy:null}),null;let g=$(await b.clone().json().catch(()=>({}))),i=D(g);return(0,w.SH)(a,"manager",{strategy:i?{subtaskCount:i.subtasks.length}:null}),i||f?.warn?.("SWARM","Manager produced unparseable strategy"),i}catch(b){return f?.warn?.("SWARM",`Manager strategy error: ${b?.message||b}`),(0,w.SH)(a,"manager",{strategy:null}),null}}async function J({runId:a,strategy:b,models:c,body:d,handleSingleModel:e,cfg:f,log:g,runBudget:h}){(0,w._5)(a,"workers",{workerCount:b.subtasks.length});let i=b.subtasks,j=c.filter(Boolean);if(0===j.length)return(0,w.SH)(a,"workers",{workers:[]}),[];let k=i.map((b,c)=>{let g=j[c%j.length],i=_(E(d),v(b));return(0,w.gF)(a,c,"running",{model:g}),ab(e(i,g,{isPanel:!0,role:"worker"}),f.workerHardTimeoutMs).then(async d=>{if(d?.__timeout||d?.__error)return(0,w.gF)(a,c,"error",{model:g}),{ok:!1,text:""};if(!d?.ok)return(0,w.gF)(a,c,"error",{model:g,status:d?.status}),{ok:!1,text:""};let e=$(await d.clone().json().catch(()=>({}))),f=h?h.clampOutput(e):e;return e&&!f?((0,w.gF)(a,c,"error",{model:g,reason:"over_budget"}),{ok:!1,text:""}):((0,w.gF)(a,c,"done",{model:g,outputLen:f.length}),{ok:!0,text:f,subtask:b})}).catch(()=>((0,w.gF)(a,c,"error",{model:g}),{ok:!1,text:""}))}),l=await ac(k,{minPanel:Math.min(f.workerQuorum,k.length),stragglerGraceMs:f.stragglerGraceMs,panelHardTimeoutMs:f.workerHardTimeoutMs}),m=[];for(let a=0;a<l.length;a++){let b=l[a];b&&b.ok&&m.push({subtask:i[a],text:b.text})}return(0,w.SH)(a,"workers",{workers:l.map((a,b)=>({index:b,ok:!!a?.ok}))}),m}async function K({runId:a,strategy:b,workerOutputs:c,staffModel:d,auditModel:e,body:f,handleSingleModel:g,cfg:h,log:i,runBudget:j}){let k=d||e;if(!k)return(0,w.SH)(a,"audit",{skipped:!0}),null;(0,w._5)(a,"audit",{model:k});let l=b.subtasks.map(a=>{let b=c.find(b=>b.subtask===a);return{...a,output:b?.text||"(no output)"}}),m=_(t(E(f)),A(l));try{let b=await ab(g(m,k,{isPanel:!0,role:"audit"}),h.managerTimeoutMs);if(b?.__timeout||b?.__error)return(0,w.SH)(a,"audit",{skipped:!0}),null;let c=$(await b.clone().json().catch(()=>({})));return(0,w.SH)(a,"audit",{reportLen:c.length}),j?j.clampOutput(c):c}catch(b){return i?.warn?.("SWARM",`Staff audit error: ${b?.message||b}`),(0,w.SH)(a,"audit",{skipped:!0}),null}}async function L({body:a,models:b,handleSingleModel:c,log:d,comboName:e,managerModel:f,staffModel:g,auditModel:h,workerCount:j,swarmTuning:k,telemetry:l=!0,signal:m,runBudget:n,principalId:o,autoScale:p}){let q=b.filter(Boolean);if(0===q.length)return new Response(JSON.stringify({error:"Swarm requires at least one worker model"}),{status:400});let r={...x,...k||{}},s=(f||"").trim()||q[0],t=C(a);if(1===q.length&&!f&&!g&&!h)return c(a,q[0],{role:"manager"});let u=(0,i.Ub)("swarm",{managerModel:f,staffModel:g,auditModel:h},q);if(u.length>0){let a=u.map(a=>a.reason).join(" ");return new Response(JSON.stringify({error:{message:`Swarm role validation failed: ${a}`,type:"capability_error"}}),{status:400,headers:{"Content-Type":"application/json"}})}let v=l?(0,w._s)({comboName:e,promptPreview:t,managerModel:s,staffModel:g,auditModel:h,workerCount:j||r.minWorkers}):null,y=v?.runId;try{let b,e=l?await G({runId:y,body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d}):await M({body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d});if("simple"===e)return d?.info?.("SWARM","Gatekeeper bypass — simple request, direct answer"),y&&(0,w.kA)(y,{bypassed:!0}),c(a,s,{role:"manager"});let f=l?await I({runId:y,body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d}):await N({body:a,managerModel:s,handleSingleModel:c,cfg:r,log:d});if(!f||!Array.isArray(f.subtasks)||0===f.subtasks.length)return d?.warn?.("SWARM","Strategy decomposition failed — falling back to direct answer"),y&&(0,w.kA)(y,{fallback:!0}),c(a,s,{role:"manager"});p?.enabled?(b=Math.min(Math.max(f.subtasks.length,p.minWorkers||1),p.maxWorkers||r.maxWorkers),d?.info?.("SWARM",`Auto-scale: ${f.subtasks.length} subtasks → ${b} workers (${p.minWorkers||1}–${p.maxWorkers||r.maxWorkers})`)):b="number"==typeof j&&j>0?Math.min(j,r.maxWorkers):r.maxWorkers;let i=f.subtasks.slice(0,b),k=l?await J({runId:y,strategy:{subtasks:i},models:q,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}):await O({strategy:{subtasks:i},models:q,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n});if(k.length<r.minWorkers){if(d?.warn?.("SWARM",`Only ${k.length}/${i.length} workers succeeded — fallback`),y&&(0,w.kA)(y,{fallback:!0}),1===k.length){let b=k[0].text||"";return c(_(a,`The specialist worker produced this answer for the subtask "${k[0].subtask?.title||""}". Output it verbatim to the user, adjusting only for formatting if needed:
8
-
9
- ${b}`),s,{role:"manager"})}return c(a,s,{role:"manager"})}let m=l?await K({runId:y,strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}):await P({strategy:{subtasks:i},workerOutputs:k,staffModel:g,auditModel:h,body:a,handleSingleModel:c,cfg:r,log:d,runBudget:n}),o=m?B(m,t):B(k.map(a=>a.text).join("\n\n---\n\n"),t),u=_(a,o);if(d?.info?.("SWARM",`Synthesizing final answer from ${k.length} worker outputs`),y){(0,w._5)(y,"synthesis",{model:s});let a=await c(u,s,{role:"manager"});if(a?.body){let b=a.body,c=new ReadableStream({start(a){let c=b.getReader(),d=()=>c.read().then(({done:b,value:c})=>{if(b){a.close(),(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length});return}return a.enqueue(c),d()}).catch(()=>{try{a.close()}catch{}(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length})});d()},cancel(a){(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length})}});return new Response(c,{status:a.status,statusText:a.statusText,headers:a.headers})}return(0,w.SH)(y,"synthesis"),(0,w.kA)(y,{workerCount:k.length}),a}return c(u,s,{role:"manager"})}catch(b){return d?.error?.("SWARM",`Swarm failed: ${b?.message||b}`),y&&(0,w.bt)(y,b),c(a,s,{role:"manager"})}}async function M({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=_(t(E(a)),y);try{let a=await ab(c(f,b,{isPanel:!0,role:"gatekeeper"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return"complex";let e=$(await a.clone().json().catch(()=>({})));return/VERDICT:\s*SIMPLE/i.test(e)?"simple":"complex"}catch{return"complex"}}async function N({body:a,managerModel:b,handleSingleModel:c,cfg:d,log:e}){let f=C(a),g=_(t(E(a)),z(f));try{let a=await ab(c(g,b,{isPanel:!0,role:"manager"}),d.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let e=$(await a.clone().json().catch(()=>({})));return D(e)}catch{return null}}async function O({strategy:a,models:b,body:c,handleSingleModel:d,cfg:e,log:f,runBudget:g}){let h=b.filter(Boolean);if(0===h.length)return[];let i=a.subtasks.map((a,b)=>{let f=h[b%h.length];return ab(d(_(E(c),v(a)),f,{isPanel:!0,role:"worker"}),e.workerHardTimeoutMs).then(async b=>{if(b?.__timeout||b?.__error||!b?.ok)return{ok:!1,text:""};let c=$(await b.clone().json().catch(()=>({}))),d=g?g.clampOutput(c):c;return c&&!d?{ok:!1,text:""}:{ok:!0,text:d,subtask:a}}).catch(()=>({ok:!1,text:""}))}),j=await ac(i,{minPanel:Math.min(e.workerQuorum,i.length),stragglerGraceMs:e.stragglerGraceMs,panelHardTimeoutMs:e.workerHardTimeoutMs}),k=[];for(let a of j)a&&a.ok&&a.text&&k.push({subtask:a.subtask,text:a.text});return k}async function P({strategy:a,workerOutputs:b,staffModel:c,auditModel:d,body:e,handleSingleModel:f,cfg:g,log:h,runBudget:i}){let j=c||d;if(!j)return null;let k=a.subtasks.map(a=>{let c=b.find(b=>b.subtask===a);return{...a,output:c?.text||"(no output)"}}),l=_(t(E(e)),A(k));try{let a=await ab(f(l,j,{isPanel:!0,role:"audit"}),g.managerTimeoutMs);if(a?.__timeout||a?.__error)return null;let b=$(await a.clone().json().catch(()=>({})));return i?i.clampOutput(b):b}catch{return null}}let Q=new Set(["vision","pdf","audioInput","videoInput"]);async function R(a,b){if(!Array.isArray(a)||a.length<=1)return{active:a||[],skipped:[]};let d=[],e=[];for(let f of a){let a="string"==typeof f?f.indexOf("/"):-1,g=a>0?f.slice(0,a):"",i=g?(0,j.g2)(g):"";if(i&&(0,h.GK)(i,b))e.push(f);else if(i){let a=null;try{let{getProviderHealth:b}=await c.e(5628).then(c.bind(c,15628));a=b(i)}catch{}a&&a.total>=10&&null!==a.successRate&&a.successRate<.5?e.push(f):d.push(f)}else d.push(f)}return 0===d.length?{active:a,skipped:[]}:{active:d,skipped:e}}let S="[Called tools: ",T="[Tool result: ";function U(a){return a.filter(a=>a).map(a=>{if("tool"===a.role||"function"===a.role)return{role:"assistant",content:`${T}${(0,g.kU)(a.content)||String(a.content??"")}]`};if("assistant"===a.role&&Array.isArray(a.tool_calls)){let{tool_calls:b,...c}=a,d=b.map(a=>a?.function?.name||a?.name||"tool").join(", "),e=(0,g.kU)(c.content)||("string"==typeof c.content?c.content:"");return{...c,content:`${e}${e?"\n":""}${S}${d}]`}}if(Array.isArray(a.content)){let b=a.content.some(a=>"tool_use"===a.type),c=a.content.some(a=>"tool_result"===a.type);if(b||c){let b=[],c=[],d=[];for(let e of a.content)"text"===e.type&&e.text&&b.push(e.text),"tool_use"===e.type&&c.push(e.name||"tool"),"tool_result"===e.type&&d.push((0,g.kU)(e.content)||String(e.content??""));let{...e}=a,f=b.join("\n");return c.length>0&&(f=`${f}${f?"\n":""}${S}${c.join(", ")}]`),d.length>0&&(f=`${f}${f?"\n":""}${T}${d.join("\n")}]`),{...e,content:f}}}return a})}let V=new Map;function W(a){if(!Array.isArray(a)||0===a.length)return[];let b=a=>"assistant"===a||"model"===a,c=a.length-1;for(;c>=0&&!b(a[c]?.role);)c--;return a.slice(c+1)}function X(a){a?V.delete(a):V.clear()}function Y(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function Z({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:i,comboStickyLimit:k=1,autoSwitch:l=!0,breakerSettings:m=null,signal:n,runBudget:o}){let p=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let f=b||"__default__",g=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,h=V.get(f)||{index:0,consecutiveUseCount:0},i=h.index%a.length,j=function(a,b){let c=[...a];for(let a=0;a<b;a++){let a=c.shift();c.push(a)}return c}(a,i),k=h.consecutiveUseCount+1;return k>=g?V.set(f,{index:(i+1)%a.length,consecutiveUseCount:0}):V.set(f,{index:i,consecutiveUseCount:k}),j}(b,h,i,k);if(m){let{active:a,skipped:b}=await R(p,m);b.length>0&&(g.info("COMBO",`breaker pre-filter: skipped ${b.length} open-breaker model(s) [${b.join(", ")}]`),p=a)}if(l){let b=function(a){let b=new Set;if(!a||"object"!=typeof a)return b;let c=a=>{if(!a||"object"!=typeof a)return;let c=a.type;("image_url"===c||"image"===c||"input_image"===c)&&b.add("vision"),("file"===c||"document"===c||"input_file"===c)&&b.add("pdf");let d=a.inlineData?.mimeType||a.fileData?.mimeType;"string"==typeof d&&d.startsWith("image/")&&b.add("vision"),"application/pdf"===d&&b.add("pdf")},d=a=>{if(Array.isArray(a))for(let b of a)c(b)};for(let b of W(a.messages))d(b.content);for(let b of W(a.input))d(b.content);for(let b of W(a.contents||a.request?.contents))d(b.parts);return b}(a);if(b.size>0){let a=function(a,b){if(!b||0===b.size||!Array.isArray(a)||a.length<=1)return a;let c=[...b].filter(a=>Q.has(a)),d=[...b].filter(a=>!Q.has(a));return a.map((a,b)=>{let e,g,h,i;return{m:a,i:b,t:(g=(e="string"==typeof a?a.indexOf("/"):-1)>0?(0,j.g2)(a.slice(0,e)):"",h=e>0?a.slice(e+1):a,i=(0,f.nl)(g,h),c.every(a=>!0===i[a])?+!d.every(a=>!0===i[a]):2)}}).sort((a,b)=>a.t-b.t||a.i-b.i).map(a=>a.m)}(p,b);a[0]!==p[0]&&g.info("COMBO",`auto-switch for [${[...b].join(",")}] → ${a[0]}`),p=a}}let q=null,r=null,s=null;for(let b=0;b<p.length;b++){let e=p[b];g.info("COMBO",`Trying model ${b+1}/${p.length}: ${e}`);try{let b=await c(a,e,{role:"worker"});if(b.ok)return g.info("COMBO",`Model ${e} succeeded`),b;let f=b.statusText||"",h=null;try{let a=await b.clone().json();f=a?.error?.message||a?.error||a?.message||f,h=a?.retryAfter||null}catch{}if(h&&(!r||new Date(h)<new Date(r))&&(r=h),"string"!=typeof f)try{f=JSON.stringify(f)}catch{f=String(f)}let{shouldFallback:i,cooldownMs:j}=[400,405,406,413,415,422].includes(b.status)?{shouldFallback:!1,cooldownMs:0}:(0,d.hk)(b.status,f);if(!i)return g.warn("COMBO",`Model ${e} failed (no fallback)`,{status:b.status}),b;j&&j>0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),q=f||String(b.status),s||(s=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){q=a.message||String(a),s||(s=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:q})}}let t=q&&q.toLowerCase().includes("no credentials")?503:s||503,u=q||"All combo models unavailable";if(r){let a=(0,d.Qo)(r);return g.warn("COMBO",`All models failed | ${u} (${a})`),(0,e.wO)(t,u,r,a)}return g.warn("COMBO",`All models failed | ${u}`),new Response(JSON.stringify({error:{message:u,type:"server_error",code:"all_models_failed"}}),{status:t,headers:{"Content-Type":"application/json"}})}function $(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];if(b){let a=b.message??b.delta??{},c=(0,g.kU)(a.content);if(c.trim())return c;if("string"==typeof b.text&&b.text.trim())return b.text}let c=(0,g.kU)(a.content);if(c.trim())return c;let d=a.candidates?.[0]?.content?.parts;if(Array.isArray(d)){let a=d.map(a=>a?.text||"").join("");if(a.trim())return a}if(Array.isArray(a.output)){let b=a.output.flatMap(a=>Array.isArray(a.content)?a.content.map(a=>a?.text||""):[]).join("");if(b.trim())return b}return""}function _(a,b){let c={...a};return Array.isArray(a.messages)?c.messages=[...a.messages,{role:"user",content:b}]:Array.isArray(a.input)?c.input=[...a.input,{role:"user",content:b}]:Array.isArray(a.contents)?c.contents=[...a.contents,{role:"user",parts:[{text:b}]}]:c.messages=[{role:"user",content:b}],c}let aa={minPanel:2,stragglerGraceMs:8e3,panelHardTimeoutMs:9e4};function ab(a,b,c){return"function"==typeof a?k(a,b,c).promise:new Promise(c=>{let d=setTimeout(()=>c({__timeout:!0}),b);Promise.resolve(a).then(a=>{clearTimeout(d),c(a)}).catch(a=>{clearTimeout(d),c({__error:a})})})}function ac(a,{minPanel:b,stragglerGraceMs:c,panelHardTimeoutMs:d,onFinish:e}){return new Promise(f=>{let g=Array(a.length),h=0,i=0,j=!1,k=null,l=()=>{j||(j=!0,clearTimeout(m),k&&clearTimeout(k),e?.(),f(g))},m=setTimeout(l,d);a.forEach((d,e)=>{Promise.resolve(d).then(a=>{g[e]=a}).catch(a=>{g[e]={__error:a}}).finally(()=>{if(h++,g[e]&&g[e].ok&&i++,h===a.length)return l();i>=b&&!k&&(k=setTimeout(l,c))})})})}async function ad({body:a,models:b,handleSingleModel:c,log:d,comboName:e,judgeModel:f,tuning:g,signal:h,runBudget:j}){let l,o=Array.isArray(b)?b.filter(Boolean):[];if(0===o.length)return new Response(JSON.stringify({error:{message:"Fusion combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});if(1===o.length)return c(a,o[0],{role:"judge"});let r=(0,i.Ub)("fusion",{judgeModel:f},o);if(r.length>0){let a=r.map(a=>a.reason).join(" ");return new Response(JSON.stringify({error:{message:`Fusion role validation failed: ${a}`,type:"capability_error"}}),{status:400,headers:{"Content-Type":"application/json"}})}let s={...aa,...g||{}},t=Math.min(Math.max(2,s.minPanel),o.length),u=f&&f.trim()?f.trim():o[0];d.info("FUSION",`Combo "${e}" | panel=${o.length} [${o.join(", ")}] | judge=${u} | quorum=${t}`);let v=m(a),w=p(a,v),x=o.map(a=>k(b=>c(w,a,{isPanel:!0,signal:b,trafficClass:"panel",role:"panel"}),s.panelHardTimeoutMs,h)),y=Date.now(),z=await ac(x.map(a=>a.promise),{...s,minPanel:t,onFinish:()=>x.forEach(a=>a.abort("fusion panel closed"))});x.forEach(a=>a.cleanup()),d.info("FUSION",`fan-out collected in ${Date.now()-y}ms`);let A=[];for(let a=0;a<z.length;a++){let b=z[a],c=o[a];if(!b){d.warn("FUSION",`Panel ${c} dropped (straggler/timeout)`);continue}if(b.__timeout){d.warn("FUSION",`Panel ${c} timed out`);continue}if(b.__error){d.warn("FUSION",`Panel ${c} threw`,{error:b.__error?.message||String(b.__error)});continue}if(!b.ok){d.warn("FUSION",`Panel ${c} failed`,{status:b.status});continue}try{let a=await b.clone().json(),e=$(a);if(e){let a=j?j.clampOutput(e):e;if(!a){d.warn("FUSION",`Panel ${c} exceeded output budget`);continue}A.push({model:c,text:a,res:b}),d.info("FUSION",`Panel ${c} ok (${e.length} chars)`)}else d.warn("FUSION",`Panel ${c} returned empty content`)}catch(a){d.warn("FUSION",`Panel ${c} unparseable`,{error:a.message||String(a)})}}if(0===A.length)return d.warn("FUSION","All panel models failed"),new Response(JSON.stringify({error:{message:"All fusion panel models failed"}}),{status:503,headers:{"Content-Type":"application/json"}});if(1===A.length)return a?.stream===!0?(d.info("FUSION",`Only ${A[0].model} succeeded — re-running with stream:true to honor client SSE request (no fusion)`),c(a,A[0].model,{role:"panel",signal:h,trafficClass:"user"})):(d.info("FUSION",`Only ${A[0].model} succeeded — returning its response directly (no fusion, no re-run)`),A[0].res);let B=j?.limits?.maxOutputChars||12e4,C=n(a,q((l=A.map((a,b)=>`[Source ${b+1}]
10
- ${a.text}`).join("\n\n"),[`You are the JUDGE in a model-fusion panel. ${A.length} expert models independently answered the user's most recent request. Their responses are below, anonymized by source.`,"\nDo NOT mention that multiple models were used, and do NOT refer to the sources. Produce ONE authoritative final answer addressed directly to the user.\n\nFirst, internally analyze the panel along these dimensions: consensus (points most sources agree on — treat as higher-confidence), contradictions (where they disagree — resolve with your own judgment), partial coverage, unique insights only one source surfaced, and blind spots every source missed. Then write the best possible final answer grounded in that analysis — more complete and correct than any single response, with no filler.\n\n=== PANEL RESPONSES ===",l,"=== END PANEL RESPONSES ===\n\nNow write the final answer to the user's original request."].join("\n")),B),v);return d.info("FUSION",`Judging ${A.length} answers with ${u}`),c(C,u,{role:"judge",signal:h,trafficClass:"user"})}let ae={confidenceThreshold:70,confidencePrompt:"Rate your confidence in this answer from 0 to 100. End your response with exactly: CONFIDENCE: <number>",escalatePrompt:"A prior model gave the following answer with low confidence. Review it, correct any issues, and provide a better answer.",maxStages:3};async function af({body:a,models:b,handleSingleModel:c,log:d,comboName:e,tuning:f,signal:g,runBudget:h}){let i=Array.isArray(b)?b.filter(Boolean):[];if(0===i.length)return new Response(JSON.stringify({error:{message:"Cascade combo has no models"}}),{status:400,headers:{"Content-Type":"application/json"}});let j={...ae,...f||{}},k=Math.min(Math.max(1,j.maxStages),i.length),l=m(a),o=p(a,l),r=null,s=null;for(let a=0;a<k;a++){var t;let b,e=i[a],f=a===k-1,m=o;m=null!=r?n(m,`${j.escalatePrompt}
11
-
12
- --- Prior Answer (${s}) ---
13
- ${q(r,6e4)}
14
- --- End Prior Answer ---
15
-
16
- ${j.confidencePrompt}`,l):n(m,j.confidencePrompt,l),d.info("CASCADE",`Stage ${a+1}/${k}: ${e}${r?" (escalated)":""}`);try{b=await c(m,e,{isPanel:!0,role:"worker",signal:g})}catch(b){if(b?.name==="AbortError")throw b;if(d.warn("CASCADE",`Stage ${a+1} (${e}) threw: ${b?.message||b}`),f)return new Response(JSON.stringify({error:{message:`Cascade failed at final stage: ${b?.message||"unknown"}`}}),{status:502,headers:{"Content-Type":"application/json"}});r=null,s=e;continue}if(b?.__timeout||b?.__error){if(d.warn("CASCADE",`Stage ${a+1} (${e}) ${b.__timeout?"timed out":"errored"}`),f)return new Response(JSON.stringify({error:{message:"Cascade failed at final stage"}}),{status:502,headers:{"Content-Type":"application/json"}});r=null,s=e;continue}if(!b?.ok){if(d.warn("CASCADE",`Stage ${a+1} (${e}) returned status ${b?.status}`),f)return b;r=null,s=e;continue}if(f)return d.info("CASCADE",`Final stage (${e}) returning`),b;let p="";try{let a=await b.clone().json().catch(()=>({}));(p=$(a))&&h&&(p=h.clampOutput(p))}catch{}let u=function(a){if(!a||"string"!=typeof a)return -1;let b=a.match(/CONFIDENCE:\s*(\d{1,3})\s*$/i);if(!b)return -1;let c=Number.parseInt(b[1],10);return Number.isFinite(c)&&c>=0&&c<=100?c:-1}(p);if(d.info("CASCADE",`Stage ${a+1} (${e}) confidence=${u}`),u>=0&&u>=j.confidenceThreshold)return d.info("CASCADE",`Stage ${a+1} confident (${u} ≥ ${j.confidenceThreshold}) — returning`),b;r=((t=p)&&"string"==typeof t?t.replace(/\s*CONFIDENCE:\s*\d{1,3}\s*$/i,"").trim():t)||p,s=e}return new Response(JSON.stringify({error:{message:"Cascade exhausted all stages"}}),{status:502,headers:{"Content-Type":"application/json"}})}},94755:(a,b,c)=>{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)}}};
@@ -1,13 +0,0 @@
1
- "use strict";exports.id=9422,exports.ids=[7914,9422],exports.modules={1129:(a,b,c)=>{c.r(b),c.d(b,{createProviderNode:()=>k,deleteProviderNode:()=>m,getProviderNodeById:()=>j,getProviderNodes:()=>i,updateProviderNode:()=>l});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{...(0,f.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function h(a,b){let c=function(a){let{id:b,type:c,name:d,createdAt:e,updatedAt:g,...h}=a;return{id:b,type:c??null,name:d??null,data:(0,f.s)(h),createdAt:e,updatedAt:g}}(b);a.run(`INSERT INTO providerNodes(id, type, name, data, createdAt, updatedAt)
2
- VALUES(?, ?, ?, ?, ?, ?)
3
- ON CONFLICT(id) DO UPDATE SET
4
- type=excluded.type, name=excluded.name, data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.type,c.name,c.data,c.createdAt,c.updatedAt])}async function i(a={}){let b=await (0,e.c)(),c=[],d=[];a.type&&(c.push("type = ?"),d.push(a.type));let f=`SELECT * FROM providerNodes${c.length?` WHERE ${c.join(" AND ")}`:""}`;return b.all(f,d).map(g)}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM providerNodes WHERE id = ?",[a]))}async function k(a){let b=await (0,e.c)(),c=new Date().toISOString(),f={id:a.id||(0,d.A)(),type:a.type,name:a.name,prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,createdAt:c,updatedAt:c};return h(b,f),f}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM providerNodes WHERE id = ?",[a]);if(!e)return;let f={...g(e),...b,updatedAt:new Date().toISOString()};h(c,f),d=f}),d}async function m(a){let b=await (0,e.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM providerNodes WHERE id = ?",[a]);d&&(c=g(d),b.run("DELETE FROM providerNodes WHERE id = ?",[a]))}),c}},5781:(a,b,c)=>{c.r(b),c.d(b,{cleanupProviderConnections:()=>v,createProviderConnection:()=>q,deleteProviderConnection:()=>s,deleteProviderConnectionsByProvider:()=>t,getProviderConnectionById:()=>o,getProviderConnections:()=>m,invalidateConnectionsCache:()=>n,reorderProviderConnections:()=>u,updateProviderConnection:()=>r});var d=c(94755),e=c(36366),f=c(644);let g=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","errorCode","consecutiveUseCount","idToken","lastRefreshAt"];function h(a){return a?{...(0,f.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function i(a,b){let c=function(a){let{id:b,provider:c,authType:d,name:e,email:g,priority:h,isActive:i,createdAt:j,updatedAt:k,...l}=a;return{id:b,provider:c,authType:d,name:e??null,email:g??null,priority:h??null,isActive:+(!1!==i),data:(0,f.s)(l),createdAt:j,updatedAt:k}}(b);a.run(`INSERT INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt)
5
- VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
6
- ON CONFLICT(id) DO UPDATE SET
7
- provider=excluded.provider, authType=excluded.authType, name=excluded.name,
8
- email=excluded.email, priority=excluded.priority, isActive=excluded.isActive,
9
- data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.provider,c.authType,c.name,c.email,c.priority,c.isActive,c.data,c.createdAt,c.updatedAt])}let j=new Map,k=new Set(["lastUsedAt","consecutiveUseCount","lastRefreshAt","lastTested","lastError","lastErrorAt","errorCode","expiresIn"]);async function l(a){let b=await (0,e.c)(),c=[],d=[];a.provider&&(c.push("provider = ?"),d.push(a.provider)),void 0!==a.isActive&&(c.push("isActive = ?"),d.push(+!!a.isActive));let f=`SELECT * FROM providerConnections${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,d).map(h);return g.sort((a,b)=>(a.priority||999)-(b.priority||999)),g}async function m(a={}){let b=function(a={}){let b=[];return a.provider&&b.push(`p:${a.provider}`),void 0!==a.isActive&&b.push(`a:${+!!a.isActive}`),b.length?b.join("|"):"all"}(a),c=Date.now(),d=j.get(b);if(d&&c-d.at<2e3)return d.promise.then(a=>a.slice());let e=l(a).catch(a=>{throw j.delete(b),a});return j.set(b,{promise:e,at:c}),e.then(a=>a.slice())}function n(){j.clear()}async function o(a){return h((await (0,e.c)()).get("SELECT * FROM providerConnections WHERE id = ?",[a]))}function p(a,b){let c=a.all("SELECT * FROM providerConnections WHERE provider = ?",[b]).map(h);c.sort((a,b)=>{let c=(a.priority||0)-(b.priority||0);return 0!==c?c:new Date(b.updatedAt||0)-new Date(a.updatedAt||0)}),c.forEach((b,c)=>{a.run("UPDATE providerConnections SET priority = ? WHERE id = ?",[c+1,b.id])})}async function q(a){let b,c=await (0,e.c)(),f=new Date().toISOString();return c.transaction(()=>{let e=c.all("SELECT * FROM providerConnections WHERE provider = ?",[a.provider]).map(h),j=null;if("oauth"===a.authType&&a.email){let b=a.providerSpecificData?.username,c=a.providerSpecificData?.chatgptAccountId;j=e.find(d=>{if("oauth"!==d.authType||d.email!==a.email)return!1;let e=d.providerSpecificData?.chatgptAccountId;if(c&&e)return c===e;if(c&&!e||!c&&e)return!1;let f=d.providerSpecificData?.username;return b&&f?b===f:!b&&!f})}else"apikey"===a.authType&&a.name&&(j=e.find(b=>"apikey"===b.authType&&b.name===a.name));if(j){let d={...j,...a,updatedAt:f};i(c,d),b=d;return}let k=a.name||null;k||"oauth"!==a.authType&&"access_token"!==a.authType||(k=a.email||`Account ${e.length+1}`);let l=a.priority;l||(l=e.reduce((a,b)=>Math.max(a,b.priority||0),0)+1);let m={id:(0,d.A)(),provider:a.provider,authType:a.authType||"oauth",name:k,priority:l,isActive:void 0===a.isActive||a.isActive,createdAt:f,updatedAt:f};for(let b of g)void 0!==a[b]&&null!==a[b]&&(m[b]=a[b]);a.providerSpecificData&&Object.keys(a.providerSpecificData).length>0&&(m.providerSpecificData=a.providerSpecificData),void 0!==a.email&&(m.email=a.email),i(c,m),p(c,a.provider),b=m}),n(),b}async function r(a,b){let c,d=await (0,e.c)();return d.transaction(()=>{let e=d.get("SELECT * FROM providerConnections WHERE id = ?",[a]);if(!e){c=null;return}let f=h(e),g={...f,...b,updatedAt:new Date().toISOString()};i(d,g),void 0!==b.priority&&p(d,f.provider),c=g}),(!b||"object"!=typeof b||Object.keys(b).some(a=>!k.has(a)))&&n(),c}async function s(a){let b=await (0,e.c)(),c=!1;return b.transaction(()=>{let d=b.get("SELECT provider FROM providerConnections WHERE id = ?",[a]);d&&(b.run("DELETE FROM providerConnections WHERE id = ?",[a]),p(b,d.provider),c=!0)}),c&&n(),c}async function t(a){let b=await (0,e.c)(),c=b.get("SELECT COUNT(*) AS n FROM providerConnections WHERE provider = ?",[a]);return b.run("DELETE FROM providerConnections WHERE provider = ?",[a]),c?.n&&n(),c?.n||0}async function u(a){let b=await (0,e.c)();b.transaction(()=>p(b,a)),n()}async function v(){let a=await (0,e.c)(),b=["displayName","email","globalPriority","defaultModel","accessToken","refreshToken","expiresAt","tokenType","scope","projectId","apiKey","testStatus","lastTested","lastError","lastErrorAt","rateLimitedUntil","expiresIn","consecutiveUseCount"],c=0;return a.transaction(()=>{for(let d of a.all("SELECT * FROM providerConnections")){let e=h(d),f=!1;for(let a of b)(null===e[a]||void 0===e[a])&&a in e&&(delete e[a],c++,f=!0);e.providerSpecificData&&0===Object.keys(e.providerSpecificData).length&&(delete e.providerSpecificData,c++,f=!0),f&&i(a,e)}}),c&&n(),c}},9460:(a,b,c)=>{c.d(b,{L9:()=>r,OM:()=>j,S8:()=>o,fv:()=>l,getMitmAlias:()=>q,o5:()=>k,uL:()=>p,uv:()=>n});var d=c(36366),e=c(644),f=c(22846);let g=(0,f.U)("modelAliases"),h=(0,f.U)("customModels"),i=(0,f.U)("mitmAlias");async function j(){return await g.getAll()}async function k(a,b){await g.set(a,b)}async function l(a){await g.remove(a)}function m(a,b,c){return`${a}|${b}|${c}`}async function n(){return Object.values(await h.getAll())}async function o({providerAlias:a,id:b,type:c="llm",name:f}){let g=m(a,b,c),h=await (0,d.c)(),i=!1;return h.transaction(()=>{if(h.get("SELECT 1 FROM kv WHERE scope = 'customModels' AND key = ?",[g]))return;let d=(0,e.s)({providerAlias:a,id:b,type:c,name:f||b});h.run("INSERT INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[g,d]),i=!0}),i}async function p({providerAlias:a,id:b,type:c="llm"}){await h.remove(m(a,b,c))}async function q(a){return a?await i.get(a)||{}:await i.getAll()}async function r(a,b){await i.set(a,b||{})}},12280:(a,b,c)=>{c.d(b,{X3:()=>k,jm:()=>m,uH:()=>l,wg:()=>f});let d=new Set(["fallback","round-robin","fusion","swarm","cascade"]),e=new Set(["llm","image","tts","stt","embedding","imageToText","webSearch","webFetch"]),f=Object.freeze({maxMembers:999,maxWorkers:8,maxConcurrentRunsPerPrincipal:2,maxConcurrentRunsGlobal:8,maxProviderFanout:4,minTimeoutMs:1e3,maxTimeoutMs:12e4,maxGraceMs:3e4,maxOutputChars:12e4,maxAggregateOutputChars:3e5,maxLogicalCalls:16,maxEstimatedCostUsd:1/0}),g=/^[a-zA-Z0-9_.-]+\/.+$/,h=(a,b,c,d)=>{let e=Number.parseInt(a,10);return Number.isFinite(e)?Math.min(d,Math.max(c,e)):b},i=new Set(["auto","off","extended","effort"]),j=new Set(["low","medium","high","max"]);function k(a={}){var b,c,e,g;let l,m,n,o=a&&"object"==typeof a&&!Array.isArray(a)?a:{},p=(l="string"==typeof(b=o.fallbackStrategy)?b.trim().toLowerCase():"fallback",d.has(l)?l:"fallback"),q=h(o.workerCount,4,1,f.maxWorkers),r=o.swarmTuning&&"object"==typeof o.swarmTuning?o.swarmTuning:{},s=o.fusionTuning&&"object"==typeof o.fusionTuning?o.fusionTuning:{},t=o.budgets&&"object"==typeof o.budgets?o.budgets:{},u=o.cascade&&"object"==typeof o.cascade?o.cascade:{};return{fallbackStrategy:p,judgeModel:"string"==typeof o.judgeModel?o.judgeModel.trim():"",managerModel:"string"==typeof o.managerModel?o.managerModel.trim():"",staffModel:"string"==typeof o.staffModel?o.staffModel.trim():"",auditModel:"string"==typeof o.auditModel?o.auditModel.trim():"",workerCount:q,enableTelemetry:!1!==o.enableTelemetry,thinking:function(a){let b=a&&"object"==typeof a&&!Array.isArray(a)?a:{},c=i.has(b.type)?b.type:"auto",d={type:c};if("effort"===c&&(d.effort="string"==typeof b.effort&&j.has(b.effort)?b.effort:"high"),"extended"===c&&(d.budgetTokens=h(b.budgetTokens,4096,1024,128e3)),b.roles&&"object"==typeof b.roles&&!Array.isArray(b.roles))for(let[a,c]of(d.roles={},Object.entries(b.roles))){if(!c||"object"!=typeof c)continue;let b=i.has(c.type)?c.type:"inherit";"inherit"===b?d.roles[a]={type:"inherit",...c.effort?{effort:c.effort}:{},...c.budgetTokens?{budgetTokens:c.budgetTokens}:{}}:"off"===b||"auto"===b?d.roles[a]={type:b}:"effort"===b?d.roles[a]={type:"effort",effort:j.has(c.effort)?c.effort:"high"}:"extended"===b&&(d.roles[a]={type:"extended",budgetTokens:h(c.budgetTokens,4096,1024,128e3)})}return d}(o.thinking),cascade:{confidenceThreshold:h((m=u&&"object"==typeof u&&!Array.isArray(u)?u:{}).confidenceThreshold,70,0,100),confidencePrompt:"string"==typeof m.confidencePrompt&&m.confidencePrompt.trim()?m.confidencePrompt.trim():"Rate your confidence in this answer from 0 to 100. End your response with exactly: CONFIDENCE: <number>",escalatePrompt:"string"==typeof m.escalatePrompt&&m.escalatePrompt.trim()?m.escalatePrompt.trim():"A prior model gave the following answer with low confidence. Review it, correct any issues, and provide a better answer.",maxStages:h(m.maxStages,3,1,8)},fusionTuning:{minPanel:h(s.minPanel,2,2,f.maxMembers),stragglerGraceMs:h(s.stragglerGraceMs,8e3,0,f.maxGraceMs),panelHardTimeoutMs:h(s.panelHardTimeoutMs,9e4,f.minTimeoutMs,f.maxTimeoutMs)},swarmTuning:{workerHardTimeoutMs:h(r.workerHardTimeoutMs,9e4,f.minTimeoutMs,f.maxTimeoutMs),workerQuorum:h(r.workerQuorum,Math.min(2,q),1,q),stragglerGraceMs:h(r.stragglerGraceMs,1e4,0,f.maxGraceMs),managerTimeoutMs:h(r.managerTimeoutMs,6e4,f.minTimeoutMs,f.maxTimeoutMs),minWorkers:h(r.minWorkers,Math.min(2,q),1,q),maxWorkers:h(r.maxWorkers,q,1,f.maxWorkers)},budgets:{enabled:!0===t.enabled,maxLogicalCalls:h(t.maxLogicalCalls,f.maxLogicalCalls,1,f.maxLogicalCalls),maxOutputChars:h(t.maxOutputChars,f.maxOutputChars,1e3,f.maxOutputChars),maxAggregateOutputChars:h(t.maxAggregateOutputChars,f.maxAggregateOutputChars,5e3,f.maxAggregateOutputChars),maxEstimatedCostUsd:(c=t.maxEstimatedCostUsd,e=f.maxEstimatedCostUsd,g=f.maxEstimatedCostUsd,Number.isFinite(n=Number(c))?Math.min(g,Math.max(.01,n)):e)},autoScale:{enabled:o.autoScale?.enabled===!0,minWorkers:h(o.autoScale?.minWorkers,1,1,o.autoScale?.maxWorkers||f.maxWorkers),maxWorkers:h(o.autoScale?.maxWorkers,q||f.maxWorkers,1,f.maxWorkers)}}}function l(a,{allowPartial:b=!1}={}){let c=[];if((!b||void 0!==a.name)&&("string"==typeof a.name&&a.name.trim()?/^[a-zA-Z0-9_.-]+$/.test(a.name)||c.push("Name can only contain letters, numbers, -, _ and ."):c.push("Name is required")),!b||void 0!==a.models)if(Array.isArray(a.models)){let b=a.models.map(a=>"string"==typeof a?a.trim():"");b.length<1&&c.push("At least one model is required"),b.some(a=>!g.test(a))&&c.push("Every model must use provider/model format"),new Set(b).size!==b.length&&c.push("Duplicate models are not allowed")}else c.push("Models must be an array");if(void 0===a.kind||null===a.kind||e.has(a.kind)||c.push("Invalid combo kind"),void 0!==a.strategyConfig){let b=a.strategyConfig;if(!b||"object"!=typeof b||Array.isArray(b))c.push("strategyConfig must be an object");else{for(let a of["judgeModel","managerModel","staffModel","auditModel"])b[a]&&!g.test(String(b[a]).trim())&&c.push(`${a} must use provider/model format`);[b.fusionTuning,b.swarmTuning,b.budgets].filter(Boolean).some(a=>"object"!=typeof a||Array.isArray(a))&&c.push("Tuning and budgets must be objects")}}return{valid:0===c.length,errors:c}}function m(a,b){let c=k(a);return"fusion"===c.fallbackStrategy?Math.min(b,f.maxMembers)+1:"swarm"===c.fallbackStrategy?Math.min(c.workerCount,f.maxWorkers)+4:"cascade"===c.fallbackStrategy?Math.min(b,c.cascade?.maxStages||3):Math.max(1,Math.min(b,f.maxMembers))}},22846:(a,b,c)=>{c.d(b,{U:()=>f});var d=c(36366),e=c(644);function f(a){return{async get(b,c=null){let f=(await (0,d.c)()).get("SELECT value FROM kv WHERE scope = ? AND key = ?",[a,b]);return f?(0,e.q)(f.value,c):c},async getAll(){let b=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[a]),c={};for(let a of b)c[a.key]=(0,e.q)(a.value);return c},async set(b,c){(await (0,d.c)()).run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,b,(0,e.s)(c)])},async setMany(b){let c=await (0,d.c)();c.transaction(()=>{for(let[d,f]of Object.entries(b))c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,d,(0,e.s)(f)])})},async remove(b){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ? AND key = ?",[a,b])},async clear(){(await (0,d.c)()).run("DELETE FROM kv WHERE scope = ?",[a])}}}},39422:(a,b,c)=>{c.d(b,{S8:()=>z.S8,E5:()=>F.E5,bI:()=>g.cleanupProviderConnections,Iq:()=>q.createApiKey,jd:()=>w,iE:()=>g.createProviderConnection,i0:()=>h.createProviderNode,ZO:()=>n,Lh:()=>q.deleteApiKey,CG:()=>y,uL:()=>z.uL,fv:()=>z.fv,fK:()=>g.deleteProviderConnection,op:()=>g.deleteProviderConnectionsByProvider,Pc:()=>h.deleteProviderNode,Yd:()=>p,tm:()=>D,oF:()=>E,zP:()=>S,rg:()=>F.rg,yg:()=>q.getApiKeyById,mY:()=>q.getApiKeyByKey,PX:()=>q.getApiKeys,j$:()=>F.j$,L:()=>u,Dj:()=>v,Uv:()=>t,uv:()=>z.uv,vF:()=>C,Lk:()=>Q,Re:()=>F.Re,R0:()=>F.R0,c:()=>z.getMitmAlias,OM:()=>z.OM,r4:()=>A.r4,Mc:()=>g.getProviderConnectionById,P:()=>g.getProviderConnections,Qu:()=>h.getProviderNodeById,Fh:()=>h.getProviderNodes,hr:()=>m,ui:()=>l,Zx:()=>F.Zx,SL:()=>P,mt:()=>f.getSettings,Q5:()=>F.Q5,PK:()=>F.PK,M2:()=>F.M2,BY:()=>F.BY,K1:()=>T,VT:()=>A.VT,yF:()=>A.yF,ox:()=>O,sZ:()=>F.sZ,L9:()=>z.L9,o5:()=>z.o5,_V:()=>F._V,uw:()=>F.uw,XW:()=>q.updateApiKey,oG:()=>x,KJ:()=>A.KJ,rj:()=>g.updateProviderConnection,ho:()=>h.updateProviderNode,Q_:()=>o,Xx:()=>f.Xx,ek:()=>q.validateApiKey});var d=c(36366),e=c(644),f=c(42655),g=c(5781),h=c(1129),i=c(94755);function j(a){return a?{...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive||!0===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}function k(a,b){let c=function(a){let{id:b,isActive:c,testStatus:d,createdAt:f,updatedAt:g,...h}=a;return{id:b,isActive:+(!1!==c),testStatus:d??null,data:(0,e.s)(h),createdAt:f,updatedAt:g}}(b);a.run(`INSERT INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt)
10
- VALUES(?, ?, ?, ?, ?, ?)
11
- ON CONFLICT(id) DO UPDATE SET
12
- isActive=excluded.isActive, testStatus=excluded.testStatus,
13
- data=excluded.data, updatedAt=excluded.updatedAt`,[c.id,c.isActive,c.testStatus,c.data,c.createdAt,c.updatedAt])}async function l(a={}){let b=await (0,d.c)(),c=[],e=[];void 0!==a.isActive&&(c.push("isActive = ?"),e.push(+!!a.isActive)),a.testStatus&&(c.push("testStatus = ?"),e.push(a.testStatus));let f=`SELECT * FROM proxyPools${c.length?` WHERE ${c.join(" AND ")}`:""}`,g=b.all(f,e).map(j);return g.sort((a,b)=>new Date(b.updatedAt||0)-new Date(a.updatedAt||0)),g}async function m(a){return j((await (0,d.c)()).get("SELECT * FROM proxyPools WHERE id = ?",[a]))}async function n(a){let b=await (0,d.c)(),c=new Date().toISOString(),e={id:a.id||(0,i.A)(),name:a.name,proxyUrl:a.proxyUrl,noProxy:a.noProxy||"",type:a.type||"http",isActive:void 0===a.isActive||a.isActive,strictProxy:!0===a.strictProxy,testStatus:a.testStatus||"unknown",lastTestedAt:a.lastTestedAt||null,lastError:a.lastError||null,createdAt:c,updatedAt:c};return k(b,e),e}async function o(a,b){let c=await (0,d.c)(),e=null;return c.transaction(()=>{let d=c.get("SELECT * FROM proxyPools WHERE id = ?",[a]);if(!d)return;let f={...j(d),...b,updatedAt:new Date().toISOString()};k(c,f),e=f}),e}async function p(a){let b=await (0,d.c)(),c=null;return b.transaction(()=>{let d=b.get("SELECT * FROM proxyPools WHERE id = ?",[a]);d&&(c=j(d),b.run("DELETE FROM proxyPools WHERE id = ?",[a]))}),c}var q=c(74452),r=c(12280);function s(a){return a?{id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),strategyConfig:(0,r.X3)((0,e.q)(a.strategyConfig,{})),context_length:null===a.context_length||void 0===a.context_length?null:Number(a.context_length),revision:Number(a.revision)||1,createdAt:a.createdAt,updatedAt:a.updatedAt}:null}async function t(){return(await (0,d.c)()).all("SELECT * FROM combos ORDER BY createdAt ASC").map(s)}async function u(a){return s((await (0,d.c)()).get("SELECT * FROM combos WHERE id = ?",[a]))}async function v(a){return s((await (0,d.c)()).get("SELECT * FROM combos WHERE name = ?",[a]))}async function w(a){let b=await (0,d.c)(),c=new Date().toISOString(),f={id:(0,i.A)(),name:a.name,kind:a.kind||null,models:a.models||[],strategyConfig:(0,r.X3)(a.strategyConfig),context_length:void 0===a.context_length?null:a.context_length,revision:1,createdAt:c,updatedAt:c};return b.run("INSERT INTO combos(id, name, kind, models, strategyConfig, context_length, revision, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)",[f.id,f.name,f.kind,(0,e.s)(f.models),(0,e.s)(f.strategyConfig),f.context_length,f.revision,c,c]),f}async function x(a,b){let c=await (0,d.c)(),f=null,g=!1;return(c.transaction(()=>{let d=c.get("SELECT * FROM combos WHERE id = ?",[a]);if(!d)return;let h=s(d);if(void 0!==b.revision&&Number(b.revision)!==h.revision){g=!0;return}let i={...h,name:void 0!==b.name?b.name:h.name,kind:void 0!==b.kind?b.kind:h.kind,models:void 0!==b.models?b.models:h.models,strategyConfig:void 0!==b.strategyConfig?(0,r.X3)(b.strategyConfig):h.strategyConfig,context_length:void 0!==b.context_length?b.context_length:h.context_length,revision:h.revision+1,updatedAt:new Date().toISOString()};c.run("UPDATE combos SET name = ?, kind = ?, models = ?, strategyConfig = ?, context_length = ?, revision = ?, updatedAt = ? WHERE id = ? AND revision = ?",[i.name,i.kind,(0,e.s)(i.models),(0,e.s)(i.strategyConfig),i.context_length,i.revision,i.updatedAt,a,h.revision]),f=i}),g)?{conflict:!0}:f}async function y(a){let b=await (0,d.c)();return(b.run("DELETE FROM combos WHERE id = ?",[a])?.changes??0)>0}var z=c(9460),A=c(97914);let B="disabledModels";async function C(){let a=(await (0,d.c)()).all("SELECT key, value FROM kv WHERE scope = ?",[B]),b={};for(let c of a)b[c.key]=(0,e.q)(c.value,[]);return b}async function D(a,b){if(!a||!Array.isArray(b))return;let c=await (0,d.c)();c.transaction(()=>{let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[B,a]),f=[...new Set([...d&&(0,e.q)(d.value,[])||[],...b])];c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[B,a,(0,e.s)(f)])})}async function E(a,b){if(!a)return;let c=await (0,d.c)();c.transaction(()=>{if(!Array.isArray(b)||0===b.length)return void c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[B,a]);let d=c.get("SELECT value FROM kv WHERE scope = ? AND key = ?",[B,a]),f=d&&(0,e.q)(d.value,[])||[],g=new Set(b),h=f.filter(a=>!g.has(a));0===h.length?c.run("DELETE FROM kv WHERE scope = ? AND key = ?",[B,a]):c.run("INSERT INTO kv(scope, key, value) VALUES(?, ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[B,a,(0,e.s)(h)])})}var F=c(99703);let G=null,H=0;async function I(){if(G&&Date.now()-H<5e3)return G;try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,42655)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;G={enabled:"boolean"==typeof b.enableObservability2?b.enableObservability2:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{G={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return H=Date.now(),G}let J=[],K=null,L=!1;function M(a,b){let c=JSON.stringify(a||{});return c.length>b?{_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)}:a||{}}async function N(){if(!L&&0!==J.length){L=!0;try{for(;J.length>0;){let a=J.splice(0,J.length),b=await (0,d.c)(),c=await I();b.transaction(()=>{for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:M(d.request,c.maxJsonSize),providerRequest:M(d.providerRequest,c.maxJsonSize),providerResponse:M(d.providerResponse,c.maxJsonSize),response:M(d.response,c.maxJsonSize)};b.run("INSERT INTO requestDetails(id, timestamp, provider, model, connectionId, status, data) VALUES(?, ?, ?, ?, ?, ?, ?) ON CONFLICT(id) DO UPDATE SET timestamp = excluded.timestamp, provider = excluded.provider, model = excluded.model, connectionId = excluded.connectionId, status = excluded.status, data = excluded.data",[a.id,a.timestamp,a.provider,a.model,a.connectionId,a.status,(0,e.s)(a)])}let d=b.get("SELECT COUNT(*) as c FROM requestDetails");d&&d.c>c.maxRecords&&b.run("DELETE FROM requestDetails WHERE id IN (SELECT id FROM requestDetails ORDER BY timestamp ASC LIMIT ?)",[d.c-c.maxRecords])})}}catch(a){console.error("[requestDetailsRepo] Batch write failed:",a)}finally{L=!1}}}async function O(a){let b=await I();b.enabled&&(J.push(a),J.length>=b.batchSize?(K&&(clearTimeout(K),K=null),N().catch(a=>console.error("[requestDetailsRepo] flush err:",a))):K||(K=setTimeout(()=>{K=null,N().catch(()=>{})},b.flushIntervalMs)))}async function P(a={}){let b=await (0,d.c)(),c=[],f=[];a.provider&&(c.push("provider = ?"),f.push(a.provider)),a.model&&(c.push("model = ?"),f.push(a.model)),a.connectionId&&(c.push("connectionId = ?"),f.push(a.connectionId)),a.status&&(c.push("status = ?"),f.push(a.status)),a.startDate&&(c.push("timestamp >= ?"),f.push(new Date(a.startDate).toISOString())),a.endDate&&(c.push("timestamp <= ?"),f.push(new Date(a.endDate).toISOString()));let g=c.length?`WHERE ${c.join(" AND ")}`:"",h=b.get(`SELECT COUNT(*) as c FROM requestDetails ${g}`,f),i=h?h.c:0,j=a.page||1,k=a.pageSize||50,l=Math.ceil(i/k);return{details:b.all(`SELECT data FROM requestDetails ${g} ORDER BY timestamp DESC LIMIT ? OFFSET ?`,[...f,k,(j-1)*k]).map(a=>(0,e.q)(a.data,{})),pagination:{page:j,pageSize:k,totalItems:i,totalPages:l,hasNext:j<l,hasPrev:j>1}}}async function Q(){return(await (0,d.c)()).all("SELECT DISTINCT provider FROM requestDetails WHERE provider IS NOT NULL AND provider != '' ORDER BY provider").map(a=>a.provider)}let R=async()=>{K&&(clearTimeout(K),K=null),J.length>0&&await N()};async function S(){let a=await (0,d.c)(),{exportSettings:b}=await Promise.resolve().then(c.bind(c,42655)),f={settings:await b(),providerConnections:a.all("SELECT * FROM providerConnections").map(a=>({...(0,e.q)(a.data,{}),id:a.id,provider:a.provider,authType:a.authType,name:a.name,email:a.email,priority:a.priority,isActive:1===a.isActive,createdAt:a.createdAt,updatedAt:a.updatedAt})),providerNodes:a.all("SELECT * FROM providerNodes").map(a=>({...(0,e.q)(a.data,{}),id:a.id,type:a.type,name:a.name,createdAt:a.createdAt,updatedAt:a.updatedAt})),proxyPools:a.all("SELECT * FROM proxyPools").map(a=>({...(0,e.q)(a.data,{}),id:a.id,isActive:1===a.isActive,testStatus:a.testStatus,createdAt:a.createdAt,updatedAt:a.updatedAt})),apiKeys:a.all("SELECT * FROM apiKeys").map(a=>({id:a.id,key:a.key,name:a.name,machineId:a.machineId,isActive:1===a.isActive,createdAt:a.createdAt})),combos:a.all("SELECT * FROM combos").map(a=>({id:a.id,name:a.name,kind:a.kind,models:(0,e.q)(a.models,[]),strategyConfig:(0,e.q)(a.strategyConfig,{}),revision:Number(a.revision)||1,createdAt:a.createdAt,updatedAt:a.updatedAt})),modelAliases:{},customModels:[],mitmAlias:{},pricing:{}};for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'modelAliases'"))f.modelAliases[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'customModels'"))f.customModels.push((0,e.q)(b.value));for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'mitmAlias'"))f.mitmAlias[b.key]=(0,e.q)(b.value);for(let b of a.all("SELECT key, value FROM kv WHERE scope = 'pricing'"))f.pricing[b.key]=(0,e.q)(b.value);return f}async function T(a){if(!a||"object"!=typeof a||Array.isArray(a))throw Error("Invalid database payload");let b=await (0,d.c)();return b.transaction(()=>{for(let c of(b.run("DELETE FROM settings"),b.run("DELETE FROM providerConnections"),b.run("DELETE FROM providerNodes"),b.run("DELETE FROM proxyPools"),b.run("DELETE FROM apiKeys"),b.run("DELETE FROM combos"),b.run("DELETE FROM kv WHERE scope IN ('modelAliases', 'customModels', 'mitmAlias', 'pricing')"),a.settings&&b.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(a.settings)]),a.providerConnections||[])){let{id:a,provider:d,authType:f,name:g,email:h,priority:i,isActive:j,createdAt:k,updatedAt:l,...m}=c;b.run("INSERT OR REPLACE INTO providerConnections(id, provider, authType, name, email, priority, isActive, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",[a,d,f||"oauth",g||null,h||null,i||null,+(!1!==j),(0,e.s)(m),k||new Date().toISOString(),l||new Date().toISOString()])}for(let c of a.providerNodes||[]){let{id:a,type:d,name:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO providerNodes(id, type, name, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,d||null,f||null,(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.proxyPools||[]){let{id:a,isActive:d,testStatus:f,createdAt:g,updatedAt:h,...i}=c;b.run("INSERT OR REPLACE INTO proxyPools(id, isActive, testStatus, data, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?)",[a,+(!1!==d),f||"unknown",(0,e.s)(i),g||new Date().toISOString(),h||new Date().toISOString()])}for(let c of a.apiKeys||[])b.run("INSERT OR REPLACE INTO apiKeys(id, key, name, machineId, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?)",[c.id,c.key,c.name||null,c.machineId||null,+(!1!==c.isActive),c.createdAt||new Date().toISOString()]);for(let c of a.combos||[])b.run("INSERT OR REPLACE INTO combos(id, name, kind, models, strategyConfig, revision, createdAt, updatedAt) VALUES(?, ?, ?, ?, ?, ?, ?, ?)",[c.id,c.name,c.kind||null,(0,e.s)(c.models||[]),(0,e.s)(c.strategyConfig||{}),Number(c.revision)||1,c.createdAt||new Date().toISOString(),c.updatedAt||new Date().toISOString()]);for(let[c,d]of Object.entries(a.modelAliases||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('modelAliases', ?, ?)",[c,(0,e.s)(d)]);for(let c of a.customModels||[]){let a=`${c.providerAlias}|${c.id}|${c.type||"llm"}`;b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('customModels', ?, ?)",[a,(0,e.s)(c)])}for(let[c,d]of Object.entries(a.mitmAlias||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('mitmAlias', ?, ?)",[c,(0,e.s)(d||{})]);for(let[c,d]of Object.entries(a.pricing||{}))b.run("INSERT OR REPLACE INTO kv(scope, key, value) VALUES('pricing', ?, ?)",[c,(0,e.s)(d||{})])}),invalidateSettingsCache(),invalidateConnectionsCache(),await S()}process.off("beforeExit",R),process.off("SIGINT",R),process.off("SIGTERM",R),process.off("exit",R),process.on("beforeExit",R),process.on("SIGINT",R),process.on("SIGTERM",R),process.on("exit",R)},42655:(a,b,c)=>{c.d(b,{Xx:()=>l,exportSettings:()=>m,getSettings:()=>k});var d=c(36366),e=c(644);let f={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,authMode:"password",oidcIssuerUrl:"",oidcClientId:"",oidcClientSecret:"",oidcScopes:"openid profile email",oidcLoginLabel:"Sign in with OIDC",enableObservability:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:5,circuitBreaker:{enabled:!0,failureThreshold:5,windowMs:6e4,cooldownMs:3e4,halfOpenMaxCalls:1},healthMonitor:{enabled:!0,windowMs:3e5},outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,headroomEnabled:!1,headroomUrl:process.env.HEADROOM_URL||"http://localhost:8787",headroomCompressUserMessages:!1,cavemanEnabled:!1,cavemanLevel:"full",ponytailEnabled:!1,ponytailLevel:"full",pxpipeEnabled:!1,pxpipeAutoInstall:!1,pxpipeMinChars:25e3,pxpipeTimeoutMs:5e3,semanticCacheEnabled:!1,semanticCacheThreshold:.85,webhookEnabled:!1,webhookDiscordUrl:"",webhookTelegramToken:"",webhookTelegramChatId:"",webhookGenericUrl:"",webhookAlertEvents:{providerDown:!0,rateLimited:!0,healthDegraded:!0,budgetExceeded:!1}};async function g(){let a=(await (0,d.c)()).get("SELECT data FROM settings WHERE id = 1");return a?(0,e.q)(a.data,{}):{}}function h(a){let b={...f,...a||{}};for(let[a,c]of Object.entries(f))void 0===b[a]&&("outboundProxyEnabled"===a&&"string"==typeof b.outboundProxyUrl&&b.outboundProxyUrl.trim()?b[a]=!0:b[a]=c);return b}let i=null;async function j(){return h(await g())}async function k(){let a=Date.now(),b=i;if(b&&a-b.at<5e3)return b.promise;let c=j().catch(a=>{throw i=null,a});return i={promise:c,at:a},c}async function l(a){let b,c=await (0,d.c)();return c.transaction(()=>{let d=c.get("SELECT data FROM settings WHERE id = 1"),f=d?(0,e.q)(d.data,{}):{};if(b={...f,...a},a&&"object"==typeof a.comboStrategies&&!Array.isArray(a.comboStrategies)){let c={...f.comboStrategies&&"object"==typeof f.comboStrategies?f.comboStrategies:{}};for(let[b,d]of Object.entries(a.comboStrategies))null===d?delete c[b]:c[b]={...c[b]||{},...d||{}};b.comboStrategies=c}c.run("INSERT INTO settings(id, data) VALUES(1, ?) ON CONFLICT(id) DO UPDATE SET data = excluded.data",[(0,e.s)(b)])}),i=null,h(b)}async function m(){return await g()}},74452:(a,b,c)=>{c.r(b),c.d(b,{createApiKey:()=>k,deleteApiKey:()=>m,getApiKeyById:()=>i,getApiKeyByKey:()=>j,getApiKeys:()=>h,updateApiKey:()=>l,validateApiKey:()=>n});var d=c(94755),e=c(36366),f=c(644);function g(a){return a?{id:a.id,key:a.key,name:a.name,machineId:a.machineId,allowedModels:(0,f.q)(a.allowedModels,null),isActive:1===a.isActive||!0===a.isActive,createdAt:a.createdAt}:null}async function h(){return(await (0,e.c)()).all("SELECT * FROM apiKeys ORDER BY createdAt ASC").map(g)}async function i(a){return g((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE id = ?",[a]))}async function j(a){return g((await (0,e.c)()).get("SELECT * FROM apiKeys WHERE key = ?",[a]))}async function k(a,b,g=null){if(!b)throw Error("machineId is required");let h=await (0,e.c)(),{generateApiKeyWithMachine:i}=await c.e(6844).then(c.bind(c,86844)),j=i(b),l={id:(0,d.A)(),name:a,key:j.key,machineId:b,allowedModels:g,isActive:!0,createdAt:new Date().toISOString()};return h.run("INSERT INTO apiKeys(id, key, name, machineId, allowedModels, isActive, createdAt) VALUES(?, ?, ?, ?, ?, ?, ?)",[l.id,l.key,l.name,l.machineId,g?(0,f.s)(g):null,1,l.createdAt]),l}async function l(a,b){let c=await (0,e.c)(),d=null;return c.transaction(()=>{let e=c.get("SELECT * FROM apiKeys WHERE id = ?",[a]);if(!e)return;let h={...g(e),...b};c.run("UPDATE apiKeys SET key = ?, name = ?, machineId = ?, allowedModels = ?, isActive = ? WHERE id = ?",[h.key,h.name,h.machineId,h.allowedModels?(0,f.s)(h.allowedModels):null,+!!h.isActive,a]),d=h}),d}async function m(a){let b=(await (0,e.c)()).run("DELETE FROM apiKeys WHERE id = ?",[a]);return(b?.changes??0)>0}async function n(a){let b=(await (0,e.c)()).get("SELECT isActive FROM apiKeys WHERE key = ?",[a]);return!!b&&(1===b.isActive||!0===b.isActive)}},97914:(a,b,c)=>{c.d(b,{KJ:()=>l,VT:()=>n,getPricingForModel:()=>k,r4:()=>j,yF:()=>m});var d=c(36366),e=c(644);let f=(0,c(22846).U)("pricing"),g={value:null,expiresAt:0};function h(){g={value:null,expiresAt:0}}async function i(){return await f.getAll()}async function j(){let a=Date.now();if(g.value&&g.expiresAt>a)return g.value;let b=await i(),{PROVIDER_PRICING:d}=await Promise.resolve().then(c.bind(c,58920)),e={};for(let[a,c]of Object.entries(d))if(e[a]={...c},b[a])for(let[c,d]of Object.entries(b[a]))e[a][c]=e[a][c]?{...e[a][c],...d}:d;for(let[a,c]of Object.entries(b))if(e[a])for(let[b,d]of Object.entries(c))e[a][b]||(e[a][b]=d);else e[a]={...c};return g={value:e,expiresAt:a+5e3},e}async function k(a,b){if(!b)return null;let d=await i();if(a&&d[a]?.[b])return d[a][b];let{getPricingForModel:e}=await Promise.resolve().then(c.bind(c,58920));return e(a,b)}async function l(a){let b=await (0,d.c)();return b.transaction(()=>{for(let[c,d]of Object.entries(a)){let a=b.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[c]),f={...a&&(0,e.q)(a.value,{})||{}};for(let[a,b]of Object.entries(d))f[a]=b;b.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[c,(0,e.s)(f)])}}),h(),await i()}async function m(a,b){if(!a)return await i();let c=await (0,d.c)();return c.transaction(()=>{if(!b)return void c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]);let d=c.get("SELECT value FROM kv WHERE scope = 'pricing' AND key = ?",[a]),f=d&&(0,e.q)(d.value,{})||{};delete f[b],0===Object.keys(f).length?c.run("DELETE FROM kv WHERE scope = 'pricing' AND key = ?",[a]):c.run("INSERT INTO kv(scope, key, value) VALUES('pricing', ?, ?) ON CONFLICT(scope, key) DO UPDATE SET value = excluded.value",[a,(0,e.s)(f)])}),h(),await i()}async function n(){return await f.clear(),h(),{}}}};
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,s,t,a){return{__rewrites:{afterFiles:[{has:e,source:"/v1/v1/:path*",destination:s},{has:e,source:"/v1/v1",destination:t},{has:e,source:"/codex/:path*",destination:a},{has:e,source:"/responses",destination:a},{has:e,source:"/v1beta/:path*",destination:"/api/v1beta/:path*"},{has:e,source:"/v1beta",destination:"/api/v1beta"},{has:e,source:"/v1/:path*",destination:s},{has:e,source:"/v1",destination:t}],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:169,errorRate:1e-4,numBits:3240,numHashes:14,bitArray:[1,0,0,1,0,0,1,1,0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,1,1,0,1,0,0,1,1,1,1,0,1,0,1,0,0,0,1,0,0,1,0,1,1,1,0,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,0,0,0,1,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,1,1,1,1,0,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,1,1,0,0,0,1,1,0,1,0,1,0,0,1,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,1,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,1,1,0,1,1,0,1,1,0,0,1,1,1,1,0,1,0,1,1,0,1,0,0,1,1,0,1,1,0,1,1,0,0,1,0,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,1,1,1,0,0,1,0,1,0,1,0,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,1,0,0,1,1,1,1,1,0,1,1,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,1,0,1,0,0,0,0,1,1,0,0,0,1,0,1,0,1,1,0,1,1,1,0,1,0,1,0,0,1,1,1,1,0,1,1,1,0,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,0,1,1,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,0,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,1,1,1,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,0,1,0,0,1,0,0,1,1,0,1,1,1,1,0,0,1,0,1,0,0,0,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,0,1,1,0,0,1,0,1,1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1,1,0,0,0,1,0,1,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,1,1,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,1,0,0,0,1,0,1,0,0,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,1,0,0,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,0,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,0,0,0,1,0,0,1,1,1,0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0,0,1,1,1,1,1,0,1,1,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,1,0,0,0,0,1,1,0,1,1,1,1,0,0,0,1,0,1,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,1,0,1,0,0,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,1,1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,1,1,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,1,0,1,1,0,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,0,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,1,1,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,1,1,1,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,1,0,0,1,1,0,0,1,0,1,1,1,1,1,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,1,0,1,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,1,1,1,0,0,1,1,1,1,0,0,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,0,1,1,0,1,0,0,1,0,1,0,1,0,1,1,0,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,1,1,1,0,1,1,0,1,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,1,1,0,1,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,1,0,0,1,0,0,1,0,0,0,1,1,1,0,0,1,1,1,0,1,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,1,0,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,1,0,1,0,1,1,0,1,0,0,1,1,1,1,0,1,0,0,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,0,1,1,0,1,0,1,1,1,1,0,0,1,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,1,0,1,0,0,1,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,0,1,0,1,1,0,1,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,1,0,1,0,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,0,1,1,0,0,1,1,1,0,0,1,0,1,1,1,1,0,0,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,1,1,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,1,1,1,0,0,1,1,1,0,1,0,1,0,1,1,1,1,0,1,1,1,0,0,0,1,1,0,1,0,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,1,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,1,1,1,1,0,0,1,1,0,1,0,1,0,1,0,0,0,1,1,1,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,1,1,0,1,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,1,1,0,1,1,0,0,0,1,0]},__routerFilterDynamic:{numItems:14,errorRate:1e-4,numBits:269,numHashes:14,bitArray:[0,0,0,1,1,1,0,0,1,1,0,1,1,1,0,0,1,0,1,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,1,1,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,1,1,1,0,1,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0,0,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,1,1,1,0,0,0,1,0,1,0,0,0,0,0,1,0,1,1,1,0,0,0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,0,1,0,0,1,1,1,1,0,1,0,1,1,0,1,0,1,0,1]},sortedPages:["/_app"]}}(void 0,"/api/v1/:path*","/api/v1","/api/v1/responses"),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1321],{717:(e,t,i)=>{i.d(t,{jY:()=>m,pp:()=>p});var a=i(91781);let n={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},s=(...e)=>e.map(e=>({...n[e],type:"tts"})),r=s("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),o=s("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),l=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(e=>({id:e,name:e,type:"tts"})),d={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":o,"tts-1":r,"tts-1-hd":r},allVoices:o},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":o,"openai/tts-1":r,"openai/tts-1-hd":r},allVoices:o},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:a.I},gemini:{models:[{id:"gemini-3.1-flash-tts-preview",name:"Gemini 3.1 Flash TTS",type:"tts"},{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-3.1-flash-tts-preview":l,"gemini-2.5-flash-preview-tts":l,"gemini-2.5-pro-preview-tts":l},allVoices:l}};function m(e,t){let i=d[e];return i?.voices&&(i.voices[t]||i.allVoices)||null}function p(){let e={};for(let[t,i]of Object.entries(d))i.models&&(e[`${t}-tts-models`]=i.models),i.allVoices&&(e[`${t}-tts-voices`]=i.allVoices),i.defaults&&(e[t]=i.defaults);return e["openai-tts-voices"]=d.openai.allVoices,e["openrouter-tts-voices"]=d.openrouter.allVoices,e}},21110:(e,t,i)=>{i.d(t,{ThemeProvider:()=>r});var a=i(95155),n=i(12115),s=i(90085);function r({children:e}){let{initTheme:t}=(0,s.A)();return(0,n.useEffect)(()=>{t()},[t]),(0,a.jsx)(a.Fragment,{children:e})}},28777:(e,t,i)=>{i.d(t,{CP:()=>n,KC:()=>a.KC,Xg:()=>a.Xg,bs:()=>s,u0:()=>a.u0});var a=i(70778);Object.entries(i(88105).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(a.vq).flatMap(([e,t])=>t.map(t=>({provider:e,model:t.id,name:t.name})));let n=(e,t=null)=>e?.kind||e?.type||t,s={vision:{icon:"visibility",label:"Vision",desc:"Supports image input",color:"text-blue-500"},pdf:{icon:"description",label:"PDF",desc:"Supports PDF input",color:"text-red-500"},audioInput:{icon:"graphic_eq",label:"Audio",desc:"Supports audio input",color:"text-green-500"},videoInput:{icon:"videocam",label:"Video",desc:"Supports video input",color:"text-purple-500"},search:{icon:"travel_explore",label:"Web Search",desc:"Supports web search",color:"text-cyan-500"},reasoning:{icon:"neurology",label:"Reasoning",desc:"Supports reasoning / thinking",color:"text-amber-500"}}},70778:(e,t,i)=>{i.d(t,{Xg:()=>v,vq:()=>c,u0:()=>f,KC:()=>T});var a=i(91476),n=i(41463);function s(e,t){let i=n.env[e];if(null==i||""===i)return t;let a=parseInt(i,10);return Number.isFinite(a)&&a>0?a:t}s("STREAM_STALL_TIMEOUT_MS",36e4),s("STREAM_FIRST_CHUNK_TIMEOUT_MS",2e5),s("FETCH_CONNECT_TIMEOUT_MS",6e4),s("GEMINI_NATIVE_TTS_FETCH_TIMEOUT_MS",45e3);function r(e){return e.split(/[-_\s]+/).filter(Boolean).map(e=>/^\d/.test(e)?e:e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}let o=[[/^kimi-k(\d+(?:\.\d+)?)(-thinking)?$/i,e=>`Kimi K${e[1]}${e[2]?" Thinking":""}`],[/^glm-(\d+(?:\.\d+)?)(v)?$/i,e=>`GLM ${e[1]}${e[2]?"V (Vision)":""}`],[/^minimax-m(\d+(?:\.\d+)?)$/i,e=>`MiniMax M${e[1]}`],[/^gpt-(.+)$/i,e=>`GPT ${r(e[1])}`],[/^gemini-(.+)$/i,e=>`Gemini ${r(e[1])}`],[/^grok-(.+)$/i,e=>`Grok ${r(e[1])}`],[/^deepseek-(.+)$/i,e=>`DeepSeek ${r(e[1])}`],[/^qwen([\d.]+.*)$/i,e=>`Qwen ${r(e[1])}`]];function l(e){let t="string"==typeof e?{id:e}:e;return void 0!==t.name?t:{...t,name:function(e){if("string"!=typeof e)return e;for(let[t,i]of o){let a=e.match(t);if(a)return i(a)}return e}(t.id)}}var d=i(717);let m=["clientId","clientSecret","tokenUrl"],p=new Set(["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","modelsFetcher","mediaPriority","hiddenKinds"]),u={},c={},h={},y={};for(let e of a.A){e.transport&&(u[e.id]=function(e,t){let i={...e};if(i.format||(i.format="openai"),t)for(let e of m)void 0===i[e]&&void 0!==t[e]&&(i[e]=t[e]);return i}(e.transport,e.oauth),e.transports&&(u[e.id].transports=e.transports)),void 0!==e.models&&(c[e.alias||e.id]=e.models.map(l)),e.oauth&&(h[e.id]=e.oauth);let t={};for(let i of p)void 0!==e[i]&&(t[i]=e[i]);e.media&&Object.assign(t,e.media),Object.keys(t).length&&(y[e.id]=t)}function f(e,t){let i=c[e];if(!i)return t;let a=i.find(e=>e.id===t);return a?.name||t}Object.assign(c,(0,d.pp)()),u["xiaomi-tokenplan"]?.regions,u["xiaomi-tokenplan"]?.defaultRegion;let g=Object.fromEntries(a.A.filter(e=>e.alias&&e.alias!==e.id).map(e=>[e.id,e.alias])),v=Object.fromEntries(Object.keys(u).map(e=>[e,g[e]||e]));function T(e){return c[v[e]||e]||[]}},73006:(e,t,i)=>{i.d(t,{FE:()=>h,Tl:()=>d,kk:()=>m,oQ:()=>p,wn:()=>y});var a=i(93308);let n={},s=a.Xn,r=[];function o(){if("u"<typeof document)return a.Xn;let e=document.cookie.split(";").find(e=>e.trim().startsWith(`${a.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):a.Xn;return(0,a.QC)(t)}async function l(e){if("en"===e){n={};return}try{let t=await fetch(`/i18n/literals/${e}.json`);n=await t.json()}catch(e){console.error("Failed to load translations:",e),n={}}}function d(e){if(!e||"string"!=typeof e)return e;let t=e.trim();return t&&"en"!==s&&n[t]||e}function m(){return s}function p(e){return r.push(e),()=>{r=r.filter(t=>t!==e)}}function u(e){if(!e.nodeValue||!e.nodeValue.trim())return;let t=e.parentElement;if(!t)return;let i=t;for(;i;){if(i.hasAttribute&&i.hasAttribute("data-i18n-skip"))return;i=i.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(t.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let a=d(e._originalText);a!==e.nodeValue&&(e.nodeValue=a)}function c(e){let t;if(!e)return;let i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),a=[];for(;t=i.nextNode();)a.push(t);a.forEach(u)}async function h(){s=o(),await l(s),c(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?c(e):e.nodeType===Node.TEXT_NODE&&u(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function y(){s=o(),await l(s),r.forEach(e=>e()),c(document.body)}},90085:(e,t,i)=>{i.d(t,{A:()=>o});var a=i(1934),n=i(31692),s=i(90620);function r(e){let t=document.documentElement,i=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?i:e)?t.classList.add("dark"):t.classList.remove("dark")}let o=(0,a.v)((0,n.Zr)((e,t)=>({theme:s.B2.defaultTheme,setTheme:t=>{e({theme:t}),r(t)},toggleTheme:()=>{let i="dark"===t().theme?"light":"dark";e({theme:i}),r(i)},initTheme:()=>{r(t().theme)}}),{name:s.B2.storageKey}))},90620:(e,t,i)=>{i.d(t,{Q2:()=>a.Q2,fg:()=>a.fg,vQ:()=>n,MA:()=>a.MA,UY:()=>l,Nu:()=>s,zN:()=>a.zN,B2:()=>o,h0:()=>r});var a=i(88105);i(28777);let n={name:"ExtremeRouter",description:"AI Gateway Control Plane",version:"0.8.4"},s={changelogUrl:"https://raw.githubusercontent.com/rsalmn/extremerouter/refs/heads/main/CHANGELOG.md",donateUrl:"https://github.com/sponsors/rsalmn"},r={npmPackageName:"@rsalmn/extremerouter",installCmd:"npm i -g @rsalmn/extremerouter",installCmdLatest:"npm i -g @rsalmn/extremerouter@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},o={storageKey:"theme",defaultTheme:"system"},l={maxLines:200,pollIntervalMs:1e3}},91781:(e,t,i)=>{i.d(t,{I:()=>a});let a=[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},93308:(e,t,i)=>{i.d(t,{CL:()=>s,QC:()=>r,Xn:()=>n,YZ:()=>a});let a=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],n="en",s="locale";function r(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":n}}}]);