omniroute 2.4.1 → 2.4.3

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 (850) hide show
  1. package/README.md +76 -76
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +74 -72
  4. package/app/.next/build-manifest.json +2 -2
  5. package/app/.next/routes-manifest.json +14 -0
  6. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/a2a/page.js.nft.json +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/agents/page.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/agents/page.js.nft.json +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/analytics/page.js.nft.json +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page.js.nft.json +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page.js.nft.json +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page.js.nft.json +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  25. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/costs/page.js.nft.json +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  34. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/health/page.js +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/health/page.js.nft.json +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/limits/page.js.nft.json +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +2 -2
  43. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js.nft.json +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/mcp/page.js.nft.json +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/(dashboard)/dashboard/media/page.js +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/media/page.js.nft.json +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page.js.nft.json +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  55. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/(dashboard)/dashboard/playground/page.js +3 -3
  58. package/app/.next/server/app/(dashboard)/dashboard/playground/page.js.nft.json +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  63. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  64. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js +1 -1
  73. package/app/.next/server/app/(dashboard)/dashboard/settings/page.js.nft.json +1 -1
  74. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js +1 -1
  76. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page.js.nft.json +1 -1
  77. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +1 -1
  79. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  80. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +1 -1
  82. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  83. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/.well-known/agent.json/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/400/page.js +1 -1
  86. package/app/.next/server/app/400/page.js.nft.json +1 -1
  87. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/401/page.js +1 -1
  89. package/app/.next/server/app/401/page.js.nft.json +1 -1
  90. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/403/page.js +1 -1
  92. package/app/.next/server/app/403/page.js.nft.json +1 -1
  93. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/408/page.js +1 -1
  95. package/app/.next/server/app/408/page.js.nft.json +1 -1
  96. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/429/page.js +1 -1
  98. package/app/.next/server/app/429/page.js.nft.json +1 -1
  99. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/500/page.js +1 -1
  101. package/app/.next/server/app/500/page.js.nft.json +1 -1
  102. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/502/page.js +1 -1
  104. package/app/.next/server/app/502/page.js.nft.json +1 -1
  105. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/503/page.js +1 -1
  107. package/app/.next/server/app/503/page.js.nft.json +1 -1
  108. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/_global-error.html +2 -2
  111. package/app/.next/server/app/_global-error.rsc +1 -1
  112. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  113. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  114. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  115. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  116. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  117. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  118. package/app/.next/server/app/_not-found/page.js +1 -1
  119. package/app/.next/server/app/_not-found/page.js.nft.json +1 -1
  120. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/a2a/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/a2a/status/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/a2a/tasks/[id]/cancel/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/a2a/tasks/[id]/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/a2a/tasks/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/acp/agents/route.js +1 -1
  127. package/app/.next/server/app/api/acp/agents/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/acp/agents/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/auth/login/route.js +1 -1
  130. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  137. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  153. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  156. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  159. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  162. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  165. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  166. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/combos/auto/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/combos/route.js +1 -1
  170. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/combos/test/route.js +1 -1
  173. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/db-backups/export/route.js +1 -1
  177. package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/db-backups/import/route.js +1 -1
  181. package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/db-backups/route.js +1 -1
  184. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  189. package/app/.next/server/app/api/init/route.js +1 -1
  190. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  192. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  193. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  195. package/app/.next/server/app/api/keys/route.js +1 -1
  196. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  198. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  199. package/app/.next/server/app/api/mcp/audit/route_client-reference-manifest.js +1 -1
  200. package/app/.next/server/app/api/mcp/audit/stats/route_client-reference-manifest.js +1 -1
  201. package/app/.next/server/app/api/mcp/sse/route.js +1 -1
  202. package/app/.next/server/app/api/mcp/sse/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/mcp/sse/route_client-reference-manifest.js +1 -1
  204. package/app/.next/server/app/api/mcp/status/route.js +1 -1
  205. package/app/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/mcp/status/route_client-reference-manifest.js +1 -1
  207. package/app/.next/server/app/api/mcp/stream/route.js +1 -1
  208. package/app/.next/server/app/api/mcp/stream/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/mcp/stream/route_client-reference-manifest.js +1 -1
  210. package/app/.next/server/app/api/mcp/tools/route_client-reference-manifest.js +1 -1
  211. package/app/.next/server/app/api/models/alias/route.js +1 -1
  212. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  214. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  215. package/app/.next/server/app/api/models/catalog/route.js +2 -2
  216. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  218. package/app/.next/server/app/api/models/openrouter-catalog/route.js +1 -1
  219. package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/models/openrouter-catalog/route_client-reference-manifest.js +1 -1
  221. package/app/.next/server/app/api/models/route.js +1 -1
  222. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  224. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  225. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  226. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  227. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  228. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  230. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  231. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  232. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  233. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  234. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  236. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  237. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  238. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  239. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  240. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  241. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  242. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  243. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  244. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  246. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  247. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  248. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  249. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/api/pricing/route.js +1 -1
  252. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  254. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  255. package/app/.next/server/app/api/provider-models/route.js +1 -1
  256. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  258. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  259. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/api/provider-nodes/route.js +2 -2
  262. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  264. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  265. package/app/.next/server/app/api/providers/[id]/models/route.js +2 -2
  266. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  267. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  268. package/app/.next/server/app/api/providers/[id]/refresh/route.js +1 -0
  269. package/app/.next/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -0
  270. package/app/.next/server/app/api/providers/[id]/refresh/route_client-reference-manifest.js +1 -0
  271. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  272. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  273. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  274. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  275. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  276. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  277. package/app/.next/server/app/api/providers/client/route.js +1 -1
  278. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  279. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  280. package/app/.next/server/app/api/providers/route.js +1 -1
  281. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  282. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  283. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  284. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  285. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  286. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  287. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  288. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  289. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  290. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  291. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  293. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  294. package/app/.next/server/app/api/resilience/route.js +1 -1
  295. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  296. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  297. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  298. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  299. package/app/.next/server/app/api/settings/background-degradation/route.js +1 -1
  300. package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +1 -1
  301. package/app/.next/server/app/api/settings/background-degradation/route_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  303. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  304. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  305. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  306. package/app/.next/server/app/api/settings/model-aliases/route.js +1 -1
  307. package/app/.next/server/app/api/settings/model-aliases/route.js.nft.json +1 -1
  308. package/app/.next/server/app/api/settings/model-aliases/route_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/api/settings/proxy/route.js +1 -1
  310. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  311. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/api/settings/proxy/test/route.js +1 -1
  313. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  314. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  315. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  316. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  317. package/app/.next/server/app/api/settings/route.js +1 -1
  318. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  319. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  320. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  321. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  322. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  323. package/app/.next/server/app/api/settings/task-routing/route.js +1 -0
  324. package/app/.next/server/app/api/settings/task-routing/route.js.nft.json +1 -0
  325. package/app/.next/server/app/api/settings/task-routing/route_client-reference-manifest.js +1 -0
  326. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  327. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  328. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  329. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  330. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  331. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  332. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  333. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  334. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  335. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  336. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  337. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  338. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  339. package/app/.next/server/app/api/token-health/route.js +1 -1
  340. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  341. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  342. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  343. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  344. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  345. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  346. package/app/.next/server/app/api/translator/send/route.js +1 -1
  347. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  348. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  349. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  350. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  351. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  352. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  353. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  354. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  355. package/app/.next/server/app/api/usage/analytics/route.js +1 -1
  356. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  357. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  358. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  359. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  360. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  361. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  362. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  363. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  364. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  365. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  366. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  367. package/app/.next/server/app/api/usage/proxy-logs/route.js +1 -1
  368. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  369. package/app/.next/server/app/api/usage/quota/route.js +1 -1
  370. package/app/.next/server/app/api/usage/quota/route.js.nft.json +1 -1
  371. package/app/.next/server/app/api/usage/quota/route_client-reference-manifest.js +1 -1
  372. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  373. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  374. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  375. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  376. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  377. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  378. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  379. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  380. package/app/.next/server/app/api/v1/audio/transcriptions/route.js +1 -1
  381. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  382. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  383. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  384. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  385. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  386. package/app/.next/server/app/api/v1/completions/route.js +1 -1
  387. package/app/.next/server/app/api/v1/completions/route.js.nft.json +1 -1
  388. package/app/.next/server/app/api/v1/completions/route_client-reference-manifest.js +1 -1
  389. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  390. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  391. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  392. package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
  393. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  394. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  395. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  396. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  397. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  398. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  399. package/app/.next/server/app/api/v1/models/route.js +1 -1
  400. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  401. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  402. package/app/.next/server/app/api/v1/moderations/route.js +1 -1
  403. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  404. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/api/v1/music/generations/route.js +1 -1
  406. package/app/.next/server/app/api/v1/music/generations/route.js.nft.json +1 -1
  407. package/app/.next/server/app/api/v1/music/generations/route_client-reference-manifest.js +1 -1
  408. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js +1 -1
  409. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  410. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  411. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js +1 -1
  412. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  413. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js +1 -1
  415. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  416. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  417. package/app/.next/server/app/api/v1/rerank/route.js +1 -1
  418. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  419. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  420. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  421. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  422. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  423. package/app/.next/server/app/api/v1/route.js +1 -1
  424. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  425. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  426. package/app/.next/server/app/api/v1/videos/generations/route.js +1 -1
  427. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  428. package/app/.next/server/app/api/v1/videos/generations/route_client-reference-manifest.js +1 -1
  429. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  430. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  431. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  433. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  434. package/app/.next/server/app/callback/page.js +1 -1
  435. package/app/.next/server/app/callback/page.js.nft.json +1 -1
  436. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  437. package/app/.next/server/app/docs/page.js +1 -1
  438. package/app/.next/server/app/docs/page.js.nft.json +1 -1
  439. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  440. package/app/.next/server/app/forbidden/page.js +1 -1
  441. package/app/.next/server/app/forbidden/page.js.nft.json +1 -1
  442. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  443. package/app/.next/server/app/forgot-password/page.js +1 -1
  444. package/app/.next/server/app/forgot-password/page.js.nft.json +1 -1
  445. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  446. package/app/.next/server/app/landing/page.js +2 -2
  447. package/app/.next/server/app/landing/page.js.nft.json +1 -1
  448. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  449. package/app/.next/server/app/login/page.js +1 -1
  450. package/app/.next/server/app/login/page.js.nft.json +1 -1
  451. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  452. package/app/.next/server/app/maintenance/page.js +1 -1
  453. package/app/.next/server/app/maintenance/page.js.nft.json +1 -1
  454. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  455. package/app/.next/server/app/offline/page.js +1 -1
  456. package/app/.next/server/app/offline/page.js.nft.json +1 -1
  457. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  458. package/app/.next/server/app/page.js +1 -1
  459. package/app/.next/server/app/page.js.nft.json +1 -1
  460. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  461. package/app/.next/server/app/privacy/page.js +1 -1
  462. package/app/.next/server/app/privacy/page.js.nft.json +1 -1
  463. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  464. package/app/.next/server/app/status/page.js +1 -1
  465. package/app/.next/server/app/status/page.js.nft.json +1 -1
  466. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  467. package/app/.next/server/app/terms/page.js +1 -1
  468. package/app/.next/server/app/terms/page.js.nft.json +1 -1
  469. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  470. package/app/.next/server/app-paths-manifest.json +74 -72
  471. package/app/.next/server/chunks/1308.js +1 -1
  472. package/app/.next/server/chunks/1714.js +135 -0
  473. package/app/.next/server/chunks/1909.js +1 -1
  474. package/app/.next/server/chunks/1960.js +1 -1
  475. package/app/.next/server/chunks/2391.js +1 -1
  476. package/app/.next/server/chunks/2476.js +1 -0
  477. package/app/.next/server/chunks/2767.js +3 -3
  478. package/app/.next/server/chunks/3061.js +2 -2
  479. package/app/.next/server/chunks/3596.js +1 -1
  480. package/app/.next/server/chunks/3648.js +5 -5
  481. package/app/.next/server/chunks/406.js +13 -13
  482. package/app/.next/server/chunks/4755.js +1 -1
  483. package/app/.next/server/chunks/5585.js +1 -0
  484. package/app/.next/server/chunks/595.js +1 -1
  485. package/app/.next/server/chunks/5979.js +1 -1
  486. package/app/.next/server/chunks/6094.js +1 -0
  487. package/app/.next/server/chunks/6197.js +46 -0
  488. package/app/.next/server/chunks/6440.js +1 -0
  489. package/app/.next/server/chunks/7109.js +2 -2
  490. package/app/.next/server/chunks/7136.js +1 -0
  491. package/app/.next/server/chunks/7327.js +1 -1
  492. package/app/.next/server/chunks/7544.js +1 -1
  493. package/app/.next/server/chunks/7669.js +1 -1
  494. package/app/.next/server/chunks/8369.js +1 -1
  495. package/app/.next/server/chunks/8907.js +1 -1
  496. package/app/.next/server/chunks/9631.js +1 -1
  497. package/app/.next/server/chunks/9704.js +2 -2
  498. package/app/.next/server/instrumentation.js +1 -1
  499. package/app/.next/server/middleware.js +4 -4
  500. package/app/.next/server/pages/500.html +2 -2
  501. package/app/.next/server/server-reference-manifest.js +1 -1
  502. package/app/.next/server/server-reference-manifest.json +1 -1
  503. package/app/.next/{server/chunks/3922.js → static/chunks/5846-dc138c1880db7dc4.js} +2 -1
  504. package/app/.next/static/chunks/647-bf8bc535ac3648d0.js +21 -0
  505. package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/page-576b27a05c09fba5.js +1 -0
  506. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-3c3f3b0b558e9302.js +15 -0
  507. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-81244e4816fac7ea.js +1 -0
  508. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-08c2aa1b8887ab74.js → page-8b96e2f6d76d6f2d.js} +1 -1
  509. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-2d456b7ddbf3d41e.js +1 -0
  510. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-5ed5bdc9e926936c.js +1 -0
  511. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-799001b6cea7d5bc.js +1 -0
  512. package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/page-0fff47edc56250ea.js +2 -0
  513. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-a4c3bff638878498.js +1 -0
  514. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-01465d13a7217fd4.js +1 -0
  515. package/app/.next/static/chunks/app/.well-known/agent.json/route-a4c3bff638878498.js +1 -0
  516. package/app/.next/static/chunks/app/400/layout-a4c3bff638878498.js +1 -0
  517. package/app/.next/static/chunks/app/401/layout-a4c3bff638878498.js +1 -0
  518. package/app/.next/static/chunks/app/403/layout-a4c3bff638878498.js +1 -0
  519. package/app/.next/static/chunks/app/408/layout-a4c3bff638878498.js +1 -0
  520. package/app/.next/static/chunks/app/429/layout-a4c3bff638878498.js +1 -0
  521. package/app/.next/static/chunks/app/500/layout-a4c3bff638878498.js +1 -0
  522. package/app/.next/static/chunks/app/502/layout-a4c3bff638878498.js +1 -0
  523. package/app/.next/static/chunks/app/503/layout-a4c3bff638878498.js +1 -0
  524. package/app/.next/static/chunks/app/_global-error/page-a4c3bff638878498.js +1 -0
  525. package/app/.next/static/chunks/app/_not-found/page-a4c3bff638878498.js +1 -0
  526. package/app/.next/static/chunks/app/a2a/route-a4c3bff638878498.js +1 -0
  527. package/app/.next/static/chunks/app/api/a2a/status/route-a4c3bff638878498.js +1 -0
  528. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/cancel/route-a4c3bff638878498.js +1 -0
  529. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/route-a4c3bff638878498.js +1 -0
  530. package/app/.next/static/chunks/app/api/a2a/tasks/route-a4c3bff638878498.js +1 -0
  531. package/app/.next/static/chunks/app/api/acp/agents/route-a4c3bff638878498.js +1 -0
  532. package/app/.next/static/chunks/app/api/auth/login/route-a4c3bff638878498.js +1 -0
  533. package/app/.next/static/chunks/app/api/auth/logout/route-a4c3bff638878498.js +1 -0
  534. package/app/.next/static/chunks/app/api/auth/status/route-a4c3bff638878498.js +1 -0
  535. package/app/.next/static/chunks/app/api/cache/route-a4c3bff638878498.js +1 -0
  536. package/app/.next/static/chunks/app/api/cache/stats/route-a4c3bff638878498.js +1 -0
  537. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a4c3bff638878498.js +1 -0
  538. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-a4c3bff638878498.js +1 -0
  539. package/app/.next/static/chunks/app/api/cli-tools/backups/route-a4c3bff638878498.js +1 -0
  540. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-a4c3bff638878498.js +1 -0
  541. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-a4c3bff638878498.js +1 -0
  542. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-a4c3bff638878498.js +1 -0
  543. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-a4c3bff638878498.js +1 -0
  544. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-a4c3bff638878498.js +1 -0
  545. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-a4c3bff638878498.js +1 -0
  546. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-a4c3bff638878498.js +1 -0
  547. package/app/.next/static/chunks/app/api/cli-tools/openclaw/auto-order/route-a4c3bff638878498.js +1 -0
  548. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-a4c3bff638878498.js +1 -0
  549. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-a4c3bff638878498.js +1 -0
  550. package/app/.next/static/chunks/app/api/cli-tools/status/route-a4c3bff638878498.js +1 -0
  551. package/app/.next/static/chunks/app/api/cloud/auth/route-a4c3bff638878498.js +1 -0
  552. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-a4c3bff638878498.js +1 -0
  553. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-a4c3bff638878498.js +1 -0
  554. package/app/.next/static/chunks/app/api/cloud/models/alias/route-a4c3bff638878498.js +1 -0
  555. package/app/.next/static/chunks/app/api/combos/[id]/route-a4c3bff638878498.js +1 -0
  556. package/app/.next/static/chunks/app/api/combos/auto/route-a4c3bff638878498.js +1 -0
  557. package/app/.next/static/chunks/app/api/combos/metrics/route-a4c3bff638878498.js +1 -0
  558. package/app/.next/static/chunks/app/api/combos/route-a4c3bff638878498.js +1 -0
  559. package/app/.next/static/chunks/app/api/combos/test/route-a4c3bff638878498.js +1 -0
  560. package/app/.next/static/chunks/app/api/compliance/audit-log/route-a4c3bff638878498.js +1 -0
  561. package/app/.next/static/chunks/app/api/db-backups/export/route-a4c3bff638878498.js +1 -0
  562. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-a4c3bff638878498.js +1 -0
  563. package/app/.next/static/chunks/app/api/db-backups/import/route-a4c3bff638878498.js +1 -0
  564. package/app/.next/static/chunks/app/api/db-backups/route-a4c3bff638878498.js +1 -0
  565. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-a4c3bff638878498.js +1 -0
  566. package/app/.next/static/chunks/app/api/evals/route-a4c3bff638878498.js +1 -0
  567. package/app/.next/static/chunks/app/api/fallback/chains/route-a4c3bff638878498.js +1 -0
  568. package/app/.next/static/chunks/app/api/init/route-a4c3bff638878498.js +1 -0
  569. package/app/.next/static/chunks/app/api/keys/[id]/route-a4c3bff638878498.js +1 -0
  570. package/app/.next/static/chunks/app/api/keys/route-a4c3bff638878498.js +1 -0
  571. package/app/.next/static/chunks/app/api/logs/console/route-a4c3bff638878498.js +1 -0
  572. package/app/.next/static/chunks/app/api/mcp/audit/route-a4c3bff638878498.js +1 -0
  573. package/app/.next/static/chunks/app/api/mcp/audit/stats/route-a4c3bff638878498.js +1 -0
  574. package/app/.next/static/chunks/app/api/mcp/sse/route-a4c3bff638878498.js +1 -0
  575. package/app/.next/static/chunks/app/api/mcp/status/route-a4c3bff638878498.js +1 -0
  576. package/app/.next/static/chunks/app/api/mcp/stream/route-a4c3bff638878498.js +1 -0
  577. package/app/.next/static/chunks/app/api/mcp/tools/route-a4c3bff638878498.js +1 -0
  578. package/app/.next/static/chunks/app/api/models/alias/route-a4c3bff638878498.js +1 -0
  579. package/app/.next/static/chunks/app/api/models/availability/route-a4c3bff638878498.js +1 -0
  580. package/app/.next/static/chunks/app/api/models/catalog/route-a4c3bff638878498.js +1 -0
  581. package/app/.next/static/chunks/app/api/models/openrouter-catalog/route-a4c3bff638878498.js +1 -0
  582. package/app/.next/static/chunks/app/api/models/route-a4c3bff638878498.js +1 -0
  583. package/app/.next/static/chunks/app/api/monitoring/health/route-a4c3bff638878498.js +1 -0
  584. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-a4c3bff638878498.js +1 -0
  585. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-a4c3bff638878498.js +1 -0
  586. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-a4c3bff638878498.js +1 -0
  587. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-a4c3bff638878498.js +1 -0
  588. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-a4c3bff638878498.js +1 -0
  589. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-a4c3bff638878498.js +1 -0
  590. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-a4c3bff638878498.js +1 -0
  591. package/app/.next/static/chunks/app/api/policies/route-a4c3bff638878498.js +1 -0
  592. package/app/.next/static/chunks/app/api/pricing/defaults/route-a4c3bff638878498.js +1 -0
  593. package/app/.next/static/chunks/app/api/pricing/models/route-a4c3bff638878498.js +1 -0
  594. package/app/.next/static/chunks/app/api/pricing/route-a4c3bff638878498.js +1 -0
  595. package/app/.next/static/chunks/app/api/provider-metrics/route-a4c3bff638878498.js +1 -0
  596. package/app/.next/static/chunks/app/api/provider-models/route-a4c3bff638878498.js +1 -0
  597. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-a4c3bff638878498.js +1 -0
  598. package/app/.next/static/chunks/app/api/provider-nodes/route-a4c3bff638878498.js +1 -0
  599. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-a4c3bff638878498.js +1 -0
  600. package/app/.next/static/chunks/app/api/providers/[id]/models/route-a4c3bff638878498.js +1 -0
  601. package/app/.next/static/chunks/app/api/providers/[id]/refresh/route-a4c3bff638878498.js +1 -0
  602. package/app/.next/static/chunks/app/api/providers/[id]/route-a4c3bff638878498.js +1 -0
  603. package/app/.next/static/chunks/app/api/providers/[id]/test/route-a4c3bff638878498.js +1 -0
  604. package/app/.next/static/chunks/app/api/providers/client/route-a4c3bff638878498.js +1 -0
  605. package/app/.next/static/chunks/app/api/providers/route-a4c3bff638878498.js +1 -0
  606. package/app/.next/static/chunks/app/api/providers/test-batch/route-a4c3bff638878498.js +1 -0
  607. package/app/.next/static/chunks/app/api/providers/validate/route-a4c3bff638878498.js +1 -0
  608. package/app/.next/static/chunks/app/api/rate-limit/route-a4c3bff638878498.js +1 -0
  609. package/app/.next/static/chunks/app/api/rate-limits/route-a4c3bff638878498.js +1 -0
  610. package/app/.next/static/chunks/app/api/resilience/reset/route-a4c3bff638878498.js +1 -0
  611. package/app/.next/static/chunks/app/api/resilience/route-a4c3bff638878498.js +1 -0
  612. package/app/.next/static/chunks/app/api/restart/route-a4c3bff638878498.js +1 -0
  613. package/app/.next/static/chunks/app/api/sessions/route-a4c3bff638878498.js +1 -0
  614. package/app/.next/static/chunks/app/api/settings/background-degradation/route-a4c3bff638878498.js +1 -0
  615. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-a4c3bff638878498.js +1 -0
  616. package/app/.next/static/chunks/app/api/settings/ip-filter/route-a4c3bff638878498.js +1 -0
  617. package/app/.next/static/chunks/app/api/settings/model-aliases/route-a4c3bff638878498.js +1 -0
  618. package/app/.next/static/chunks/app/api/settings/proxy/route-a4c3bff638878498.js +1 -0
  619. package/app/.next/static/chunks/app/api/settings/proxy/test/route-a4c3bff638878498.js +1 -0
  620. package/app/.next/static/chunks/app/api/settings/require-login/route-a4c3bff638878498.js +1 -0
  621. package/app/.next/static/chunks/app/api/settings/route-a4c3bff638878498.js +1 -0
  622. package/app/.next/static/chunks/app/api/settings/system-prompt/route-a4c3bff638878498.js +1 -0
  623. package/app/.next/static/chunks/app/api/settings/task-routing/route-a4c3bff638878498.js +1 -0
  624. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-a4c3bff638878498.js +1 -0
  625. package/app/.next/static/chunks/app/api/shutdown/route-a4c3bff638878498.js +1 -0
  626. package/app/.next/static/chunks/app/api/storage/health/route-a4c3bff638878498.js +1 -0
  627. package/app/.next/static/chunks/app/api/sync/cloud/route-a4c3bff638878498.js +1 -0
  628. package/app/.next/static/chunks/app/api/sync/initialize/route-a4c3bff638878498.js +1 -0
  629. package/app/.next/static/chunks/app/api/tags/route-a4c3bff638878498.js +1 -0
  630. package/app/.next/static/chunks/app/api/telemetry/summary/route-a4c3bff638878498.js +1 -0
  631. package/app/.next/static/chunks/app/api/token-health/route-a4c3bff638878498.js +1 -0
  632. package/app/.next/static/chunks/app/api/translator/detect/route-a4c3bff638878498.js +1 -0
  633. package/app/.next/static/chunks/app/api/translator/history/route-a4c3bff638878498.js +1 -0
  634. package/app/.next/static/chunks/app/api/translator/load/route-a4c3bff638878498.js +1 -0
  635. package/app/.next/static/chunks/app/api/translator/save/route-a4c3bff638878498.js +1 -0
  636. package/app/.next/static/chunks/app/api/translator/send/route-a4c3bff638878498.js +1 -0
  637. package/app/.next/static/chunks/app/api/translator/translate/route-a4c3bff638878498.js +1 -0
  638. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-a4c3bff638878498.js +1 -0
  639. package/app/.next/static/chunks/app/api/usage/analytics/route-a4c3bff638878498.js +1 -0
  640. package/app/.next/static/chunks/app/api/usage/budget/route-a4c3bff638878498.js +1 -0
  641. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-a4c3bff638878498.js +1 -0
  642. package/app/.next/static/chunks/app/api/usage/call-logs/route-a4c3bff638878498.js +1 -0
  643. package/app/.next/static/chunks/app/api/usage/history/route-a4c3bff638878498.js +1 -0
  644. package/app/.next/static/chunks/app/api/usage/logs/route-a4c3bff638878498.js +1 -0
  645. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-a4c3bff638878498.js +1 -0
  646. package/app/.next/static/chunks/app/api/usage/quota/route-a4c3bff638878498.js +1 -0
  647. package/app/.next/static/chunks/app/api/usage/request-logs/route-a4c3bff638878498.js +1 -0
  648. package/app/.next/static/chunks/app/api/v1/api/chat/route-a4c3bff638878498.js +1 -0
  649. package/app/.next/static/chunks/app/api/v1/audio/speech/route-a4c3bff638878498.js +1 -0
  650. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-a4c3bff638878498.js +1 -0
  651. package/app/.next/static/chunks/app/api/v1/chat/completions/route-a4c3bff638878498.js +1 -0
  652. package/app/.next/static/chunks/app/api/v1/completions/route-a4c3bff638878498.js +1 -0
  653. package/app/.next/static/chunks/app/api/v1/embeddings/route-a4c3bff638878498.js +1 -0
  654. package/app/.next/static/chunks/app/api/v1/images/generations/route-a4c3bff638878498.js +1 -0
  655. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-a4c3bff638878498.js +1 -0
  656. package/app/.next/static/chunks/app/api/v1/messages/route-a4c3bff638878498.js +1 -0
  657. package/app/.next/static/chunks/app/api/v1/models/route-a4c3bff638878498.js +1 -0
  658. package/app/.next/static/chunks/app/api/v1/moderations/route-a4c3bff638878498.js +1 -0
  659. package/app/.next/static/chunks/app/api/v1/music/generations/route-a4c3bff638878498.js +1 -0
  660. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-a4c3bff638878498.js +1 -0
  661. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-a4c3bff638878498.js +1 -0
  662. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-a4c3bff638878498.js +1 -0
  663. package/app/.next/static/chunks/app/api/v1/rerank/route-a4c3bff638878498.js +1 -0
  664. package/app/.next/static/chunks/app/api/v1/responses/route-a4c3bff638878498.js +1 -0
  665. package/app/.next/static/chunks/app/api/v1/route-a4c3bff638878498.js +1 -0
  666. package/app/.next/static/chunks/app/api/v1/videos/generations/route-a4c3bff638878498.js +1 -0
  667. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-a4c3bff638878498.js +1 -0
  668. package/app/.next/static/chunks/app/api/v1beta/models/route-a4c3bff638878498.js +1 -0
  669. package/app/.next/static/chunks/app/landing/{page-75b0c988db383cfc.js → page-8f652c1fbc33efd2.js} +1 -1
  670. package/app/.next/static/chunks/app/page-a4c3bff638878498.js +1 -0
  671. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-a4c3bff638878498.js +1 -0
  672. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-a4c3bff638878498.js +1 -0
  673. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a4c3bff638878498.js +1 -0
  674. package/app/.next/static/css/0a5545f707228079.css +1 -0
  675. package/app/.next/static/vyty8kP9IuZktMt159X9L/_buildManifest.js +1 -0
  676. package/app/package.json +1 -1
  677. package/package.json +1 -1
  678. package/app/.next/server/chunks/2901.js +0 -46
  679. package/app/.next/server/chunks/786.js +0 -135
  680. package/app/.next/server/chunks/9679.js +0 -1
  681. package/app/.next/static/chunks/5846-995a9fadc90d26d3.js +0 -2
  682. package/app/.next/static/chunks/647-27f02a9e225826d5.js +0 -21
  683. package/app/.next/static/chunks/app/(dashboard)/dashboard/agents/page-4ec5a1458c077143.js +0 -1
  684. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-ad968920ad7029fd.js +0 -15
  685. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/page-c92198822ec0da04.js +0 -1
  686. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-95e4b5e0bf023d76.js +0 -1
  687. package/app/.next/static/chunks/app/(dashboard)/dashboard/media/page-07cbc45d62a20735.js +0 -1
  688. package/app/.next/static/chunks/app/(dashboard)/dashboard/page-23797ed1fe047ef7.js +0 -1
  689. package/app/.next/static/chunks/app/(dashboard)/dashboard/playground/page-4c93d045288f7d9e.js +0 -2
  690. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-4fd91743f3ac831d.js +0 -1
  691. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-e3a0a2f5334efeed.js +0 -1
  692. package/app/.next/static/chunks/app/.well-known/agent.json/route-4fd91743f3ac831d.js +0 -1
  693. package/app/.next/static/chunks/app/400/layout-4fd91743f3ac831d.js +0 -1
  694. package/app/.next/static/chunks/app/401/layout-4fd91743f3ac831d.js +0 -1
  695. package/app/.next/static/chunks/app/403/layout-4fd91743f3ac831d.js +0 -1
  696. package/app/.next/static/chunks/app/408/layout-4fd91743f3ac831d.js +0 -1
  697. package/app/.next/static/chunks/app/429/layout-4fd91743f3ac831d.js +0 -1
  698. package/app/.next/static/chunks/app/500/layout-4fd91743f3ac831d.js +0 -1
  699. package/app/.next/static/chunks/app/502/layout-4fd91743f3ac831d.js +0 -1
  700. package/app/.next/static/chunks/app/503/layout-4fd91743f3ac831d.js +0 -1
  701. package/app/.next/static/chunks/app/_global-error/page-4fd91743f3ac831d.js +0 -1
  702. package/app/.next/static/chunks/app/_not-found/page-4fd91743f3ac831d.js +0 -1
  703. package/app/.next/static/chunks/app/a2a/route-4fd91743f3ac831d.js +0 -1
  704. package/app/.next/static/chunks/app/api/a2a/status/route-4fd91743f3ac831d.js +0 -1
  705. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/cancel/route-4fd91743f3ac831d.js +0 -1
  706. package/app/.next/static/chunks/app/api/a2a/tasks/[id]/route-4fd91743f3ac831d.js +0 -1
  707. package/app/.next/static/chunks/app/api/a2a/tasks/route-4fd91743f3ac831d.js +0 -1
  708. package/app/.next/static/chunks/app/api/acp/agents/route-4fd91743f3ac831d.js +0 -1
  709. package/app/.next/static/chunks/app/api/auth/login/route-4fd91743f3ac831d.js +0 -1
  710. package/app/.next/static/chunks/app/api/auth/logout/route-4fd91743f3ac831d.js +0 -1
  711. package/app/.next/static/chunks/app/api/auth/status/route-4fd91743f3ac831d.js +0 -1
  712. package/app/.next/static/chunks/app/api/cache/route-4fd91743f3ac831d.js +0 -1
  713. package/app/.next/static/chunks/app/api/cache/stats/route-4fd91743f3ac831d.js +0 -1
  714. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-4fd91743f3ac831d.js +0 -1
  715. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-4fd91743f3ac831d.js +0 -1
  716. package/app/.next/static/chunks/app/api/cli-tools/backups/route-4fd91743f3ac831d.js +0 -1
  717. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-4fd91743f3ac831d.js +0 -1
  718. package/app/.next/static/chunks/app/api/cli-tools/cline-settings/route-4fd91743f3ac831d.js +0 -1
  719. package/app/.next/static/chunks/app/api/cli-tools/codex-profiles/route-4fd91743f3ac831d.js +0 -1
  720. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-4fd91743f3ac831d.js +0 -1
  721. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-4fd91743f3ac831d.js +0 -1
  722. package/app/.next/static/chunks/app/api/cli-tools/guide-settings/[toolId]/route-4fd91743f3ac831d.js +0 -1
  723. package/app/.next/static/chunks/app/api/cli-tools/kilo-settings/route-4fd91743f3ac831d.js +0 -1
  724. package/app/.next/static/chunks/app/api/cli-tools/openclaw/auto-order/route-4fd91743f3ac831d.js +0 -1
  725. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-4fd91743f3ac831d.js +0 -1
  726. package/app/.next/static/chunks/app/api/cli-tools/runtime/[toolId]/route-4fd91743f3ac831d.js +0 -1
  727. package/app/.next/static/chunks/app/api/cli-tools/status/route-4fd91743f3ac831d.js +0 -1
  728. package/app/.next/static/chunks/app/api/cloud/auth/route-4fd91743f3ac831d.js +0 -1
  729. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-4fd91743f3ac831d.js +0 -1
  730. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-4fd91743f3ac831d.js +0 -1
  731. package/app/.next/static/chunks/app/api/cloud/models/alias/route-4fd91743f3ac831d.js +0 -1
  732. package/app/.next/static/chunks/app/api/combos/[id]/route-4fd91743f3ac831d.js +0 -1
  733. package/app/.next/static/chunks/app/api/combos/auto/route-4fd91743f3ac831d.js +0 -1
  734. package/app/.next/static/chunks/app/api/combos/metrics/route-4fd91743f3ac831d.js +0 -1
  735. package/app/.next/static/chunks/app/api/combos/route-4fd91743f3ac831d.js +0 -1
  736. package/app/.next/static/chunks/app/api/combos/test/route-4fd91743f3ac831d.js +0 -1
  737. package/app/.next/static/chunks/app/api/compliance/audit-log/route-4fd91743f3ac831d.js +0 -1
  738. package/app/.next/static/chunks/app/api/db-backups/export/route-4fd91743f3ac831d.js +0 -1
  739. package/app/.next/static/chunks/app/api/db-backups/exportAll/route-4fd91743f3ac831d.js +0 -1
  740. package/app/.next/static/chunks/app/api/db-backups/import/route-4fd91743f3ac831d.js +0 -1
  741. package/app/.next/static/chunks/app/api/db-backups/route-4fd91743f3ac831d.js +0 -1
  742. package/app/.next/static/chunks/app/api/evals/[suiteId]/route-4fd91743f3ac831d.js +0 -1
  743. package/app/.next/static/chunks/app/api/evals/route-4fd91743f3ac831d.js +0 -1
  744. package/app/.next/static/chunks/app/api/fallback/chains/route-4fd91743f3ac831d.js +0 -1
  745. package/app/.next/static/chunks/app/api/init/route-4fd91743f3ac831d.js +0 -1
  746. package/app/.next/static/chunks/app/api/keys/[id]/route-4fd91743f3ac831d.js +0 -1
  747. package/app/.next/static/chunks/app/api/keys/route-4fd91743f3ac831d.js +0 -1
  748. package/app/.next/static/chunks/app/api/logs/console/route-4fd91743f3ac831d.js +0 -1
  749. package/app/.next/static/chunks/app/api/mcp/audit/route-4fd91743f3ac831d.js +0 -1
  750. package/app/.next/static/chunks/app/api/mcp/audit/stats/route-4fd91743f3ac831d.js +0 -1
  751. package/app/.next/static/chunks/app/api/mcp/sse/route-4fd91743f3ac831d.js +0 -1
  752. package/app/.next/static/chunks/app/api/mcp/status/route-4fd91743f3ac831d.js +0 -1
  753. package/app/.next/static/chunks/app/api/mcp/stream/route-4fd91743f3ac831d.js +0 -1
  754. package/app/.next/static/chunks/app/api/mcp/tools/route-4fd91743f3ac831d.js +0 -1
  755. package/app/.next/static/chunks/app/api/models/alias/route-4fd91743f3ac831d.js +0 -1
  756. package/app/.next/static/chunks/app/api/models/availability/route-4fd91743f3ac831d.js +0 -1
  757. package/app/.next/static/chunks/app/api/models/catalog/route-4fd91743f3ac831d.js +0 -1
  758. package/app/.next/static/chunks/app/api/models/openrouter-catalog/route-4fd91743f3ac831d.js +0 -1
  759. package/app/.next/static/chunks/app/api/models/route-4fd91743f3ac831d.js +0 -1
  760. package/app/.next/static/chunks/app/api/monitoring/health/route-4fd91743f3ac831d.js +0 -1
  761. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-4fd91743f3ac831d.js +0 -1
  762. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-4fd91743f3ac831d.js +0 -1
  763. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-4fd91743f3ac831d.js +0 -1
  764. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-4fd91743f3ac831d.js +0 -1
  765. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-4fd91743f3ac831d.js +0 -1
  766. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-4fd91743f3ac831d.js +0 -1
  767. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-4fd91743f3ac831d.js +0 -1
  768. package/app/.next/static/chunks/app/api/policies/route-4fd91743f3ac831d.js +0 -1
  769. package/app/.next/static/chunks/app/api/pricing/defaults/route-4fd91743f3ac831d.js +0 -1
  770. package/app/.next/static/chunks/app/api/pricing/models/route-4fd91743f3ac831d.js +0 -1
  771. package/app/.next/static/chunks/app/api/pricing/route-4fd91743f3ac831d.js +0 -1
  772. package/app/.next/static/chunks/app/api/provider-metrics/route-4fd91743f3ac831d.js +0 -1
  773. package/app/.next/static/chunks/app/api/provider-models/route-4fd91743f3ac831d.js +0 -1
  774. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-4fd91743f3ac831d.js +0 -1
  775. package/app/.next/static/chunks/app/api/provider-nodes/route-4fd91743f3ac831d.js +0 -1
  776. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-4fd91743f3ac831d.js +0 -1
  777. package/app/.next/static/chunks/app/api/providers/[id]/models/route-4fd91743f3ac831d.js +0 -1
  778. package/app/.next/static/chunks/app/api/providers/[id]/route-4fd91743f3ac831d.js +0 -1
  779. package/app/.next/static/chunks/app/api/providers/[id]/test/route-4fd91743f3ac831d.js +0 -1
  780. package/app/.next/static/chunks/app/api/providers/client/route-4fd91743f3ac831d.js +0 -1
  781. package/app/.next/static/chunks/app/api/providers/route-4fd91743f3ac831d.js +0 -1
  782. package/app/.next/static/chunks/app/api/providers/test-batch/route-4fd91743f3ac831d.js +0 -1
  783. package/app/.next/static/chunks/app/api/providers/validate/route-4fd91743f3ac831d.js +0 -1
  784. package/app/.next/static/chunks/app/api/rate-limit/route-4fd91743f3ac831d.js +0 -1
  785. package/app/.next/static/chunks/app/api/rate-limits/route-4fd91743f3ac831d.js +0 -1
  786. package/app/.next/static/chunks/app/api/resilience/reset/route-4fd91743f3ac831d.js +0 -1
  787. package/app/.next/static/chunks/app/api/resilience/route-4fd91743f3ac831d.js +0 -1
  788. package/app/.next/static/chunks/app/api/restart/route-4fd91743f3ac831d.js +0 -1
  789. package/app/.next/static/chunks/app/api/sessions/route-4fd91743f3ac831d.js +0 -1
  790. package/app/.next/static/chunks/app/api/settings/background-degradation/route-4fd91743f3ac831d.js +0 -1
  791. package/app/.next/static/chunks/app/api/settings/combo-defaults/route-4fd91743f3ac831d.js +0 -1
  792. package/app/.next/static/chunks/app/api/settings/ip-filter/route-4fd91743f3ac831d.js +0 -1
  793. package/app/.next/static/chunks/app/api/settings/model-aliases/route-4fd91743f3ac831d.js +0 -1
  794. package/app/.next/static/chunks/app/api/settings/proxy/route-4fd91743f3ac831d.js +0 -1
  795. package/app/.next/static/chunks/app/api/settings/proxy/test/route-4fd91743f3ac831d.js +0 -1
  796. package/app/.next/static/chunks/app/api/settings/require-login/route-4fd91743f3ac831d.js +0 -1
  797. package/app/.next/static/chunks/app/api/settings/route-4fd91743f3ac831d.js +0 -1
  798. package/app/.next/static/chunks/app/api/settings/system-prompt/route-4fd91743f3ac831d.js +0 -1
  799. package/app/.next/static/chunks/app/api/settings/thinking-budget/route-4fd91743f3ac831d.js +0 -1
  800. package/app/.next/static/chunks/app/api/shutdown/route-4fd91743f3ac831d.js +0 -1
  801. package/app/.next/static/chunks/app/api/storage/health/route-4fd91743f3ac831d.js +0 -1
  802. package/app/.next/static/chunks/app/api/sync/cloud/route-4fd91743f3ac831d.js +0 -1
  803. package/app/.next/static/chunks/app/api/sync/initialize/route-4fd91743f3ac831d.js +0 -1
  804. package/app/.next/static/chunks/app/api/tags/route-4fd91743f3ac831d.js +0 -1
  805. package/app/.next/static/chunks/app/api/telemetry/summary/route-4fd91743f3ac831d.js +0 -1
  806. package/app/.next/static/chunks/app/api/token-health/route-4fd91743f3ac831d.js +0 -1
  807. package/app/.next/static/chunks/app/api/translator/detect/route-4fd91743f3ac831d.js +0 -1
  808. package/app/.next/static/chunks/app/api/translator/history/route-4fd91743f3ac831d.js +0 -1
  809. package/app/.next/static/chunks/app/api/translator/load/route-4fd91743f3ac831d.js +0 -1
  810. package/app/.next/static/chunks/app/api/translator/save/route-4fd91743f3ac831d.js +0 -1
  811. package/app/.next/static/chunks/app/api/translator/send/route-4fd91743f3ac831d.js +0 -1
  812. package/app/.next/static/chunks/app/api/translator/translate/route-4fd91743f3ac831d.js +0 -1
  813. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-4fd91743f3ac831d.js +0 -1
  814. package/app/.next/static/chunks/app/api/usage/analytics/route-4fd91743f3ac831d.js +0 -1
  815. package/app/.next/static/chunks/app/api/usage/budget/route-4fd91743f3ac831d.js +0 -1
  816. package/app/.next/static/chunks/app/api/usage/call-logs/[id]/route-4fd91743f3ac831d.js +0 -1
  817. package/app/.next/static/chunks/app/api/usage/call-logs/route-4fd91743f3ac831d.js +0 -1
  818. package/app/.next/static/chunks/app/api/usage/history/route-4fd91743f3ac831d.js +0 -1
  819. package/app/.next/static/chunks/app/api/usage/logs/route-4fd91743f3ac831d.js +0 -1
  820. package/app/.next/static/chunks/app/api/usage/proxy-logs/route-4fd91743f3ac831d.js +0 -1
  821. package/app/.next/static/chunks/app/api/usage/quota/route-4fd91743f3ac831d.js +0 -1
  822. package/app/.next/static/chunks/app/api/usage/request-logs/route-4fd91743f3ac831d.js +0 -1
  823. package/app/.next/static/chunks/app/api/v1/api/chat/route-4fd91743f3ac831d.js +0 -1
  824. package/app/.next/static/chunks/app/api/v1/audio/speech/route-4fd91743f3ac831d.js +0 -1
  825. package/app/.next/static/chunks/app/api/v1/audio/transcriptions/route-4fd91743f3ac831d.js +0 -1
  826. package/app/.next/static/chunks/app/api/v1/chat/completions/route-4fd91743f3ac831d.js +0 -1
  827. package/app/.next/static/chunks/app/api/v1/completions/route-4fd91743f3ac831d.js +0 -1
  828. package/app/.next/static/chunks/app/api/v1/embeddings/route-4fd91743f3ac831d.js +0 -1
  829. package/app/.next/static/chunks/app/api/v1/images/generations/route-4fd91743f3ac831d.js +0 -1
  830. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-4fd91743f3ac831d.js +0 -1
  831. package/app/.next/static/chunks/app/api/v1/messages/route-4fd91743f3ac831d.js +0 -1
  832. package/app/.next/static/chunks/app/api/v1/models/route-4fd91743f3ac831d.js +0 -1
  833. package/app/.next/static/chunks/app/api/v1/moderations/route-4fd91743f3ac831d.js +0 -1
  834. package/app/.next/static/chunks/app/api/v1/music/generations/route-4fd91743f3ac831d.js +0 -1
  835. package/app/.next/static/chunks/app/api/v1/providers/[provider]/chat/completions/route-4fd91743f3ac831d.js +0 -1
  836. package/app/.next/static/chunks/app/api/v1/providers/[provider]/embeddings/route-4fd91743f3ac831d.js +0 -1
  837. package/app/.next/static/chunks/app/api/v1/providers/[provider]/images/generations/route-4fd91743f3ac831d.js +0 -1
  838. package/app/.next/static/chunks/app/api/v1/rerank/route-4fd91743f3ac831d.js +0 -1
  839. package/app/.next/static/chunks/app/api/v1/responses/route-4fd91743f3ac831d.js +0 -1
  840. package/app/.next/static/chunks/app/api/v1/route-4fd91743f3ac831d.js +0 -1
  841. package/app/.next/static/chunks/app/api/v1/videos/generations/route-4fd91743f3ac831d.js +0 -1
  842. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-4fd91743f3ac831d.js +0 -1
  843. package/app/.next/static/chunks/app/api/v1beta/models/route-4fd91743f3ac831d.js +0 -1
  844. package/app/.next/static/chunks/app/page-4fd91743f3ac831d.js +0 -1
  845. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-4fd91743f3ac831d.js +0 -1
  846. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-4fd91743f3ac831d.js +0 -1
  847. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-4fd91743f3ac831d.js +0 -1
  848. package/app/.next/static/css/f8997b4d505d4a63.css +0 -1
  849. package/app/.next/static/ig97FitGiiNqfOhrQUGzh/_buildManifest.js +0 -1
  850. /package/app/.next/static/{ig97FitGiiNqfOhrQUGzh → vyty8kP9IuZktMt159X9L}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=2391,exports.ids=[2391,4755],exports.modules={34013:(a,b,c)=>{c.d(b,{Ay:()=>A});var d=c(55511),e=null;function f(a,b){if("number"!=typeof(a=a||r))throw Error("Illegal arguments: "+typeof a+", "+typeof b);a<4?a=4:a>31&&(a=31);var c=[];return c.push("$2b$"),a<10&&c.push("0"),c.push(a.toString()),c.push("$"),c.push(o(function(a){try{return crypto.getRandomValues(new Uint8Array(a))}catch{}try{return d.randomBytes(a)}catch{}if(!e)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return e(a)}(q),q)),c.join("")}function g(a,b,c){if("function"==typeof b&&(c=b,b=void 0),"function"==typeof a&&(c=a,a=void 0),void 0===a)a=r;else if("number"!=typeof a)throw Error("illegal arguments: "+typeof a);function d(b){k(function(){try{b(null,f(a))}catch(a){b(a)}})}if(!c)return new Promise(function(a,b){d(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);d(c)}function h(a,b){if(void 0===b&&(b=r),"number"==typeof b&&(b=f(b)),"string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return z(a,b)}function i(a,b,c,d){function e(c){"string"==typeof a&&"number"==typeof b?g(b,function(b,e){z(a,e,c,d)}):"string"==typeof a&&"string"==typeof b?z(a,b,c,d):k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b)))}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)}function j(a,b){for(var c=a.length^b.length,d=0;d<a.length;++d)c|=a.charCodeAt(d)^b.charCodeAt(d);return 0===c}var k="function"==typeof setImmediate?setImmediate:"object"==typeof scheduler&&"function"==typeof scheduler.postTask?scheduler.postTask.bind(scheduler):setTimeout;function l(a){for(var b=0,c=0,d=0;d<a.length;++d)(c=a.charCodeAt(d))<128?b+=1:c<2048?b+=2:(64512&c)==55296&&(64512&a.charCodeAt(d+1))==56320?(++d,b+=4):b+=3;return b}var m="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),n=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1];function o(a,b){var c,d,e=0,f=[];if(b<=0||b>a.length)throw Error("Illegal len: "+b);for(;e<b;){if(c=255&a[e++],f.push(m[c>>2&63]),c=(3&c)<<4,e>=b||(c|=(d=255&a[e++])>>4&15,f.push(m[63&c]),c=(15&d)<<2,e>=b)){f.push(m[63&c]);break}c|=(d=255&a[e++])>>6&3,f.push(m[63&c]),f.push(m[63&d])}return f.join("")}function p(a,b){var c,d,e,f,g,h=0,i=a.length,j=0,k=[];if(b<=0)throw Error("Illegal len: "+b);for(;h<i-1&&j<b&&(c=(g=a.charCodeAt(h++))<n.length?n[g]:-1,d=(g=a.charCodeAt(h++))<n.length?n[g]:-1,-1!=c&&-1!=d)&&(f=c<<2>>>0|(48&d)>>4,k.push(String.fromCharCode(f)),!(++j>=b||h>=i||-1==(e=(g=a.charCodeAt(h++))<n.length?n[g]:-1)||(f=(15&d)<<4>>>0|(60&e)>>2,k.push(String.fromCharCode(f)),++j>=b||h>=i)));){;f=(3&e)<<6>>>0|((g=a.charCodeAt(h++))<n.length?n[g]:-1),k.push(String.fromCharCode(f)),++j}var l=[];for(h=0;h<j;h++)l.push(k[h].charCodeAt(0));return l}var q=16,r=10,s=[0x243f6a88,0x85a308d3,0x13198a2e,0x3707344,0xa4093822,0x299f31d0,0x82efa98,0xec4e6c89,0x452821e6,0x38d01377,0xbe5466cf,0x34e90c6c,0xc0ac29b7,0xc97c50dd,0x3f84d5b5,0xb5470917,0x9216d5d9,0x8979fb1b],t=[0xd1310ba6,0x98dfb5ac,0x2ffd72db,0xd01adfb7,0xb8e1afed,0x6a267e96,0xba7c9045,0xf12c7f99,0x24a19947,0xb3916cf7,0x801f2e2,0x858efc16,0x636920d8,0x71574e69,0xa458fea3,0xf4933d7e,0xd95748f,0x728eb658,0x718bcd58,0x82154aee,0x7b54a41d,0xc25a59b5,0x9c30d539,0x2af26013,0xc5d1b023,0x286085f0,0xca417918,0xb8db38ef,0x8e79dcb0,0x603a180e,0x6c9e0e8b,0xb01e8a3e,0xd71577c1,0xbd314b27,0x78af2fda,0x55605c60,0xe65525f3,0xaa55ab94,0x57489862,0x63e81440,0x55ca396a,0x2aab10b6,0xb4cc5c34,0x1141e8ce,0xa15486af,0x7c72e993,0xb3ee1411,0x636fbc2a,0x2ba9c55d,0x741831f6,0xce5c3e16,0x9b87931e,0xafd6ba33,0x6c24cf5c,0x7a325381,0x28958677,0x3b8f4898,0x6b4bb9af,0xc4bfe81b,0x66282193,0x61d809cc,0xfb21a991,0x487cac60,0x5dec8032,0xef845d5d,0xe98575b1,0xdc262302,0xeb651b88,0x23893e81,0xd396acc5,0xf6d6ff3,0x83f44239,0x2e0b4482,0xa4842004,0x69c8f04a,0x9e1f9b5e,0x21c66842,0xf6e96c9a,0x670c9c61,0xabd388f0,0x6a51a0d2,0xd8542f68,0x960fa728,0xab5133a3,0x6eef0b6c,0x137a3be4,0xba3bf050,0x7efb2a98,0xa1f1651d,0x39af0176,0x66ca593e,0x82430e88,0x8cee8619,0x456f9fb4,0x7d84a5c3,0x3b8b5ebe,0xe06f75d8,0x85c12073,0x401a449f,0x56c16aa6,0x4ed3aa62,0x363f7706,0x1bfedf72,0x429b023d,0x37d0d724,0xd00a1248,0xdb0fead3,0x49f1c09b,0x75372c9,0x80991b7b,0x25d479d8,0xf6e8def7,0xe3fe501a,0xb6794c3b,0x976ce0bd,0x4c006ba,0xc1a94fb6,0x409f60c4,0x5e5c9ec2,0x196a2463,0x68fb6faf,0x3e6c53b5,0x1339b2eb,0x3b52ec6f,0x6dfc511f,0x9b30952c,0xcc814544,0xaf5ebd09,0xbee3d004,0xde334afd,0x660f2807,0x192e4bb3,0xc0cba857,0x45c8740f,0xd20b5f39,0xb9d3fbdb,0x5579c0bd,0x1a60320a,0xd6a100c6,0x402c7279,0x679f25fe,0xfb1fa3cc,0x8ea5e9f8,0xdb3222f8,0x3c7516df,0xfd616b15,0x2f501ec8,0xad0552ab,0x323db5fa,0xfd238760,0x53317b48,0x3e00df82,0x9e5c57bb,0xca6f8ca0,0x1a87562e,0xdf1769db,0xd542a8f6,0x287effc3,0xac6732c6,0x8c4f5573,0x695b27b0,0xbbca58c8,0xe1ffa35d,0xb8f011a0,0x10fa3d98,0xfd2183b8,0x4afcb56c,0x2dd1d35b,0x9a53e479,0xb6f84565,0xd28e49bc,0x4bfb9790,0xe1ddf2da,0xa4cb7e33,0x62fb1341,0xcee4c6e8,0xef20cada,0x36774c01,0xd07e9efe,0x2bf11fb4,0x95dbda4d,0xae909198,0xeaad8e71,0x6b93d5a0,0xd08ed1d0,0xafc725e0,0x8e3c5b2f,0x8e7594b7,0x8ff6e2fb,0xf2122b64,0x8888b812,0x900df01c,0x4fad5ea0,0x688fc31c,0xd1cff191,0xb3a8c1ad,0x2f2f2218,0xbe0e1777,0xea752dfe,0x8b021fa1,0xe5a0cc0f,0xb56f74e8,0x18acf3d6,0xce89e299,0xb4a84fe0,0xfd13e0b7,0x7cc43b81,0xd2ada8d9,0x165fa266,0x80957705,0x93cc7314,0x211a1477,0xe6ad2065,0x77b5fa86,0xc75442f5,0xfb9d35cf,0xebcdaf0c,0x7b3e89a0,0xd6411bd3,0xae1e7e49,2428461,0x2071b35e,0x226800bb,0x57b8e0af,0x2464369b,0xf009b91e,0x5563911d,0x59dfa6aa,0x78c14389,0xd95a537f,0x207d5ba2,0x2e5b9c5,0x83260376,0x6295cfa9,0x11c81968,0x4e734a41,0xb3472dca,0x7b14a94a,0x1b510052,0x9a532915,0xd60f573f,0xbc9bc6e4,0x2b60a476,0x81e67400,0x8ba6fb5,0x571be91f,0xf296ec6b,0x2a0dd915,0xb6636521,0xe7b9f9b6,0xff34052e,0xc5855664,0x53b02d5d,0xa99f8fa1,0x8ba4799,0x6e85076a,0x4b7a70e9,0xb5b32944,0xdb75092e,0xc4192623,290971e4,0x49a7df7d,0x9cee60b8,0x8fedb266,0xecaa8c71,0x699a17ff,0x5664526c,0xc2b19ee1,0x193602a5,0x75094c29,0xa0591340,0xe4183a3e,0x3f54989a,0x5b429d65,0x6b8fe4d6,0x99f73fd6,0xa1d29c07,0xefe830f5,0x4d2d38e6,0xf0255dc1,0x4cdd2086,0x8470eb26,0x6382e9c6,0x21ecc5e,0x9686b3f,0x3ebaefc9,0x3c971814,0x6b6a70a1,0x687f3584,0x52a0e286,0xb79c5305,0xaa500737,0x3e07841c,0x7fdeae5c,0x8e7d44ec,0x5716f2b8,0xb03ada37,0xf0500c0d,0xf01c1f04,0x200b3ff,0xae0cf51a,0x3cb574b2,0x25837a58,0xdc0921bd,0xd19113f9,0x7ca92ff6,0x94324773,0x22f54701,0x3ae5e581,0x37c2dadc,0xc8b57634,0x9af3dda7,0xa9446146,0xfd0030e,0xecc8c73e,0xa4751e41,0xe238cd99,0x3bea0e2f,0x3280bba1,0x183eb331,0x4e548b38,0x4f6db908,0x6f420d03,0xf60a04bf,0x2cb81290,0x24977c79,0x5679b072,0xbcaf89af,0xde9a771f,0xd9930810,0xb38bae12,0xdccf3f2e,0x5512721f,0x2e6b7124,0x501adde6,0x9f84cd87,0x7a584718,0x7408da17,0xbc9f9abc,0xe94b7d8c,0xec7aec3a,0xdb851dfa,0x63094366,0xc464c3d2,0xef1c1847,0x3215d908,0xdd433b37,0x24c2ba16,0x12a14d43,0x2a65c451,0x50940002,0x133ae4dd,0x71dff89e,0x10314e55,0x81ac77d6,0x5f11199b,0x43556f1,0xd7a3c76b,0x3c11183b,0x5924a509,0xf28fe6ed,0x97f1fbfa,0x9ebabf2c,0x1e153c6e,0x86e34570,0xeae96fb1,0x860e5e0a,0x5a3e2ab3,0x771fe71c,0x4e3d06fa,0x2965dcb9,0x99e71d0f,0x803e89d6,0x5266c825,0x2e4cc978,0x9c10b36a,0xc6150eba,0x94e2ea78,0xa5fc3c53,0x1e0a2df4,0xf2f74ea7,0x361d2b3d,0x1939260f,0x19c27960,0x5223a708,0xf71312b6,0xebadfe6e,0xeac31f66,0xe3bc4595,0xa67bc883,0xb17f37d1,0x18cff28,0xc332ddef,0xbe6c5aa5,0x65582185,0x68ab9802,0xeecea50f,0xdb2f953b,0x2aef7dad,0x5b6e2f84,0x1521b628,0x29076170,0xecdd4775,0x619f1510,0x13cca830,0xeb61bd96,0x334fe1e,0xaa0363cf,0xb5735c90,0x4c70a239,0xd59e9e0b,0xcbaade14,0xeecc86bc,0x60622ca7,0x9cab5cab,0xb2f3846e,0x648b1eaf,0x19bdf0ca,0xa02369b9,0x655abb50,0x40685a32,0x3c2ab4b3,0x319ee9d5,0xc021b8f7,0x9b540b19,0x875fa099,0x95f7997e,0x623d7da8,0xf837889a,0x97e32d77,0x11ed935f,0x16681281,0xe358829,0xc7e61fd6,0x96dedfa1,0x7858ba99,0x57f584a5,0x1b227263,0x9b83c3ff,0x1ac24696,0xcdb30aeb,0x532e3054,0x8fd948e4,0x6dbc3128,0x58ebf2ef,0x34c6ffea,0xfe28ed61,0xee7c3c73,0x5d4a14d9,0xe864b7e3,0x42105d14,0x203e13e0,0x45eee2b6,0xa3aaabea,0xdb6c4f15,0xfacb4fd0,0xc742f442,0xef6abbb5,0x654f3b1d,0x41cd2105,0xd81e799e,0x86854dc7,0xe44b476a,0x3d816250,0xcf62a1f2,0x5b8d2646,0xfc8883a0,0xc1c7b6a3,0x7f1524c3,0x69cb7492,0x47848a0b,0x5692b285,0x95bbf00,0xad19489d,0x1462b174,0x23820e00,0x58428d2a,0xc55f5ea,0x1dadf43e,0x233f7061,0x3372f092,0x8d937e41,0xd65fecf1,0x6c223bdb,0x7cde3759,0xcbee7460,0x4085f2a7,0xce77326e,0xa6078084,0x19f8509e,0xe8efd855,0x61d99735,0xa969a7aa,0xc50c06c2,0x5a04abfc,0x800bcadc,0x9e447a2e,0xc3453484,0xfdd56705,0xe1e9ec9,0xdb73dbd3,0x105588cd,0x675fda79,0xe3674340,0xc5c43465,0x713e38d8,0x3d28f89e,0xf16dff20,0x153e21e7,0x8fb03d4a,0xe6e39f2b,0xdb83adf7,0xe93d5a68,0x948140f7,0xf64c261c,0x94692934,0x411520f7,0x7602d4f7,0xbcf46b2e,0xd4a20068,0xd4082471,0x3320f46a,0x43b7d4b7,0x500061af,0x1e39f62e,0x97244546,0x14214f74,0xbf8b8840,0x4d95fc1d,0x96b591af,0x70f4ddd3,0x66a02f45,0xbfbc09ec,0x3bd9785,0x7fac6dd0,0x31cb8504,0x96eb27b3,0x55fd3941,0xda2547e6,0xabca0a9a,0x28507825,0x530429f4,0xa2c86da,0xe9b66dfb,0x68dc1462,0xd7486900,0x680ec0a4,0x27a18dee,0x4f3ffea2,0xe887ad8c,0xb58ce006,0x7af4d6b6,0xaace1e7c,0xd3375fec,0xce78a399,0x406b2a42,0x20fe9e35,0xd9f385b9,0xee39d7ab,0x3b124e8b,0x1dc9faf7,0x4b6d1856,0x26a36631,0xeae397b2,0x3a6efa74,0xdd5b4332,0x6841e7f7,0xca7820fb,0xfb0af54e,0xd8feb397,0x454056ac,0xba489527,0x55533a3a,0x20838d87,0xfe6ba9b7,0xd096954b,0x55a867bc,0xa1159a58,0xcca92963,0x99e1db33,0xa62a4a56,0x3f3125f9,0x5ef47e1c,0x9029317c,0xfdf8e802,0x4272f70,0x80bb155c,0x5282ce3,0x95c11548,0xe4c66d22,0x48c1133f,0xc70f86dc,0x7f9c9ee,0x41041f0f,0x404779a4,0x5d886e17,0x325f51eb,0xd59bc0d1,0xf2bcc18f,0x41113564,0x257b7834,0x602a9c60,0xdff8e8a3,0x1f636c1b,0xe12b4c2,0x2e1329e,0xaf664fd1,0xcad18115,0x6b2395e0,0x333e92e1,0x3b240b62,0xeebeb922,0x85b2a20e,0xe6ba0d99,0xde720c8c,0x2da2f728,0xd0127845,0x95b794fd,0x647d0862,0xe7ccf5f0,0x5449a36f,0x877d48fa,0xc39dfd27,0xf33e8d1e,0xa476341,0x992eff74,0x3a6f6eab,0xf4f8fd37,0xa812dc60,0xa1ebddf8,0x991be14c,0xdb6e6b0d,0xc67b5510,0x6d672c37,0x2765d43b,0xdcd0e804,0xf1290dc7,0xcc00ffa3,0xb5390f92,0x690fed0b,0x667b9ffb,0xcedb7d9c,0xa091cf0b,0xd9155ea3,0xbb132f88,0x515bad24,0x7b9479bf,0x763bd6eb,0x37392eb3,0xcc115979,0x8026e297,0xf42e312d,0x6842ada7,0xc66a2b3b,0x12754ccc,0x782ef11c,0x6a124237,0xb79251e7,0x6a1bbe6,0x4bfb6350,0x1a6b1018,0x11caedfa,0x3d25bdd8,0xe2e1c3c9,0x44421659,0xa121386,0xd90cec6e,0xd5abea2a,0x64af674e,0xda86a85f,0xbebfe988,0x64e4c3fe,0x9dbc8057,0xf0f7c086,0x60787bf8,0x6003604d,0xd1fd8346,0xf6381fb0,0x7745ae04,0xd736fccc,0x83426b33,0xf01eab71,0xb0804187,0x3c005e5f,0x77a057be,0xbde8ae24,0x55464299,0xbf582e61,0x4e58f48f,0xf2ddfda2,0xf474ef38,0x8789bdc2,0x5366f9c3,0xc8b38e74,0xb475f255,0x46fcd9b9,0x7aeb2661,0x8b1ddf84,0x846a0e79,0x915f95e2,0x466e598e,0x20b45770,0x8cd55591,0xc902de4c,0xb90bace1,0xbb8205d0,0x11a86248,0x7574a99e,0xb77f19b6,0xe0a9dc09,0x662d09a1,0xc4324633,0xe85a1f02,0x9f0be8c,0x4a99a025,0x1d6efe10,0x1ab93d1d,0xba5a4df,0xa186f20f,0x2868f169,0xdcb7da83,0x573906fe,0xa1e2ce9b,0x4fcd7f52,0x50115e01,0xa70683fa,0xa002b5c4,0xde6d027,0x9af88c27,0x773f8641,0xc3604c06,0x61a806b5,0xf0177a28,0xc0f586e0,6314154,0x30dc7d62,0x11e69ed7,0x2338ea63,0x53c2dd94,0xc2c21634,0xbbcbee56,0x90bcb6de,0xebfc7da1,0xce591d76,0x6f05e409,0x4b7c0188,0x39720a3d,0x7c927c24,0x86e3725f,0x724d9db9,0x1ac15bb4,0xd39eb8fc,0xed545578,0x8fca5b5,0xd83d7cd3,0x4dad0fc4,0x1e50ef5e,0xb161e6f8,0xa28514d9,0x6c51133c,0x6fd5c7e7,0x56e14ec4,0x362abfce,0xddc6c837,0xd79a3234,0x92638212,0x670efa8e,0x406000e0,0x3a39ce37,0xd3faf5cf,0xabc27737,0x5ac52d1b,0x5cb0679e,0x4fa33742,0xd3822740,0x99bc9bbe,0xd5118e9d,0xbf0f7315,0xd62d1c7e,0xc700c47b,0xb78c1b6b,0x21a19045,0xb26eb1be,0x6a366eb4,0x5748ab2f,0xbc946e79,0xc6a376d2,0x6549c2c8,0x530ff8ee,0x468dde7d,0xd5730a1d,0x4cd04dc6,0x2939bbdb,0xa9ba4650,0xac9526e8,0xbe5ee304,0xa1fad5f0,0x6a2d519a,0x63ef8ce2,0x9a86ee22,0xc089c2b8,0x43242ef6,0xa51e03aa,0x9cf2d0a4,0x83c061ba,0x9be96a4d,0x8fe51550,0xba645bd6,0x2826a2f9,0xa73a3ae1,0x4ba99586,0xef5562e9,0xc72fefd3,0xf752f7da,0x3f046f69,0x77fa0a59,0x80e4a915,0x87b08601,0x9b09e6ad,0x3b3ee593,0xe990fd5a,0x9e34d797,0x2cf0b7d9,0x22b8b51,0x96d5ac3a,0x17da67d,0xd1cf3ed6,0x7c7d2d28,0x1f9f25cf,0xadf2b89b,0x5ad6b472,0x5a88f54c,0xe029ac71,0xe019a5e6,0x47b0acfd,0xed93fa9b,0xe8d3c48d,0x283b57cc,0xf8d56629,0x79132e28,0x785f0191,0xed756055,0xf7960e44,0xe3d35e8c,0x15056dd4,0x88f46dba,0x3a16125,0x564f0bd,0xc3eb9e15,0x3c9057a2,0x97271aec,0xa93a072a,0x1b3f6d9b,0x1e6321f5,0xf59c66fb,0x26dcf319,0x7533d928,0xb155fdf5,0x3563482,0x8aba3cbb,0x28517711,0xc20ad9f8,0xabcc5167,0xccad925f,0x4de81751,0x3830dc8e,0x379d5862,0x9320f991,0xea7a90c2,0xfb3e7bce,0x5121ce64,0x774fbe32,0xa8b6e37e,0xc3293d46,0x48de5369,0x6413e680,0xa2ae0810,0xdd6db224,0x69852dfd,0x9072166,0xb39a460a,0x6445c0dd,0x586cdecf,0x1c20c8ae,0x5bbef7dd,0x1b588d40,0xccd2017f,0x6bb4e3bb,0xdda26a7e,0x3a59ff45,0x3e350a44,0xbcb4cdd5,0x72eacea8,0xfa6484bb,0x8d6612ae,0xbf3c6f47,0xd29be463,0x542f5d9e,0xaec2771b,0xf64e6370,0x740e0d8d,0xe75b1357,0xf8721671,0xaf537d5d,0x4040cb08,0x4eb4e2cc,0x34d2466a,0x115af84,3786409e3,0x95983a1d,0x6b89fb4,0xce6ea048,0x6f3f3b82,0x3520ab82,0x11a1d4b,0x277227f8,0x611560b1,0xe7933fdc,0xbb3a792b,0x344525bd,0xa08839e1,0x51ce794b,0x2f32c9b7,0xa01fbac9,0xe01cc87e,0xbcc7d1f6,0xcf0111c3,0xa1e8aac7,0x1a908749,0xd44fbd9a,0xd0dadecb,0xd50ada38,0x339c32a,0xc6913667,0x8df9317c,0xe0b12b4f,0xf79e59b7,0x43f5bb3a,0xf2d519ff,0x27d9459c,0xbf97222c,0x15e6fc2a,0xf91fc71,0x9b941525,0xfae59361,0xceb69ceb,0xc2a86459,0x12baa8d1,0xb6c1075e,0xe3056a0c,0x10d25065,0xcb03a442,0xe0ec6e0e,0x1698db3b,0x4c98a0be,0x3278e964,0x9f1f9532,0xe0d392df,0xd3a0342b,0x8971f21e,0x1b0a7441,0x4ba3348c,0xc5be7120,0xc37632d8,0xdf359f8d,0x9b992f2e,0xe60b6f47,0xfe3f11d,0xe54cda54,0x1edad891,0xce6279cf,0xcd3e7e6f,0x1618b166,0xfd2c1d05,0x848fd2c5,0xf6fb2299,0xf523f357,0xa6327623,0x93a83531,0x56cccd02,0xacf08162,0x5a75ebb5,0x6e163697,0x88d273cc,0xde966292,0x81b949d0,0x4c50901b,0x71c65614,0xe6c6c7bd,0x327a140a,0x45e1d006,0xc3f27b9a,0xc9aa53fd,0x62a80f00,0xbb25bfe2,0x35bdd2f6,0x71126905,0xb2040222,0xb6cbcf7c,0xcd769c2b,0x53113ec0,0x1640e3d3,0x38abbd60,0x2547adf0,0xba38209c,0xf746ce76,0x77afa1c5,0x20756060,0x85cbfe4e,0x8ae88dd8,0x7aaaf9b0,0x4cf9aa7e,0x1948c25c,0x2fb8a8c,0x1c36ae4,0xd6ebe1f9,0x90d4f869,0xa65cdea0,0x3f09252d,0xc208e69f,0xb74e6132,0xce77e25b,0x578fdfe3,0x3ac372e6],u=[0x4f727068,0x65616e42,0x65686f6c,0x64657253,0x63727944,0x6f756274];function v(a,b,c,d){var e=a[b],f=a[b+1];return e^=c[0],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[1],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[2],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[3],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[4],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[5],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[6],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[7],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[8],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[9],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[10],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[11],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[12],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[13],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[14],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[15],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[16],a[b]=f^c[17],a[b+1]=e,a}function w(a,b){for(var c=0,d=0;c<4;++c)d=d<<8|255&a[b],b=(b+1)%a.length;return{key:d,offp:b}}function x(a,b,c){for(var d,e=0,f=[0,0],g=b.length,h=c.length,i=0;i<g;i++)e=(d=w(a,e)).offp,b[i]=b[i]^d.key;for(i=0;i<g;i+=2)f=v(f,0,b,c),b[i]=f[0],b[i+1]=f[1];for(i=0;i<h;i+=2)f=v(f,0,b,c),c[i]=f[0],c[i+1]=f[1]}function y(a,b,c,d,e){var f,g,h=u.slice(),i=h.length;if(c<4||c>31){if(g=Error("Illegal number of rounds (4-31): "+c),d)return void k(d.bind(this,g));throw g}if(b.length!==q){if(g=Error("Illegal salt length: "+b.length+" != "+q),d)return void k(d.bind(this,g));throw g}c=1<<c>>>0;var j,l,m,n=0;function o(){if(e&&e(n/c),n<c)for(var f=Date.now();n<c&&(n+=1,x(a,j,l),x(b,j,l),!(Date.now()-f>100)););else{for(n=0;n<64;n++)for(m=0;m<i>>1;m++)v(h,m<<1,j,l);var g=[];for(n=0;n<i;n++)g.push((h[n]>>24&255)>>>0),g.push((h[n]>>16&255)>>>0),g.push((h[n]>>8&255)>>>0),g.push((255&h[n])>>>0);return d?void d(null,g):g}d&&k(o)}if("function"==typeof Int32Array?(j=new Int32Array(s),l=new Int32Array(t)):(j=s.slice(),l=t.slice()),!function(a,b,c,d){for(var e,f=0,g=[0,0],h=c.length,i=d.length,j=0;j<h;j++)f=(e=w(b,f)).offp,c[j]=c[j]^e.key;for(j=0,f=0;j<h;j+=2)f=(e=w(a,f)).offp,g[0]^=e.key,f=(e=w(a,f)).offp,g[1]^=e.key,g=v(g,0,c,d),c[j]=g[0],c[j+1]=g[1];for(j=0;j<i;j+=2)f=(e=w(a,f)).offp,g[0]^=e.key,f=(e=w(a,f)).offp,g[1]^=e.key,g=v(g,0,c,d),d[j]=g[0],d[j+1]=g[1]}(b,a,j,l),void 0!==d)o();else for(;;)if(void 0!==(f=o()))return f||[]}function z(a,b,c,d){if("string"!=typeof a||"string"!=typeof b){if(e=Error("Invalid string / salt: Not a string"),c)return void k(c.bind(this,e));throw e}if("$"!==b.charAt(0)||"2"!==b.charAt(1)){if(e=Error("Invalid salt version: "+b.substring(0,2)),c)return void k(c.bind(this,e));throw e}if("$"===b.charAt(2))f="\0",g=3;else{if("a"!==(f=b.charAt(2))&&"b"!==f&&"y"!==f||"$"!==b.charAt(3)){if(e=Error("Invalid salt revision: "+b.substring(2,4)),c)return void k(c.bind(this,e));throw e}g=4}if(b.charAt(g+2)>"$"){if(e=Error("Missing salt rounds"),c)return void k(c.bind(this,e));throw e}var e,f,g,h=10*parseInt(b.substring(g,g+1),10)+parseInt(b.substring(g+1,g+2),10),i=b.substring(g+3,g+25),j=function(a){for(var b,c,d=0,e=Array(l(a)),f=0,g=a.length;f<g;++f)(b=a.charCodeAt(f))<128?e[d++]=b:(b<2048?e[d++]=b>>6|192:((64512&b)==55296&&(64512&(c=a.charCodeAt(f+1)))==56320?(b=65536+((1023&b)<<10)+(1023&c),++f,e[d++]=b>>18|240,e[d++]=b>>12&63|128):e[d++]=b>>12|224,e[d++]=b>>6&63|128),e[d++]=63&b|128);return e}(a+=f>="a"?"\0":""),m=p(i,q);function n(a){var b=[];return b.push("$2"),f>="a"&&b.push(f),b.push("$"),h<10&&b.push("0"),b.push(h.toString()),b.push("$"),b.push(o(m,m.length)),b.push(o(a,4*u.length-1)),b.join("")}if(void 0===c)return n(y(j,m,h));y(j,m,h,function(a,b){a?c(a,null):c(null,n(b))},d)}let A={setRandomFallback:function(a){e=a},genSaltSync:f,genSalt:g,hashSync:h,hash:i,compareSync:function(a,b){if("string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return 60===b.length&&j(h(a,b.substring(0,b.length-31)),b)},compare:function(a,b,c,d){function e(c){"string"!=typeof a||"string"!=typeof b?k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b))):60!==b.length?k(c.bind(this,null,!1)):i(a,b.substring(0,29),function(a,d){a?c(a):c(null,j(d,b))},d)}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)},getRounds:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return parseInt(a.split("$")[2],10)},getSalt:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);if(60!==a.length)throw Error("Illegal hash length: "+a.length+" != 60");return a.substring(0,29)},truncates:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return l(a)>72},encodeBase64:function(a,b){return o(a,b)},decodeBase64:function(a,b){return p(a,b)}}},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()}},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
+ "use strict";exports.id=2391,exports.ids=[2391,4755,7136],exports.modules={34013:(a,b,c)=>{c.d(b,{Ay:()=>A});var d=c(55511),e=null;function f(a,b){if("number"!=typeof(a=a||r))throw Error("Illegal arguments: "+typeof a+", "+typeof b);a<4?a=4:a>31&&(a=31);var c=[];return c.push("$2b$"),a<10&&c.push("0"),c.push(a.toString()),c.push("$"),c.push(o(function(a){try{return crypto.getRandomValues(new Uint8Array(a))}catch{}try{return d.randomBytes(a)}catch{}if(!e)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return e(a)}(q),q)),c.join("")}function g(a,b,c){if("function"==typeof b&&(c=b,b=void 0),"function"==typeof a&&(c=a,a=void 0),void 0===a)a=r;else if("number"!=typeof a)throw Error("illegal arguments: "+typeof a);function d(b){k(function(){try{b(null,f(a))}catch(a){b(a)}})}if(!c)return new Promise(function(a,b){d(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);d(c)}function h(a,b){if(void 0===b&&(b=r),"number"==typeof b&&(b=f(b)),"string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return z(a,b)}function i(a,b,c,d){function e(c){"string"==typeof a&&"number"==typeof b?g(b,function(b,e){z(a,e,c,d)}):"string"==typeof a&&"string"==typeof b?z(a,b,c,d):k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b)))}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)}function j(a,b){for(var c=a.length^b.length,d=0;d<a.length;++d)c|=a.charCodeAt(d)^b.charCodeAt(d);return 0===c}var k="function"==typeof setImmediate?setImmediate:"object"==typeof scheduler&&"function"==typeof scheduler.postTask?scheduler.postTask.bind(scheduler):setTimeout;function l(a){for(var b=0,c=0,d=0;d<a.length;++d)(c=a.charCodeAt(d))<128?b+=1:c<2048?b+=2:(64512&c)==55296&&(64512&a.charCodeAt(d+1))==56320?(++d,b+=4):b+=3;return b}var m="./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),n=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,54,55,56,57,58,59,60,61,62,63,-1,-1,-1,-1,-1,-1,-1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,-1,-1,-1,-1,-1,-1,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,-1,-1,-1,-1,-1];function o(a,b){var c,d,e=0,f=[];if(b<=0||b>a.length)throw Error("Illegal len: "+b);for(;e<b;){if(c=255&a[e++],f.push(m[c>>2&63]),c=(3&c)<<4,e>=b||(c|=(d=255&a[e++])>>4&15,f.push(m[63&c]),c=(15&d)<<2,e>=b)){f.push(m[63&c]);break}c|=(d=255&a[e++])>>6&3,f.push(m[63&c]),f.push(m[63&d])}return f.join("")}function p(a,b){var c,d,e,f,g,h=0,i=a.length,j=0,k=[];if(b<=0)throw Error("Illegal len: "+b);for(;h<i-1&&j<b&&(c=(g=a.charCodeAt(h++))<n.length?n[g]:-1,d=(g=a.charCodeAt(h++))<n.length?n[g]:-1,-1!=c&&-1!=d)&&(f=c<<2>>>0|(48&d)>>4,k.push(String.fromCharCode(f)),!(++j>=b||h>=i||-1==(e=(g=a.charCodeAt(h++))<n.length?n[g]:-1)||(f=(15&d)<<4>>>0|(60&e)>>2,k.push(String.fromCharCode(f)),++j>=b||h>=i)));){;f=(3&e)<<6>>>0|((g=a.charCodeAt(h++))<n.length?n[g]:-1),k.push(String.fromCharCode(f)),++j}var l=[];for(h=0;h<j;h++)l.push(k[h].charCodeAt(0));return l}var q=16,r=10,s=[0x243f6a88,0x85a308d3,0x13198a2e,0x3707344,0xa4093822,0x299f31d0,0x82efa98,0xec4e6c89,0x452821e6,0x38d01377,0xbe5466cf,0x34e90c6c,0xc0ac29b7,0xc97c50dd,0x3f84d5b5,0xb5470917,0x9216d5d9,0x8979fb1b],t=[0xd1310ba6,0x98dfb5ac,0x2ffd72db,0xd01adfb7,0xb8e1afed,0x6a267e96,0xba7c9045,0xf12c7f99,0x24a19947,0xb3916cf7,0x801f2e2,0x858efc16,0x636920d8,0x71574e69,0xa458fea3,0xf4933d7e,0xd95748f,0x728eb658,0x718bcd58,0x82154aee,0x7b54a41d,0xc25a59b5,0x9c30d539,0x2af26013,0xc5d1b023,0x286085f0,0xca417918,0xb8db38ef,0x8e79dcb0,0x603a180e,0x6c9e0e8b,0xb01e8a3e,0xd71577c1,0xbd314b27,0x78af2fda,0x55605c60,0xe65525f3,0xaa55ab94,0x57489862,0x63e81440,0x55ca396a,0x2aab10b6,0xb4cc5c34,0x1141e8ce,0xa15486af,0x7c72e993,0xb3ee1411,0x636fbc2a,0x2ba9c55d,0x741831f6,0xce5c3e16,0x9b87931e,0xafd6ba33,0x6c24cf5c,0x7a325381,0x28958677,0x3b8f4898,0x6b4bb9af,0xc4bfe81b,0x66282193,0x61d809cc,0xfb21a991,0x487cac60,0x5dec8032,0xef845d5d,0xe98575b1,0xdc262302,0xeb651b88,0x23893e81,0xd396acc5,0xf6d6ff3,0x83f44239,0x2e0b4482,0xa4842004,0x69c8f04a,0x9e1f9b5e,0x21c66842,0xf6e96c9a,0x670c9c61,0xabd388f0,0x6a51a0d2,0xd8542f68,0x960fa728,0xab5133a3,0x6eef0b6c,0x137a3be4,0xba3bf050,0x7efb2a98,0xa1f1651d,0x39af0176,0x66ca593e,0x82430e88,0x8cee8619,0x456f9fb4,0x7d84a5c3,0x3b8b5ebe,0xe06f75d8,0x85c12073,0x401a449f,0x56c16aa6,0x4ed3aa62,0x363f7706,0x1bfedf72,0x429b023d,0x37d0d724,0xd00a1248,0xdb0fead3,0x49f1c09b,0x75372c9,0x80991b7b,0x25d479d8,0xf6e8def7,0xe3fe501a,0xb6794c3b,0x976ce0bd,0x4c006ba,0xc1a94fb6,0x409f60c4,0x5e5c9ec2,0x196a2463,0x68fb6faf,0x3e6c53b5,0x1339b2eb,0x3b52ec6f,0x6dfc511f,0x9b30952c,0xcc814544,0xaf5ebd09,0xbee3d004,0xde334afd,0x660f2807,0x192e4bb3,0xc0cba857,0x45c8740f,0xd20b5f39,0xb9d3fbdb,0x5579c0bd,0x1a60320a,0xd6a100c6,0x402c7279,0x679f25fe,0xfb1fa3cc,0x8ea5e9f8,0xdb3222f8,0x3c7516df,0xfd616b15,0x2f501ec8,0xad0552ab,0x323db5fa,0xfd238760,0x53317b48,0x3e00df82,0x9e5c57bb,0xca6f8ca0,0x1a87562e,0xdf1769db,0xd542a8f6,0x287effc3,0xac6732c6,0x8c4f5573,0x695b27b0,0xbbca58c8,0xe1ffa35d,0xb8f011a0,0x10fa3d98,0xfd2183b8,0x4afcb56c,0x2dd1d35b,0x9a53e479,0xb6f84565,0xd28e49bc,0x4bfb9790,0xe1ddf2da,0xa4cb7e33,0x62fb1341,0xcee4c6e8,0xef20cada,0x36774c01,0xd07e9efe,0x2bf11fb4,0x95dbda4d,0xae909198,0xeaad8e71,0x6b93d5a0,0xd08ed1d0,0xafc725e0,0x8e3c5b2f,0x8e7594b7,0x8ff6e2fb,0xf2122b64,0x8888b812,0x900df01c,0x4fad5ea0,0x688fc31c,0xd1cff191,0xb3a8c1ad,0x2f2f2218,0xbe0e1777,0xea752dfe,0x8b021fa1,0xe5a0cc0f,0xb56f74e8,0x18acf3d6,0xce89e299,0xb4a84fe0,0xfd13e0b7,0x7cc43b81,0xd2ada8d9,0x165fa266,0x80957705,0x93cc7314,0x211a1477,0xe6ad2065,0x77b5fa86,0xc75442f5,0xfb9d35cf,0xebcdaf0c,0x7b3e89a0,0xd6411bd3,0xae1e7e49,2428461,0x2071b35e,0x226800bb,0x57b8e0af,0x2464369b,0xf009b91e,0x5563911d,0x59dfa6aa,0x78c14389,0xd95a537f,0x207d5ba2,0x2e5b9c5,0x83260376,0x6295cfa9,0x11c81968,0x4e734a41,0xb3472dca,0x7b14a94a,0x1b510052,0x9a532915,0xd60f573f,0xbc9bc6e4,0x2b60a476,0x81e67400,0x8ba6fb5,0x571be91f,0xf296ec6b,0x2a0dd915,0xb6636521,0xe7b9f9b6,0xff34052e,0xc5855664,0x53b02d5d,0xa99f8fa1,0x8ba4799,0x6e85076a,0x4b7a70e9,0xb5b32944,0xdb75092e,0xc4192623,290971e4,0x49a7df7d,0x9cee60b8,0x8fedb266,0xecaa8c71,0x699a17ff,0x5664526c,0xc2b19ee1,0x193602a5,0x75094c29,0xa0591340,0xe4183a3e,0x3f54989a,0x5b429d65,0x6b8fe4d6,0x99f73fd6,0xa1d29c07,0xefe830f5,0x4d2d38e6,0xf0255dc1,0x4cdd2086,0x8470eb26,0x6382e9c6,0x21ecc5e,0x9686b3f,0x3ebaefc9,0x3c971814,0x6b6a70a1,0x687f3584,0x52a0e286,0xb79c5305,0xaa500737,0x3e07841c,0x7fdeae5c,0x8e7d44ec,0x5716f2b8,0xb03ada37,0xf0500c0d,0xf01c1f04,0x200b3ff,0xae0cf51a,0x3cb574b2,0x25837a58,0xdc0921bd,0xd19113f9,0x7ca92ff6,0x94324773,0x22f54701,0x3ae5e581,0x37c2dadc,0xc8b57634,0x9af3dda7,0xa9446146,0xfd0030e,0xecc8c73e,0xa4751e41,0xe238cd99,0x3bea0e2f,0x3280bba1,0x183eb331,0x4e548b38,0x4f6db908,0x6f420d03,0xf60a04bf,0x2cb81290,0x24977c79,0x5679b072,0xbcaf89af,0xde9a771f,0xd9930810,0xb38bae12,0xdccf3f2e,0x5512721f,0x2e6b7124,0x501adde6,0x9f84cd87,0x7a584718,0x7408da17,0xbc9f9abc,0xe94b7d8c,0xec7aec3a,0xdb851dfa,0x63094366,0xc464c3d2,0xef1c1847,0x3215d908,0xdd433b37,0x24c2ba16,0x12a14d43,0x2a65c451,0x50940002,0x133ae4dd,0x71dff89e,0x10314e55,0x81ac77d6,0x5f11199b,0x43556f1,0xd7a3c76b,0x3c11183b,0x5924a509,0xf28fe6ed,0x97f1fbfa,0x9ebabf2c,0x1e153c6e,0x86e34570,0xeae96fb1,0x860e5e0a,0x5a3e2ab3,0x771fe71c,0x4e3d06fa,0x2965dcb9,0x99e71d0f,0x803e89d6,0x5266c825,0x2e4cc978,0x9c10b36a,0xc6150eba,0x94e2ea78,0xa5fc3c53,0x1e0a2df4,0xf2f74ea7,0x361d2b3d,0x1939260f,0x19c27960,0x5223a708,0xf71312b6,0xebadfe6e,0xeac31f66,0xe3bc4595,0xa67bc883,0xb17f37d1,0x18cff28,0xc332ddef,0xbe6c5aa5,0x65582185,0x68ab9802,0xeecea50f,0xdb2f953b,0x2aef7dad,0x5b6e2f84,0x1521b628,0x29076170,0xecdd4775,0x619f1510,0x13cca830,0xeb61bd96,0x334fe1e,0xaa0363cf,0xb5735c90,0x4c70a239,0xd59e9e0b,0xcbaade14,0xeecc86bc,0x60622ca7,0x9cab5cab,0xb2f3846e,0x648b1eaf,0x19bdf0ca,0xa02369b9,0x655abb50,0x40685a32,0x3c2ab4b3,0x319ee9d5,0xc021b8f7,0x9b540b19,0x875fa099,0x95f7997e,0x623d7da8,0xf837889a,0x97e32d77,0x11ed935f,0x16681281,0xe358829,0xc7e61fd6,0x96dedfa1,0x7858ba99,0x57f584a5,0x1b227263,0x9b83c3ff,0x1ac24696,0xcdb30aeb,0x532e3054,0x8fd948e4,0x6dbc3128,0x58ebf2ef,0x34c6ffea,0xfe28ed61,0xee7c3c73,0x5d4a14d9,0xe864b7e3,0x42105d14,0x203e13e0,0x45eee2b6,0xa3aaabea,0xdb6c4f15,0xfacb4fd0,0xc742f442,0xef6abbb5,0x654f3b1d,0x41cd2105,0xd81e799e,0x86854dc7,0xe44b476a,0x3d816250,0xcf62a1f2,0x5b8d2646,0xfc8883a0,0xc1c7b6a3,0x7f1524c3,0x69cb7492,0x47848a0b,0x5692b285,0x95bbf00,0xad19489d,0x1462b174,0x23820e00,0x58428d2a,0xc55f5ea,0x1dadf43e,0x233f7061,0x3372f092,0x8d937e41,0xd65fecf1,0x6c223bdb,0x7cde3759,0xcbee7460,0x4085f2a7,0xce77326e,0xa6078084,0x19f8509e,0xe8efd855,0x61d99735,0xa969a7aa,0xc50c06c2,0x5a04abfc,0x800bcadc,0x9e447a2e,0xc3453484,0xfdd56705,0xe1e9ec9,0xdb73dbd3,0x105588cd,0x675fda79,0xe3674340,0xc5c43465,0x713e38d8,0x3d28f89e,0xf16dff20,0x153e21e7,0x8fb03d4a,0xe6e39f2b,0xdb83adf7,0xe93d5a68,0x948140f7,0xf64c261c,0x94692934,0x411520f7,0x7602d4f7,0xbcf46b2e,0xd4a20068,0xd4082471,0x3320f46a,0x43b7d4b7,0x500061af,0x1e39f62e,0x97244546,0x14214f74,0xbf8b8840,0x4d95fc1d,0x96b591af,0x70f4ddd3,0x66a02f45,0xbfbc09ec,0x3bd9785,0x7fac6dd0,0x31cb8504,0x96eb27b3,0x55fd3941,0xda2547e6,0xabca0a9a,0x28507825,0x530429f4,0xa2c86da,0xe9b66dfb,0x68dc1462,0xd7486900,0x680ec0a4,0x27a18dee,0x4f3ffea2,0xe887ad8c,0xb58ce006,0x7af4d6b6,0xaace1e7c,0xd3375fec,0xce78a399,0x406b2a42,0x20fe9e35,0xd9f385b9,0xee39d7ab,0x3b124e8b,0x1dc9faf7,0x4b6d1856,0x26a36631,0xeae397b2,0x3a6efa74,0xdd5b4332,0x6841e7f7,0xca7820fb,0xfb0af54e,0xd8feb397,0x454056ac,0xba489527,0x55533a3a,0x20838d87,0xfe6ba9b7,0xd096954b,0x55a867bc,0xa1159a58,0xcca92963,0x99e1db33,0xa62a4a56,0x3f3125f9,0x5ef47e1c,0x9029317c,0xfdf8e802,0x4272f70,0x80bb155c,0x5282ce3,0x95c11548,0xe4c66d22,0x48c1133f,0xc70f86dc,0x7f9c9ee,0x41041f0f,0x404779a4,0x5d886e17,0x325f51eb,0xd59bc0d1,0xf2bcc18f,0x41113564,0x257b7834,0x602a9c60,0xdff8e8a3,0x1f636c1b,0xe12b4c2,0x2e1329e,0xaf664fd1,0xcad18115,0x6b2395e0,0x333e92e1,0x3b240b62,0xeebeb922,0x85b2a20e,0xe6ba0d99,0xde720c8c,0x2da2f728,0xd0127845,0x95b794fd,0x647d0862,0xe7ccf5f0,0x5449a36f,0x877d48fa,0xc39dfd27,0xf33e8d1e,0xa476341,0x992eff74,0x3a6f6eab,0xf4f8fd37,0xa812dc60,0xa1ebddf8,0x991be14c,0xdb6e6b0d,0xc67b5510,0x6d672c37,0x2765d43b,0xdcd0e804,0xf1290dc7,0xcc00ffa3,0xb5390f92,0x690fed0b,0x667b9ffb,0xcedb7d9c,0xa091cf0b,0xd9155ea3,0xbb132f88,0x515bad24,0x7b9479bf,0x763bd6eb,0x37392eb3,0xcc115979,0x8026e297,0xf42e312d,0x6842ada7,0xc66a2b3b,0x12754ccc,0x782ef11c,0x6a124237,0xb79251e7,0x6a1bbe6,0x4bfb6350,0x1a6b1018,0x11caedfa,0x3d25bdd8,0xe2e1c3c9,0x44421659,0xa121386,0xd90cec6e,0xd5abea2a,0x64af674e,0xda86a85f,0xbebfe988,0x64e4c3fe,0x9dbc8057,0xf0f7c086,0x60787bf8,0x6003604d,0xd1fd8346,0xf6381fb0,0x7745ae04,0xd736fccc,0x83426b33,0xf01eab71,0xb0804187,0x3c005e5f,0x77a057be,0xbde8ae24,0x55464299,0xbf582e61,0x4e58f48f,0xf2ddfda2,0xf474ef38,0x8789bdc2,0x5366f9c3,0xc8b38e74,0xb475f255,0x46fcd9b9,0x7aeb2661,0x8b1ddf84,0x846a0e79,0x915f95e2,0x466e598e,0x20b45770,0x8cd55591,0xc902de4c,0xb90bace1,0xbb8205d0,0x11a86248,0x7574a99e,0xb77f19b6,0xe0a9dc09,0x662d09a1,0xc4324633,0xe85a1f02,0x9f0be8c,0x4a99a025,0x1d6efe10,0x1ab93d1d,0xba5a4df,0xa186f20f,0x2868f169,0xdcb7da83,0x573906fe,0xa1e2ce9b,0x4fcd7f52,0x50115e01,0xa70683fa,0xa002b5c4,0xde6d027,0x9af88c27,0x773f8641,0xc3604c06,0x61a806b5,0xf0177a28,0xc0f586e0,6314154,0x30dc7d62,0x11e69ed7,0x2338ea63,0x53c2dd94,0xc2c21634,0xbbcbee56,0x90bcb6de,0xebfc7da1,0xce591d76,0x6f05e409,0x4b7c0188,0x39720a3d,0x7c927c24,0x86e3725f,0x724d9db9,0x1ac15bb4,0xd39eb8fc,0xed545578,0x8fca5b5,0xd83d7cd3,0x4dad0fc4,0x1e50ef5e,0xb161e6f8,0xa28514d9,0x6c51133c,0x6fd5c7e7,0x56e14ec4,0x362abfce,0xddc6c837,0xd79a3234,0x92638212,0x670efa8e,0x406000e0,0x3a39ce37,0xd3faf5cf,0xabc27737,0x5ac52d1b,0x5cb0679e,0x4fa33742,0xd3822740,0x99bc9bbe,0xd5118e9d,0xbf0f7315,0xd62d1c7e,0xc700c47b,0xb78c1b6b,0x21a19045,0xb26eb1be,0x6a366eb4,0x5748ab2f,0xbc946e79,0xc6a376d2,0x6549c2c8,0x530ff8ee,0x468dde7d,0xd5730a1d,0x4cd04dc6,0x2939bbdb,0xa9ba4650,0xac9526e8,0xbe5ee304,0xa1fad5f0,0x6a2d519a,0x63ef8ce2,0x9a86ee22,0xc089c2b8,0x43242ef6,0xa51e03aa,0x9cf2d0a4,0x83c061ba,0x9be96a4d,0x8fe51550,0xba645bd6,0x2826a2f9,0xa73a3ae1,0x4ba99586,0xef5562e9,0xc72fefd3,0xf752f7da,0x3f046f69,0x77fa0a59,0x80e4a915,0x87b08601,0x9b09e6ad,0x3b3ee593,0xe990fd5a,0x9e34d797,0x2cf0b7d9,0x22b8b51,0x96d5ac3a,0x17da67d,0xd1cf3ed6,0x7c7d2d28,0x1f9f25cf,0xadf2b89b,0x5ad6b472,0x5a88f54c,0xe029ac71,0xe019a5e6,0x47b0acfd,0xed93fa9b,0xe8d3c48d,0x283b57cc,0xf8d56629,0x79132e28,0x785f0191,0xed756055,0xf7960e44,0xe3d35e8c,0x15056dd4,0x88f46dba,0x3a16125,0x564f0bd,0xc3eb9e15,0x3c9057a2,0x97271aec,0xa93a072a,0x1b3f6d9b,0x1e6321f5,0xf59c66fb,0x26dcf319,0x7533d928,0xb155fdf5,0x3563482,0x8aba3cbb,0x28517711,0xc20ad9f8,0xabcc5167,0xccad925f,0x4de81751,0x3830dc8e,0x379d5862,0x9320f991,0xea7a90c2,0xfb3e7bce,0x5121ce64,0x774fbe32,0xa8b6e37e,0xc3293d46,0x48de5369,0x6413e680,0xa2ae0810,0xdd6db224,0x69852dfd,0x9072166,0xb39a460a,0x6445c0dd,0x586cdecf,0x1c20c8ae,0x5bbef7dd,0x1b588d40,0xccd2017f,0x6bb4e3bb,0xdda26a7e,0x3a59ff45,0x3e350a44,0xbcb4cdd5,0x72eacea8,0xfa6484bb,0x8d6612ae,0xbf3c6f47,0xd29be463,0x542f5d9e,0xaec2771b,0xf64e6370,0x740e0d8d,0xe75b1357,0xf8721671,0xaf537d5d,0x4040cb08,0x4eb4e2cc,0x34d2466a,0x115af84,3786409e3,0x95983a1d,0x6b89fb4,0xce6ea048,0x6f3f3b82,0x3520ab82,0x11a1d4b,0x277227f8,0x611560b1,0xe7933fdc,0xbb3a792b,0x344525bd,0xa08839e1,0x51ce794b,0x2f32c9b7,0xa01fbac9,0xe01cc87e,0xbcc7d1f6,0xcf0111c3,0xa1e8aac7,0x1a908749,0xd44fbd9a,0xd0dadecb,0xd50ada38,0x339c32a,0xc6913667,0x8df9317c,0xe0b12b4f,0xf79e59b7,0x43f5bb3a,0xf2d519ff,0x27d9459c,0xbf97222c,0x15e6fc2a,0xf91fc71,0x9b941525,0xfae59361,0xceb69ceb,0xc2a86459,0x12baa8d1,0xb6c1075e,0xe3056a0c,0x10d25065,0xcb03a442,0xe0ec6e0e,0x1698db3b,0x4c98a0be,0x3278e964,0x9f1f9532,0xe0d392df,0xd3a0342b,0x8971f21e,0x1b0a7441,0x4ba3348c,0xc5be7120,0xc37632d8,0xdf359f8d,0x9b992f2e,0xe60b6f47,0xfe3f11d,0xe54cda54,0x1edad891,0xce6279cf,0xcd3e7e6f,0x1618b166,0xfd2c1d05,0x848fd2c5,0xf6fb2299,0xf523f357,0xa6327623,0x93a83531,0x56cccd02,0xacf08162,0x5a75ebb5,0x6e163697,0x88d273cc,0xde966292,0x81b949d0,0x4c50901b,0x71c65614,0xe6c6c7bd,0x327a140a,0x45e1d006,0xc3f27b9a,0xc9aa53fd,0x62a80f00,0xbb25bfe2,0x35bdd2f6,0x71126905,0xb2040222,0xb6cbcf7c,0xcd769c2b,0x53113ec0,0x1640e3d3,0x38abbd60,0x2547adf0,0xba38209c,0xf746ce76,0x77afa1c5,0x20756060,0x85cbfe4e,0x8ae88dd8,0x7aaaf9b0,0x4cf9aa7e,0x1948c25c,0x2fb8a8c,0x1c36ae4,0xd6ebe1f9,0x90d4f869,0xa65cdea0,0x3f09252d,0xc208e69f,0xb74e6132,0xce77e25b,0x578fdfe3,0x3ac372e6],u=[0x4f727068,0x65616e42,0x65686f6c,0x64657253,0x63727944,0x6f756274];function v(a,b,c,d){var e=a[b],f=a[b+1];return e^=c[0],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[1],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[2],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[3],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[4],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[5],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[6],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[7],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[8],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[9],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[10],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[11],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[12],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[13],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[14],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[15],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[16],a[b]=f^c[17],a[b+1]=e,a}function w(a,b){for(var c=0,d=0;c<4;++c)d=d<<8|255&a[b],b=(b+1)%a.length;return{key:d,offp:b}}function x(a,b,c){for(var d,e=0,f=[0,0],g=b.length,h=c.length,i=0;i<g;i++)e=(d=w(a,e)).offp,b[i]=b[i]^d.key;for(i=0;i<g;i+=2)f=v(f,0,b,c),b[i]=f[0],b[i+1]=f[1];for(i=0;i<h;i+=2)f=v(f,0,b,c),c[i]=f[0],c[i+1]=f[1]}function y(a,b,c,d,e){var f,g,h=u.slice(),i=h.length;if(c<4||c>31){if(g=Error("Illegal number of rounds (4-31): "+c),d)return void k(d.bind(this,g));throw g}if(b.length!==q){if(g=Error("Illegal salt length: "+b.length+" != "+q),d)return void k(d.bind(this,g));throw g}c=1<<c>>>0;var j,l,m,n=0;function o(){if(e&&e(n/c),n<c)for(var f=Date.now();n<c&&(n+=1,x(a,j,l),x(b,j,l),!(Date.now()-f>100)););else{for(n=0;n<64;n++)for(m=0;m<i>>1;m++)v(h,m<<1,j,l);var g=[];for(n=0;n<i;n++)g.push((h[n]>>24&255)>>>0),g.push((h[n]>>16&255)>>>0),g.push((h[n]>>8&255)>>>0),g.push((255&h[n])>>>0);return d?void d(null,g):g}d&&k(o)}if("function"==typeof Int32Array?(j=new Int32Array(s),l=new Int32Array(t)):(j=s.slice(),l=t.slice()),!function(a,b,c,d){for(var e,f=0,g=[0,0],h=c.length,i=d.length,j=0;j<h;j++)f=(e=w(b,f)).offp,c[j]=c[j]^e.key;for(j=0,f=0;j<h;j+=2)f=(e=w(a,f)).offp,g[0]^=e.key,f=(e=w(a,f)).offp,g[1]^=e.key,g=v(g,0,c,d),c[j]=g[0],c[j+1]=g[1];for(j=0;j<i;j+=2)f=(e=w(a,f)).offp,g[0]^=e.key,f=(e=w(a,f)).offp,g[1]^=e.key,g=v(g,0,c,d),d[j]=g[0],d[j+1]=g[1]}(b,a,j,l),void 0!==d)o();else for(;;)if(void 0!==(f=o()))return f||[]}function z(a,b,c,d){if("string"!=typeof a||"string"!=typeof b){if(e=Error("Invalid string / salt: Not a string"),c)return void k(c.bind(this,e));throw e}if("$"!==b.charAt(0)||"2"!==b.charAt(1)){if(e=Error("Invalid salt version: "+b.substring(0,2)),c)return void k(c.bind(this,e));throw e}if("$"===b.charAt(2))f="\0",g=3;else{if("a"!==(f=b.charAt(2))&&"b"!==f&&"y"!==f||"$"!==b.charAt(3)){if(e=Error("Invalid salt revision: "+b.substring(2,4)),c)return void k(c.bind(this,e));throw e}g=4}if(b.charAt(g+2)>"$"){if(e=Error("Missing salt rounds"),c)return void k(c.bind(this,e));throw e}var e,f,g,h=10*parseInt(b.substring(g,g+1),10)+parseInt(b.substring(g+1,g+2),10),i=b.substring(g+3,g+25),j=function(a){for(var b,c,d=0,e=Array(l(a)),f=0,g=a.length;f<g;++f)(b=a.charCodeAt(f))<128?e[d++]=b:(b<2048?e[d++]=b>>6|192:((64512&b)==55296&&(64512&(c=a.charCodeAt(f+1)))==56320?(b=65536+((1023&b)<<10)+(1023&c),++f,e[d++]=b>>18|240,e[d++]=b>>12&63|128):e[d++]=b>>12|224,e[d++]=b>>6&63|128),e[d++]=63&b|128);return e}(a+=f>="a"?"\0":""),m=p(i,q);function n(a){var b=[];return b.push("$2"),f>="a"&&b.push(f),b.push("$"),h<10&&b.push("0"),b.push(h.toString()),b.push("$"),b.push(o(m,m.length)),b.push(o(a,4*u.length-1)),b.join("")}if(void 0===c)return n(y(j,m,h));y(j,m,h,function(a,b){a?c(a,null):c(null,n(b))},d)}let A={setRandomFallback:function(a){e=a},genSaltSync:f,genSalt:g,hashSync:h,hash:i,compareSync:function(a,b){if("string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return 60===b.length&&j(h(a,b.substring(0,b.length-31)),b)},compare:function(a,b,c,d){function e(c){"string"!=typeof a||"string"!=typeof b?k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b))):60!==b.length?k(c.bind(this,null,!1)):i(a,b.substring(0,29),function(a,d){a?c(a):c(null,j(d,b))},d)}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)},getRounds:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return parseInt(a.split("$")[2],10)},getSalt:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);if(60!==a.length)throw Error("Illegal hash length: "+a.length+" != 60");return a.substring(0,29)},truncates:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return l(a)>72},encodeBase64:function(a,b){return o(a,b)},decodeBase64:function(a,b){return p(a,b)}}},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()}},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)}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=2476,exports.ids=[2476],exports.modules={42476:(a,b,c)=>{c.d(b,{Mc:()=>k,getProviderConnections:()=>j});var d=c(44488);c(15367);var e=c(55511);let f="enc:v1:",g=null;function h(a){if(!a||"string"!=typeof a||!a.startsWith(f))return a;let b=function(){if(null!==g)return g;let a=process.env.STORAGE_ENCRYPTION_KEY;return a?g=(0,e.scryptSync)(a,"omniroute-field-encryption-v1",32):null}();if(!b)return console.warn("[Encryption] Found encrypted data but STORAGE_ENCRYPTION_KEY is not set. Cannot decrypt."),a;let c=a.slice(f.length).split(":");if(3!==c.length)return console.error("[Encryption] Malformed encrypted value"),a;let[d,h,i]=c;try{let a=Buffer.from(d,"hex"),c=Buffer.from(i,"hex"),f=(0,e.createDecipheriv)("aes-256-gcm",b,a);f.setAuthTag(c);let g=f.update(h,"hex","utf8");return g+=f.final("utf8")}catch(b){return console.error("[Encryption] Decryption failed:",b instanceof Error?b.message:String(b)),a}}function i(a){return a&&process.env.STORAGE_ENCRYPTION_KEY?{...a,apiKey:h(a.apiKey),accessToken:h(a.accessToken),refreshToken:h(a.refreshToken),idToken:h(a.idToken)}:a}async function j(a={}){let b=(0,d.getDbInstance)(),c="SELECT * FROM provider_connections",e=[],f={};return a.provider&&(e.push("provider = @provider"),f.provider=a.provider),void 0!==a.isActive&&(e.push("is_active = @isActive"),f.isActive=+!!a.isActive),e.length>0&&(c+=" WHERE "+e.join(" AND ")),c+=" ORDER BY priority ASC, updated_at DESC",b.prepare(c).all(f).map(a=>i((0,d.G6)((0,d.kB)(a))))}async function k(a){let b=(0,d.getDbInstance)().prepare("SELECT * FROM provider_connections WHERE id = ?").get(a);return b?i((0,d.G6)((0,d.kB)(b))):null}c(71781)}};
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=2767,exports.ids=[2767],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>s,Eo:()=>B,Kr:()=>y,UE:()=>z,YO:()=>u,getAllRateLimitStatus:()=>A,mg:()=>r,rh:()=>q});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}let j=new Map,k=new Set,l={},m=null,n=!1,o=parseInt(process.env.RATE_LIMIT_MAX_WAIT_MS||"120000",10),p={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null,maxWait:o};async function q(){if(!n){n=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,22901)),b=await a(),d=0,l=0,m=0;for(let a of b){let b=h(a),c="string"==typeof b.id?b.id:"",n="string"==typeof b.provider?b.provider:"",p=!0===b.isActive,q=!0===b.rateLimitProtection,r=i(b.customRpm,0),s=i(b.customTpm,0);if(c&&n){if(r>0||s>0){k.add(c),m++;let a=`${n}:${c}`,b=r>0?r:g.DEFAULT_API_LIMITS.requestsPerMinute,d=Math.max(0,Math.floor(6e4/b)-10);j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:d,reservoir:b,reservoirRefreshAmount:b,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}else if(q)k.add(c),d++;else if("apikey"===(0,f.oQ)(n)&&p){k.add(c),l++;let a=`${n}:${c}`;j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}}}(d>0||l>0||m>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${l} auto-enabled + ${m} custom rpm/tpm protection(s)`),await C()}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function r(a){k.add(a)}function s(a){for(let[b]of(k.delete(a),j))if(b.includes(a)){let a=j.get(b);a?.disconnect(),j.delete(b)}}function t(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!j.has(d)){let a=new(e())({...p,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),j.set(d,a)}return j.get(d)}async function u(a,b,c,d){return k.has(b)?t(a,b,null).schedule(d):d()}let v={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},w={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function x(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function y(a,b,d,e,f=null){if(!k.has(b)||!d)return;let g=t(a,b,null),h="claude"===a||"anthropic"===a?w:v,i=a=>"function"==typeof d.get?d.get(a):d[a]||null,j=parseInt(i(h.limit)),n=parseInt(i(h.remaining)),o=i(h.reset),p=i(h.retryAfter),q=i(v.overLimit);if(429===e){let c=x(p)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),g.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===q){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){var r,s,u;let d=x(o)||6e4,e={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(n)&&(n<.1*j?(e.reservoir=n,e.reservoirRefreshAmount=j,e.reservoirRefreshInterval=d,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${n}/${j} remaining, throttling`)):n>.5*j&&(e.minTime=0,e.reservoir=null,e.reservoirRefreshAmount=null,e.reservoirRefreshInterval=null)),g.updateSettings(e),r=a,s=b,u={limit:j,remaining:n,minTime:e.minTime},l[`${r}:${s}`]={...u,provider:r,connectionId:s,lastUpdated:Date.now()},m||(m=setTimeout(async()=>{m=null;try{let{updateSettings:a}=await Promise.resolve().then(c.bind(c,9679));await a({learnedRateLimits:JSON.stringify(l)}),console.log(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(l).length} provider(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to persist learned limits:",a.message)}},6e4))}}function z(a,b){let c=`${a}:${b}`,d=j.get(c);if(!d)return{enabled:k.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:k.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function A(){let a={};for(let[b,c]of j){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}function B(){return{...l}}async function C(){try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,9679)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=h(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=h(b),d=i(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",m=i(c.limit,0),n=i(c.remaining,0),o=i(c.minTime,0);if(l[a]={provider:g,connectionId:e,lastUpdated:d,...m>0?{limit:m}:{},...n>=0?{remaining:n}:{},...o>=0?{minTime:o}:{}},e&&k.has(e)){let b=j.get(a);if(b&&m>0){let a=o||Math.max(0,Math.floor(6e4/m)-10);b.updateSettings({minTime:a}),f++}}}f>0&&console.log(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){console.error("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}},6327:(a,b,c)=>{function d({onDisconnect:a,log:b,provider:c,model:e}={}){let f=new AbortController,g=Date.now(),h=!1,i=null,j=a=>{let b=Date.now()-g,d=c?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${d} | ${e||"unknown"} | ${b}ms | ${a}`)};return{signal:f.signal,startTime:g,isConnected:()=>!h,handleDisconnect:(b="client_closed")=>{h||(h=!0,j(`disconnect: ${b}`),i=setTimeout(()=>{f.abort()},500),a?.({reason:b,duration:Date.now()-g}))},handleComplete:()=>{!h&&(h=!0,j("complete"),i&&(clearTimeout(i),i=null))},handleError:a=>{(i&&(clearTimeout(i),i=null),a instanceof Error&&"AbortError"===a.name)?j("aborted"):a instanceof Error?j(`error: ${a.message}`):j("error: unknown")},abort:()=>f.abort()}}function e(a,b,c){var d;let e,f;return d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}},e=d.readable.getReader(),f=d.writable.getWriter(),new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},8550:(a,b,c)=>{c.d(b,{M:()=>d});function d(a,b){if(!a||"object"!=typeof a)return null;if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens};let c=a.response?.usage||a.usage;return c&&"object"==typeof c&&(void 0!==c.input_tokens||void 0!==c.output_tokens)?{prompt_tokens:c.input_tokens||0,completion_tokens:c.output_tokens||0,cached_tokens:c.cache_read_input_tokens,cache_creation_input_tokens:c.cache_creation_input_tokens,reasoning_tokens:c.reasoning_tokens||c.output_tokens_details?.reasoning_tokens}:a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.input_tokens||void 0!==a.usage.output_tokens)?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usageMetadata&&"object"==typeof a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}},9315:(a,b,c)=>{c.d(b,{Cb:()=>n,IL:()=>q,QS:()=>r,RE:()=>p,TZ:()=>s,gR:()=>m,yv:()=>o});var d=c(77598),e=c.n(d),f=c(44594),g=c(42910);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}let j=null,k={hits:0,misses:0,tokensSaved:0};function l(){return j||(j=new f.q({maxSize:parseInt(process.env.SEMANTIC_CACHE_MAX_SIZE||"100",10),maxBytes:parseInt(process.env.SEMANTIC_CACHE_MAX_BYTES||String(4194304),10),defaultTTL:parseInt(process.env.SEMANTIC_CACHE_TTL_MS||"1800000",10)})),j}function m(a,b,c=0,d=1){var f;let g=JSON.stringify({model:a,messages:Array.isArray(f=b)?f.map(a=>({role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content)})):[],temperature:c,top_p:d});return e().createHash("sha256").update(g).digest("hex")}function n(a){let b=l().get(a);if(b)return k.hits++,k.tokensSaved+=b.tokensSaved||0,b.response;try{let b=(0,g.sm)(),c=b.prepare("SELECT response, tokens_saved FROM semantic_cache WHERE signature = ? AND expires_at > datetime('now')").get(a);if(c){let d=h(c),e="string"==typeof d.response?d.response:null;if(!e)return k.misses++,null;let f=JSON.parse(e),g=i(d.tokens_saved,0);return l().set(a,{response:f,tokensSaved:g}),b.prepare("UPDATE semantic_cache SET hit_count = hit_count + 1 WHERE signature = ?").run(a),k.hits++,k.tokensSaved+=g,f}}catch{}return k.misses++,null}function o(a,b,c,d=0,f=36e5){let h=parseInt(process.env.SEMANTIC_CACHE_TTL_MS||String(f),10);l().set(a,{response:c,tokensSaved:d},h);try{let f=(0,g.sm)(),i=e().randomUUID(),j=a.slice(0,16),k=new Date().toISOString(),l=new Date(Date.now()+h).toISOString();f.prepare(`INSERT OR REPLACE INTO semantic_cache (id, signature, model, prompt_hash, response, tokens_saved, hit_count, created_at, expires_at)
2
- VALUES (?, ?, ?, ?, ?, ?, 0, ?, ?)`).run(i,a,b,j,JSON.stringify(c),d,k,l)}catch{}}function p(){try{return(0,g.sm)().prepare("DELETE FROM semantic_cache WHERE expires_at <= datetime('now')").run().changes}catch{return 0}}function q(){l().clear();try{(0,g.sm)().prepare("DELETE FROM semantic_cache").run()}catch{}k={hits:0,misses:0,tokensSaved:0}}function r(){let a=l().getStats(),b=0;try{let a=(0,g.sm)().prepare("SELECT COUNT(*) as count FROM semantic_cache WHERE expires_at > datetime('now')").get();b=i(h(a).count,0)}catch{}let c=k.hits+k.misses;return{memoryEntries:a.size,dbEntries:b,hits:k.hits,misses:k.misses,hitRate:c>0?(k.hits/c*100).toFixed(1):"0.0",tokensSaved:k.tokensSaved}}function s(a,b){return b?.get?.("x-omniroute-no-cache")!=="true"&&!1===a.stream&&(a.temperature??0)===0}},9686:(a,b,c)=>{c.d(b,{eU:()=>i,vN:()=>h});var d=c(27976),e=c(22901),f=c(87068);let g=f.oD;async function h(a,b){try{let c={};b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.expiresIn&&(c.expiresAt=new Date(Date.now()+1e3*b.expiresIn).toISOString(),c.expiresIn=b.expiresIn),b.providerSpecificData&&(c.providerSpecificData=b.providerSpecificData);let f=await (0,e.rj)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function i(a,b){let c={...b};if(c.expiresAt){let b=new Date(c.expiresAt).getTime(),e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let i=await (g=c,(0,f.iD)(a,g,d));i&&i.accessToken&&(await h(c.connectionId,i),c={...c,accessToken:i.accessToken,refreshToken:i.refreshToken||c.refreshToken,expiresAt:i.expiresIn?new Date(Date.now()+1e3*i.expiresIn).toISOString():c.expiresAt})}}if("github"===a&&c.providerSpecificData?.copilotTokenExpiresAt){let b=1e3*c.providerSpecificData.copilotTokenExpiresAt,e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let i=await (g=c.accessToken,(0,f.jR)(g,d));i&&(await h(c.connectionId,{providerSpecificData:{...c.providerSpecificData,copilotToken:i.token,copilotTokenExpiresAt:i.expiresAt}}),c.providerSpecificData={...c.providerSpecificData,copilotToken:i.token,copilotTokenExpiresAt:i.expiresAt})}}return c}},12767:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>B});var e=c(21020),f=c(13961),g=c(32113),h=c(69590),i=c(71861),j=c(17669),k=c(60293),l=c(23969),m=c(76340),n=c(27976),o=c(9686),p=c(22901),q=c(34493),r=c(26510),s=c(77458),t=c(12620),u=c(20864),v=c(82742),w=c(44057),x=c(59545),y=c(78790),z=c(70884),A=a([h]);async function B(a,b=null){let c,d=(0,x.KZ)(),g=new w.TT(d);try{g.startPhase("parse"),c=await a.json(),g.endPhase()}catch{return n.warn("CHAT","Invalid JSON body"),(0,i.yj)(k.gx.BAD_REQUEST,"Invalid JSON body")}g.startPhase("validate");let h=(0,s.Jh)(c,n);if(h.blocked)return n.warn("SANITIZER","Request blocked due to prompt injection",{detections:h.detections}),(0,i.yj)(k.gx.BAD_REQUEST,"Request rejected: suspicious content detected");h.modified&&h.sanitizedBody&&(c=h.sanitizedBody),g.endPhase(),b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let l=new URL(a.url),m=c.model,o=c.messages?.length||c.input?.length||0,q=c.tools?.length||0,r=c.reasoning_effort||c.reasoning?.effort||null;n.request("POST",`${l.pathname} | ${m} | ${o} msgs${q?` | ${q} tools`:""}${r?` | effort=${r}`:""}`);let t=a.headers.get("Authorization"),v=(0,e.Tr)(a);if(t&&v?n.debug("AUTH",`API Key: ${n.maskKey(v)}`):n.debug("AUTH","No API key provided (local mode)"),"true"===process.env.REQUIRE_API_KEY){if(!v)return n.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.yj)(k.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(v))return n.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.yj)(k.gx.UNAUTHORIZED,"Invalid API key")}if(!m)return n.warn("CHAT","Missing model"),(0,i.yj)(k.gx.BAD_REQUEST,"Missing model");g.startPhase("policy");let y=await (0,z.S)(a,m);if(y.rejection)return n.warn("POLICY",`API key policy rejected: ${m} (key=${y.apiKeyInfo?.id||"unknown"})`),y.rejection;let A=y.apiKeyInfo;g.endPhase(),g.startPhase("resolve");let D=await (0,f.$m)(m);if(D){n.info("CHAT",`Combo "${m}" [${D.strategy||"priority"}] with ${D.models.length} models`);let d=async a=>{let b=await (0,f.mA)(a),c=b.provider;if(!c)return!0;if(!(0,u.fj)(c,b.model||a))return n.debug("AVAILABILITY",`${c}/${b.model} in cooldown, skipping`),!1;let d=await (0,e.c1)(c);return!!d&&!d.allRateLimited},[h,i]=await Promise.all([(0,p.V7)().catch(()=>({})),(0,p.Uv)().catch(()=>[])]);g.endPhase();let k=await (0,j.Pr)({body:c,combo:D,handleSingleModel:(c,d)=>C(c,d,b,a,D.name,A,g),isModelAvailable:d,log:n,settings:h,allCombos:i});return(0,w.N3)(g),k}g.endPhase();let E=await C(c,m,b,a,null,A,g);return(0,w.N3)(g),E}async function C(a,b,c=null,d=null,f=null,g=null,h=null){var j,l;let m=await D(b,a);if(m.error)return m.error;let{provider:p,model:s,sourceFormat:w,targetFormat:x,extendedContext:z}=m,A=(j=p,l=s,(0,u.fj)(j,l)?(0,t.getCircuitBreaker)(j,{failureThreshold:5,resetTimeout:3e4,onStateChange:(a,b,c)=>n.info("CIRCUIT",`${a}: ${b} → ${c}`)}).canExecute()?null:(n.warn("CIRCUIT",`Circuit breaker OPEN for ${j}, rejecting request`),(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Provider ${j} circuit breaker is open`,30)):(n.warn("AVAILABILITY",`${j}/${l} is in cooldown, rejecting request`),(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Model ${j}/${l} is temporarily unavailable (cooldown)`,30)));if(A)return A;let B=(0,t.getCircuitBreaker)(p,{failureThreshold:5,resetTimeout:3e4,onStateChange:(a,b,c)=>n.info("CIRCUIT",`${a}: ${b} → ${c}`)}),G=d?.headers?.get("user-agent")||"",H=null,I=null,J=null;for(;;){let b=await (0,e.c1)(p,H);if(!b||b.allRateLimited)return(429===J||503===J)&&((0,u.gC)(p,s,6e4,`HTTP ${J}`),n.info("AVAILABILITY",`${p}/${s} marked unavailable — all accounts exhausted (HTTP ${J})`)),function(a,b,c,d,e,f){if(a?.allRateLimited){let b=e||a.lastError||"Unavailable",g=f||Number(a.lastErrorCode)||k.gx.SERVICE_UNAVAILABLE;return n.warn("CHAT",`[${c}/${d}] ${b} (${a.retryAfterHuman})`),(0,i.wO)(g,`[${c}/${d}] ${b}`,a.retryAfter,a.retryAfterHuman)}return b?(n.warn("CHAT","No more accounts available",{provider:c}),(0,i.yj)(f||k.gx.SERVICE_UNAVAILABLE,e||"All accounts unavailable")):(n.error("AUTH",`No credentials for provider: ${c}`),(0,i.yj)(k.gx.BAD_REQUEST,`No credentials for provider: ${c}`))}(b,H,p,s,I,J);let d=b.connectionId.slice(0,8);n.info("AUTH",`Using ${p} account: ${d}...`);let j=await (0,o.eU)(p,b),l=await F(b.connectionId),m=Date.now();h&&h.startPhase("connect");let{result:t,tlsFingerprintUsed:A}=await E({breaker:B,body:a,provider:p,model:s,refreshedCredentials:j,proxyInfo:l,log:n,clientRawRequest:c,credentials:b,apiKeyInfo:g,userAgent:G,comboName:f,extendedContext:z});h&&h.endPhase();let C=Date.now()-m;if(function({result:a,proxyInfo:b,proxyLatency:c,provider:d,model:e,sourceFormat:f,targetFormat:g,credentials:h,comboName:i,clientRawRequest:j,tlsFingerprintUsed:k=!1}){try{(0,q.pq)({status:a.success?"success":408===a.status||504===a.status?"timeout":"error",proxy:b?.proxy||null,level:b?.level||"direct",levelId:b?.levelId||null,provider:d,targetUrl:`${d}/${e}`,latencyMs:c,error:a.success?null:a.error||null,connectionId:h.connectionId,comboId:i||null,account:h.connectionId?.slice(0,8)||null,tlsFingerprint:k})}catch{}try{(0,r.MR)({provider:d,model:e,sourceFormat:f,targetFormat:g,status:a.success?"success":"error",statusCode:a.success?200:a.status||500,latency:c,endpoint:j?.endpoint||"/v1/chat/completions",connectionId:h.connectionId||null,comboName:i||null})}catch{}}({result:t,proxyInfo:l,proxyLatency:C,provider:p,model:s,sourceFormat:w,targetFormat:x,credentials:b,comboName:f,clientRawRequest:c,tlsFingerprintUsed:A}),t.success)return(0,u.DQ)(p,s),function(a,b){if(a?.id)try{let c=b.usage||{},d=((c.prompt_tokens||0)+(c.completion_tokens||0))*1e-6;d>0&&(0,y.n5)(a.id,d)}catch{}}(g,t),h&&h.startPhase("finalize"),h&&h.endPhase(),t.response;429===t.status&&(0,v.Dk)(b.connectionId,p);let{shouldFallback:D}=await (0,e.vk)(b.connectionId,t.status,t.error,p);if(D){n.warn("AUTH",`Account ${d}... unavailable (${t.status}), trying fallback`),H=b.connectionId,I=t.error,J=t.status;continue}return t.response}}async function D(a,b){let c=await (0,f.mA)(a);if(!c.provider){if("ambiguous_model"===c.errorType){let b=c.errorMessage||`Ambiguous model '${a}'. Use provider/model prefix (ex: gh/${a} or cc/${a}).`;return n.warn("CHAT",b,{model:a,candidates:c.candidateAliases||c.candidateProviders||[]}),{error:(0,i.yj)(k.gx.BAD_REQUEST,b)}}return n.warn("CHAT","Invalid model format",{model:a}),{error:(0,i.yj)(k.gx.BAD_REQUEST,"Invalid model format")}}let{provider:d,model:e,extendedContext:h}=c,j=(0,g.Tz)(b),m=l.PROVIDER_ID_TO_ALIAS[d]||d,o=(0,l.ux)(m,e)||(0,g.jJ)(d);"responses"===c.apiFormat&&(o="openai-responses",n.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let p=h&&"claude"===m?" [1m]":"";return a!==`${d}/${e}`?n.info("ROUTING",`${a} → ${d}/${e}${p}`):n.info("ROUTING",`Provider: ${d}, Model: ${e}${p}`),{provider:d,model:e,sourceFormat:j,targetFormat:o,extendedContext:h}}async function E({breaker:a,body:b,provider:c,model:d,refreshedCredentials:f,proxyInfo:g,log:j,clientRawRequest:l,credentials:p,apiKeyInfo:q,userAgent:r,comboName:s,extendedContext:u}){try{let i=()=>(0,m.jf)(g?.proxy||null,()=>(0,h.w)({body:{...b,model:`${c}/${d}`},modelInfo:{provider:c,model:d,extendedContext:u},credentials:f,log:j,clientRawRequest:l,connectionId:p.connectionId,apiKeyInfo:q,userAgent:r,comboName:s,onCredentialsRefreshed:async a=>{await (0,o.vN)(p.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(p.connectionId,p)}}));if(!g?.proxy&&(0,m.Wk)()){let b=await a.execute(async()=>(0,m.qT)(i));return{result:b.result,tlsFingerprintUsed:b.tlsFingerprintUsed}}return{result:await a.execute(i),tlsFingerprintUsed:!1}}catch(a){if(a instanceof t.ez)return n.warn("CIRCUIT",`${c} circuit open during retry: ${a.message}`),{result:{success:!1,response:(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Provider ${c} circuit breaker is open`,Math.ceil(a.retryAfterMs/1e3)),status:k.gx.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw a}}async function F(a){try{return await (0,p.YD)(a)}catch(a){return n.debug("PROXY",`Failed to resolve proxy: ${a.message}`),null}}h=(A.then?(await A)():A)[0],d()}catch(a){d(a)}})},13961:(a,b,c)=>{c.d(b,{$m:()=>h,mA:()=>g});var d=c(22901),e=c(99939);async function f(a,b){try{let c=await (0,d.uv)(a);if(!Array.isArray(c))return;let e=c.find(a=>a.id===b);return e?.apiFormat==="responses"?"responses":void 0}catch{return}}async function g(a){let b=(0,e.Xh)(a),{extendedContext:c}=b;if(b.providerAlias||b.provider){let a=b.providerAlias||b.provider,e=(await (0,d.Fh)({type:"openai-compatible"})).find(b=>b.prefix===a);if(e){let a=await f(e.id,b.model);return{provider:e.id,model:b.model,extendedContext:c,...a&&{apiFormat:a}}}let g=(await (0,d.Fh)({type:"anthropic-compatible"})).find(b=>b.prefix===a);if(g){let a=await f(g.id,b.model);return{provider:g.id,model:b.model,extendedContext:c,...a&&{apiFormat:a}}}}return b.isAlias?(0,e.js)(a,d.OM):(0,e.js)(a,null)}async function h(a){let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b:null}},20864:(a,b,c)=>{c.d(b,{DQ:()=>h,GX:()=>j,Wj:()=>i,fj:()=>f,gC:()=>g});let d=new Map;function e(a,b){return`${a}::${b}`}function f(a,b){let c=e(a,b),f=d.get(c);return!f||Date.now()-f.unavailableSince>=f.cooldownMs&&(d.delete(c),!0)}function g(a,b,c=6e4,f){let h=e(a,b);d.set(h,{provider:a,model:b,unavailableSince:Date.now(),cooldownMs:c,reason:f||"unknown"})}function h(a,b){return d.delete(e(a,b))}function i(){let a=Date.now(),b=[];for(let[c,e]of d.entries()){let f=a-e.unavailableSince;if(f>=e.cooldownMs){d.delete(c);continue}b.push({provider:e.provider,model:e.model,reason:e.reason||"unknown",remainingMs:e.cooldownMs-f,unavailableSince:new Date(e.unavailableSince).toISOString()})}return b}function j(){return i(),d.size}},26510:(a,b,c)=>{function d(){return globalThis.__translatorEvents||(globalThis.__translatorEvents=[]),globalThis.__translatorEvents}function e(a){if(!a||"object"!=typeof a)return;let b=d();b.unshift({id:`evt_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString(),...a}),b.length>200&&(b.length=200)}function f(a=50){let b=Number(a),c=Number.isFinite(b)&&b>0?Math.min(Math.floor(b),200):50,e=d();return{events:e.slice(0,c),total:e.length}}c.d(b,{MR:()=>e,zS:()=>f})},26695:(a,b,c)=>{c.d(b,{lm:()=>g.lm,l2:()=>r,i5:()=>q,v8:()=>j});var d=c(79631),e=c(55120),f=c(19704),g=c(50101);function h(a){if(!a)return null;let b=a.trimStart();if(!b||100!==b.charCodeAt(0))return null;let c=b.slice(5).trim();if("[DONE]"===c)return{done:!0};try{return JSON.parse(c)}catch(a){return c.length>0&&console.log(`[WARN] Failed to parse SSE line (${c.length} chars): ${c.substring(0,200)}...`),null}}function i(a,b){if(b===e.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||b.reasoning_content&&""!==b.reasoning_content||b.tool_calls&&b.tool_calls.length>0||a.choices[0].finish_reason||b.role}if(b===e.h.CLAUDE){let b="content_block_delta"===a.type,c=a.delta?.text&&""!==a.delta.text,d=a.delta?.thinking&&""!==a.delta.thinking,e=a.delta?.partial_json&&""!==a.delta.partial_json;return!b||!!c||!!d||!!e}if(b===e.h.GEMINI&&a.candidates?.[0]){let b=a.candidates[0];if(b.finishReason)return!0;let c=b.content?.parts;return!!c&&0!==c.length&&c.some(a=>a.text&&""!==a.text||a.functionCall||a.executableCode)}return!0}function j(a,b){return null==a?"data: null\n\n":a&&a.done?"data: [DONE]\n\n":a&&a.event&&a.data?`event: ${a.event}
1
+ "use strict";exports.id=2767,exports.ids=[2767],exports.modules={1308:(a,b,c)=>{c.d(b,{$E:()=>s,Eo:()=>B,Kr:()=>y,UE:()=>z,YO:()=>u,getAllRateLimitStatus:()=>A,mg:()=>r,rh:()=>q});var d=c(57217),e=c.n(d);c(74163);var f=c(83596),g=c(60293);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){let c="number"==typeof a?a:"string"==typeof a&&a.trim().length>0?Number(a):NaN;return Number.isFinite(c)?c:b}let j=new Map,k=new Set,l={},m=null,n=!1,o=parseInt(process.env.RATE_LIMIT_MAX_WAIT_MS||"120000",10),p={maxConcurrent:10,minTime:0,reservoir:null,reservoirRefreshAmount:null,reservoirRefreshInterval:null,maxWait:o};async function q(){if(!n){n=!0;try{let{getProviderConnections:a}=await Promise.resolve().then(c.bind(c,75585)),b=await a(),d=0,l=0,m=0;for(let a of b){let b=h(a),c="string"==typeof b.id?b.id:"",n="string"==typeof b.provider?b.provider:"",p=!0===b.isActive,q=!0===b.rateLimitProtection,r=i(b.customRpm,0),s=i(b.customTpm,0);if(c&&n){if(r>0||s>0){k.add(c),m++;let a=`${n}:${c}`,b=r>0?r:g.DEFAULT_API_LIMITS.requestsPerMinute,d=Math.max(0,Math.floor(6e4/b)-10);j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:d,reservoir:b,reservoirRefreshAmount:b,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}else if(q)k.add(c),d++;else if("apikey"===(0,f.oQ)(n)&&p){k.add(c),l++;let a=`${n}:${c}`;j.has(a)||j.set(a,new(e())({maxConcurrent:g.DEFAULT_API_LIMITS.concurrentRequests,minTime:g.DEFAULT_API_LIMITS.minTimeBetweenRequests,reservoir:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshAmount:g.DEFAULT_API_LIMITS.requestsPerMinute,reservoirRefreshInterval:6e4,maxWait:o,id:a}))}}}(d>0||l>0||m>0)&&console.log(`🛡️ [RATE-LIMIT] Loaded ${d} explicit + ${l} auto-enabled + ${m} custom rpm/tpm protection(s)`),await C()}catch(a){console.error("[RATE-LIMIT] Failed to load settings:",a.message)}}}function r(a){k.add(a)}function s(a){for(let[b]of(k.delete(a),j))if(b.includes(a)){let a=j.get(b);a?.disconnect(),j.delete(b)}}function t(a,b,c=null){let d=c?`${a}:${b}:${c}`:`${a}:${b}`;if(!j.has(d)){let a=new(e())({...p,id:d});a.on("queued",()=>{let b=a.counts();b.QUEUED>0&&console.log(`⏳ [RATE-LIMIT] ${d} — ${b.QUEUED} request(s) queued, ${b.RUNNING} running`)}),j.set(d,a)}return j.get(d)}async function u(a,b,c,d){return k.has(b)?t(a,b,null).schedule(d):d()}let v={limit:"x-ratelimit-limit-requests",remaining:"x-ratelimit-remaining-requests",reset:"x-ratelimit-reset-requests",limitTokens:"x-ratelimit-limit-tokens",remainingTokens:"x-ratelimit-remaining-tokens",resetTokens:"x-ratelimit-reset-tokens",retryAfter:"retry-after",overLimit:"x-ratelimit-over-limit"},w={limit:"anthropic-ratelimit-requests-limit",remaining:"anthropic-ratelimit-requests-remaining",reset:"anthropic-ratelimit-requests-reset",limitTokens:"anthropic-ratelimit-input-tokens-limit",remainingTokens:"anthropic-ratelimit-input-tokens-remaining",resetTokens:"anthropic-ratelimit-input-tokens-reset",retryAfter:"retry-after"};function x(a){if(!a)return null;let b=a.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+)s)?(?:(\d+)ms)?$/);if(b){let[,a,c,d,e]=b;return(3600*parseInt(a||0)+60*parseInt(c||0)+parseInt(d||0))*1e3+parseInt(e||0)}let c=parseFloat(a);if(!isNaN(c)&&c>0)return c>17e8?Math.max(0,1e3*c-Date.now()):1e3*c;try{let b=new Date(a);if(!isNaN(b.getTime()))return Math.max(0,b.getTime()-Date.now())}catch{}return null}function y(a,b,d,e,f=null){if(!k.has(b)||!d)return;let g=t(a,b,null),h="claude"===a||"anthropic"===a?w:v,i=a=>"function"==typeof d.get?d.get(a):d[a]||null,j=parseInt(i(h.limit)),n=parseInt(i(h.remaining)),o=i(h.reset),p=i(h.retryAfter),q=i(v.overLimit);if(429===e){let c=x(p)||6e4;console.log(`🚫 [RATE-LIMIT] ${a}:${b.slice(0,8)} — 429 received, pausing for ${Math.ceil(c/1e3)}s`),g.updateSettings({reservoir:0,reservoirRefreshAmount:j||60,reservoirRefreshInterval:c});return}if("yes"===q){console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — near capacity, slowing down`),g.updateSettings({minTime:200});return}if(!isNaN(j)&&j>0){var r,s,u;let d=x(o)||6e4,e={minTime:Math.max(0,Math.floor(6e4/j)-10)};!isNaN(n)&&(n<.1*j?(e.reservoir=n,e.reservoirRefreshAmount=j,e.reservoirRefreshInterval=d,console.log(`⚠️ [RATE-LIMIT] ${a}:${b.slice(0,8)} — ${n}/${j} remaining, throttling`)):n>.5*j&&(e.minTime=0,e.reservoir=null,e.reservoirRefreshAmount=null,e.reservoirRefreshInterval=null)),g.updateSettings(e),r=a,s=b,u={limit:j,remaining:n,minTime:e.minTime},l[`${r}:${s}`]={...u,provider:r,connectionId:s,lastUpdated:Date.now()},m||(m=setTimeout(async()=>{m=null;try{let{updateSettings:a}=await Promise.resolve().then(c.bind(c,9679));await a({learnedRateLimits:JSON.stringify(l)}),console.log(`💾 [RATE-LIMIT] Persisted learned limits for ${Object.keys(l).length} provider(s)`)}catch(a){console.error("[RATE-LIMIT] Failed to persist learned limits:",a.message)}},6e4))}}function z(a,b){let c=`${a}:${b}`,d=j.get(c);if(!d)return{enabled:k.has(b),active:!1,queued:0,running:0};let e=d.counts();return{enabled:k.has(b),active:!0,queued:e.QUEUED||0,running:e.RUNNING||0,executing:e.EXECUTING||0,done:e.DONE||0}}function A(){let a={};for(let[b,c]of j){let d=c.counts();a[b]={queued:d.QUEUED||0,running:d.RUNNING||0,executing:d.EXECUTING||0}}return a}function B(){return{...l}}async function C(){try{let{getSettings:a}=await Promise.resolve().then(c.bind(c,9679)),b=await a(),d=b?.learnedRateLimits;if("string"!=typeof d||0===d.trim().length)return;let e=h(JSON.parse(d)),f=0;for(let[a,b]of Object.entries(e)){let c=h(b),d=i(c.lastUpdated,0);if(d>0&&Date.now()-d>864e5)continue;let e="string"==typeof c.connectionId?c.connectionId:"",g="string"==typeof c.provider?c.provider:"",m=i(c.limit,0),n=i(c.remaining,0),o=i(c.minTime,0);if(l[a]={provider:g,connectionId:e,lastUpdated:d,...m>0?{limit:m}:{},...n>=0?{remaining:n}:{},...o>=0?{minTime:o}:{}},e&&k.has(e)){let b=j.get(a);if(b&&m>0){let a=o||Math.max(0,Math.floor(6e4/m)-10);b.updateSettings({minTime:a}),f++}}}f>0&&console.log(`📥 [RATE-LIMIT] Restored ${f} learned rate limit(s) from persistence`)}catch(a){console.error("[RATE-LIMIT] Failed to load persisted limits:",a.message)}}},6327:(a,b,c)=>{function d({onDisconnect:a,log:b,provider:c,model:e}={}){let f=new AbortController,g=Date.now(),h=!1,i=null,j=a=>{let b=Date.now()-g,d=c?.toUpperCase()||"UNKNOWN";console.log(`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 🌊 [STREAM] ${d} | ${e||"unknown"} | ${b}ms | ${a}`)};return{signal:f.signal,startTime:g,isConnected:()=>!h,handleDisconnect:(b="client_closed")=>{h||(h=!0,j(`disconnect: ${b}`),i=setTimeout(()=>{f.abort()},500),a?.({reason:b,duration:Date.now()-g}))},handleComplete:()=>{!h&&(h=!0,j("complete"),i&&(clearTimeout(i),i=null))},handleError:a=>{(i&&(clearTimeout(i),i=null),a instanceof Error&&"AbortError"===a.name)?j("aborted"):a instanceof Error?j(`error: ${a.message}`):j("error: unknown")},abort:()=>f.abort()}}function e(a,b,c){var d;let e,f;return d={readable:a.body.pipeThrough(b),writable:{getWriter:()=>({abort:()=>{}})}},e=d.readable.getReader(),f=d.writable.getWriter(),new ReadableStream({async pull(a){if(!c.isConnected())return void a.close();try{let{done:b,value:d}=await e.read();if(b){c.handleComplete(),a.close();return}a.enqueue(d)}catch(b){c.handleError(b),a.error(b)}},cancel(a){c.handleDisconnect(a||"cancelled"),e.cancel(),f.abort()}})}c.d(b,{Jb:()=>e,jd:()=>d})},8550:(a,b,c)=>{c.d(b,{M:()=>d});function d(a,b){if(!a||"object"!=typeof a)return null;if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return{prompt_tokens:a.usage.prompt_tokens||0,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens};let c=a.response?.usage||a.usage;return c&&"object"==typeof c&&(void 0!==c.input_tokens||void 0!==c.output_tokens)?{prompt_tokens:c.input_tokens||0,completion_tokens:c.output_tokens||0,cached_tokens:c.cache_read_input_tokens,cache_creation_input_tokens:c.cache_creation_input_tokens,reasoning_tokens:c.reasoning_tokens||c.output_tokens_details?.reasoning_tokens}:a.usage&&"object"==typeof a.usage&&(void 0!==a.usage.input_tokens||void 0!==a.usage.output_tokens)?{prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens}:a.usageMetadata&&"object"==typeof a.usageMetadata?{prompt_tokens:a.usageMetadata.promptTokenCount||0,completion_tokens:a.usageMetadata.candidatesTokenCount||0,reasoning_tokens:a.usageMetadata.thoughtsTokenCount}:null}},9315:(a,b,c)=>{c.d(b,{Cb:()=>n,IL:()=>q,QS:()=>r,RE:()=>p,TZ:()=>s,gR:()=>m,yv:()=>o});var d=c(77598),e=c.n(d),f=c(44594),g=c(42910);function h(a){return a&&"object"==typeof a&&!Array.isArray(a)?a:{}}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim().length>0){let c=Number(a);return Number.isFinite(c)?c:b}return b}let j=null,k={hits:0,misses:0,tokensSaved:0};function l(){return j||(j=new f.q({maxSize:parseInt(process.env.SEMANTIC_CACHE_MAX_SIZE||"100",10),maxBytes:parseInt(process.env.SEMANTIC_CACHE_MAX_BYTES||String(4194304),10),defaultTTL:parseInt(process.env.SEMANTIC_CACHE_TTL_MS||"1800000",10)})),j}function m(a,b,c=0,d=1){var f;let g=JSON.stringify({model:a,messages:Array.isArray(f=b)?f.map(a=>({role:a.role||"user",content:"string"==typeof a.content?a.content:JSON.stringify(a.content)})):[],temperature:c,top_p:d});return e().createHash("sha256").update(g).digest("hex")}function n(a){let b=l().get(a);if(b)return k.hits++,k.tokensSaved+=b.tokensSaved||0,b.response;try{let b=(0,g.sm)(),c=b.prepare("SELECT response, tokens_saved FROM semantic_cache WHERE signature = ? AND expires_at > datetime('now')").get(a);if(c){let d=h(c),e="string"==typeof d.response?d.response:null;if(!e)return k.misses++,null;let f=JSON.parse(e),g=i(d.tokens_saved,0);return l().set(a,{response:f,tokensSaved:g}),b.prepare("UPDATE semantic_cache SET hit_count = hit_count + 1 WHERE signature = ?").run(a),k.hits++,k.tokensSaved+=g,f}}catch{}return k.misses++,null}function o(a,b,c,d=0,f=36e5){let h=parseInt(process.env.SEMANTIC_CACHE_TTL_MS||String(f),10);l().set(a,{response:c,tokensSaved:d},h);try{let f=(0,g.sm)(),i=e().randomUUID(),j=a.slice(0,16),k=new Date().toISOString(),l=new Date(Date.now()+h).toISOString();f.prepare(`INSERT OR REPLACE INTO semantic_cache (id, signature, model, prompt_hash, response, tokens_saved, hit_count, created_at, expires_at)
2
+ VALUES (?, ?, ?, ?, ?, ?, 0, ?, ?)`).run(i,a,b,j,JSON.stringify(c),d,k,l)}catch{}}function p(){try{return(0,g.sm)().prepare("DELETE FROM semantic_cache WHERE expires_at <= datetime('now')").run().changes}catch{return 0}}function q(){l().clear();try{(0,g.sm)().prepare("DELETE FROM semantic_cache").run()}catch{}k={hits:0,misses:0,tokensSaved:0}}function r(){let a=l().getStats(),b=0;try{let a=(0,g.sm)().prepare("SELECT COUNT(*) as count FROM semantic_cache WHERE expires_at > datetime('now')").get();b=i(h(a).count,0)}catch{}let c=k.hits+k.misses;return{memoryEntries:a.size,dbEntries:b,hits:k.hits,misses:k.misses,hitRate:c>0?(k.hits/c*100).toFixed(1):"0.0",tokensSaved:k.tokensSaved}}function s(a,b){return b?.get?.("x-omniroute-no-cache")!=="true"&&!1===a.stream&&(a.temperature??0)===0}},9686:(a,b,c)=>{c.d(b,{eU:()=>j,iD:()=>h,vN:()=>i});var d=c(27976),e=c(75585),f=c(87068);let g=f.oD,h=(a,b)=>(0,f.iD)(a,b,d);async function i(a,b){try{let c={};b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.expiresIn&&(c.expiresAt=new Date(Date.now()+1e3*b.expiresIn).toISOString(),c.expiresIn=b.expiresIn),b.providerSpecificData&&(c.providerSpecificData=b.providerSpecificData);let f=await (0,e.rj)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function j(a,b){let c={...b};if(c.expiresAt){let b=new Date(c.expiresAt).getTime(),e=Date.now();if(b-e<g){d.info("TOKEN_REFRESH","Token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let f=await h(a,c);f&&f.accessToken&&(await i(c.connectionId,f),c={...c,accessToken:f.accessToken,refreshToken:f.refreshToken||c.refreshToken,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():c.expiresAt})}}if("github"===a&&c.providerSpecificData?.copilotTokenExpiresAt){let b=1e3*c.providerSpecificData.copilotTokenExpiresAt,e=Date.now();if(b-e<g){let g;d.info("TOKEN_REFRESH","Copilot token expiring soon, refreshing proactively",{provider:a,expiresIn:Math.round((b-e)/1e3)});let h=await (g=c.accessToken,(0,f.jR)(g,d));h&&(await i(c.connectionId,{providerSpecificData:{...c.providerSpecificData,copilotToken:h.token,copilotTokenExpiresAt:h.expiresAt}}),c.providerSpecificData={...c.providerSpecificData,copilotToken:h.token,copilotTokenExpiresAt:h.expiresAt})}}return c}},12767:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>C});var e=c(21020),f=c(13961),g=c(32113),h=c(69590),i=c(71861),j=c(17669),k=c(60293),l=c(23969),m=c(76340),n=c(27976),o=c(9686),p=c(75585),q=c(34493),r=c(26510),s=c(77458),t=c(12620),u=c(20864),v=c(82742),w=c(44057),x=c(59545),y=c(78790),z=c(70884),A=c(82162),B=a([h]);async function C(a,b=null){let c,d=(0,x.KZ)(),g=new w.TT(d);try{g.startPhase("parse"),c=await a.json(),g.endPhase()}catch{return n.warn("CHAT","Invalid JSON body"),(0,i.yj)(k.gx.BAD_REQUEST,"Invalid JSON body")}g.startPhase("validate");let h=(0,s.Jh)(c,n);if(h.blocked)return n.warn("SANITIZER","Request blocked due to prompt injection",{detections:h.detections}),(0,i.yj)(k.gx.BAD_REQUEST,"Request rejected: suspicious content detected");h.modified&&h.sanitizedBody&&(c=h.sanitizedBody),g.endPhase(),(a.headers.get("accept")||"").includes("text/event-stream")&&void 0===c.stream&&(c={...c,stream:!0},n.debug("STREAM","Accept: text/event-stream header → overriding stream=true (body had no stream field)")),b||(b={endpoint:new URL(a.url).pathname,body:c,headers:Object.fromEntries(a.headers.entries())});let l=new URL(a.url),m=c.model,o=c.messages?.length||c.input?.length||0,q=c.tools?.length||0,r=c.reasoning_effort||c.reasoning?.effort||null;n.request("POST",`${l.pathname} | ${m} | ${o} msgs${q?` | ${q} tools`:""}${r?` | effort=${r}`:""}`);let t=a.headers.get("Authorization"),v=(0,e.Tr)(a);if(t&&v?n.debug("AUTH",`API Key: ${n.maskKey(v)}`):n.debug("AUTH","No API key provided (local mode)"),"true"===process.env.REQUIRE_API_KEY){if(!v)return n.warn("AUTH","Missing API key while REQUIRE_API_KEY=true"),(0,i.yj)(k.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(v))return n.warn("AUTH","Invalid API key while REQUIRE_API_KEY=true"),(0,i.yj)(k.gx.UNAUTHORIZED,"Invalid API key")}if(!m)return n.warn("CHAT","Missing model"),(0,i.yj)(k.gx.BAD_REQUEST,"Missing model");g.startPhase("policy");let y=await (0,z.S)(a,m);if(y.rejection)return n.warn("POLICY",`API key policy rejected: ${m} (key=${y.apiKeyInfo?.id||"unknown"})`),y.rejection;let B=y.apiKeyInfo;g.endPhase();let E=m;if((0,A.G3)().enabled){g.startPhase("task-route");let a=(0,A.oC)(m,c);a.wasRouted?(E=a.model,c={...c,model:a.model},n.info("T05",`Task-Aware: detected="${a.taskType}" → model override: ${m} → ${a.model}`)):"chat"!==a.taskType&&n.debug("T05",`Task-Aware: detected="${a.taskType}" (no override configured)`),a.taskType,a.wasRouted,g.endPhase()}g.startPhase("resolve");let F=await (0,f.$m)(E);if(F){n.info("CHAT",`Combo "${m}" [${F.strategy||"priority"}] with ${F.models.length} models`);let d=async a=>{let b=await (0,f.mA)(a),c=b.provider;if(!c)return!0;if(!(0,u.fj)(c,b.model||a))return n.debug("AVAILABILITY",`${c}/${b.model} in cooldown, skipping`),!1;let d=await (0,e.c1)(c);return!!d&&!d.allRateLimited},[h,i]=await Promise.all([(0,p.V7)().catch(()=>({})),(0,p.Uv)().catch(()=>[])]);g.endPhase();let k=await (0,j.Pr)({body:c,combo:F,handleSingleModel:(c,d)=>D(c,d,b,a,F.name,B,g),isModelAvailable:d,log:n,settings:h,allCombos:i});return(0,w.N3)(g),k}g.endPhase();let G=await D(c,m,b,a,null,B,g);return(0,w.N3)(g),G}async function D(a,b,c=null,d=null,f=null,g=null,h=null){var j,l;let m=await E(b,a);if(m.error)return m.error;let{provider:p,model:s,sourceFormat:w,targetFormat:x,extendedContext:z}=m,A=(j=p,l=s,(0,u.fj)(j,l)?(0,t.getCircuitBreaker)(j,{failureThreshold:5,resetTimeout:3e4,onStateChange:(a,b,c)=>n.info("CIRCUIT",`${a}: ${b} → ${c}`)}).canExecute()?null:(n.warn("CIRCUIT",`Circuit breaker OPEN for ${j}, rejecting request`),(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Provider ${j} circuit breaker is open`,30)):(n.warn("AVAILABILITY",`${j}/${l} is in cooldown, rejecting request`),(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Model ${j}/${l} is temporarily unavailable (cooldown)`,30)));if(A)return A;let B=(0,t.getCircuitBreaker)(p,{failureThreshold:5,resetTimeout:3e4,onStateChange:(a,b,c)=>n.info("CIRCUIT",`${a}: ${b} → ${c}`)}),C=d?.headers?.get("user-agent")||"",H=null,I=null,J=null;for(;;){let b=await (0,e.c1)(p,H);if(!b||b.allRateLimited)return(429===J||503===J)&&((0,u.gC)(p,s,6e4,`HTTP ${J}`),n.info("AVAILABILITY",`${p}/${s} marked unavailable — all accounts exhausted (HTTP ${J})`)),function(a,b,c,d,e,f){if(a?.allRateLimited){let b=e||a.lastError||"Unavailable",g=f||Number(a.lastErrorCode)||k.gx.SERVICE_UNAVAILABLE;return n.warn("CHAT",`[${c}/${d}] ${b} (${a.retryAfterHuman})`),(0,i.wO)(g,`[${c}/${d}] ${b}`,a.retryAfter,a.retryAfterHuman)}return b?(n.warn("CHAT","No more accounts available",{provider:c}),(0,i.yj)(f||k.gx.SERVICE_UNAVAILABLE,e||"All accounts unavailable")):(n.error("AUTH",`No credentials for provider: ${c}`),(0,i.yj)(k.gx.BAD_REQUEST,`No credentials for provider: ${c}`))}(b,H,p,s,I,J);let d=b.connectionId.slice(0,8);n.info("AUTH",`Using ${p} account: ${d}...`);let j=await (0,o.eU)(p,b),l=await G(b.connectionId),m=Date.now();h&&h.startPhase("connect");let{result:t,tlsFingerprintUsed:A}=await F({breaker:B,body:a,provider:p,model:s,refreshedCredentials:j,proxyInfo:l,log:n,clientRawRequest:c,credentials:b,apiKeyInfo:g,userAgent:C,comboName:f,extendedContext:z});h&&h.endPhase();let D=Date.now()-m;if(function({result:a,proxyInfo:b,proxyLatency:c,provider:d,model:e,sourceFormat:f,targetFormat:g,credentials:h,comboName:i,clientRawRequest:j,tlsFingerprintUsed:k=!1}){try{(0,q.pq)({status:a.success?"success":408===a.status||504===a.status?"timeout":"error",proxy:b?.proxy||null,level:b?.level||"direct",levelId:b?.levelId||null,provider:d,targetUrl:`${d}/${e}`,latencyMs:c,error:a.success?null:a.error||null,connectionId:h.connectionId,comboId:i||null,account:h.connectionId?.slice(0,8)||null,tlsFingerprint:k})}catch{}try{(0,r.MR)({provider:d,model:e,sourceFormat:f,targetFormat:g,status:a.success?"success":"error",statusCode:a.success?200:a.status||500,latency:c,endpoint:j?.endpoint||"/v1/chat/completions",connectionId:h.connectionId||null,comboName:i||null})}catch{}}({result:t,proxyInfo:l,proxyLatency:D,provider:p,model:s,sourceFormat:w,targetFormat:x,credentials:b,comboName:f,clientRawRequest:c,tlsFingerprintUsed:A}),t.success)return(0,u.DQ)(p,s),function(a,b){if(a?.id)try{let c=b.usage||{},d=((c.prompt_tokens||0)+(c.completion_tokens||0))*1e-6;d>0&&(0,y.n5)(a.id,d)}catch{}}(g,t),h&&h.startPhase("finalize"),h&&h.endPhase(),t.response;429===t.status&&(0,v.Dk)(b.connectionId,p);let{shouldFallback:E}=await (0,e.vk)(b.connectionId,t.status,t.error,p);if(E){n.warn("AUTH",`Account ${d}... unavailable (${t.status}), trying fallback`),H=b.connectionId,I=t.error,J=t.status;continue}return t.response}}async function E(a,b){let c=await (0,f.mA)(a);if(!c.provider){if("ambiguous_model"===c.errorType){let b=c.errorMessage||`Ambiguous model '${a}'. Use provider/model prefix (ex: gh/${a} or cc/${a}).`;return n.warn("CHAT",b,{model:a,candidates:c.candidateAliases||c.candidateProviders||[]}),{error:(0,i.yj)(k.gx.BAD_REQUEST,b)}}return n.warn("CHAT","Invalid model format",{model:a}),{error:(0,i.yj)(k.gx.BAD_REQUEST,"Invalid model format")}}let{provider:d,model:e,extendedContext:h}=c,j=(0,g.Tz)(b),m=l.PROVIDER_ID_TO_ALIAS[d]||d,o=(0,l.ux)(m,e)||(0,g.jJ)(d);"responses"===c.apiFormat&&(o="openai-responses",n.info("ROUTING",`Custom model apiFormat=responses → targetFormat=openai-responses`));let p=h&&"claude"===m?" [1m]":"";return a!==`${d}/${e}`?n.info("ROUTING",`${a} → ${d}/${e}${p}`):n.info("ROUTING",`Provider: ${d}, Model: ${e}${p}`),{provider:d,model:e,sourceFormat:j,targetFormat:o,extendedContext:h}}async function F({breaker:a,body:b,provider:c,model:d,refreshedCredentials:f,proxyInfo:g,log:j,clientRawRequest:l,credentials:p,apiKeyInfo:q,userAgent:r,comboName:s,extendedContext:u}){try{let i=()=>(0,m.jf)(g?.proxy||null,()=>(0,h.w)({body:{...b,model:`${c}/${d}`},modelInfo:{provider:c,model:d,extendedContext:u},credentials:f,log:j,clientRawRequest:l,connectionId:p.connectionId,apiKeyInfo:q,userAgent:r,comboName:s,onCredentialsRefreshed:async a=>{await (0,o.vN)(p.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(p.connectionId,p)}}));if(!g?.proxy&&(0,m.Wk)()){let b=await a.execute(async()=>(0,m.qT)(i));return{result:b.result,tlsFingerprintUsed:b.tlsFingerprintUsed}}return{result:await a.execute(i),tlsFingerprintUsed:!1}}catch(a){if(a instanceof t.ez)return n.warn("CIRCUIT",`${c} circuit open during retry: ${a.message}`),{result:{success:!1,response:(0,i.wO)(k.gx.SERVICE_UNAVAILABLE,`Provider ${c} circuit breaker is open`,Math.ceil(a.retryAfterMs/1e3)),status:k.gx.SERVICE_UNAVAILABLE},tlsFingerprintUsed:!1};throw a}}async function G(a){try{return await (0,p.YD)(a)}catch(a){return n.debug("PROXY",`Failed to resolve proxy: ${a.message}`),null}}h=(B.then?(await B)():B)[0],d()}catch(a){d(a)}})},13961:(a,b,c)=>{c.d(b,{$m:()=>h,mA:()=>g});var d=c(75585),e=c(85863);async function f(a,b){try{let c=await (0,d.uv)(a);if(!Array.isArray(c))return;let e=c.find(a=>a.id===b);return e?.apiFormat==="responses"?"responses":void 0}catch{return}}async function g(a){let b=(0,e.Xh)(a),{extendedContext:c}=b;if(b.providerAlias||b.provider){let a=b.providerAlias||b.provider,e=(await (0,d.Fh)({type:"openai-compatible"})).find(b=>b.prefix===a);if(e){let a=await f(e.id,b.model);return{provider:e.id,model:b.model,extendedContext:c,...a&&{apiFormat:a}}}let g=(await (0,d.Fh)({type:"anthropic-compatible"})).find(b=>b.prefix===a);if(g){let a=await f(g.id,b.model);return{provider:g.id,model:b.model,extendedContext:c,...a&&{apiFormat:a}}}}return b.isAlias?(0,e.js)(a,d.OM):(0,e.js)(a,null)}async function h(a){let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b:null}},20864:(a,b,c)=>{c.d(b,{DQ:()=>h,GX:()=>j,Wj:()=>i,fj:()=>f,gC:()=>g});let d=new Map;function e(a,b){return`${a}::${b}`}function f(a,b){let c=e(a,b),f=d.get(c);return!f||Date.now()-f.unavailableSince>=f.cooldownMs&&(d.delete(c),!0)}function g(a,b,c=6e4,f){let h=e(a,b);d.set(h,{provider:a,model:b,unavailableSince:Date.now(),cooldownMs:c,reason:f||"unknown"})}function h(a,b){return d.delete(e(a,b))}function i(){let a=Date.now(),b=[];for(let[c,e]of d.entries()){let f=a-e.unavailableSince;if(f>=e.cooldownMs){d.delete(c);continue}b.push({provider:e.provider,model:e.model,reason:e.reason||"unknown",remainingMs:e.cooldownMs-f,unavailableSince:new Date(e.unavailableSince).toISOString()})}return b}function j(){return i(),d.size}},26510:(a,b,c)=>{function d(){return globalThis.__translatorEvents||(globalThis.__translatorEvents=[]),globalThis.__translatorEvents}function e(a){if(!a||"object"!=typeof a)return;let b=d();b.unshift({id:`evt_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString(),...a}),b.length>200&&(b.length=200)}function f(a=50){let b=Number(a),c=Number.isFinite(b)&&b>0?Math.min(Math.floor(b),200):50,e=d();return{events:e.slice(0,c),total:e.length}}c.d(b,{MR:()=>e,zS:()=>f})},26695:(a,b,c)=>{c.d(b,{lm:()=>g.lm,l2:()=>r,i5:()=>q,v8:()=>j});var d=c(79631),e=c(55120),f=c(19704),g=c(50101);function h(a){if(!a)return null;let b=a.trimStart();if(!b||100!==b.charCodeAt(0))return null;let c=b.slice(5).trim();if("[DONE]"===c)return{done:!0};try{return JSON.parse(c)}catch(a){return c.length>0&&console.log(`[WARN] Failed to parse SSE line (${c.length} chars): ${c.substring(0,200)}...`),null}}function i(a,b){if(b===e.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||b.reasoning_content&&""!==b.reasoning_content||b.tool_calls&&b.tool_calls.length>0||a.choices[0].finish_reason||b.role}if(b===e.h.CLAUDE){let b="content_block_delta"===a.type,c=a.delta?.text&&""!==a.delta.text,d=a.delta?.thinking&&""!==a.delta.thinking,e=a.delta?.partial_json&&""!==a.delta.partial_json;return!b||!!c||!!d||!!e}if(b===e.h.GEMINI&&a.candidates?.[0]){let b=a.candidates[0];if(b.finishReason)return!0;let c=b.content?.parts;return!!c&&0!==c.length&&c.some(a=>a.text&&""!==a.text||a.functionCall||a.executableCode)}return!0}function j(a,b){return null==a?"data: null\n\n":a&&a.done?"data: [DONE]\n\n":a&&a.event&&a.data?`event: ${a.event}
3
3
  data: ${JSON.stringify(a.data)}
4
4
 
5
5
  `:(a=function(a){if(a?.usage&&"object"==typeof a.usage&&null===a.usage.perf_metrics){let{perf_metrics:b,...c}=a.usage;return{...a,usage:c}}return a}(a),b===e.h.CLAUDE&&a&&a.type)?`event: ${a.type}
@@ -23,4 +23,4 @@ data: ${JSON.stringify({tokens_generated:f,elapsed_ms:Date.now()-g})}
23
23
  `;try{d.enqueue(h.encode(a))}catch{clearInterval(c)}},a),b?.addEventListener("abort",()=>{clearInterval(c)},{once:!0})},transform(a,b){let c=("string"==typeof a?a:new TextDecoder().decode(a)).split("\n").filter(a=>a.startsWith("data: "));f+=c.length,b.enqueue(a)},flush(){if(clearInterval(c),e)try{let a=`event: progress
24
24
  data: ${JSON.stringify({tokens_generated:f,elapsed_ms:Date.now()-g,done:!0})}
25
25
 
26
- `;e.enqueue(h.encode(a))}catch{}}})}function e(a){return!!a&&"true"===("function"==typeof a.get?b=>a.get(b):b=>a[b])("x-omniroute-progress")}c.d(b,{Y:()=>d,Z:()=>e})},69590:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>E});var e=c(95982),f=c(32113),g=c(79631),h=c(55120),i=c(26695),j=c(6327),k=c(50101),l=c(87068),m=c(89122),n=c(23969),o=c(32041),p=c(71861),q=c(60293),r=c(82795),s=c(19704),t=c(37544),u=c(50498),v=c(8550),w=c(54745),x=c(92937),y=c(1308),z=c(9315),A=c(79335),B=c(65982),C=c(93289),D=a([t]);async function E({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:D,onRequestSuccess:E,onDisconnect:F,clientRawRequest:G,connectionId:H,apiKeyInfo:I=null,userAgent:J,comboName:K}){let L,M,N,O,P,Q,{provider:R,model:S,extendedContext:T}=b,U=Date.now(),V=(0,A.xp)(G?.headers),W=(0,A.ic)(V);if(W)return d?.debug?.("IDEMPOTENCY",`Hit for key=${V?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(W.response),{status:W.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Idempotent":"true"}})};await (0,y.rh)();let X=(0,f.Tz)(a),Y=(G?.endpoint||"").toLowerCase().endsWith("/responses"),Z=(0,r.c)(a,S,J);if(Z)return Z;let $=(0,o.kV)(S),_=n.PROVIDER_ID_TO_ALIAS[R]||R,aa=(0,n.ux)(_,$)||(0,f.jJ)(R),ab=!0===a.stream;if((0,z.TZ)(a,G?.headers)){let b=(0,z.gR)(S,a.messages,a.temperature,a.top_p),c=(0,z.Cb)(b);if(c)return d?.debug?.("CACHE",`Semantic cache HIT for ${S}`),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"HIT"}})}}let ac=await (0,m.q)(X,aa,S);G&&ac.logClientRawRequest(G.endpoint,G.body,G.headers),ac.logRawRequest(a),d?.debug?.("FORMAT",`${X} → ${aa} | stream=${ab}`);let ad=a;try{aa!==h.h.CLAUDE||["claude","anthropic"].includes(R?.toLowerCase?.())||(ad={...ad,_disableToolPrefix:!0}),Array.isArray(a.messages)&&(a.messages=a.messages.map(a=>{if(""===a.name){let{name:b,...c}=a;return c}return a})),Array.isArray(a.input)&&(a.input=a.input.map(a=>{if(""===a.name){let{name:b,...c}=a;return c}return a})),ad=(0,g.GH)(X,aa,S,ad,ab,c,R,ac)}catch(g){let a=Number(g?.statusCode),b=Number.isInteger(a)&&a>=400&&a<=599?a:q.gx.SERVER_ERROR,c=g?.message||"Invalid request",f="string"==typeof g?.errorType?g.errorType:null;if(d?.warn?.("TRANSLATE",`Request translation failed: ${c}`),f)return{success:!1,status:b,error:c,response:new Response(JSON.stringify({error:{message:c,type:f,code:f}}),{status:b,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)()}})};return(0,p.A1)(b,c)}let ae=ad._toolNameMap;delete ad._toolNameMap,delete ad._disableToolPrefix,ad.model=S;let af=(0,t.SB)(R);(0,s.uw)(S,R,H,!0);let ag=new Set([S]),ah=S;(0,s.E5)({model:S,provider:R,connectionId:H,status:"PENDING"}).catch(()=>{});let ai=ad.messages?.length||ad.contents?.length||ad.request?.contents?.length||0;d?.debug?.("REQUEST",`${R.toUpperCase()} | ${S} | ${ai} msgs`);let aj=(0,j.jd)({onDisconnect:F,log:d,provider:R,model:S});try{let a=await (0,y.YO)(R,H,S,()=>af.execute({model:S,body:ad,stream:ab,credentials:c,signal:aj.signal,log:d,extendedContext:T}));L=a.response,M=a.url,N=a.headers,O=a.transformedBody,ac.logTargetRequest(M,N,O),(0,y.Kr)(R,H,L.headers,L.status,S)}catch(c){if((0,s.uw)(S,R,H,!1),(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${"AbortError"===c.name?499:q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:"AbortError"===c.name?499:q.gx.BAD_GATEWAY,model:S,provider:R,connectionId:H,duration:Date.now()-U,requestBody:a,error:c.message,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{}),"AbortError"===c.name)return aj.handleError(c),(0,p.A1)(499,"Request aborted");let b=(0,p.lR)(c,R,S,q.gx.BAD_GATEWAY);return console.log(`${i.lm.red}[ERROR] ${b}${i.lm.reset}`),(0,p.A1)(q.gx.BAD_GATEWAY,b)}if(L.status===q.gx.UNAUTHORIZED||L.status===q.gx.FORBIDDEN){let a=await (0,l.qZ)(()=>af.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){d?.info?.("TOKEN",`${R.toUpperCase()} | refreshed`),Object.assign(c,a),D&&a&&await D(a);try{let a=await af.execute({model:S,body:ad,stream:ab,credentials:c,signal:aj.signal,log:d,extendedContext:T});a.response.ok&&(L=a.response,M=a.url)}catch(a){d?.warn?.("TOKEN",`${R.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${R.toUpperCase()} | refresh failed`)}if(!L.ok){(0,s.uw)(S,R,H,!1);let{statusCode:b,message:e,retryAfterMs:f}=await (0,p.zL)(L,R);(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${b}`}).catch(()=>{}),(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:b,model:S,provider:R,connectionId:H,duration:Date.now()-U,requestBody:a,error:e,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{});let g=(0,p.lR)(Error(e),R,S,b);if(console.log(`${i.lm.red}[ERROR] ${g}${i.lm.reset}`),f&&"antigravity"===R){let a=Math.ceil(f/1e3);d?.debug?.("RETRY",`Antigravity quota reset in ${a}s (${f}ms)`)}if(ac.logError(Error(e),O||ad),(0,y.Kr)(R,H,L.headers,b,S),!(0,C.I2)(b,e))return(0,p.A1)(b,g,f);{let a=(0,C.ec)(ah,ag);if(!a)return(0,p.A1)(b,g,f);ag.add(a),ah=a,ad.model=a,d?.info?.("MODEL_FALLBACK",`${S} unavailable (${b}) → trying ${a}`);try{let e=await (0,y.YO)(R,H,a,()=>af.execute({model:a,body:ad,stream:ab,credentials:c,signal:aj.signal,log:d,extendedContext:T}));if(!e.response.ok)return(0,p.A1)(b,g,f);L=e.response,M=e.url,N=e.headers,O=e.transformedBody,d?.info?.("MODEL_FALLBACK",`Serving ${a} as fallback for ${S}`)}catch{return(0,p.A1)(b,g,f)}}}if(!ab){let b;(0,s.uw)(S,R,H,!1);let c=(L.headers.get("content-type")||"").toLowerCase(),f=await L.text();if(c.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(f)){let a=aa===h.h.OPENAI_RESPONSES?(0,w.B)(f,S):(0,w.F)(f,S);if(!a)return(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.A1)(q.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");b=a}else try{b=f?JSON.parse(f):{}}catch{return(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.A1)(q.gx.BAD_GATEWAY,"Invalid JSON response from provider")}E&&await E();let j=(0,v.M)(b,R);if((0,s.E5)({model:S,provider:R,connectionId:H,tokens:j,status:"200 OK"}).catch(()=>{}),(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:200,model:S,provider:R,connectionId:H,duration:Date.now()-U,tokens:j,requestBody:a,responseBody:b,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{}),j&&"object"==typeof j){let a=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${R.toUpperCase()} | in=${j?.prompt_tokens||0} | out=${j?.completion_tokens||0}${H?` | account=${H.slice(0,8)}...`:""}`;console.log(`${i.lm.green}${a}${i.lm.reset}`),(0,s.sZ)({provider:R||"unknown",model:S||"unknown",tokens:j,timestamp:new Date().toISOString(),connectionId:H||void 0,apiKeyId:I?.id||void 0,apiKeyName:I?.name||void 0}).catch(a=>{console.error("Failed to save usage stats:",a.message)})}let l=(0,g.nZ)(aa,X)?(0,u.l)(b,aa,X):b;if(X===h.h.OPENAI&&(l=(0,x.LG)(l)),l?.usage){let a=(0,k.O9)(l.usage);l.usage=(0,k.WL)(a,X)}else{let b=JSON.stringify(l?.choices?.[0]?.message?.content||"").length;if(b>0){let c=(0,k.OF)(a,b,X);l.usage=(0,k.WL)(c,X)}}if((0,z.TZ)(a,G?.headers)){let b=(0,z.gR)(S,a.messages,a.temperature,a.top_p),c=j?.prompt_tokens+j?.completion_tokens||0;(0,z.yv)(b,S,l,c),d?.debug?.("CACHE",`Stored response for ${S} (${c} tokens)`)}return(0,A.tm)(V,l,200),{success:!0,response:new Response(JSON.stringify(l),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"MISS"}})}}E&&await E();let ak={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,e.i)()},al=({status:b,usage:c})=>{(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:b||200,model:S,provider:R,connectionId:H,duration:Date.now()-U,tokens:c||{},requestBody:a,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{})},am=J?.toLowerCase().includes("droid")||J?.toLowerCase().includes("codex-cli");if("codex"!==R||aa!==h.h.OPENAI_RESPONSES||X!==h.h.OPENAI||Y||am?(0,g.nZ)(aa,X)?(d?.debug?.("STREAM",`Translation mode: ${aa} → ${X}`),P=(0,i.i5)(aa,X,R,ac,ae,S,H,a,al,I)):(d?.debug?.("STREAM","Standard passthrough mode"),P=(0,i.l2)(R,ac,S,H,a,al,I)):(d?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),P=(0,i.i5)("openai-responses","openai",R,ac,ae,S,H,a,al,I)),(0,B.Z)(G?.headers)){let a=(0,B.Y)({signal:aj.signal});Q=(0,j.Jb)(L,P,aj).pipeThrough(a),ak["X-OmniRoute-Progress"]="enabled"}else Q=(0,j.Jb)(L,P,aj);return{success:!0,response:new Response(Q,{headers:ak})}}t=(D.then?(await D)():D)[0],d()}catch(a){d(a)}})},77458:(a,b,c)=>{c.d(b,{Jh:()=>g});let d=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],e=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function f(a,b=!1){let c=[],d=a;for(let f of e){let e=a.match(f.pattern);e&&e.length>0&&(c.push({type:f.name,count:e.length}),b&&(d=d.replace(f.pattern,f.replacement)))}return{text:d,detections:c}}function g(a,b=console){let c={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},e={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!c.enabled)return e;let h=(function(a){let b=[];for(let c of a.messages||a.input||[])if("string"==typeof c)b.push(c);else if("string"==typeof c.content)b.push(c.content);else if(Array.isArray(c.content))for(let a of c.content)"string"==typeof a?b.push(a):a.text&&b.push(a.text);if("string"==typeof a.system)b.push(a.system);else if(Array.isArray(a.system))for(let c of a.system)"string"==typeof c?b.push(c):c.text&&b.push(c.text);return b})(a).join("\n"),i=function(a){let b=[];for(let c of d){let d=a.match(c.pattern);d&&b.push({pattern:c.name,severity:c.severity,match:d[0].slice(0,50)})}return b}(h);if(i.length>0){e.detections=i;let a=i.filter(a=>"high"===a.severity),d=a.length>0?"warn":"info";if(b[d]&&b[d](`[SANITIZER] Prompt injection detected: ${i.map(a=>a.pattern).join(", ")}`),"block"===c.mode&&a.length>0)return e.blocked=!0,e}if(c.piiRedaction){let d=f(h,"redact"===c.mode);e.piiDetections=d.detections,d.detections.length>0&&(b.warn?.(`[SANITIZER] PII detected: ${d.detections.map(a=>`${a.type}(${a.count})`).join(", ")}`),"redact"===c.mode&&(e.sanitizedBody=function(a){let b=JSON.parse(JSON.stringify(a));for(let a of b.messages||b.input||[])if("string"==typeof a.content)a.content=f(a.content,!0).text;else if(Array.isArray(a.content))for(let b of a.content)if("string"==typeof b){let c=a.content.indexOf(b);a.content[c]=f(b,!0).text}else b.text&&(b.text=f(b.text,!0).text);return"string"==typeof b.system&&(b.system=f(b.system,!0).text),b}(a),e.modified=!0))}return e}},79335:(a,b,c)=>{let d;c.d(b,{ic:()=>g,ne:()=>i,tm:()=>h,xp:()=>f});let e=new Map;function f(a){if(!a)return null;let b="function"==typeof a.get?b=>a.get(b):b=>a[b];return b("idempotency-key")||b("x-request-id")||null}function g(a){if(!a)return null;let b=e.get(a);return b?Date.now()>=b.expiresAt?(e.delete(a),null):{response:b.response,status:b.status}:null}function h(a,b,c,f=5e3){a&&(!d&&(d=setInterval(()=>{let a=Date.now();for(let[b,c]of e)a>=c.expiresAt&&e.delete(b)},3e4)).unref&&d.unref(),e.set(a,{response:b,status:c,expiresAt:Date.now()+f}))}function i(){return{activeKeys:e.size,windowMs:5e3}}},82795:(a,b,c)=>{c.d(b,{c:()=>j});var d=c(95982),e=c(32113),f=c(79631),g=c(55120),h=c(60293),i=c(26695);function j(a,b,c=""){if(!c.includes("claude-cli")||!a.messages?.length)return null;let m=a.messages,n=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",o=!1,p=m[m.length-1];if(p?.role==="assistant"&&p.content?.[0]?.text==="{"&&(o=!0),o||"Warmup"===n(m[0]?.content)&&(o=!0),o||1!==m.length||m[0]?.role!=="user"||"count"===n(m[0]?.content)&&(o=!0),!o&&h.C8?.length){let a=m.filter(a=>"user"===a.role).map(a=>n(a.content)).join(" ");h.C8.some(b=>a.includes(b))&&(o=!0)}if(!o)return null;let q=(0,e.Tz)(a);return!1!==a.stream?function(a,b){let c=k(b),e=(0,f.Ws)(a);e.model=b;let h=l(c),j=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);if(c?.length>0)for(let b of c)j.push((0,i.v8)(b,a))}let m=(0,f.Y8)(g.h.OPENAI,a,null,e);if(m?.length>0)for(let b of m)j.push((0,i.v8)(b,a));return j.push("data: [DONE]\n\n"),{success:!0,response:new Response(j.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,d.i)()}})}}(q,b):function(a,b){let c=k(b);if(a===g.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,d.i)()}})};let e=(0,f.Ws)(a);e.model=b;let h=l(c),i=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);c?.length>0&&i.push(...c)}let j=(0,f.Y8)(g.h.OPENAI,a,null,e);return j?.length>0&&i.push(...j),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return k("unknown");let c=a[a.length-1];if(b===g.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,d.i)()}})}}(q,b)}function k(a){let b=`chatcmpl-${Date.now()}`;return{id:b,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function l(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},89122:(a,b,c)=>{c.d(b,{q:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{await f.promises.mkdir(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}${d}${e}_${f}${g}${h}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return await f.promises.mkdir(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(!f||!a)return;let d=g.join(a,b);f.promises.writeFile(d,JSON.stringify(c,null,2)).catch(a=>console.log(`[LOG] Failed to write ${b}:`,a.message))}function l(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=b[a];c&&c.length>20&&(b[a]=c.slice(0,10)+"..."+c.slice(-5))}}return b}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(!f||!d)return;let b=g.join(d,"5_res_provider.txt");f.promises.appendFile(b,a).catch(()=>{})},appendOpenAIChunk(a){if(!f||!d)return;let b=g.join(d,"6_res_openai.txt");f.promises.appendFile(b,a).catch(()=>{})},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!f||!d)return;let b=g.join(d,"7_res_client.txt");f.promises.appendFile(b,a).catch(()=>{})},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92937:(a,b,c)=>{c.d(b,{LG:()=>j,LM:()=>m,Zb:()=>i});let d=new Set(["prompt_tokens","completion_tokens","total_tokens","prompt_tokens_details","completion_tokens_details"]);function e(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a}function f(a){return"string"==typeof a?a:void 0}function g(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}let h=/<think>([\s\S]*?)<\/think>/gi;function i(a){if(!a||"string"!=typeof a)return{content:a||"",thinking:null};let b=[],c=!1,d=a.replace(h,(a,d)=>{c=!0;let e=d.trim();return e&&b.push(e),""});return c?{content:d.trim(),thinking:b.length>0?b.join("\n\n"):null}:{content:a,thinking:null}}function j(a){var b;let c=e(a);if(!c)return a;let d={};return d.id=(b=c.id)&&"string"==typeof b?(b.startsWith("chatcmpl-"),b):`chatcmpl-${crypto.randomUUID().replace(/-/g,"").slice(0,29)}`,d.object=f(c.object)||"chat.completion",d.created=g(c.created)??Math.floor(Date.now()/1e3),d.model=f(c.model)||"unknown",Array.isArray(c.choices)?d.choices=c.choices.map((a,b)=>{var c,d;let f,g;return c=a,d=b,f=e(c),g={index:d,finish_reason:null},f?.index!==void 0&&(g.index=f.index),f?.finish_reason!==void 0&&(g.finish_reason=f.finish_reason),f?.message!==void 0&&(g.message=k(f.message)),f?.delta!==void 0&&(g.delta=k(f.delta)),f?.logprobs!==void 0&&(g.logprobs=f.logprobs),g}):d.choices=[],void 0!==c.usage&&(d.usage=l(c.usage)),c.system_fingerprint&&(d.system_fingerprint=c.system_fingerprint),d}function k(a){let b=e(a);if(!b)return a;let c={};if(b.role&&(c.role=b.role),void 0!==b.refusal&&(c.refusal=b.refusal),"string"==typeof b.content){let{content:a,thinking:d}=i(b.content);c.content=a,d&&!b.reasoning_content&&(c.reasoning_content=d)}else void 0!==b.content&&(c.content=b.content);return b.reasoning_content&&!c.reasoning_content&&(c.reasoning_content=b.reasoning_content),b.tool_calls&&(c.tool_calls=b.tool_calls),b.function_call&&(c.function_call=b.function_call),c}function l(a){let b=e(a);if(!b)return a;let c={};for(let a of d)void 0!==b[a]&&(c[a]=b[a]);let f=g(c.prompt_tokens)??0,h=g(c.completion_tokens)??0,i=g(c.total_tokens)??f+h;return c.prompt_tokens=f,c.completion_tokens=h,c.total_tokens=i,c}function m(a){let b=e(a);if(!b)return a;let c={};return void 0!==b.id&&(c.id=b.id),c.object=f(b.object)||"chat.completion.chunk",void 0!==b.created&&(c.created=b.created),void 0!==b.model&&(c.model=b.model),Array.isArray(b.choices)&&(c.choices=b.choices.map(a=>{let b={index:0},c=e(a);if(!c)return b;if(b.index=g(c.index)??0,void 0!==c.delta){let a=e(c.delta);if(a){let c={};void 0!==a.role&&(c.role=a.role),void 0!==a.content&&(c.content=a.content),void 0!==a.reasoning_content&&(c.reasoning_content=a.reasoning_content),void 0!==a.tool_calls&&(c.tool_calls=a.tool_calls),void 0!==a.function_call&&(c.function_call=a.function_call),b.delta=c}else b.delta=c.delta}return void 0!==c.finish_reason&&(b.finish_reason=c.finish_reason),void 0!==c.logprobs&&(b.logprobs=c.logprobs),b})),void 0!==b.usage&&(c.usage=l(b.usage)),b.system_fingerprint&&(c.system_fingerprint=b.system_fingerprint),c}},93289:(a,b,c)=>{c.d(b,{I2:()=>f,ec:()=>g});let d={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},e=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model"];function f(a,b){if(404===a)return!0;if(400!==a&&403!==a)return!1;let c=b.toLowerCase();return e.some(a=>c.includes(a))}function g(a,b){let c=d[a];if(!c)return null;for(let a of c)if(!b.has(a))return a;return null}}};
26
+ `;e.enqueue(h.encode(a))}catch{}}})}function e(a){return!!a&&"true"===("function"==typeof a.get?b=>a.get(b):b=>a[b])("x-omniroute-progress")}c.d(b,{Y:()=>d,Z:()=>e})},69590:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{w:()=>E});var e=c(95982),f=c(32113),g=c(79631),h=c(55120),i=c(26695),j=c(6327),k=c(50101),l=c(87068),m=c(89122),n=c(23969),o=c(32041),p=c(71861),q=c(60293),r=c(82795),s=c(19704),t=c(37544),u=c(50498),v=c(8550),w=c(54745),x=c(92937),y=c(1308),z=c(9315),A=c(79335),B=c(65982),C=c(93289),D=a([t]);async function E({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:D,onRequestSuccess:E,onDisconnect:F,clientRawRequest:G,connectionId:H,apiKeyInfo:I=null,userAgent:J,comboName:K}){let L,M,N,O,P,Q,{provider:R,model:S,extendedContext:T}=b,U=Date.now(),V=(0,A.xp)(G?.headers),W=(0,A.ic)(V);if(W)return d?.debug?.("IDEMPOTENCY",`Hit for key=${V?.slice(0,12)}...`),{success:!0,response:new Response(JSON.stringify(W.response),{status:W.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Idempotent":"true"}})};await (0,y.rh)();let X=(0,f.Tz)(a),Y=(G?.endpoint||"").toLowerCase().endsWith("/responses"),Z=(0,r.c)(a,S,J);if(Z)return Z;let $=(0,o.kV)(S),_=n.PROVIDER_ID_TO_ALIAS[R]||R,aa=(0,n.ux)(_,$)||(0,f.jJ)(R),ab=!0===a.stream;if((0,z.TZ)(a,G?.headers)){let b=(0,z.gR)(S,a.messages,a.temperature,a.top_p),c=(0,z.Cb)(b);if(c)return d?.debug?.("CACHE",`Semantic cache HIT for ${S}`),{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"HIT"}})}}let ac=await (0,m.q)(X,aa,S);G&&ac.logClientRawRequest(G.endpoint,G.body,G.headers),ac.logRawRequest(a),d?.debug?.("FORMAT",`${X} → ${aa} | stream=${ab}`);let ad=a;try{aa!==h.h.CLAUDE||["claude","anthropic"].includes(R?.toLowerCase?.())||(ad={...ad,_disableToolPrefix:!0}),Array.isArray(a.messages)&&(a.messages=a.messages.map(a=>{if(""===a.name){let{name:b,...c}=a;return c}return a})),Array.isArray(a.input)&&(a.input=a.input.map(a=>{if(""===a.name){let{name:b,...c}=a;return c}return a})),ad=(0,g.GH)(X,aa,S,ad,ab,c,R,ac)}catch(g){let a=Number(g?.statusCode),b=Number.isInteger(a)&&a>=400&&a<=599?a:q.gx.SERVER_ERROR,c=g?.message||"Invalid request",f="string"==typeof g?.errorType?g.errorType:null;if(d?.warn?.("TRANSLATE",`Request translation failed: ${c}`),f)return{success:!1,status:b,error:c,response:new Response(JSON.stringify({error:{message:c,type:f,code:f}}),{status:b,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)()}})};return(0,p.A1)(b,c)}let ae=ad._toolNameMap;delete ad._toolNameMap,delete ad._disableToolPrefix,ad.model=S;let af=(0,t.SB)(R);(0,s.uw)(S,R,H,!0);let ag=new Set([S]),ah=S;(0,s.E5)({model:S,provider:R,connectionId:H,status:"PENDING"}).catch(()=>{});let ai=ad.messages?.length||ad.contents?.length||ad.request?.contents?.length||0;d?.debug?.("REQUEST",`${R.toUpperCase()} | ${S} | ${ai} msgs`);let aj=(0,j.jd)({onDisconnect:F,log:d,provider:R,model:S});try{let a=await (0,y.YO)(R,H,S,()=>af.execute({model:S,body:ad,stream:ab,credentials:c,signal:aj.signal,log:d,extendedContext:T}));L=a.response,M=a.url,N=a.headers,O=a.transformedBody,ac.logTargetRequest(M,N,O),(0,y.Kr)(R,H,L.headers,L.status,S)}catch(c){if((0,s.uw)(S,R,H,!1),(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${"AbortError"===c.name?499:q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:"AbortError"===c.name?499:q.gx.BAD_GATEWAY,model:S,provider:R,connectionId:H,duration:Date.now()-U,requestBody:a,error:c.message,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{}),"AbortError"===c.name)return aj.handleError(c),(0,p.A1)(499,"Request aborted");let b=(0,p.lR)(c,R,S,q.gx.BAD_GATEWAY);return console.log(`${i.lm.red}[ERROR] ${b}${i.lm.reset}`),(0,p.A1)(q.gx.BAD_GATEWAY,b)}if(L.status===q.gx.UNAUTHORIZED||L.status===q.gx.FORBIDDEN){let a=await (0,l.qZ)(()=>af.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.copilotToken){d?.info?.("TOKEN",`${R.toUpperCase()} | refreshed`),Object.assign(c,a),D&&a&&await D(a);try{let a=await af.execute({model:S,body:ad,stream:ab,credentials:c,signal:aj.signal,log:d,extendedContext:T});a.response.ok&&(L=a.response,M=a.url)}catch(a){d?.warn?.("TOKEN",`${R.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${R.toUpperCase()} | refresh failed`)}if(!L.ok){(0,s.uw)(S,R,H,!1);let{statusCode:b,message:e,retryAfterMs:f}=await (0,p.zL)(L,R);(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${b}`}).catch(()=>{}),(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:b,model:S,provider:R,connectionId:H,duration:Date.now()-U,requestBody:a,error:e,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{});let g=(0,p.lR)(Error(e),R,S,b);if(console.log(`${i.lm.red}[ERROR] ${g}${i.lm.reset}`),f&&"antigravity"===R){let a=Math.ceil(f/1e3);d?.debug?.("RETRY",`Antigravity quota reset in ${a}s (${f}ms)`)}if(ac.logError(Error(e),O||ad),(0,y.Kr)(R,H,L.headers,b,S),!(0,C.I2)(b,e))return(0,p.A1)(b,g,f);{let a=(0,C.ec)(ah,ag);if(!a)return(0,p.A1)(b,g,f);ag.add(a),ah=a,ad.model=a,d?.info?.("MODEL_FALLBACK",`${S} unavailable (${b}) → trying ${a}`);try{let e=await (0,y.YO)(R,H,a,()=>af.execute({model:a,body:ad,stream:ab,credentials:c,signal:aj.signal,log:d,extendedContext:T}));if(!e.response.ok)return(0,p.A1)(b,g,f);L=e.response,M=e.url,N=e.headers,O=e.transformedBody,d?.info?.("MODEL_FALLBACK",`Serving ${a} as fallback for ${S}`)}catch{return(0,p.A1)(b,g,f)}}}if(!ab){let b;(0,s.uw)(S,R,H,!1);let c=(L.headers.get("content-type")||"").toLowerCase(),f=await L.text();if(c.includes("text/event-stream")||/(^|\n)\s*(event|data):/m.test(f)){let a=aa===h.h.OPENAI_RESPONSES?(0,w.B)(f,S):(0,w.F)(f,S);if(!a)return(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.A1)(q.gx.BAD_GATEWAY,"Invalid SSE response for non-streaming request");b=a}else try{b=f?JSON.parse(f):{}}catch{return(0,s.E5)({model:S,provider:R,connectionId:H,status:`FAILED ${q.gx.BAD_GATEWAY}`}).catch(()=>{}),(0,p.A1)(q.gx.BAD_GATEWAY,"Invalid JSON response from provider")}E&&await E();let j=(0,v.M)(b,R);if((0,s.E5)({model:S,provider:R,connectionId:H,tokens:j,status:"200 OK"}).catch(()=>{}),(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:200,model:S,provider:R,connectionId:H,duration:Date.now()-U,tokens:j,requestBody:a,responseBody:b,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{}),j&&"object"==typeof j){let a=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit"})}] 📊 [USAGE] ${R.toUpperCase()} | in=${j?.prompt_tokens||0} | out=${j?.completion_tokens||0}${H?` | account=${H.slice(0,8)}...`:""}`;console.log(`${i.lm.green}${a}${i.lm.reset}`),(0,s.sZ)({provider:R||"unknown",model:S||"unknown",tokens:j,timestamp:new Date().toISOString(),connectionId:H||void 0,apiKeyId:I?.id||void 0,apiKeyName:I?.name||void 0}).catch(a=>{console.error("Failed to save usage stats:",a.message)})}let l=(0,g.nZ)(aa,X)?(0,u.l)(b,aa,X):b;if(X===h.h.OPENAI&&(l=(0,x.LG)(l)),l?.usage){let a=(0,k.O9)(l.usage);l.usage=(0,k.WL)(a,X)}else{let b=JSON.stringify(l?.choices?.[0]?.message?.content||"").length;if(b>0){let c=(0,k.OF)(a,b,X);l.usage=(0,k.WL)(c,X)}}if((0,z.TZ)(a,G?.headers)){let b=(0,z.gR)(S,a.messages,a.temperature,a.top_p),c=j?.prompt_tokens+j?.completion_tokens||0;(0,z.yv)(b,S,l,c),d?.debug?.("CACHE",`Stored response for ${S} (${c} tokens)`)}return(0,A.tm)(V,l,200),{success:!0,response:new Response(JSON.stringify(l),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,e.i)(),"X-OmniRoute-Cache":"MISS"}})}}E&&await E();let ak={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,e.i)()},al=({status:b,usage:c})=>{(0,s.gK)({method:"POST",path:G?.endpoint||"/v1/chat/completions",status:b||200,model:S,provider:R,connectionId:H,duration:Date.now()-U,tokens:c||{},requestBody:a,sourceFormat:X,targetFormat:aa,comboName:K,apiKeyId:I?.id||null,apiKeyName:I?.name||null,noLog:I?.noLog===!0}).catch(()=>{})},am=J?.toLowerCase().includes("droid")||J?.toLowerCase().includes("codex-cli");if("codex"!==R||aa!==h.h.OPENAI_RESPONSES||X!==h.h.OPENAI||Y||am?(0,g.nZ)(aa,X)?(d?.debug?.("STREAM",`Translation mode: ${aa} → ${X}`),P=(0,i.i5)(aa,X,R,ac,ae,S,H,a,al,I)):(d?.debug?.("STREAM","Standard passthrough mode"),P=(0,i.l2)(R,ac,S,H,a,al,I)):(d?.debug?.("STREAM",`Codex translation mode: openai-responses → openai`),P=(0,i.i5)("openai-responses","openai",R,ac,ae,S,H,a,al,I)),(0,B.Z)(G?.headers)){let a=(0,B.Y)({signal:aj.signal});Q=(0,j.Jb)(L,P,aj).pipeThrough(a),ak["X-OmniRoute-Progress"]="enabled"}else Q=(0,j.Jb)(L,P,aj);return{success:!0,response:new Response(Q,{headers:ak})}}t=(D.then?(await D)():D)[0],d()}catch(a){d(a)}})},77458:(a,b,c)=>{c.d(b,{Jh:()=>g});let d=[{name:"system_override",pattern:/\b(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions?|prompts?|rules?|context)/i,severity:"high"},{name:"role_hijack",pattern:/\b(you\s+are\s+now|act\s+as\s+if|pretend\s+(to\s+be|you\s+are)|from\s+now\s+on\s+you\s+are)\b/i,severity:"medium"},{name:"system_prompt_leak",pattern:/\b(reveal|show|display|print|output|repeat)\s+(your\s+)?(system\s+prompt|instructions?|initial\s+prompt|hidden\s+prompt)/i,severity:"high"},{name:"delimiter_injection",pattern:/(\[SYSTEM\]|\[INST\]|<<SYS>>|<\|im_start\|>|<\|system\|>|<\|user\|>)/i,severity:"high"},{name:"jailbreak_dan",pattern:/\b(DAN|do\s+anything\s+now|jailbreak|developer\s+mode|enable\s+developer)\b/i,severity:"medium"},{name:"encoding_evasion",pattern:/\b(base64\s+decode|rot13|hex\s+decode|unicode\s+escape)\b.*\b(instruction|prompt|command)\b/i,severity:"medium"}],e=[{name:"email",pattern:/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b/g,replacement:"[EMAIL_REDACTED]"},{name:"cpf",pattern:/\b\d{3}\.\d{3}\.\d{3}-\d{2}\b/g,replacement:"[CPF_REDACTED]"},{name:"cnpj",pattern:/\b\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}\b/g,replacement:"[CNPJ_REDACTED]"},{name:"credit_card",pattern:/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,replacement:"[CARD_REDACTED]"},{name:"phone_br",pattern:/\b\(?\d{2}\)?\s?\d{4,5}-?\d{4}\b/g,replacement:"[PHONE_REDACTED]"},{name:"ssn_us",pattern:/\b\d{3}-\d{2}-\d{4}\b/g,replacement:"[SSN_REDACTED]"}];function f(a,b=!1){let c=[],d=a;for(let f of e){let e=a.match(f.pattern);e&&e.length>0&&(c.push({type:f.name,count:e.length}),b&&(d=d.replace(f.pattern,f.replacement)))}return{text:d,detections:c}}function g(a,b=console){let c={enabled:"false"!==process.env.INPUT_SANITIZER_ENABLED,mode:process.env.INPUT_SANITIZER_MODE||"warn",piiRedaction:"true"===process.env.PII_REDACTION_ENABLED},e={blocked:!1,modified:!1,detections:[],piiDetections:[],sanitizedBody:null};if(!c.enabled)return e;let h=(function(a){let b=[];for(let c of a.messages||a.input||[])if("string"==typeof c)b.push(c);else if("string"==typeof c.content)b.push(c.content);else if(Array.isArray(c.content))for(let a of c.content)"string"==typeof a?b.push(a):a.text&&b.push(a.text);if("string"==typeof a.system)b.push(a.system);else if(Array.isArray(a.system))for(let c of a.system)"string"==typeof c?b.push(c):c.text&&b.push(c.text);return b})(a).join("\n"),i=function(a){let b=[];for(let c of d){let d=a.match(c.pattern);d&&b.push({pattern:c.name,severity:c.severity,match:d[0].slice(0,50)})}return b}(h);if(i.length>0){e.detections=i;let a=i.filter(a=>"high"===a.severity),d=a.length>0?"warn":"info";if(b[d]&&b[d](`[SANITIZER] Prompt injection detected: ${i.map(a=>a.pattern).join(", ")}`),"block"===c.mode&&a.length>0)return e.blocked=!0,e}if(c.piiRedaction){let d=f(h,"redact"===c.mode);e.piiDetections=d.detections,d.detections.length>0&&(b.warn?.(`[SANITIZER] PII detected: ${d.detections.map(a=>`${a.type}(${a.count})`).join(", ")}`),"redact"===c.mode&&(e.sanitizedBody=function(a){let b=JSON.parse(JSON.stringify(a));for(let a of b.messages||b.input||[])if("string"==typeof a.content)a.content=f(a.content,!0).text;else if(Array.isArray(a.content))for(let b of a.content)if("string"==typeof b){let c=a.content.indexOf(b);a.content[c]=f(b,!0).text}else b.text&&(b.text=f(b.text,!0).text);return"string"==typeof b.system&&(b.system=f(b.system,!0).text),b}(a),e.modified=!0))}return e}},79335:(a,b,c)=>{let d;c.d(b,{ic:()=>g,ne:()=>i,tm:()=>h,xp:()=>f});let e=new Map;function f(a){if(!a)return null;let b="function"==typeof a.get?b=>a.get(b):b=>a[b];return b("idempotency-key")||b("x-request-id")||null}function g(a){if(!a)return null;let b=e.get(a);return b?Date.now()>=b.expiresAt?(e.delete(a),null):{response:b.response,status:b.status}:null}function h(a,b,c,f=5e3){a&&(!d&&(d=setInterval(()=>{let a=Date.now();for(let[b,c]of e)a>=c.expiresAt&&e.delete(b)},3e4)).unref&&d.unref(),e.set(a,{response:b,status:c,expiresAt:Date.now()+f}))}function i(){return{activeKeys:e.size,windowMs:5e3}}},82162:(a,b,c)=>{c.d(b,{G3:()=>h,detectTaskType:()=>l,g4:()=>g,kf:()=>i,oC:()=>m,qk:()=>j});let d={coding:{patterns:["write code","write a function","implement","debug","fix this","fix the","refactor","unit test","write test","write a script","code review","complete this function","add a feature","javascript","typescript","python","sql query","api endpoint"],userPatterns:["```","def ","function ","class ","import ","const ","let ","var ","SELECT ","INSERT ","<html","<div"]},creative:{patterns:["write a story","write a poem","write a song","creative writing","write a blog","write an article","write a script","write an essay","imagine","roleplay","brainstorm","creative"]},analysis:{patterns:["analyze","analyse","analysis","compare","evaluate","assess","explain","reasoning","pros and cons","advantages and disadvantages","what are the implications","in-depth","comprehensive"]},vision:{patterns:["look at this image","in this image","what do you see","describe this image","analyze this image","read this screenshot"],userPatterns:["image_url","data:image"]},summarization:{patterns:["summarize","summary","tldr","tl;dr","brief overview","key points","main points","what did","highlights from"]},background:{patterns:["generate a title","generate title","create a title","name this","short description","brief description","one-line summary","conversation title"]},chat:{patterns:[]}},e={coding:"deepseek/deepseek-chat",creative:"",analysis:"gemini/gemini-2.5-pro",vision:"openai/gpt-4o",summarization:"gemini/gemini-2.5-flash",background:"gemini/gemini-2.5-flash-lite",chat:""},f={enabled:!1,taskModelMap:{...e},detectionEnabled:!0,stats:{detected:0,routed:0}};function g(a){f={...f,...a,stats:f.stats}}function h(){return{...f,taskModelMap:{...f.taskModelMap},stats:{...f.stats}}}function i(){f.stats={detected:0,routed:0}}function j(){return{...e}}function k(a){return"string"==typeof a?a.toLowerCase():Array.isArray(a)?a.map(a=>"string"==typeof a?a.toLowerCase():a?.text?.toLowerCase()||"").join(" "):""}function l(a){if(!a||"object"!=typeof a)return"chat";let b=Array.isArray(a.messages)?a.messages:Array.isArray(a.input)?a.input:[];if(0===b.length)return"chat";if(function(a){for(let b of a)if(Array.isArray(b.content)){for(let a of b.content)if(a?.type==="image_url"||a?.type==="image")return!0}return!1}(b))return"vision";let c=b.find(a=>"system"===a.role||"developer"===a.role),e=c?k(c.content):"",f=[...b].reverse().find(a=>"user"===a.role),g=f?k(f.content):"";for(let a of["background","coding","vision","summarization","analysis","creative"]){let{patterns:b,userPatterns:c}=d[a];if(b.some(a=>e.includes(a.toLowerCase()))||b.some(a=>g.includes(a.toLowerCase()))||c?.some(a=>g.includes(a.toLowerCase())))return a}return"chat"}function m(a,b){if(!f.enabled||!f.detectionEnabled)return{model:a,taskType:"chat",wasRouted:!1};let c=l(b);f.stats.detected++;let d=f.taskModelMap[c];return d&&""!==d?(f.stats.routed++,{model:d,taskType:c,wasRouted:!0}):{model:a,taskType:c,wasRouted:!1}}},82795:(a,b,c)=>{c.d(b,{c:()=>j});var d=c(95982),e=c(32113),f=c(79631),g=c(55120),h=c(60293),i=c(26695);function j(a,b,c=""){if(!c.includes("claude-cli")||!a.messages?.length)return null;let m=a.messages,n=a=>"string"==typeof a?a:Array.isArray(a)?a.filter(a=>"text"===a.type).map(a=>a.text).join(" "):"",o=!1,p=m[m.length-1];if(p?.role==="assistant"&&p.content?.[0]?.text==="{"&&(o=!0),o||"Warmup"===n(m[0]?.content)&&(o=!0),o||1!==m.length||m[0]?.role!=="user"||"count"===n(m[0]?.content)&&(o=!0),!o&&h.C8?.length){let a=m.filter(a=>"user"===a.role).map(a=>n(a.content)).join(" ");h.C8.some(b=>a.includes(b))&&(o=!0)}if(!o)return null;let q=(0,e.Tz)(a);return!1!==a.stream?function(a,b){let c=k(b),e=(0,f.Ws)(a);e.model=b;let h=l(c),j=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);if(c?.length>0)for(let b of c)j.push((0,i.v8)(b,a))}let m=(0,f.Y8)(g.h.OPENAI,a,null,e);if(m?.length>0)for(let b of m)j.push((0,i.v8)(b,a));return j.push("data: [DONE]\n\n"),{success:!0,response:new Response(j.join(""),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","Access-Control-Allow-Origin":(0,d.i)()}})}}(q,b):function(a,b){let c=k(b);if(a===g.h.OPENAI)return{success:!0,response:new Response(JSON.stringify(c),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,d.i)()}})};let e=(0,f.Ws)(a);e.model=b;let h=l(c),i=[];for(let b of h){let c=(0,f.Y8)(g.h.OPENAI,a,b,e);c?.length>0&&i.push(...c)}let j=(0,f.Y8)(g.h.OPENAI,a,null,e);return j?.length>0&&i.push(...j),{success:!0,response:new Response(JSON.stringify(function(a,b){if(!a||0===a.length)return k("unknown");let c=a[a.length-1];if(b===g.h.CLAUDE&&a.find(a=>"message_stop"===a.type)){a.find(a=>"content_block_delta"===a.type);let b=a.find(a=>"message_delta"===a.type),d=a.find(a=>"message_start"===a.type);d?.message&&(c=d.message,b?.usage&&(c.usage=b.usage))}return c}(i,a)),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":(0,d.i)()}})}}(q,b)}function k(a){let b=`chatcmpl-${Date.now()}`;return{id:b,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:a,choices:[{index:0,message:{role:"assistant",content:"CLI Command Execution: Clear Terminal"},finish_reason:"stop"}],usage:{prompt_tokens:1,completion_tokens:1,total_tokens:2}}}function l(a){let{id:b,created:c,model:d,choices:e}=a;return[{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{role:"assistant",content:e[0].message.content},finish_reason:null}]},{id:b,object:"chat.completion.chunk",created:c,model:d,choices:[{index:0,delta:{},finish_reason:"stop"}],usage:a.usage}]}},89122:(a,b,c)=>{c.d(b,{q:()=>m});let d="u">typeof process&&process.versions?.node&&!0,e="u">typeof process&&process.env?.ENABLE_REQUEST_LOGS==="true",f=null,g=null,h=null;async function i(){if(d&&e&&!f)try{f=await Promise.resolve().then(c.t.bind(c,29021,23)),h=(g=await Promise.resolve().then(c.t.bind(c,33873,23))).join("u">typeof process&&process.cwd?process.cwd():".","logs")}catch{}}async function j(a,b,c){if(await i(),!f||!h)return null;try{await f.promises.mkdir(h,{recursive:!0});let d=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=a.getFullYear(),d=b(a.getMonth()+1),e=b(a.getDate()),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}${d}${e}_${f}${g}${h}`}(),e=(c||"unknown").replace(/[/:]/g,"-"),i=`${a}_${b}_${e}_${d}`,j=g.join(h,i);return await f.promises.mkdir(j,{recursive:!0}),j}catch(a){return console.log("[LOG] Failed to create log session:",a.message),null}}function k(a,b,c){if(!f||!a)return;let d=g.join(a,b);f.promises.writeFile(d,JSON.stringify(c,null,2)).catch(a=>console.log(`[LOG] Failed to write ${b}:`,a.message))}function l(a){if(!a)return{};let b={...a},c=["authorization","x-api-key","cookie","token"];for(let a of Object.keys(b)){let d=a.toLowerCase();if(c.some(a=>d.includes(a))){let c=b[a];c&&c.length>20&&(b[a]=c.slice(0,10)+"..."+c.slice(-5))}}return b}async function m(a,b,c){if(!e)return{sessionPath:null,logClientRawRequest(){},logRawRequest(){},logOpenAIRequest(){},logTargetRequest(){},logProviderResponse(){},appendProviderChunk(){},appendOpenAIChunk(){},logConvertedResponse(){},appendConvertedChunk(){},logError(){}};let d=await j(a,b,c);return{get sessionPath(){return d},logClientRawRequest(a,b,c={}){k(d,"1_req_client.json",{timestamp:new Date().toISOString(),endpoint:a,headers:l(c),body:b})},logRawRequest(a,b={}){k(d,"2_req_source.json",{timestamp:new Date().toISOString(),headers:l(b),body:a})},logOpenAIRequest(a){k(d,"3_req_openai.json",{timestamp:new Date().toISOString(),body:a})},logTargetRequest(a,b,c){k(d,"4_req_target.json",{timestamp:new Date().toISOString(),url:a,headers:l(b),body:c})},logProviderResponse(a,b,c,e){k(d,"5_res_provider.json",{timestamp:new Date().toISOString(),status:a,statusText:b,headers:c?"function"==typeof c.entries?Object.fromEntries(c.entries()):c:{},body:e})},appendProviderChunk(a){if(!f||!d)return;let b=g.join(d,"5_res_provider.txt");f.promises.appendFile(b,a).catch(()=>{})},appendOpenAIChunk(a){if(!f||!d)return;let b=g.join(d,"6_res_openai.txt");f.promises.appendFile(b,a).catch(()=>{})},logConvertedResponse(a){k(d,"7_res_client.json",{timestamp:new Date().toISOString(),body:a})},appendConvertedChunk(a){if(!f||!d)return;let b=g.join(d,"7_res_client.txt");f.promises.appendFile(b,a).catch(()=>{})},logError(a,b=null){k(d,"6_error.json",{timestamp:new Date().toISOString(),error:a?.message||String(a),stack:a?.stack,requestBody:b})}}}},92937:(a,b,c)=>{c.d(b,{LG:()=>j,LM:()=>m,Zb:()=>i});let d=new Set(["prompt_tokens","completion_tokens","total_tokens","prompt_tokens_details","completion_tokens_details"]);function e(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a}function f(a){return"string"==typeof a?a:void 0}function g(a){return"number"==typeof a&&Number.isFinite(a)?a:void 0}let h=/<think>([\s\S]*?)<\/think>/gi;function i(a){if(!a||"string"!=typeof a)return{content:a||"",thinking:null};let b=[],c=!1,d=a.replace(h,(a,d)=>{c=!0;let e=d.trim();return e&&b.push(e),""});return c?{content:d.trim(),thinking:b.length>0?b.join("\n\n"):null}:{content:a,thinking:null}}function j(a){var b;let c=e(a);if(!c)return a;let d={};return d.id=(b=c.id)&&"string"==typeof b?(b.startsWith("chatcmpl-"),b):`chatcmpl-${crypto.randomUUID().replace(/-/g,"").slice(0,29)}`,d.object=f(c.object)||"chat.completion",d.created=g(c.created)??Math.floor(Date.now()/1e3),d.model=f(c.model)||"unknown",Array.isArray(c.choices)?d.choices=c.choices.map((a,b)=>{var c,d;let f,g;return c=a,d=b,f=e(c),g={index:d,finish_reason:null},f?.index!==void 0&&(g.index=f.index),f?.finish_reason!==void 0&&(g.finish_reason=f.finish_reason),f?.message!==void 0&&(g.message=k(f.message)),f?.delta!==void 0&&(g.delta=k(f.delta)),f?.logprobs!==void 0&&(g.logprobs=f.logprobs),g}):d.choices=[],void 0!==c.usage&&(d.usage=l(c.usage)),c.system_fingerprint&&(d.system_fingerprint=c.system_fingerprint),d}function k(a){let b=e(a);if(!b)return a;let c={};if(b.role&&(c.role=b.role),void 0!==b.refusal&&(c.refusal=b.refusal),"string"==typeof b.content){let{content:a,thinking:d}=i(b.content);c.content=a,d&&!b.reasoning_content&&(c.reasoning_content=d)}else void 0!==b.content&&(c.content=b.content);return b.reasoning_content&&!c.reasoning_content&&(c.reasoning_content=b.reasoning_content),b.tool_calls&&(c.tool_calls=b.tool_calls),b.function_call&&(c.function_call=b.function_call),c}function l(a){let b=e(a);if(!b)return a;let c={};for(let a of d)void 0!==b[a]&&(c[a]=b[a]);let f=g(c.prompt_tokens)??0,h=g(c.completion_tokens)??0,i=g(c.total_tokens)??f+h;return c.prompt_tokens=f,c.completion_tokens=h,c.total_tokens=i,c}function m(a){let b=e(a);if(!b)return a;let c={};return void 0!==b.id&&(c.id=b.id),c.object=f(b.object)||"chat.completion.chunk",void 0!==b.created&&(c.created=b.created),void 0!==b.model&&(c.model=b.model),Array.isArray(b.choices)&&(c.choices=b.choices.map(a=>{let b={index:0},c=e(a);if(!c)return b;if(b.index=g(c.index)??0,void 0!==c.delta){let a=e(c.delta);if(a){let c={};void 0!==a.role&&(c.role=a.role),void 0!==a.content&&(c.content=a.content),void 0!==a.reasoning_content&&(c.reasoning_content=a.reasoning_content),void 0!==a.tool_calls&&(c.tool_calls=a.tool_calls),void 0!==a.function_call&&(c.function_call=a.function_call),b.delta=c}else b.delta=c.delta}return void 0!==c.finish_reason&&(b.finish_reason=c.finish_reason),void 0!==c.logprobs&&(b.logprobs=c.logprobs),b})),void 0!==b.usage&&(c.usage=l(b.usage)),b.system_fingerprint&&(c.system_fingerprint=b.system_fingerprint),c}},93289:(a,b,c)=>{c.d(b,{I2:()=>f,ec:()=>g});let d={"gemini-3-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3.1-pro":["gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-preview":["gemini-3.1-pro-preview","gemini-3-pro-high","gemini-3.1-pro-high","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-preview":["gemini-3-pro-preview","gemini-3.1-pro-high","gemini-3-pro-high","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-3-pro-high":["gemini-3.1-pro-high","gemini-3-pro-preview","gemini-3.1-pro-preview","gemini-3-pro-low","gemini-3.1-pro-low"],"gemini-3.1-pro-high":["gemini-3-pro-high","gemini-3.1-pro-preview","gemini-3-pro-preview","gemini-3.1-pro-low","gemini-3-pro-low"],"gemini-2.5-pro":["gemini-2.5-pro-preview-06-05","gemini-2.5-pro-exp-03-25"],"gemini-2.5-pro-preview-06-05":["gemini-2.5-pro","gemini-2.5-pro-exp-03-25"],"claude-opus-4-6":["claude-opus-4-6-thinking","claude-opus-4-5-20251101","claude-sonnet-4-6"],"claude-opus-4-6-thinking":["claude-opus-4-6","claude-opus-4-5-20251101"],"claude-sonnet-4-6":["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514"],"claude-sonnet-4-5-20250929":["claude-sonnet-4-6","claude-sonnet-4-20250514"],"gpt-5":["gpt-5-mini","gpt-4o"],"gpt-5.1":["gpt-5.1-mini","gpt-5","gpt-4o"]},e=["model not found","model_not_found","model not available","model is not available","no such model","unsupported model","unknown model","this model does not exist","invalid model","model not supported","does not support","not enabled for","access to model"];function f(a,b){if(404===a)return!0;if(400!==a&&403!==a)return!1;let c=b.toLowerCase();return e.some(a=>c.includes(a))}function g(a,b){let c=d[a];if(!c)return null;for(let a of c)if(!b.has(a))return a;return null}}};
@@ -1,2 +1,2 @@
1
- exports.id=3061,exports.ids=[3061,4755],exports.modules={8959:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>m,IS:()=>i,JH:()=>l,Q2:()=>n,fg:()=>k,gb:()=>h,js:()=>o,mq:()=>g,zN:()=>j});var e=c(43701),f=a([e]);e=(f.then?(await f)():f)[0];let i={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},j={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},k={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"}},l="openai-compatible-",m="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(l)}function h(a){return"string"==typeof a&&a.startsWith(m)}let n={...i,...j,...k},o=Object.values(n).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(n).reduce((a,b)=>(a[b.id]=b.alias,a),{}),(0,e.LA)(i,"FREE_PROVIDERS"),(0,e.LA)(j,"OAUTH_PROVIDERS"),(0,e.LA)(k,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},9415:(a,b,c)=>{"use strict";c.d(b,{ux:()=>h,wR:()=>g});var d=c(69614),e=c(65573),f=c(22901);async function g(a){let b=a.headers.get("authorization");if(b?.startsWith("Bearer ")){let a=b.slice(7);try{let{validateApiKey:b}=await Promise.resolve().then(c.bind(c,80500));if(await b(a))return!0}catch{}}if(process.env.JWT_SECRET)try{let a=await (0,e.UL)(),b=a.get("auth_token")?.value;if(b){let a=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,d.V)(b,a),!0}}catch{}return!1}async function h(){try{let a=await (0,f.V7)();if(!1===a.requireLogin||!a.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch{return!0}}},15102:(a,b,c)=>{"use strict";c.d(b,{Uk:()=>f,bV:()=>e,lw:()=>g});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[{id:"gemini-2.5-flash-preview-image-generation",name:"Gemini 2.5 Flash Image"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"}],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,supportedSizes:c.supportedSizes});return a}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},30255:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Xg:()=>e.PROVIDER_ID_TO_ALIAS,eh:()=>h,vq:()=>e.vq});var e=c(23969),f=c(8959),g=a([f]);f=(g.then?(await g)():g)[0],Object.entries(f.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a);let h=Object.entries(e.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})));d()}catch(a){d(a)}})},33136:(a,b,c)=>{"use strict";c.d(b,{$q:()=>f,lR:()=>h,m:()=>g});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"stable-audio-open",name:"Stable Audio Open"},{id:"musicgen-medium",name:"MusicGen Medium"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},43701:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
2
- ${a}`),Error(`Provider validation failed for ${b}`)}}d()}catch(a){d(a)}})},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(56642),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},78335:()=>{},83262:(a,b,c)=>{"use strict";c.d(b,{Lb:()=>e,QG:()=>f,zD:()=>g});let d={nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]},openai:{id:"openai",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]},mistral:{id:"mistral",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};let b=a.indexOf("/");if(b>0){for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};return{provider:a.slice(0,b),model:a.slice(b+1)}}for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,dimensions:d.dimensions});return a}},88258:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>r});var e=c(92556),f=c(30255),g=c(8959),h=c(22901),i=c(9415),j=c(83262),k=c(15102),l=c(94954),m=c(81565),n=c(96721),o=c(90416),p=c(33136),q=a([f,g]);[f,g]=q.then?(await q)():q;let s={ag:"antigravity",cc:"claude",cl:"cline",cu:"cursor",cx:"codex",gc:"gemini-cli",gh:"github",if:"iflow",kc:"kilocode",kmc:"kimi-coding",kr:"kiro",qw:"qwen"};async function r(a,b={"Access-Control-Allow-Origin":e.J5}){try{let c={};try{c=await (0,h.V7)()}catch{}if(!0===c.requireAuthForModels&&!await (0,i.wR)(a))return Response.json({error:{message:"Authentication required",type:"invalid_request_error",code:"invalid_api_key"}},{status:401});let{aliasToProviderId:d,providerIdToAlias:e}=function(){let a={},b={};for(let c of Object.values(g.Q2)){let d=c?.id,e=c?.alias||d;d&&(a[d]=d,a[e]=d,b[d]||(b[d]=e))}for(let[b,c]of Object.entries(f.Xg)){if(f.vq[b]){a[b]=a[b]||c;continue}if(f.vq[c]){a[c]=a[c]||b;continue}a[c]=a[c]||b}for(let b of Object.keys(f.vq))a[b]||(a[b]=b);for(let[c,d]of Object.entries(a))b[d]||(b[d]=c);for(let[c,d]of Object.entries(s))a[c]||(a[c]=d),a[d]||(a[d]=d),b[d]||(b[d]=c);return{aliasToProviderId:a,providerIdToAlias:b}}(),q=new Set(Array.isArray(c.blockedProviders)?c.blockedProviders:[]),r=[];try{(r=await (0,h.getProviderConnections)()).length,r=r.filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, showing only combos/custom models")}let t=[];try{t=await (0,h.Fh)()}catch(a){console.log("Could not fetch provider nodes")}let u={},v={};for(let a of t)a.prefix&&(u[a.id]=a.prefix),a.type&&(v[a.id]=a.type);let w=[];try{w=await (0,h.Uv)()}catch(a){console.log("Could not fetch combos")}let x=new Set;for(let a of r){let b=e[a.provider]||a.provider;x.add(b),x.add(a.provider)}let y=[],z=Math.floor(Date.now()/1e3);for(let a of w)!1!==a.isActive&&y.push({id:a.name,object:"model",created:z,owned_by:"combo",permission:[],root:a.name,parent:null});for(let[a,b]of Object.entries(f.vq)){let c=d[a]||a,e=s[a]||c;if(!(q.has(a)||q.has(e))&&(x.has(a)||x.has(e)))for(let c of b){let b=`${a}/${c.id}`;y.push({id:b,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:null}),e!==a&&y.push({id:`${e}/${c.id}`,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:b})}}let A=a=>{if(0===x.size)return!1;let b=e[a]||a;return x.has(b)||x.has(a)};for(let a of(0,j.zD)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"embedding",dimensions:a.dimensions});for(let a of(0,k.lw)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"image",supported_sizes:a.supportedSizes});for(let a of(0,l.xt)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"rerank"});for(let a of(0,m.ah)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"audio",subtype:a.subtype});for(let a of(0,n.iI)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"moderation"});for(let a of(0,o.nC)()){let b=(0,o.L4)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"video"})}for(let a of(0,p.lR)()){let b=(0,p.$q)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"music"})}try{let a=await (0,h.NL)();for(let[b,c]of Object.entries(a)){let a=Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[],d=u[b],f=d||e[b]||b,g=s[f]||b,h=v[b];if(x.has(f)||x.has(g)||x.has(b)||h&&x.has(h))for(let b of a){let a,c="string"==typeof b.id?b.id:null;if(!c)continue;let e=`${f}/${c}`;if(y.some(a=>a.id===e))continue;let h=Array.isArray(b.supportedEndpoints)?b.supportedEndpoints:["chat"],i="string"==typeof b.apiFormat?b.apiFormat:"chat-completions";if(h.includes("embeddings")?a="embedding":h.includes("images")?a="image":h.includes("audio")&&(a="audio"),y.push({id:e,object:"model",created:z,owned_by:g,permission:[],root:c,parent:null,custom:!0,...a?{type:a}:{},..."chat-completions"!==i?{api_format:i}:{},...h.length>1||!h.includes("chat")?{supported_endpoints:h}:{}}),g!==f&&!d){let b=`${g}/${c}`;if(y.some(a=>a.id===b))continue;y.push({id:b,object:"model",created:z,owned_by:g,permission:[],root:c,parent:e,custom:!0,...a?{type:a}:{}})}}}}catch(a){console.log("Could not fetch custom models")}return Response.json({object:"list",data:y},{headers:b})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}d()}catch(a){d(a)}})},90416:(a,b,c)=>{"use strict";c.d(b,{L4:()=>f,Y3:()=>g,nC:()=>h});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"animatediff",name:"AnimateDiff"},{id:"svd-xt",name:"Stable Video Diffusion XT"}]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860",authType:"none",authHeader:"none",format:"sdwebui-video",models:[{id:"animatediff-webui",name:"AnimateDiff (WebUI)"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},92556:(a,b,c)=>{"use strict";c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},94954:(a,b,c)=>{"use strict";c.d(b,{AN:()=>f,Bo:()=>e,xt:()=>g});let d={cohere:{id:"cohere",baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v3.5",name:"Rerank v3.5"},{id:"rerank-english-v3.0",name:"Rerank English v3.0"},{id:"rerank-multilingual-v3.0",name:"Rerank Multilingual v3.0"}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"Salesforce/Llama-Rank-V2",name:"Llama Rank V2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/ranking",authType:"apikey",authHeader:"bearer",format:"nvidia",models:[{id:"nvidia/nv-rerankqa-mistral-4b-v3",name:"NV RerankQA Mistral 4B v3"}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/nomic-rerank-v1",name:"Nomic Rerank v1"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}},96487:()=>{},96721:(a,b,c)=>{"use strict";c.d(b,{iI:()=>g,mX:()=>e,vb:()=>f});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/moderations",authType:"apikey",authHeader:"bearer",models:[{id:"omni-moderation-latest",name:"Omni Moderation Latest"},{id:"text-moderation-latest",name:"Text Moderation Latest"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}}};
1
+ exports.id=3061,exports.ids=[3061,4755,7136],exports.modules={8959:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{DI:()=>m,IS:()=>i,JH:()=>l,Q2:()=>n,fg:()=>k,gb:()=>h,js:()=>o,mq:()=>g,zN:()=>j});var e=c(43701),f=a([e]);e=(f.then?(await f)():f)[0];let i={iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1"},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981"},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4"},kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35"}},j={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757"},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B"},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6"},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333"},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA"},"kimi-coding":{id:"kimi-coding",alias:"kmc",name:"Kimi Coding",icon:"psychology",color:"#1E40AF",textIcon:"KC"},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC"},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL"}},k={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",passthroughModels:!0,website:"https://openrouter.ai"},glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn"},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn"},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com"},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com"},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com"},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com"},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",website:"https://ai.google.dev"},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com"},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",hasFree:!0,freeNote:"Free tier: 30 RPM / 14.4K RPD — no credit card"},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"view_in_ar",color:"#1A1A2E",textIcon:"BB",website:"https://blackbox.ai"},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai"},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai"},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai"},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai"},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai"},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://inference.cerebras.ai",hasFree:!0,freeNote:"Free: 1M tokens/day, 60K TPM — world's fastest inference"},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com"},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://build.nvidia.com",hasFree:!0,freeNote:"Free dev access: ~40 RPM, 70+ models (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)"},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com"},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com"},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz"},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com"},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com"},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana",icon:"image",color:"#FFD700",textIcon:"NB",website:"https://nanobananaapi.ai"},"ollama-cloud":{id:"ollama-cloud",alias:"ollamacloud",name:"Ollama Cloud",icon:"cloud",color:"#58A6FF",textIcon:"OC",website:"https://ollama.com/settings/api-keys"},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io"},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai"},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht"},inworld:{id:"inworld",alias:"inworld",name:"Inworld",icon:"voice_chat",color:"#7B2EF2",textIcon:"IW",website:"https://inworld.ai"},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui"},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI"},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",hasFree:!0,freeNote:"Free Inference API for thousands of models (Whisper, VITS, SDXL…)"},vertex:{id:"vertex",alias:"vertex",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VA",website:"https://cloud.google.com/vertex-ai",authHint:"Provide Service Account JSON or OAuth access_token"}},l="openai-compatible-",m="anthropic-compatible-";function g(a){return"string"==typeof a&&a.startsWith(l)}function h(a){return"string"==typeof a&&a.startsWith(m)}let n={...i,...j,...k},o=Object.values(n).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(n).reduce((a,b)=>(a[b.id]=b.alias,a),{}),(0,e.LA)(i,"FREE_PROVIDERS"),(0,e.LA)(j,"OAUTH_PROVIDERS"),(0,e.LA)(k,"APIKEY_PROVIDERS"),d()}catch(a){d(a)}})},9415:(a,b,c)=>{"use strict";c.d(b,{ux:()=>h,wR:()=>g});var d=c(69614),e=c(65573),f=c(75585);async function g(a){let b=a.headers.get("authorization");if(b?.startsWith("Bearer ")){let a=b.slice(7);try{let{validateApiKey:b}=await Promise.resolve().then(c.bind(c,80500));if(await b(a))return!0}catch{}}if(process.env.JWT_SECRET)try{let a=await (0,e.UL)(),b=a.get("auth_token")?.value;if(b){let a=new TextEncoder().encode(process.env.JWT_SECRET);return await (0,d.V)(b,a),!0}}catch{}return!1}async function h(){try{let a=await (0,f.V7)();if(!1===a.requireLogin||!a.password&&!process.env.INITIAL_PASSWORD)return!1;return!0}catch{return!0}}},15102:(a,b,c)=>{"use strict";c.d(b,{Uk:()=>f,bV:()=>e,lw:()=>g});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-1",name:"GPT Image 1"},{id:"dall-e-3",name:"DALL-E 3"},{id:"dall-e-2",name:"DALL-E 2"}],supportedSizes:["1024x1024","1024x1792","1792x1024","256x256","512x512"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-2-image-1212",name:"Grok 2 Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.1.1-pro",name:"FLUX 1.1 Pro"},{id:"black-forest-labs/FLUX.1-schnell-Free",name:"FLUX 1 Schnell (Free)"},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[{id:"gemini-2.5-flash-preview-image-generation",name:"Gemini 2.5 Flash Image"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image Preview"}],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"FLUX.1 Schnell"},{id:"black-forest-labs/flux-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"SDXL 1.0 Base"},{id:"SD2",name:"Stable Diffusion 2"},{id:"FLUX.1-dev",name:"FLUX.1 Dev"}],supportedSizes:["1024x1024","512x512"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,supportedSizes:c.supportedSizes});return a}},19225:(a,b,c)=>{"use strict";a.exports=c(44870)},30255:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{Xg:()=>e.PROVIDER_ID_TO_ALIAS,eh:()=>h,vq:()=>e.vq});var e=c(23969),f=c(8959),g=a([f]);f=(g.then?(await g)():g)[0],Object.entries(f.Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a);let h=Object.entries(e.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})));d()}catch(a){d(a)}})},33136:(a,b,c)=>{"use strict";c.d(b,{$q:()=>f,lR:()=>h,m:()=>g});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"stable-audio-open",name:"Stable Audio Open"},{id:"musicgen-medium",name:"MusicGen Medium"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},43701:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{LA:()=>g});var e=c(42971),f=a([e]);let h=(e=(f.then?(await f)():f)[0]).z.object({id:e.z.string().min(1),alias:e.z.string().min(1),name:e.z.string().min(1),icon:e.z.string().min(1),color:e.z.string().regex(/^#[0-9A-Fa-f]{6}$/,"Must be a valid hex color (#RRGGBB)"),textIcon:e.z.string().optional(),website:e.z.string().url().optional(),passthroughModels:e.z.boolean().optional()}),i=e.z.record(e.z.string(),h);function g(a,b){let c=i.safeParse(a);if(!c.success){let a=c.error.issues.map(a=>` ${a.path.join(".")}: ${a.message}`).join("\n");throw console.error(`[PROVIDER VALIDATION] ${b} has invalid entries:
2
+ ${a}`),Error(`Provider validation failed for ${b}`)}}d()}catch(a){d(a)}})},50122:(a,b,c)=>{"use strict";c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},69614:(a,b,c)=>{"use strict";c.d(b,{V:()=>p});var d=c(56642),e=c(91356),f=c(99129),g=c(73575),h=c(41570),i=c(19035),j=c(24762),k=c(80308),l=c(55956);async function m(a,b,c){if(!(0,i.Gv)(a))throw new f.Ye("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new f.Ye('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new f.Ye("JWS Protected Header incorrect type");if(void 0===a.payload)throw new f.Ye("JWS Payload missing");if("string"!=typeof a.signature)throw new f.Ye("JWS Signature missing or incorrect type");if(void 0!==a.header&&!(0,i.Gv)(a.header))throw new f.Ye("JWS Unprotected Header incorrect type");let m={};if(a.protected)try{let b=(0,d.D)(a.protected);m=JSON.parse(g.D0.decode(b))}catch{throw new f.Ye("JWS Protected Header is invalid")}if(!(0,i.fz)(m,a.header))throw new f.Ye("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let n={...m,...a.header},o=(0,k.n)(f.Ye,new Map([["b64",!0]]),c?.crit,m,n),p=!0;if(o.has("b64")&&"boolean"!=typeof(p=m.b64))throw new f.Ye('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:q}=n;if("string"!=typeof q||!q)throw new f.Ye('JWS "alg" (Algorithm) Header Parameter missing or invalid');let r=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(r&&!r.has(q))throw new f.Rb('"alg" (Algorithm) Header Parameter value not allowed');if(p){if("string"!=typeof a.payload)throw new f.Ye("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new f.Ye("JWS Payload must be a string or an Uint8Array instance");let s=!1;"function"==typeof b&&(b=await b(m,a),s=!0),(0,j.y)(q,b,"verify");let t=(0,g.xW)(void 0!==a.protected?(0,g.lF)(a.protected):new Uint8Array,(0,g.lF)("."),"string"==typeof a.payload?p?(0,g.lF)(a.payload):g.Rd.encode(a.payload):a.payload),u=(0,h.h2)(a.signature,"signature",f.Ye),v=await (0,l.l)(b,q);if(!await (0,e.MX)(q,v,u,t))throw new f.h2;let w={payload:p?(0,h.h2)(a.payload,"payload",f.Ye):"string"==typeof a.payload?g.Rd.encode(a.payload):a.payload};return(void 0!==a.protected&&(w.protectedHeader=m),void 0!==a.header&&(w.unprotectedHeader=a.header),s)?{...w,key:v}:w}async function n(a,b,c){if(a instanceof Uint8Array&&(a=g.D0.decode(a)),"string"!=typeof a)throw new f.Ye("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:h,length:i}=a.split(".");if(3!==i)throw new f.Ye("Invalid Compact JWS");let j=await m({payload:e,protected:d,signature:h},b,c),k={payload:j.payload,protectedHeader:j.protectedHeader};return"function"==typeof b?{...k,key:j.key}:k}var o=c(17347);async function p(a,b,c){let d=await n(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new f.Dp("JWTs MUST NOT use unencoded payload");let e={payload:(0,o.k6)(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}},78335:()=>{},83262:(a,b,c)=>{"use strict";c.d(b,{Lb:()=>e,QG:()=>f,zD:()=>g});let d={nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]},openai:{id:"openai",baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]},mistral:{id:"mistral",baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};let b=a.indexOf("/");if(b>0){for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};return{provider:a.slice(0,b),model:a.slice(b+1)}}for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b,dimensions:d.dimensions});return a}},88258:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{y:()=>r});var e=c(92556),f=c(30255),g=c(8959),h=c(75585),i=c(9415),j=c(83262),k=c(15102),l=c(94954),m=c(81565),n=c(96721),o=c(90416),p=c(33136),q=a([f,g]);[f,g]=q.then?(await q)():q;let s={ag:"antigravity",cc:"claude",cl:"cline",cu:"cursor",cx:"codex",gc:"gemini-cli",gh:"github",if:"iflow",kc:"kilocode",kmc:"kimi-coding",kr:"kiro",qw:"qwen"};async function r(a,b={"Access-Control-Allow-Origin":e.J5}){try{let c={};try{c=await (0,h.V7)()}catch{}if(!0===c.requireAuthForModels&&!await (0,i.wR)(a))return Response.json({error:{message:"Authentication required",type:"invalid_request_error",code:"invalid_api_key"}},{status:401});let{aliasToProviderId:d,providerIdToAlias:e}=function(){let a={},b={};for(let c of Object.values(g.Q2)){let d=c?.id,e=c?.alias||d;d&&(a[d]=d,a[e]=d,b[d]||(b[d]=e))}for(let[b,c]of Object.entries(f.Xg)){if(f.vq[b]){a[b]=a[b]||c;continue}if(f.vq[c]){a[c]=a[c]||b;continue}a[c]=a[c]||b}for(let b of Object.keys(f.vq))a[b]||(a[b]=b);for(let[c,d]of Object.entries(a))b[d]||(b[d]=c);for(let[c,d]of Object.entries(s))a[c]||(a[c]=d),a[d]||(a[d]=d),b[d]||(b[d]=c);return{aliasToProviderId:a,providerIdToAlias:b}}(),q=new Set(Array.isArray(c.blockedProviders)?c.blockedProviders:[]),r=[];try{(r=await (0,h.getProviderConnections)()).length,r=r.filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, showing only combos/custom models")}let t=[];try{t=await (0,h.Fh)()}catch(a){console.log("Could not fetch provider nodes")}let u={},v={};for(let a of t)a.prefix&&(u[a.id]=a.prefix),a.type&&(v[a.id]=a.type);let w=[];try{w=await (0,h.Uv)()}catch(a){console.log("Could not fetch combos")}let x=new Set;for(let a of r){let b=e[a.provider]||a.provider;x.add(b),x.add(a.provider)}let y=[],z=Math.floor(Date.now()/1e3);for(let a of w)!1!==a.isActive&&y.push({id:a.name,object:"model",created:z,owned_by:"combo",permission:[],root:a.name,parent:null});for(let[a,b]of Object.entries(f.vq)){let c=d[a]||a,e=s[a]||c;if(!(q.has(a)||q.has(e))&&(x.has(a)||x.has(e)))for(let c of b){let b=`${a}/${c.id}`;y.push({id:b,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:null}),e!==a&&y.push({id:`${e}/${c.id}`,object:"model",created:z,owned_by:e,permission:[],root:c.id,parent:b})}}let A=a=>{if(0===x.size)return!1;let b=e[a]||a;return x.has(b)||x.has(a)};for(let a of(0,j.zD)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"embedding",dimensions:a.dimensions});for(let a of(0,k.lw)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"image",supported_sizes:a.supportedSizes});for(let a of(0,l.xt)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"rerank"});for(let a of(0,m.ah)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"audio",subtype:a.subtype});for(let a of(0,n.iI)())A(a.provider)&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"moderation"});for(let a of(0,o.nC)()){let b=(0,o.L4)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"video"})}for(let a of(0,p.lR)()){let b=(0,p.$q)(a.provider);(b?.authType==="none"||A(a.provider))&&y.push({id:a.id,object:"model",created:z,owned_by:a.provider,type:"music"})}try{let a=await (0,h.NL)();for(let[b,c]of Object.entries(a)){let a=Array.isArray(c)?c.filter(a=>!!a&&"object"==typeof a&&!Array.isArray(a)):[],d=u[b],f=d||e[b]||b,g=s[f]||b,h=v[b];if(x.has(f)||x.has(g)||x.has(b)||h&&x.has(h))for(let b of a){let a,c="string"==typeof b.id?b.id:null;if(!c)continue;let e=`${f}/${c}`;if(y.some(a=>a.id===e))continue;let h=Array.isArray(b.supportedEndpoints)?b.supportedEndpoints:["chat"],i="string"==typeof b.apiFormat?b.apiFormat:"chat-completions";if(h.includes("embeddings")?a="embedding":h.includes("images")?a="image":h.includes("audio")&&(a="audio"),y.push({id:e,object:"model",created:z,owned_by:g,permission:[],root:c,parent:null,custom:!0,...a?{type:a}:{},..."chat-completions"!==i?{api_format:i}:{},...h.length>1||!h.includes("chat")?{supported_endpoints:h}:{}}),g!==f&&!d){let b=`${g}/${c}`;if(y.some(a=>a.id===b))continue;y.push({id:b,object:"model",created:z,owned_by:g,permission:[],root:c,parent:e,custom:!0,...a?{type:a}:{}})}}}}catch(a){console.log("Could not fetch custom models")}return Response.json({object:"list",data:y},{headers:b})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}d()}catch(a){d(a)}})},90416:(a,b,c)=>{"use strict";c.d(b,{L4:()=>f,Y3:()=>g,nC:()=>h});var d=c(66436);let e={comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"animatediff",name:"AnimateDiff"},{id:"svd-xt",name:"Stable Video Diffusion XT"}]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860",authType:"none",authHeader:"none",format:"sdwebui-video",models:[{id:"animatediff-webui",name:"AnimateDiff (WebUI)"}]}};function f(a){return e[a]||null}function g(a){return(0,d.AA)(a,e)}function h(){return(0,d.tv)(e)}},92280:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(28208),e=c(47617),f=c(62018);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},92305:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15693),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},92556:(a,b,c)=>{"use strict";c.d(b,{$N:()=>e,J5:()=>d});let d=process.env.CORS_ORIGIN||"*",e={"Access-Control-Allow-Origin":d,"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, x-api-key, anthropic-version"}},94755:(a,b,c)=>{"use strict";c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}},94954:(a,b,c)=>{"use strict";c.d(b,{AN:()=>f,Bo:()=>e,xt:()=>g});let d={cohere:{id:"cohere",baseUrl:"https://api.cohere.com/v2/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"rerank-v3.5",name:"Rerank v3.5"},{id:"rerank-english-v3.0",name:"Rerank English v3.0"},{id:"rerank-multilingual-v3.0",name:"Rerank Multilingual v3.0"}]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"Salesforce/Llama-Rank-V2",name:"Llama Rank V2"}]},nvidia:{id:"nvidia",baseUrl:"https://integrate.api.nvidia.com/v1/ranking",authType:"apikey",authHeader:"bearer",format:"nvidia",models:[{id:"nvidia/nv-rerankqa-mistral-4b-v3",name:"NV RerankQA Mistral 4B v3"}]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/rerank",authType:"apikey",authHeader:"bearer",models:[{id:"accounts/fireworks/models/nomic-rerank-v1",name:"Nomic Rerank v1"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}},96487:()=>{},96721:(a,b,c)=>{"use strict";c.d(b,{iI:()=>g,mX:()=>e,vb:()=>f});let d={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/moderations",authType:"apikey",authHeader:"bearer",models:[{id:"omni-moderation-latest",name:"Omni Moderation Latest"},{id:"text-moderation-latest",name:"Text Moderation Latest"}]}};function e(a){return d[a]||null}function f(a){if(!a)return{provider:null,model:null};for(let[b,c]of Object.entries(d))if(a.startsWith(b+"/"))return{provider:b,model:a.slice(b.length+1)};for(let[b,c]of Object.entries(d))if(c.models.some(b=>b.id===a))return{provider:b,model:a};return{provider:null,model:a}}function g(){let a=[];for(let[b,c]of Object.entries(d))for(let d of c.models)a.push({id:`${b}/${d.id}`,name:d.name,provider:b});return a}}};