omniroute 2.8.0 → 2.8.1

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 (119) 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/callback/page_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  49. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  51. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  57. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/chunks/[root-of-the-server]__09c944b3._.js +1 -1
  60. package/app/.next/server/chunks/[root-of-the-server]__167585da._.js +1 -1
  61. package/app/.next/server/chunks/[root-of-the-server]__3972de72._.js +5 -5
  62. package/app/.next/server/chunks/[root-of-the-server]__64bd5d97._.js +1 -1
  63. package/app/.next/server/chunks/[root-of-the-server]__784fb7c5._.js +1 -1
  64. package/app/.next/server/chunks/[root-of-the-server]__7d9b23e7._.js +1 -1
  65. package/app/.next/server/chunks/[root-of-the-server]__80e3bfc3._.js +1 -1
  66. package/app/.next/server/chunks/[root-of-the-server]__84e445b2._.js +2 -2
  67. package/app/.next/server/chunks/[root-of-the-server]__92cb0def._.js +2 -2
  68. package/app/.next/server/chunks/[root-of-the-server]__a630d6ef._.js +5 -5
  69. package/app/.next/server/chunks/[root-of-the-server]__cb8a67d1._.js +1 -1
  70. package/app/.next/server/chunks/[root-of-the-server]__db2f9fe0._.js +1 -1
  71. package/app/.next/server/chunks/[root-of-the-server]__dc47ee64._.js +1 -1
  72. package/app/.next/server/chunks/[root-of-the-server]__f0f9eb3f._.js +2 -2
  73. package/app/.next/server/chunks/_05c48915._.js +1 -1
  74. package/app/.next/server/chunks/_1244636c._.js +5 -5
  75. package/app/.next/server/chunks/_2115d8de._.js +1 -1
  76. package/app/.next/server/chunks/_3ac953eb._.js +1 -1
  77. package/app/.next/server/chunks/_4b8fd853._.js +1 -1
  78. package/app/.next/server/chunks/_68683848._.js +1 -1
  79. package/app/.next/server/chunks/_ee9b677b._.js +1 -1
  80. package/app/.next/server/chunks/open-sse_translator_index_ts_f5fd0821._.js +9 -9
  81. package/app/.next/server/chunks/src_lib_a886ee1f._.js +1 -1
  82. package/app/.next/server/chunks/src_shared_validation_schemas_ts_4e63863a._.js +1 -1
  83. package/app/.next/server/chunks/ssr/[root-of-the-server]__9affb65e._.js +1 -1
  84. package/app/.next/server/chunks/ssr/[root-of-the-server]__a6942102._.js +1 -1
  85. package/app/.next/server/chunks/ssr/_5a9cd299._.js +1 -1
  86. package/app/.next/server/chunks/ssr/src_d3225e36._.js +1 -1
  87. package/app/.next/server/chunks/ssr/src_i18n_messages_zh-CN_json_f4112d90._.js +1 -1
  88. package/app/.next/server/pages/500.html +2 -2
  89. package/app/.next/server/server-reference-manifest.js +1 -1
  90. package/app/.next/server/server-reference-manifest.json +1 -1
  91. package/app/.next/static/chunks/02afac1b585d8219.css +1 -0
  92. package/app/.next/static/chunks/{d3cb88d181c61235.js → 4bed5b394f9dece9.js} +1 -1
  93. package/app/.next/static/chunks/{4f099d0f5b0f00d6.js → b5cc103e16794392.js} +1 -1
  94. package/app/.next/static/chunks/d19ab4efcaddd1db.js +1 -0
  95. package/app/CHANGELOG.md +20 -0
  96. package/app/docs/openapi.yaml +1 -1
  97. package/app/open-sse/executors/kiro.ts +5 -2
  98. package/app/open-sse/handlers/chatCore.ts +11 -3
  99. package/app/open-sse/translator/helpers/toolCallHelper.ts +58 -15
  100. package/app/open-sse/translator/index.ts +10 -3
  101. package/app/open-sse/utils/stream.ts +129 -19
  102. package/app/open-sse/utils/usageTracking.ts +3 -1
  103. package/app/package-lock.json +2 -2
  104. package/app/package.json +1 -1
  105. package/app/src/app/(dashboard)/dashboard/providers/[id]/page.tsx +22 -0
  106. package/app/src/app/api/keys/[id]/route.ts +26 -4
  107. package/app/src/app/api/provider-models/route.ts +3 -1
  108. package/app/src/i18n/messages/zh-CN.json +862 -787
  109. package/app/src/lib/db/models.ts +25 -0
  110. package/app/src/lib/usage/callLogs.ts +6 -2
  111. package/app/src/shared/components/RequestLoggerDetail.tsx +10 -10
  112. package/app/src/shared/validation/schemas.ts +1 -0
  113. package/app/src/sse/handlers/chat.ts +8 -3
  114. package/package.json +1 -1
  115. package/app/.next/static/chunks/194dbd564ba7150b.css +0 -1
  116. package/app/.next/static/chunks/3f3d822837a5ff5f.js +0 -1
  117. /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_buildManifest.js +0 -0
  118. /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_clientMiddlewareManifest.json +0 -0
  119. /package/app/.next/static/{Y1ARupD8_nbYoMt6WYrBO → JoLoKHY_9DVANe7Qs4D0K}/_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"]),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(),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"])}),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: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"]})}),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: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"]})}),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,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,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,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,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"]),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)];
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.0",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.1",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.0",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.1",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