omniroute 2.8.5 → 2.8.7

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 (255) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/build-manifest.json +2 -2
  3. package/app/.next/prerender-manifest.json +3 -3
  4. package/app/.next/server/app/(dashboard)/dashboard/a2a/page_client-reference-manifest.js +1 -1
  5. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/mcp/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/media/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/_global-error.html +2 -2
  40. package/app/.next/server/app/_global-error.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/acp/agents/route.js +1 -1
  48. package/app/.next/server/app/api/acp/agents/route.js.nft.json +1 -1
  49. package/app/.next/server/app/api/auth/login/route.js +1 -1
  50. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  51. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  52. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  53. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  54. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  55. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  56. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  58. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  60. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  62. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/combos/route.js +1 -1
  64. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  65. package/app/.next/server/app/api/combos/test/route.js +1 -1
  66. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  67. package/app/.next/server/app/api/db-backups/export/route.js +1 -1
  68. package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -1
  69. package/app/.next/server/app/api/db-backups/import/route.js +1 -1
  70. package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
  71. package/app/.next/server/app/api/db-backups/route.js +1 -1
  72. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  73. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  74. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  75. package/app/.next/server/app/api/keys/route.js +1 -1
  76. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  77. package/app/.next/server/app/api/logs/detail/route.js +1 -1
  78. package/app/.next/server/app/api/logs/detail/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/models/alias/route.js +1 -1
  80. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  81. package/app/.next/server/app/api/models/openrouter-catalog/route.js +1 -1
  82. package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -1
  83. package/app/.next/server/app/api/models/route.js +1 -1
  84. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  85. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  86. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  87. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  88. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  89. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +1 -1
  90. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  91. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  92. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  94. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  96. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  97. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  98. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/pricing/models/route.js +1 -1
  100. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  101. package/app/.next/server/app/api/pricing/route.js +1 -1
  102. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  103. package/app/.next/server/app/api/provider-models/route.js +2 -2
  104. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  106. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  108. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  110. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/providers/[id]/refresh/route.js +1 -1
  112. package/app/.next/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  114. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  116. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/providers/client/route.js +1 -1
  118. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/providers/route.js +1 -1
  120. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/providers/test-batch/route.js +2 -2
  122. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  124. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/rate-limits/route.js +1 -1
  126. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/resilience/route.js +1 -1
  128. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  129. package/app/.next/server/app/api/search/providers/route.js +1 -1
  130. package/app/.next/server/app/api/search/providers/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/search/stats/route.js +1 -1
  132. package/app/.next/server/app/api/search/stats/route.js.nft.json +1 -1
  133. package/app/.next/server/app/api/settings/codex-service-tier/route.js +1 -1
  134. package/app/.next/server/app/api/settings/codex-service-tier/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/settings/combo-defaults/route.js +1 -1
  136. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/settings/proxies/assignments/route.js +2 -2
  138. package/app/.next/server/app/api/settings/proxies/bulk-assign/route.js +2 -2
  139. package/app/.next/server/app/api/settings/proxies/route.js +1 -1
  140. package/app/.next/server/app/api/settings/proxy/route.js +2 -2
  141. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  142. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/settings/route.js +1 -1
  144. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  145. package/app/.next/server/app/api/settings/system-prompt/route.js +1 -1
  146. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/settings/thinking-budget/route.js +1 -1
  148. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/sync/cloud/route.js +1 -1
  150. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/sync/initialize/route.js +1 -1
  152. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/system/version/route.js +1 -1
  154. package/app/.next/server/app/api/system/version/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/translator/send/route.js +1 -1
  156. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  158. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/usage/quota/route.js +1 -1
  160. package/app/.next/server/app/api/usage/quota/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/v1/embeddings/route.js +7 -6
  162. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/v1/management/proxies/assignments/route.js +1 -1
  164. package/app/.next/server/app/api/v1/management/proxies/assignments/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/v1/management/proxies/bulk-assign/route.js +1 -1
  166. package/app/.next/server/app/api/v1/management/proxies/bulk-assign/route.js.nft.json +1 -1
  167. package/app/.next/server/app/api/v1/management/proxies/health/route.js +1 -1
  168. package/app/.next/server/app/api/v1/management/proxies/health/route.js.nft.json +1 -1
  169. package/app/.next/server/app/api/v1/management/proxies/route.js +1 -1
  170. package/app/.next/server/app/api/v1/management/proxies/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/v1/models/route.js +1 -1
  172. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/v1/route.js +1 -1
  174. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  175. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  187. package/app/.next/server/chunks/[root-of-the-server]__007da72e._.js +3 -0
  188. package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
  189. package/app/.next/server/chunks/[root-of-the-server]__784fb7c5._.js +1 -1
  190. package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
  191. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
  192. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
  193. package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +1 -1
  194. package/app/.next/server/chunks/[root-of-the-server]__a630d6ef._.js +5 -5
  195. package/app/.next/server/chunks/[root-of-the-server]__c8e3c8a9._.js +50 -0
  196. package/app/.next/server/chunks/[root-of-the-server]__d4563e10._.js +1 -1
  197. package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
  198. package/app/.next/server/chunks/[root-of-the-server]__e27a89bd._.js +1 -1
  199. package/app/.next/server/chunks/_05c48915._.js +1 -1
  200. package/app/.next/server/chunks/_1244636c._.js +2 -2
  201. package/app/.next/server/chunks/_14963fed._.js +1 -1
  202. package/app/.next/server/chunks/_1717e651._.js +1 -1
  203. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  204. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  205. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  206. package/app/.next/server/chunks/_5677b5e2._.js +1 -1
  207. package/app/.next/server/chunks/_5bbb2e7a._.js +1 -1
  208. package/app/.next/server/chunks/_68683848._.js +1 -1
  209. package/app/.next/server/chunks/_b39b1914._.js +3 -0
  210. package/app/.next/server/chunks/_c05b9de3._.js +1 -1
  211. package/app/.next/server/chunks/_c795fc74._.js +1 -1
  212. package/app/.next/server/chunks/_ee7b7859._.js +1 -1
  213. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  214. package/app/.next/server/chunks/open-sse_translator_index_ts_f5fd0821._.js +2 -2
  215. package/app/.next/server/chunks/src_lib_localDb_ts_83220848._.js +1 -1
  216. package/app/.next/server/chunks/src_shared_validation_schemas_ts_4e63863a._.js +1 -1
  217. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  218. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  219. package/app/.next/server/chunks/ssr/src_9197fb9b._.js +1 -1
  220. package/app/.next/server/chunks/ssr/src_d3225e36._.js +1 -1
  221. package/app/.next/server/chunks/ssr/src_i18n_messages_en_json_c3d5c412._.js +1 -1
  222. package/app/.next/server/chunks/ssr/src_i18n_messages_zh-CN_json_f4112d90._.js +1 -1
  223. package/app/.next/server/pages/500.html +2 -2
  224. package/app/.next/server/server-reference-manifest.js +1 -1
  225. package/app/.next/server/server-reference-manifest.json +1 -1
  226. package/app/.next/static/chunks/1042694db0c08f1f.css +1 -0
  227. package/app/.next/static/chunks/{ec1938d17386c6db.js → 34569b4e9d93c0ad.js} +2 -2
  228. package/app/.next/static/chunks/{d9a70775eb233dc3.js → 53e0c73d409ce003.js} +1 -1
  229. package/app/.next/static/chunks/91761ba00c702cff.js +1 -0
  230. package/app/CHANGELOG.md +50 -0
  231. package/app/docs/openapi.yaml +1 -1
  232. package/app/open-sse/handlers/chatCore.ts +6 -2
  233. package/app/open-sse/services/rateLimitManager.ts +10 -5
  234. package/app/open-sse/services/roleNormalizer.ts +14 -19
  235. package/app/open-sse/translator/index.ts +27 -3
  236. package/app/package-lock.json +2 -2
  237. package/app/package.json +1 -1
  238. package/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.tsx +12 -0
  239. package/app/src/app/(dashboard)/dashboard/cli-tools/components/AntigravityToolCard.tsx +5 -5
  240. package/app/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +381 -62
  241. package/app/src/app/api/provider-models/route.ts +47 -6
  242. package/app/src/app/api/v1/embeddings/route.ts +33 -3
  243. package/app/src/i18n/messages/en.json +10 -0
  244. package/app/src/i18n/messages/zh-CN.json +10 -0
  245. package/app/src/lib/db/models.ts +130 -13
  246. package/app/src/lib/localDb.ts +5 -0
  247. package/app/src/shared/validation/schemas.ts +1 -0
  248. package/package.json +1 -1
  249. package/app/.next/server/chunks/[root-of-the-server]__3972de72._.js +0 -50
  250. package/app/.next/server/chunks/[root-of-the-server]__6b56b04f._.js +0 -3
  251. package/app/.next/static/chunks/af071ff826ecff1b.css +0 -1
  252. package/app/.next/static/chunks/d19ab4efcaddd1db.js +0 -1
  253. /package/app/.next/static/{coLESPH6_RrEzzULWq8F5 → zi0Yj1AW2_CKS-WmB5ZUc}/_buildManifest.js +0 -0
  254. /package/app/.next/static/{coLESPH6_RrEzzULWq8F5 → zi0Yj1AW2_CKS-WmB5ZUc}/_clientMiddlewareManifest.json +0 -0
  255. /package/app/.next/static/{coLESPH6_RrEzzULWq8F5 → zi0Yj1AW2_CKS-WmB5ZUc}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[676088,e=>e.a(async(o,t)=>{try{var i=e.i(677850),n=e.i(200392),a=o([i,n]);function r(e){try{let o=new URL(e);return"http:"===o.protocol||"https:"===o.protocol}catch{return!1}}[i,n]=a.then?(await a)():a;let s=i.z.object({provider:i.z.string().min(1).max(100),apiKey:i.z.string().min(1).max(1e4),name:i.z.string().min(1).max(200),priority:i.z.number().int().min(1).max(100).optional(),globalPriority:i.z.number().int().min(1).max(100).nullable().optional(),defaultModel:i.z.string().max(200).nullable().optional(),testStatus:i.z.string().max(50).optional(),providerSpecificData:i.z.record(i.z.string(),i.z.unknown()).optional().superRefine((e,o)=>{if(!e)return;let t=e.baseUrl;void 0!==t&&("string"==typeof t&&r(t)||o.addIssue({code:i.z.ZodIssueCode.custom,message:"providerSpecificData.baseUrl must be a valid http(s) URL",path:["baseUrl"]}))})}),l=i.z.object({name:i.z.string().min(1,"Name is required").max(200)}),m=i.z.union([i.z.string(),i.z.object({model:i.z.string().min(1),weight:i.z.number().min(0).max(100).default(0)})]),d=i.z.object({maxRetries:i.z.number().int().min(0).max(10).optional(),retryDelayMs:i.z.number().int().min(0).max(6e4).optional(),timeoutMs:i.z.number().int().min(1e3).max(6e5).optional(),healthCheckEnabled:i.z.boolean().optional()}).optional(),c=i.z.enum(["priority","weighted","round-robin","random","least-used","cost-optimized","strict-random","auto"]),z=i.z.object({strategy:c.optional(),maxRetries:i.z.coerce.number().int().min(0).max(10).optional(),retryDelayMs:i.z.coerce.number().int().min(0).max(6e4).optional(),timeoutMs:i.z.coerce.number().int().min(1e3).max(6e5).optional(),concurrencyPerModel:i.z.coerce.number().int().min(1).max(20).optional(),queueTimeoutMs:i.z.coerce.number().int().min(1e3).max(12e4).optional(),healthCheckEnabled:i.z.boolean().optional(),healthCheckTimeoutMs:i.z.coerce.number().int().min(100).max(3e4).optional(),maxComboDepth:i.z.coerce.number().int().min(1).max(10).optional(),trackMetrics:i.z.boolean().optional()}).strict(),p=i.z.object({name:i.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and ."),models:i.z.array(m).optional().default([]),strategy:c.optional().default("priority"),config:d,allowedProviders:i.z.array(i.z.string().max(200)).optional(),system_message:i.z.string().max(5e4).optional(),tool_filter_regex:i.z.string().max(1e3).optional(),context_cache_protection:i.z.boolean().optional()}),u=i.z.object({quota:i.z.number().min(0).max(1),health:i.z.number().min(0).max(1),costInv:i.z.number().min(0).max(1),latencyInv:i.z.number().min(0).max(1),taskFit:i.z.number().min(0).max(1),stability:i.z.number().min(0).max(1),tierPriority:i.z.number().min(0).max(1).optional().default(.05)}).optional(),g=i.z.object({id:i.z.string().trim().min(1,"id is required").max(100),name:i.z.string().trim().min(1,"name is required").max(200),candidatePool:i.z.array(i.z.string().min(1)).optional().default([]),weights:u,modePack:i.z.string().max(100).optional(),budgetCap:i.z.number().positive().optional(),explorationRate:i.z.number().min(0).max(1).optional().default(.05)});i.z.object({newPassword:i.z.string().min(1).max(200).optional(),currentPassword:i.z.string().max(200).optional(),theme:i.z.string().max(50).optional(),language:i.z.string().max(10).optional(),requireLogin:i.z.boolean().optional(),enableRequestLogs:i.z.boolean().optional(),enableSocks5Proxy:i.z.boolean().optional(),instanceName:i.z.string().max(100).optional(),corsOrigins:i.z.string().max(500).optional(),logRetentionDays:i.z.number().int().min(1).max(365).optional(),cloudUrl:i.z.string().max(500).optional(),baseUrl:i.z.string().max(500).optional(),setupComplete:i.z.boolean().optional(),requireAuthForModels:i.z.boolean().optional(),blockedProviders:i.z.array(i.z.string().max(100)).optional(),hideHealthCheckLogs:i.z.boolean().optional(),fallbackStrategy:i.z.enum(["fill-first","round-robin","p2c","random","least-used","cost-optimized","strict-random"]).optional(),wildcardAliases:i.z.array(i.z.object({pattern:i.z.string(),target:i.z.string()})).optional(),stickyRoundRobinLimit:i.z.number().int().min(0).max(1e3).optional(),intentDetectionEnabled:i.z.boolean().optional(),intentSimpleMaxWords:i.z.number().int().min(1).max(500).optional(),intentExtraCodeKeywords:i.z.array(i.z.string().max(100)).optional(),intentExtraReasoningKeywords:i.z.array(i.z.string().max(100)).optional(),intentExtraSimpleKeywords:i.z.array(i.z.string().max(100)).optional(),mcpEnabled:i.z.boolean().optional(),a2aEnabled:i.z.boolean().optional()});let b=i.z.object({password:i.z.string().min(1,"Password is required").max(200)}),h=i.z.string().trim().min(1,"Model is required").max(200),v=i.z.string().trim().min(1,"Field is required"),y=i.z.array(i.z.number().int().min(0)).min(1,"input token array must contain at least one item"),x=i.z.union([v,i.z.array(v).min(1,"input must contain at least one item"),y,i.z.array(y).min(1,"input must contain at least one item")]),f=i.z.object({role:i.z.string().trim().min(1,"messages[].role is required"),content:i.z.union([v,i.z.array(i.z.unknown()).min(1),i.z.null()]).optional()}).catchall(i.z.unknown()),j=i.z.object({content:i.z.union([v,i.z.array(i.z.object({type:i.z.string().optional(),text:i.z.string().optional()}).catchall(i.z.unknown())).min(1,"messages[].content must contain at least one item")])}).catchall(i.z.unknown()),k=i.z.object({model:h,input:x,dimensions:i.z.coerce.number().int().positive().optional(),encoding_format:i.z.enum(["float","base64"]).optional()}).catchall(i.z.unknown()),S=i.z.object({model:h,prompt:v}).catchall(i.z.unknown()),I=i.z.object({model:h,input:v}).catchall(i.z.unknown()),q=i.z.object({model:h.optional(),input:i.z.unknown().refine(e=>null!=e&&("string"==typeof e?e.trim().length>0:!Array.isArray(e)||e.length>0),"Input is required")}).catchall(i.z.unknown()),w=i.z.object({model:h,query:v,documents:i.z.array(i.z.unknown()).min(1,"documents must contain at least one item")}).catchall(i.z.unknown()),_=i.z.object({model:h,messages:i.z.array(f).min(1).optional(),input:i.z.union([v,i.z.array(i.z.unknown()).min(1)]).optional(),prompt:v.optional()}).catchall(i.z.unknown()).superRefine((e,o)=>{void 0===e.messages&&void 0===e.input&&void 0===e.prompt&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"messages, input or prompt is required",path:[]})}),C=i.z.object({messages:i.z.array(j).min(1,"messages must contain at least one item")}).catchall(i.z.unknown()),R=i.z.object({apiKeyId:i.z.string().trim().min(1,"apiKeyId is required"),dailyLimitUsd:i.z.coerce.number().positive("dailyLimitUsd must be greater than zero"),monthlyLimitUsd:i.z.coerce.number().positive("monthlyLimitUsd must be greater than zero").optional(),warningThreshold:i.z.coerce.number().min(0).max(1).optional()}),P=i.z.object({action:i.z.enum(["unlock"]),identifier:i.z.string().trim().min(1).optional()}).superRefine((e,o)=>{"unlock"!==e.action||e.identifier||o.addIssue({code:i.z.ZodIssueCode.custom,message:"identifier is required for unlock action",path:["identifier"]})}),M=i.z.object({provider:i.z.string().trim().min(1,"provider is required"),priority:i.z.number().int().min(1).max(100).optional(),enabled:i.z.boolean().optional()}).catchall(i.z.unknown()),A=i.z.object({model:h,chain:i.z.array(M).min(1,"chain must contain at least one provider")}),U=i.z.object({model:h}),Z=i.z.object({model:h,alias:i.z.string().trim().min(1,"Alias is required").max(200)}),L=i.z.object({provider:i.z.string().trim().min(1,"provider is required").max(120),model:h}),T=i.z.object({provider:i.z.string().trim().min(1,"provider is required").max(120),modelId:i.z.string().trim().min(1,"modelId is required").max(240),modelName:i.z.string().trim().max(240).optional(),source:i.z.string().trim().max(80).optional(),apiFormat:i.z.enum(["chat-completions","responses"]).default("chat-completions"),supportedEndpoints:i.z.array(i.z.enum(["chat","embeddings","images","audio"])).default(["chat"]),normalizeToolCallId:i.z.boolean().optional()}),N=i.z.object({input:i.z.number().min(0).optional(),output:i.z.number().min(0).optional(),cached:i.z.number().min(0).optional(),reasoning:i.z.number().min(0).optional(),cache_creation:i.z.number().min(0).optional()}).strict(),E=i.z.record(i.z.string().trim().min(1),i.z.record(i.z.string().trim().min(1),N)),B=i.z.object({connectionId:i.z.string().trim().min(1,"connectionId is required"),enabled:i.z.boolean()}),K=i.z.object({transientCooldown:i.z.number().min(0),rateLimitCooldown:i.z.number().min(0),maxBackoffLevel:i.z.number().int().min(0),circuitBreakerThreshold:i.z.number().int().min(0),circuitBreakerReset:i.z.number().min(0)}),D=i.z.object({requestsPerMinute:i.z.number().int().min(1).optional(),minTimeBetweenRequests:i.z.number().int().min(1).optional(),concurrentRequests:i.z.number().int().min(1).optional()}).strict(),O=i.z.object({profiles:i.z.object({oauth:K.optional(),apikey:K.optional()}).strict().optional(),defaults:D.optional()}).superRefine((e,o)=>{e.profiles||e.defaults||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Must provide profiles or defaults",path:[]})}),F=i.z.record(i.z.string(),i.z.unknown()),W=i.z.object({action:i.z.literal("reset-stats")}),H=i.z.enum(["litellm"]),$=i.z.object({sources:i.z.array(H).min(1).optional(),dryRun:i.z.boolean().optional()}).strict(),V=i.z.object({coding:i.z.string().max(200).optional(),creative:i.z.string().max(200).optional(),analysis:i.z.string().max(200).optional(),vision:i.z.string().max(200).optional(),summarization:i.z.string().max(200).optional(),background:i.z.string().max(200).optional(),chat:i.z.string().max(200).optional()}).strict(),G=i.z.object({enabled:i.z.boolean().optional(),taskModelMap:V.optional(),detectionEnabled:i.z.boolean().optional()}).strict().superRefine((e,o)=>{void 0===e.enabled&&void 0===e.taskModelMap&&void 0===e.detectionEnabled&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),Q=i.z.discriminatedUnion("action",[W,i.z.object({action:i.z.literal("detect"),body:F.optional()}).strict()]),J=i.z.object({comboDefaults:z.optional(),providerOverrides:i.z.record(i.z.string().trim().min(1),z).optional()}).superRefine((e,o)=>{e.comboDefaults||e.providerOverrides||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Nothing to update",path:[]})}),X=i.z.object({requireLogin:i.z.boolean().optional(),password:i.z.string().min(4,"Password must be at least 4 characters").optional()}).superRefine((e,o)=>{void 0!==e.requireLogin||e.password||o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),Y=i.z.object({prompt:i.z.string().max(5e4).optional(),enabled:i.z.boolean().optional()}).strict().superRefine((e,o)=>{void 0===e.prompt&&void 0===e.enabled&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),ee=i.z.object({mode:i.z.enum(["passthrough","auto","custom","adaptive"]).optional(),customBudget:i.z.coerce.number().int().min(0).max(131072).optional(),effortLevel:i.z.enum(["none","low","medium","high"]).optional(),baseBudget:i.z.coerce.number().int().min(0).max(131072).optional(),complexityMultiplier:i.z.coerce.number().min(0).optional()}).strict().superRefine((e,o)=>{void 0===e.mode&&void 0===e.customBudget&&void 0===e.effortLevel&&void 0===e.baseBudget&&void 0===e.complexityMultiplier&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eo=i.z.object({enabled:i.z.boolean()}).strict(),et=i.z.enum(["blacklist","whitelist"]),ei=i.z.object({ip:i.z.string().trim().min(1),durationMs:i.z.coerce.number().int().min(1).optional(),reason:i.z.string().max(200).optional()}),en=i.z.object({enabled:i.z.boolean().optional(),mode:et.optional(),blacklist:i.z.array(i.z.string()).optional(),whitelist:i.z.array(i.z.string()).optional(),addBlacklist:i.z.string().optional(),removeBlacklist:i.z.string().optional(),addWhitelist:i.z.string().optional(),removeWhitelist:i.z.string().optional(),tempBan:ei.optional(),removeBan:i.z.string().optional()}).strict().superRefine((e,o)=>{0===Object.keys(e).length&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),ea=i.z.object({aliases:i.z.record(i.z.string().trim().min(1),i.z.string().trim().min(1))}),er=i.z.object({from:i.z.string().trim().min(1),to:i.z.string().trim().min(1)}),es=i.z.object({from:i.z.string().trim().min(1)}),el=i.z.object({type:i.z.preprocess(e=>"string"==typeof e?e.trim().toLowerCase():e,i.z.enum(["http","https","socks5"])).optional(),host:i.z.string().trim().min(1).optional(),port:i.z.coerce.number().int().min(1).max(65535).optional(),username:i.z.string().optional(),password:i.z.string().optional()}).strict(),em=i.z.object({proxy:el.nullable().optional(),global:el.nullable().optional(),providers:i.z.record(i.z.string().trim().min(1),el.nullable()).optional(),combos:i.z.record(i.z.string().trim().min(1),el.nullable()).optional(),keys:i.z.record(i.z.string().trim().min(1),el.nullable()).optional(),level:i.z.enum(["global","provider","combo","key"]).optional(),id:i.z.string().optional()}).strict().superRefine((e,o)=>{void 0===e.proxy&&void 0===e.global&&void 0===e.providers&&void 0===e.combos&&void 0===e.keys&&void 0===e.level&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]}),void 0!==e.level&&void 0===e.proxy&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"proxy is required when level is provided",path:["proxy"]}),e.level&&"global"!==e.level&&!e.id?.trim()&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"id is required for provider/combo/key level updates",path:["id"]})}),ed=i.z.object({proxy:i.z.object({type:i.z.string().optional(),host:i.z.string().trim().min(1,"proxy.host is required"),port:i.z.union([i.z.string(),i.z.number()]),username:i.z.string().optional(),password:i.z.string().optional()})}),ec=i.z.object({name:i.z.string().trim().min(1,"name is required").max(120),type:i.z.preprocess(e=>"string"==typeof e?e.trim().toLowerCase():e,i.z.enum(["http","https","socks5"])).optional().default("http"),host:i.z.string().trim().min(1,"host is required").max(255),port:i.z.coerce.number().int().min(1).max(65535),username:i.z.string().optional(),password:i.z.string().optional(),region:i.z.string().trim().max(64).nullable().optional(),notes:i.z.string().trim().max(1e3).nullable().optional(),status:i.z.enum(["active","inactive"]).optional().default("active")}).strict(),ez=ec.partial().extend({id:i.z.string().trim().min(1,"id is required")}),ep=i.z.object({scope:i.z.enum(["global","provider","account","combo","key"]),scopeId:i.z.string().trim().nullable().optional(),proxyId:i.z.string().trim().nullable().optional()}).strict().superRefine((e,o)=>{"global"===e.scope||e.scopeId?.trim()||o.addIssue({code:i.z.ZodIssueCode.custom,message:"scopeId is required for provider/account/combo/key scope",path:["scopeId"]})}),eu=i.z.object({scope:i.z.enum(["global","provider","account","combo","key"]),scopeIds:i.z.array(i.z.string().trim().min(1)).optional().default([]),proxyId:i.z.string().trim().nullable().optional()}).strict().superRefine((e,o)=>{"global"===e.scope||Array.isArray(e.scopeIds)&&0!==e.scopeIds.length||o.addIssue({code:i.z.ZodIssueCode.custom,message:"scopeIds is required for provider/account/combo/key scope",path:["scopeIds"]})}),eg=i.z.record(i.z.string(),i.z.unknown()).refine(e=>Object.keys(e).length>0,"Body must be a non-empty object"),eb=i.z.enum(["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt"]),eh=i.z.object({body:eg}),ev=i.z.object({file:eb,content:i.z.string().min(1,"Content is required").max(1e6,"Content is too large")}),ey=i.z.object({provider:i.z.string().trim().min(1,"Provider is required"),body:eg}),ex=i.z.object({step:i.z.union([i.z.number().int().min(1).max(4),i.z.literal("direct")]),provider:i.z.string().trim().min(1).optional(),body:eg,sourceFormat:i.z.string().optional(),targetFormat:i.z.string().optional()}).superRefine((e,o)=>{"direct"===e.step||e.provider||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Step and provider are required",path:["provider"]})}),ef=i.z.object({code:i.z.string().trim().min(1),redirectUri:i.z.string().trim().min(1),codeVerifier:i.z.string().trim().min(1),state:i.z.string().optional()}),ej=i.z.object({deviceCode:i.z.string().trim().min(1),codeVerifier:i.z.string().optional(),extraData:i.z.unknown().optional()}),ek=i.z.object({accessToken:i.z.string().trim().min(1,"Access token is required"),machineId:i.z.string().trim().min(1,"Machine ID is required")}),eS=i.z.object({refreshToken:i.z.string().trim().min(1,"Refresh token is required")}),eI=i.z.object({code:i.z.string().trim().min(1,"Code is required"),codeVerifier:i.z.string().trim().min(1,"Code verifier is required"),provider:i.z.enum(["google","github"])}),eq=i.z.object({provider:i.z.string().trim().min(1,"Provider is required"),credentials:i.z.object({accessToken:i.z.string().optional(),refreshToken:i.z.string().optional(),expiresIn:i.z.coerce.number().positive().optional()}).strict().superRefine((e,o)=>{void 0===e.accessToken&&void 0===e.refreshToken&&void 0===e.expiresIn&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"At least one credential field must be provided",path:[]})})}),ew=i.z.object({alias:i.z.string().trim().min(1,"Missing alias")}),e_=i.z.object({model:i.z.string().trim().min(1,"Model and alias required"),alias:i.z.string().trim().min(1,"Model and alias required")}),eC=i.z.object({action:i.z.enum(["enable","sync","disable"])}),eR=i.z.object({name:i.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and .").optional(),models:i.z.array(m).optional(),strategy:c.optional(),config:z.optional(),isActive:i.z.boolean().optional(),allowedProviders:i.z.array(i.z.string().max(200)).optional(),system_message:i.z.string().max(5e4).optional(),tool_filter_regex:i.z.string().max(1e3).optional(),context_cache_protection:i.z.boolean().optional()}).superRefine((e,o)=>{void 0===e.name&&void 0===e.models&&void 0===e.strategy&&void 0===e.config&&void 0===e.isActive&&void 0===e.allowedProviders&&void 0===e.system_message&&void 0===e.tool_filter_regex&&void 0===e.context_cache_protection&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eP=i.z.object({comboName:i.z.string().trim().min(1,"comboName is required")}),eM=i.z.object({backupId:i.z.string().trim().min(1,"backupId is required")}),eA=i.z.object({suiteId:i.z.string().trim().min(1,"suiteId is required"),outputs:i.z.record(i.z.string(),i.z.string())}),eU=i.z.object({enabled:i.z.boolean(),from:i.z.string().regex(/^\d{2}:\d{2}$/,"Time must be in HH:MM format"),until:i.z.string().regex(/^\d{2}:\d{2}$/,"Time must be in HH:MM format"),days:i.z.array(i.z.number().int().min(0).max(6)).min(1,"At least one day is required").max(7),tz:i.z.string().min(1).max(100)}),eZ=i.z.object({name:i.z.string().trim().min(1).max(200).optional(),allowedModels:i.z.array(i.z.string().trim().min(1)).max(1e3).optional(),allowedConnections:i.z.array(i.z.string().uuid()).max(100).optional(),noLog:i.z.boolean().optional(),autoResolve:i.z.boolean().optional(),isActive:i.z.boolean().optional(),accessSchedule:i.z.union([eU,i.z.null()]).optional()}).superRefine((e,o)=>{void 0===e.name&&void 0===e.allowedModels&&void 0===e.allowedConnections&&void 0===e.noLog&&void 0===e.autoResolve&&void 0===e.isActive&&void 0===e.accessSchedule&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eL=i.z.object({name:i.z.string().trim().min(1,"Name is required"),prefix:i.z.string().trim().min(1,"Prefix is required"),apiType:i.z.enum(["chat","responses"]).optional(),baseUrl:i.z.string().trim().min(1).optional(),type:i.z.enum(["openai-compatible","anthropic-compatible"]).optional(),chatPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal("")),modelsPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal(""))}).superRefine((e,o)=>{let t=e.type||"openai-compatible";"openai-compatible"!==t||e.apiType||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Invalid OpenAI compatible API type",path:["apiType"]})}),eT=i.z.object({name:i.z.string().trim().min(1,"Name is required"),prefix:i.z.string().trim().min(1,"Prefix is required"),apiType:i.z.enum(["chat","responses"]).optional(),baseUrl:i.z.string().trim().min(1,"Base URL is required"),chatPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal("")),modelsPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal(""))}),eN=i.z.object({baseUrl:i.z.string().trim().min(1,"Base URL and API key required"),apiKey:i.z.string().trim().min(1,"Base URL and API key required"),type:i.z.enum(["openai-compatible","anthropic-compatible"]).optional(),modelsPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal(""))}),eE=i.z.object({name:i.z.string().max(200).optional(),priority:i.z.coerce.number().int().min(1).max(100).optional(),globalPriority:i.z.union([i.z.coerce.number().int().min(1).max(100),i.z.null()]).optional(),defaultModel:i.z.union([i.z.string().max(200),i.z.null()]).optional(),isActive:i.z.boolean().optional(),apiKey:i.z.string().max(1e4).optional(),testStatus:i.z.string().max(50).optional(),lastError:i.z.union([i.z.string(),i.z.null()]).optional(),lastErrorAt:i.z.union([i.z.string(),i.z.null()]).optional(),lastErrorType:i.z.union([i.z.string(),i.z.null()]).optional(),lastErrorSource:i.z.union([i.z.string(),i.z.null()]).optional(),errorCode:i.z.union([i.z.string(),i.z.null()]).optional(),rateLimitedUntil:i.z.union([i.z.string(),i.z.null()]).optional(),lastTested:i.z.union([i.z.string(),i.z.null()]).optional(),healthCheckInterval:i.z.coerce.number().int().min(0).optional(),group:i.z.union([i.z.string().max(100),i.z.null()]).optional(),providerSpecificData:i.z.record(i.z.string(),i.z.unknown()).optional().superRefine((e,o)=>{if(!e)return;let t=e.baseUrl;void 0!==t&&("string"==typeof t&&r(t)||o.addIssue({code:i.z.ZodIssueCode.custom,message:"providerSpecificData.baseUrl must be a valid http(s) URL",path:["baseUrl"]}))})}).superRefine((e,o)=>{0===Object.keys(e).length&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eB=i.z.object({mode:i.z.enum(["provider","oauth","free","apikey","compatible","all"]),providerId:i.z.string().trim().min(1).nullable().optional()}).superRefine((e,o)=>{let t=e.providerId??null;"provider"!==e.mode||t||o.addIssue({code:i.z.ZodIssueCode.custom,message:"providerId is required when mode=provider",path:["providerId"]})}),eK=i.z.object({provider:i.z.string().trim().min(1,"Provider and API key required"),apiKey:i.z.string().trim().min(1,"Provider and API key required")}),eD=i.z.object({text:i.z.string().optional()}).catchall(i.z.unknown()),eO=i.z.object({role:i.z.string().optional(),parts:i.z.array(eD).optional()}).catchall(i.z.unknown()),eF=i.z.object({contents:i.z.array(eO).optional(),systemInstruction:i.z.object({parts:i.z.array(eD).optional()}).catchall(i.z.unknown()).optional(),generationConfig:i.z.object({stream:i.z.boolean().optional(),maxOutputTokens:i.z.coerce.number().int().min(1).optional(),temperature:i.z.coerce.number().optional(),topP:i.z.coerce.number().optional()}).catchall(i.z.unknown()).optional()}).catchall(i.z.unknown()).superRefine((e,o)=>{e.contents||e.systemInstruction||o.addIssue({code:i.z.ZodIssueCode.custom,message:"contents or systemInstruction is required",path:[]})}),eW=i.z.object({apiKey:i.z.string().trim().min(1,"Missing apiKey"),sudoPassword:i.z.string().optional()}),eH=i.z.object({sudoPassword:i.z.string().optional()}),e$=i.z.object({tool:i.z.string().trim().min(1,"tool and mappings required"),mappings:i.z.record(i.z.string(),i.z.string().optional())}),eV=i.z.object({tool:i.z.string().trim().min(1).optional(),toolId:i.z.string().trim().min(1).optional(),backupId:i.z.string().trim().min(1,"tool and backupId are required")}).superRefine((e,o)=>{e.tool||e.toolId||o.addIssue({code:i.z.ZodIssueCode.custom,message:"tool and backupId are required",path:["tool"]})}),eG=i.z.string().trim().min(1,"Environment key is required").max(120).regex(/^[A-Z_][A-Z0-9_]*$/,"Invalid environment key format"),eQ=i.z.union([i.z.string(),i.z.number(),i.z.boolean()]).transform(e=>String(e)).refine(e=>e.length>0,"Environment value is required").refine(e=>e.length<=1e4,"Environment value is too long"),eJ=i.z.object({env:i.z.record(eG,eQ).refine(e=>Object.keys(e).length>0,"env must contain at least one key")}),eX=i.z.object({baseUrl:i.z.string().trim().min(1,"baseUrl and model are required"),apiKey:i.z.string().optional(),model:i.z.string().trim().min(1,"baseUrl and model are required")}),eY=i.z.object({name:i.z.string().trim().min(1,"Profile name is required")}),e0=i.z.object({profileId:i.z.string().trim().min(1,"profileId is required")}),e1=i.z.object({baseUrl:i.z.string().trim().min(1).optional(),apiKey:i.z.string().optional(),model:i.z.string().trim().min(1,"Model is required")}),e2=i.z.object({query:i.z.string().trim().min(1,"Query is required").max(500,"Query must be 500 characters or fewer"),provider:i.z.enum(["serper-search","brave-search","perplexity-search","exa-search","tavily-search"]).optional(),max_results:i.z.coerce.number().int().min(1).max(100).default(5),search_type:i.z.enum(["web","news"]).default("web"),offset:i.z.coerce.number().int().min(0).default(0),country:i.z.string().max(2).toUpperCase().optional(),language:i.z.string().min(2).max(5).optional(),time_range:i.z.enum(["any","day","week","month","year"]).optional(),content:i.z.object({snippet:i.z.boolean().default(!0),full_page:i.z.boolean().default(!1),format:i.z.enum(["text","markdown"]).default("text"),max_characters:i.z.coerce.number().int().min(100).max(1e5).optional()}).optional(),filters:i.z.object({include_domains:i.z.array(i.z.string().max(253)).max(20).optional(),exclude_domains:i.z.array(i.z.string().max(253)).max(20).optional(),safe_search:i.z.enum(["off","moderate","strict"]).optional()}).optional(),synthesis:i.z.object({strategy:i.z.enum(["none","auto","provider","internal"]).default("none"),model:i.z.string().optional(),max_tokens:i.z.coerce.number().int().min(1).max(4e3).optional()}).optional(),provider_options:i.z.record(i.z.string(),i.z.unknown()).optional(),strict_filters:i.z.boolean().default(!1)}).catchall(i.z.unknown()),e5=i.z.object({title:i.z.string(),url:i.z.string(),display_url:i.z.string().optional(),snippet:i.z.string(),position:i.z.number().int().positive(),score:i.z.number().min(0).max(1).nullable().optional(),published_at:i.z.string().nullable().optional(),favicon_url:i.z.string().nullable().optional(),content:i.z.object({format:i.z.enum(["text","markdown"]).optional(),text:i.z.string().optional(),length:i.z.number().int().optional()}).nullable().optional(),metadata:i.z.object({author:i.z.string().nullable().optional(),language:i.z.string().nullable().optional(),source_type:i.z.enum(["article","blog","forum","video","academic","news","other"]).nullable().optional(),image_url:i.z.string().nullable().optional()}).nullable().optional(),citation:i.z.object({provider:i.z.string(),retrieved_at:i.z.string(),rank:i.z.number().int().positive()}),provider_raw:i.z.record(i.z.string(),i.z.unknown()).nullable().optional()});i.z.object({id:i.z.string(),provider:i.z.string(),query:i.z.string(),results:i.z.array(e5),cached:i.z.boolean(),answer:i.z.object({source:i.z.enum(["none","provider","internal"]).optional(),text:i.z.string().nullable().optional(),model:i.z.string().nullable().optional()}).nullable().optional(),usage:i.z.object({queries_used:i.z.number().int().min(0),search_cost_usd:i.z.number().min(0),llm_tokens:i.z.number().int().min(0).optional()}),metrics:i.z.object({response_time_ms:i.z.number().int().min(0),upstream_latency_ms:i.z.number().int().min(0).optional(),gateway_latency_ms:i.z.number().int().min(0).optional(),total_results_available:i.z.number().int().nullable()}),errors:i.z.array(i.z.object({provider:i.z.string(),code:i.z.string(),message:i.z.string()})).optional()}),e.s(["addModelAliasSchema",0,er,"bulkProxyAssignmentSchema",0,eu,"clearModelAvailabilitySchema",0,L,"cliBackupMutationSchema",0,eV,"cliMitmAliasUpdateSchema",0,e$,"cliMitmStartSchema",0,eW,"cliMitmStopSchema",0,eH,"cliModelConfigSchema",0,eX,"cliSettingsEnvSchema",0,eJ,"cloudCredentialUpdateSchema",0,eq,"cloudModelAliasUpdateSchema",0,e_,"cloudResolveAliasSchema",0,ew,"cloudSyncActionSchema",0,eC,"codexProfileIdSchema",0,e0,"codexProfileNameSchema",0,eY,"createAutoComboSchema",0,g,"createComboSchema",0,p,"createKeySchema",0,l,"createProviderNodeSchema",0,eL,"createProviderSchema",0,s,"createProxyRegistrySchema",0,ec,"cursorImportSchema",0,ek,"dbBackupRestoreSchema",0,eM,"evalRunSuiteSchema",0,eA,"guideSettingsSaveSchema",0,e1,"jsonObjectSchema",0,F,"kiroImportSchema",0,eS,"kiroSocialExchangeSchema",0,eI,"loginSchema",0,b,"oauthExchangeSchema",0,ef,"oauthPollSchema",0,ej,"policyActionSchema",0,P,"pricingSyncRequestSchema",0,$,"providerChatCompletionSchema",0,_,"providerModelMutationSchema",0,T,"providerNodeValidateSchema",0,eN,"providersBatchTestSchema",0,eB,"proxyAssignmentSchema",0,ep,"registerFallbackSchema",0,A,"removeFallbackSchema",0,U,"removeModelAliasSchema",0,es,"resetStatsActionSchema",0,W,"setBudgetSchema",0,R,"taskRoutingActionSchema",0,Q,"testComboSchema",0,eP,"testProxySchema",0,ed,"toggleRateLimitSchema",0,B,"translatorDetectSchema",0,eh,"translatorSaveSchema",0,ev,"translatorSendSchema",0,ey,"translatorTranslateSchema",0,ex,"updateCodexServiceTierSchema",0,eo,"updateComboDefaultsSchema",0,J,"updateComboSchema",0,eR,"updateIpFilterSchema",0,en,"updateKeyPermissionsSchema",0,eZ,"updateModelAliasSchema",0,Z,"updateModelAliasesSchema",0,ea,"updatePricingSchema",0,E,"updateProviderConnectionSchema",0,eE,"updateProviderNodeSchema",0,eT,"updateProxyConfigSchema",0,em,"updateProxyRegistrySchema",0,ez,"updateRequireLoginSchema",0,X,"updateResilienceSchema",0,O,"updateSystemPromptSchema",0,Y,"updateTaskRoutingSchema",0,G,"updateThinkingBudgetSchema",0,ee,"v1AudioSpeechSchema",0,I,"v1CountTokensSchema",0,C,"v1EmbeddingsSchema",0,k,"v1ImageGenerationSchema",0,S,"v1ModerationSchema",0,q,"v1RerankSchema",0,w,"v1SearchSchema",0,e2,"v1betaGeminiGenerateSchema",0,eF,"validateProviderApiKeySchema",0,eK]),t()}catch(e){t(e)}},!1)];
1
+ module.exports=[676088,e=>e.a(async(o,t)=>{try{var i=e.i(677850),n=e.i(200392),a=o([i,n]);function r(e){try{let o=new URL(e);return"http:"===o.protocol||"https:"===o.protocol}catch{return!1}}[i,n]=a.then?(await a)():a;let s=i.z.object({provider:i.z.string().min(1).max(100),apiKey:i.z.string().min(1).max(1e4),name:i.z.string().min(1).max(200),priority:i.z.number().int().min(1).max(100).optional(),globalPriority:i.z.number().int().min(1).max(100).nullable().optional(),defaultModel:i.z.string().max(200).nullable().optional(),testStatus:i.z.string().max(50).optional(),providerSpecificData:i.z.record(i.z.string(),i.z.unknown()).optional().superRefine((e,o)=>{if(!e)return;let t=e.baseUrl;void 0!==t&&("string"==typeof t&&r(t)||o.addIssue({code:i.z.ZodIssueCode.custom,message:"providerSpecificData.baseUrl must be a valid http(s) URL",path:["baseUrl"]}))})}),l=i.z.object({name:i.z.string().min(1,"Name is required").max(200)}),m=i.z.union([i.z.string(),i.z.object({model:i.z.string().min(1),weight:i.z.number().min(0).max(100).default(0)})]),d=i.z.object({maxRetries:i.z.number().int().min(0).max(10).optional(),retryDelayMs:i.z.number().int().min(0).max(6e4).optional(),timeoutMs:i.z.number().int().min(1e3).max(6e5).optional(),healthCheckEnabled:i.z.boolean().optional()}).optional(),c=i.z.enum(["priority","weighted","round-robin","random","least-used","cost-optimized","strict-random","auto"]),p=i.z.object({strategy:c.optional(),maxRetries:i.z.coerce.number().int().min(0).max(10).optional(),retryDelayMs:i.z.coerce.number().int().min(0).max(6e4).optional(),timeoutMs:i.z.coerce.number().int().min(1e3).max(6e5).optional(),concurrencyPerModel:i.z.coerce.number().int().min(1).max(20).optional(),queueTimeoutMs:i.z.coerce.number().int().min(1e3).max(12e4).optional(),healthCheckEnabled:i.z.boolean().optional(),healthCheckTimeoutMs:i.z.coerce.number().int().min(100).max(3e4).optional(),maxComboDepth:i.z.coerce.number().int().min(1).max(10).optional(),trackMetrics:i.z.boolean().optional()}).strict(),z=i.z.object({name:i.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and ."),models:i.z.array(m).optional().default([]),strategy:c.optional().default("priority"),config:d,allowedProviders:i.z.array(i.z.string().max(200)).optional(),system_message:i.z.string().max(5e4).optional(),tool_filter_regex:i.z.string().max(1e3).optional(),context_cache_protection:i.z.boolean().optional()}),u=i.z.object({quota:i.z.number().min(0).max(1),health:i.z.number().min(0).max(1),costInv:i.z.number().min(0).max(1),latencyInv:i.z.number().min(0).max(1),taskFit:i.z.number().min(0).max(1),stability:i.z.number().min(0).max(1),tierPriority:i.z.number().min(0).max(1).optional().default(.05)}).optional(),b=i.z.object({id:i.z.string().trim().min(1,"id is required").max(100),name:i.z.string().trim().min(1,"name is required").max(200),candidatePool:i.z.array(i.z.string().min(1)).optional().default([]),weights:u,modePack:i.z.string().max(100).optional(),budgetCap:i.z.number().positive().optional(),explorationRate:i.z.number().min(0).max(1).optional().default(.05)});i.z.object({newPassword:i.z.string().min(1).max(200).optional(),currentPassword:i.z.string().max(200).optional(),theme:i.z.string().max(50).optional(),language:i.z.string().max(10).optional(),requireLogin:i.z.boolean().optional(),enableRequestLogs:i.z.boolean().optional(),enableSocks5Proxy:i.z.boolean().optional(),instanceName:i.z.string().max(100).optional(),corsOrigins:i.z.string().max(500).optional(),logRetentionDays:i.z.number().int().min(1).max(365).optional(),cloudUrl:i.z.string().max(500).optional(),baseUrl:i.z.string().max(500).optional(),setupComplete:i.z.boolean().optional(),requireAuthForModels:i.z.boolean().optional(),blockedProviders:i.z.array(i.z.string().max(100)).optional(),hideHealthCheckLogs:i.z.boolean().optional(),fallbackStrategy:i.z.enum(["fill-first","round-robin","p2c","random","least-used","cost-optimized","strict-random"]).optional(),wildcardAliases:i.z.array(i.z.object({pattern:i.z.string(),target:i.z.string()})).optional(),stickyRoundRobinLimit:i.z.number().int().min(0).max(1e3).optional(),intentDetectionEnabled:i.z.boolean().optional(),intentSimpleMaxWords:i.z.number().int().min(1).max(500).optional(),intentExtraCodeKeywords:i.z.array(i.z.string().max(100)).optional(),intentExtraReasoningKeywords:i.z.array(i.z.string().max(100)).optional(),intentExtraSimpleKeywords:i.z.array(i.z.string().max(100)).optional(),mcpEnabled:i.z.boolean().optional(),a2aEnabled:i.z.boolean().optional()});let g=i.z.object({password:i.z.string().min(1,"Password is required").max(200)}),h=i.z.string().trim().min(1,"Model is required").max(200),v=i.z.string().trim().min(1,"Field is required"),y=i.z.array(i.z.number().int().min(0)).min(1,"input token array must contain at least one item"),x=i.z.union([v,i.z.array(v).min(1,"input must contain at least one item"),y,i.z.array(y).min(1,"input must contain at least one item")]),f=i.z.object({role:i.z.string().trim().min(1,"messages[].role is required"),content:i.z.union([v,i.z.array(i.z.unknown()).min(1),i.z.null()]).optional()}).catchall(i.z.unknown()),j=i.z.object({content:i.z.union([v,i.z.array(i.z.object({type:i.z.string().optional(),text:i.z.string().optional()}).catchall(i.z.unknown())).min(1,"messages[].content must contain at least one item")])}).catchall(i.z.unknown()),k=i.z.object({model:h,input:x,dimensions:i.z.coerce.number().int().positive().optional(),encoding_format:i.z.enum(["float","base64"]).optional()}).catchall(i.z.unknown()),I=i.z.object({model:h,prompt:v}).catchall(i.z.unknown()),S=i.z.object({model:h,input:v}).catchall(i.z.unknown()),q=i.z.object({model:h.optional(),input:i.z.unknown().refine(e=>null!=e&&("string"==typeof e?e.trim().length>0:!Array.isArray(e)||e.length>0),"Input is required")}).catchall(i.z.unknown()),w=i.z.object({model:h,query:v,documents:i.z.array(i.z.unknown()).min(1,"documents must contain at least one item")}).catchall(i.z.unknown()),_=i.z.object({model:h,messages:i.z.array(f).min(1).optional(),input:i.z.union([v,i.z.array(i.z.unknown()).min(1)]).optional(),prompt:v.optional()}).catchall(i.z.unknown()).superRefine((e,o)=>{void 0===e.messages&&void 0===e.input&&void 0===e.prompt&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"messages, input or prompt is required",path:[]})}),C=i.z.object({messages:i.z.array(j).min(1,"messages must contain at least one item")}).catchall(i.z.unknown()),R=i.z.object({apiKeyId:i.z.string().trim().min(1,"apiKeyId is required"),dailyLimitUsd:i.z.coerce.number().positive("dailyLimitUsd must be greater than zero"),monthlyLimitUsd:i.z.coerce.number().positive("monthlyLimitUsd must be greater than zero").optional(),warningThreshold:i.z.coerce.number().min(0).max(1).optional()}),P=i.z.object({action:i.z.enum(["unlock"]),identifier:i.z.string().trim().min(1).optional()}).superRefine((e,o)=>{"unlock"!==e.action||e.identifier||o.addIssue({code:i.z.ZodIssueCode.custom,message:"identifier is required for unlock action",path:["identifier"]})}),M=i.z.object({provider:i.z.string().trim().min(1,"provider is required"),priority:i.z.number().int().min(1).max(100).optional(),enabled:i.z.boolean().optional()}).catchall(i.z.unknown()),A=i.z.object({model:h,chain:i.z.array(M).min(1,"chain must contain at least one provider")}),U=i.z.object({model:h}),Z=i.z.object({model:h,alias:i.z.string().trim().min(1,"Alias is required").max(200)}),L=i.z.object({provider:i.z.string().trim().min(1,"provider is required").max(120),model:h}),T=i.z.object({provider:i.z.string().trim().min(1,"provider is required").max(120),modelId:i.z.string().trim().min(1,"modelId is required").max(240),modelName:i.z.string().trim().max(240).optional(),source:i.z.string().trim().max(80).optional(),apiFormat:i.z.enum(["chat-completions","responses"]).default("chat-completions"),supportedEndpoints:i.z.array(i.z.enum(["chat","embeddings","images","audio"])).default(["chat"]),normalizeToolCallId:i.z.boolean().optional(),preserveOpenAIDeveloperRole:i.z.boolean().optional()}),N=i.z.object({input:i.z.number().min(0).optional(),output:i.z.number().min(0).optional(),cached:i.z.number().min(0).optional(),reasoning:i.z.number().min(0).optional(),cache_creation:i.z.number().min(0).optional()}).strict(),E=i.z.record(i.z.string().trim().min(1),i.z.record(i.z.string().trim().min(1),N)),B=i.z.object({connectionId:i.z.string().trim().min(1,"connectionId is required"),enabled:i.z.boolean()}),D=i.z.object({transientCooldown:i.z.number().min(0),rateLimitCooldown:i.z.number().min(0),maxBackoffLevel:i.z.number().int().min(0),circuitBreakerThreshold:i.z.number().int().min(0),circuitBreakerReset:i.z.number().min(0)}),K=i.z.object({requestsPerMinute:i.z.number().int().min(1).optional(),minTimeBetweenRequests:i.z.number().int().min(1).optional(),concurrentRequests:i.z.number().int().min(1).optional()}).strict(),O=i.z.object({profiles:i.z.object({oauth:D.optional(),apikey:D.optional()}).strict().optional(),defaults:K.optional()}).superRefine((e,o)=>{e.profiles||e.defaults||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Must provide profiles or defaults",path:[]})}),F=i.z.record(i.z.string(),i.z.unknown()),W=i.z.object({action:i.z.literal("reset-stats")}),H=i.z.enum(["litellm"]),$=i.z.object({sources:i.z.array(H).min(1).optional(),dryRun:i.z.boolean().optional()}).strict(),V=i.z.object({coding:i.z.string().max(200).optional(),creative:i.z.string().max(200).optional(),analysis:i.z.string().max(200).optional(),vision:i.z.string().max(200).optional(),summarization:i.z.string().max(200).optional(),background:i.z.string().max(200).optional(),chat:i.z.string().max(200).optional()}).strict(),G=i.z.object({enabled:i.z.boolean().optional(),taskModelMap:V.optional(),detectionEnabled:i.z.boolean().optional()}).strict().superRefine((e,o)=>{void 0===e.enabled&&void 0===e.taskModelMap&&void 0===e.detectionEnabled&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),Q=i.z.discriminatedUnion("action",[W,i.z.object({action:i.z.literal("detect"),body:F.optional()}).strict()]),J=i.z.object({comboDefaults:p.optional(),providerOverrides:i.z.record(i.z.string().trim().min(1),p).optional()}).superRefine((e,o)=>{e.comboDefaults||e.providerOverrides||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Nothing to update",path:[]})}),X=i.z.object({requireLogin:i.z.boolean().optional(),password:i.z.string().min(4,"Password must be at least 4 characters").optional()}).superRefine((e,o)=>{void 0!==e.requireLogin||e.password||o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),Y=i.z.object({prompt:i.z.string().max(5e4).optional(),enabled:i.z.boolean().optional()}).strict().superRefine((e,o)=>{void 0===e.prompt&&void 0===e.enabled&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),ee=i.z.object({mode:i.z.enum(["passthrough","auto","custom","adaptive"]).optional(),customBudget:i.z.coerce.number().int().min(0).max(131072).optional(),effortLevel:i.z.enum(["none","low","medium","high"]).optional(),baseBudget:i.z.coerce.number().int().min(0).max(131072).optional(),complexityMultiplier:i.z.coerce.number().min(0).optional()}).strict().superRefine((e,o)=>{void 0===e.mode&&void 0===e.customBudget&&void 0===e.effortLevel&&void 0===e.baseBudget&&void 0===e.complexityMultiplier&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eo=i.z.object({enabled:i.z.boolean()}).strict(),et=i.z.enum(["blacklist","whitelist"]),ei=i.z.object({ip:i.z.string().trim().min(1),durationMs:i.z.coerce.number().int().min(1).optional(),reason:i.z.string().max(200).optional()}),en=i.z.object({enabled:i.z.boolean().optional(),mode:et.optional(),blacklist:i.z.array(i.z.string()).optional(),whitelist:i.z.array(i.z.string()).optional(),addBlacklist:i.z.string().optional(),removeBlacklist:i.z.string().optional(),addWhitelist:i.z.string().optional(),removeWhitelist:i.z.string().optional(),tempBan:ei.optional(),removeBan:i.z.string().optional()}).strict().superRefine((e,o)=>{0===Object.keys(e).length&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),ea=i.z.object({aliases:i.z.record(i.z.string().trim().min(1),i.z.string().trim().min(1))}),er=i.z.object({from:i.z.string().trim().min(1),to:i.z.string().trim().min(1)}),es=i.z.object({from:i.z.string().trim().min(1)}),el=i.z.object({type:i.z.preprocess(e=>"string"==typeof e?e.trim().toLowerCase():e,i.z.enum(["http","https","socks5"])).optional(),host:i.z.string().trim().min(1).optional(),port:i.z.coerce.number().int().min(1).max(65535).optional(),username:i.z.string().optional(),password:i.z.string().optional()}).strict(),em=i.z.object({proxy:el.nullable().optional(),global:el.nullable().optional(),providers:i.z.record(i.z.string().trim().min(1),el.nullable()).optional(),combos:i.z.record(i.z.string().trim().min(1),el.nullable()).optional(),keys:i.z.record(i.z.string().trim().min(1),el.nullable()).optional(),level:i.z.enum(["global","provider","combo","key"]).optional(),id:i.z.string().optional()}).strict().superRefine((e,o)=>{void 0===e.proxy&&void 0===e.global&&void 0===e.providers&&void 0===e.combos&&void 0===e.keys&&void 0===e.level&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]}),void 0!==e.level&&void 0===e.proxy&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"proxy is required when level is provided",path:["proxy"]}),e.level&&"global"!==e.level&&!e.id?.trim()&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"id is required for provider/combo/key level updates",path:["id"]})}),ed=i.z.object({proxy:i.z.object({type:i.z.string().optional(),host:i.z.string().trim().min(1,"proxy.host is required"),port:i.z.union([i.z.string(),i.z.number()]),username:i.z.string().optional(),password:i.z.string().optional()})}),ec=i.z.object({name:i.z.string().trim().min(1,"name is required").max(120),type:i.z.preprocess(e=>"string"==typeof e?e.trim().toLowerCase():e,i.z.enum(["http","https","socks5"])).optional().default("http"),host:i.z.string().trim().min(1,"host is required").max(255),port:i.z.coerce.number().int().min(1).max(65535),username:i.z.string().optional(),password:i.z.string().optional(),region:i.z.string().trim().max(64).nullable().optional(),notes:i.z.string().trim().max(1e3).nullable().optional(),status:i.z.enum(["active","inactive"]).optional().default("active")}).strict(),ep=ec.partial().extend({id:i.z.string().trim().min(1,"id is required")}),ez=i.z.object({scope:i.z.enum(["global","provider","account","combo","key"]),scopeId:i.z.string().trim().nullable().optional(),proxyId:i.z.string().trim().nullable().optional()}).strict().superRefine((e,o)=>{"global"===e.scope||e.scopeId?.trim()||o.addIssue({code:i.z.ZodIssueCode.custom,message:"scopeId is required for provider/account/combo/key scope",path:["scopeId"]})}),eu=i.z.object({scope:i.z.enum(["global","provider","account","combo","key"]),scopeIds:i.z.array(i.z.string().trim().min(1)).optional().default([]),proxyId:i.z.string().trim().nullable().optional()}).strict().superRefine((e,o)=>{"global"===e.scope||Array.isArray(e.scopeIds)&&0!==e.scopeIds.length||o.addIssue({code:i.z.ZodIssueCode.custom,message:"scopeIds is required for provider/account/combo/key scope",path:["scopeIds"]})}),eb=i.z.record(i.z.string(),i.z.unknown()).refine(e=>Object.keys(e).length>0,"Body must be a non-empty object"),eg=i.z.enum(["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt"]),eh=i.z.object({body:eb}),ev=i.z.object({file:eg,content:i.z.string().min(1,"Content is required").max(1e6,"Content is too large")}),ey=i.z.object({provider:i.z.string().trim().min(1,"Provider is required"),body:eb}),ex=i.z.object({step:i.z.union([i.z.number().int().min(1).max(4),i.z.literal("direct")]),provider:i.z.string().trim().min(1).optional(),body:eb,sourceFormat:i.z.string().optional(),targetFormat:i.z.string().optional()}).superRefine((e,o)=>{"direct"===e.step||e.provider||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Step and provider are required",path:["provider"]})}),ef=i.z.object({code:i.z.string().trim().min(1),redirectUri:i.z.string().trim().min(1),codeVerifier:i.z.string().trim().min(1),state:i.z.string().optional()}),ej=i.z.object({deviceCode:i.z.string().trim().min(1),codeVerifier:i.z.string().optional(),extraData:i.z.unknown().optional()}),ek=i.z.object({accessToken:i.z.string().trim().min(1,"Access token is required"),machineId:i.z.string().trim().min(1,"Machine ID is required")}),eI=i.z.object({refreshToken:i.z.string().trim().min(1,"Refresh token is required")}),eS=i.z.object({code:i.z.string().trim().min(1,"Code is required"),codeVerifier:i.z.string().trim().min(1,"Code verifier is required"),provider:i.z.enum(["google","github"])}),eq=i.z.object({provider:i.z.string().trim().min(1,"Provider is required"),credentials:i.z.object({accessToken:i.z.string().optional(),refreshToken:i.z.string().optional(),expiresIn:i.z.coerce.number().positive().optional()}).strict().superRefine((e,o)=>{void 0===e.accessToken&&void 0===e.refreshToken&&void 0===e.expiresIn&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"At least one credential field must be provided",path:[]})})}),ew=i.z.object({alias:i.z.string().trim().min(1,"Missing alias")}),e_=i.z.object({model:i.z.string().trim().min(1,"Model and alias required"),alias:i.z.string().trim().min(1,"Model and alias required")}),eC=i.z.object({action:i.z.enum(["enable","sync","disable"])}),eR=i.z.object({name:i.z.string().min(1,"Name is required").max(100).regex(/^[a-zA-Z0-9_/.-]+$/,"Name can only contain letters, numbers, -, _, / and .").optional(),models:i.z.array(m).optional(),strategy:c.optional(),config:p.optional(),isActive:i.z.boolean().optional(),allowedProviders:i.z.array(i.z.string().max(200)).optional(),system_message:i.z.string().max(5e4).optional(),tool_filter_regex:i.z.string().max(1e3).optional(),context_cache_protection:i.z.boolean().optional()}).superRefine((e,o)=>{void 0===e.name&&void 0===e.models&&void 0===e.strategy&&void 0===e.config&&void 0===e.isActive&&void 0===e.allowedProviders&&void 0===e.system_message&&void 0===e.tool_filter_regex&&void 0===e.context_cache_protection&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eP=i.z.object({comboName:i.z.string().trim().min(1,"comboName is required")}),eM=i.z.object({backupId:i.z.string().trim().min(1,"backupId is required")}),eA=i.z.object({suiteId:i.z.string().trim().min(1,"suiteId is required"),outputs:i.z.record(i.z.string(),i.z.string())}),eU=i.z.object({enabled:i.z.boolean(),from:i.z.string().regex(/^\d{2}:\d{2}$/,"Time must be in HH:MM format"),until:i.z.string().regex(/^\d{2}:\d{2}$/,"Time must be in HH:MM format"),days:i.z.array(i.z.number().int().min(0).max(6)).min(1,"At least one day is required").max(7),tz:i.z.string().min(1).max(100)}),eZ=i.z.object({name:i.z.string().trim().min(1).max(200).optional(),allowedModels:i.z.array(i.z.string().trim().min(1)).max(1e3).optional(),allowedConnections:i.z.array(i.z.string().uuid()).max(100).optional(),noLog:i.z.boolean().optional(),autoResolve:i.z.boolean().optional(),isActive:i.z.boolean().optional(),accessSchedule:i.z.union([eU,i.z.null()]).optional()}).superRefine((e,o)=>{void 0===e.name&&void 0===e.allowedModels&&void 0===e.allowedConnections&&void 0===e.noLog&&void 0===e.autoResolve&&void 0===e.isActive&&void 0===e.accessSchedule&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eL=i.z.object({name:i.z.string().trim().min(1,"Name is required"),prefix:i.z.string().trim().min(1,"Prefix is required"),apiType:i.z.enum(["chat","responses"]).optional(),baseUrl:i.z.string().trim().min(1).optional(),type:i.z.enum(["openai-compatible","anthropic-compatible"]).optional(),chatPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal("")),modelsPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal(""))}).superRefine((e,o)=>{let t=e.type||"openai-compatible";"openai-compatible"!==t||e.apiType||o.addIssue({code:i.z.ZodIssueCode.custom,message:"Invalid OpenAI compatible API type",path:["apiType"]})}),eT=i.z.object({name:i.z.string().trim().min(1,"Name is required"),prefix:i.z.string().trim().min(1,"Prefix is required"),apiType:i.z.enum(["chat","responses"]).optional(),baseUrl:i.z.string().trim().min(1,"Base URL is required"),chatPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal("")),modelsPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal(""))}),eN=i.z.object({baseUrl:i.z.string().trim().min(1,"Base URL and API key required"),apiKey:i.z.string().trim().min(1,"Base URL and API key required"),type:i.z.enum(["openai-compatible","anthropic-compatible"]).optional(),modelsPath:i.z.string().trim().startsWith("/").max(500).optional().or(i.z.literal(""))}),eE=i.z.object({name:i.z.string().max(200).optional(),priority:i.z.coerce.number().int().min(1).max(100).optional(),globalPriority:i.z.union([i.z.coerce.number().int().min(1).max(100),i.z.null()]).optional(),defaultModel:i.z.union([i.z.string().max(200),i.z.null()]).optional(),isActive:i.z.boolean().optional(),apiKey:i.z.string().max(1e4).optional(),testStatus:i.z.string().max(50).optional(),lastError:i.z.union([i.z.string(),i.z.null()]).optional(),lastErrorAt:i.z.union([i.z.string(),i.z.null()]).optional(),lastErrorType:i.z.union([i.z.string(),i.z.null()]).optional(),lastErrorSource:i.z.union([i.z.string(),i.z.null()]).optional(),errorCode:i.z.union([i.z.string(),i.z.null()]).optional(),rateLimitedUntil:i.z.union([i.z.string(),i.z.null()]).optional(),lastTested:i.z.union([i.z.string(),i.z.null()]).optional(),healthCheckInterval:i.z.coerce.number().int().min(0).optional(),group:i.z.union([i.z.string().max(100),i.z.null()]).optional(),providerSpecificData:i.z.record(i.z.string(),i.z.unknown()).optional().superRefine((e,o)=>{if(!e)return;let t=e.baseUrl;void 0!==t&&("string"==typeof t&&r(t)||o.addIssue({code:i.z.ZodIssueCode.custom,message:"providerSpecificData.baseUrl must be a valid http(s) URL",path:["baseUrl"]}))})}).superRefine((e,o)=>{0===Object.keys(e).length&&o.addIssue({code:i.z.ZodIssueCode.custom,message:"No valid fields to update",path:[]})}),eB=i.z.object({mode:i.z.enum(["provider","oauth","free","apikey","compatible","all"]),providerId:i.z.string().trim().min(1).nullable().optional()}).superRefine((e,o)=>{let t=e.providerId??null;"provider"!==e.mode||t||o.addIssue({code:i.z.ZodIssueCode.custom,message:"providerId is required when mode=provider",path:["providerId"]})}),eD=i.z.object({provider:i.z.string().trim().min(1,"Provider and API key required"),apiKey:i.z.string().trim().min(1,"Provider and API key required")}),eK=i.z.object({text:i.z.string().optional()}).catchall(i.z.unknown()),eO=i.z.object({role:i.z.string().optional(),parts:i.z.array(eK).optional()}).catchall(i.z.unknown()),eF=i.z.object({contents:i.z.array(eO).optional(),systemInstruction:i.z.object({parts:i.z.array(eK).optional()}).catchall(i.z.unknown()).optional(),generationConfig:i.z.object({stream:i.z.boolean().optional(),maxOutputTokens:i.z.coerce.number().int().min(1).optional(),temperature:i.z.coerce.number().optional(),topP:i.z.coerce.number().optional()}).catchall(i.z.unknown()).optional()}).catchall(i.z.unknown()).superRefine((e,o)=>{e.contents||e.systemInstruction||o.addIssue({code:i.z.ZodIssueCode.custom,message:"contents or systemInstruction is required",path:[]})}),eW=i.z.object({apiKey:i.z.string().trim().min(1,"Missing apiKey"),sudoPassword:i.z.string().optional()}),eH=i.z.object({sudoPassword:i.z.string().optional()}),e$=i.z.object({tool:i.z.string().trim().min(1,"tool and mappings required"),mappings:i.z.record(i.z.string(),i.z.string().optional())}),eV=i.z.object({tool:i.z.string().trim().min(1).optional(),toolId:i.z.string().trim().min(1).optional(),backupId:i.z.string().trim().min(1,"tool and backupId are required")}).superRefine((e,o)=>{e.tool||e.toolId||o.addIssue({code:i.z.ZodIssueCode.custom,message:"tool and backupId are required",path:["tool"]})}),eG=i.z.string().trim().min(1,"Environment key is required").max(120).regex(/^[A-Z_][A-Z0-9_]*$/,"Invalid environment key format"),eQ=i.z.union([i.z.string(),i.z.number(),i.z.boolean()]).transform(e=>String(e)).refine(e=>e.length>0,"Environment value is required").refine(e=>e.length<=1e4,"Environment value is too long"),eJ=i.z.object({env:i.z.record(eG,eQ).refine(e=>Object.keys(e).length>0,"env must contain at least one key")}),eX=i.z.object({baseUrl:i.z.string().trim().min(1,"baseUrl and model are required"),apiKey:i.z.string().optional(),model:i.z.string().trim().min(1,"baseUrl and model are required")}),eY=i.z.object({name:i.z.string().trim().min(1,"Profile name is required")}),e0=i.z.object({profileId:i.z.string().trim().min(1,"profileId is required")}),e1=i.z.object({baseUrl:i.z.string().trim().min(1).optional(),apiKey:i.z.string().optional(),model:i.z.string().trim().min(1,"Model is required")}),e2=i.z.object({query:i.z.string().trim().min(1,"Query is required").max(500,"Query must be 500 characters or fewer"),provider:i.z.enum(["serper-search","brave-search","perplexity-search","exa-search","tavily-search"]).optional(),max_results:i.z.coerce.number().int().min(1).max(100).default(5),search_type:i.z.enum(["web","news"]).default("web"),offset:i.z.coerce.number().int().min(0).default(0),country:i.z.string().max(2).toUpperCase().optional(),language:i.z.string().min(2).max(5).optional(),time_range:i.z.enum(["any","day","week","month","year"]).optional(),content:i.z.object({snippet:i.z.boolean().default(!0),full_page:i.z.boolean().default(!1),format:i.z.enum(["text","markdown"]).default("text"),max_characters:i.z.coerce.number().int().min(100).max(1e5).optional()}).optional(),filters:i.z.object({include_domains:i.z.array(i.z.string().max(253)).max(20).optional(),exclude_domains:i.z.array(i.z.string().max(253)).max(20).optional(),safe_search:i.z.enum(["off","moderate","strict"]).optional()}).optional(),synthesis:i.z.object({strategy:i.z.enum(["none","auto","provider","internal"]).default("none"),model:i.z.string().optional(),max_tokens:i.z.coerce.number().int().min(1).max(4e3).optional()}).optional(),provider_options:i.z.record(i.z.string(),i.z.unknown()).optional(),strict_filters:i.z.boolean().default(!1)}).catchall(i.z.unknown()),e5=i.z.object({title:i.z.string(),url:i.z.string(),display_url:i.z.string().optional(),snippet:i.z.string(),position:i.z.number().int().positive(),score:i.z.number().min(0).max(1).nullable().optional(),published_at:i.z.string().nullable().optional(),favicon_url:i.z.string().nullable().optional(),content:i.z.object({format:i.z.enum(["text","markdown"]).optional(),text:i.z.string().optional(),length:i.z.number().int().optional()}).nullable().optional(),metadata:i.z.object({author:i.z.string().nullable().optional(),language:i.z.string().nullable().optional(),source_type:i.z.enum(["article","blog","forum","video","academic","news","other"]).nullable().optional(),image_url:i.z.string().nullable().optional()}).nullable().optional(),citation:i.z.object({provider:i.z.string(),retrieved_at:i.z.string(),rank:i.z.number().int().positive()}),provider_raw:i.z.record(i.z.string(),i.z.unknown()).nullable().optional()});i.z.object({id:i.z.string(),provider:i.z.string(),query:i.z.string(),results:i.z.array(e5),cached:i.z.boolean(),answer:i.z.object({source:i.z.enum(["none","provider","internal"]).optional(),text:i.z.string().nullable().optional(),model:i.z.string().nullable().optional()}).nullable().optional(),usage:i.z.object({queries_used:i.z.number().int().min(0),search_cost_usd:i.z.number().min(0),llm_tokens:i.z.number().int().min(0).optional()}),metrics:i.z.object({response_time_ms:i.z.number().int().min(0),upstream_latency_ms:i.z.number().int().min(0).optional(),gateway_latency_ms:i.z.number().int().min(0).optional(),total_results_available:i.z.number().int().nullable()}),errors:i.z.array(i.z.object({provider:i.z.string(),code:i.z.string(),message:i.z.string()})).optional()}),e.s(["addModelAliasSchema",0,er,"bulkProxyAssignmentSchema",0,eu,"clearModelAvailabilitySchema",0,L,"cliBackupMutationSchema",0,eV,"cliMitmAliasUpdateSchema",0,e$,"cliMitmStartSchema",0,eW,"cliMitmStopSchema",0,eH,"cliModelConfigSchema",0,eX,"cliSettingsEnvSchema",0,eJ,"cloudCredentialUpdateSchema",0,eq,"cloudModelAliasUpdateSchema",0,e_,"cloudResolveAliasSchema",0,ew,"cloudSyncActionSchema",0,eC,"codexProfileIdSchema",0,e0,"codexProfileNameSchema",0,eY,"createAutoComboSchema",0,b,"createComboSchema",0,z,"createKeySchema",0,l,"createProviderNodeSchema",0,eL,"createProviderSchema",0,s,"createProxyRegistrySchema",0,ec,"cursorImportSchema",0,ek,"dbBackupRestoreSchema",0,eM,"evalRunSuiteSchema",0,eA,"guideSettingsSaveSchema",0,e1,"jsonObjectSchema",0,F,"kiroImportSchema",0,eI,"kiroSocialExchangeSchema",0,eS,"loginSchema",0,g,"oauthExchangeSchema",0,ef,"oauthPollSchema",0,ej,"policyActionSchema",0,P,"pricingSyncRequestSchema",0,$,"providerChatCompletionSchema",0,_,"providerModelMutationSchema",0,T,"providerNodeValidateSchema",0,eN,"providersBatchTestSchema",0,eB,"proxyAssignmentSchema",0,ez,"registerFallbackSchema",0,A,"removeFallbackSchema",0,U,"removeModelAliasSchema",0,es,"resetStatsActionSchema",0,W,"setBudgetSchema",0,R,"taskRoutingActionSchema",0,Q,"testComboSchema",0,eP,"testProxySchema",0,ed,"toggleRateLimitSchema",0,B,"translatorDetectSchema",0,eh,"translatorSaveSchema",0,ev,"translatorSendSchema",0,ey,"translatorTranslateSchema",0,ex,"updateCodexServiceTierSchema",0,eo,"updateComboDefaultsSchema",0,J,"updateComboSchema",0,eR,"updateIpFilterSchema",0,en,"updateKeyPermissionsSchema",0,eZ,"updateModelAliasSchema",0,Z,"updateModelAliasesSchema",0,ea,"updatePricingSchema",0,E,"updateProviderConnectionSchema",0,eE,"updateProviderNodeSchema",0,eT,"updateProxyConfigSchema",0,em,"updateProxyRegistrySchema",0,ep,"updateRequireLoginSchema",0,X,"updateResilienceSchema",0,O,"updateSystemPromptSchema",0,Y,"updateTaskRoutingSchema",0,G,"updateThinkingBudgetSchema",0,ee,"v1AudioSpeechSchema",0,S,"v1CountTokensSchema",0,C,"v1EmbeddingsSchema",0,k,"v1ImageGenerationSchema",0,I,"v1ModerationSchema",0,q,"v1RerankSchema",0,w,"v1SearchSchema",0,e2,"v1betaGeminiGenerateSchema",0,eF,"validateProviderApiKeySchema",0,eD]),t()}catch(e){t(e)}},!1)];
2
2
 
3
3
  //# sourceMappingURL=src_shared_validation_schemas_ts_4e63863a._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[918622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),342602,(a,b,c)=>{"use strict";b.exports=a.r(918622)},187924,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactJsxRuntime},572131,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].React},804730,a=>{a.v({name:"omniroute",version:"2.8.5",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},588788,a=>{"use strict";var b=a.i(32886),c=a.i(187924);function d({locale:a,...d}){if(!a)throw Error(void 0);return(0,c.jsx)(b.IntlProvider,{locale:a,...d})}a.s(["default",()=>d])}];
1
+ module.exports=[918622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),342602,(a,b,c)=>{"use strict";b.exports=a.r(918622)},187924,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].ReactJsxRuntime},572131,(a,b,c)=>{"use strict";b.exports=a.r(342602).vendored["react-ssr"].React},804730,a=>{a.v({name:"omniroute",version:"2.8.7",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},588788,a=>{"use strict";var b=a.i(32886),c=a.i(187924);function d({locale:a,...d}){if(!a)throw Error(void 0);return(0,c.jsx)(b.IntlProvider,{locale:a,...d})}a.s(["default",()=>d])}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__9affb65e._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),804730,a=>{a.v({name:"omniroute",version:"2.8.5",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},569264,a=>{a.n(a.i(354832))},650645,a=>{a.n(a.i(827572))},923576,a=>{a.n(a.i(104858))},825210,a=>{a.n(a.i(402747))},517537,a=>{a.n(a.i(903363))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},296736,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},500790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},784707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},297647,a=>{"use strict";a.i(500790);var b=a.i(784707);a.n(b)},395936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(296736),g=a.r(907997),h=f._(a.r(297647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},330878,a=>{"use strict";var b=a.i(800717),c=a.i(118845),d=a.i(40953),e=(0,b.cache)(function(a,b){return function({_cache:a=(0,c.b)(),_formatters:b=(0,c.c)(a),getMessageFallback:e=d.d,messages:f,namespace:g,onError:h=d.b,...i}){return function({messages:a,namespace:b,...c},e){return a=a["!"],b=(0,d.r)(b,"!"),(0,d.a)({...c,messages:a,namespace:b})}({...i,onError:h,cache:a,formatters:b,getMessageFallback:e,messages:{"!":f},namespace:g?`!.${g}`:"!"},0)}({...a,namespace:b})});a.s(["default",()=>e],330878)},442979,a=>{"use strict";var b=a.i(330878),c=a.i(767228),d=a.i(800717)["use".trim()];function e(...[a]){let f=function(a){var b=(0,c.default)();try{return d(b)}catch(b){throw b instanceof TypeError&&b.message.includes("Cannot read properties of null (reading 'use')")?Error(`\`${a}\` is not callable within an async component. Please refer to https://next-intl.dev/docs/environments/server-client-components#async-components`,{cause:b}):b}}("useTranslations");return(0,b.default)(f,a)}a.s(["useTranslations",()=>e],442979)}];
1
+ module.exports=[193695,(a,b,c)=>{b.exports=a.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},677850,a=>a.a(async(b,c)=>{try{let b=await a.y("zod");a.n(b),c()}catch(a){c(a)}},!0),804730,a=>{a.v({name:"omniroute",version:"2.8.7",description:"Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",type:"module",bin:{omniroute:"bin/omniroute.mjs","omniroute-reset-password":"bin/reset-password.mjs"},files:["bin/","app/","open-sse/mcp-server/","src/shared/contracts/","scripts/postinstall.mjs","scripts/native-binary-compat.mjs","README.md","LICENSE"],workspaces:["open-sse"],engines:{node:">=18.0.0 <24.0.0"},keywords:["ai","router","proxy","openai","claude","anthropic","gemini","fallback","cursor","cline","codex","llm","auto-fallback"],license:"MIT",author:"diegosouzapw",repository:{type:"git",url:"https://github.com/diegosouzapw/OmniRoute"},homepage:"https://omniroute.online",scripts:{dev:"node scripts/run-next.mjs dev",build:"next build","build:cli":"node scripts/prepublish.mjs",start:"node scripts/run-next.mjs start",lint:"eslint .","electron:dev":'concurrently "npm run dev" "wait-on http://localhost:20128 && cd electron && npm run dev"',"electron:build":"npm run build && cd electron && npm run build","electron:build:win":"npm run build && cd electron && npm run build:win","electron:build:mac":"npm run build && cd electron && npm run build:mac","electron:build:linux":"npm run build && cd electron && npm run build:linux",test:"node --import tsx/esm --test tests/unit/*.test.mjs","test:unit":"node --import tsx/esm --test tests/unit/*.test.mjs","test:plan3":"node --import tsx/esm --test tests/unit/plan3-p0.test.mjs","test:fixes":"node --import tsx/esm --test tests/unit/fixes-p1.test.mjs","test:security":"node --import tsx/esm --test tests/unit/security-fase01.test.mjs","check:cycles":"node scripts/check-cycles.mjs","check:route-validation:t06":"node scripts/check-route-validation.mjs","check:any-budget:t11":"node scripts/check-t11-any-budget.mjs","check:docs-sync":"node scripts/check-docs-sync.mjs","typecheck:core":"tsc --pretty false -p tsconfig.typecheck-core.json","typecheck:noimplicit:core":"tsc --pretty false -p tsconfig.typecheck-noimplicit-core.json","test:integration":"node --import tsx/esm --test tests/integration/*.test.mjs","test:e2e":"node scripts/run-playwright-tests.mjs test tests/e2e/*.spec.ts","test:protocols:e2e":"node scripts/run-protocol-clients-tests.mjs","test:vitest":"vitest run open-sse/mcp-server/__tests__/*.test.ts open-sse/services/autoCombo/__tests__/*.test.ts","test:ecosystem":"node scripts/run-ecosystem-tests.mjs","test:coverage":"npx c8 --exclude=open-sse --check-coverage --lines 50 --functions 50 --branches 50 node --import tsx/esm --test tests/unit/*.test.mjs","test:all":"npm run test:unit && npm run test:vitest && npm run test:ecosystem && npm run test:e2e",check:"npm run lint && npm run test",prepublishOnly:"npm run build:cli",postinstall:"node scripts/postinstall.mjs",prepare:"husky","system-info":"node scripts/system-info.mjs"},dependencies:{"@modelcontextprotocol/sdk":"^1.27.1","@monaco-editor/react":"^4.7.0",bcryptjs:"^3.0.3","better-sqlite3":"^12.6.2",bottleneck:"^2.19.5",dompurify:"^3.3.2",express:"^5.2.1","fetch-socks":"^1.3.2","http-proxy-middleware":"^3.0.5","https-proxy-agent":"^8.0.0",jose:"^6.1.3",lowdb:"^7.0.1","monaco-editor":"^0.55.1",next:"^16.1.6","next-intl":"^4.8.3","node-machine-id":"^1.1.12",open:"^11.0.0",ora:"^9.1.0",pino:"^10.3.1","pino-pretty":"^13.1.3",react:"19.2.4","react-dom":"19.2.4",recharts:"^3.7.0",selfsigned:"^5.5.0",tsx:"^4.21.0",undici:"^7.19.2",uuid:"^13.0.0","wreq-js":"^2.0.1",zod:"^4.3.6",zustand:"^5.0.10","@swc/helpers":"0.5.19"},devDependencies:{"@playwright/test":"^1.58.2","@tailwindcss/postcss":"^4.1.18","@types/bcryptjs":"^3.0.0","@types/better-sqlite3":"^7.6.13","@types/node":"^25.2.3","@types/react":"^19.2.14","@types/react-dom":"^19.2.3",concurrently:"^9.2.1","cross-env":"^10.1.0",eslint:"^9.39.2","eslint-config-next":"16.1.6",husky:"^9.1.7","lint-staged":"^16.2.7",prettier:"^3.8.1",tailwindcss:"^4",typescript:"^5.9.3","typescript-eslint":"^8.56.0",vitest:"^4.0.18","wait-on":"^9.0.4"},"lint-staged":{"*.{js,jsx,ts,tsx,mjs}":["prettier --write","eslint --fix --no-error-on-unmatched-pattern"],"*.{json,md,yml,yaml,css}":["prettier --write"]},pnpm:{onlyBuiltDependencies:["@parcel/watcher","@swc/core","better-sqlite3","esbuild","omniroute","sharp"]}})},569264,a=>{a.n(a.i(354832))},650645,a=>{a.n(a.i(827572))},923576,a=>{a.n(a.i(104858))},825210,a=>{a.n(a.i(402747))},517537,a=>{a.n(a.i(903363))},13718,a=>{a.n(a.i(685523))},118198,a=>{a.n(a.i(545518))},296736,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},500790,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js <module evaluation>"))},784707,(a,b,c)=>{let{createClientModuleProxy:d}=a.r(211857);a.n(d("[project]/node_modules/next/dist/client/app-dir/link.js"))},297647,a=>{"use strict";a.i(500790);var b=a.i(784707);a.n(b)},395936,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return i},useLinkStatus:function(){return h.useLinkStatus}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(296736),g=a.r(907997),h=f._(a.r(297647));function i(a){let b=a.legacyBehavior,c="string"==typeof a.children||"number"==typeof a.children||"string"==typeof a.children?.type,d=a.children?.type?.$$typeof===Symbol.for("react.client.reference");return!b||c||d||(a.children?.type?.$$typeof===Symbol.for("react.lazy")?console.error("Using a Lazy Component as a direct child of `<Link legacyBehavior>` from a Server Component is not supported. If you need legacyBehavior, wrap your Lazy Component in a Client Component that renders the Link's `<a>` tag."):console.error("Using a Server Component as a direct child of `<Link legacyBehavior>` is not supported. If you need legacyBehavior, wrap your Server Component in a Client Component that renders the Link's `<a>` tag.")),(0,g.jsx)(h.default,{...a})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},330878,a=>{"use strict";var b=a.i(800717),c=a.i(118845),d=a.i(40953),e=(0,b.cache)(function(a,b){return function({_cache:a=(0,c.b)(),_formatters:b=(0,c.c)(a),getMessageFallback:e=d.d,messages:f,namespace:g,onError:h=d.b,...i}){return function({messages:a,namespace:b,...c},e){return a=a["!"],b=(0,d.r)(b,"!"),(0,d.a)({...c,messages:a,namespace:b})}({...i,onError:h,cache:a,formatters:b,getMessageFallback:e,messages:{"!":f},namespace:g?`!.${g}`:"!"},0)}({...a,namespace:b})});a.s(["default",()=>e],330878)},442979,a=>{"use strict";var b=a.i(330878),c=a.i(767228),d=a.i(800717)["use".trim()];function e(...[a]){let f=function(a){var b=(0,c.default)();try{return d(b)}catch(b){throw b instanceof TypeError&&b.message.includes("Cannot read properties of null (reading 'use')")?Error(`\`${a}\` is not callable within an async component. Please refer to https://next-intl.dev/docs/environments/server-client-components#async-components`,{cause:b}):b}}("useTranslations");return(0,b.default)(f,a)}a.s(["useTranslations",()=>e],442979)}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__a6942102._.js.map