llm-simple-router 0.9.19 → 0.9.21

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 (83) hide show
  1. package/config/recommended-retry-rules.json +1 -0
  2. package/dist/admin/providers.js +22 -6
  3. package/dist/admin/setup.js +2 -1
  4. package/dist/config/model-context.d.ts +2 -0
  5. package/dist/config/model-context.js +14 -6
  6. package/dist/core/types.d.ts +5 -0
  7. package/dist/db/index.js +45 -0
  8. package/dist/db/migrations/040_models_object_format.sql +4 -0
  9. package/dist/db/providers.d.ts +4 -0
  10. package/dist/db/providers.js +31 -0
  11. package/dist/middleware/admin-auth.js +2 -1
  12. package/dist/proxy/handler/proxy-handler.js +19 -1
  13. package/dist/proxy/transport/stream.d.ts +4 -1
  14. package/dist/proxy/transport/stream.js +21 -6
  15. package/dist/proxy/transport/transport-fn.d.ts +4 -0
  16. package/dist/proxy/transport/transport-fn.js +1 -1
  17. package/dist/utils/cookie-secure.d.ts +3 -0
  18. package/dist/utils/cookie-secure.js +8 -0
  19. package/frontend-dist/assets/CardContent-DmBQARma.js +1 -0
  20. package/frontend-dist/assets/CardTitle-DgwtSVqy.js +1 -0
  21. package/frontend-dist/assets/Checkbox-DgWzyASL.js +1 -0
  22. package/frontend-dist/assets/CollapsibleContent-BjJrE5cf.js +1 -0
  23. package/frontend-dist/assets/CollapsibleTrigger-C73cozLg.js +1 -0
  24. package/frontend-dist/assets/{Dashboard-yhOvjTlI.js → Dashboard-D47Lzd5i.js} +2 -2
  25. package/frontend-dist/assets/{Input-1iFstr5N.js → Input-glS226Q6.js} +1 -1
  26. package/frontend-dist/assets/Label-B2lstY9k.js +1 -0
  27. package/frontend-dist/assets/Login-B5v_CIaw.js +1 -0
  28. package/frontend-dist/assets/Logs-CC6e8ty3.js +1 -0
  29. package/frontend-dist/assets/MappingEntryEditor-auxWvl8S.js +1 -0
  30. package/frontend-dist/assets/{ModelCard-PiwXmas-.js → ModelCard-DixuS062.js} +1 -1
  31. package/frontend-dist/assets/ModelMappings-DtmMS2o6.js +1 -0
  32. package/frontend-dist/assets/Monitor-F6DD03LF.js +1 -0
  33. package/frontend-dist/assets/Providers-DZkl5ryZ.js +1 -0
  34. package/frontend-dist/assets/ProxyEnhancement-C1uXuPZm.js +1 -0
  35. package/frontend-dist/assets/QuickSetup-BEeZJQ3g.js +1 -0
  36. package/frontend-dist/assets/RetryRules-plJdXlmH.js +1 -0
  37. package/frontend-dist/assets/RouterKeys-CLh6XISQ.js +1 -0
  38. package/frontend-dist/assets/{RovingFocusItem-WFfF7xTx.js → RovingFocusItem-BnqO1JTY.js} +1 -1
  39. package/frontend-dist/assets/Schedules-btnuRbYc.js +1 -0
  40. package/frontend-dist/assets/Settings-CbQaUkQ5.js +6 -0
  41. package/frontend-dist/assets/Setup-8yOUQ97d.js +1 -0
  42. package/frontend-dist/assets/Switch-BwPbL6O4.js +1 -0
  43. package/frontend-dist/assets/TooltipTrigger-D4gYyjGF.js +1 -0
  44. package/frontend-dist/assets/TransformRulesForm-C6PBk8zI.js +1 -0
  45. package/frontend-dist/assets/UnifiedRequestDialog-rmWxp09D.js +3 -0
  46. package/frontend-dist/assets/VisuallyHiddenInput-BPy71v35.js +1 -0
  47. package/frontend-dist/assets/{button-DMmB7tDy.js → button-DRFSckEU.js} +2 -2
  48. package/frontend-dist/assets/{copy-3gKHS1GQ.js → copy-BsWNnxok.js} +1 -1
  49. package/frontend-dist/assets/dialog-DxoN_Irc.js +1 -0
  50. package/frontend-dist/assets/index-Dr-BkaVu.js +3 -0
  51. package/frontend-dist/assets/index-iEMoIOdZ.css +1 -0
  52. package/frontend-dist/assets/{trash-2-C8JRtoE6.js → trash-2-DZ6KuutY.js} +1 -1
  53. package/frontend-dist/assets/{useClipboard-Df2zt0gp.js → useClipboard-B0s-K67s.js} +1 -1
  54. package/frontend-dist/assets/{useLogRetention-D79yrt_t.js → useLogRetention-BS-AFvlE.js} +1 -1
  55. package/frontend-dist/index.html +3 -3
  56. package/package.json +1 -1
  57. package/frontend-dist/assets/CardContent-DpdNrtkG.js +0 -1
  58. package/frontend-dist/assets/CardTitle-mrTD9vua.js +0 -1
  59. package/frontend-dist/assets/Checkbox-1rtzAXdv.js +0 -1
  60. package/frontend-dist/assets/CollapsibleContent-Gd8G1WPI.js +0 -1
  61. package/frontend-dist/assets/CollapsibleTrigger-DEs_2Gam.js +0 -1
  62. package/frontend-dist/assets/Label-CRw4oQf2.js +0 -1
  63. package/frontend-dist/assets/Login-BJLsCn5J.js +0 -1
  64. package/frontend-dist/assets/Logs-DhCuj7rp.js +0 -1
  65. package/frontend-dist/assets/MappingEntryEditor-B7cc69AQ.js +0 -1
  66. package/frontend-dist/assets/ModelMappings-8u8jBFoA.js +0 -1
  67. package/frontend-dist/assets/Monitor-UFRtv7Oi.js +0 -1
  68. package/frontend-dist/assets/Providers-CyUi2DVb.js +0 -1
  69. package/frontend-dist/assets/ProxyEnhancement-BxZCYxBL.js +0 -1
  70. package/frontend-dist/assets/QuickSetup-CYVEtfPZ.js +0 -1
  71. package/frontend-dist/assets/RetryRules-DXU-NS1-.js +0 -1
  72. package/frontend-dist/assets/RouterKeys-CUa64rMC.js +0 -1
  73. package/frontend-dist/assets/Schedules-DJboHZQe.js +0 -1
  74. package/frontend-dist/assets/Settings-C00E7rLh.js +0 -6
  75. package/frontend-dist/assets/Setup-Bdg3g-7K.js +0 -1
  76. package/frontend-dist/assets/Switch-DXVDTQ8F.js +0 -1
  77. package/frontend-dist/assets/TooltipTrigger-BcM0p009.js +0 -1
  78. package/frontend-dist/assets/TransformRulesForm-BhiHKW55.js +0 -1
  79. package/frontend-dist/assets/UnifiedRequestDialog-DniIXKEa.js +0 -3
  80. package/frontend-dist/assets/VisuallyHiddenInput-Bae_wVf3.js +0 -1
  81. package/frontend-dist/assets/dialog-B68sJflZ.js +0 -1
  82. package/frontend-dist/assets/index-BdA9t4qo.css +0 -1
  83. package/frontend-dist/assets/index-QPBBCV_W.js +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-simple-router",
3
- "version": "0.9.19",
3
+ "version": "0.9.21",
4
4
  "description": "LLM API proxy router with OpenAI/Anthropic support, model mapping, retry strategies, and admin dashboard",
5
5
  "license": "MIT",
6
6
  "author": "ZZzzswszzZZ",
@@ -1 +0,0 @@
1
- import{Bt as e,Q as t,Rt as n,Y as r,pt as i,r as a,ut as o}from"./button-DMmB7tDy.js";var s=[`data-size`],c=t({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},setup(t){let c=t;return(l,u)=>(o(),r(`div`,{"data-slot":`card`,"data-size":t.size,class:e(n(a)(`ring-foreground/10 bg-card text-card-foreground gap-4 overflow-hidden rounded-lg py-4 text-sm ring-1 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg group/card flex flex-col`,c.class))},[i(l.$slots,`default`)],10,s))}}),l=t({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let s=t;return(t,c)=>(o(),r(`div`,{"data-slot":`card-content`,class:e(n(a)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[i(t.$slots,`default`)],2))}});export{c as n,l as t};
@@ -1 +0,0 @@
1
- import{Bt as e,Q as t,Rt as n,Y as r,pt as i,r as a,ut as o}from"./button-DMmB7tDy.js";var s=t({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let s=t;return(t,c)=>(o(),r(`div`,{"data-slot":`card-header`,class:e(n(a)(`gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,s.class))},[i(t.$slots,`default`)],2))}}),c=t({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let s=t;return(t,c)=>(o(),r(`div`,{"data-slot":`card-title`,class:e(n(a)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[i(t.$slots,`default`)],2))}});export{s as n,c as t};
@@ -1 +0,0 @@
1
- import{Ct as e,G as t,H as n,J as r,Q as i,Rt as a,V as o,Vt as s,Z as c,at as l,et as u,ht as d,i as f,m as p,o as m,pt as h,q as g,r as _,ut as v,x as y}from"./button-DMmB7tDy.js";import{t as b}from"./VisuallyHiddenInput-Bae_wVf3.js";import{t as x}from"./RovingFocusItem-WFfF7xTx.js";import{B as S,G as C,H as w,L as T,Y as E,nt as D,q as O}from"./index-QPBBCV_W.js";function k(e,t){return C(e)?!1:Array.isArray(e)?e.some(e=>E(e,t)):E(e,t)}var[A,j]=O(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=O(`CheckboxRoot`),I=i({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(i,{emit:s}){let c=i,u=s,{forwardRef:_,currentElement:y}=m(),S=A(null),T=p(c,`modelValue`,u,{defaultValue:c.defaultValue??c.falseValue,passive:c.modelValue===void 0}),D=t(()=>S?.disabled.value||c.disabled),O=t(()=>E(T.value,c.trueValue)),j=t(()=>C(S?.modelValue.value)?T.value===`indeterminate`?`indeterminate`:O.value:k(S.modelValue.value,c.value));function P(){if(C(S?.modelValue.value))T.value===`indeterminate`?T.value=c.trueValue:T.value=O.value?c.falseValue:c.trueValue;else{let e=[...S.modelValue.value||[]];if(k(e,c.value)){let t=e.findIndex(e=>E(e,c.value));e.splice(t,1)}else e.push(c.value);S.modelValue.value=e}}let I=w(y),L=t(()=>c.id&&y.value?document.querySelector(`[for="${c.id}"]`)?.innerText:void 0);return F({disabled:D,state:j}),(t,i)=>(v(),g(d(a(S)?.rovingFocus.value?a(x):a(f)),l(t.$attrs,{id:t.id,ref:a(_),role:`checkbox`,"as-child":t.asChild,as:t.as,type:t.as===`button`?`button`:void 0,"aria-checked":a(M)(j.value)?`mixed`:j.value,"aria-required":t.required,"aria-label":t.$attrs[`aria-label`]||L.value,"data-state":a(N)(j.value),"data-disabled":D.value?``:void 0,disabled:D.value,focusable:a(S)?.rovingFocus.value?!D.value:void 0,onKeydown:o(n(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:e(()=>[h(t.$slots,`default`,{modelValue:a(T),state:j.value}),a(I)&&t.name&&!a(S)?(v(),g(a(b),{key:0,type:`checkbox`,checked:!!j.value,name:t.name,value:t.value,disabled:D.value,required:t.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):r(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=i({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let{forwardRef:n}=m(),r=P();return(t,i)=>(v(),g(a(T),{present:t.forceMount||a(M)(a(r).state.value)||a(r).state.value===!0},{default:e(()=>[c(a(f),l({ref:a(n),"data-state":a(N)(a(r).state.value),"data-disabled":a(r).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":t.asChild,as:t.as},t.$attrs),{default:e(()=>[h(t.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=i({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=n,o=S(y(r,`class`),i);return(t,n)=>(v(),g(a(I),l({"data-slot":`checkbox`},a(o),{class:a(_)(`border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-md border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50`,r.class)}),{default:e(n=>[c(a(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:e(()=>[h(t.$slots,`default`,s(u(n)),()=>[c(a(D))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
@@ -1 +0,0 @@
1
- import{Ct as e,G as t,It as n,J as r,Q as i,Rt as a,Vt as o,Z as s,at as c,bt as l,ct as u,d,et as f,i as p,jt as m,m as h,o as g,ot as _,pt as v,q as y,ut as b}from"./button-DMmB7tDy.js";import{B as x,L as S,q as C,z as w}from"./index-QPBBCV_W.js";var[T,E]=C(`CollapsibleRoot`),D=i({__name:`CollapsibleRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:open`],setup(t,{expose:r,emit:i}){let o=t,s=h(o,`open`,i,{defaultValue:o.defaultOpen,passive:o.open===void 0}),{disabled:c,unmountOnHide:l}=n(o);return E({contentId:``,disabled:c,open:s,unmountOnHide:l,onOpenToggle:()=>{c.value||(s.value=!s.value)}}),r({open:s}),g(),(t,n)=>(b(),y(a(p),{as:t.as,"as-child":o.asChild,"data-state":a(s)?`open`:`closed`,"data-disabled":a(c)?``:void 0},{default:e(()=>[v(t.$slots,`default`,{open:a(s)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=i({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(n,{emit:i}){let o=n,f=i,h=T();h.contentId||=w(void 0,`reka-collapsible-content`);let x=m(),{forwardRef:C,currentElement:E}=g(),D=m(0),O=m(0),k=t(()=>h.open.value),A=m(k.value),j=m();l(()=>[k.value,x.value?.present],async()=>{await _();let e=E.value;if(!e)return;j.value=j.value||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();O.value=t.height,D.value=t.width,A.value||(e.style.transitionDuration=j.value.transitionDuration,e.style.animationName=j.value.animationName)},{immediate:!0});let M=t(()=>A.value&&h.open.value);return u(()=>{requestAnimationFrame(()=>{A.value=!1})}),d(E,`beforematch`,e=>{requestAnimationFrame(()=>{h.onOpenToggle(),f(`contentFound`)})}),(t,n)=>(b(),y(a(S),{ref_key:`presentRef`,ref:x,present:t.forceMount||a(h).open.value,"force-mount":!0},{default:e(({present:n})=>[s(a(p),c(t.$attrs,{id:a(h).contentId,ref:a(C),"as-child":o.asChild,as:t.as,hidden:n?void 0:a(h).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:a(h).open.value?`open`:`closed`,"data-disabled":a(h).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:e(()=>[!a(h).unmountOnHide.value||n?v(t.$slots,`default`,{key:0}):r(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=i({__name:`Collapsible`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(t,{emit:n}){let r=x(t,n);return(t,n)=>(b(),y(a(D),c({"data-slot":`collapsible`},a(r)),{default:e(e=>[v(t.$slots,`default`,o(f(e)))]),_:3},16))}}),A=i({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(t){let n=t;return(t,r)=>(b(),y(a(O),c({"data-slot":`collapsible-content`},n),{default:e(()=>[v(t.$slots,`default`)]),_:3},16))}});export{k as n,T as r,A as t};
@@ -1 +0,0 @@
1
- import{Ct as e,Q as t,Rt as n,at as r,i,o as a,pt as o,q as s,ut as c}from"./button-DMmB7tDy.js";import{r as l}from"./CollapsibleContent-Gd8G1WPI.js";var u=t({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let r=t;a();let u=l();return(t,a)=>(c(),s(n(i),{type:t.as===`button`?`button`:void 0,as:t.as,"as-child":r.asChild,"aria-controls":n(u).contentId,"aria-expanded":n(u).open.value,"data-state":n(u).open.value?`open`:`closed`,"data-disabled":n(u).disabled?.value?``:void 0,disabled:n(u).disabled?.value,onClick:n(u).onOpenToggle},{default:e(()=>[o(t.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),d=t({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(t){let i=t;return(t,a)=>(c(),s(n(u),r({"data-slot":`collapsible-trigger`},i),{default:e(()=>[o(t.$slots,`default`)]),_:3},16))}});export{d as t};
@@ -1 +0,0 @@
1
- import{Ct as e,Q as t,Rt as n,at as r,i,o as a,pt as o,q as s,r as c,ut as l,x as u}from"./button-DMmB7tDy.js";var d=t({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(t){let c=t;return a(),(t,a)=>(l(),s(n(i),r(c,{onMousedown:a[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:e(()=>[o(t.$slots,`default`)]),_:3},16))}}),f=t({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(t){let i=t,a=u(i,`class`);return(t,u)=>(l(),s(n(d),r({"data-slot":`label`},n(a),{class:n(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,i.class)}),{default:e(()=>[o(t.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
@@ -1 +0,0 @@
1
- import{A as e,Ct as t,F as n,H as r,J as i,K as a,L as o,Q as s,Rt as c,Ut as l,X as u,Y as d,Z as f,jt as p,k as m,n as h,q as g,ut as _}from"./button-DMmB7tDy.js";import{t as v}from"./Label-CRw4oQf2.js";import{Q as y,Z as b,t as x}from"./index-QPBBCV_W.js";import{n as S,t as C}from"./CardContent-DpdNrtkG.js";import{t as w}from"./Input-1iFstr5N.js";var T={class:`min-h-screen flex items-center justify-center bg-background relative`},E={class:`text-center mb-6`},D={class:`text-sm text-muted-foreground mt-1`},O={key:0,class:`text-destructive text-sm`},k=s({__name:`Login`,setup(s){let{t:k}=n(),{isDark:A,toggleTheme:j}=x(),M=o(),N=p(``),P=p(``),F=p(!1);async function I(){if(N.value){P.value=``,F.value=!0;try{await m.login(N.value),M.push(`/`)}catch(t){P.value=e(t,k(`login.loginFailed`))}finally{F.value=!1}}}return(e,n)=>(_(),d(`div`,T,[f(c(h),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:c(j)},{default:t(()=>[c(A)?(_(),g(c(b),{key:1,class:`w-4 h-4`})):(_(),g(c(y),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),f(c(S),{class:`w-full max-w-sm shadow-lg`},{default:t(()=>[f(c(C),{class:`pt-6`},{default:t(()=>[a(`div`,E,[n[1]||=a(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[a(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[a(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])],-1),n[2]||=a(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`,-1),a(`p`,D,l(c(k)(`login.subtitle`)),1)]),a(`form`,{onSubmit:r(I,[`prevent`]),class:`space-y-4`},[a(`div`,null,[f(c(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:t(()=>[u(l(c(k)(`login.password`)),1)]),_:1}),f(c(w),{modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e,type:`password`,placeholder:c(k)(`login.passwordPlaceholder`),disabled:F.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),P.value?(_(),d(`p`,O,l(P.value),1)):i(``,!0),f(c(h),{type:`submit`,class:`w-full`,disabled:F.value},{default:t(()=>[u(l(F.value?c(k)(`login.loggingIn`):c(k)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{k as default};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,Dt as r,F as i,G as a,H as o,J as s,K as c,Q as l,Rt as u,U as d,Ut as f,X as p,Y as m,Z as h,bt as g,ct as _,ft as v,jt as y,k as b,n as x,q as S,r as C,ut as w}from"./button-DMmB7tDy.js";import{r as T,t as ee}from"./UnifiedRequestDialog-DniIXKEa.js";import{t as E}from"./copy-3gKHS1GQ.js";import{i as D,n as O,r as te,t as ne}from"./TooltipTrigger-BcM0p009.js";import{a as re,c as k,d as ie,f as ae,l as A,n as oe,o as se,r as ce,s as le,t as ue,u as j}from"./dialog-B68sJflZ.js";import{t as de}from"./Label-CRw4oQf2.js";import{a as fe,b as M,c as pe,d as me,f as N,g as P,h as F,i as he,m as I,nt as ge,o as _e,p as L,r as R,rt as z,s as ve,u as ye}from"./index-QPBBCV_W.js";import{t as B}from"./Input-1iFstr5N.js";import{t as be}from"./useClipboard-Df2zt0gp.js";import{t as xe}from"./useLogRetention-D79yrt_t.js";var Se=l({__name:`Skeleton`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e;return(e,r)=>(w(),m(`div`,{"data-slot":`skeleton`,class:t(u(C)(`bg-muted rounded-md animate-pulse`,n.class))},null,2))}}),V={key:1,class:`ml-4 text-muted-foreground text-xs`},H={class:`inline-flex items-center gap-1`},U={class:`font-mono`},W={key:2,class:`text-muted-foreground`},Ce={key:1,class:`text-muted-foreground`},G={key:1,class:`text-muted-foreground`},we=l({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1}},emits:[`toggleExpand`,`openDetail`],setup(e,{emit:r}){let a=r,{t:l}=i(),{copied:g,copy:_}=be();function v(e){if(!e)return l(`logs.row.unknown`);try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch{return l(`logs.row.unknown`)}}return(r,i)=>(w(),S(u(A),{class:t({"bg-destructive/10":!e.isChild&&(e.log.status_code??0)>=400,"bg-muted/20":e.isChild})},{default:n(()=>[h(u(j),{class:`w-10`},{default:n(()=>[!e.isChild&&e.log.child_count?(w(),S(u(x),{key:0,variant:`ghost`,size:`xs`,onClick:i[0]||=t=>a(`toggleExpand`,e.log)},{default:n(()=>[c(`span`,{class:t([`text-xs transition-transform`,e.expanded?``:`-rotate-90`])},`▼`,2)]),_:1})):s(``,!0),e.isChild?(w(),m(`span`,V,`└`)):s(``,!0)]),_:1}),h(u(j),{class:`font-mono text-xs text-muted-foreground`,title:e.log.id},{default:n(()=>[c(`span`,H,[p(f(e.log.id.slice(0,8))+` `,1),h(u(O),null,{default:n(()=>[h(u(D),{"delay-duration":300},{default:n(()=>[h(u(ne),{"as-child":``},{default:n(()=>[h(u(x),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:i[1]||=o(t=>u(_)(e.log.id),[`stop`])},{default:n(()=>[u(g)?(w(),S(u(ge),{key:0,class:`size-3 text-success`})):(w(),S(u(E),{key:1,class:`size-3`}))]),_:1})]),_:1}),h(u(te),null,{default:n(()=>[p(f(u(l)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})]),_:1})])]),_:1},8,[`title`]),h(u(j),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(z)(e.log.created_at)),1)]),_:1}),h(u(j),null,{default:n(()=>[h(u(M),{variant:e.log.api_type===`openai`?`default`:`secondary`},{default:n(()=>[p(f(e.log.api_type),1)]),_:1},8,[`variant`])]),_:1}),h(u(j),{class:`font-mono text-xs`},{default:n(()=>[p(f(e.log.model||`-`)+` `,1),!e.isChild&&e.log.original_model?(w(),S(u(M),{key:0,variant:`secondary`,class:`ml-1 text-xs`},{default:n(()=>[p(f(u(l)(`logs.row.replaced`)),1)]),_:1})):s(``,!0)]),_:1}),h(u(j),{class:`text-xs`},{default:n(()=>[!e.isChild&&e.log.provider_id===u(`router`)?(w(),S(u(M),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:n(()=>[p(f(u(l)(`logs.row.proxyEnhancement`,{label:v(e.log.upstream_request)})),1)]),_:1})):e.log.backend_model||e.log.provider_name?(w(),m(d,{key:1},[c(`span`,U,f(e.log.backend_model||`-`),1),i[3]||=c(`span`,{class:`text-muted-foreground`},` @ `,-1),h(u(M),{variant:`outline`,class:`text-[10px] px-1 py-0`},{default:n(()=>[p(f(e.log.provider_name||e.log.provider_id||`-`),1)]),_:1})],64)):(w(),m(`span`,W,`-`))]),_:1}),h(u(j),null,{default:n(()=>[h(u(M),{variant:(e.log.status_code??0)<400?`default`:`destructive`},{default:n(()=>[p(f(e.log.status_code||`-`),1)]),_:1},8,[`variant`])]),_:1}),h(u(j),null,{default:n(()=>[p(f(e.log.latency_ms?e.log.latency_ms+`ms`:`-`),1)]),_:1}),h(u(j),null,{default:n(()=>[p(f(e.log.is_stream?`Yes`:`No`),1)]),_:1}),h(u(j),null,{default:n(()=>[e.log.is_retry?(w(),S(u(M),{key:0,variant:`outline`,class:`text-warning-dark border-warning`},{default:n(()=>[p(f(u(l)(`logs.table.retry`)),1)]),_:1})):(w(),m(`span`,Ce,`-`))]),_:1}),h(u(j),null,{default:n(()=>[e.log.is_failover?(w(),S(u(M),{key:0,variant:`outline`,class:`text-danger-dark border-danger`},{default:n(()=>[p(f(u(l)(`logs.table.failover`)),1)]),_:1})):(w(),m(`span`,G,`-`))]),_:1}),h(u(j),{class:`text-destructive text-xs`},{default:n(()=>[p(f(e.log.error_message||`-`),1)]),_:1}),h(u(j),null,{default:n(()=>[h(u(x),{variant:`ghost`,size:`sm`,onClick:i[2]||=t=>a(`openDetail`,e.log.id)},{default:n(()=>[p(f(u(l)(`logs.row.detail`)),1)]),_:1})]),_:1})]),_:1},8,[`class`]))}}),K=[{label:`1h`,value:`1h`},{label:`5h`,value:`5h`},{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`}];function Te(){let{t}=i(),n=y(`5h`),r=y({start:``,end:``}),o=y(`all`),s=y(`all`),c=y(`all`),l=y(`all`),u=y(`all`),d=y([]),f=y([]),p=y([]),m=a(()=>r.value.start&&r.value.end&&r.value.start<r.value.end),h=a(()=>{let{start:e,end:n}=r.value;return!e||!n?``:e>=n?t(`logs.validation.endTimeAfterStart`):``}),g=a(()=>{if(o.value===`all`)return p.value;let e=d.value.find(e=>e.id===o.value);if(!e)return p.value;let t=new Set(e.models.map(e=>e.name));return p.value.filter(e=>t.has(e))});function v(e){return e.includes(`T`)?`${e}:00.000Z`:`${e}T00:00:00.000Z`}function x(e){return e.includes(`T`)?`${e}:59.999Z`:`${e}T23:59:59.999Z`}let S={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function C(){let e={};if(m.value)e.start_time=v(r.value.start),e.end_time=x(r.value.end);else{let t=S[n.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return l.value!==`all`&&(e.api_type=l.value),o.value!==`all`&&(e.provider_id=o.value),s.value!==`all`&&(e.model=s.value),c.value!==`all`&&(e.router_key_id=c.value),u.value!==`all`&&(e.status_code=u.value),e}function w(){r.value={start:``,end:``}}async function T(){try{d.value=await b.getProviders()}catch(n){console.error(`Failed to load providers:`,n),R.error(e(n,t(`logs.messages.loadProvidersFailed`)))}}async function ee(){try{f.value=await b.getRouterKeys()}catch(n){console.error(`Failed to load router keys:`,n),R.error(e(n,t(`logs.messages.loadKeysFailed`)))}}async function E(){try{let e=await b.getMetricsSummary({period:`30d`});p.value=[...new Set(e.map(e=>e.backend_model))]}catch{p.value=[]}}return _(()=>{Promise.allSettled([T(),ee(),E()])}),{PERIODS:K,period:n,dateRange:r,dateRangeError:h,providerFilter:o,modelFilter:s,keyFilter:c,apiTypeFilter:l,statusFilter:u,providers:d,routerKeys:f,filteredModelOptions:g,hasDateRange:m,clearDateRange:w,buildFilterParams:C}}var q=20,Ee=864e5;function De(){let{t}=i(),n=y([]),r=y(0),o=y(1),s=y({}),c=y(30),l=y(!1),u=y(new Set),d=y({}),f=y({}),p=y(!1),m=y(null),h=a(()=>Math.ceil(r.value/q));async function g(i){i&&(s.value=i);try{let e=await b.getLogs({page:o.value,limit:q,view:`grouped`,...s.value});n.value=e.data,r.value=e.total,u.value.clear(),d.value={},f.value={}}catch(n){console.error(`Failed to load logs:`,n),R.error(e(n,t(`logs.messages.loadFailed`)))}}function _(e){e>=1&&e<=h.value&&e!==o.value&&(o.value=e,g())}let v=y(null),x=y(!1);async function S(){try{let e=new Date(Date.now()-c.value*Ee).toISOString(),t=await b.deleteLogsBefore(e);l.value=!1,o.value=1,await g(),v.value=t.deleted,x.value=!0}catch(n){console.error(`Failed to cleanup logs:`,n),R.error(e(n,t(`logs.messages.cleanupFailed`)))}}async function C(n){let r=n.id;if(u.value.has(r)){u.value.delete(r);return}if(u.value.add(r),!d.value[r]){f.value[r]=!0;try{d.value[r]=await b.getLogChildren(r)}catch(n){console.error(`Failed to load child logs:`,n),R.error(e(n,t(`logs.messages.loadSubRequestsFailed`)))}finally{f.value[r]=!1}}}async function w(n){try{m.value=await b.getLogDetail(n),p.value=!0}catch(n){console.error(`Failed to load log detail:`,n),R.error(e(n,t(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:q,logs:n,total:r,page:o,totalPages:h,cleanupDays:c,showCleanup:l,expandedRows:u,childLogs:d,childLoading:f,logDetailOpen:p,selectedLogEntry:m,cleanupResult:v,showCleanupResult:x,loadLogs:g,goToPage:_,handleCleanup:S,toggleExpand:C,openLogDetail:w}}var Oe={class:`p-6`},ke={class:`flex items-center justify-between mb-4`},Ae={class:`text-lg font-semibold text-foreground`},je={class:`flex flex-wrap items-center gap-2 mb-4`},Me={class:`flex gap-1`},Ne={class:`flex items-center gap-1`},Pe={key:1,class:`text-xs text-destructive whitespace-nowrap`},Fe={class:`bg-card rounded-lg border overflow-hidden`},Ie={class:`flex items-center justify-between mt-4`},Le={class:`text-sm text-muted-foreground`},Re={class:`flex items-center gap-1`},ze={key:0,class:`px-2 text-sm text-muted-foreground`},Be={class:`text-sm text-muted-foreground`},Ve={class:`mb-4`},He={class:`space-y-3`},Ue={class:`text-sm font-medium`},We={class:`flex items-center gap-3`},Ge={class:`text-xs text-muted-foreground`},Ke={class:`flex justify-end`},qe=13,Je=300,Ye=7,J=2,Y=1,X=l({__name:`Logs`,setup(e){let{t}=i(),{PERIODS:o,period:l,dateRange:y,dateRangeError:b,providerFilter:C,modelFilter:E,keyFilter:D,statusFilter:O,providers:te,routerKeys:ne,filteredModelOptions:M,clearDateRange:ge,buildFilterParams:R}=Te(),{logs:z,total:be,page:V,totalPages:H,cleanupDays:U,showCleanup:W,cleanupResult:Ce,showCleanupResult:G,expandedRows:K,childLogs:q,childLoading:Ee,logDetailOpen:X,selectedLogEntry:Xe,loadLogs:Ze,goToPage:Z,handleCleanup:Qe,toggleExpand:$e,openLogDetail:et}=De(),tt=a(()=>{let e=H.value,t=V.value;if(e<=Ye)return Array.from({length:e},(e,t)=>t+1);let n=[Y],r=Math.max(Y+1,t-J),i=Math.min(e-Y,t+J);r>Y+J&&n.push(`...`);for(let e=r;e<=i;e++)n.push(e);return i<e-J&&n.push(`...`),n.push(e),n}),{retentionDays:Q,retentionSaving:nt,saveRetention:rt,loadRetention:it}=xe(),$=null;return g([l,y,C,E,D,O],()=>{V.value=1,$&&clearTimeout($),$=setTimeout(()=>Ze(R()),Je)},{deep:!0}),_(()=>{Ze(R()),it()}),(e,i)=>(w(),m(`div`,Oe,[c(`div`,ke,[c(`h2`,Ae,f(u(t)(`logs.title`)),1),h(u(x),{variant:`outline`,class:`text-destructive border-destructive hover:bg-destructive/10`,onClick:i[0]||=e=>W.value=!0},{default:n(()=>[p(f(u(t)(`logs.cleanupLogs`)),1)]),_:1})]),c(`div`,je,[c(`div`,Me,[(w(!0),m(d,null,v(u(o),e=>(w(),S(u(x),{key:e.value,variant:u(l)===e.value?`default`:`ghost`,size:`sm`,onClick:t=>l.value=e.value},{default:n(()=>[p(f(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),c(`div`,Ne,[h(u(B),{type:`datetime-local`,modelValue:u(y).start,"onUpdate:modelValue":i[1]||=e=>u(y).start=e,class:`w-44`},null,8,[`modelValue`]),i[18]||=c(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),h(u(B),{type:`datetime-local`,modelValue:u(y).end,"onUpdate:modelValue":i[2]||=e=>u(y).end=e,class:`w-44`},null,8,[`modelValue`]),u(y).start||u(y).end?(w(),S(u(x),{key:0,variant:`ghost`,size:`sm`,onClick:u(ge)},{default:n(()=>[p(f(u(t)(`logs.clear`)),1)]),_:1},8,[`onClick`])):s(``,!0),u(b)?(w(),m(`span`,Pe,f(u(b)),1)):s(``,!0)]),h(u(P),{modelValue:u(C),"onUpdate:modelValue":i[3]||=e=>r(C)?C.value=e:null},{default:n(()=>[h(u(L),{class:`w-28 truncate`},{default:n(()=>[h(u(N),{placeholder:u(t)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),h(u(F),null,{default:n(()=>[h(u(I),{value:`all`},{default:n(()=>[p(f(u(t)(`logs.allProviders`)),1)]),_:1}),(w(!0),m(d,null,v(u(te),e=>(w(),S(u(I),{key:e.id,value:e.id},{default:n(()=>[p(f(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),h(u(P),{modelValue:u(E),"onUpdate:modelValue":i[4]||=e=>r(E)?E.value=e:null},{default:n(()=>[h(u(L),{class:`w-32 truncate`},{default:n(()=>[h(u(N),{placeholder:u(t)(`logs.allModels`)},null,8,[`placeholder`])]),_:1}),h(u(F),null,{default:n(()=>[h(u(I),{value:`all`},{default:n(()=>[p(f(u(t)(`logs.allModels`)),1)]),_:1}),(w(!0),m(d,null,v(u(M),e=>(w(),S(u(I),{key:e,value:e},{default:n(()=>[p(f(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),h(u(P),{modelValue:u(D),"onUpdate:modelValue":i[5]||=e=>r(D)?D.value=e:null},{default:n(()=>[h(u(L),{class:`w-32 truncate`},{default:n(()=>[h(u(N),{placeholder:u(t)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),h(u(F),null,{default:n(()=>[h(u(I),{value:`all`},{default:n(()=>[p(f(u(t)(`logs.allKeys`)),1)]),_:1}),(w(!0),m(d,null,v(u(ne),e=>(w(),S(u(I),{key:e.id,value:e.id},{default:n(()=>[p(f(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),h(u(P),{modelValue:u(O),"onUpdate:modelValue":i[6]||=e=>r(O)?O.value=e:null},{default:n(()=>[h(u(L),{class:`w-28 truncate`},{default:n(()=>[h(u(N),{placeholder:u(t)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),h(u(F),null,{default:n(()=>[h(u(I),{value:`all`},{default:n(()=>[p(f(u(t)(`logs.allStatus`)),1)]),_:1}),h(u(I),{value:`200`},{default:n(()=>[...i[19]||=[p(`200`,-1)]]),_:1}),h(u(I),{value:`non200`},{default:n(()=>[p(f(u(t)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),c(`div`,Fe,[h(u(ae),null,{default:n(()=>[h(u(le),null,{default:n(()=>[h(u(A),{class:`bg-muted`},{default:n(()=>[h(u(k),{class:`w-10`}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.id`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.time`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.type`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.model`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.actualForward`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.statusCode`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.latency`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.streaming`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.retry`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.failover`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.error`)),1)]),_:1}),h(u(k),{class:`text-muted-foreground`},{default:n(()=>[p(f(u(t)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),h(u(ie),null,{default:n(()=>[(w(!0),m(d,null,v(u(z),e=>(w(),m(d,{key:e.id},[h(we,{log:e,expanded:u(K).has(e.id),onToggleExpand:u($e),onOpenDetail:u(et)},null,8,[`log`,`expanded`,`onToggleExpand`,`onOpenDetail`]),u(K).has(e.id)?(w(),m(d,{key:0},[u(Ee)[e.id]?(w(),S(u(A),{key:0},{default:n(()=>[h(u(j),{colspan:qe,class:`text-center py-2 pl-10`},{default:n(()=>[h(u(Se),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):u(q)[e.id]?.length?(w(!0),m(d,{key:1},v(u(q)[e.id],e=>(w(),S(we,{key:e.id,log:e,"is-child":!0,onOpenDetail:u(et)},null,8,[`log`,`onOpenDetail`]))),128)):s(``,!0)],64)):s(``,!0)],64))),128)),u(z).length===0?(w(),S(u(A),{key:0},{default:n(()=>[h(u(j),{colspan:qe,class:`text-center text-muted-foreground py-8`},{default:n(()=>[p(f(u(t)(`logs.noLogs`)),1)]),_:1})]),_:1})):s(``,!0)]),_:1})]),_:1})]),c(`div`,Ie,[c(`p`,Le,f(u(t)(`logs.pagination`,{total:u(be),page:u(V),totalPages:u(H)})),1),c(`div`,Re,[h(u(x),{variant:`outline`,size:`sm`,onClick:i[7]||=e=>u(Z)(1),disabled:u(V)<=1},{default:n(()=>[p(f(u(t)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),h(u(x),{variant:`outline`,size:`sm`,onClick:i[8]||=e=>u(Z)(u(V)-1),disabled:u(V)<=1},{default:n(()=>[p(f(u(t)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(w(!0),m(d,null,v(tt.value,e=>(w(),m(d,{key:e},[e===`...`?(w(),m(`span`,ze,`...`)):(w(),S(u(x),{key:1,variant:e===u(V)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>u(Z)(e)},{default:n(()=>[p(f(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),h(u(x),{variant:`outline`,size:`sm`,onClick:i[9]||=e=>u(Z)(u(V)+1),disabled:u(V)>=u(H)},{default:n(()=>[p(f(u(t)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),h(u(x),{variant:`outline`,size:`sm`,onClick:i[10]||=e=>u(Z)(u(H)),disabled:u(V)>=u(H)},{default:n(()=>[p(f(u(t)(`logs.lastPage`)),1)]),_:1},8,[`disabled`]),i[20]||=p(` > `,-1)])]),h(ee,{open:u(X),"onUpdate:open":i[11]||=e=>r(X)?X.value=e:null,source:`history`,"log-entry":u(Xe)},null,8,[`open`,`log-entry`]),h(u(se),{open:u(W),"onUpdate:open":i[15]||=e=>r(W)?W.value=e:null},{default:n(()=>[h(u(re),null,{default:n(()=>[h(u(oe),null,{default:n(()=>[h(u(ue),null,{default:n(()=>[p(f(u(t)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),c(`p`,Be,f(u(t)(`logs.cleanup.description`)),1),c(`div`,Ve,[h(u(de),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[p(f(u(t)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),h(u(B),{modelValue:u(U),"onUpdate:modelValue":i[12]||=e=>r(U)?U.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),h(u(T)),c(`div`,He,[c(`div`,Ue,f(u(t)(`logs.cleanup.autoCleanup`)),1),c(`div`,We,[h(u(de),{class:`whitespace-nowrap`},{default:n(()=>[p(f(u(t)(`logs.cleanup.retentionDays`)),1)]),_:1}),h(u(B),{type:`number`,modelValue:u(Q),"onUpdate:modelValue":i[13]||=e=>r(Q)?Q.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-20`},null,8,[`modelValue`]),c(`span`,Ge,f(u(t)(`logs.cleanup.noAutoCleanup`)),1)]),c(`div`,Ke,[h(u(x),{size:`sm`,onClick:u(rt),disabled:u(nt)},{default:n(()=>[p(f(u(t)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])])]),h(u(ce),null,{default:n(()=>[h(u(x),{variant:`outline`,onClick:i[14]||=e=>W.value=!1},{default:n(()=>[p(f(u(t)(`common.cancel`)),1)]),_:1}),h(u(x),{variant:`destructive`,onClick:u(Qe)},{default:n(()=>[p(f(u(t)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),h(u(me),{open:u(G),"onUpdate:open":i[17]||=e=>r(G)?G.value=e:null},{default:n(()=>[h(u(pe),null,{default:n(()=>[h(u(fe),null,{default:n(()=>[h(u(he),null,{default:n(()=>[p(f(u(t)(`logs.cleanupResult.title`)),1)]),_:1}),h(u(ve),null,{default:n(()=>[p(f(u(t)(`logs.cleanupResult.description`,{count:u(Ce)})),1)]),_:1})]),_:1}),h(u(_e),null,{default:n(()=>[h(u(ye),{onClick:i[16]||=e=>G.value=!1},{default:n(()=>[p(f(u(t)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{X as default};
@@ -1 +0,0 @@
1
- import{Bt as e,Ct as t,F as n,G as r,J as i,K as a,M as o,Q as s,Rt as c,U as l,Ut as u,X as d,Y as f,Z as p,ft as m,jt as h,n as g,q as _,ut as v}from"./button-DMmB7tDy.js";import{t as y}from"./trash-2-C8JRtoE6.js";import{i as b,n as x,r as S,t as C}from"./TooltipTrigger-BcM0p009.js";import{_ as w,tt as T,v as E,y as D}from"./index-QPBBCV_W.js";import{t as O}from"./Input-1iFstr5N.js";var k=o(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),A=o(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),j=o(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),M=o(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),N=[`onMouseenter`],P={class:`truncate max-w-40`},ee={key:0,class:`ml-1 text-[10px] px-1 py-px rounded bg-emerald-500/15 text-emerald-400 shrink-0`},F=[`onMouseenter`],I=[`onClick`],L={class:`truncate`},R={key:0,class:`shrink-0 text-xs text-muted-foreground`},z={key:0,class:`px-2 py-1.5 text-sm text-muted-foreground`},B=s({__name:`CascadingSelect`,props:{groups:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(o,{emit:s}){let{t:d}=n(),g=o,y=r(()=>g.placeholder||d(`common.selectPlaceholder`)),b=s,x=h(!1),S=h(null),C=r(()=>{if(!g.modelValue)return``;let e=g.groups.find(e=>e.key===g.modelValue.groupKey);if(!e)return``;let t=e.options.find(e=>e.value===g.modelValue.value);return t?`${e.label} / ${t.label}`:``});function O(e,t){b(`update:modelValue`,{groupKey:e,value:t}),x.value=!1}function k(e){x.value=e,e||(S.value=null)}return(n,r)=>(v(),_(c(D),{open:x.value,"onUpdate:open":k},{default:t(()=>[p(c(w),{"as-child":``},{default:t(()=>[a(`div`,{class:e([`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background cursor-pointer hover:bg-accent hover:text-accent-foreground`,[o.compact?`h-8 text-xs px-2.5 py-1`:`h-10 text-sm px-3 py-2`,{"ring-2 ring-ring ring-offset-2":x.value}]])},[a(`span`,{class:e([`truncate`,o.modelValue?`text-foreground`:`text-muted-foreground`])},u(C.value||y.value),3),p(c(T),{class:`h-4 w-4 shrink-0 opacity-50`})],2)]),_:1}),p(c(E),{align:`start`,"side-offset":4,class:`z-[200] w-auto min-w-56 overflow-visible p-1`},{default:t(()=>[(v(!0),f(l,null,m(o.groups,t=>(v(),f(`div`,{key:t.key,class:e([`relative flex cursor-pointer items-center justify-between rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground z-10":S.value===t.key}]),onMouseenter:e=>S.value=t.key},[a(`span`,P,u(t.label),1),t.badge?(v(),f(`span`,ee,u(t.badge),1)):i(``,!0),p(c(A),{class:`ml-1 h-4 w-4 shrink-0 opacity-50`}),S.value===t.key&&t.options.length>0?(v(),f(`div`,{key:1,class:`absolute left-full top-0 ml-0.5 min-w-48 rounded-md border bg-popover p-1 text-popover-foreground shadow-md`,onMouseenter:e=>S.value=t.key},[(v(!0),f(l,null,m(t.options,n=>(v(),f(`div`,{key:n.value,class:e([`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground":o.modelValue?.groupKey===t.key&&o.modelValue?.value===n.value}]),onClick:e=>O(t.key,n.value)},[a(`span`,L,u(n.label),1),n.tag?(v(),f(`span`,R,u(n.tag),1)):i(``,!0)],10,I))),128))],40,F)):i(``,!0)],42,N))),128)),o.groups.length===0?(v(),f(`div`,z,u(c(d)(`common.noOptions`)),1)):i(``,!0)]),_:1})]),_:1},8,[`open`]))}}),V=s({__name:`CascadingModelSelect`,props:{providers:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let{t:i}=n(),a=e,o=r(()=>a.placeholder||i(`mappings.selectProviderModel`)),s=t;function c(e){return e>=1e6?`${e/1e6}M`:`${e/1e3}K`}let l=r(()=>a.providers.map(e=>({key:e.provider.id,label:e.provider.name,badge:e.isNew?i(`common.new`):void 0,options:e.models.map(e=>({value:e.name,label:e.name,tag:c(e.contextWindow)}))}))),u=r(()=>a.modelValue?{groupKey:a.modelValue.provider_id,value:a.modelValue.model}:void 0);function d(e){s(`update:modelValue`,{provider_id:e.groupKey,model:e.value})}return(t,n)=>(v(),_(B,{groups:l.value,"model-value":u.value,placeholder:o.value,compact:e.compact,"onUpdate:modelValue":d},null,8,[`groups`,`model-value`,`placeholder`,`compact`]))}}),H={key:0,class:`flex items-start gap-3`},U=[`title`],W={class:`flex-1 flex flex-col gap-0 min-w-0`},G={class:`font-mono truncate`},K={class:`text-[10px] px-1 py-px rounded bg-muted/50 text-muted-foreground/50 ml-auto shrink-0`},q={key:0,class:`flex items-center gap-1 pl-5 py-0.5`},J={class:`text-[9px] text-orange-400/50`},Y={key:0,class:`flex items-center gap-1.5 mt-1 pt-1.5 border-t border-dashed border-primary/10`},X={class:`text-[10px] text-primary/30`},Z={class:`font-mono text-xs text-primary/50`},Q={key:1,class:`space-y-1.5`},te={key:0,class:`flex items-center gap-2`},ne={key:1,class:`flex items-center gap-2 px-2.5 py-1.5 rounded-md bg-muted/20 border border-border/50`},re={class:`font-mono text-sm font-medium text-foreground truncate`},ie={class:`flex items-center gap-2`},ae={class:`flex-1`},oe={key:0,class:`flex items-center gap-1 pl-8 py-0.5`},$={class:`text-[9px] text-orange-400/50`},se={class:`pt-2 mt-1 border-t border-dashed border-primary/15 space-y-1.5`},ce={key:0,class:`flex items-center gap-2`},le={class:`text-[10px] w-6 text-center px-1 py-0.5 rounded bg-primary/10 text-primary/70 shrink-0`},ue={class:`flex-1`},de={key:1,class:`flex items-center gap-1.5`},fe=s({__name:`MappingEntryEditor`,props:{entry:{},providerGroups:{},expanded:{type:Boolean},editable:{type:Boolean,default:!0},editableClientModel:{type:Boolean,default:!1}},emits:[`update:targets`,`update:clientModel`],setup(r,{emit:o}){let{t:s}=n(),h=r,w=o;function T(e){return h.providerGroups.find(t=>t.provider.id===e)?.provider.name??e.slice(0,6)}function E(){let e=h.providerGroups[0];w(`update:targets`,[...h.entry.targets,{backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``}])}function D(){let e=h.providerGroups[0];w(`update:targets`,h.entry.targets.map((t,n)=>n===0?{...t,overflow_provider_id:e?.provider.id??``,overflow_model:e?.models[0]?.name??``}:t))}function A(e){h.entry.targets.length<=1||w(`update:targets`,h.entry.targets.filter((t,n)=>n!==e))}function N(e,t){let n=[...h.entry.targets];n[e]={...n[e],provider_id:t.provider_id,backend_model:t.model},w(`update:targets`,n)}function P(e){w(`update:targets`,h.entry.targets.map((t,n)=>{if(n===0){if(e)return{...t,overflow_provider_id:e.provider_id,overflow_model:e.model};{let{overflow_provider_id:e,overflow_model:n,...r}=t;return r}}return t}))}return(n,o)=>(v(),f(`div`,null,[r.expanded?(v(),f(`div`,Q,[r.editableClientModel?(v(),f(`div`,te,[o[5]||=a(`span`,{class:`text-[10px] text-muted-foreground/60 shrink-0 w-6 text-center`},`Client`,-1),p(c(O),{"model-value":r.entry.clientModel,class:`h-7 flex-1 text-xs font-mono`,placeholder:c(s)(`providers.shared.clientModel`),"onUpdate:modelValue":o[0]||=e=>w(`update:clientModel`,String(e))},null,8,[`model-value`,`placeholder`])])):(v(),f(`div`,ne,[o[6]||=a(`span`,{class:`text-[10px] text-muted-foreground/60 shrink-0`},`Client`,-1),a(`span`,re,u(r.entry.clientModel),1)])),(v(!0),f(l,null,m(r.entry.targets,(n,l)=>(v(),f(`div`,{key:l},[a(`div`,ie,[a(`span`,{class:e([`text-xs font-medium shrink-0 w-6 text-center px-1 py-0.5 rounded`,l===0?`bg-primary/10 text-primary`:`bg-muted/30 text-muted-foreground`])},u(l===0?`①`:l===1?`②`:l===2?`③`:`${l+1}`),3),a(`div`,ae,[p(V,{providers:r.providerGroups,"model-value":{provider_id:n.provider_id,model:n.backend_model},compact:``,placeholder:c(s)(`providers.shared.selectModel`),"onUpdate:modelValue":e=>N(l,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),l>0&&r.entry.targets.length>1?(v(),_(c(g),{key:0,type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:e=>A(l)},{default:t(()=>[p(c(y),{class:`size-3`})]),_:1},8,[`onClick`])):i(``,!0)]),l<r.entry.targets.length-1?(v(),f(`div`,oe,[o[7]||=a(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),a(`span`,$,u(c(s)(`providers.shared.switchOnFail`)),1)])):i(``,!0)]))),128)),p(c(g),{type:`button`,variant:`ghost`,size:`sm`,class:`w-full text-xs text-muted-foreground/50`,onClick:E},{default:t(()=>[p(c(M),{class:`w-3 h-3 mr-1`}),d(` `+u(r.entry.targets.length===0?c(s)(`providers.shared.addMappingModel`):c(s)(`providers.shared.addFailover`)),1)]),_:1}),a(`div`,se,[r.entry.targets[0]?.overflow_model?(v(),f(`div`,ce,[a(`span`,le,u(c(s)(`providers.shared.overflow`)),1),a(`div`,ue,[p(V,{providers:r.providerGroups,"model-value":r.entry.targets[0]?.overflow_provider_id&&r.entry.targets[0]?.overflow_model?{provider_id:r.entry.targets[0].overflow_provider_id,model:r.entry.targets[0].overflow_model}:void 0,compact:``,placeholder:c(s)(`providers.shared.overflowPlaceholder`),"onUpdate:modelValue":o[1]||=e=>P(e)},null,8,[`providers`,`model-value`,`placeholder`])]),p(c(g),{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:o[2]||=e=>P(void 0)},{default:t(()=>[p(c(y),{class:`size-3`})]),_:1})])):(v(),f(`div`,de,[p(c(g),{type:`button`,variant:`ghost`,size:`sm`,class:`text-xs text-muted-foreground/50`,onClick:D},{default:t(()=>[p(c(M),{class:`w-3 h-3 mr-1`}),d(` `+u(c(s)(`providers.shared.addOverflow`)),1)]),_:1}),p(c(x),{"delay-duration":200},{default:t(()=>[p(c(b),null,{default:t(()=>[p(c(C),{"as-child":``},{default:t(()=>[p(c(j),{class:`size-3 text-muted-foreground/30 cursor-help`})]),_:1}),p(c(S),{side:`top`,class:`max-w-[240px] text-xs`},{default:t(()=>[d(u(c(s)(`providers.shared.overflowTooltip`)),1)]),_:1})]),_:1})]),_:1})]))])])):(v(),f(`div`,H,[a(`span`,{class:`min-w-[90px] font-mono text-sm font-semibold text-foreground shrink-0 truncate`,title:r.entry.clientModel},u(r.entry.clientModel),9,U),p(c(k),{class:`size-3.5 mt-0.5 shrink-0 text-muted-foreground/30`}),a(`div`,W,[(v(!0),f(l,null,m(r.entry.targets,(t,n)=>(v(),f(`div`,{key:n},[a(`div`,{class:e([`flex items-center gap-1.5 px-2.5 py-1 rounded-md text-sm`,n===0?`bg-primary/10 border border-primary/20 text-primary`:`bg-muted/30 border border-border text-muted-foreground`])},[a(`span`,{class:e([`text-[10px] font-semibold w-3.5 text-center`,n===0?`text-primary`:`text-muted-foreground`])},u(n===0?`①`:n===1?`②`:n===2?`③`:`${n+1}`),3),a(`span`,G,u(t.backend_model),1),a(`span`,K,u(T(t.provider_id)),1)],2),n<r.entry.targets.length-1?(v(),f(`div`,q,[o[3]||=a(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),a(`span`,J,u(c(s)(`providers.shared.switchOnFail`)),1)])):i(``,!0)]))),128)),r.entry.targets[0]?.overflow_model?(v(),f(`div`,Y,[o[4]||=a(`span`,{class:`text-[10px] text-primary/40 w-3.5 text-center`},`⤵`,-1),a(`span`,X,u(c(s)(`providers.shared.overflow`)),1),a(`span`,Z,u(r.entry.targets[0].overflow_model),1)])):i(``,!0)])]))]))}});export{M as n,k as r,fe as t};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,F as r,G as i,H as a,J as o,K as s,Q as c,Rt as l,U as u,Ut as d,X as f,Y as p,Z as m,bt as h,ct as g,ft as _,jt as v,k as y,n as b,q as x,ut as S}from"./button-DMmB7tDy.js";import{n as C,t as w}from"./MappingEntryEditor-B7cc69AQ.js";import{t as T}from"./trash-2-C8JRtoE6.js";import{t as E}from"./Switch-DXVDTQ8F.js";import{a as D,c as O,d as k,i as A,l as j,o as M,r as N,s as P}from"./index-QPBBCV_W.js";import"./constants-yM0YwP2s.js";var F={class:`flex-1 min-w-0`},I={class:`flex flex-col items-end gap-1.5 shrink-0 pt-0.5`},L={class:`flex items-center gap-2`},R={key:0,class:`text-[10px] px-1.5 py-0.5 rounded border border-orange-400/30 text-orange-400/60`},z={key:0,class:`flex items-center justify-end gap-2 px-4 py-2 border-t border-border/50`},B=c({__name:`ModelMappingCard`,props:{entry:{},providerGroups:{},editableClientModel:{type:Boolean},defaultExpanded:{type:Boolean,default:!1}},emits:[`saved`,`deleted`,`cancel-add`],setup(c,{emit:g}){let{t:_}=r(),C=c,B=g,V=v(``);h(()=>C.entry.clientModel,e=>{V.value=e},{immediate:!0});let H=v(C.defaultExpanded),U=v([]),W=v(!1),G=v(!1);h(H,e=>{e&&(U.value=C.entry.targets.map(e=>({...e})))}),h(()=>C.entry.targets,e=>{H.value&&(U.value=e.map(e=>({...e})))},{deep:!0});let K=i(()=>H.value?{...C.entry,targets:U.value}:C.entry);function q(e){U.value=e}function J(e){V.value=e}async function Y(){W.value=!0;try{let e=C.editableClientModel?V.value.trim():C.entry.clientModel;if(!e)return;let t=JSON.stringify({targets:U.value});C.entry.existingId?await y.updateMappingGroup(C.entry.existingId,{client_model:e,rule:t}):await y.createMappingGroup({client_model:e,rule:t}),H.value=!1,B(`saved`),N.success(_(`common.saveSuccess`))}catch(t){N.error(e(t,_(`mappings.messages.saveFailed`)))}finally{W.value=!1}}function X(){C.editableClientModel?B(`cancel-add`):H.value=!1}async function Z(){try{C.entry.existingId&&await y.toggleMappingGroup(C.entry.existingId),B(`saved`)}catch(t){N.error(e(t,_(`mappings.messages.toggleFailed`)))}}function Q(){G.value=!1,B(`deleted`,C.entry.clientModel)}return(e,r)=>(S(),p(u,null,[s(`div`,{class:t([`rounded-lg border transition-colors`,H.value?`border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`])},[s(`div`,{class:t([`flex items-start gap-2 px-4 py-3`,{"cursor-pointer":!H.value}]),onClick:r[2]||=e=>!H.value&&(H.value=!0)},[s(`div`,F,[m(w,{entry:K.value,"provider-groups":c.providerGroups,expanded:H.value,editable:!0,"editable-client-model":c.editableClientModel,"onUpdate:targets":q,"onUpdate:clientModel":J},null,8,[`entry`,`provider-groups`,`expanded`,`editable-client-model`])]),s(`div`,I,[s(`div`,L,[c.entry.targets.length>1?(S(),p(`span`,R,d(l(_)(`providers.shared.level`,{count:c.entry.targets.length})),1)):o(``,!0),c.editableClientModel?o(``,!0):(S(),x(l(b),{key:1,variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground/40 hover:text-destructive`,onClick:r[0]||=a(e=>G.value=!0,[`stop`])},{default:n(()=>[m(l(T),{class:`size-3`})]),_:1})),c.editableClientModel?o(``,!0):(S(),x(l(E),{key:2,"model-value":c.entry.active,"onUpdate:modelValue":Z,class:`scale-75`,onClick:r[1]||=a(()=>{},[`stop`])},null,8,[`model-value`]))])])],2),H.value?(S(),p(`div`,z,[m(l(b),{size:`sm`,variant:`outline`,onClick:X},{default:n(()=>[f(d(l(_)(`common.cancel`)),1)]),_:1}),m(l(b),{size:`sm`,disabled:W.value,onClick:Y},{default:n(()=>[f(d(W.value?l(_)(`common.saving`):l(_)(`common.save`)),1)]),_:1},8,[`disabled`])])):o(``,!0)],2),m(l(k),{open:G.value,"onUpdate:open":r[3]||=e=>{e||(G.value=!1)}},{default:n(()=>[m(l(O),null,{default:n(()=>[m(l(D),null,{default:n(()=>[m(l(A),null,{default:n(()=>[f(d(l(_)(`common.confirmDelete`)),1)]),_:1}),m(l(P),null,{default:n(()=>[f(d(l(_)(`mappings.confirmDeleteDesc`,{model:c.entry.clientModel})),1)]),_:1})]),_:1}),m(l(M),null,{default:n(()=>[m(l(j),null,{default:n(()=>[f(d(l(_)(`common.cancel`)),1)]),_:1}),m(l(b),{variant:`destructive`,onClick:Q},{default:n(()=>[f(d(l(_)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))}}),V={class:`p-6 space-y-3`},H={class:`flex items-center justify-between`},U={class:`text-lg font-semibold text-foreground`},W={class:`flex gap-2 mt-1`},G={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},K={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},q={class:`grid grid-cols-3 gap-3`},J={key:0,class:`py-8 text-center text-xs text-muted-foreground`},Y=c({__name:`ModelMappings`,setup(t){let{t:a}=r(),c=v([]),h=v([]),w=v([]),T=v(!1),E=i(()=>w.value.filter(e=>e.active).length),D=i(()=>h.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))}))),O=i(()=>({clientModel:``,targets:[{backend_model:``,provider_id:h.value[0]?.id??``}],existing:!1,tag:`cust`,active:!0}));function k(){return c.value.map(e=>{let t={};try{let n=JSON.parse(e.rule);t=n.default&&!n.targets?{targets:[n.default]}:n}catch(e){console.warn(`Failed to parse rule:`,e)}let n=(t.targets??[]).map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||``,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model}));return{clientModel:e.client_model,targets:n.length>0?n:[{backend_model:``,provider_id:h.value[0]?.id??``}],existing:!0,existingId:e.id,tag:`existing`,active:!!e.is_active,originalActive:!!e.is_active}})}async function A(){let e=await Promise.allSettled([y.getMappingGroups(),y.getProviders()]);e[0].status===`fulfilled`&&(c.value=e[0].value),e[1].status===`fulfilled`&&(h.value=e[1].value),w.value=k()}function j(){T.value=!1,A()}async function M(t){let n=w.value.find(e=>e.clientModel===t);if(n?.existingId)try{await y.deleteMappingGroup(n.existingId),await A(),N.success(a(`common.saveSuccess`))}catch(n){N.error(e(n,a(`mappings.messages.deleteFailed`,{model:t})))}}return g(A),(e,t)=>(S(),p(`div`,V,[s(`div`,H,[s(`div`,null,[s(`h2`,U,d(l(a)(`mappings.title`)),1),s(`div`,W,[s(`span`,G,d(l(a)(`mappings.totalMappings`,{count:w.value.length})),1),s(`span`,K,d(l(a)(`mappings.enabledCount`,{count:E.value})),1)])]),T.value?o(``,!0):(S(),x(l(b),{key:0,size:`sm`,variant:`outline`,onClick:t[0]||=e=>T.value=!0},{default:n(()=>[m(l(C),{class:`w-3.5 h-3.5 mr-1`}),f(` `+d(l(a)(`providers.shared.add`)),1)]),_:1}))]),s(`div`,q,[(S(!0),p(u,null,_(w.value,e=>(S(),x(B,{key:e.clientModel,entry:e,"provider-groups":D.value,onSaved:A,onDeleted:M},null,8,[`entry`,`provider-groups`]))),128)),T.value?(S(),x(B,{key:0,entry:O.value,"provider-groups":D.value,"editable-client-model":!0,"default-expanded":!0,onSaved:j,onCancelAdd:t[1]||=e=>T.value=!1},null,8,[`entry`,`provider-groups`])):o(``,!0)]),w.value.length===0&&!T.value?(S(),p(`p`,J,d(l(a)(`providers.shared.noMappings`)),1)):o(``,!0)]))}});export{Y as default};
@@ -1 +0,0 @@
1
- import{Bt as e,Ct as t,Dt as n,F as r,G as i,H as a,Ht as o,J as s,K as c,Q as l,Rt as u,U as d,Ut as f,X as p,Y as m,Z as h,bt as g,ct as _,ft as v,jt as y,k as b,lt as x,n as S,q as C,ut as w}from"./button-DMmB7tDy.js";import{n as T,t as ee}from"./UnifiedRequestDialog-DniIXKEa.js";import{t as E}from"./copy-3gKHS1GQ.js";import{i as D,n as O,r as k,t as A}from"./TooltipTrigger-BcM0p009.js";import{c as j,d as te,f as M,l as N,s as P,u as F}from"./dialog-B68sJflZ.js";import{b as I,ct as L,nt as R}from"./index-QPBBCV_W.js";import{n as z,t as B}from"./CardContent-DpdNrtkG.js";import{n as V,t as H}from"./CardTitle-mrTD9vua.js";import{t as ne}from"./useClipboard-Df2zt0gp.js";var U={class:`grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6`},W={class:`text-sm text-muted-foreground`},G={class:`text-2xl font-bold text-foreground mt-1`},K={class:`text-xs text-muted-foreground mt-1`},q={class:`text-sm text-muted-foreground`},re={class:`text-2xl font-bold text-foreground mt-1`},ie={class:`text-xs text-muted-foreground mt-1`},ae={class:`text-sm text-muted-foreground`},oe={class:`text-2xl font-bold text-foreground mt-1`},J={class:`text-xs text-muted-foreground mt-1`},Y={class:`text-sm text-muted-foreground`},X={class:`text-2xl font-bold text-foreground mt-1`},Z={class:`text-xs text-muted-foreground mt-1`},se=l({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{}},setup(e){let{t:n}=r(),a=e,o=i(()=>!a.stats||a.stats.totalRequests===0?`0.0`:(a.stats.errorCount/a.stats.totalRequests*100).toFixed(1)),s=i(()=>!a.stats||a.stats.totalRequests===0?`0.0`:(a.stats.retryCount/a.stats.totalRequests*100).toFixed(1)),l=i(()=>a.stats?a.stats.p50LatencyMs.toFixed(0):`--`);return(r,i)=>(w(),m(`div`,U,[h(u(z),null,{default:t(()=>[h(u(B),{class:`p-4`},{default:t(()=>[c(`p`,W,f(u(n)(`monitor.header.activeRequests`)),1),c(`p`,G,f(e.activeCount),1),c(`p`,K,f(u(n)(`monitor.header.streamNonStream`,{stream:e.streamCount,nonStream:e.activeCount-e.streamCount})),1)]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(B),{class:`p-4`},{default:t(()=>[c(`p`,q,f(u(n)(`monitor.header.errorRate`)),1),c(`p`,re,f(o.value)+`%`,1),c(`p`,ie,f(e.stats?.errorCount??0)+` / `+f(e.stats?.totalRequests??0),1)]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(B),{class:`p-4`},{default:t(()=>[c(`p`,ae,f(u(n)(`monitor.header.p50Latency`)),1),c(`p`,oe,f(l.value)+`ms`,1),c(`p`,J,f(u(n)(`monitor.header.avgLatency`,{value:e.stats?.avgLatencyMs?.toFixed(0)??`--`})),1)]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(B),{class:`p-4`},{default:t(()=>[c(`p`,Y,f(u(n)(`monitor.header.retryRate`)),1),c(`p`,X,f(s.value)+`%`,1),c(`p`,Z,f(e.stats?.retryCount??0)+` / `+f(e.stats?.totalRequests??0),1)]),_:1})]),_:1})]))}}),Q={class:`space-y-3`},ce={key:0,class:`text-sm text-muted-foreground`},le={class:`flex items-center justify-between text-sm`},ue={class:`font-medium text-foreground`},de={class:`text-muted-foreground`},fe={class:`text-xs`},pe={key:0,class:`h-2 bg-muted rounded-full overflow-hidden`},me={key:1,class:`flex gap-3 text-xs text-muted-foreground`},he=l({__name:`ConcurrencyPanel`,props:{providers:{}},setup(t){let{t:n}=r();function i(e){return e.adaptiveLimit??e.maxConcurrency}function a(e,t){let n=e/t;return n>=1?`bg-red-500`:n>=.8?`bg-orange-500`:n>=.5?`bg-yellow-500`:`bg-green-500`}return(r,l)=>(w(),m(`div`,Q,[t.providers.length===0?(w(),m(`div`,ce,f(u(n)(`monitor.concurrencyPanel.noData`)),1)):s(``,!0),(w(!0),m(d,null,v(t.providers,t=>(w(),m(`div`,{key:t.providerId,class:`space-y-1`},[c(`div`,le,[c(`span`,ue,f(t.providerName),1),c(`span`,de,[t.adaptiveEnabled?(w(),m(d,{key:0},[p(f(t.active)+` / `+f(t.adaptiveLimit??t.maxConcurrency)+` `,1),c(`span`,fe,`(`+f(u(n)(`monitor.concurrencyPanel.adaptive`))+`)`,1)],64)):t.maxConcurrency===0?(w(),m(d,{key:1},[p(f(u(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(w(),m(d,{key:2},[p(f(t.active)+` / `+f(t.maxConcurrency),1)],64))])]),t.maxConcurrency>0?(w(),m(`div`,pe,[c(`div`,{class:e([`h-full rounded-full transition-all duration-300`,a(t.active,i(t))]),style:o({width:`${Math.min(100,t.active/i(t)*100)}%`})},null,6)])):s(``,!0),t.maxConcurrency>0?(w(),m(`div`,me,[c(`span`,null,f(u(n)(`monitor.concurrencyPanel.queued`,{count:t.queued})),1),c(`span`,null,f(u(n)(`monitor.concurrencyPanel.queueLimit`,{limit:t.adaptiveLimit??t.maxQueueSize})),1)])):s(``,!0)]))),128))]))}}),ge={key:0,class:`text-sm text-muted-foreground`},_e={key:1,class:`grid grid-cols-2 gap-3 text-sm`},ve={class:`text-muted-foreground`},ye={class:`font-medium text-foreground`},be={class:`text-muted-foreground`},xe={class:`font-medium text-foreground`},Se={class:`col-span-2`},Ce={class:`flex items-center justify-between`},we={class:`text-muted-foreground`},Te={class:`text-muted-foreground`},Ee={class:`h-2 bg-muted rounded-full overflow-hidden mt-1`},De={class:`text-muted-foreground`},Oe={class:`font-medium text-foreground`},ke={class:`text-muted-foreground`},Ae={class:`font-medium text-foreground`},je={class:`col-span-2`},Me={class:`text-muted-foreground`},Ne={class:`font-medium text-foreground`},Pe=l({__name:`RuntimePanel`,props:{runtime:{}},setup(e){let{t}=r(),n=e,a=i(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(100,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*100));function s(e){let t=Math.floor(e/1e3);return`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m ${t%60}s`}function l(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}return(n,r)=>e.runtime?(w(),m(`div`,_e,[c(`div`,null,[c(`p`,ve,f(u(t)(`monitor.runtimePanel.uptime`)),1),c(`p`,ye,f(s(e.runtime.uptimeMs)),1)]),c(`div`,null,[c(`p`,be,f(u(t)(`monitor.runtimePanel.memoryRss`)),1),c(`p`,xe,f(l(e.runtime.memoryUsage.rss)),1)]),c(`div`,Se,[c(`div`,Ce,[c(`p`,we,f(u(t)(`monitor.runtimePanel.heapUsage`)),1),c(`p`,Te,f(l(e.runtime.memoryUsage.heapUsed))+` / `+f(l(e.runtime.memoryUsage.heapTotal)),1)]),c(`div`,Ee,[c(`div`,{class:`h-full bg-primary rounded-full transition-all duration-300`,style:o({width:`${a.value}%`})},null,4)])]),c(`div`,null,[c(`p`,De,f(u(t)(`monitor.runtimePanel.activeHandles`)),1),c(`p`,Oe,f(e.runtime.activeHandles),1)]),c(`div`,null,[c(`p`,ke,f(u(t)(`monitor.runtimePanel.activeRequests`)),1),c(`p`,Ae,f(e.runtime.activeRequests),1)]),c(`div`,je,[c(`p`,Me,f(u(t)(`monitor.runtimePanel.eventLoopDelay`)),1),c(`p`,Ne,f(e.runtime.eventLoopDelayMs.toFixed(2))+`ms`,1)])])):(w(),m(`div`,ge,f(u(t)(`monitor.runtimePanel.noData`)),1))}}),Fe={key:0,class:`text-sm text-muted-foreground`},Ie={key:1,class:`space-y-2`},Le={class:`flex items-center justify-between text-sm`},Re={class:`text-muted-foreground`},ze={class:`h-2 bg-muted rounded-full overflow-hidden`},Be=l({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(t){let{t:n}=r(),a=t,s=i(()=>Object.values(a.byStatusCode).reduce((e,t)=>e+t,0)),l=i(()=>{let e=a.byStatusCode,t=s.value||1,r=p(e,200,299),i=p(e,400,499)-(e[429]||0),o=e[429]||0,c=p(e,500,599);return[{label:n(`monitor.statusCodes.success`),count:r,percent:(r/t*100).toFixed(1),textClass:`text-green-600 dark:text-green-400`,barClass:`bg-green-500`},{label:n(`monitor.statusCodes.clientError`),count:i,percent:(i/t*100).toFixed(1),textClass:`text-yellow-600 dark:text-yellow-400`,barClass:`bg-yellow-500`},{label:n(`monitor.statusCodes.rateLimited`),count:o,percent:(o/t*100).toFixed(1),textClass:`text-orange-600 dark:text-orange-400`,barClass:`bg-orange-500`},{label:n(`monitor.statusCodes.serverError`),count:c,percent:(c/t*100).toFixed(1),textClass:`text-red-600 dark:text-red-400`,barClass:`bg-red-500`}].filter(e=>e.count>0)});function p(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(t,r)=>s.value===0?(w(),m(`div`,Fe,f(u(n)(`monitor.statusCodes.noData`)),1)):(w(),m(`div`,Ie,[(w(!0),m(d,null,v(l.value,t=>(w(),m(`div`,{key:t.label,class:`space-y-1`},[c(`div`,Le,[c(`span`,{class:e(t.textClass)},f(t.label),3),c(`span`,Re,f(t.count)+` (`+f(t.percent)+`%) `,1)]),c(`div`,ze,[c(`div`,{class:e([`h-full rounded-full transition-all duration-300`,t.barClass]),style:o({width:`${t.percent}%`})},null,6)])]))),128))]))}}),Ve={key:0,class:`text-sm text-muted-foreground py-4 text-center`},He={key:1,class:`text-sm text-muted-foreground py-4 text-center`},Ue={class:`flex flex-wrap gap-1`},We={key:0,class:`text-xs text-muted-foreground`},Ge=l({__name:`ProviderStatsTable`,props:{stats:{}},setup(n){let{t:a}=r(),o=n,l=i(()=>o.stats?Object.entries(o.stats.byProvider).filter(([e])=>typeof e==`string`).map(([e,t])=>({id:e,name:t.providerName,stats:t,successRate:t.totalRequests>0?t.successCount/t.totalRequests*100:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*100:0})):[]);return(r,i)=>n.stats?l.value.length===0?(w(),m(`div`,He,f(u(a)(`monitor.providerTable.noProviders`)),1)):(w(),C(u(M),{key:2},{default:t(()=>[h(u(P),null,{default:t(()=>[h(u(N),null,{default:t(()=>[h(u(j),null,{default:t(()=>[...i[0]||=[p(`Provider`,-1)]]),_:1}),h(u(j),{class:`text-right`},{default:t(()=>[p(f(u(a)(`monitor.providerTable.requests`)),1)]),_:1}),h(u(j),{class:`text-right`},{default:t(()=>[p(f(u(a)(`monitor.providerTable.successRate`)),1)]),_:1}),h(u(j),{class:`text-right`},{default:t(()=>[p(f(u(a)(`monitor.providerTable.avgLatency`)),1)]),_:1}),h(u(j),{class:`text-right`},{default:t(()=>[p(f(u(a)(`monitor.providerTable.retryRate`)),1)]),_:1}),h(u(j),null,{default:t(()=>[p(f(u(a)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),h(u(te),null,{default:t(()=>[(w(!0),m(d,null,v(l.value,n=>(w(),C(u(N),{key:n.id},{default:t(()=>[h(u(F),{class:`font-medium`},{default:t(()=>[p(f(n.name),1)]),_:2},1024),h(u(F),{class:`text-right`},{default:t(()=>[p(f(n.stats.totalRequests),1)]),_:2},1024),h(u(F),{class:`text-right`},{default:t(()=>[c(`span`,{class:e(n.successRate>=95?`text-green-600 dark:text-green-400`:n.successRate>=80?`text-yellow-600 dark:text-yellow-400`:`text-red-500 dark:text-red-400`)},f(n.successRate.toFixed(1))+`% `,3)]),_:2},1024),h(u(F),{class:`text-right`},{default:t(()=>[p(f(n.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),h(u(F),{class:`text-right`},{default:t(()=>[c(`span`,{class:e(n.retryRate>10?`text-yellow-600 dark:text-yellow-400`:``)},f(n.retryRate.toFixed(1))+`% `,3)]),_:2},1024),h(u(F),null,{default:t(()=>[c(`div`,Ue,[(w(!0),m(d,null,v(n.stats.topErrors.slice(0,3),e=>(w(),C(u(I),{key:e.code,variant:`destructive`,class:`text-xs`},{default:t(()=>[p(f(e.code)+` (`+f(e.count)+`) `,1)]),_:2},1024))),128)),n.stats.topErrors.length===0?(w(),m(`span`,We,`--`)):s(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(w(),m(`div`,Ve,f(u(a)(`monitor.providerTable.noData`)),1))}});function Ke(e,t,n){let r=null,i=null;function a(){if(!r){r=new EventSource(e),r.onopen=()=>{n?.onOpen?.()};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{o(),n?.onClose?.(),i=setTimeout(a,3e3)}}}function o(){i&&=(clearTimeout(i),null),r&&=(r.close(),null)}return x(()=>{o(),n?.onClose?.()}),{connect:a,disconnect:o}}var qe=200;function Je(){let e=y([]),t=y([]),n=y(null),r=y([]),a=y(null),o=y(!1),s=i(()=>e.value.filter(e=>e.isStream).length),c=i(()=>e.value.filter(e=>!e.queued)),l=i(()=>e.value.filter(e=>e.queued===!0));function u(i){let o;try{o=JSON.parse(i.data)}catch{return}switch(i.type){case`request_start`:{let n=o;t.value.some(e=>e.id===n.id)||e.value.unshift(n);break}case`request_update`:e.value=o;break;case`request_complete`:{let n=o;e.value=e.value.filter(e=>e.id!==n.id),t.value.unshift(n),t.value.length>qe&&(t.value.length=qe);break}case`concurrency_update`:r.value=o;break;case`stats_update`:n.value=o;break;case`stream_content_update`:{let t=o;for(let n of t){let t=e.value.find(e=>e.id===n.id);t&&(n.streamContent&&(t.streamContent=n.streamContent),n.streamMetrics&&(t.streamMetrics=n.streamMetrics))}break}case`runtime_update`:a.value=o;break}}function d(){o.value=!0}function f(){o.value=!1}async function p(){try{let[i,o,s,c,l]=await Promise.allSettled([b.getMonitorActive(),b.getMonitorRecent(),b.getMonitorStats(),b.getMonitorConcurrency(),b.getMonitorRuntime()]);i.status===`fulfilled`&&(e.value=i.value),o.status===`fulfilled`&&(t.value=o.value),s.status===`fulfilled`&&(n.value=s.value),c.status===`fulfilled`&&(r.value=c.value),l.status===`fulfilled`&&(a.value=l.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),n.value=null,r.value=[],a.value=null}}let m=y(null),h=y(!1),_=y(0);async function v(n){let r=++_.value,i=e.value.find(e=>e.id===n)??t.value.find(e=>e.id===n);if(!i){m.value=null;return}m.value=null,h.value=!0;try{if(i.status===`pending`){try{let e=await b.getMonitorRequest(n);if(r!==_.value)return;m.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==404)throw e;if(r!==_.value)return;let t=await b.getLogDetail(n);if(r!==_.value)return;m.value=t.client_request?{clientRequest:t.client_request}:null}return}let e=await b.getLogDetail(n);if(r!==_.value)return;let t;if(!i.isStream){let n=e.upstream_response;if(n)try{let e=JSON.parse(n);t=(typeof e.body==`string`?e.body:n)??void 0}catch{t=n}}m.value={responseBody:t,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==_.value)return;console.warn(`Failed to load log detail:`,e),m.value=null}finally{r===_.value&&(h.value=!1)}}let x=y(null),S=y(!1);function C(e){x.value=e,S.value=!0,v(e)}let w=i(()=>x.value?e.value.find(e=>e.id===x.value)??t.value.find(e=>e.id===x.value)??null:null);return g(()=>w.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&v(x.value)}),{activeRequests:e,recentCompleted:t,stats:n,concurrency:r,runtime:a,connected:o,streamCount:s,streamingRequests:c,queuedRequests:l,selectedRequestId:x,selectedRequest:w,requestDetailOpen:S,selectRequest:C,logDetailData:m,nonStreamBodyLoading:h,handleSSEMessage:u,handleSSEOpen:d,handleSSEClose:f,loadInitialData:p}}function Ye(e){switch(e){case`pending`:return`default`;case`failed`:return`destructive`;case`completed`:return`secondary`;default:return`outline`}}function Xe(e){let{t}=L.global;switch(e){case`pending`:return t(`common.statusPending`);case`failed`:return t(`common.statusFailed`);case`completed`:return t(`common.statusCompleted`);default:return e}}var Ze={class:`p-6`},Qe={class:`flex items-center justify-between mb-4`},$e={class:`text-lg font-semibold text-foreground`},et={class:`flex items-center gap-2`},tt={class:`grid grid-cols-3 gap-4 mb-6`},nt={class:`flex items-center justify-between`},rt={key:0,class:`text-sm text-muted-foreground py-2`},it=[`onClick`],at={class:`text-sm text-foreground truncate flex-1`},ot={class:`text-xs text-muted-foreground shrink-0`},st={class:`flex items-center justify-between`},ct={key:0,class:`text-sm text-muted-foreground py-2`},lt=[`onClick`],ut={class:`text-sm text-foreground truncate flex-1`},dt={class:`text-xs text-muted-foreground shrink-0`},ft={class:`flex items-center justify-between`},pt={key:0,class:`text-sm text-muted-foreground py-2`},mt=[`onClick`],ht={class:`text-sm text-foreground truncate flex-1`},gt={class:`text-xs text-muted-foreground shrink-0`},_t={class:`grid grid-cols-1 lg:grid-cols-3 gap-4`},$=1e3,vt=l({__name:`Monitor`,setup(i){let{t:o}=r(),{activeRequests:l,recentCompleted:g,stats:b,concurrency:j,runtime:te,connected:M,streamCount:N,streamingRequests:P,queuedRequests:F,selectedRequestId:L,selectedRequest:U,requestDetailOpen:W,selectRequest:G,logDetailData:K,handleSSEMessage:q,handleSSEOpen:re,handleSSEClose:ie,loadInitialData:ae}=Je(),{connect:oe}=Ke(`/admin/api/monitor/stream`,{request_start:q,request_update:q,request_complete:q,concurrency_update:q,stats_update:q,runtime_update:q,stream_content_update:q},{onOpen:re,onClose:ie}),{copied:J,copy:Y}=ne(),X=y(Date.now()),Z=null;function Q(e){return((X.value-e)/$).toFixed(1)}function ce(e){return e.completedAt?((e.completedAt-e.startTime)/$).toFixed(1)+`s`:`--`}return _(async()=>{await ae(),oe(),Z=setInterval(()=>{X.value=Date.now()},$)}),x(()=>{Z&&=(clearInterval(Z),null)}),(r,i)=>(w(),m(`div`,Ze,[c(`div`,Qe,[c(`h2`,$e,f(u(o)(`monitor.title`)),1),c(`div`,et,[h(u(I),{variant:u(M)?`default`:`destructive`},{default:t(()=>[p(f(u(M)?u(o)(`monitor.connected`):u(o)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])])]),h(se,{stats:u(b),"active-count":u(l).length,"stream-count":u(N)},null,8,[`stats`,`active-count`,`stream-count`]),c(`div`,tt,[h(u(z),null,{default:t(()=>[h(u(V),{class:`pb-2`},{default:t(()=>[c(`div`,nt,[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.activeRequests`)),1)]),_:1}),h(u(I),{variant:`secondary`},{default:t(()=>[p(f(u(P).length),1)]),_:1})])]),_:1}),h(u(B),null,{default:t(()=>[h(u(T),{class:`h-64`},{default:t(()=>[u(P).length===0?(w(),m(`div`,rt,f(u(o)(`monitor.noActiveRequests`)),1)):s(``,!0),(w(!0),m(d,null,v(u(P),n=>(w(),m(`div`,{key:n.id,class:e([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":u(L)===n.id}]),onClick:e=>u(G)(n.id)},[h(u(I),{variant:u(Ye)(n.status),class:`shrink-0`},{default:t(()=>[p(f(u(Xe)(n.status)),1)]),_:2},1032,[`variant`]),c(`span`,at,f(n.model),1),h(u(I),{variant:`outline`,class:`shrink-0 text-xs`},{default:t(()=>[p(f(n.providerName),1)]),_:2},1024),c(`span`,ot,f(Q(n.startTime))+`s`,1),n.isStream?(w(),C(u(I),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:t(()=>[...i[1]||=[p(`SSE`,-1)]]),_:1})):s(``,!0),h(u(O),{"delay-duration":300},{default:t(()=>[h(u(D),null,{default:t(()=>[h(u(A),{"as-child":``},{default:t(()=>[h(u(S),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:a(e=>u(Y)(n.id),[`stop`])},{default:t(()=>[u(J)?(w(),C(u(R),{key:0,class:`size-3 text-success`})):(w(),C(u(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),h(u(k),null,{default:t(()=>[p(f(u(o)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)]),_:2},1024)],10,it))),128))]),_:1})]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(V),{class:`pb-2`},{default:t(()=>[c(`div`,st,[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.queuedRequests`)),1)]),_:1}),h(u(I),{variant:`secondary`},{default:t(()=>[p(f(u(F).length),1)]),_:1})])]),_:1}),h(u(B),null,{default:t(()=>[h(u(T),{class:`h-64`},{default:t(()=>[u(F).length===0?(w(),m(`div`,ct,f(u(o)(`monitor.noQueuedRequests`)),1)):s(``,!0),(w(!0),m(d,null,v(u(F),n=>(w(),m(`div`,{key:n.id,class:e([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":u(L)===n.id}]),onClick:e=>u(G)(n.id)},[h(u(I),{variant:`outline`,class:`shrink-0`},{default:t(()=>[p(f(u(o)(`monitor.queued`)),1)]),_:1}),c(`span`,ut,f(n.model),1),h(u(I),{variant:`outline`,class:`shrink-0 text-xs`},{default:t(()=>[p(f(n.providerName),1)]),_:2},1024),c(`span`,dt,f(Q(n.startTime))+`s`,1),h(u(O),{"delay-duration":300},{default:t(()=>[h(u(D),null,{default:t(()=>[h(u(A),{"as-child":``},{default:t(()=>[h(u(S),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:a(e=>u(Y)(n.id),[`stop`])},{default:t(()=>[u(J)?(w(),C(u(R),{key:0,class:`size-3 text-success`})):(w(),C(u(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),h(u(k),null,{default:t(()=>[p(f(u(o)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)]),_:2},1024)],10,lt))),128))]),_:1})]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(V),{class:`pb-2`},{default:t(()=>[c(`div`,ft,[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.completed`)),1)]),_:1}),h(u(I),{variant:`secondary`},{default:t(()=>[p(f(u(g).length),1)]),_:1})])]),_:1}),h(u(B),null,{default:t(()=>[h(u(T),{class:`h-64`},{default:t(()=>[u(g).length===0?(w(),m(`div`,pt,f(u(o)(`monitor.noCompletedRequests`)),1)):s(``,!0),(w(!0),m(d,null,v(u(g),n=>(w(),m(`div`,{key:n.id,class:e([`flex items-center gap-2 py-1.5 px-2 rounded cursor-pointer opacity-60 hover:opacity-80 hover:bg-muted/50 transition-colors`,{"bg-muted":u(L)===n.id}]),onClick:e=>u(G)(n.id)},[h(u(I),{variant:u(Ye)(n.status),class:`shrink-0`},{default:t(()=>[p(f(u(Xe)(n.status)),1)]),_:2},1032,[`variant`]),c(`span`,ht,f(n.model),1),h(u(I),{variant:`outline`,class:`shrink-0 text-xs`},{default:t(()=>[p(f(n.providerName),1)]),_:2},1024),n.isStream?(w(),C(u(I),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:t(()=>[...i[2]||=[p(`SSE`,-1)]]),_:1})):s(``,!0),c(`span`,gt,f(ce(n)),1),h(u(O),{"delay-duration":300},{default:t(()=>[h(u(D),null,{default:t(()=>[h(u(A),{"as-child":``},{default:t(()=>[h(u(S),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:a(e=>u(Y)(n.id),[`stop`])},{default:t(()=>[u(J)?(w(),C(u(R),{key:0,class:`size-3 text-success`})):(w(),C(u(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),h(u(k),null,{default:t(()=>[p(f(u(o)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)]),_:2},1024)],10,mt))),128))]),_:1})]),_:1})]),_:1})]),h(u(z),{class:`mb-4`},{default:t(()=>[h(u(V),null,{default:t(()=>[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.providerStats`)),1)]),_:1})]),_:1}),h(u(B),null,{default:t(()=>[h(Ge,{stats:u(b)},null,8,[`stats`])]),_:1})]),_:1}),c(`div`,_t,[h(u(z),null,{default:t(()=>[h(u(V),null,{default:t(()=>[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.concurrency`)),1)]),_:1})]),_:1}),h(u(B),null,{default:t(()=>[h(he,{providers:u(j)},null,8,[`providers`])]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(V),null,{default:t(()=>[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.statusCodeDistribution`)),1)]),_:1})]),_:1}),h(u(B),null,{default:t(()=>[h(Be,{"by-status-code":u(b)?.byStatusCode??{}},null,8,[`by-status-code`])]),_:1})]),_:1}),h(u(z),null,{default:t(()=>[h(u(V),null,{default:t(()=>[h(u(H),{class:`text-sm font-medium text-foreground`},{default:t(()=>[p(f(u(o)(`monitor.runtime`)),1)]),_:1})]),_:1}),h(u(B),null,{default:t(()=>[h(Pe,{runtime:u(te)},null,8,[`runtime`])]),_:1})]),_:1})]),h(ee,{open:u(W),"onUpdate:open":i[0]||=e=>n(W)?W.value=e:null,source:`realtime`,request:u(U),"stream-content":u(U)?.streamContent,"log-detail-data":u(K)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`])]))}});export{vt as default};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,F as r,G as i,H as a,J as o,K as s,M as ee,Q as te,Rt as c,U as l,Ut as u,V as ne,X as d,Y as f,Z as p,ct as re,ft as m,ht as ie,jt as h,k as g,n as _,q as v,ut as y}from"./button-DMmB7tDy.js";import{t as ae}from"./copy-3gKHS1GQ.js";import{a as oe,c as b,d as se,f as ce,l as le,n as ue,o as de,r as fe,s as pe,t as me,u as x}from"./dialog-B68sJflZ.js";import{t as he}from"./Label-CRw4oQf2.js";import{a as ge,b as _e,c as ve,d as ye,f as be,g as xe,h as Se,i as Ce,l as we,m as S,nt as Te,o as Ee,p as De,r as C,s as Oe,u as ke}from"./index-QPBBCV_W.js";import{t as Ae}from"./Input-1iFstr5N.js";import{t as je}from"./constants-yM0YwP2s.js";import{i as Me,t as Ne}from"./ModelCard-PiwXmas-.js";import{n as Pe,t as Fe}from"./TransformRulesForm-BhiHKW55.js";var Ie=ee(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),w;(function(e){e.assertEqual=e=>{};function t(e){}e.assertIs=t;function n(e){throw Error()}e.assertNever=n,e.arrayToEnum=e=>{let t={};for(let n of e)t[n]=n;return t},e.getValidEnumValues=t=>{let n=e.objectKeys(t).filter(e=>typeof t[t[e]]!=`number`),r={};for(let e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys=typeof Object.keys==`function`?e=>Object.keys(e):e=>{let t=[];for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(let n of e)if(t(n))return n},e.isInteger=typeof Number.isInteger==`function`?e=>Number.isInteger(e):e=>typeof e==`number`&&Number.isFinite(e)&&Math.floor(e)===e;function r(e,t=` | `){return e.map(e=>typeof e==`string`?`'${e}'`:e).join(t)}e.joinValues=r,e.jsonStringifyReplacer=(e,t)=>typeof t==`bigint`?t.toString():t})(w||={});var Le;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Le||={});var T=w.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),E=e=>{switch(typeof e){case`undefined`:return T.undefined;case`string`:return T.string;case`number`:return Number.isNaN(e)?T.nan:T.number;case`boolean`:return T.boolean;case`function`:return T.function;case`bigint`:return T.bigint;case`symbol`:return T.symbol;case`object`:return Array.isArray(e)?T.array:e===null?T.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?T.promise:typeof Map<`u`&&e instanceof Map?T.map:typeof Set<`u`&&e instanceof Set?T.set:typeof Date<`u`&&e instanceof Date?T.date:T.object;default:return T.unknown}},D=w.arrayToEnum([`invalid_type`,`invalid_literal`,`custom`,`invalid_union`,`invalid_union_discriminator`,`invalid_enum_value`,`unrecognized_keys`,`invalid_arguments`,`invalid_return_type`,`invalid_date`,`invalid_string`,`too_small`,`too_big`,`invalid_intersection_types`,`not_multiple_of`,`not_finite`]),O=class e extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};let t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name=`ZodError`,this.issues=e}format(e){let t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`)i.unionErrors.map(r);else if(i.code===`invalid_return_type`)r(i.returnTypeError);else if(i.code===`invalid_arguments`)r(i.argumentsError);else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(t){if(!(t instanceof e))throw Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,w.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=e=>e.message){let t={},n=[];for(let r of this.issues)if(r.path.length>0){let n=r.path[0];t[n]=t[n]||[],t[n].push(e(r))}else n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}};O.create=e=>new O(e);var k=(e,t)=>{let n;switch(e.code){case D.invalid_type:n=e.received===T.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case D.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,w.jsonStringifyReplacer)}`;break;case D.unrecognized_keys:n=`Unrecognized key(s) in object: ${w.joinValues(e.keys,`, `)}`;break;case D.invalid_union:n=`Invalid input`;break;case D.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${w.joinValues(e.options)}`;break;case D.invalid_enum_value:n=`Invalid enum value. Expected ${w.joinValues(e.options)}, received '${e.received}'`;break;case D.invalid_arguments:n=`Invalid function arguments`;break;case D.invalid_return_type:n=`Invalid function return type`;break;case D.invalid_date:n=`Invalid date`;break;case D.invalid_string:typeof e.validation==`object`?`includes`in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position==`number`&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):`startsWith`in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:`endsWith`in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:w.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case D.too_small:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at least`:`over`} ${e.minimum} character(s)`:e.type===`number`||e.type===`bigint`?`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`:e.type===`date`?`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`:`Invalid input`;break;case D.too_big:n=e.type===`array`?`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`:e.type===`string`?`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`:e.type===`number`?`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`bigint`?`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`:e.type===`date`?`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`:`Invalid input`;break;case D.custom:n=`Invalid input`;break;case D.invalid_intersection_types:n=`Intersection results could not be merged`;break;case D.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case D.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,w.assertNever(e)}return{message:n}},A=k;function j(){return A}var M=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,a=[...n,...i.path||[]],o={...i,path:a};if(i.message!==void 0)return{...i,path:a,message:i.message};let s=``,ee=r.filter(e=>!!e).slice().reverse();for(let e of ee)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function N(e,t){let n=j(),r=M({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===k?void 0:k].filter(e=>!!e)});e.common.issues.push(r)}var P=class e{constructor(){this.value=`valid`}dirty(){this.value===`valid`&&(this.value=`dirty`)}abort(){this.value!==`aborted`&&(this.value=`aborted`)}static mergeArray(e,t){let n=[];for(let r of t){if(r.status===`aborted`)return F;r.status===`dirty`&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(t,n){let r=[];for(let e of n){let t=await e.key,n=await e.value;r.push({key:t,value:n})}return e.mergeObjectSync(t,r)}static mergeObjectSync(e,t){let n={};for(let r of t){let{key:t,value:i}=r;if(t.status===`aborted`||i.status===`aborted`)return F;t.status===`dirty`&&e.dirty(),i.status===`dirty`&&e.dirty(),t.value!==`__proto__`&&(i.value!==void 0||r.alwaysSet)&&(n[t.value]=i.value)}return{status:e.value,value:n}}},F=Object.freeze({status:`aborted`}),I=e=>({status:`dirty`,value:e}),L=e=>({status:`valid`,value:e}),R=e=>e.status===`aborted`,z=e=>e.status===`dirty`,B=e=>e.status===`valid`,V=e=>typeof Promise<`u`&&e instanceof Promise,H;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(H||={});var U=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Re=(e,t)=>{if(B(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new O(e.common.issues);return this._error=t,this._error}}};function W(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(t,i)=>{let{message:a}=e;return t.code===`invalid_enum_value`?{message:a??i.defaultError}:i.data===void 0?{message:a??r??i.defaultError}:t.code===`invalid_type`?{message:a??n??i.defaultError}:{message:i.defaultError}},description:i}}var G=class{get description(){return this._def.description}_getType(e){return E(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:E(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new P,ctx:{common:e.parent.common,data:e.data,parsedType:E(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(V(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:E(e)};return Re(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:E(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return B(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>B(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:E(e)},r=this._parse({data:e,path:n.path,parent:n});return Re(n,await(V(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:D.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new Z({schema:this,typeName:$.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return Q.create(this,this._def)}nullable(){return It.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return yt.create(this)}promise(){return Ft.create(this,this._def)}or(e){return xt.create([this,e],this._def)}and(e){return wt.create(this,e,this._def)}transform(e){return new Z({...W(this._def),schema:this,typeName:$.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Lt({...W(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new Bt({typeName:$.ZodBranded,type:this,...W(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new Rt({...W(this._def),innerType:this,catchValue:t,typeName:$.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Vt.create(this,e)}readonly(){return Ht.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ze=/^c[^\s-]{8,}$/i,Be=/^[0-9a-z]+$/,Ve=/^[0-9A-HJKMNP-TV-Z]{26}$/i,K=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,q=/^[a-z0-9_-]{21}$/i,He=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ue=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,We=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ge=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,Ke,qe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Je=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ze=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,$e=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,et=RegExp(`^${$e}$`);function tt(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function nt(e){return RegExp(`^${tt(e)}$`)}function rt(e){let t=`${$e}T${tt(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function it(e,t){return!!((t===`v4`||!t)&&qe.test(e)||(t===`v6`||!t)&&Ye.test(e))}function at(e,t){if(!He.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function ot(e,t){return!!((t===`v4`||!t)&&Je.test(e)||(t===`v6`||!t)&&Xe.test(e))}var st=class e extends G{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==T.string){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.string,received:t.parsedType}),F}let t=new P,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),N(n,{code:D.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`max`)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),N(n,{code:D.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!1,message:r.message}),t.dirty());else if(r.kind===`length`){let i=e.data.length>r.value,a=e.data.length<r.value;(i||a)&&(n=this._getOrReturnCtx(e,n),i?N(n,{code:D.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&N(n,{code:D.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)We.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`email`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)Ke||=new RegExp(Ge,`u`),Ke.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`emoji`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)K.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`uuid`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)q.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`nanoid`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)ze.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`cuid`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)Be.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`cuid2`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Ve.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`ulid`,code:D.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),N(n,{validation:`url`,code:D.invalid_string,message:r.message}),t.dirty()}else r.kind===`regex`?(r.regex.lastIndex=0,r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`regex`,code:D.invalid_string,message:r.message}),t.dirty())):r.kind===`trim`?e.data=e.data.trim():r.kind===`includes`?e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),N(n,{code:D.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty()):r.kind===`toLowerCase`?e.data=e.data.toLowerCase():r.kind===`toUpperCase`?e.data=e.data.toUpperCase():r.kind===`startsWith`?e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),N(n,{code:D.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),N(n,{code:D.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?rt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:D.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?et.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:D.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?nt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{code:D.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ue.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`duration`,code:D.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?it(e.data,r.version)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`ip`,code:D.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?at(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`jwt`,code:D.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?ot(e.data,r.version)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`cidr`,code:D.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Ze.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`base64`,code:D.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Qe.test(e.data)||(n=this._getOrReturnCtx(e,n),N(n,{validation:`base64url`,code:D.invalid_string,message:r.message}),t.dirty()):w.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:D.invalid_string,...H.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...H.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...H.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...H.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...H.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...H.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...H.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...H.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...H.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...H.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...H.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...H.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...H.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...H.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...H.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...H.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...H.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...H.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...H.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...H.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...H.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...H.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...H.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...H.errToObj(t)})}nonempty(e){return this.min(1,H.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};st.create=e=>new st({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...W(e)});function ct(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var lt=class e extends G{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==T.number){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.number,received:t.parsedType}),F}let t,n=new P;for(let r of this._def.checks)r.kind===`int`?w.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),N(t,{code:D.invalid_type,expected:`integer`,received:`float`,message:r.message}),n.dirty()):r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),N(t,{code:D.too_small,minimum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),N(t,{code:D.too_big,maximum:r.value,type:`number`,inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty()):r.kind===`multipleOf`?ct(e.data,r.value)!==0&&(t=this._getOrReturnCtx(e,t),N(t,{code:D.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),N(t,{code:D.not_finite,message:r.message}),n.dirty()):w.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit(`min`,e,!0,H.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,H.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,H.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,H.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:H.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(e){return this._addCheck({kind:`int`,message:H.toString(e)})}positive(e){return this._addCheck({kind:`min`,value:0,inclusive:!1,message:H.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:0,inclusive:!1,message:H.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:0,inclusive:!0,message:H.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:0,inclusive:!0,message:H.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:H.toString(t)})}finite(e){return this._addCheck({kind:`finite`,message:H.toString(e)})}safe(e){return this._addCheck({kind:`min`,inclusive:!0,value:-(2**53-1),message:H.toString(e)})._addCheck({kind:`max`,inclusive:!0,value:2**53-1,message:H.toString(e)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind===`int`||e.kind===`multipleOf`&&w.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};lt.create=e=>new lt({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...W(e)});var ut=class e extends G{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==T.bigint)return this._getInvalidInput(e);let t,n=new P;for(let r of this._def.checks)r.kind===`min`?(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),N(t,{code:D.too_small,type:`bigint`,minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`max`?(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),N(t,{code:D.too_big,type:`bigint`,maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty()):r.kind===`multipleOf`?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),N(t,{code:D.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):w.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.bigint,received:t.parsedType}),F}gte(e,t){return this.setLimit(`min`,e,!0,H.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,H.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,H.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,H.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:H.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:H.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:H.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:H.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:H.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:H.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};ut.create=e=>new ut({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...W(e)});var dt=class extends G{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==T.boolean){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.boolean,received:t.parsedType}),F}return L(e.data)}};dt.create=e=>new dt({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...W(e)});var ft=class e extends G{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==T.date){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.date,received:t.parsedType}),F}if(Number.isNaN(e.data.getTime()))return N(this._getOrReturnCtx(e),{code:D.invalid_date}),F;let t=new P,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),N(n,{code:D.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:`date`}),t.dirty()):r.kind===`max`?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),N(n,{code:D.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):w.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:H.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:H.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};ft.create=e=>new ft({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...W(e)});var pt=class extends G{_parse(e){if(this._getType(e)!==T.symbol){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.symbol,received:t.parsedType}),F}return L(e.data)}};pt.create=e=>new pt({typeName:$.ZodSymbol,...W(e)});var mt=class extends G{_parse(e){if(this._getType(e)!==T.undefined){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.undefined,received:t.parsedType}),F}return L(e.data)}};mt.create=e=>new mt({typeName:$.ZodUndefined,...W(e)});var ht=class extends G{_parse(e){if(this._getType(e)!==T.null){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.null,received:t.parsedType}),F}return L(e.data)}};ht.create=e=>new ht({typeName:$.ZodNull,...W(e)});var gt=class extends G{constructor(){super(...arguments),this._any=!0}_parse(e){return L(e.data)}};gt.create=e=>new gt({typeName:$.ZodAny,...W(e)});var _t=class extends G{constructor(){super(...arguments),this._unknown=!0}_parse(e){return L(e.data)}};_t.create=e=>new _t({typeName:$.ZodUnknown,...W(e)});var J=class extends G{_parse(e){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.never,received:t.parsedType}),F}};J.create=e=>new J({typeName:$.ZodNever,...W(e)});var vt=class extends G{_parse(e){if(this._getType(e)!==T.undefined){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.void,received:t.parsedType}),F}return L(e.data)}};vt.create=e=>new vt({typeName:$.ZodVoid,...W(e)});var yt=class e extends G{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==T.array)return N(t,{code:D.invalid_type,expected:T.array,received:t.parsedType}),F;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(N(t,{code:e?D.too_big:D.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:`array`,inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(r.minLength!==null&&t.data.length<r.minLength.value&&(N(t,{code:D.too_small,minimum:r.minLength.value,type:`array`,inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),r.maxLength!==null&&t.data.length>r.maxLength.value&&(N(t,{code:D.too_big,maximum:r.maxLength.value,type:`array`,inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new U(t,e,t.path,n)))).then(e=>P.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new U(t,e,t.path,n)));return P.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:H.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:H.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:H.toString(n)}})}nonempty(e){return this.min(1,e)}};yt.create=(e,t)=>new yt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...W(t)});function bt(e){if(e instanceof Y){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Q.create(bt(r))}return new Y({...e._def,shape:()=>t})}else if(e instanceof yt)return new yt({...e._def,type:bt(e.element)});else if(e instanceof Q)return Q.create(bt(e.unwrap()));else if(e instanceof It)return It.create(bt(e.unwrap()));else if(e instanceof Tt)return Tt.create(e.items.map(e=>bt(e)));else return e}var Y=class e extends G{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=w.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==T.object){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.object,received:t.parsedType}),F}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof J&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new U(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof J){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(N(n,{code:D.unrecognized_keys,keys:a}),t.dirty());else if(e!==`strip`)throw Error(`Internal ZodObject error: invalid unknownKeys value.`)}else{let e=this._def.catchall;for(let t of a){let r=n.data[t];o.push({key:{status:`valid`,value:t},value:e._parse(new U(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{let e=[];for(let t of o){let n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>P.mergeObjectSync(t,e)):P.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(t){return H.errToObj,new e({...this._def,unknownKeys:`strict`,...t===void 0?{}:{errorMap:(e,n)=>{let r=this._def.errorMap?.(e,n).message??n.defaultError;return e.code===`unrecognized_keys`?{message:H.errToObj(t).message??r}:{message:r}}}})}strip(){return new e({...this._def,unknownKeys:`strip`})}passthrough(){return new e({...this._def,unknownKeys:`passthrough`})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:$.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let e of w.objectKeys(t))t[e]&&this.shape[e]&&(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let e of w.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return bt(this)}partial(t){let n={};for(let e of w.objectKeys(this.shape)){let r=this.shape[e];t&&!t[e]?n[e]=r:n[e]=r.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let e of w.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof Q;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return Mt(w.objectKeys(this.shape))}};Y.create=(e,t)=>new Y({shape:()=>e,unknownKeys:`strip`,catchall:J.create(),typeName:$.ZodObject,...W(t)}),Y.strictCreate=(e,t)=>new Y({shape:()=>e,unknownKeys:`strict`,catchall:J.create(),typeName:$.ZodObject,...W(t)}),Y.lazycreate=(e,t)=>new Y({shape:e,unknownKeys:`strip`,catchall:J.create(),typeName:$.ZodObject,...W(t)});var xt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new O(e.ctx.common.issues));return N(t,{code:D.invalid_union,unionErrors:n}),F}if(t.common.async)return Promise.all(n.map(async e=>{let n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(r);{let e,r=[];for(let i of n){let n={...t,common:{...t.common,issues:[]},parent:null},a=i._parseSync({data:t.data,path:t.path,parent:n});if(a.status===`valid`)return a;a.status===`dirty`&&!e&&(e={result:a,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;let i=r.map(e=>new O(e));return N(t,{code:D.invalid_union,unionErrors:i}),F}}get options(){return this._def.options}};xt.create=(e,t)=>new xt({options:e,typeName:$.ZodUnion,...W(t)});var X=e=>e instanceof At?X(e.schema):e instanceof Z?X(e.innerType()):e instanceof jt?[e.value]:e instanceof Nt?e.options:e instanceof Pt?w.objectValues(e.enum):e instanceof Lt?X(e._def.innerType):e instanceof mt?[void 0]:e instanceof ht?[null]:e instanceof Q?[void 0,...X(e.unwrap())]:e instanceof It?[null,...X(e.unwrap())]:e instanceof Bt||e instanceof Ht?X(e.unwrap()):e instanceof Rt?X(e._def.innerType):[],St=class e extends G{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==T.object)return N(t,{code:D.invalid_type,expected:T.object,received:t.parsedType}),F;let n=this.discriminator,r=t.data[n],i=this.optionsMap.get(r);return i?t.common.async?i._parseAsync({data:t.data,path:t.path,parent:t}):i._parseSync({data:t.data,path:t.path,parent:t}):(N(t,{code:D.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),F)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=X(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:$.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...W(r)})}};function Ct(e,t){let n=E(e),r=E(t);if(e===t)return{valid:!0,data:e};if(n===T.object&&r===T.object){let n=w.objectKeys(t),r=w.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Ct(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===T.array&&r===T.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Ct(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===T.date&&r===T.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var wt=class extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(R(e)||R(r))return F;let i=Ct(e.value,r.value);return i.valid?((z(e)||z(r))&&t.dirty(),{status:t.value,value:i.data}):(N(n,{code:D.invalid_intersection_types}),F)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};wt.create=(e,t,n)=>new wt({left:e,right:t,typeName:$.ZodIntersection,...W(n)});var Tt=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==T.array)return N(n,{code:D.invalid_type,expected:T.array,received:n.parsedType}),F;if(n.data.length<this._def.items.length)return N(n,{code:D.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),F;!this._def.rest&&n.data.length>this._def.items.length&&(N(n,{code:D.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),t.dirty());let r=[...n.data].map((e,t)=>{let r=this._def.items[t]||this._def.rest;return r?r._parse(new U(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>P.mergeArray(t,e)):P.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Tt.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new Tt({items:e,typeName:$.ZodTuple,rest:null,...W(t)})};var Et=class e extends G{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==T.object)return N(n,{code:D.invalid_type,expected:T.object,received:n.parsedType}),F;let r=[],i=this._def.keyType,a=this._def.valueType;for(let e in n.data)r.push({key:i._parse(new U(n,e,n.path,e)),value:a._parse(new U(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?P.mergeObjectAsync(t,r):P.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof G?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...W(r)}):new e({keyType:st.create(),valueType:t,typeName:$.ZodRecord,...W(n)})}},Dt=class extends G{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==T.map)return N(n,{code:D.invalid_type,expected:T.map,received:n.parsedType}),F;let r=this._def.keyType,i=this._def.valueType,a=[...n.data.entries()].map(([e,t],a)=>({key:r._parse(new U(n,e,n.path,[a,`key`])),value:i._parse(new U(n,t,n.path,[a,`value`]))}));if(n.common.async){let e=new Map;return Promise.resolve().then(async()=>{for(let n of a){let r=await n.key,i=await n.value;if(r.status===`aborted`||i.status===`aborted`)return F;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}else{let e=new Map;for(let n of a){let r=n.key,i=n.value;if(r.status===`aborted`||i.status===`aborted`)return F;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};Dt.create=(e,t,n)=>new Dt({valueType:t,keyType:e,typeName:$.ZodMap,...W(n)});var Ot=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==T.set)return N(n,{code:D.invalid_type,expected:T.set,received:n.parsedType}),F;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(N(n,{code:D.too_small,minimum:r.minSize.value,type:`set`,inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),r.maxSize!==null&&n.data.size>r.maxSize.value&&(N(n,{code:D.too_big,maximum:r.maxSize.value,type:`set`,inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());let i=this._def.valueType;function a(e){let n=new Set;for(let r of e){if(r.status===`aborted`)return F;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new U(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:H.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:H.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Ot.create=(e,t)=>new Ot({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...W(t)});var kt=class e extends G{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==T.function)return N(t,{code:D.invalid_type,expected:T.function,received:t.parsedType}),F;function n(e,n){return M({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,j(),k].filter(e=>!!e),issueData:{code:D.invalid_arguments,argumentsError:n}})}function r(e,n){return M({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,j(),k].filter(e=>!!e),issueData:{code:D.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Ft){let e=this;return L(async function(...t){let o=new O([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),ee=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(ee,i).catch(e=>{throw o.addIssue(r(ee,e)),o})})}else{let e=this;return L(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new O([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),ee=e._def.returns.safeParse(s,i);if(!ee.success)throw new O([r(s,ee.error)]);return ee.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Tt.create(t).rest(_t.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||Tt.create([]).rest(_t.create()),returns:n||_t.create(),typeName:$.ZodFunction,...W(r)})}},At=class extends G{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};At.create=(e,t)=>new At({getter:e,typeName:$.ZodLazy,...W(t)});var jt=class extends G{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return N(t,{received:t.data,code:D.invalid_literal,expected:this._def.value}),F}return{status:`valid`,value:e.data}}get value(){return this._def.value}};jt.create=(e,t)=>new jt({value:e,typeName:$.ZodLiteral,...W(t)});function Mt(e,t){return new Nt({values:e,typeName:$.ZodEnum,...W(t)})}var Nt=class e extends G{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return N(t,{expected:w.joinValues(n),received:t.parsedType,code:D.invalid_type}),F}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return N(t,{received:t.data,code:D.invalid_enum_value,options:n}),F}return L(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};Nt.create=Mt;var Pt=class extends G{_parse(e){let t=w.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==T.string&&n.parsedType!==T.number){let e=w.objectValues(t);return N(n,{expected:w.joinValues(e),received:n.parsedType,code:D.invalid_type}),F}if(this._cache||=new Set(w.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=w.objectValues(t);return N(n,{received:n.data,code:D.invalid_enum_value,options:e}),F}return L(e.data)}get enum(){return this._def.values}};Pt.create=(e,t)=>new Pt({values:e,typeName:$.ZodNativeEnum,...W(t)});var Ft=class extends G{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==T.promise&&t.common.async===!1?(N(t,{code:D.invalid_type,expected:T.promise,received:t.parsedType}),F):L((t.parsedType===T.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Ft.create=(e,t)=>new Ft({type:e,typeName:$.ZodPromise,...W(t)});var Z=class extends G{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{N(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),r.type===`preprocess`){let e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if(t.value===`aborted`)return F;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?F:r.status===`dirty`||t.value===`dirty`?I(r.value):r});{if(t.value===`aborted`)return F;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?F:r.status===`dirty`||t.value===`dirty`?I(r.value):r}}if(r.type===`refinement`){let e=e=>{let t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw Error(`Async refinement encountered during synchronous parse operation. Use .parseAsync instead.`);return e};if(n.common.async===!1){let r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return r.status===`aborted`?F:(r.status===`dirty`&&t.dirty(),e(r.value),{status:t.value,value:r.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>n.status===`aborted`?F:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!B(e))return F;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>B(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):F);w.assertNever(r)}};Z.create=(e,t,n)=>new Z({schema:e,typeName:$.ZodEffects,effect:t,...W(n)}),Z.createWithPreprocess=(e,t,n)=>new Z({schema:t,effect:{type:`preprocess`,transform:e},typeName:$.ZodEffects,...W(n)});var Q=class extends G{_parse(e){return this._getType(e)===T.undefined?L(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Q.create=(e,t)=>new Q({innerType:e,typeName:$.ZodOptional,...W(t)});var It=class extends G{_parse(e){return this._getType(e)===T.null?L(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};It.create=(e,t)=>new It({innerType:e,typeName:$.ZodNullable,...W(t)});var Lt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===T.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Lt.create=(e,t)=>new Lt({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...W(t)});var Rt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return V(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new O(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new O(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rt.create=(e,t)=>new Rt({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...W(t)});var zt=class extends G{_parse(e){if(this._getType(e)!==T.nan){let t=this._getOrReturnCtx(e);return N(t,{code:D.invalid_type,expected:T.nan,received:t.parsedType}),F}return{status:`valid`,value:e.data}}};zt.create=e=>new zt({typeName:$.ZodNaN,...W(e)});var Bt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},Vt=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?F:e.status===`dirty`?(t.dirty(),I(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})();{let e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?F:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:$.ZodPipeline})}},Ht=class extends G{_parse(e){let t=this._def.innerType._parse(e),n=e=>(B(e)&&(e.value=Object.freeze(e.value)),e);return V(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Ht.create=(e,t)=>new Ht({innerType:e,typeName:$.ZodReadonly,...W(t)}),Y.lazycreate;var $;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})($||={});var Ut=st.create;lt.create,zt.create,ut.create,dt.create,ft.create,pt.create,mt.create,ht.create,gt.create,_t.create,J.create,vt.create,yt.create;var Wt=Y.create;Y.strictCreate,xt.create,St.create,wt.create,Tt.create,Et.create,Dt.create,Ot.create,kt.create,At.create,jt.create,Nt.create,Pt.create,Ft.create,Z.create,Q.create,It.create,Z.createWithPreprocess,Vt.create;function Gt(){let{t}=r(),n=h({dropFieldsInput:``,requestDefaultsInput:``,injectHeadersInput:``,exists:!1});async function i(r){try{let e=await g.getTransformRules(r);e?(n.value.dropFieldsInput=(e.drop_fields||[]).join(`, `),n.value.requestDefaultsInput=e.request_defaults?JSON.stringify(e.request_defaults):``,n.value.injectHeadersInput=e.inject_headers?JSON.stringify(e.inject_headers):``,n.value.exists=!0):(n.value.dropFieldsInput=``,n.value.requestDefaultsInput=``,n.value.injectHeadersInput=``,n.value.exists=!1)}catch(r){C.error(e(r,t(`providers.transform.loadFailed`))),n.value.dropFieldsInput=``,n.value.requestDefaultsInput=``,n.value.injectHeadersInput=``,n.value.exists=!1}}function a(r){if(!r)return Promise.resolve();let i=n.value.dropFieldsInput?n.value.dropFieldsInput.split(`,`).map(e=>e.trim()).filter(Boolean):null,a=null;if(n.value.requestDefaultsInput.trim())try{a=JSON.parse(n.value.requestDefaultsInput)}catch{return C.error(t(`providers.transform.requestDefaultsJsonError`)),Promise.resolve()}let o=null;if(n.value.injectHeadersInput.trim())try{o=JSON.parse(n.value.injectHeadersInput)}catch{return C.error(t(`providers.transform.injectHeadersJsonError`)),Promise.resolve()}return g.upsertTransformRules(r,{drop_fields:i,request_defaults:a,inject_headers:o,is_active:1}).then(()=>{n.value.exists=!0,C.success(t(`providers.transform.saved`))}).catch(n=>C.error(e(n,t(`common.saveFailed`))))}function o(r){return r?g.deleteTransformRules(r).then(()=>{n.value.dropFieldsInput=``,n.value.requestDefaultsInput=``,n.value.injectHeadersInput=``,n.value.exists=!1,C.success(t(`providers.transform.deleted`))}).catch(n=>C.error(e(n,t(`providers.transform.deleteFailed`)))):Promise.resolve()}return{transformForm:n,loadTransformRules:i,saveTransformRules:a,handleDeleteTransformRules:o}}var Kt={class:`p-6`},qt={class:`flex items-center justify-between mb-4`},Jt={class:`text-lg font-semibold text-foreground`},Yt={class:`flex items-center gap-2`},Xt={class:`bg-card rounded-lg border overflow-hidden`},Zt={class:`flex items-center gap-1`},Qt={class:`font-mono text-xs text-muted-foreground`},$t={class:`flex flex-wrap gap-1`},en={key:0,class:`ml-1 text-muted-foreground`},tn={key:0,class:`text-muted-foreground text-xs`},nn={key:2,class:`text-muted-foreground`},rn={key:0,class:`rounded-md border-2 border-primary/30 bg-primary/5 p-3 space-y-2`},an={class:`flex items-center gap-1.5 text-xs font-semibold text-primary`},on={class:`flex gap-2`},sn={key:1,class:`flex flex-col items-center justify-center py-10 text-muted-foreground`},cn={class:`text-sm`},ln={class:`grid grid-cols-2 gap-3`},un={key:0,class:`text-xs text-destructive mt-0.5`},dn={key:0,class:`text-xs text-destructive mt-0.5`},fn={key:0,class:`text-xs text-destructive mt-0.5`},pn={class:`grid grid-cols-3 gap-2 mb-3`},mn={class:`flex gap-2`},hn={class:`grid grid-cols-2 gap-4`},gn={class:`border rounded-md p-3 space-y-3`},_n={class:`text-xs font-medium text-muted-foreground`},vn={class:`border rounded-md p-3 space-y-3`},yn={class:`text-xs font-medium text-muted-foreground`},bn={key:0,class:`mt-2 space-y-1`},xn={class:`text-sm font-medium`},Sn=3,Cn=10,wn=12e4,Tn=10,En=100,Dn=1e3,On=1e3,kn=1e6,An=7,jn=7,Mn=2e3,Nn=te({__name:`Providers`,setup(ee){let te=[{label:`8K`,value:`8000`},{label:`16K`,value:`16000`},{label:`32K`,value:`32000`},{label:`64K`,value:`64000`},{label:`128K`,value:`128000`},{label:`160K`,value:`160000`},{label:`200K`,value:`200000`},{label:`256K`,value:`256000`},{label:`1M`,value:`1000000`}],w={openai:`OpenAI Chat Completions`,"openai-responses":`OpenAI Responses`,anthropic:`Anthropic Messages`},Le={name:``,api_type:`anthropic`,base_url:``,upstream_path:``,api_key:``,models:[],is_active:!0,max_concurrency:Cn,queue_timeout_ms:wn,max_queue_size:Tn,adaptive_enabled:!0},T=h(``),E=h(je),D=i({get:()=>String(E.value),set:e=>{E.value=Number(e)}}),O=h([]),k=h([]),A=h(!1),j=h(null),M=h(null),N=h(null),P=h(null),F=h(!1),I=h([]),L=h({...Le}),R=h({}),z=h(`auto`),{t:B}=r(),{transformForm:V,loadTransformRules:H,saveTransformRules:U}=Gt(),Re=h(null),W=h(!1);function G(){let e=Wt({name:Ut().min(1,B(`providers.validation.nameRequired`)).regex(/^[a-zA-Z0-9_-]+$/,B(`providers.validation.namePattern`)),base_url:Ut().min(1,B(`providers.validation.baseUrlRequired`)).url(B(`providers.validation.baseUrlInvalid`))}),t={},n=e.safeParse({name:L.value.name.trim(),base_url:L.value.base_url.trim()});if(!n.success)for(let e of n.error.issues){let n=e.path[0];t[n]||(t[n]=e.message)}if(!j.value&&!L.value.api_key.trim()&&(t.api_key=B(`providers.validation.apiKeyRequired`)),z.value!==`none`){let e=L.value.max_concurrency;(!e||e<1||e>En)&&(t.max_concurrency=B(`providers.validation.concurrencyRange`,{min:1,max:En})),L.value.queue_timeout_ms<0&&(t.queue_timeout_ms=B(`providers.validation.negativeNotAllowed`));let n=L.value.max_queue_size;(!n||n<1||n>Dn)&&(t.max_queue_size=B(`providers.validation.queueSizeRange`,{min:1,max:Dn}))}return R.value=t,Object.keys(t).length===0}function ze(e){return e?e.slice(0,An)+`*`.repeat(jn):``}function Be(e){return e>=kn?`${e/kn}M`:e>=On?`${e/On}K`:String(e)}async function Ve(e,t){await navigator.clipboard.writeText(e),Re.value=t,setTimeout(()=>{Re.value=null},Mn)}let K=h(``),q=h(``),He=i(()=>K.value?k.value.find(e=>e.group===K.value)?.presets??[]:[]);function Ue(){if(K.value===`__custom__`){q.value=``,L.value.name=``,L.value.api_type=`openai`,L.value.base_url=``,L.value.models=[];return}let e=k.value.find(e=>e.group===K.value)?.presets;e?.length?(q.value=e[0].plan,We()):q.value=``}function We(){let e=He.value.find(e=>e.plan===q.value);e&&(L.value.name=e.presetName,L.value.api_type=e.apiType,L.value.base_url=e.baseUrl,L.value.models=e.models.map(t=>({name:t,context_window:Me(t),patches:Xe(t,e.apiType)})))}async function Ge(){try{O.value=await g.getProviders()}catch(t){console.error(`Failed to load providers:`,t),C.error(e(t,B(`providers.toast.loadFailed`)))}}function Ke(){let e=T.value.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let e of t)L.value.models.some(t=>t.name===e)||L.value.models.push({name:e,context_window:E.value||2e5,patches:[]});T.value=``,E.value=je}function qe(e){L.value.models.splice(e,1)}function Je(e){return e.includes(`api.openai.com`)}function Ye(e,t){L.value.models[e].context_window=t.contextWindow,L.value.models[e].patches=t.patches}function Xe(e,t){let n=[];return e.toLowerCase().includes(`deepseek`)&&(t===`anthropic`?n.push(`thinking-param`,`cache-control`,`thinking-blocks`,`orphan-tool-results`):n.push(`non-ds-tools`,`orphan-tool-results-oa`)),n}function Ze(e){e===`auto`?((!L.value.max_concurrency||L.value.max_concurrency<1)&&(L.value.max_concurrency=Cn),L.value.adaptive_enabled=!0):e===`manual`&&((!L.value.max_concurrency||L.value.max_concurrency<1)&&(L.value.max_concurrency=Sn),L.value.adaptive_enabled=!1)}function Qe(){j.value=null,L.value={...Le,models:[]},z.value=`auto`,T.value=``,E.value=je,K.value=``,q.value=``,R.value={},A.value=!0}function $e(e){j.value=e.id;let t=e.max_concurrency??0;t===0?z.value=`none`:e.adaptive_enabled?z.value=`auto`:z.value=`manual`,L.value={name:e.name,api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||``,api_key:``,models:(e.models||[]).map(e=>({name:e.name,context_window:e.context_window??2e5,patches:e.patches??[]})),is_active:!!e.is_active,max_concurrency:z.value===`none`?Cn:t,queue_timeout_ms:e.queue_timeout_ms??wn,max_queue_size:e.max_queue_size??Tn,adaptive_enabled:z.value===`auto`},T.value=``,E.value=je,K.value=``,q.value=``,R.value={},A.value=!0,H(e.id)}function et(){let e={name:L.value.name,api_type:L.value.api_type,base_url:L.value.base_url,upstream_path:L.value.upstream_path||void 0,models:L.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0})),is_active:+!!L.value.is_active,max_concurrency:z.value===`none`?0:L.value.max_concurrency,queue_timeout_ms:z.value===`none`?0:L.value.queue_timeout_ms,max_queue_size:z.value===`none`?Tn:L.value.max_queue_size,adaptive_enabled:+(z.value===`auto`)};return L.value.api_key&&(e.api_key=L.value.api_key),e}async function tt(){if(G())try{let e=et();e.name=L.value.name.trim();let t=j.value;j.value?await g.updateProvider(j.value,e):(e.api_key=L.value.api_key,t=(await g.createProvider(e)).id),await U(t),A.value=!1,await Ge()}catch(t){console.error(`Failed to save provider:`,t),C.error(e(t,B(`providers.toast.saveFailed`)))}}function nt(e){M.value=e}async function rt(e){if(N.value=e,P.value=e.id,F.value=!!e.is_active,I.value=[],e.is_active)try{I.value=(await g.getProviderDependencies(e.id)).references}catch{}}async function it(){let t=P.value;if(!t)return;let n=F.value;N.value=null,P.value=null;try{let e=await g.updateProvider(t,{is_active:+!n});if(e.cascadedGroups?.length){let t=e.cascadedGroups.filter(e=>e.disabled).length,n=e.cascadedGroups.length-t,r=[];n>0&&r.push(B(`providers.toast.cascadeClean`,{count:n})),t>0&&r.push(B(`providers.toast.cascadeDisable`,{count:t})),C.warning(B(`providers.toast.cascadeAuto`,{actions:r.join(`, `)}))}await Ge()}catch(t){console.error(`Failed to toggle provider:`,t),C.error(e(t,B(`providers.toast.toggleFailed`)))}}async function at(){let t=M.value;if(t){M.value=null;try{await g.deleteProvider(t.id),await Ge()}catch(t){C.error(e(t,B(`providers.toast.deleteFailed`)))}}}async function ot(){W.value=!0;try{let e=await g.reloadTransformRules();C.success(B(`providers.toast.reloadSuccess`,{pluginCount:e.loadedPlugins.length,rulesCount:e.rulesCount}))}catch(t){C.error(e(t,B(`providers.toast.reloadFailed`)))}finally{W.value=!1}}return re(async()=>{let[e]=await Promise.allSettled([g.recommended.getProviders(),Ge()]);e.status===`fulfilled`?k.value=e.value:(k.value=[],console.error(`Failed to load provider presets:`,e.reason))}),(e,r)=>(y(),f(`div`,Kt,[s(`div`,qt,[s(`h2`,Jt,u(c(B)(`providers.title`)),1),s(`div`,Yt,[p(c(_),{variant:`outline`,size:`sm`,onClick:ot,disabled:W.value},{default:n(()=>[p(c(Ie),{class:t([`w-4 h-4 mr-1`,{"animate-spin":W.value}])},null,8,[`class`]),d(` `+u(c(B)(`providers.reloadPlugin`)),1)]),_:1},8,[`disabled`]),p(c(_),{onClick:Qe,class:`flex items-center gap-1`},{default:n(()=>[r[23]||=s(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[s(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),d(` `+u(c(B)(`providers.addProvider`)),1)]),_:1})])]),s(`div`,Xt,[p(c(ce),null,{default:n(()=>[p(c(pe),null,{default:n(()=>[p(c(le),{class:`bg-muted`},{default:n(()=>[p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.name`)),1)]),_:1}),p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.type`)),1)]),_:1}),p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.baseUrl`)),1)]),_:1}),p(c(b),{class:`text-xs`},{default:n(()=>[...r[24]||=[d(`Path`,-1)]]),_:1}),p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.apiKey`)),1)]),_:1}),p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.models`)),1)]),_:1}),p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.concurrency`)),1)]),_:1}),p(c(b),{class:`text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.status`)),1)]),_:1}),p(c(b),{class:`text-right text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),p(c(se),null,{default:n(()=>[(y(!0),f(l,null,m(O.value,e=>(y(),v(c(le),{key:e.id,class:t({"opacity-60":!e.is_active})},{default:n(()=>[p(c(x),{class:`font-medium`},{default:n(()=>[d(u(e.name),1)]),_:2},1024),p(c(x),null,{default:n(()=>[p(c(_e),{variant:`secondary`},{default:n(()=>[d(u(w[e.api_type]??e.api_type),1)]),_:2},1024)]),_:2},1024),p(c(x),{class:`text-muted-foreground`},{default:n(()=>[d(u(e.base_url),1)]),_:2},1024),p(c(x),{class:`text-muted-foreground text-xs`},{default:n(()=>[d(u(e.upstream_path||(e.api_type===`anthropic`?`/v1/messages`:`/v1/chat/completions`)),1)]),_:2},1024),p(c(x),null,{default:n(()=>[s(`div`,Zt,[s(`span`,Qt,u(ze(e.api_key)),1),p(c(_),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>Ve(e.api_key,e.id)},{default:n(()=>[(y(),v(ie(Re.value===e.id?c(Te):c(ae)),{class:t([`w-3.5 h-3.5`,{"text-success":Re.value===e.id}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])]),_:2},1024),p(c(x),null,{default:n(()=>[s(`div`,$t,[(y(!0),f(l,null,m(e.models||[],e=>(y(),v(c(_e),{key:e.name,variant:`secondary`,class:`text-xs`},{default:n(()=>[d(u(e.name)+` `,1),e.context_window?(y(),f(`span`,en,`(`+u(Be(e.context_window))+`)`,1)):o(``,!0)]),_:2},1024))),128)),e.models?.length?o(``,!0):(y(),f(`span`,tn,`-`))])]),_:2},1024),p(c(x),null,{default:n(()=>[e.adaptive_enabled?(y(),v(c(_e),{key:0,variant:`outline`},{default:n(()=>[d(u(c(B)(`common.adaptive`)),1)]),_:1})):e.max_concurrency>0?(y(),v(c(_e),{key:1,variant:`secondary`},{default:n(()=>[d(u(e.max_concurrency),1)]),_:2},1024)):(y(),f(`span`,nn,`-`))]),_:2},1024),p(c(x),null,{default:n(()=>[p(c(_),{variant:`ghost`,size:`sm`,class:`gap-1.5`,onClick:t=>rt(e)},{default:n(()=>[s(`span`,{class:t([`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors`,e.is_active?`bg-primary`:`bg-input`])},[s(`span`,{class:t([`inline-block h-3 w-3 rounded-full bg-background shadow-sm transition-transform`,e.is_active?`translate-x-3.5`:`translate-x-0.5`])},null,2)],2),p(c(_e),{variant:e.is_active?`default`:`secondary`},{default:n(()=>[d(u(e.is_active?c(B)(`common.enabled`):c(B)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1032,[`onClick`])]),_:2},1024),p(c(x),{class:`text-right`},{default:n(()=>[p(c(_),{variant:`ghost`,size:`sm`,onClick:t=>$e(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:n(()=>[d(u(c(B)(`common.edit`)),1)]),_:1},8,[`onClick`]),p(c(_),{variant:`ghost`,size:`sm`,onClick:t=>nt(e),class:`text-muted-foreground hover:text-destructive`},{default:n(()=>[d(u(c(B)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),O.value.length===0?(y(),v(c(le),{key:0},{default:n(()=>[p(c(x),{colspan:`9`,class:`text-center text-muted-foreground py-8`},{default:n(()=>[d(u(c(B)(`providers.noProviders`)),1)]),_:1})]),_:1})):o(``,!0)]),_:1})]),_:1})]),p(c(de),{open:A.value,"onUpdate:open":r[20]||=e=>A.value=e},{default:n(()=>[p(c(oe),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:n(()=>[p(c(ue),null,{default:n(()=>[p(c(me),null,{default:n(()=>[d(u(j.value?c(B)(`providers.editProvider`):c(B)(`providers.addProvider`)),1)]),_:1})]),_:1}),s(`form`,{onSubmit:a(tt,[`prevent`]),class:`space-y-4`},[j.value?o(``,!0):(y(),f(`div`,rn,[s(`div`,an,[r[25]||=s(`svg`,{class:`w-3.5 h-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[s(`path`,{d:`M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z`})],-1),d(` `+u(c(B)(`providers.template.title`)),1)]),s(`div`,on,[p(c(xe),{modelValue:K.value,"onUpdate:modelValue":[r[0]||=e=>K.value=e,Ue]},{default:n(()=>[p(c(De),{class:`flex-1 border-primary/40`},{default:n(()=>[p(c(be),{placeholder:c(B)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),p(c(Se),null,{default:n(()=>[p(c(S),{value:`__custom__`},{default:n(()=>[d(u(c(B)(`providers.template.custom`)),1)]),_:1}),(y(!0),f(l,null,m(k.value,e=>(y(),v(c(S),{key:e.group,value:e.group},{default:n(()=>[d(u(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),K.value===`__custom__`?o(``,!0):(y(),v(c(xe),{key:0,modelValue:q.value,"onUpdate:modelValue":[r[1]||=e=>q.value=e,We],disabled:!K.value||K.value===`__custom__`},{default:n(()=>[p(c(De),{class:`flex-1 border-primary/40`},{default:n(()=>[p(c(be),{placeholder:c(B)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),p(c(Se),null,{default:n(()=>[(y(!0),f(l,null,m(He.value,e=>(y(),v(c(S),{key:e.plan,value:e.plan},{default:n(()=>[d(u(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`]))])])),!K.value&&!j.value?(y(),f(`div`,sn,[r[26]||=s(`svg`,{class:`w-10 h-10 mb-3 opacity-30`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[s(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),s(`path`,{d:`M9 12l2 2 4-4`})],-1),s(`span`,cn,u(c(B)(`providers.template.selectFirst`)),1)])):o(``,!0),K.value||j.value?(y(),f(l,{key:2},[s(`div`,ln,[s(`div`,null,[p(c(he),{class:`text-xs text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.fields.name`)),1)]),_:1}),p(c(Ae),{modelValue:L.value.name,"onUpdate:modelValue":r[2]||=e=>L.value.name=e,type:`text`,required:``,class:`mt-1`,onInput:r[3]||=e=>delete R.value.name},null,8,[`modelValue`]),R.value.name?(y(),f(`p`,un,u(R.value.name),1)):o(``,!0)]),s(`div`,null,[p(c(he),{class:`text-xs text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.fields.apiType`)),1)]),_:1}),p(c(xe),{modelValue:L.value.api_type,"onUpdate:modelValue":r[4]||=e=>L.value.api_type=e,class:`mt-1`},{default:n(()=>[p(c(De),null,{default:n(()=>[p(c(be),{placeholder:c(B)(`common.pleaseSelect`)},null,8,[`placeholder`])]),_:1}),p(c(Se),null,{default:n(()=>[p(c(S),{value:`openai`},{default:n(()=>[...r[27]||=[d(`OpenAI Chat Completions`,-1)]]),_:1}),p(c(S),{value:`openai-responses`},{default:n(()=>[...r[28]||=[d(`OpenAI Responses`,-1)]]),_:1}),p(c(S),{value:`anthropic`},{default:n(()=>[...r[29]||=[d(`Anthropic Messages`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),s(`div`,null,[p(c(he),{class:`text-xs text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.fields.baseUrl`)),1)]),_:1}),p(c(Ae),{modelValue:L.value.base_url,"onUpdate:modelValue":r[5]||=e=>L.value.base_url=e,type:`url`,required:``,class:`mt-1 font-mono text-xs`,onInput:r[6]||=e=>delete R.value.base_url},null,8,[`modelValue`]),R.value.base_url?(y(),f(`p`,dn,u(R.value.base_url),1)):o(``,!0)]),s(`div`,null,[p(c(he),{class:`text-xs text-muted-foreground`},{default:n(()=>[d(u(c(B)(`providers.fields.apiKey`)),1)]),_:1}),p(c(Ae),{modelValue:L.value.api_key,"onUpdate:modelValue":r[7]||=e=>L.value.api_key=e,type:`text`,required:!j.value,placeholder:j.value?c(B)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1`,onInput:r[8]||=e=>delete R.value.api_key},null,8,[`modelValue`,`required`,`placeholder`]),R.value.api_key?(y(),f(`p`,fn,u(R.value.api_key),1)):o(``,!0)])]),s(`div`,null,[p(c(he),{class:`text-xs`},{default:n(()=>[...r[30]||=[d(`Upstream Path`,-1)]]),_:1}),p(c(Ae),{modelValue:L.value.upstream_path,"onUpdate:modelValue":r[9]||=e=>L.value.upstream_path=e,placeholder:`默认: /v1/chat/completions 或 /v1/messages`,class:`mt-1 font-mono text-xs`},null,8,[`modelValue`]),r[31]||=s(`p`,{class:`text-xs text-muted-foreground mt-0.5`},`留空使用 API 类型默认路径`,-1)]),s(`div`,null,[p(c(he),{class:`text-xs text-muted-foreground mb-2`},{default:n(()=>[d(u(c(B)(`providers.fields.availableModels`)),1)]),_:1}),s(`div`,pn,[(y(!0),f(l,null,m(L.value.models,(e,t)=>(y(),f(`div`,{key:t},[p(Ne,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":L.value.api_type,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!Je(L.value.base_url),"onUpdate:model":e=>Ye(t,e),onRemove:e=>qe(t)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`onUpdate:model`,`onRemove`])]))),128))]),s(`div`,mn,[p(c(Ae),{modelValue:T.value,"onUpdate:modelValue":r[10]||=e=>T.value=e,placeholder:c(B)(`providers.fields.modelInputPlaceholder`),onKeydown:ne(a(Ke,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),p(c(xe),{modelValue:D.value,"onUpdate:modelValue":r[11]||=e=>D.value=e},{default:n(()=>[p(c(De),{class:`w-28`},{default:n(()=>[p(c(be),{placeholder:c(B)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),p(c(Se),null,{default:n(()=>[(y(),f(l,null,m(te,e=>p(c(S),{key:e.value,value:e.value},{default:n(()=>[d(u(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),p(c(_),{type:`button`,variant:`outline`,size:`sm`,onClick:Ke,disabled:!T.value.trim()},{default:n(()=>[d(u(c(B)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])]),s(`div`,hn,[s(`div`,gn,[s(`div`,_n,u(c(B)(`providers.concurrency.title`)),1),p(Pe,{mode:z.value,"max-concurrency":L.value.max_concurrency,"queue-timeout-ms":L.value.queue_timeout_ms,"max-queue-size":L.value.max_queue_size,compact:``,"onUpdate:mode":r[12]||=e=>Ze(e),"onUpdate:maxConcurrency":r[13]||=e=>L.value.max_concurrency=e,"onUpdate:queueTimeoutMs":r[14]||=e=>L.value.queue_timeout_ms=e,"onUpdate:maxQueueSize":r[15]||=e=>L.value.max_queue_size=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),s(`div`,vn,[s(`div`,yn,u(c(B)(`providers.transform.title`)),1),p(Fe,{"inject-headers":c(V).injectHeadersInput,"drop-fields":c(V).dropFieldsInput,"request-defaults":c(V).requestDefaultsInput,"onUpdate:injectHeaders":r[16]||=e=>c(V).injectHeadersInput=e,"onUpdate:dropFields":r[17]||=e=>c(V).dropFieldsInput=e,"onUpdate:requestDefaults":r[18]||=e=>c(V).requestDefaultsInput=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])])],64)):o(``,!0),p(c(fe),null,{default:n(()=>[p(c(_),{type:`button`,variant:`outline`,onClick:r[19]||=e=>A.value=!1},{default:n(()=>[d(u(c(B)(`common.cancel`)),1)]),_:1}),p(c(_),{type:`submit`},{default:n(()=>[d(u(c(B)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),p(c(ye),{open:!!M.value,"onUpdate:open":r[21]||=e=>{e||(M.value=null)}},{default:n(()=>[p(c(ve),null,{default:n(()=>[p(c(ge),null,{default:n(()=>[p(c(Ce),null,{default:n(()=>[d(u(c(B)(`providers.confirmDelete.title`)),1)]),_:1}),p(c(Oe),null,{default:n(()=>[d(u(c(B)(`providers.confirmDelete.message`,{name:M.value?.name})),1)]),_:1})]),_:1}),p(c(Ee),null,{default:n(()=>[p(c(we),null,{default:n(()=>[d(u(c(B)(`common.cancel`)),1)]),_:1}),p(c(_),{variant:`destructive`,onClick:at},{default:n(()=>[d(u(c(B)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),p(c(ye),{open:!!N.value,"onUpdate:open":r[22]||=e=>{e||(N.value=null)}},{default:n(()=>[p(c(ve),null,{default:n(()=>[p(c(ge),null,{default:n(()=>[p(c(Ce),null,{default:n(()=>[d(u(N.value?.is_active?c(B)(`providers.confirmToggle.titleDisable`):c(B)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),p(c(Oe),null,{default:n(()=>[d(u(N.value?.is_active?c(B)(`providers.confirmToggle.messageDisable`,{name:N.value?.name}):c(B)(`providers.confirmToggle.messageEnable`,{name:N.value?.name}))+` `,1),I.value.length?(y(),f(`div`,bn,[s(`div`,xn,u(c(B)(`providers.confirmToggle.dependencyWarning`)),1),(y(!0),f(l,null,m(I.value,e=>(y(),f(`div`,{key:e,class:`text-destructive text-sm`},u(e),1))),128))])):o(``,!0)]),_:1})]),_:1}),p(c(Ee),null,{default:n(()=>[p(c(we),null,{default:n(()=>[d(u(c(B)(`common.cancel`)),1)]),_:1}),p(c(ke),{onClick:it},{default:n(()=>[d(u(c(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Nn as default};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,F as r,K as i,Q as a,Rt as o,Ut as s,X as c,Y as l,Z as u,ct as d,jt as f,k as p,n as m,pt as h,r as g,ut as _}from"./button-DMmB7tDy.js";import{t as v}from"./Label-CRw4oQf2.js";import{t as y}from"./Switch-DXVDTQ8F.js";import{$ as b,r as x}from"./index-QPBBCV_W.js";import{n as S,t as C}from"./CardContent-DpdNrtkG.js";import{n as w,t as T}from"./CardTitle-mrTD9vua.js";var E=a({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e;return(e,r)=>(_(),l(`div`,{"data-slot":`card-description`,class:t(o(g)(`text-muted-foreground text-sm`,n.class))},[h(e.$slots,`default`)],2))}}),D={class:`p-6`},O={class:`text-lg font-semibold text-foreground mb-4`},k={class:`flex items-center gap-3`},A={class:`flex items-center gap-3`},j={class:`flex items-center gap-3`},M={class:`flex justify-end mt-4`},N={key:0,class:`flex items-center gap-1`},P={key:1},F=a({__name:`ProxyEnhancement`,setup(t){let{t:a}=r(),h=f(!0),g=f(!1),F=f(!1),I=f(!1);async function L(){try{let e=await p.getProxyEnhancement();h.value=e.tool_round_limit_enabled,g.value=e.tool_call_loop_enabled,F.value=e.stream_loop_enabled}catch(t){console.error(`Failed to load proxy enhancement config:`,t),x.error(e(t,a(`proxyEnhancement.loadFailed`)))}}async function R(){I.value=!0;try{await p.updateProxyEnhancement({tool_call_loop_enabled:g.value,stream_loop_enabled:F.value,tool_round_limit_enabled:h.value}),x.success(a(`common.saveSuccess`))}catch(t){console.error(`Failed to save proxy enhancement config:`,t),x.error(e(t,a(`proxyEnhancement.saveFailed`)))}finally{I.value=!1}}return d(()=>{L()}),(e,t)=>(_(),l(`div`,D,[i(`h2`,O,s(o(a)(`proxyEnhancement.title`)),1),u(o(S),null,{default:n(()=>[u(o(w),null,{default:n(()=>[u(o(T),null,{default:n(()=>[c(s(o(a)(`proxyEnhancement.loopDetection.toolRoundLimit.title`)),1)]),_:1}),u(o(E),null,{default:n(()=>[c(s(o(a)(`proxyEnhancement.loopDetection.toolRoundLimit.description`)),1)]),_:1})]),_:1}),u(o(C),null,{default:n(()=>[i(`div`,k,[u(o(y),{id:`tool-round-limit-toggle`,modelValue:h.value,"onUpdate:modelValue":t[0]||=e=>h.value=e},null,8,[`modelValue`]),u(o(v),{for:`tool-round-limit-toggle`},{default:n(()=>[c(s(h.value?o(a)(`proxyEnhancement.status.enabled`):o(a)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),u(o(S),{class:`mt-4`},{default:n(()=>[u(o(w),null,{default:n(()=>[u(o(T),null,{default:n(()=>[c(s(o(a)(`proxyEnhancement.loopDetection.toolCallLoop.title`)),1)]),_:1}),u(o(E),null,{default:n(()=>[c(s(o(a)(`proxyEnhancement.loopDetection.toolCallLoop.description`)),1)]),_:1})]),_:1}),u(o(C),null,{default:n(()=>[i(`div`,A,[u(o(y),{id:`tool-call-loop-toggle`,modelValue:g.value,"onUpdate:modelValue":t[1]||=e=>g.value=e},null,8,[`modelValue`]),u(o(v),{for:`tool-call-loop-toggle`},{default:n(()=>[c(s(g.value?o(a)(`proxyEnhancement.status.enabled`):o(a)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),u(o(S),{class:`mt-4`},{default:n(()=>[u(o(w),null,{default:n(()=>[u(o(T),null,{default:n(()=>[c(s(o(a)(`proxyEnhancement.loopDetection.streamLoop.title`)),1)]),_:1}),u(o(E),null,{default:n(()=>[c(s(o(a)(`proxyEnhancement.loopDetection.streamLoop.description`)),1)]),_:1})]),_:1}),u(o(C),null,{default:n(()=>[i(`div`,j,[u(o(y),{id:`stream-loop-toggle`,modelValue:F.value,"onUpdate:modelValue":t[2]||=e=>F.value=e},null,8,[`modelValue`]),u(o(v),{for:`stream-loop-toggle`},{default:n(()=>[c(s(F.value?o(a)(`proxyEnhancement.status.enabled`):o(a)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),i(`div`,M,[u(o(m),{disabled:I.value,onClick:R},{default:n(()=>[I.value?(_(),l(`span`,N,[u(o(b),{class:`w-4 h-4 animate-spin`}),c(` `+s(o(a)(`proxyEnhancement.dynamicModel.saving`)),1)])):(_(),l(`span`,P,s(o(a)(`common.save`)),1))]),_:1},8,[`disabled`])])]))}});export{F as default};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,Dt as r,F as i,G as a,H as o,J as s,K as c,Q as l,Rt as u,U as d,Ut as f,V as p,X as m,Y as h,Z as g,bt as _,ct as v,ft as y,j as b,jt as x,k as S,n as C,q as w,ut as T}from"./button-DMmB7tDy.js";import{r as E,t as D}from"./MappingEntryEditor-B7cc69AQ.js";import{t as O}from"./Checkbox-1rtzAXdv.js";import{t as k}from"./Label-CRw4oQf2.js";import{t as A}from"./Switch-DXVDTQ8F.js";import{b as j,f as M,g as N,h as P,m as F,p as I,r as L}from"./index-QPBBCV_W.js";import{n as R,t as z}from"./CardContent-DpdNrtkG.js";import{n as B,t as V}from"./CardTitle-mrTD9vua.js";import{t as H}from"./Input-1iFstr5N.js";import{i as U,n as W,r as ee,t as G}from"./ModelCard-PiwXmas-.js";import{n as K,t as te}from"./TransformRulesForm-BhiHKW55.js";var q={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,OpenCode:`opencode`,阶跃星辰:`stepfun`};function J(e){return q[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function ne(){let{t}=i(),n=x(`claude-code`),r=x([]),o=x(``),s=x(``),c=x(`anthropic`),l=x(``),u=x([]),d=x([]),f=x([]),p=x(new Set),m=x(!1),h=x(`idle`),g=x(`auto`),y=x(10),C=x(12e4),w=x(100),T=x(``),E=x(``),D=x(``),O=x([]),k=x([]),A=a(()=>o.value===`__custom__`),j=a(()=>W.find(e=>e.id===n.value)),M=a(()=>{if(!o.value||!s.value)return;let e=r.value.find(e=>e.group===o.value);if(e)return e.presets.find(e=>e.plan===s.value)}),N=x(``),P=x(``),F=a(()=>A.value?N.value:M.value?.baseUrl??``),I=a(()=>{if(A.value)return P.value;let e=M.value;if(!e)return``;let t=e.apiType===`anthropic`?`/v1/messages`:e.apiType===`openai-responses`?`/v1/responses`:`/v1/chat/completions`;return e.upstreamPath&&e.upstreamPath!==t?e.upstreamPath:``}),R=a(()=>r.value.find(e=>e.group===o.value)?.presets??[]),z=a(()=>!F.value.includes(`openai.com`)),B=a(()=>o.value?{provider:{id:A.value?`__new_custom__`:`__new_${J(o.value)}_${J(s.value)}__`,name:A.value?t(`quickSetup.provider.customProvider`):`${o.value} - ${s.value}`},models:u.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null),V=a(()=>{let e=k.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??128e3}))}));return B.value&&B.value.models.length>0?[...e,B.value]:e}),H=a(()=>{let e=o.value;return f.value.filter(t=>!t.providers||t.providers.length===0?!0:t.providers.includes(e))});function G(e,t){let n=[];return e.toLowerCase().includes(`deepseek`)&&(t===`anthropic`?n.push(`thinking-param`,`cache-control`,`thinking-blocks`,`orphan-tool-results`):n.push(`non-ds-tools`,`orphan-tool-results-oa`)),t===`openai`&&z.value&&n.push(`developer-role`),n}function K(e){u.value=e.models.map(t=>({name:t,contextWindow:U(t),enabled:!0,patches:G(t,e.apiType)}))}function te(e,t=128e3){u.value.push({name:e,contextWindow:t,enabled:!0,patches:G(e,c.value)})}function q(){let e=u.value.filter(e=>e.enabled),t;t=n.value===`pi`?e.map(e=>e.name):ee[n.value]??e.map(e=>e.name),d.value=t.map(r=>{let i=O.value.find(e=>e.client_model===r);if(i){let t={};try{t=JSON.parse(i.rule)}catch{}let n=t.targets??[];return{clientModel:r,targets:n.length>0?n.map(e=>({backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})):[{backend_model:e[0]?.name??``,provider_id:`__new__`}],existing:!0,existingId:i.id,tag:`existing`,active:!!i.is_active,originalActive:!!i.is_active}}return{clientModel:r,targets:[{backend_model:e[t.indexOf(r)]?.name??e[e.length-1]?.name??``,provider_id:`__new__`}],existing:!1,tag:n.value===`pi`?`auto`:`def`,active:!0}})}function ne(){p.value=new Set(H.value.filter(e=>!e.exists).map(e=>e.name))}function Y(e){n.value=e;let t=W.find(t=>t.id===e);if(t){o.value=``,s.value=``;for(let e of r.value)if(e.group===t.defaultProvider){o.value=e.group;for(let n of e.presets)if(n.plan===t.defaultPlan){s.value=n.plan,c.value=n.apiType,K(n);break}break}q(),ne()}}function X(e){if(o.value=e,s.value=``,u.value=[],e===`__custom__`)c.value=`openai`,N.value=``,P.value=``,u.value=[];else{let t=r.value.find(t=>t.group===e);if(t&&t.presets.length>0){let e=j.value,n=(e?t.presets.find(t=>t.apiType===e.format):null)??t.presets[0];s.value=n.plan,c.value=n.apiType,K(n)}}q(),ne()}function re(e){s.value=e;let t=r.value.find(e=>e.group===o.value);if(!t)return;let n=t.presets.find(t=>t.plan===e);n&&(c.value=n.apiType,K(n),q())}_(c,()=>{for(let e of u.value)e.patches=G(e.name,c.value)});function ie(e,t){let n=new Set(p.value);t?n.add(e):n.delete(e),p.value=n}function ae(e,t){let n=[...d.value];n[e]={...n[e],targets:t},d.value=n}function Z(e){let t=[...d.value];t[e]={...t[e],active:!t[e].active},d.value=t}function oe(e,t){let n=d.value.filter(t=>t.clientModel!==e);n.push({clientModel:e,targets:[{backend_model:t,provider_id:`__new__`}],existing:!1,tag:`cust`,active:!0}),d.value=n}function se(e){if(d.value.find(t=>t.clientModel===e)?.existing){L.error(t(`quickSetup.messages.existingMappingDelete`));return}d.value=d.value.filter(t=>t.clientModel!==e)}function ce(e){g.value=e,e===`auto`?y.value=10:e===`manual`&&(y.value=3)}async function le(){if(!l.value.trim()){h.value=`error`,L.error(t(`quickSetup.messages.fillApiKeyFirst`));return}h.value=`testing`,await new Promise(e=>setTimeout(e,800)),h.value=`ok`}function ue(){let e=T.value.trim(),n=E.value.trim(),r=D.value.trim();if(!e&&!n&&!r)return;let i={};if(e)try{i.inject_headers=JSON.parse(e)}catch{return L.error(t(`quickSetup.messages.injectHeadersJsonError`)),!1}if(n&&(i.drop_fields=n.split(`,`).map(e=>e.trim()).filter(Boolean)),r)try{i.request_defaults=JSON.parse(r)}catch{return L.error(t(`quickSetup.messages.requestDefaultsJsonError`)),!1}return Object.keys(i).length>0?i:void 0}async function de(){if(!M.value){L.error(t(`quickSetup.messages.selectProviderAndPlan`));return}if(!l.value.trim()){L.error(t(`quickSetup.messages.fillApiKey`));return}m.value=!0;try{let e={provider:{name:A.value?`custom-${Date.now()}`:`${J(o.value)}-${J(s.value)}`,api_type:c.value,base_url:F.value,upstream_path:I.value||void 0,api_key:l.value.trim(),models:u.value.map(e=>({name:e.name,context_window:e.contextWindow,patches:e.patches.length>0?e.patches:void 0})),concurrency_mode:g.value,max_concurrency:g.value===`none`?void 0:y.value,queue_timeout_ms:g.value===`none`?void 0:C.value,max_queue_size:g.value===`none`?void 0:w.value},mappings:d.value.filter(e=>e.targets[0]?.backend_model).map(e=>({client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``})),retry_rules:H.value.filter(e=>p.value.has(e.name)&&!e.exists).map(e=>({name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms})),transform_rules:(()=>{let e=ue();if(e===!1)throw Error(`__transform_invalid__`);return e})()};await S.quickSetup(e);let n=[];for(let e of d.value)if(e.existing&&e.existingId&&e.originalActive!==void 0&&e.active!==e.originalActive)try{await S.toggleMappingGroup(e.existingId)}catch{n.push(e.clientModel)}n.length>0?L.success(t(`quickSetup.messages.setupCompleteWithErrors`,{count:n.length})):L.success(t(`quickSetup.messages.setupComplete`)),await new Promise(e=>setTimeout(e,1500)),b.push(`/`)}catch(n){L.error(e(n,t(`quickSetup.messages.setupFailed`)))}finally{m.value=!1}}return v(async()=>{try{let[e,t,n,i]=await Promise.all([S.recommended.getProviders(),S.recommended.getRetryRules(),S.getMappingGroups().catch(()=>[]),S.getProviders().catch(()=>[])]);r.value=e,f.value=t,O.value=n,k.value=i,Y(`claude-code`)}catch(n){L.error(e(n,t(`quickSetup.messages.loadFailed`)))}}),{clientType:n,providerGroups:r,selectedGroup:o,selectedPlan:s,apiType:c,apiKey:l,modelConfigs:u,mappingEntries:d,allRecommendedRules:f,recommendedRules:H,selectedRetryRules:p,saving:m,connectionStatus:h,currentClient:j,currentPreset:M,baseUrl:F,customBaseUrl:N,upstreamPath:I,customUpstreamPath:P,isCustomProvider:A,availablePlans:R,isNonOpenaiEndpoint:z,concurrencyMode:g,maxConcurrency:y,queueTimeoutMs:C,maxQueueSize:w,transformInjectHeaders:T,transformDropFields:E,transformRequestDefaults:D,existingMappings:O,allProviders:k,allProviderGroups:V,selectClient:Y,onProviderChange:X,onPlanChange:re,initModels:K,getDefaultPatches:G,updateMappings:q,updateMappingTargets:ae,toggleMappingActive:Z,addMappingEntry:oe,removeMappingEntry:se,toggleRetryRule:ie,onConcurrencyModeChange:ce,testConnection:le,submit:de,addCustomModel:te}}var Y={class:`space-y-1.5`},X={class:`flex items-start gap-2 px-3 py-2`},re=[`onClick`],ie={class:`flex items-center gap-1.5 shrink-0 pt-0.5`},ae={key:0,class:`py-3 text-center text-xs text-muted-foreground`},Z={class:`flex items-center gap-2 pt-2 border-t mt-2`},oe=l({__name:`QuickSetupMappingList`,props:{entries:{},providerGroups:{}},emits:[`update:targets`,`toggle-active`,`add`],setup(e,{emit:t}){let{t:r}=i(),a=t,l=x(new Set);function p(e){let t=new Set(l.value);t.has(e)?t.delete(e):t.add(e),l.value=t}let _=x(``),v=x(``);function b(){return _.value.trim().length>0&&v.value.trim().length>0}function S(){let e=_.value.trim(),t=v.value.trim();e&&t&&(a(`add`,e,t),_.value=``,v.value=``)}function w(e){e.key===`Enter`&&b()&&(e.preventDefault(),S())}return(t,i)=>(T(),h(`div`,Y,[(T(!0),h(d,null,y(e.entries,(t,n)=>(T(),h(`div`,{key:t.clientModel,class:`rounded-md border border-border`},[c(`div`,X,[c(`div`,{class:`flex-1 min-w-0 cursor-pointer`,onClick:e=>p(t.clientModel)},[g(D,{entry:t,"provider-groups":e.providerGroups,expanded:l.value.has(t.clientModel),editable:!0,"onUpdate:targets":e=>a(`update:targets`,n,e)},null,8,[`entry`,`provider-groups`,`expanded`,`onUpdate:targets`])],8,re),c(`div`,ie,[g(u(A),{"model-value":t.active,"onUpdate:modelValue":e=>a(`toggle-active`,n),class:`scale-75`,onClick:i[0]||=o(()=>{},[`stop`])},null,8,[`model-value`,`onUpdate:modelValue`])])])]))),128)),e.entries.length===0?(T(),h(`p`,ae,f(u(r)(`providers.shared.noMappings`)),1)):s(``,!0),c(`div`,Z,[g(u(H),{modelValue:_.value,"onUpdate:modelValue":i[1]||=e=>_.value=e,placeholder:u(r)(`providers.shared.clientModel`),class:`h-8 flex-1 text-xs font-mono`,onKeydown:w},null,8,[`modelValue`,`placeholder`]),g(u(E),{class:`size-3 shrink-0 text-muted-foreground`}),g(u(H),{modelValue:v.value,"onUpdate:modelValue":i[2]||=e=>v.value=e,placeholder:u(r)(`providers.shared.targetModel`),class:`h-8 flex-1 text-xs font-mono`,onKeydown:w},null,8,[`modelValue`,`placeholder`]),g(u(C),{size:`sm`,variant:`outline`,class:`h-8 shrink-0`,disabled:!b(),onClick:S},{default:n(()=>[m(f(u(r)(`providers.shared.add`)),1)]),_:1},8,[`disabled`])])]))}}),se={class:`p-6 space-y-4 pb-20`},ce={class:`flex gap-2 flex-wrap`},le=[`onClick`],ue={class:`text-left`},de={class:`font-medium text-sm leading-tight`},fe={class:`text-[10px] opacity-60 leading-tight`},pe={class:`flex items-end gap-2`},me={class:`w-40 space-y-1`},he={class:`w-48 space-y-1`},ge={class:`w-80 space-y-1`},_e={class:`w-48 space-y-1`},ve={class:`w-28 space-y-1`},ye={class:`w-48 space-y-1`},be={class:`w-72 space-y-1`},xe={key:0,class:`w-48 space-y-1`},Se={class:`w-64 space-y-1`},Ce={class:`shrink-0 space-y-1`},we={class:`border-t pt-3`},Te={class:`flex items-center justify-between mb-2`},Ee={class:`text-xs font-medium text-muted-foreground`},De={key:0,class:`py-4 text-center text-xs text-muted-foreground`},Oe={key:1,class:`grid grid-cols-4 gap-2`},ke={key:2,class:`flex gap-2 mt-2`},Ae={class:`border-t pt-3`},je={class:`flex items-center justify-between mb-2`},Me={class:`text-xs font-medium text-muted-foreground`},Ne={class:`grid grid-cols-5 gap-4`},Pe={class:`flex items-center justify-between`},Fe={class:`col-span-2 space-y-4`},Ie={class:`flex items-center justify-between`},Le={key:0,class:`py-6 text-center text-xs text-muted-foreground`},Re={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},ze=[`onClick`],Be={class:`flex-1 min-w-0`},Ve={class:`flex items-center gap-1.5`},He={class:`text-xs font-medium`},Ue={class:`text-[10px] text-muted-foreground mt-0.5`},We={class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},Ge={class:`text-xs text-muted-foreground flex items-center gap-1.5`},Ke={class:`flex items-center gap-2`},Q=l({__name:`QuickSetup`,setup(e){let{t:l}=i(),{clientType:_,providerGroups:v,selectedGroup:b,selectedPlan:S,apiType:E,apiKey:D,modelConfigs:A,mappingEntries:U,allRecommendedRules:ee,recommendedRules:q,selectedRetryRules:J,saving:Y,connectionStatus:X,baseUrl:re,availablePlans:ie,isNonOpenaiEndpoint:ae,isCustomProvider:Z,customBaseUrl:Q,upstreamPath:qe,customUpstreamPath:Je,concurrencyMode:Ye,maxConcurrency:Xe,queueTimeoutMs:Ze,maxQueueSize:Qe,allProviderGroups:$e,transformInjectHeaders:et,transformDropFields:tt,transformRequestDefaults:nt,selectClient:rt,onProviderChange:it,onPlanChange:at,updateMappingTargets:ot,toggleMappingActive:st,addMappingEntry:ct,toggleRetryRule:lt,onConcurrencyModeChange:ut,testConnection:dt,submit:ft,addCustomModel:pt}=ne(),$=x(``);function mt(){$.value.trim()&&(pt($.value.trim()),$.value=``)}let ht=a(()=>A.value.filter(e=>e.enabled).length),gt=a(()=>W.find(e=>e.id===_.value)?.name??_.value);function _t(e,t){let n=[...A.value];n[e]=t,A.value=n}function vt(e){A.value=A.value.filter((t,n)=>n!==e)}function yt(){if(!b.value){L.error(l(`quickSetup.messages.selectProvider`));return}if(!D.value.trim()){L.error(l(`quickSetup.messages.fillApiKey`));return}if(ht.value===0){L.error(l(`quickSetup.messages.enableOneModel`));return}L.success(l(`quickSetup.messages.validationPassed`))}return(e,i)=>(T(),h(d,null,[c(`div`,se,[g(u(R),null,{default:n(()=>[g(u(B),{class:`pb-3`},{default:n(()=>[g(u(V),{class:`text-sm font-medium`},{default:n(()=>[m(f(u(l)(`quickSetup.client.selectClient`)),1)]),_:1})]),_:1}),g(u(z),null,{default:n(()=>[c(`div`,ce,[(T(!0),h(d,null,y(u(W),e=>(T(),h(`button`,{key:e.id,class:t([`flex items-center gap-2.5 px-4 py-2.5 rounded-lg border text-sm transition-all cursor-pointer`,u(_)===e.id?`border-primary bg-primary/5 text-primary ring-1 ring-primary/20`:`border-border hover:border-muted-foreground/30 text-muted-foreground hover:text-foreground`]),onClick:t=>u(rt)(e.id)},[c(`span`,{class:t([`w-7 h-7 rounded-md text-xs font-bold flex items-center justify-center shrink-0`,{"bg-purple-600 text-white":e.iconClass===`cc`,"bg-emerald-600 text-white":e.iconClass===`pi`,"bg-blue-600 text-white":e.iconClass===`oa`,"bg-orange-600 text-white":e.iconClass===`an`}])},f(e.icon),3),c(`div`,ue,[c(`div`,de,f(e.name),1),c(`div`,fe,f(e.format)+` · `+f(u(l)(e.descriptionKey)),1)])],10,le))),128))])]),_:1})]),_:1}),g(u(R),null,{default:n(()=>[g(u(B),{class:`pb-3`},{default:n(()=>[g(u(V),{class:`text-sm font-medium`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.config`)),1)]),_:1})]),_:1}),g(u(z),{class:`space-y-4`},{default:n(()=>[c(`div`,pe,[c(`div`,me,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.label`)),1)]),_:1}),g(u(N),{"model-value":u(b),"onUpdate:modelValue":i[0]||=e=>u(it)(e)},{default:n(()=>[g(u(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:n(()=>[g(u(M),{placeholder:u(l)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),g(u(P),null,{default:n(()=>[g(u(F),{value:`__custom__`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.custom`)),1)]),_:1}),(T(!0),h(d,null,y(u(v),e=>(T(),w(u(F),{key:e.group,value:e.group},{default:n(()=>[m(f(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),u(Z)?(T(),h(d,{key:0},[c(`div`,he,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.format`)),1)]),_:1}),g(u(N),{modelValue:u(E),"onUpdate:modelValue":i[1]||=e=>r(E)?E.value=e:null},{default:n(()=>[g(u(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:n(()=>[g(u(M))]),_:1}),g(u(P),null,{default:n(()=>[g(u(F),{value:`anthropic`},{default:n(()=>[...i[15]||=[m(`Anthropic Messages`,-1)]]),_:1}),g(u(F),{value:`openai`},{default:n(()=>[...i[16]||=[m(`OpenAI Chat Completions`,-1)]]),_:1}),g(u(F),{value:`openai-responses`},{default:n(()=>[...i[17]||=[m(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),c(`div`,ge,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[...i[18]||=[m(`Base URL`,-1)]]),_:1}),g(u(H),{modelValue:u(Q),"onUpdate:modelValue":i[2]||=e=>r(Q)?Q.value=e:null,placeholder:`https://api.example.com/v1`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])]),c(`div`,_e,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[...i[19]||=[m(`Upstream Path`,-1)]]),_:1}),g(u(H),{modelValue:u(Je),"onUpdate:modelValue":i[3]||=e=>r(Je)?Je.value=e:null,placeholder:`/v1/chat/completions`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])])],64)):(T(),h(d,{key:1},[c(`div`,ve,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.plan`)),1)]),_:1}),g(u(N),{"model-value":u(S),"onUpdate:modelValue":i[4]||=e=>u(at)(e)},{default:n(()=>[g(u(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:n(()=>[g(u(M),{placeholder:u(l)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),g(u(P),null,{default:n(()=>[(T(!0),h(d,null,y(u(ie),e=>(T(),w(u(F),{key:e.plan,value:e.plan},{default:n(()=>[m(f(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),c(`div`,ye,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.format`)),1)]),_:1}),g(u(N),{modelValue:u(E),"onUpdate:modelValue":i[5]||=e=>r(E)?E.value=e:null},{default:n(()=>[g(u(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:n(()=>[g(u(M))]),_:1}),g(u(P),null,{default:n(()=>[g(u(F),{value:`anthropic`},{default:n(()=>[...i[20]||=[m(`Anthropic Messages`,-1)]]),_:1}),g(u(F),{value:`openai`},{default:n(()=>[...i[21]||=[m(`OpenAI Chat Completions`,-1)]]),_:1}),g(u(F),{value:`openai-responses`},{default:n(()=>[...i[22]||=[m(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),c(`div`,be,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[...i[23]||=[m(`Base URL`,-1)]]),_:1}),g(u(H),{"model-value":u(re),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])]),u(qe)?(T(),h(`div`,xe,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[...i[24]||=[m(`Upstream Path`,-1)]]),_:1}),g(u(H),{"model-value":u(qe),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])])):s(``,!0)],64)),c(`div`,Se,[g(u(k),{class:`text-xs text-muted-foreground`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.apiKey`)),1)]),_:1}),g(u(H),{modelValue:u(D),"onUpdate:modelValue":i[6]||=e=>r(D)?D.value=e:null,type:`password`,placeholder:u(l)(`quickSetup.provider.apiKeyPlaceholder`),class:`md:text-xs h-7`},null,8,[`modelValue`,`placeholder`])]),c(`div`,Ce,[g(u(k),{class:`text-xs text-muted-foreground invisible`},{default:n(()=>[m(f(u(l)(`quickSetup.provider.connect`)),1)]),_:1}),g(u(C),{variant:`outline`,size:`sm`,disabled:u(X)===`testing`,onClick:u(dt)},{default:n(()=>[u(X)===`testing`?(T(),h(d,{key:0},[i[25]||=c(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[c(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),c(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),m(` `+f(u(l)(`quickSetup.provider.testing`)),1)],64)):u(X)===`ok`?(T(),h(d,{key:1},[m(f(u(l)(`quickSetup.provider.connected`)),1)],64)):(T(),h(d,{key:2},[m(f(u(l)(`quickSetup.provider.test`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])]),c(`div`,we,[c(`div`,Te,[c(`span`,Ee,f(u(l)(`quickSetup.model.config`)),1),g(u(j),{variant:`secondary`,class:`text-[10px]`},{default:n(()=>[m(f(ht.value)+`/`+f(u(A).length),1)]),_:1})]),u(A).length===0?(T(),h(`p`,De,f(u(l)(`quickSetup.model.selectProviderFirst`)),1)):(T(),h(`div`,Oe,[(T(!0),h(d,null,y(u(A),(e,t)=>(T(),w(G,{key:e.name,model:e,"api-type":u(E),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":u(ae),"onUpdate:model":e=>_t(t,e),onRemove:e=>vt(t)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`onUpdate:model`,`onRemove`]))),128))])),u(Z)?(T(),h(`div`,ke,[g(u(H),{modelValue:$.value,"onUpdate:modelValue":i[7]||=e=>$.value=e,placeholder:u(l)(`quickSetup.model.namePlaceholder`),onKeydown:p(o(mt,[`prevent`]),[`enter`]),class:`flex-1 md:text-xs h-7`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),g(u(C),{type:`button`,variant:`outline`,size:`sm`,onClick:mt,disabled:!$.value.trim()},{default:n(()=>[m(f(u(l)(`common.add`)),1)]),_:1},8,[`disabled`])])):s(``,!0)]),c(`div`,Ae,[c(`div`,je,[c(`span`,Me,f(u(l)(`quickSetup.concurrency.control`)),1)]),g(K,{mode:u(Ye),"max-concurrency":u(Xe),"queue-timeout-ms":u(Ze),"max-queue-size":u(Qe),"onUpdate:mode":u(ut),"onUpdate:maxConcurrency":i[8]||=e=>Xe.value=e,"onUpdate:queueTimeoutMs":i[9]||=e=>Ze.value=e,"onUpdate:maxQueueSize":i[10]||=e=>Qe.value=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`,`onUpdate:mode`])])]),_:1})]),_:1}),c(`div`,Ne,[g(u(R),{class:`col-span-3`},{default:n(()=>[g(u(B),{class:`pb-3`},{default:n(()=>[c(`div`,Pe,[g(u(V),{class:`text-sm font-medium`},{default:n(()=>[m(f(u(l)(`quickSetup.mapping.title`)),1)]),_:1}),g(u(j),{variant:`secondary`,class:`text-[10px]`},{default:n(()=>[m(f(u(l)(`quickSetup.mapping.count`,{count:u(U).length})),1)]),_:1})])]),_:1}),g(u(z),null,{default:n(()=>[g(oe,{entries:u(U),"provider-groups":u($e),"onUpdate:targets":u(ot),onToggleActive:u(st),onAdd:u(ct)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onToggleActive`,`onAdd`])]),_:1})]),_:1}),c(`div`,Fe,[g(u(R),null,{default:n(()=>[g(u(B),{class:`pb-3`},{default:n(()=>[c(`div`,Ie,[g(u(V),{class:`text-sm font-medium`},{default:n(()=>[m(f(u(l)(`quickSetup.retry.title`)),1)]),_:1}),g(u(j),{variant:`secondary`,class:`text-[10px]`},{default:n(()=>[m(f(u(l)(`quickSetup.retry.selectedCount`,{count:u(J).size})),1)]),_:1})])]),_:1}),g(u(z),null,{default:n(()=>[u(q).length===0?(T(),h(`div`,Le,[u(ee).length===0?(T(),h(d,{key:0},[m(f(u(l)(`quickSetup.retry.allCreated`)),1)],64)):(T(),h(d,{key:1},[m(f(u(l)(`quickSetup.retry.selectProviderFirst`)),1)],64))])):(T(),h(`div`,Re,[(T(!0),h(d,null,y(u(q),e=>(T(),h(`div`,{key:e.name,class:t([`flex items-start gap-2.5 rounded-md transition-colors`,e.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:t=>!e.exists&&u(lt)(e.name,!u(J).has(e.name))},[g(u(O),{checked:e.exists?!0:u(J).has(e.name),disabled:e.exists,class:`mt-0.5`,"onUpdate:checked":t=>u(lt)(e.name,!!t),onClick:i[11]||=o(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),c(`div`,Be,[c(`div`,Ve,[c(`span`,He,f(e.name),1),e.exists?(T(),w(u(j),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:n(()=>[m(f(u(l)(`quickSetup.retry.configured`)),1)]),_:1})):e.providers&&e.providers.length>0?(T(),w(u(j),{key:1,variant:`outline`,class:`text-[9px] px-1 py-0 leading-none`},{default:n(()=>[m(f(e.providers[0]),1)]),_:2},1024)):(T(),w(u(j),{key:2,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none`},{default:n(()=>[m(f(u(l)(`quickSetup.retry.general`)),1)]),_:1}))]),c(`div`,Ue,f(e.status_code)+` · `+f(e.retry_strategy===`fixed`?u(l)(`quickSetup.retry.fixed`):u(l)(`quickSetup.retry.exponential`))+` · `+f(e.retry_delay_ms/1e3)+`s · `+f(e.max_retries)+f(u(l)(`quickSetup.retry.times`)),1)])],10,ze))),128))]))]),_:1})]),_:1}),g(u(R),null,{default:n(()=>[g(u(B),{class:`pb-3`},{default:n(()=>[g(u(V),{class:`text-sm font-medium`},{default:n(()=>[m(f(u(l)(`quickSetup.transform.title`)),1)]),_:1})]),_:1}),g(u(z),null,{default:n(()=>[g(te,{"inject-headers":u(et),"drop-fields":u(tt),"request-defaults":u(nt),"onUpdate:injectHeaders":i[12]||=e=>et.value=e,"onUpdate:dropFields":i[13]||=e=>tt.value=e,"onUpdate:requestDefaults":i[14]||=e=>nt.value=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])]),_:1})]),_:1})])])]),c(`div`,We,[c(`div`,Ge,[u(b)?(T(),h(d,{key:0},[g(u(j),{variant:`secondary`,class:`text-[10px]`},{default:n(()=>[m(f(gt.value),1)]),_:1}),i[26]||=c(`span`,{class:`text-muted-foreground/50`},`→`,-1),g(u(j),{variant:`secondary`,class:`text-[10px]`},{default:n(()=>[m(f(u(Z)?u(l)(`quickSetup.provider.custom`):u(b)),1)]),_:1})],64)):s(``,!0),ht.value>0?(T(),h(d,{key:1},[i[27]||=c(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),c(`span`,null,f(u(l)(`quickSetup.footer.models`,{count:ht.value})),1)],64)):s(``,!0),u(U).length>0?(T(),h(d,{key:2},[i[28]||=c(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),c(`span`,null,f(u(l)(`quickSetup.footer.mappings`,{count:u(U).length})),1)],64)):s(``,!0),u(J).size>0?(T(),h(d,{key:3},[i[29]||=c(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),c(`span`,null,f(u(l)(`quickSetup.footer.rules`,{count:u(J).size})),1)],64)):s(``,!0)]),c(`div`,Ke,[g(u(C),{size:`sm`,variant:`outline`,onClick:yt},{default:n(()=>[m(f(u(l)(`quickSetup.footer.validate`)),1)]),_:1}),g(u(C),{size:`sm`,disabled:u(Y),onClick:u(ft)},{default:n(()=>[u(Y)?(T(),h(d,{key:0},[i[30]||=c(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[c(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),c(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),m(` `+f(u(l)(`quickSetup.footer.saving`)),1)],64)):(T(),h(d,{key:1},[m(f(u(l)(`quickSetup.footer.saveConfig`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{Q as default};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,F as r,G as i,H as ee,J as a,K as o,Q as te,Rt as s,U as c,Ut as l,X as u,Y as d,Z as f,ct as ne,ft as p,jt as m,k as h,n as g,q as _,ut as v}from"./button-DMmB7tDy.js";import{t as y}from"./Checkbox-1rtzAXdv.js";import{n as re,t as ie}from"./CollapsibleContent-Gd8G1WPI.js";import{t as ae}from"./CollapsibleTrigger-DEs_2Gam.js";import{a as oe,c as b,d as x,f as S,l as C,n as se,o as ce,r as le,s as w,t as ue,u as T}from"./dialog-B68sJflZ.js";import{t as E}from"./Label-CRw4oQf2.js";import{a as de,b as D,c as fe,d as pe,f as me,g as he,h as ge,i as _e,l as ve,m as O,o as ye,p as k,r as A,s as j,tt as M}from"./index-QPBBCV_W.js";import{n as N,t as P}from"./CardContent-DpdNrtkG.js";import{n as be,t as xe}from"./CardTitle-mrTD9vua.js";import{t as F}from"./Input-1iFstr5N.js";var Se={class:`p-6`},Ce={class:`flex items-center justify-between mb-4`},we={class:`text-lg font-semibold text-foreground`},Te={class:`bg-card rounded-lg border overflow-hidden`},Ee={class:`flex items-center gap-2`},De={class:`text-xs text-muted-foreground`},Oe={key:0,class:`text-sm text-destructive mt-1`},ke={key:0,class:`text-sm text-destructive mt-1`},Ae={key:0,class:`text-sm text-destructive mt-1`},je={class:`grid grid-cols-2 gap-3`},Me={key:0,class:`text-sm text-destructive mt-1`},Ne={key:0,class:`text-sm text-destructive mt-1`},Pe={key:0},Fe={key:0,class:`text-sm text-destructive mt-1`},Ie={class:`flex items-center gap-2`},Le={class:`flex items-center justify-between`},Re={class:`flex items-center justify-between mb-3`},ze={class:`flex items-center gap-2`},Be={class:`text-sm text-muted-foreground`},I=100,L=599,R=100,z=100,B=te({__name:`RetryRules`,setup(te){let{t:B}=r(),V={name:``,status_code:429,body_pattern:``,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4},H=m([]),U=m(!1),W=m(null),G=m(null),K=m({...V}),q=m({});function Ve(){let e={};K.value.name.trim()||(e.name=B(`retryRules.validation.nameRequired`));let t=Number(K.value.status_code);if((!Number.isInteger(t)||t<I||t>L)&&(e.status_code=B(`retryRules.validation.statusCodeRange`,{min:I,max:L})),!K.value.body_pattern.trim())e.body_pattern=B(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(K.value.body_pattern)}catch{e.body_pattern=B(`retryRules.validation.bodyPatternInvalid`)}let n=Number(K.value.retry_delay_ms);(!n||n<R)&&(e.retry_delay_ms=B(`retryRules.validation.delayMin`,{min:R}));let r=Number(K.value.max_retries);if((!Number.isInteger(r)||r<0||r>z)&&(e.max_retries=B(`retryRules.validation.retriesRange`,{max:z})),K.value.retry_strategy===`exponential`){let t=Number(K.value.max_delay_ms);(!t||t<R)&&(e.max_delay_ms=B(`retryRules.validation.delayMin`,{min:R}))}return q.value=e,Object.keys(e).length===0}async function J(){try{H.value=await h.getRetryRules()}catch(t){console.error(`Failed to load retry rules:`,t),A.error(e(t,B(`retryRules.messages.loadFailed`)))}}function He(){W.value=null,K.value={...V},q.value={},U.value=!0}function Ue(e){W.value=e.id,K.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,is_active:!!e.is_active,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms},q.value={},U.value=!0}async function We(){if(Ve())try{let e={name:K.value.name,status_code:Number(K.value.status_code),body_pattern:K.value.body_pattern,is_active:+!!K.value.is_active,retry_strategy:K.value.retry_strategy,retry_delay_ms:Number(K.value.retry_delay_ms),max_retries:Number(K.value.max_retries),max_delay_ms:Number(K.value.max_delay_ms)};W.value?await h.updateRetryRule(W.value,e):await h.createRetryRule(e),U.value=!1,await J()}catch(t){console.error(`Failed to save retry rule:`,t),A.error(e(t,B(`retryRules.messages.saveFailed`)))}}function Ge(e){G.value=e}async function Y(){let t=G.value;if(t){G.value=null;try{await h.deleteRetryRule(t.id),await J()}catch(t){console.error(`Failed to delete retry rule:`,t),A.error(e(t,B(`retryRules.messages.deleteFailed`)))}}}let X=m(!1),Z=m([]),Q=m(new Set),Ke=i(()=>Z.value.length>0&&Q.value.size===Z.value.length);async function $(){try{Z.value=await h.recommended.getRetryRules()}catch{Z.value=[]}}function qe(e){let t=new Set(Q.value);t.has(e)?t.delete(e):t.add(e),Q.value=t}function Je(e){Q.value=e===!0?new Set(Z.value.map(e=>e.name)):new Set}async function Ye(){let e=Z.value.filter(e=>Q.value.has(e.name));for(let t of e)await h.createRetryRule({name:t.name,status_code:t.status_code,body_pattern:t.body_pattern,is_active:1,retry_strategy:t.retry_strategy,retry_delay_ms:t.retry_delay_ms,max_retries:t.max_retries,max_delay_ms:t.max_delay_ms});A.success(B(`retryRules.messages.addedCount`,{count:e.length})),Q.value=new Set,await Promise.allSettled([$(),J()])}return ne(()=>{J(),$()}),(e,r)=>(v(),d(`div`,Se,[o(`div`,Ce,[o(`h2`,we,l(s(B)(`retryRules.title`)),1),f(s(g),{onClick:He,class:`flex items-center gap-1`},{default:n(()=>[r[18]||=o(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[o(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),u(` `+l(s(B)(`retryRules.addRule`)),1)]),_:1})]),o(`div`,Te,[f(s(S),null,{default:n(()=>[f(s(w),null,{default:n(()=>[f(s(C),{class:`bg-muted`},{default:n(()=>[f(s(b),{class:`text-muted-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.tableHeaders.name`)),1)]),_:1}),f(s(b),{class:`text-muted-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),f(s(b),{class:`text-muted-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),f(s(b),{class:`text-muted-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),f(s(b),{class:`text-muted-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.tableHeaders.status`)),1)]),_:1}),f(s(b),{class:`text-right text-muted-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),f(s(x),null,{default:n(()=>[(v(!0),d(c,null,p(H.value,e=>(v(),_(s(C),{key:e.id},{default:n(()=>[f(s(T),{class:`font-mono text-sm`},{default:n(()=>[u(l(e.name),1)]),_:2},1024),f(s(T),null,{default:n(()=>[u(l(e.status_code),1)]),_:2},1024),f(s(T),{class:`font-mono text-xs text-muted-foreground`},{default:n(()=>[u(l(e.body_pattern),1)]),_:2},1024),f(s(T),null,{default:n(()=>[o(`div`,Ee,[f(s(D),{variant:`outline`},{default:n(()=>[u(l(e.retry_strategy===`fixed`?s(B)(`retryRules.strategy.fixed`):s(B)(`retryRules.strategy.exponential`)),1)]),_:2},1024),o(`span`,De,[u(l(e.retry_delay_ms/1e3)+`s · `+l(s(B)(`retryRules.times`,{count:e.max_retries}))+` `,1),e.retry_strategy===`exponential`?(v(),d(c,{key:0},[u(` · `+l(s(B)(`retryRules.upperLimit`,{value:e.max_delay_ms/1e3})),1)],64)):a(``,!0)])])]),_:2},1024),f(s(T),null,{default:n(()=>[f(s(D),{variant:e.is_active?`default`:`secondary`},{default:n(()=>[u(l(e.is_active?s(B)(`common.enabled`):s(B)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),f(s(T),{class:`text-right`},{default:n(()=>[f(s(g),{variant:`ghost`,size:`sm`,onClick:t=>Ue(e),class:`mr-2`},{default:n(()=>[u(l(s(B)(`common.edit`)),1)]),_:1},8,[`onClick`]),f(s(g),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>Ge(e)},{default:n(()=>[u(l(s(B)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),H.value.length===0?(v(),_(s(C),{key:0},{default:n(()=>[f(s(T),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:n(()=>[u(l(s(B)(`retryRules.noRules`)),1)]),_:1})]),_:1})):a(``,!0)]),_:1})]),_:1})]),f(s(ce),{open:U.value,"onUpdate:open":r[15]||=e=>U.value=e},{default:n(()=>[f(s(oe),null,{default:n(()=>[f(s(se),null,{default:n(()=>[f(s(ue),null,{default:n(()=>[u(l(W.value?s(B)(`retryRules.dialog.editRule`):s(B)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),o(`form`,{onSubmit:ee(We,[`prevent`]),class:`space-y-3`},[o(`div`,null,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.name`)),1)]),_:1}),f(s(F),{modelValue:K.value.name,"onUpdate:modelValue":r[0]||=e=>K.value.name=e,type:`text`,required:``,onInput:r[1]||=e=>delete q.value.name},null,8,[`modelValue`]),q.value.name?(v(),d(`p`,Oe,l(q.value.name),1)):a(``,!0)]),o(`div`,null,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.statusCode`)),1)]),_:1}),f(s(F),{modelValue:K.value.status_code,"onUpdate:modelValue":r[2]||=e=>K.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:r[3]||=e=>delete q.value.status_code},null,8,[`modelValue`]),q.value.status_code?(v(),d(`p`,ke,l(q.value.status_code),1)):a(``,!0)]),o(`div`,null,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.bodyPattern`)),1)]),_:1}),f(s(F),{modelValue:K.value.body_pattern,"onUpdate:modelValue":r[4]||=e=>K.value.body_pattern=e,type:`text`,placeholder:s(B)(`retryRules.dialog.bodyPatternPlaceholder`),required:``,onInput:r[5]||=e=>delete q.value.body_pattern},null,8,[`modelValue`,`placeholder`]),q.value.body_pattern?(v(),d(`p`,Ae,l(q.value.body_pattern),1)):a(``,!0)]),o(`div`,null,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),f(s(he),{modelValue:K.value.retry_strategy,"onUpdate:modelValue":r[6]||=e=>K.value.retry_strategy=e},{default:n(()=>[f(s(k),{class:`w-full`},{default:n(()=>[f(s(me),{placeholder:s(B)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),f(s(ge),null,{default:n(()=>[f(s(O),{value:`exponential`},{default:n(()=>[u(l(s(B)(`retryRules.strategy.exponential`)),1)]),_:1}),f(s(O),{value:`fixed`},{default:n(()=>[u(l(s(B)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),o(`div`,je,[o(`div`,null,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(K.value.retry_strategy===`fixed`?s(B)(`retryRules.dialog.intervalMs`):s(B)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),f(s(F),{modelValue:K.value.retry_delay_ms,"onUpdate:modelValue":r[7]||=e=>K.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[8]||=e=>delete q.value.retry_delay_ms},null,8,[`modelValue`]),q.value.retry_delay_ms?(v(),d(`p`,Me,l(q.value.retry_delay_ms),1)):a(``,!0)]),o(`div`,null,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.maxRetries`)),1)]),_:1}),f(s(F),{modelValue:K.value.max_retries,"onUpdate:modelValue":r[9]||=e=>K.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:r[10]||=e=>delete q.value.max_retries},null,8,[`modelValue`]),q.value.max_retries?(v(),d(`p`,Ne,l(q.value.max_retries),1)):a(``,!0)])]),K.value.retry_strategy===`exponential`?(v(),d(`div`,Pe,[f(s(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),f(s(F),{modelValue:K.value.max_delay_ms,"onUpdate:modelValue":r[11]||=e=>K.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:r[12]||=e=>delete q.value.max_delay_ms},null,8,[`modelValue`]),q.value.max_delay_ms?(v(),d(`p`,Fe,l(q.value.max_delay_ms),1)):a(``,!0)])):a(``,!0),o(`div`,Ie,[f(s(y),{modelValue:K.value.is_active,"onUpdate:modelValue":r[13]||=e=>K.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),f(s(E),{for:`rule-active`,class:`text-sm text-foreground`},{default:n(()=>[u(l(s(B)(`retryRules.dialog.enable`)),1)]),_:1})]),f(s(le),null,{default:n(()=>[f(s(g),{type:`button`,variant:`outline`,onClick:r[14]||=e=>U.value=!1},{default:n(()=>[u(l(s(B)(`common.cancel`)),1)]),_:1}),f(s(g),{type:`submit`},{default:n(()=>[u(l(s(B)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),f(s(pe),{open:!!G.value,"onUpdate:open":r[16]||=e=>{e||(G.value=null)}},{default:n(()=>[f(s(fe),null,{default:n(()=>[f(s(de),null,{default:n(()=>[f(s(_e),null,{default:n(()=>[u(l(s(B)(`retryRules.deleteConfirm.title`)),1)]),_:1}),f(s(j),null,{default:n(()=>[u(l(s(B)(`retryRules.deleteConfirm.description`,{name:G.value?.name})),1)]),_:1})]),_:1}),f(s(ye),null,{default:n(()=>[f(s(ve),null,{default:n(()=>[u(l(s(B)(`common.cancel`)),1)]),_:1}),f(s(g),{variant:`destructive`,onClick:Y},{default:n(()=>[u(l(s(B)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),Z.value.length>0?(v(),_(s(N),{key:0,class:`mt-6`},{default:n(()=>[f(s(re),{open:X.value,"onUpdate:open":r[17]||=e=>X.value=e},{default:n(()=>[f(s(ae),{"as-child":``},{default:n(()=>[f(s(be),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:n(()=>[o(`div`,Le,[f(s(xe),{class:`text-sm font-medium`},{default:n(()=>[u(l(s(B)(`retryRules.recommended.title`,{count:Z.value.length})),1)]),_:1}),f(s(M),{class:t([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":X.value}])},null,8,[`class`])])]),_:1})]),_:1}),f(s(ie),null,{default:n(()=>[f(s(P),null,{default:n(()=>[o(`div`,Re,[o(`div`,ze,[f(s(y),{"model-value":Ke.value,"onUpdate:modelValue":Je},null,8,[`model-value`]),o(`span`,Be,l(s(B)(`retryRules.recommended.selectAll`)),1)]),f(s(g),{size:`sm`,disabled:Q.value.size===0,onClick:Ye},{default:n(()=>[u(l(s(B)(`retryRules.recommended.addSelected`,{count:Q.value.size})),1)]),_:1},8,[`disabled`])]),f(s(S),null,{default:n(()=>[f(s(w),null,{default:n(()=>[f(s(C),null,{default:n(()=>[f(s(b),{class:`w-10`}),f(s(b),null,{default:n(()=>[u(l(s(B)(`retryRules.recommended.headers.name`)),1)]),_:1}),f(s(b),null,{default:n(()=>[u(l(s(B)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),f(s(b),null,{default:n(()=>[u(l(s(B)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),f(s(b),null,{default:n(()=>[u(l(s(B)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),f(s(x),null,{default:n(()=>[(v(!0),d(c,null,p(Z.value,e=>(v(),_(s(C),{key:e.name},{default:n(()=>[f(s(T),null,{default:n(()=>[f(s(y),{"model-value":Q.value.has(e.name),"onUpdate:modelValue":()=>qe(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),f(s(T),null,{default:n(()=>[u(l(e.name),1)]),_:2},1024),f(s(T),null,{default:n(()=>[u(l(e.status_code),1)]),_:2},1024),f(s(T),{class:`font-mono text-xs max-w-[200px] truncate`},{default:n(()=>[u(l(e.body_pattern),1)]),_:2},1024),f(s(T),null,{default:n(()=>[u(l(e.retry_strategy===`fixed`?s(B)(`retryRules.strategy.fixed`):s(B)(`retryRules.strategy.exponential`)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):a(``,!0)]))}});export{B as default};
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,F as r,H as ee,J as i,K as a,Q as te,Rt as o,U as s,Ut as c,X as l,Y as u,Z as d,ct as ne,ft as f,jt as p,k as m,n as h,q as g,ut as _}from"./button-DMmB7tDy.js";import{t as v}from"./Checkbox-1rtzAXdv.js";import{a as re,c as y,d as b,f as x,l as S,n as ie,o as ae,r as oe,s as se,t as ce,u as C}from"./dialog-B68sJflZ.js";import{t as w}from"./Label-CRw4oQf2.js";import{a as le,b as T,c as ue,d as E,i as D,l as O,o as k,r as A,rt as j,s as M}from"./index-QPBBCV_W.js";import{t as N}from"./Input-1iFstr5N.js";import{t as P}from"./useClipboard-Df2zt0gp.js";var F={class:`p-6`},I={class:`flex items-center justify-between mb-4`},L={class:`text-lg font-semibold text-foreground`},R={class:`bg-card rounded-lg border overflow-hidden`},z={class:`flex items-center gap-1`},B={class:`font-mono text-xs text-muted-foreground`},V={key:0,class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},H={key:1,class:`w-3.5 h-3.5 text-success`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},U={key:0,class:`flex flex-wrap gap-1`},de={key:0,class:`text-sm text-destructive mt-1`},fe={class:`text-xs text-muted-foreground mb-2`},pe={class:`border rounded-md p-3 max-h-48 overflow-y-auto space-y-2 bg-muted`},me={class:`font-mono text-xs`},he={key:0,class:`text-muted-foreground text-sm text-center py-2`},ge={key:0,class:`flex flex-wrap gap-1 mt-2`},_e={key:0,class:`flex items-center gap-2`},W=te({__name:`RouterKeys`,setup(te){let{t:W}=r(),G={name:``,allowed_models:[],is_active:!0},K=p([]),q=p([]),J=p(!1),Y=p(null),X=p(null),Z=p({...G,allowed_models:[]}),Q=p({}),{copied:ve,copy:ye}=P();function be(e){return e?e.slice(0,7)+`*`.repeat(7):``}function xe(e){return j(e)}function Se(e){let t=Z.value.allowed_models.indexOf(e);t>=0&&Z.value.allowed_models.splice(t,1)}async function $(){try{let[e,t]=await Promise.allSettled([m.getRouterKeys(),m.getAvailableModels()]);e.status===`fulfilled`&&(K.value=e.value),t.status===`fulfilled`&&(q.value=t.value)}catch(t){console.error(`Failed to load data:`,t),A.error(e(t,W(`routerKeys.loadFailed`)))}}function Ce(){Y.value=null,Z.value={...G,allowed_models:[]},Q.value={},J.value=!0}function we(e){Y.value=e.id,Z.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},Q.value={},J.value=!0}function Te(){return{name:Z.value.name,allowed_models:Z.value.allowed_models.length>0?Z.value.allowed_models:null,is_active:+!!Z.value.is_active}}function Ee(){return{name:Z.value.name,allowed_models:Z.value.allowed_models.length>0?Z.value.allowed_models:null}}async function De(){let t={};if(Z.value.name.trim()||(t.name=W(`routerKeys.nameRequired`)),Q.value=t,!(Object.keys(t).length>0))try{Y.value?await m.updateRouterKey(Y.value,Te()):await m.createRouterKey(Ee()),J.value=!1,await $()}catch(t){console.error(`Failed to save router key:`,t),A.error(e(t,W(`routerKeys.saveFailed`)))}}function Oe(e){X.value=e}async function ke(){let t=X.value;if(t){X.value=null;try{await m.deleteRouterKey(t.id),await $()}catch(t){console.error(`Failed to delete router key:`,t),A.error(e(t,W(`routerKeys.deleteFailed`)))}}}return ne($),(e,r)=>(_(),u(`div`,F,[a(`div`,I,[a(`h2`,L,c(o(W)(`routerKeys.title`)),1),d(o(h),{onClick:Ce,class:`flex items-center gap-1`},{default:n(()=>[r[6]||=a(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[a(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),l(` `+c(o(W)(`routerKeys.createKey`)),1)]),_:1})]),a(`div`,R,[d(o(x),null,{default:n(()=>[d(o(se),null,{default:n(()=>[d(o(S),{class:`bg-muted`},{default:n(()=>[d(o(y),{class:`text-muted-foreground`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.name`)),1)]),_:1}),d(o(y),{class:`text-muted-foreground`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.key`)),1)]),_:1}),d(o(y),{class:`text-muted-foreground`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.whitelist`)),1)]),_:1}),d(o(y),{class:`text-muted-foreground`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.status`)),1)]),_:1}),d(o(y),{class:`text-muted-foreground`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.createdAt`)),1)]),_:1}),d(o(y),{class:`text-right text-muted-foreground`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),d(o(b),null,{default:n(()=>[(_(!0),u(s,null,f(K.value,e=>(_(),g(o(S),{key:e.id,class:t({"opacity-60":!e.is_active})},{default:n(()=>[d(o(C),{class:`font-medium`},{default:n(()=>[l(c(e.name),1)]),_:2},1024),d(o(C),null,{default:n(()=>[a(`div`,z,[a(`span`,B,c(be(e.key)),1),d(o(h),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>e.key&&o(ye)(e.key)},{default:n(()=>[o(ve)?(_(),u(`svg`,H,[...r[8]||=[a(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 13l4 4L19 7`},null,-1)]])):(_(),u(`svg`,V,[...r[7]||=[a(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`},null,-1)]]))]),_:1},8,[`onClick`])])]),_:2},1024),d(o(C),null,{default:n(()=>[e.allowed_models&&e.allowed_models.length>0?(_(),u(`div`,U,[(_(!0),u(s,null,f(e.allowed_models,e=>(_(),g(o(T),{key:e,variant:`outline`,class:`text-xs`},{default:n(()=>[l(c(e),1)]),_:2},1024))),128))])):(_(),g(o(T),{key:1,variant:`secondary`},{default:n(()=>[l(c(o(W)(`common.allModels`)),1)]),_:1}))]),_:2},1024),d(o(C),null,{default:n(()=>[d(o(T),{variant:e.is_active?`default`:`secondary`},{default:n(()=>[l(c(e.is_active?o(W)(`common.enabled`):o(W)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),d(o(C),{class:`text-muted-foreground text-sm`},{default:n(()=>[l(c(xe(e.created_at)),1)]),_:2},1024),d(o(C),{class:`text-right`},{default:n(()=>[d(o(h),{variant:`ghost`,size:`sm`,onClick:t=>we(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:n(()=>[l(c(o(W)(`common.edit`)),1)]),_:1},8,[`onClick`]),d(o(h),{variant:`ghost`,size:`sm`,onClick:t=>Oe(e),class:`text-muted-foreground hover:text-destructive`},{default:n(()=>[l(c(o(W)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),K.value.length===0?(_(),g(o(S),{key:0},{default:n(()=>[d(o(C),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:n(()=>[l(c(o(W)(`routerKeys.noKeys`)),1)]),_:1})]),_:1})):i(``,!0)]),_:1})]),_:1})]),d(o(ae),{open:J.value,"onUpdate:open":r[4]||=e=>J.value=e},{default:n(()=>[d(o(re),{class:`sm:max-w-lg`},{default:n(()=>[d(o(ie),null,{default:n(()=>[d(o(ce),null,{default:n(()=>[l(c(Y.value?o(W)(`routerKeys.editKey`):o(W)(`routerKeys.createKey`)),1)]),_:1})]),_:1}),a(`form`,{onSubmit:ee(De,[`prevent`]),class:`space-y-4`},[a(`div`,null,[d(o(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[l(c(o(W)(`routerKeys.tableHeaders.name`)),1)]),_:1}),d(o(N),{modelValue:Z.value.name,"onUpdate:modelValue":r[0]||=e=>Z.value.name=e,type:`text`,required:``,placeholder:o(W)(`routerKeys.placeholder.name`),onInput:r[1]||=e=>delete Q.value.name},null,8,[`modelValue`,`placeholder`]),Q.value.name?(_(),u(`p`,de,c(Q.value.name),1)):i(``,!0)]),a(`div`,null,[d(o(w),{class:`block text-sm font-medium text-foreground mb-1`},{default:n(()=>[l(c(o(W)(`routerKeys.whitelistLabel`)),1)]),_:1}),a(`div`,fe,c(o(W)(`routerKeys.whitelistHint`)),1),a(`div`,pe,[(_(!0),u(s,null,f(q.value,e=>(_(),g(o(w),{key:e,class:`flex items-center gap-2 cursor-pointer text-sm font-normal`},{default:n(()=>[d(o(v),{"model-value":Z.value.allowed_models.includes(e),"onUpdate:modelValue":t=>{if(t&&t!==`indeterminate`&&!Z.value.allowed_models.includes(e))Z.value.allowed_models.push(e);else if(!t){let t=Z.value.allowed_models.indexOf(e);t>=0&&Z.value.allowed_models.splice(t,1)}}},null,8,[`model-value`,`onUpdate:modelValue`]),a(`span`,me,c(e),1)]),_:2},1024))),128)),q.value.length===0?(_(),u(`div`,he,c(o(W)(`routerKeys.noModels`)),1)):i(``,!0)]),Z.value.allowed_models.length>0?(_(),u(`div`,ge,[(_(!0),u(s,null,f(Z.value.allowed_models,e=>(_(),g(o(T),{key:e,variant:`outline`,class:`text-xs`},{default:n(()=>[l(c(e)+` `,1),d(o(h),{type:`button`,variant:`ghost`,size:`sm`,class:`ml-1 h-4 w-4 p-0 text-muted-foreground hover:text-destructive`,onClick:t=>Se(e)},{default:n(()=>[...r[9]||=[l(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))])):i(``,!0)]),Y.value?(_(),u(`div`,_e,[d(o(v),{modelValue:Z.value.is_active,"onUpdate:modelValue":r[2]||=e=>Z.value.is_active=e,id:`key-active`},null,8,[`modelValue`]),d(o(w),{for:`key-active`,class:`text-sm text-foreground`},{default:n(()=>[l(c(o(W)(`common.enable`)),1)]),_:1})])):i(``,!0),d(o(oe),null,{default:n(()=>[d(o(h),{type:`button`,variant:`outline`,onClick:r[3]||=e=>J.value=!1},{default:n(()=>[l(c(o(W)(`common.cancel`)),1)]),_:1}),d(o(h),{type:`submit`},{default:n(()=>[l(c(o(W)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),d(o(E),{open:!!X.value,"onUpdate:open":r[5]||=e=>{e||(X.value=null)}},{default:n(()=>[d(o(ue),null,{default:n(()=>[d(o(le),null,{default:n(()=>[d(o(D),null,{default:n(()=>[l(c(o(W)(`routerKeys.confirmDeleteTitle`)),1)]),_:1}),d(o(M),null,{default:n(()=>[l(c(o(W)(`routerKeys.confirmDeleteDesc`,{name:X.value?.name})),1)]),_:1})]),_:1}),d(o(k),null,{default:n(()=>[d(o(O),null,{default:n(()=>[l(c(o(W)(`common.cancel`)),1)]),_:1}),d(o(h),{variant:`destructive`,onClick:ke},{default:n(()=>[l(c(o(W)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{W as default};