llm-simple-router 0.11.20 → 0.11.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.
- package/dist/index.js +23 -5
- package/dist/proxy/handler/create-proxy-handler.js +3 -3
- package/dist/proxy/transform/stream-ant2oa.js +12 -11
- package/dist/proxy/transport/stream.js +18 -0
- package/frontend-dist/assets/{CardContent-B1EH4dOn.js → CardContent-1i8E_S3q.js} +1 -1
- package/frontend-dist/assets/{CardTitle-DF6mjZ7-.js → CardTitle-9IEYVrNF.js} +1 -1
- package/frontend-dist/assets/{CascadingModelSelect-BJUYEjl6.js → CascadingModelSelect-CqzJeQWb.js} +1 -1
- package/frontend-dist/assets/{Checkbox-8nGGlG98.js → Checkbox-9z_nic4H.js} +1 -1
- package/frontend-dist/assets/{CollapsibleContent-D74YnHwC.js → CollapsibleContent-DRXTjuF_.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-CY0laTR_.js → CollapsibleTrigger-BusSosYR.js} +1 -1
- package/frontend-dist/assets/{Dashboard-DXWfPbHb.js → Dashboard-DjO_Bc_0.js} +1 -1
- package/frontend-dist/assets/{Input-BdVdLvb5.js → Input-BwqUPR8k.js} +1 -1
- package/frontend-dist/assets/{Label-D6iOUZ8Q.js → Label-CumWBzHY.js} +1 -1
- package/frontend-dist/assets/{Login-DJ901WNr.js → Login-9ZLrg5AA.js} +1 -1
- package/frontend-dist/assets/Logs-DKktTerr.js +1 -0
- package/frontend-dist/assets/{MappingEntryEditor-DMc-aTGm.js → MappingEntryEditor-DX749LDW.js} +1 -1
- package/frontend-dist/assets/{ModelMappings-Cwl3jqw2.js → ModelMappings-snvf_INI.js} +1 -1
- package/frontend-dist/assets/Monitor-RqCMWyto.js +1 -0
- package/frontend-dist/assets/Providers-DlVBSVgE.js +1 -0
- package/frontend-dist/assets/{ProxyEnhancement-DWgtboJm.js → ProxyEnhancement-CZBmTnsG.js} +1 -1
- package/frontend-dist/assets/{QuickSetup-DWsbFO_6.js → QuickSetup-BIV6mDlG.js} +1 -1
- package/frontend-dist/assets/{RetryRules-BhsWRvAM.js → RetryRules-DfeCwU9V.js} +1 -1
- package/frontend-dist/assets/RouterKeys-tCdqFDml.js +1 -0
- package/frontend-dist/assets/{RovingFocusItem-BcifDGwJ.js → RovingFocusItem-D3EohvxE.js} +1 -1
- package/frontend-dist/assets/{Schedules-CA24nOzQ.js → Schedules-ImwpwJKm.js} +1 -1
- package/frontend-dist/assets/{Settings-wmEJGV-Q.js → Settings-BUsDohX6.js} +1 -1
- package/frontend-dist/assets/{Setup-BzZrgNye.js → Setup-2xmJP0f2.js} +1 -1
- package/frontend-dist/assets/{Switch-DpbOdaG4.js → Switch-Ce1RNEg2.js} +1 -1
- package/frontend-dist/assets/{TooltipTrigger-Bm1hv-HG.js → TooltipTrigger-BvHKib2n.js} +1 -1
- package/frontend-dist/assets/{TransformRulesForm-CROm451Q.js → TransformRulesForm-BT9zoPTc.js} +1 -1
- package/frontend-dist/assets/UnifiedRequestDialog-D_88_dFB.js +3 -0
- package/frontend-dist/assets/{VisuallyHiddenInput-Dfr4xrvh.js → VisuallyHiddenInput-B-usxRjt.js} +1 -1
- package/frontend-dist/assets/{button-Cn_ZnI9p.js → button-Dm-cbgS5.js} +2 -2
- package/frontend-dist/assets/{copy-B1ISSl-K.js → copy-DMw-23Tb.js} +1 -1
- package/frontend-dist/assets/{dialog-W72I6tQK.js → dialog-Dzy4m58L.js} +1 -1
- package/frontend-dist/assets/{index-Dpx8LfJK.js → index-CTaQHTod.js} +2 -2
- package/frontend-dist/assets/{model-patches-Dfa7npgs.js → model-patches-Be68Qreu.js} +1 -1
- package/frontend-dist/assets/plus-BkH7yWn-.js +1 -0
- package/frontend-dist/assets/{sparkles-Cn9BME2D.js → sparkles-7mkrsmh7.js} +1 -1
- package/frontend-dist/assets/{trash-2-DSMpMRZF.js → trash-2-BoBubJto.js} +1 -1
- package/frontend-dist/assets/useClipboard-DebN1Yvq.js +1 -0
- package/frontend-dist/assets/{useLogRetention-qeuUgaAR.js → useLogRetention-BGDglTVo.js} +1 -1
- package/frontend-dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend-dist/assets/Logs-BGWbAGa4.js +0 -1
- package/frontend-dist/assets/Monitor-BwO1WnJD.js +0 -1
- package/frontend-dist/assets/Providers-oAhYdMc-.js +0 -1
- package/frontend-dist/assets/RouterKeys-Ckk3R7zi.js +0 -1
- package/frontend-dist/assets/UnifiedRequestDialog-BPvDIOZz.js +0 -3
- package/frontend-dist/assets/plus-CcSvL3Cd.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{At as e,G as t,Gt as n,Nt as r,et as i,gt as a,it as o,m as s,qt as c,r as l}from"./button-
|
|
1
|
+
import{At as e,G as t,Gt as n,Nt as r,et as i,gt as a,it as o,m as s,qt as c,r as l}from"./button-Dm-cbgS5.js";var u=o({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(o,{emit:u}){let d=o,f=s(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(o,s)=>e((a(),i(`input`,{"onUpdate:modelValue":s[0]||=e=>r(f)?f.value=e:null,"data-slot":`input`,class:c(n(l)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[t,n(f)]])}});export{u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Gt as e,Q as t,dt as n,gt as r,i,it as a,kt as o,o as s,r as c,x as l,yt as u}from"./button-
|
|
1
|
+
import{Gt as e,Q as t,dt as n,gt as r,i,it as a,kt as o,o as s,r as c,x as l,yt as u}from"./button-Dm-cbgS5.js";var d=a({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(a){let c=a;return s(),(a,s)=>(r(),t(e(i),n(c,{onMousedown:s[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:o(()=>[u(a.$slots,`default`)]),_:3},16))}}),f=a({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(i){let a=i,s=l(a,`class`);return(i,l)=>(r(),t(e(d),n({"data-slot":`label`},e(s),{class:e(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`,a.class)}),{default:o(()=>[u(i.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Gt as n,H as r,Lt as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,k as d,kt as f,n as p,nt as m,q as h,rt as g,z as _}from"./button-
|
|
1
|
+
import{$ as e,A as t,Gt as n,H as r,Lt as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,k as d,kt as f,n as p,nt as m,q as h,rt as g,z as _}from"./button-Dm-cbgS5.js";import{t as v}from"./Label-CumWBzHY.js";import{ct as y,n as b,st as x}from"./index-CTaQHTod.js";import{n as S,t as C}from"./CardContent-1i8E_S3q.js";import{t as w}from"./Input-BwqUPR8k.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=u({__name:`Login`,setup(u){let{t:k}=r(),{isDark:A,toggleTheme:j}=b(),M=_(),N=i(``),P=i(``),F=i(!1);async function I(){if(N.value){P.value=``,F.value=!0;try{await d.login(N.value),M.push(`/`)}catch(e){console.error(`login:`,e),P.value=t(e,k(`login.loginFailed`))}finally{F.value=!1}}}return(t,r)=>(l(),c(`div`,T,[g(n(p),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:n(j)},{default:f(()=>[n(A)?(l(),a(n(x),{key:1,class:`w-4 h-4`})):(l(),a(n(y),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),g(n(S),{class:`w-full max-w-sm shadow-lg`},{default:f(()=>[g(n(C),{class:`pt-6`},{default:f(()=>[s(`div`,E,[r[1]||=s(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[s(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[s(`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),r[2]||=s(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`,-1),s(`p`,D,o(n(k)(`login.subtitle`)),1)]),s(`form`,{onSubmit:h(I,[`prevent`]),class:`space-y-4`},[s(`div`,null,[g(n(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:f(()=>[m(o(n(k)(`login.password`)),1)]),_:1}),g(n(w),{modelValue:N.value,"onUpdate:modelValue":r[0]||=e=>N.value=e,type:`password`,placeholder:n(k)(`login.passwordPlaceholder`),disabled:F.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),P.value?(l(),c(`p`,O,o(P.value),1)):e(``,!0),g(n(p),{type:`submit`,class:`w-full`,disabled:F.value},{default:f(()=>[m(o(F.value?n(k)(`login.loggingIn`):n(k)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,Lt as o,Nt as s,Q as c,X as l,Xt as u,Z as d,et as f,gt as p,it as m,k as h,kt as g,mt as _,n as v,nt as y,q as b,qt as x,r as S,rt as C,vt as w}from"./button-Dm-cbgS5.js";import{r as ee,t as te}from"./UnifiedRequestDialog-D_88_dFB.js";import{t as T}from"./copy-DMw-23Tb.js";import{i as E,n as ne,r as D,t as O}from"./TooltipTrigger-BvHKib2n.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-Dzy4m58L.js";import{t as de}from"./Label-CumWBzHY.js";import{St as fe,_ as M,a as pe,c as me,d as he,f as ge,g as N,gt as _e,h as P,i as F,l as ve,m as I,o as ye,p as L,pt as be,s as xe,x as R,xt as z}from"./index-CTaQHTod.js";import{t as B}from"./Input-BwqUPR8k.js";import{t as Se}from"./useClipboard-DebN1Yvq.js";import{t as Ce}from"./useLogRetention-BGDglTVo.js";var we=m({__name:`Skeleton`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(p(),f(`div`,{"data-slot":`skeleton`,class:x(r(S)(`bg-muted rounded-md animate-pulse`,t.class))},null,2))}}),Te={key:1,class:`ml-4 text-muted-foreground text-xs`},V={class:`inline-flex items-center gap-1`},H={class:`font-mono`},U={key:2,class:`text-muted-foreground`},W={class:`flex flex-wrap gap-1`},Ee={class:`block truncate`},G={key:1,class:`text-muted-foreground`},De=m({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},copiedId:{default:null}},emits:[`toggleExpand`,`openDetail`,`copy`],setup(t,{emit:n}){let o=n,{t:s}=i();function l(e){if(!e)return s(`logs.row.unknown`);try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch{return s(`logs.row.unknown`)}}return(n,i)=>(p(),c(r(A),{class:x({"bg-destructive/10":!t.isChild&&(t.log.status_code??0)>=400,"bg-muted/20":t.isChild})},{default:g(()=>[C(r(j),{class:`w-10`},{default:g(()=>[!t.isChild&&t.log.child_count?(p(),c(r(v),{key:0,variant:`ghost`,size:`xs`,onClick:i[0]||=e=>o(`toggleExpand`,t.log)},{default:g(()=>[d(`span`,{class:x([`text-xs transition-transform`,t.expanded?``:`-rotate-90`])},`▼`,2)]),_:1})):e(``,!0),t.isChild?(p(),f(`span`,Te,`└`)):e(``,!0)]),_:1}),C(r(j),{class:`font-mono text-xs text-muted-foreground`,title:t.log.id},{default:g(()=>[d(`span`,V,[y(u(t.log.id.slice(0,8))+` `,1),C(r(E),{"delay-duration":300},{default:g(()=>[C(r(O),{"as-child":``},{default:g(()=>[C(r(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:i[1]||=b(e=>o(`copy`,t.log.id),[`stop`])},{default:g(()=>[t.copiedId===t.log.id?(p(),c(r(be),{key:0,class:`size-3 text-success`})):(p(),c(r(T),{key:1,class:`size-3`}))]),_:1})]),_:1}),C(r(D),null,{default:g(()=>[y(u(r(s)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})])]),_:1},8,[`title`]),C(r(j),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(_e)(t.log.created_at)),1)]),_:1}),C(r(j),{class:`font-mono text-xs`},{default:g(()=>[y(u(t.log.model||`-`)+` `,1),!t.isChild&&t.log.original_model?(p(),c(r(R),{key:0,variant:`secondary`,class:`ml-1 text-xs`},{default:g(()=>[y(u(r(s)(`logs.row.replaced`)),1)]),_:1})):e(``,!0)]),_:1}),C(r(j),{class:`text-xs`},{default:g(()=>[!t.isChild&&t.log.provider_id===r(`router`)?(p(),c(r(R),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:g(()=>[y(u(r(s)(`logs.row.proxyEnhancement`,{label:l(t.log.upstream_request)})),1)]),_:1})):t.log.backend_model||t.log.provider_name?(p(),f(a,{key:1},[d(`span`,H,u(t.log.backend_model||`-`),1),i[3]||=d(`span`,{class:`text-muted-foreground`},` @ `,-1),C(r(R),{variant:`outline`,class:`text-[10px] px-1 py-0`},{default:g(()=>[y(u(t.log.provider_name||t.log.provider_id||`-`),1)]),_:1})],64)):(p(),f(`span`,U,`-`))]),_:1}),C(r(j),null,{default:g(()=>[d(`div`,W,[C(r(R),{variant:t.log.api_type===`openai`?`default`:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(t.log.api_type),1)]),_:1},8,[`variant`]),C(r(R),{variant:(t.log.status_code??0)<400?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(t.log.status_code||`-`),1)]),_:1},8,[`variant`]),t.log.is_stream?(p(),c(r(R),{key:0,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[...i[4]||=[y(` SSE `,-1)]]),_:1})):e(``,!0),t.log.is_retry?(p(),c(r(R),{key:1,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-warning-dark border-warning`},{default:g(()=>[y(u(r(s)(`logs.table.retry`)),1)]),_:1})):e(``,!0),t.log.is_failover?(p(),c(r(R),{key:2,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-danger-dark border-danger`},{default:g(()=>[y(u(r(s)(`logs.table.failover`)),1)]),_:1})):e(``,!0)])]),_:1}),C(r(j),{class:`text-destructive text-xs max-w-[200px]`},{default:g(()=>[t.log.error_message?(p(),c(r(E),{key:0,"delay-duration":300},{default:g(()=>[C(r(O),{"as-child":``},{default:g(()=>[d(`span`,Ee,u(t.log.error_message),1)]),_:1}),C(r(D),{class:`max-w-sm whitespace-pre-wrap`},{default:g(()=>[y(u(t.log.error_message),1)]),_:1})]),_:1})):(p(),f(`span`,G,`-`))]),_:1}),C(r(j),null,{default:g(()=>[C(r(v),{variant:`ghost`,size:`sm`,onClick:i[2]||=e=>o(`openDetail`,t.log.id)},{default:g(()=>[y(u(r(s)(`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 Oe(){let{t:e}=i(),n=o(`5h`),r=o({start:``,end:``}),a=o(`all`),s=o(`all`),c=o(`all`),u=o(`all`),d=o(`all`),f=o([]),p=o([]),m=o([]),g=l(()=>r.value.start&&r.value.end&&r.value.start<r.value.end),v=l(()=>{let{start:t,end:n}=r.value;return!t||!n?``:t>=n?e(`logs.validation.endTimeAfterStart`):``}),y=l(()=>{if(a.value===`all`)return m.value;let e=f.value.find(e=>e.id===a.value);if(!e)return m.value;let t=new Set(e.models.map(e=>e.name));return m.value.filter(e=>t.has(e))}),b={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function x(){let e={};if(g.value)e.start_time=fe(r.value.start),e.end_time=z(r.value.end);else{let t=b[n.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return u.value!==`all`&&(e.api_type=u.value),a.value!==`all`&&(e.provider_id=a.value),s.value!==`all`&&(e.model=s.value),c.value!==`all`&&(e.router_key_id=c.value),d.value!==`all`&&(e.status_code=d.value),e}function S(){r.value={start:``,end:``}}async function C(){try{f.value=await h.getProviders()}catch(n){console.error(`Failed to load providers:`,n),F.error(t(n,e(`logs.messages.loadProvidersFailed`)))}}async function w(){try{p.value=await h.getRouterKeys()}catch(n){console.error(`Failed to load router keys:`,n),F.error(t(n,e(`logs.messages.loadKeysFailed`)))}}async function ee(){try{let e=await h.getMetricsSummary({period:`30d`});m.value=[...new Set(e.rows.map(e=>e.backend_model))]}catch{m.value=[]}}return _(()=>{Promise.allSettled([C(),w(),ee()])}),{PERIODS:K,period:n,dateRange:r,dateRangeError:v,providerFilter:a,modelFilter:s,keyFilter:c,apiTypeFilter:u,statusFilter:d,providers:f,routerKeys:p,filteredModelOptions:y,hasDateRange:g,clearDateRange:S,buildFilterParams:x}}var q=20,ke=864e5;function Ae(){let{t:e}=i(),n=o([]),r=o(0),a=o(1),s=o({}),c=o(30),u=o(!1),d=o(new Set),f=o({}),p=o({}),m=o(!1),g=o(null),_=l(()=>Math.ceil(r.value/q));async function v(i){i&&(s.value=i);try{let e=await h.getLogs({page:a.value,limit:q,view:`grouped`,...s.value});n.value=e.data,r.value=e.total,d.value.clear(),f.value={},p.value={}}catch(n){console.error(`Failed to load logs:`,n),F.error(t(n,e(`logs.messages.loadFailed`)))}}function y(e){e>=1&&e<=_.value&&e!==a.value&&(a.value=e,v())}let b=o(null),x=o(!1);async function S(){try{let e=new Date(Date.now()-c.value*ke).toISOString(),t=await h.deleteLogsBefore(e);u.value=!1,a.value=1,await v(),b.value=t.deleted,x.value=!0}catch(n){console.error(`Failed to cleanup logs:`,n),F.error(t(n,e(`logs.messages.cleanupFailed`)))}}async function C(n){let r=n.id;if(d.value.has(r)){d.value.delete(r);return}if(d.value.add(r),!f.value[r]){p.value[r]=!0;try{f.value[r]=await h.getLogChildren(r)}catch(n){console.error(`Failed to load child logs:`,n),F.error(t(n,e(`logs.messages.loadSubRequestsFailed`)))}finally{p.value[r]=!1}}}async function w(n){try{g.value=await h.getLogDetail(n),m.value=!0}catch(n){console.error(`Failed to load log detail:`,n),F.error(t(n,e(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:q,logs:n,total:r,page:a,totalPages:_,cleanupDays:c,showCleanup:u,expandedRows:d,childLogs:f,childLoading:p,logDetailOpen:m,selectedLogEntry:g,cleanupResult:b,showCleanupResult:x,loadLogs:v,goToPage:y,handleCleanup:S,toggleExpand:C,openLogDetail:w}}var je={class:`p-6`},Me={class:`flex items-center justify-between mb-4`},Ne={class:`text-lg font-semibold text-foreground`},Pe={class:`flex flex-wrap items-center gap-2 mb-4`},Fe={class:`flex gap-1`},Ie={class:`flex items-center gap-1`},Le={key:1,class:`text-xs text-destructive whitespace-nowrap`},Re={class:`bg-card rounded-lg border overflow-hidden`},ze={class:`flex items-center justify-between mt-4`},Be={class:`text-sm text-muted-foreground`},Ve={class:`flex items-center gap-1`},He={key:0,class:`px-2 text-sm text-muted-foreground`},Ue={class:`text-sm text-muted-foreground`},We={class:`mb-4`},Ge={class:`space-y-3`},Ke={class:`text-sm font-medium`},qe={class:`flex items-center gap-3`},Je={class:`text-xs text-muted-foreground`},Ye={class:`flex justify-end`},Xe=8,Ze=300,Qe=7,J=2,Y=1,$e=2e3,X=m({__name:`Logs`,setup(t){let{t:m}=i(),{PERIODS:h,period:b,dateRange:x,dateRangeError:S,providerFilter:T,modelFilter:E,keyFilter:D,statusFilter:O,providers:fe,routerKeys:_e,filteredModelOptions:F,clearDateRange:be,buildFilterParams:R}=Oe(),{logs:z,total:Te,page:V,totalPages:H,cleanupDays:U,showCleanup:W,cleanupResult:Ee,showCleanupResult:G,expandedRows:K,childLogs:q,childLoading:ke,logDetailOpen:X,selectedLogEntry:et,loadLogs:tt,goToPage:Z,handleCleanup:nt,toggleExpand:rt,openLogDetail:it}=Ae(),at=l(()=>{let e=H.value,t=V.value;if(e<=Qe)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:ot,saveRetention:st,loadRetention:ct}=Ce(),{copy:lt}=Se(),$=o(null);function ut(e){lt(e),$.value=e,setTimeout(()=>{$.value===e&&($.value=null)},$e)}let dt=null;return n([b,x,T,E,D,O],()=>{V.value=1,dt&&clearTimeout(dt),dt=setTimeout(()=>tt(R()),Ze)},{deep:!0}),_(()=>{tt(R()),ct()}),(t,n)=>(p(),f(`div`,je,[d(`div`,Me,[d(`h2`,Ne,u(r(m)(`logs.title`)),1),C(r(v),{variant:`outline`,class:`text-destructive border-destructive hover:bg-destructive/10`,onClick:n[0]||=e=>W.value=!0},{default:g(()=>[y(u(r(m)(`logs.cleanupLogs`)),1)]),_:1})]),d(`div`,Pe,[d(`div`,Fe,[(p(!0),f(a,null,w(r(h),e=>(p(),c(r(v),{key:e.value,variant:r(b)===e.value?`default`:`ghost`,size:`sm`,onClick:t=>b.value=e.value},{default:g(()=>[y(u(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),d(`div`,Ie,[C(r(B),{type:`datetime-local`,modelValue:r(x).start,"onUpdate:modelValue":n[1]||=e=>r(x).start=e,class:`w-44`},null,8,[`modelValue`]),n[18]||=d(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),C(r(B),{type:`datetime-local`,modelValue:r(x).end,"onUpdate:modelValue":n[2]||=e=>r(x).end=e,class:`w-44`},null,8,[`modelValue`]),r(x).start||r(x).end?(p(),c(r(v),{key:0,variant:`ghost`,size:`sm`,onClick:r(be)},{default:g(()=>[y(u(r(m)(`logs.clear`)),1)]),_:1},8,[`onClick`])):e(``,!0),r(S)?(p(),f(`span`,Le,u(r(S)),1)):e(``,!0)]),C(r(M),{modelValue:r(T),"onUpdate:modelValue":n[3]||=e=>s(T)?T.value=e:null},{default:g(()=>[C(r(I),{class:`w-28 truncate`},{default:g(()=>[C(r(L),{placeholder:r(m)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),C(r(N),null,{default:g(()=>[C(r(P),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allProviders`)),1)]),_:1}),(p(!0),f(a,null,w(r(fe),e=>(p(),c(r(P),{key:e.id,value:e.id},{default:g(()=>[y(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),C(r(M),{modelValue:r(E),"onUpdate:modelValue":n[4]||=e=>s(E)?E.value=e:null},{default:g(()=>[C(r(I),{class:`w-32 truncate`},{default:g(()=>[C(r(L),{placeholder:r(m)(`logs.allModels`)},null,8,[`placeholder`])]),_:1}),C(r(N),null,{default:g(()=>[C(r(P),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allModels`)),1)]),_:1}),(p(!0),f(a,null,w(r(F),e=>(p(),c(r(P),{key:e,value:e},{default:g(()=>[y(u(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),C(r(M),{modelValue:r(D),"onUpdate:modelValue":n[5]||=e=>s(D)?D.value=e:null},{default:g(()=>[C(r(I),{class:`w-32 truncate`},{default:g(()=>[C(r(L),{placeholder:r(m)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),C(r(N),null,{default:g(()=>[C(r(P),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allKeys`)),1)]),_:1}),(p(!0),f(a,null,w(r(_e),e=>(p(),c(r(P),{key:e.id,value:e.id},{default:g(()=>[y(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),C(r(M),{modelValue:r(O),"onUpdate:modelValue":n[6]||=e=>s(O)?O.value=e:null},{default:g(()=>[C(r(I),{class:`w-28 truncate`},{default:g(()=>[C(r(L),{placeholder:r(m)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),C(r(N),null,{default:g(()=>[C(r(P),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allStatus`)),1)]),_:1}),C(r(P),{value:`200`},{default:g(()=>[...n[19]||=[y(`200`,-1)]]),_:1}),C(r(P),{value:`non200`},{default:g(()=>[y(u(r(m)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),d(`div`,Re,[C(r(ne),{"delay-duration":300},{default:g(()=>[C(r(ae),{class:`[&_td]:px-4 [&_th]:px-4`},{default:g(()=>[C(r(le),null,{default:g(()=>[C(r(A),{class:`bg-muted`},{default:g(()=>[C(r(k),{class:`w-10`}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.id`)),1)]),_:1}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.time`)),1)]),_:1}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.model`)),1)]),_:1}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.actualForward`)),1)]),_:1}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.tags`)),1)]),_:1}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.error`)),1)]),_:1}),C(r(k),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),C(r(ie),null,{default:g(()=>[(p(!0),f(a,null,w(r(z),t=>(p(),f(a,{key:t.id},[C(De,{log:t,expanded:r(K).has(t.id),"copied-id":$.value,onToggleExpand:r(rt),onOpenDetail:r(it),onCopy:ut},null,8,[`log`,`expanded`,`copied-id`,`onToggleExpand`,`onOpenDetail`]),r(K).has(t.id)?(p(),f(a,{key:0},[r(ke)[t.id]?(p(),c(r(A),{key:0},{default:g(()=>[C(r(j),{colspan:Xe,class:`text-center py-2 pl-10`},{default:g(()=>[C(r(we),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):r(q)[t.id]?.length?(p(!0),f(a,{key:1},w(r(q)[t.id],e=>(p(),c(De,{key:e.id,log:e,"is-child":!0,"copied-id":$.value,onOpenDetail:r(it),onCopy:ut},null,8,[`log`,`copied-id`,`onOpenDetail`]))),128)):e(``,!0)],64)):e(``,!0)],64))),128)),r(z).length===0?(p(),c(r(A),{key:0},{default:g(()=>[C(r(j),{colspan:Xe,class:`text-center text-muted-foreground py-8`},{default:g(()=>[y(u(r(m)(`logs.noLogs`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1})]),d(`div`,ze,[d(`p`,Be,u(r(m)(`logs.pagination`,{total:r(Te),page:r(V),totalPages:r(H)})),1),d(`div`,Ve,[C(r(v),{variant:`outline`,size:`sm`,onClick:n[7]||=e=>r(Z)(1),disabled:r(V)<=1},{default:g(()=>[y(u(r(m)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),C(r(v),{variant:`outline`,size:`sm`,onClick:n[8]||=e=>r(Z)(r(V)-1),disabled:r(V)<=1},{default:g(()=>[y(u(r(m)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(p(!0),f(a,null,w(at.value,e=>(p(),f(a,{key:e},[e===`...`?(p(),f(`span`,He,`...`)):(p(),c(r(v),{key:1,variant:e===r(V)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>r(Z)(e)},{default:g(()=>[y(u(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),C(r(v),{variant:`outline`,size:`sm`,onClick:n[9]||=e=>r(Z)(r(V)+1),disabled:r(V)>=r(H)},{default:g(()=>[y(u(r(m)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),C(r(v),{variant:`outline`,size:`sm`,onClick:n[10]||=e=>r(Z)(r(H)),disabled:r(V)>=r(H)},{default:g(()=>[y(u(r(m)(`logs.lastPage`)),1)]),_:1},8,[`disabled`]),n[20]||=y(` > `,-1)])]),C(te,{open:r(X),"onUpdate:open":n[11]||=e=>s(X)?X.value=e:null,source:`history`,"log-entry":r(et)},null,8,[`open`,`log-entry`]),C(r(se),{open:r(W),"onUpdate:open":n[15]||=e=>s(W)?W.value=e:null},{default:g(()=>[C(r(re),null,{default:g(()=>[C(r(oe),null,{default:g(()=>[C(r(ue),null,{default:g(()=>[y(u(r(m)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),d(`p`,Ue,u(r(m)(`logs.cleanup.description`)),1),d(`div`,We,[C(r(de),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[y(u(r(m)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),C(r(B),{modelValue:r(U),"onUpdate:modelValue":n[12]||=e=>s(U)?U.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),C(r(ee)),d(`div`,Ge,[d(`div`,Ke,u(r(m)(`logs.cleanup.autoCleanup`)),1),d(`div`,qe,[C(r(de),{class:`whitespace-nowrap`},{default:g(()=>[y(u(r(m)(`logs.cleanup.retentionDays`)),1)]),_:1}),C(r(B),{type:`number`,modelValue:r(Q),"onUpdate:modelValue":n[13]||=e=>s(Q)?Q.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-20`},null,8,[`modelValue`]),d(`span`,Je,u(r(m)(`logs.cleanup.noAutoCleanup`)),1)]),d(`div`,Ye,[C(r(v),{size:`sm`,onClick:r(st),disabled:r(ot)},{default:g(()=>[y(u(r(m)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])])]),C(r(ce),null,{default:g(()=>[C(r(v),{variant:`outline`,onClick:n[14]||=e=>W.value=!1},{default:g(()=>[y(u(r(m)(`common.cancel`)),1)]),_:1}),C(r(v),{variant:`destructive`,onClick:r(nt)},{default:g(()=>[y(u(r(m)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),C(r(ge),{open:r(G),"onUpdate:open":n[17]||=e=>s(G)?G.value=e:null},{default:g(()=>[C(r(ve),null,{default:g(()=>[C(r(ye),null,{default:g(()=>[C(r(pe),null,{default:g(()=>[y(u(r(m)(`logs.cleanupResult.title`)),1)]),_:1}),C(r(me),null,{default:g(()=>[y(u(r(m)(`logs.cleanupResult.description`,{count:r(Ee)})),1)]),_:1})]),_:1}),C(r(xe),null,{default:g(()=>[C(r(he),{onClick:n[16]||=e=>G.value=!1},{default:g(()=>[y(u(r(m)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{X as default};
|
package/frontend-dist/assets/{MappingEntryEditor-DMc-aTGm.js → MappingEntryEditor-DX749LDW.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,Gt as t,H as n,J as r,L as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,kt as d,n as f,nt as p,qt as m,rt as h,vt as g}from"./button-
|
|
1
|
+
import{$ as e,Gt as t,H as n,J as r,L as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,kt as d,n as f,nt as p,qt as m,rt as h,vt as g}from"./button-Dm-cbgS5.js";import{t as _}from"./CascadingModelSelect-CqzJeQWb.js";import{t as v}from"./plus-BkH7yWn-.js";import{t as y}from"./trash-2-BoBubJto.js";import{i as b,n as x,r as ee,t as te}from"./TooltipTrigger-BvHKib2n.js";import{t as ne}from"./Input-BwqUPR8k.js";var S=i(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),C=i(`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`}]]),w=i(`timer`,[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]),T={key:0,class:`flex items-start gap-3`},E=[`title`],D={class:`flex-1 flex flex-col gap-0 min-w-0`},O={class:`font-mono truncate`},k={class:`text-[10px] px-1 py-px rounded bg-muted/50 text-muted-foreground/50 shrink-0`},A={key:0,class:`text-[10px] px-1 py-px rounded bg-blue-500/10 text-blue-500/60 flex items-center gap-0.5 shrink-0`},j={key:0,class:`flex items-center gap-1 pl-5 py-0.5`},M={class:`text-[9px] text-orange-400/50`},N={key:0,class:`flex items-center gap-1.5 mt-1 pt-1.5 border-t border-dashed border-primary/10`},P={class:`text-[10px] text-primary/30`},F={class:`font-mono text-xs text-primary/50`},I={key:1,class:`space-y-1.5`},L={key:0,class:`flex items-center gap-2`},re={key:1,class:`flex items-center gap-2 px-2.5 py-1.5 rounded-md bg-muted/20 border border-border/50`},R={class:`font-mono text-sm font-medium text-foreground truncate`},z={class:`flex items-center gap-2`},B={class:`flex-1`},V={key:0,class:`flex items-center gap-1 pl-8 py-0.5`},H={class:`text-[9px] text-orange-400/50`},U={class:`pt-2 mt-1 border-t border-dashed border-primary/15 space-y-1.5`},W={key:0,class:`flex items-center gap-2`},G={class:`text-[10px] w-6 text-center px-1 py-0.5 rounded bg-primary/10 text-primary/70 shrink-0`},K={class:`flex-1`},q={key:1,class:`flex items-center gap-1.5`},J=6,Y=u({__name:`MappingEntryEditor`,props:{entry:{},providerGroups:{},expanded:{type:Boolean},editable:{type:Boolean,default:!0},editableClientModel:{type:Boolean,default:!1}},emits:[`update:targets`,`update:clientModel`],setup(i,{emit:u}){let{t:Y}=n(),X=i,Z=u;function ie(e){return X.providerGroups.find(t=>t.provider.id===e)?.provider.name??e.slice(0,J)}function Q(e,t){return X.providerGroups.find(t=>t.provider.id===e)?.models.find(e=>e.name===t)?.streamTimeoutMs}function ae(){let e=X.providerGroups[0];Z(`update:targets`,[...X.entry.targets,{backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``}])}function oe(){let e=X.providerGroups[0];Z(`update:targets`,X.entry.targets.map((t,n)=>n===0?{...t,overflow_provider_id:e?.provider.id??``,overflow_model:e?.models[0]?.name??``}:t))}function se(e){X.entry.targets.length<=1||Z(`update:targets`,X.entry.targets.filter((t,n)=>n!==e))}function ce(e,t){let n=[...X.entry.targets];n[e]={...n[e],provider_id:t.provider_id,backend_model:t.model},Z(`update:targets`,n)}function $(e){Z(`update:targets`,X.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,u)=>(l(),c(`div`,null,[i.expanded?(l(),c(`div`,I,[i.editableClientModel?(l(),c(`div`,L,[u[5]||=s(`span`,{class:`text-[10px] text-muted-foreground/60 shrink-0 w-6 text-center`},`Client`,-1),h(t(ne),{"model-value":i.entry.clientModel,class:`h-7 flex-1 text-xs font-mono`,placeholder:t(Y)(`providers.shared.clientModel`),"onUpdate:modelValue":u[0]||=e=>Z(`update:clientModel`,String(e))},null,8,[`model-value`,`placeholder`])])):(l(),c(`div`,re,[u[6]||=s(`span`,{class:`text-[10px] text-muted-foreground/60 shrink-0`},`Client`,-1),s(`span`,R,o(i.entry.clientModel),1)])),(l(!0),c(r,null,g(i.entry.targets,(n,r)=>(l(),c(`div`,{key:r},[s(`div`,z,[s(`span`,{class:m([`text-xs font-medium shrink-0 w-6 text-center px-1 py-0.5 rounded`,r===0?`bg-primary/10 text-primary`:`bg-muted/30 text-muted-foreground`])},o(r===0?`①`:r===1?`②`:r===2?`③`:`${r+1}`),3),s(`div`,B,[h(_,{providers:i.providerGroups,"model-value":{provider_id:n.provider_id,model:n.backend_model},compact:``,placeholder:t(Y)(`providers.shared.selectModel`),"onUpdate:modelValue":e=>ce(r,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),r>0&&i.entry.targets.length>1?(l(),a(t(f),{key:0,type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:e=>se(r)},{default:d(()=>[h(t(y),{class:`size-3`})]),_:1},8,[`onClick`])):e(``,!0)]),r<i.entry.targets.length-1?(l(),c(`div`,V,[u[7]||=s(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),s(`span`,H,o(t(Y)(`providers.shared.switchOnFail`)),1)])):e(``,!0)]))),128)),h(t(f),{type:`button`,variant:`ghost`,size:`sm`,class:`w-full text-xs text-muted-foreground/50`,onClick:ae},{default:d(()=>[h(t(v),{class:`w-3 h-3 mr-1`}),p(` `+o(i.entry.targets.length===0?t(Y)(`providers.shared.addMappingModel`):t(Y)(`providers.shared.addFailover`)),1)]),_:1}),s(`div`,U,[i.entry.targets[0]?.overflow_model?(l(),c(`div`,W,[s(`span`,G,o(t(Y)(`providers.shared.overflow`)),1),s(`div`,K,[h(_,{providers:i.providerGroups,"model-value":i.entry.targets[0]?.overflow_provider_id&&i.entry.targets[0]?.overflow_model?{provider_id:i.entry.targets[0].overflow_provider_id,model:i.entry.targets[0].overflow_model}:void 0,compact:``,placeholder:t(Y)(`providers.shared.overflowPlaceholder`),"onUpdate:modelValue":u[1]||=e=>$(e)},null,8,[`providers`,`model-value`,`placeholder`])]),h(t(f),{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:u[2]||=e=>$(void 0)},{default:d(()=>[h(t(y),{class:`size-3`})]),_:1})])):(l(),c(`div`,q,[h(t(f),{type:`button`,variant:`ghost`,size:`sm`,class:`text-xs text-muted-foreground/50`,onClick:oe},{default:d(()=>[h(t(v),{class:`w-3 h-3 mr-1`}),p(` `+o(t(Y)(`providers.shared.addOverflow`)),1)]),_:1}),h(t(x),{"delay-duration":200},{default:d(()=>[h(t(b),null,{default:d(()=>[h(t(te),{"as-child":``},{default:d(()=>[h(t(C),{class:`size-3 text-muted-foreground/30 cursor-help`})]),_:1}),h(t(ee),{side:`top`,class:`max-w-[240px] text-xs`},{default:d(()=>[p(o(t(Y)(`providers.shared.overflowTooltip`)),1)]),_:1})]),_:1})]),_:1})]))])])):(l(),c(`div`,T,[s(`span`,{class:`min-w-[90px] font-mono text-sm font-semibold text-foreground shrink-0 truncate`,title:i.entry.clientModel},o(i.entry.clientModel),9,E),h(t(S),{class:`size-3.5 mt-0.5 shrink-0 text-muted-foreground/30`}),s(`div`,D,[(l(!0),c(r,null,g(i.entry.targets,(n,r)=>(l(),c(`div`,{key:r},[s(`div`,{class:m([`flex items-center gap-1.5 px-2.5 py-1 rounded-md text-sm`,r===0?`bg-primary/10 border border-primary/20 text-primary`:`bg-muted/30 border border-border text-muted-foreground`])},[s(`span`,{class:m([`text-[10px] font-semibold w-3.5 text-center`,r===0?`text-primary`:`text-muted-foreground`])},o(r===0?`①`:r===1?`②`:r===2?`③`:`${r+1}`),3),s(`span`,O,o(n.backend_model),1),s(`span`,k,o(ie(n.provider_id)),1),Q(n.provider_id,n.backend_model)?(l(),c(`span`,A,[h(t(w),{class:`size-2.5`}),p(` `+o(Math.round(Q(n.provider_id,n.backend_model)/1e3))+`s `,1)])):e(``,!0)],2),r<i.entry.targets.length-1?(l(),c(`div`,j,[u[3]||=s(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),s(`span`,M,o(t(Y)(`providers.shared.switchOnFail`)),1)])):e(``,!0)]))),128)),i.entry.targets[0]?.overflow_model?(l(),c(`div`,N,[u[4]||=s(`span`,{class:`text-[10px] text-primary/40 w-3.5 text-center`},`⤵`,-1),s(`span`,P,o(t(Y)(`providers.shared.overflow`)),1),s(`span`,F,o(i.entry.targets[0].overflow_model),1)])):e(``,!0)])]))]))}});export{Y as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,L as o,Lt as s,Q as c,X as l,Xt as u,Z as d,et as f,gt as p,it as m,k as h,kt as g,mt as _,n as v,nt as y,q as b,qt as x,rt as S,vt as C}from"./button-Cn_ZnI9p.js";import{t as w}from"./MappingEntryEditor-DMc-aTGm.js";import{t as T}from"./CascadingModelSelect-BJUYEjl6.js";import{t as E}from"./plus-CcSvL3Cd.js";import{t as D}from"./trash-2-DSMpMRZF.js";import{t as O}from"./Switch-DpbOdaG4.js";import{a as k,c as A,f as j,i as M,l as N,o as ee,ot as te,s as ne,u as re,x as ie}from"./index-Dpx8LfJK.js";var P=o(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),ae={class:`flex-1 min-w-0`},oe={class:`flex flex-col items-end gap-1.5 shrink-0 pt-0.5`},se={class:`flex items-center gap-2`},ce={key:0,class:`text-[10px] px-1.5 py-0.5 rounded border border-orange-400/30 text-orange-400/60`},le={key:1,class:`text-[10px] px-1.5 py-0.5 rounded border border-primary/20 text-primary/60 flex items-center gap-0.5`},ue={key:0,class:`px-4 pt-2 pb-1 border-t border-border/30`},F={class:`flex items-center gap-2 mb-1.5`},I={class:`text-xs text-muted-foreground`},L={key:0,class:`flex items-center gap-2`},R={key:1,class:`mt-2 p-2 rounded-md border border-warning/30 bg-warning/5`},z={class:`flex gap-2`},B={class:`space-y-1`},V={class:`text-[11px] text-warning`},H={class:`text-[11px] text-warning/60`},de={class:`text-[11px] text-warning/50`},fe={key:1,class:`flex items-center justify-end gap-2 px-4 py-2 border-t border-border/50`},U=m({__name:`ModelMappingCard`,props:{entry:{},providerGroups:{},editableClientModel:{type:Boolean},defaultExpanded:{type:Boolean,default:!1}},emits:[`saved`,`deleted`,`cancel-add`],setup(o,{emit:m}){let{t:_}=i(),C=o,U=m,W=s(``);n(()=>C.entry.clientModel,e=>{W.value=e},{immediate:!0});let G=s(C.defaultExpanded),K=s([]),q=s(void 0),J=s(!1),Y=s(!1);n(G,e=>{e&&(K.value=C.entry.targets.map(e=>({...e})),q.value=C.entry.multimodalFallback?{...C.entry.multimodalFallback}:void 0)}),n(()=>C.entry.targets,e=>{G.value&&(K.value=e.map(e=>({...e})))},{deep:!0}),n(()=>C.entry.multimodalFallback,e=>{G.value&&(q.value=e?{...e}:void 0)});let X=l(()=>G.value?{...C.entry,targets:K.value,multimodalFallback:q.value}:C.entry);function Z(e){K.value=e}function Q(e){W.value=e}function pe(e){q.value=e}async function me(){J.value=!0;try{let e=C.editableClientModel?W.value.trim():C.entry.clientModel;if(!e)return;let t=JSON.stringify({targets:K.value,...q.value?.backend_model?{multimodal_fallback:q.value}:{}});C.entry.existingId?await h.updateMappingGroup(C.entry.existingId,{client_model:e,rule:t}):await h.createMappingGroup({client_model:e,rule:t}),G.value=!1,U(`saved`),M.success(_(`common.saveSuccess`))}catch(e){console.error(`mappingCard.save:`,e),M.error(t(e,_(`mappings.messages.saveFailed`)))}finally{J.value=!1}}function he(){C.editableClientModel?U(`cancel-add`):G.value=!1}async function ge(){try{C.entry.existingId&&await h.toggleMappingGroup(C.entry.existingId),U(`saved`)}catch(e){console.error(`mappingCard.toggle:`,e),M.error(t(e,_(`mappings.messages.toggleFailed`)))}}function $(){Y.value=!1,U(`deleted`,C.entry.clientModel)}let _e=l(()=>C.providerGroups);function ve(){q.value={provider_id:C.providerGroups[0]?.provider.id??``,backend_model:``}}function ye(e){q.value={provider_id:e.provider_id,backend_model:e.model}}return(t,n)=>(p(),f(a,null,[d(`div`,{class:x([`rounded-lg border transition-colors`,G.value?`border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`])},[d(`div`,{class:x([`flex items-start gap-2 px-4 py-3`,{"cursor-pointer":!G.value}]),onClick:n[2]||=e=>!G.value&&(G.value=!0)},[d(`div`,ae,[S(w,{entry:X.value,"provider-groups":o.providerGroups,expanded:G.value,editable:!0,"editable-client-model":o.editableClientModel,"onUpdate:targets":Z,"onUpdate:clientModel":Q},null,8,[`entry`,`provider-groups`,`expanded`,`editable-client-model`])]),d(`div`,oe,[d(`div`,se,[o.entry.targets.length>1?(p(),f(`span`,ce,u(r(_)(`providers.shared.level`,{count:o.entry.targets.length})),1)):e(``,!0),o.entry.multimodalFallback?(p(),f(`span`,le,[S(r(P),{class:`w-2.5 h-2.5`})])):e(``,!0),o.editableClientModel?e(``,!0):(p(),c(r(v),{key:2,variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground/40 hover:text-destructive`,onClick:n[0]||=b(e=>Y.value=!0,[`stop`])},{default:g(()=>[S(r(D),{class:`size-3`})]),_:1})),o.editableClientModel?e(``,!0):(p(),c(r(O),{key:3,"model-value":o.entry.active,"onUpdate:modelValue":ge,class:`scale-75`,onClick:n[1]||=b(()=>{},[`stop`])},null,8,[`model-value`]))])])],2),G.value?(p(),f(`div`,ue,[d(`div`,F,[S(r(P),{class:`w-3.5 h-3.5 text-muted-foreground/50`}),d(`span`,I,u(r(_)(`mappings.multimodalFallback.title`)),1),q.value?(p(),c(r(ie),{key:0,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-primary/60 border-primary/20`},{default:g(()=>[y(u(r(_)(`mappings.multimodalFallback.configured`)),1)]),_:1})):e(``,!0)]),q.value?(p(),f(`div`,L,[S(T,{providers:_e.value,"model-value":q.value?{provider_id:q.value.provider_id,model:q.value.backend_model}:void 0,placeholder:r(_)(`mappings.multimodalFallback.selectProviderModel`),compact:``,"onUpdate:modelValue":n[3]||=e=>ye(e)},null,8,[`providers`,`model-value`,`placeholder`]),S(r(v),{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:n[4]||=e=>pe(void 0)},{default:g(()=>[S(r(D),{class:`size-3`})]),_:1})])):e(``,!0),q.value?(p(),f(`div`,R,[d(`div`,z,[S(r(te),{class:`w-3.5 h-3.5 shrink-0 mt-0.5 text-warning`}),d(`div`,B,[d(`p`,V,u(r(_)(`mappings.multimodalFallback.sessionLockWarning`)),1),d(`p`,H,u(r(_)(`mappings.multimodalFallback.sessionLockReason`)),1),d(`p`,de,u(r(_)(`mappings.multimodalFallback.costSuggestion`)),1)])])])):(p(),c(r(v),{key:2,type:`button`,variant:`ghost`,size:`sm`,class:`text-xs text-muted-foreground/50`,onClick:ve},{default:g(()=>[S(r(E),{class:`w-3 h-3 mr-1`}),y(` `+u(r(_)(`mappings.multimodalFallback.add`)),1)]),_:1}))])):e(``,!0),G.value?(p(),f(`div`,fe,[S(r(v),{size:`sm`,variant:`outline`,onClick:he},{default:g(()=>[y(u(r(_)(`common.cancel`)),1)]),_:1}),S(r(v),{size:`sm`,disabled:J.value,onClick:me},{default:g(()=>[y(u(J.value?r(_)(`common.saving`):r(_)(`common.save`)),1)]),_:1},8,[`disabled`])])):e(``,!0)],2),S(r(j),{open:Y.value,"onUpdate:open":n[5]||=e=>{e||(Y.value=!1)}},{default:g(()=>[S(r(N),null,{default:g(()=>[S(r(ee),null,{default:g(()=>[S(r(k),null,{default:g(()=>[y(u(r(_)(`common.confirmDelete`)),1)]),_:1}),S(r(A),null,{default:g(()=>[y(u(r(_)(`mappings.confirmDeleteDesc`,{model:o.entry.clientModel})),1)]),_:1})]),_:1}),S(r(ne),null,{default:g(()=>[S(r(re),null,{default:g(()=>[y(u(r(_)(`common.cancel`)),1)]),_:1}),S(r(v),{variant:`destructive`,onClick:$},{default:g(()=>[y(u(r(_)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))}}),W={class:`p-6 space-y-3`},G={class:`flex items-center justify-between`},K={class:`text-lg font-semibold text-foreground`},q={class:`flex gap-2 mt-1`},J={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},Y={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},X={class:`grid grid-cols-3 gap-3`},Z={key:0,class:`py-8 text-center text-xs text-muted-foreground`},Q=m({__name:`ModelMappings`,setup(n){let{t:o}=i(),m=s([]),b=s([]),x=s([]),w=s(!1),T=l(()=>x.value.filter(e=>e.active).length),D=l(()=>b.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5,streamTimeoutMs:e.stream_timeout_ms??null}))}))),O=l(()=>({clientModel:``,targets:[{backend_model:``,provider_id:b.value[0]?.id??``}],existing:!1,tag:`cust`,active:!0}));function k(){return m.value.map(e=>{let n={};try{let t=JSON.parse(e.rule);n=t.default&&!t.targets?{targets:[t.default]}:t}catch(e){console.warn(`Failed to parse rule:`,e),M.error(t(e,o(`mappings.messages.parseRuleFailed`)))}let r=(n.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})),i=n.multimodal_fallback?{provider_id:n.multimodal_fallback.provider_id,backend_model:n.multimodal_fallback.backend_model}:void 0;return{clientModel:e.client_model,targets:r.length>0?r:[{backend_model:``,provider_id:b.value[0]?.id??``}],existing:!0,existingId:e.id,tag:`existing`,active:!!e.is_active,originalActive:!!e.is_active,multimodalFallback:i}})}async function A(){let e=await Promise.allSettled([h.getMappingGroups(),h.getProviders()]);e[0].status===`fulfilled`&&(m.value=e[0].value),e[1].status===`fulfilled`&&(b.value=e[1].value),x.value=k()}function j(){w.value=!1,A()}async function N(e){let n=x.value.find(t=>t.clientModel===e);if(n?.existingId)try{await h.deleteMappingGroup(n.existingId),await A(),M.success(o(`common.saveSuccess`))}catch(n){console.error(`modelMappings.deleteAndSave:`,n),M.error(t(n,o(`mappings.messages.deleteFailed`,{model:e})))}}return _(A),(t,n)=>(p(),f(`div`,W,[d(`div`,G,[d(`div`,null,[d(`h2`,K,u(r(o)(`mappings.title`)),1),d(`div`,q,[d(`span`,J,u(r(o)(`mappings.totalMappings`,{count:x.value.length})),1),d(`span`,Y,u(r(o)(`mappings.enabledCount`,{count:T.value})),1)])]),w.value?e(``,!0):(p(),c(r(v),{key:0,size:`sm`,variant:`outline`,onClick:n[0]||=e=>w.value=!0},{default:g(()=>[S(r(E),{class:`w-3.5 h-3.5 mr-1`}),y(` `+u(r(o)(`providers.shared.add`)),1)]),_:1}))]),d(`div`,X,[(p(!0),f(a,null,C(x.value,e=>(p(),c(U,{key:e.clientModel,entry:e,"provider-groups":D.value,onSaved:A,onDeleted:N},null,8,[`entry`,`provider-groups`]))),128)),w.value?(p(),c(U,{key:0,entry:O.value,"provider-groups":D.value,"editable-client-model":!0,"default-expanded":!0,onSaved:j,onCancelAdd:n[1]||=e=>w.value=!1},null,8,[`entry`,`provider-groups`])):e(``,!0)]),x.value.length===0&&!w.value?(p(),f(`p`,Z,u(r(o)(`providers.shared.noMappings`)),1)):e(``,!0)]))}});export{Q as default};
|
|
1
|
+
import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,L as o,Lt as s,Q as c,X as l,Xt as u,Z as d,et as f,gt as p,it as m,k as h,kt as g,mt as _,n as v,nt as y,q as b,qt as x,rt as S,vt as C}from"./button-Dm-cbgS5.js";import{t as w}from"./MappingEntryEditor-DX749LDW.js";import{t as T}from"./CascadingModelSelect-CqzJeQWb.js";import{t as E}from"./plus-BkH7yWn-.js";import{t as D}from"./trash-2-BoBubJto.js";import{t as O}from"./Switch-Ce1RNEg2.js";import{a as k,c as A,f as j,i as M,l as N,o as ee,ot as te,s as ne,u as re,x as ie}from"./index-CTaQHTod.js";var P=o(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),ae={class:`flex-1 min-w-0`},oe={class:`flex flex-col items-end gap-1.5 shrink-0 pt-0.5`},se={class:`flex items-center gap-2`},ce={key:0,class:`text-[10px] px-1.5 py-0.5 rounded border border-orange-400/30 text-orange-400/60`},le={key:1,class:`text-[10px] px-1.5 py-0.5 rounded border border-primary/20 text-primary/60 flex items-center gap-0.5`},ue={key:0,class:`px-4 pt-2 pb-1 border-t border-border/30`},F={class:`flex items-center gap-2 mb-1.5`},I={class:`text-xs text-muted-foreground`},L={key:0,class:`flex items-center gap-2`},R={key:1,class:`mt-2 p-2 rounded-md border border-warning/30 bg-warning/5`},z={class:`flex gap-2`},B={class:`space-y-1`},V={class:`text-[11px] text-warning`},H={class:`text-[11px] text-warning/60`},de={class:`text-[11px] text-warning/50`},fe={key:1,class:`flex items-center justify-end gap-2 px-4 py-2 border-t border-border/50`},U=m({__name:`ModelMappingCard`,props:{entry:{},providerGroups:{},editableClientModel:{type:Boolean},defaultExpanded:{type:Boolean,default:!1}},emits:[`saved`,`deleted`,`cancel-add`],setup(o,{emit:m}){let{t:_}=i(),C=o,U=m,W=s(``);n(()=>C.entry.clientModel,e=>{W.value=e},{immediate:!0});let G=s(C.defaultExpanded),K=s([]),q=s(void 0),J=s(!1),Y=s(!1);n(G,e=>{e&&(K.value=C.entry.targets.map(e=>({...e})),q.value=C.entry.multimodalFallback?{...C.entry.multimodalFallback}:void 0)}),n(()=>C.entry.targets,e=>{G.value&&(K.value=e.map(e=>({...e})))},{deep:!0}),n(()=>C.entry.multimodalFallback,e=>{G.value&&(q.value=e?{...e}:void 0)});let X=l(()=>G.value?{...C.entry,targets:K.value,multimodalFallback:q.value}:C.entry);function Z(e){K.value=e}function Q(e){W.value=e}function pe(e){q.value=e}async function me(){J.value=!0;try{let e=C.editableClientModel?W.value.trim():C.entry.clientModel;if(!e)return;let t=JSON.stringify({targets:K.value,...q.value?.backend_model?{multimodal_fallback:q.value}:{}});C.entry.existingId?await h.updateMappingGroup(C.entry.existingId,{client_model:e,rule:t}):await h.createMappingGroup({client_model:e,rule:t}),G.value=!1,U(`saved`),M.success(_(`common.saveSuccess`))}catch(e){console.error(`mappingCard.save:`,e),M.error(t(e,_(`mappings.messages.saveFailed`)))}finally{J.value=!1}}function he(){C.editableClientModel?U(`cancel-add`):G.value=!1}async function ge(){try{C.entry.existingId&&await h.toggleMappingGroup(C.entry.existingId),U(`saved`)}catch(e){console.error(`mappingCard.toggle:`,e),M.error(t(e,_(`mappings.messages.toggleFailed`)))}}function $(){Y.value=!1,U(`deleted`,C.entry.clientModel)}let _e=l(()=>C.providerGroups);function ve(){q.value={provider_id:C.providerGroups[0]?.provider.id??``,backend_model:``}}function ye(e){q.value={provider_id:e.provider_id,backend_model:e.model}}return(t,n)=>(p(),f(a,null,[d(`div`,{class:x([`rounded-lg border transition-colors`,G.value?`border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`])},[d(`div`,{class:x([`flex items-start gap-2 px-4 py-3`,{"cursor-pointer":!G.value}]),onClick:n[2]||=e=>!G.value&&(G.value=!0)},[d(`div`,ae,[S(w,{entry:X.value,"provider-groups":o.providerGroups,expanded:G.value,editable:!0,"editable-client-model":o.editableClientModel,"onUpdate:targets":Z,"onUpdate:clientModel":Q},null,8,[`entry`,`provider-groups`,`expanded`,`editable-client-model`])]),d(`div`,oe,[d(`div`,se,[o.entry.targets.length>1?(p(),f(`span`,ce,u(r(_)(`providers.shared.level`,{count:o.entry.targets.length})),1)):e(``,!0),o.entry.multimodalFallback?(p(),f(`span`,le,[S(r(P),{class:`w-2.5 h-2.5`})])):e(``,!0),o.editableClientModel?e(``,!0):(p(),c(r(v),{key:2,variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground/40 hover:text-destructive`,onClick:n[0]||=b(e=>Y.value=!0,[`stop`])},{default:g(()=>[S(r(D),{class:`size-3`})]),_:1})),o.editableClientModel?e(``,!0):(p(),c(r(O),{key:3,"model-value":o.entry.active,"onUpdate:modelValue":ge,class:`scale-75`,onClick:n[1]||=b(()=>{},[`stop`])},null,8,[`model-value`]))])])],2),G.value?(p(),f(`div`,ue,[d(`div`,F,[S(r(P),{class:`w-3.5 h-3.5 text-muted-foreground/50`}),d(`span`,I,u(r(_)(`mappings.multimodalFallback.title`)),1),q.value?(p(),c(r(ie),{key:0,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-primary/60 border-primary/20`},{default:g(()=>[y(u(r(_)(`mappings.multimodalFallback.configured`)),1)]),_:1})):e(``,!0)]),q.value?(p(),f(`div`,L,[S(T,{providers:_e.value,"model-value":q.value?{provider_id:q.value.provider_id,model:q.value.backend_model}:void 0,placeholder:r(_)(`mappings.multimodalFallback.selectProviderModel`),compact:``,"onUpdate:modelValue":n[3]||=e=>ye(e)},null,8,[`providers`,`model-value`,`placeholder`]),S(r(v),{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:n[4]||=e=>pe(void 0)},{default:g(()=>[S(r(D),{class:`size-3`})]),_:1})])):e(``,!0),q.value?(p(),f(`div`,R,[d(`div`,z,[S(r(te),{class:`w-3.5 h-3.5 shrink-0 mt-0.5 text-warning`}),d(`div`,B,[d(`p`,V,u(r(_)(`mappings.multimodalFallback.sessionLockWarning`)),1),d(`p`,H,u(r(_)(`mappings.multimodalFallback.sessionLockReason`)),1),d(`p`,de,u(r(_)(`mappings.multimodalFallback.costSuggestion`)),1)])])])):(p(),c(r(v),{key:2,type:`button`,variant:`ghost`,size:`sm`,class:`text-xs text-muted-foreground/50`,onClick:ve},{default:g(()=>[S(r(E),{class:`w-3 h-3 mr-1`}),y(` `+u(r(_)(`mappings.multimodalFallback.add`)),1)]),_:1}))])):e(``,!0),G.value?(p(),f(`div`,fe,[S(r(v),{size:`sm`,variant:`outline`,onClick:he},{default:g(()=>[y(u(r(_)(`common.cancel`)),1)]),_:1}),S(r(v),{size:`sm`,disabled:J.value,onClick:me},{default:g(()=>[y(u(J.value?r(_)(`common.saving`):r(_)(`common.save`)),1)]),_:1},8,[`disabled`])])):e(``,!0)],2),S(r(j),{open:Y.value,"onUpdate:open":n[5]||=e=>{e||(Y.value=!1)}},{default:g(()=>[S(r(N),null,{default:g(()=>[S(r(ee),null,{default:g(()=>[S(r(k),null,{default:g(()=>[y(u(r(_)(`common.confirmDelete`)),1)]),_:1}),S(r(A),null,{default:g(()=>[y(u(r(_)(`mappings.confirmDeleteDesc`,{model:o.entry.clientModel})),1)]),_:1})]),_:1}),S(r(ne),null,{default:g(()=>[S(r(re),null,{default:g(()=>[y(u(r(_)(`common.cancel`)),1)]),_:1}),S(r(v),{variant:`destructive`,onClick:$},{default:g(()=>[y(u(r(_)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))}}),W={class:`p-6 space-y-3`},G={class:`flex items-center justify-between`},K={class:`text-lg font-semibold text-foreground`},q={class:`flex gap-2 mt-1`},J={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},Y={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},X={class:`grid grid-cols-3 gap-3`},Z={key:0,class:`py-8 text-center text-xs text-muted-foreground`},Q=m({__name:`ModelMappings`,setup(n){let{t:o}=i(),m=s([]),b=s([]),x=s([]),w=s(!1),T=l(()=>x.value.filter(e=>e.active).length),D=l(()=>b.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5,streamTimeoutMs:e.stream_timeout_ms??null}))}))),O=l(()=>({clientModel:``,targets:[{backend_model:``,provider_id:b.value[0]?.id??``}],existing:!1,tag:`cust`,active:!0}));function k(){return m.value.map(e=>{let n={};try{let t=JSON.parse(e.rule);n=t.default&&!t.targets?{targets:[t.default]}:t}catch(e){console.warn(`Failed to parse rule:`,e),M.error(t(e,o(`mappings.messages.parseRuleFailed`)))}let r=(n.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})),i=n.multimodal_fallback?{provider_id:n.multimodal_fallback.provider_id,backend_model:n.multimodal_fallback.backend_model}:void 0;return{clientModel:e.client_model,targets:r.length>0?r:[{backend_model:``,provider_id:b.value[0]?.id??``}],existing:!0,existingId:e.id,tag:`existing`,active:!!e.is_active,originalActive:!!e.is_active,multimodalFallback:i}})}async function A(){let e=await Promise.allSettled([h.getMappingGroups(),h.getProviders()]);e[0].status===`fulfilled`&&(m.value=e[0].value),e[1].status===`fulfilled`&&(b.value=e[1].value),x.value=k()}function j(){w.value=!1,A()}async function N(e){let n=x.value.find(t=>t.clientModel===e);if(n?.existingId)try{await h.deleteMappingGroup(n.existingId),await A(),M.success(o(`common.saveSuccess`))}catch(n){console.error(`modelMappings.deleteAndSave:`,n),M.error(t(n,o(`mappings.messages.deleteFailed`,{model:e})))}}return _(A),(t,n)=>(p(),f(`div`,W,[d(`div`,G,[d(`div`,null,[d(`h2`,K,u(r(o)(`mappings.title`)),1),d(`div`,q,[d(`span`,J,u(r(o)(`mappings.totalMappings`,{count:x.value.length})),1),d(`span`,Y,u(r(o)(`mappings.enabledCount`,{count:T.value})),1)])]),w.value?e(``,!0):(p(),c(r(v),{key:0,size:`sm`,variant:`outline`,onClick:n[0]||=e=>w.value=!0},{default:g(()=>[S(r(E),{class:`w-3.5 h-3.5 mr-1`}),y(` `+u(r(o)(`providers.shared.add`)),1)]),_:1}))]),d(`div`,X,[(p(!0),f(a,null,C(x.value,e=>(p(),c(U,{key:e.clientModel,entry:e,"provider-groups":D.value,onSaved:A,onDeleted:N},null,8,[`entry`,`provider-groups`]))),128)),w.value?(p(),c(U,{key:0,entry:O.value,"provider-groups":D.value,"editable-client-model":!0,"default-expanded":!0,onSaved:j,onCancelAdd:n[1]||=e=>w.value=!1},null,8,[`entry`,`provider-groups`])):e(``,!0)]),x.value.length===0&&!w.value?(p(),f(`p`,Z,u(r(o)(`providers.shared.noMappings`)),1)):e(``,!0)]))}});export{Q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,Lt as o,Nt as s,Q as c,Wt as l,X as u,Xt as d,Yt as f,Z as p,et as m,gt as h,ht as ee,it as g,k as _,kt as v,mt as y,n as b,nt as x,q as S,qt as C,rt as w,vt as T,zt as E}from"./button-Dm-cbgS5.js";import{n as D,t as te}from"./UnifiedRequestDialog-D_88_dFB.js";import{t as O}from"./copy-DMw-23Tb.js";import{i as k,n as A,r as j,t as M}from"./TooltipTrigger-BvHKib2n.js";import{c as N,d as ne,f as re,l as ie,s as P,u as F}from"./dialog-Dzy4m58L.js";import{Ct as I,a as ae,at as oe,c as se,d as ce,f as le,i as ue,l as de,mt as L,o as fe,pt as pe,s as me,u as he,x as R}from"./index-CTaQHTod.js";import{n as z,t as B}from"./CardContent-1i8E_S3q.js";import{n as V,t as H}from"./CardTitle-9IEYVrNF.js";import{t as ge}from"./useClipboard-DebN1Yvq.js";var U={class:`grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6`},W={class:`text-sm text-muted-foreground`},_e={class:`text-2xl font-bold text-foreground mt-1`},ve={class:`text-xs text-muted-foreground mt-1`},G={class:`text-sm text-muted-foreground`},ye={class:`text-2xl font-bold text-foreground mt-1`},be={class:`text-xs text-muted-foreground mt-1`},xe={class:`text-sm text-muted-foreground`},Se={class:`text-2xl font-bold text-foreground mt-1`},Ce={class:`text-xs text-muted-foreground mt-1`},K={class:`text-sm text-muted-foreground`},q={class:`text-2xl font-bold text-foreground mt-1`},J={class:`text-xs text-muted-foreground mt-1`},we=g({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{}},setup(e){let{t}=i(),n=e,a=u(()=>!n.stats||n.stats.totalRequests===0?`0.0`:(n.stats.errorCount/n.stats.totalRequests*100).toFixed(1)),o=u(()=>!n.stats||n.stats.totalRequests===0?`0.0`:(n.stats.retryCount/n.stats.totalRequests*100).toFixed(1)),s=u(()=>n.stats?n.stats.p50LatencyMs.toFixed(0):`--`);return(n,i)=>(h(),m(`div`,U,[w(r(z),null,{default:v(()=>[w(r(B),{class:`p-4`},{default:v(()=>[p(`p`,W,d(r(t)(`monitor.header.activeRequests`)),1),p(`p`,_e,d(e.activeCount),1),p(`p`,ve,d(r(t)(`monitor.header.streamNonStream`,{stream:e.streamCount,nonStream:e.activeCount-e.streamCount})),1)]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(B),{class:`p-4`},{default:v(()=>[p(`p`,G,d(r(t)(`monitor.header.errorRate`)),1),p(`p`,ye,d(a.value)+`%`,1),p(`p`,be,d(e.stats?.errorCount??0)+` / `+d(e.stats?.totalRequests??0),1)]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(B),{class:`p-4`},{default:v(()=>[p(`p`,xe,d(r(t)(`monitor.header.p50Latency`)),1),p(`p`,Se,d(s.value)+`ms`,1),p(`p`,Ce,d(r(t)(`monitor.header.avgLatency`,{value:e.stats?.avgLatencyMs?.toFixed(0)??`--`})),1)]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(B),{class:`p-4`},{default:v(()=>[p(`p`,K,d(r(t)(`monitor.header.retryRate`)),1),p(`p`,q,d(o.value)+`%`,1),p(`p`,J,d(e.stats?.retryCount??0)+` / `+d(e.stats?.totalRequests??0),1)]),_:1})]),_:1})]))}}),Y={class:`space-y-3`},X={key:0,class:`text-sm text-muted-foreground`},Te={class:`flex items-center justify-between text-sm`},Ee={class:`font-medium text-foreground`},Z={class:`text-muted-foreground`},Q={class:`text-xs`},De={key:0,class:`h-2 bg-muted rounded-full overflow-hidden`},$={key:1,class:`flex gap-3 text-xs text-muted-foreground`},Oe=g({__name:`ConcurrencyPanel`,props:{providers:{}},setup(t){let{t:n}=i();function o(e){return e.adaptiveLimit??e.maxConcurrency}function s(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(i,c)=>(h(),m(`div`,Y,[t.providers.length===0?(h(),m(`div`,X,d(r(n)(`monitor.concurrencyPanel.noData`)),1)):e(``,!0),(h(!0),m(a,null,T(t.providers,t=>(h(),m(`div`,{key:t.providerId,class:`space-y-1`},[p(`div`,Te,[p(`span`,Ee,d(t.providerName),1),p(`span`,Z,[t.adaptiveEnabled?(h(),m(a,{key:0},[x(d(t.active)+` / `+d(t.adaptiveLimit??t.maxConcurrency)+` `,1),p(`span`,Q,`(`+d(r(n)(`monitor.concurrencyPanel.adaptive`))+`)`,1)],64)):t.maxConcurrency===0?(h(),m(a,{key:1},[x(d(r(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(h(),m(a,{key:2},[x(d(t.active)+` / `+d(t.maxConcurrency),1)],64))])]),t.maxConcurrency>0?(h(),m(`div`,De,[p(`div`,{class:C([`h-full rounded-full transition-all duration-300`,s(t.active,o(t))]),style:f({width:`${Math.min(100,t.active/o(t)*100)}%`})},null,6)])):e(``,!0),t.maxConcurrency>0?(h(),m(`div`,$,[p(`span`,null,d(r(n)(`monitor.concurrencyPanel.queued`,{count:t.queued})),1),p(`span`,null,d(r(n)(`monitor.concurrencyPanel.queueLimit`,{limit:t.adaptiveLimit??t.maxQueueSize})),1)])):e(``,!0)]))),128))]))}}),ke={key:0,class:`text-sm text-muted-foreground`},Ae={key:1,class:`grid grid-cols-2 gap-3 text-sm`},je={class:`text-muted-foreground`},Me={class:`font-medium text-foreground`},Ne={class:`text-muted-foreground`},Pe={class:`font-medium text-foreground`},Fe={class:`col-span-2`},Ie={class:`flex items-center justify-between`},Le={class:`text-muted-foreground`},Re={class:`text-muted-foreground`},ze={class:`h-2 bg-muted rounded-full overflow-hidden mt-1`},Be={class:`text-muted-foreground`},Ve={class:`font-medium text-foreground`},He={class:`text-muted-foreground`},Ue={class:`font-medium text-foreground`},We={class:`col-span-2`},Ge={class:`text-muted-foreground`},Ke={class:`font-medium text-foreground`},qe=g({__name:`RuntimePanel`,props:{runtime:{}},setup(e){let{t}=i(),n=e,a=u(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(100,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*100));function o(e){let t=Math.floor(e/1e3);return`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m ${t%60}s`}return(n,i)=>e.runtime?(h(),m(`div`,Ae,[p(`div`,null,[p(`p`,je,d(r(t)(`monitor.runtimePanel.uptime`)),1),p(`p`,Me,d(o(e.runtime.uptimeMs)),1)]),p(`div`,null,[p(`p`,Ne,d(r(t)(`monitor.runtimePanel.memoryRss`)),1),p(`p`,Pe,d(r(L)(e.runtime.memoryUsage.rss)),1)]),p(`div`,Fe,[p(`div`,Ie,[p(`p`,Le,d(r(t)(`monitor.runtimePanel.heapUsage`)),1),p(`p`,Re,d(r(L)(e.runtime.memoryUsage.heapUsed))+` / `+d(r(L)(e.runtime.memoryUsage.heapTotal)),1)]),p(`div`,ze,[p(`div`,{class:`h-full bg-primary rounded-full transition-all duration-300`,style:f({width:`${a.value}%`})},null,4)])]),p(`div`,null,[p(`p`,Be,d(r(t)(`monitor.runtimePanel.activeHandles`)),1),p(`p`,Ve,d(e.runtime.activeHandles),1)]),p(`div`,null,[p(`p`,He,d(r(t)(`monitor.runtimePanel.activeRequests`)),1),p(`p`,Ue,d(e.runtime.activeRequests),1)]),p(`div`,We,[p(`p`,Ge,d(r(t)(`monitor.runtimePanel.eventLoopDelay`)),1),p(`p`,Ke,d(e.runtime.eventLoopDelayMs.toFixed(2))+`ms `,1)])])):(h(),m(`div`,ke,d(r(t)(`monitor.runtimePanel.noData`)),1))}}),Je={key:0,class:`text-sm text-muted-foreground`},Ye={key:1,class:`space-y-2`},Xe={class:`flex items-center justify-between text-sm`},Ze={class:`text-muted-foreground`},Qe={class:`h-2 bg-muted rounded-full overflow-hidden`},$e=g({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(e){let{t}=i(),n=e,o=u(()=>Object.values(n.byStatusCode).reduce((e,t)=>e+t,0)),s=u(()=>{let e=n.byStatusCode,r=o.value||1,i=c(e,200,299),a=c(e,400,499)-(e[429]||0),s=e[429]||0,l=c(e,500,599);return[{label:t(`monitor.statusCodes.success`),count:i,percent:(i/r*100).toFixed(1),textClass:`text-green-600 dark:text-green-400`,barClass:`bg-green-500`},{label:t(`monitor.statusCodes.clientError`),count:a,percent:(a/r*100).toFixed(1),textClass:`text-yellow-600 dark:text-yellow-400`,barClass:`bg-yellow-500`},{label:t(`monitor.statusCodes.rateLimited`),count:s,percent:(s/r*100).toFixed(1),textClass:`text-orange-600 dark:text-orange-400`,barClass:`bg-orange-500`},{label:t(`monitor.statusCodes.serverError`),count:l,percent:(l/r*100).toFixed(1),textClass:`text-red-600 dark:text-red-400`,barClass:`bg-red-500`}].filter(e=>e.count>0)});function c(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(e,n)=>o.value===0?(h(),m(`div`,Je,d(r(t)(`monitor.statusCodes.noData`)),1)):(h(),m(`div`,Ye,[(h(!0),m(a,null,T(s.value,e=>(h(),m(`div`,{key:e.label,class:`space-y-1`},[p(`div`,Xe,[p(`span`,{class:C(e.textClass)},d(e.label),3),p(`span`,Ze,d(e.count)+` (`+d(e.percent)+`%) `,1)]),p(`div`,Qe,[p(`div`,{class:C([`h-full rounded-full transition-all duration-300`,e.barClass]),style:f({width:`${e.percent}%`})},null,6)])]))),128))]))}}),et={key:0,class:`text-sm text-muted-foreground py-4 text-center`},tt={key:1,class:`text-sm text-muted-foreground py-4 text-center`},nt={class:`flex flex-wrap gap-1`},rt={key:0,class:`text-xs text-muted-foreground`},it=g({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let{t:n}=i(),o=t,s=u(()=>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(i,o)=>t.stats?s.value.length===0?(h(),m(`div`,tt,d(r(n)(`monitor.providerTable.noProviders`)),1)):(h(),c(r(re),{key:2},{default:v(()=>[w(r(P),null,{default:v(()=>[w(r(ie),null,{default:v(()=>[w(r(N),null,{default:v(()=>[...o[0]||=[x(`Provider`,-1)]]),_:1}),w(r(N),{class:`text-right`},{default:v(()=>[x(d(r(n)(`monitor.providerTable.requests`)),1)]),_:1}),w(r(N),{class:`text-right`},{default:v(()=>[x(d(r(n)(`monitor.providerTable.successRate`)),1)]),_:1}),w(r(N),{class:`text-right`},{default:v(()=>[x(d(r(n)(`monitor.providerTable.avgLatency`)),1)]),_:1}),w(r(N),{class:`text-right`},{default:v(()=>[x(d(r(n)(`monitor.providerTable.retryRate`)),1)]),_:1}),w(r(N),null,{default:v(()=>[x(d(r(n)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),w(r(ne),null,{default:v(()=>[(h(!0),m(a,null,T(s.value,t=>(h(),c(r(ie),{key:t.id},{default:v(()=>[w(r(F),{class:`font-medium`},{default:v(()=>[x(d(t.name),1)]),_:2},1024),w(r(F),{class:`text-right`},{default:v(()=>[x(d(t.stats.totalRequests),1)]),_:2},1024),w(r(F),{class:`text-right`},{default:v(()=>[p(`span`,{class:C(t.successRate>=95?`text-green-600 dark:text-green-400`:t.successRate>=80?`text-yellow-600 dark:text-yellow-400`:`text-red-500 dark:text-red-400`)},d(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),w(r(F),{class:`text-right`},{default:v(()=>[x(d(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),w(r(F),{class:`text-right`},{default:v(()=>[p(`span`,{class:C(t.retryRate>10?`text-yellow-600 dark:text-yellow-400`:``)},d(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),w(r(F),null,{default:v(()=>[p(`div`,nt,[(h(!0),m(a,null,T(t.stats.topErrors.slice(0,3),e=>(h(),c(r(R),{key:e.code,variant:`destructive`,class:`text-xs`},{default:v(()=>[x(d(e.code)+` (`+d(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(h(),m(`span`,rt,`--`)):e(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(h(),m(`div`,et,d(r(n)(`monitor.providerTable.noData`)),1))}}),at=3e4;function ot(e,t,n){let r=null,i=null,a=0,o=null,s=!1;function c(){document.hidden?o=setTimeout(()=>{u(),n?.onClose?.()},at):(o&&=(clearTimeout(o),null),r||l())}function l(){if(!r){r=new EventSource(e),r.onopen=()=>{a=0,n?.onOpen?.(),!s&&typeof document<`u`&&(document.addEventListener(`visibilitychange`,c),s=!0)};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{u(),n?.onClose?.();let e=Math.min(3e3*2**a,3e4);a++,i=setTimeout(l,e)}}}function u(){i&&=(clearTimeout(i),null),o&&=(clearTimeout(o),null),r&&=(r.close(),null)}return ee(()=>{u(),s&&typeof document<`u`&&(document.removeEventListener(`visibilitychange`,c),s=!1),n?.onClose?.()}),{connect:l,disconnect:u}}var st=200,ct=404,lt=500;async function ut(e,t){try{let n=dt(e.value,await t());n!==e.value&&(e.value=n)}catch(t){console.error(`useMonitorData.syncActiveOnSSEReconnect failed:`,t),e.value=[...e.value]}}function dt(e,t){let n=new Set(t.map(e=>e.id)),r=new Set(e.map(e=>e.id)),i=e.filter(e=>!n.has(e.id)),a=t.filter(e=>!r.has(e.id));if(i.length===0&&a.length===0)return e;let o=e.filter(e=>n.has(e.id));return[...a,...o]}function ft(){let e=E([]),t=o([]),r=o(null),i=o([]),a=o(null),s=o(!1),c=!1,d=u(()=>e.value.filter(e=>e.isStream).length),f=u(()=>e.value.filter(e=>!e.queued)),p=u(()=>e.value.filter(e=>e.queued===!0));function m(n){let o;try{o=JSON.parse(n.data)}catch{return}switch(n.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>st&&(t.value.length=st);break}case`concurrency_update`:i.value=o;break;case`stats_update`:r.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&&(t.streamTotalChars=n.totalChars,n.streamMetrics&&(t.streamMetrics=n.streamMetrics))}l(e);break}case`runtime_update`:a.value=o;break}}async function h(){if(s.value=!0,!c){c=!0;return}await ut(e,()=>_.getMonitorActive())}function g(){s.value=!1}async function v(){try{let[n,o,s,c,l]=await Promise.allSettled([_.getMonitorActive(),_.getMonitorRecent(),_.getMonitorStats(),_.getMonitorConcurrency(),_.getMonitorRuntime()]);n.status===`fulfilled`&&(e.value=n.value),o.status===`fulfilled`&&(t.value=o.value),s.status===`fulfilled`&&(r.value=s.value),c.status===`fulfilled`&&(i.value=c.value),l.status===`fulfilled`&&(a.value=l.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),r.value=null,i.value=[],a.value=null}}let y=o(null),b=o(!1),x=o(0);async function S(n){let r=++x.value,i=e.value.find(e=>e.id===n)??t.value.find(e=>e.id===n);if(!i){y.value=null;return}y.value=null,b.value=!0;try{if(i.status===`pending`){try{let e=await _.getMonitorRequest(n);if(r!==x.value)return;y.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==ct)throw e;if(r!==x.value)return;let t=await _.getLogDetail(n);if(r!==x.value)return;y.value=t.client_request?{clientRequest:t.client_request}:null}return}let e=await _.getLogDetail(n);if(r!==x.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}}y.value={responseBody:t,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==x.value)return;console.warn(`Failed to load log detail:`,e),y.value=null}finally{r===x.value&&(b.value=!1)}}let C=o(null),w=o(!1),T=o(null),D=null;function te(t){if(O(),!t)return;let n=async()=>{let n=e.value.find(e=>e.id===t);if(!n||n.status===`completed`||n.status===`failed`){O();return}try{let e=await _.getMonitorRequest(t);if(C.value!==t)return;e.streamContent&&(T.value=e.streamContent)}catch(e){e?.response?.status===ct&&O()}};n(),D=setInterval(n,lt)}function O(){D&&=(clearInterval(D),null)}function k(e){C.value=e,w.value=!0,T.value=null;let n=t.value.find(t=>t.id===e);n&&(n.status===`completed`||n.status===`failed`)&&(n.streamContent?T.value=n.streamContent:A(e)),te(e),S(e)}async function A(e){try{let t=await _.getMonitorRequest(e);if(C.value!==e)return;t.streamContent&&(T.value=t.streamContent)}catch(e){console.error(`loadCompletedStreamContent:`,e)}}let j=u(()=>C.value?e.value.find(e=>e.id===C.value)??t.value.find(e=>e.id===C.value)??null:null);return n(()=>j.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&(O(),S(C.value))}),ee(()=>{O()}),{activeRequests:e,recentCompleted:t,stats:r,concurrency:i,runtime:a,connected:s,streamCount:d,streamingRequests:f,queuedRequests:p,selectedRequestId:C,selectedRequest:j,requestDetailOpen:w,selectRequest:k,selectedStreamContent:T,logDetailData:y,nonStreamBodyLoading:b,handleSSEMessage:m,handleSSEOpen:h,handleSSEClose:g,loadInitialData:v}}function pt(e){switch(e){case`pending`:return`default`;case`failed`:return`destructive`;case`completed`:return`secondary`;default:return`outline`}}function mt(e){let{t}=I.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 ht={class:`p-6`},gt={class:`flex items-center justify-between mb-4`},_t={class:`text-lg font-semibold text-foreground`},vt={class:`flex items-center gap-2`},yt={class:`grid grid-cols-3 gap-4 mb-6`},bt={class:`flex items-center justify-between`},xt={key:0,class:`text-sm text-muted-foreground py-2`},St=[`onClick`],Ct={class:`text-sm text-foreground truncate flex-1`},wt={class:`text-xs text-muted-foreground shrink-0`},Tt={key:0,class:`text-xs text-muted-foreground shrink-0`},Et={key:1,class:`text-xs text-muted-foreground shrink-0`},Dt={class:`flex items-center justify-between`},Ot={key:0,class:`text-sm text-muted-foreground py-2`},kt=[`onClick`],At={class:`text-sm text-foreground truncate flex-1`},jt={class:`text-xs text-muted-foreground shrink-0`},Mt={class:`flex items-center justify-between`},Nt={key:0,class:`text-sm text-muted-foreground py-2`},Pt=[`onClick`],Ft={class:`text-sm text-foreground truncate flex-1`},It={class:`text-xs text-muted-foreground shrink-0`},Lt={class:`grid grid-cols-1 lg:grid-cols-3 gap-4`},Rt=2e3,zt=1e3,Bt=3e3,Vt=g({__name:`Monitor`,setup(n){let{t:l}=i(),{activeRequests:f,recentCompleted:g,stats:E,concurrency:N,runtime:ne,connected:re,streamCount:ie,streamingRequests:P,queuedRequests:F,selectedRequestId:I,selectedRequest:L,requestDetailOpen:U,selectRequest:W,selectedStreamContent:_e,logDetailData:ve,handleSSEMessage:G,handleSSEOpen:ye,handleSSEClose:be,loadInitialData:xe}=ft(),{connect:Se}=ot(`/admin/api/monitor/stream`,{request_start:G,request_update:G,request_complete:G,concurrency_update:G,stats_update:G,runtime_update:G,stream_content_update:G},{onOpen:ye,onClose:be}),{copy:Ce}=ge(),K=o(null);function q(e){Ce(e),K.value=e,setTimeout(()=>{K.value===e&&(K.value=null)},Rt)}let J=o(!1),Y=o(null),X=u(()=>Y.value?f.value.find(e=>e.id===Y.value)??null:null);function Te(e){Y.value=e,J.value=!0}async function Ee(){if(Y.value){try{await _.killMonitorRequest(Y.value),f.value=f.value.filter(e=>e.id!==Y.value),ue.success(l(`monitor.killSuccess`))}catch(e){console.error(`Monitor.killRequest:`,e),ue.error(t(e,l(`monitor.killFailed`)))}J.value=!1}}let Z=o(Date.now()),Q=null;function De(){$(),Q=setInterval(()=>{Z.value=Date.now()},Bt)}function $(){Q&&=(clearInterval(Q),null)}function ke(){document.hidden?$():(Z.value=Date.now(),De())}function Ae(e){return((Z.value-e)/zt).toFixed(1)}function je(e){return e.completedAt?((e.completedAt-e.startTime)/zt).toFixed(1)+`s`:`--`}return y(async()=>{await xe(),Se(),De(),document.addEventListener(`visibilitychange`,ke)}),ee(()=>{$(),document.removeEventListener(`visibilitychange`,ke)}),(t,n)=>(h(),m(`div`,ht,[p(`div`,gt,[p(`h2`,_t,d(r(l)(`monitor.title`)),1),p(`div`,vt,[w(r(R),{variant:r(re)?`default`:`destructive`},{default:v(()=>[x(d(r(re)?r(l)(`monitor.connected`):r(l)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])])]),w(we,{stats:r(E),"active-count":r(f).length,"stream-count":r(ie)},null,8,[`stats`,`active-count`,`stream-count`]),p(`div`,yt,[w(r(z),null,{default:v(()=>[w(r(V),{class:`pb-2`},{default:v(()=>[p(`div`,bt,[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.activeRequests`)),1)]),_:1}),w(r(R),{variant:`secondary`},{default:v(()=>[x(d(r(P).length),1)]),_:1})])]),_:1}),w(r(B),null,{default:v(()=>[w(r(A),{"delay-duration":300},{default:v(()=>[w(r(D),{class:`h-64`},{default:v(()=>[r(P).length===0?(h(),m(`div`,xt,d(r(l)(`monitor.noActiveRequests`)),1)):e(``,!0),(h(!0),m(a,null,T(r(P),t=>(h(),m(`div`,{key:t.id,class:C([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":r(I)===t.id}]),onClick:e=>r(W)(t.id)},[w(r(R),{variant:r(pt)(t.status),class:`shrink-0`},{default:v(()=>[x(d(r(mt)(t.status)),1)]),_:2},1032,[`variant`]),p(`span`,Ct,d(t.model),1),w(r(R),{variant:`outline`,class:`shrink-0 text-xs`},{default:v(()=>[x(d(t.providerName),1)]),_:2},1024),p(`span`,wt,d(Ae(t.startTime))+`s`,1),t.streamMetrics?.tokensPerSecond?(h(),m(`span`,Tt,d(t.streamMetrics.tokensPerSecond.toFixed(0))+` t/s `,1)):e(``,!0),t.streamMetrics?.outputTokens?(h(),m(`span`,Et,d(t.streamMetrics.outputTokens)+` tok `,1)):e(``,!0),t.isStream?(h(),c(r(R),{key:2,variant:`outline`,class:`shrink-0 text-xs`},{default:v(()=>[...n[2]||=[x(`SSE`,-1)]]),_:1})):e(``,!0),w(r(k),null,{default:v(()=>[w(r(M),{"as-child":``},{default:v(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:S(e=>q(t.id),[`stop`])},{default:v(()=>[K.value===t.id?(h(),c(r(pe),{key:0,class:`size-3 text-success`})):(h(),c(r(O),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),w(r(j),null,{default:v(()=>[x(d(r(l)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),w(r(k),null,{default:v(()=>[w(r(M),{"as-child":``},{default:v(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-destructive hover:text-destructive`,onClick:S(e=>Te(t.id),[`stop`])},{default:v(()=>[w(r(oe),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),w(r(j),null,{default:v(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:2},1024)],10,St))),128))]),_:1})]),_:1})]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(V),{class:`pb-2`},{default:v(()=>[p(`div`,Dt,[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.queuedRequests`)),1)]),_:1}),w(r(R),{variant:`secondary`},{default:v(()=>[x(d(r(F).length),1)]),_:1})])]),_:1}),w(r(B),null,{default:v(()=>[w(r(A),{"delay-duration":300},{default:v(()=>[w(r(D),{class:`h-64`},{default:v(()=>[r(F).length===0?(h(),m(`div`,Ot,d(r(l)(`monitor.noQueuedRequests`)),1)):e(``,!0),(h(!0),m(a,null,T(r(F),e=>(h(),m(`div`,{key:e.id,class:C([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":r(I)===e.id}]),onClick:t=>r(W)(e.id)},[w(r(R),{variant:`outline`,class:`shrink-0`},{default:v(()=>[x(d(r(l)(`monitor.queued`)),1)]),_:1}),p(`span`,At,d(e.model),1),w(r(R),{variant:`outline`,class:`shrink-0 text-xs`},{default:v(()=>[x(d(e.providerName),1)]),_:2},1024),p(`span`,jt,d(Ae(e.startTime))+`s`,1),w(r(k),null,{default:v(()=>[w(r(M),{"as-child":``},{default:v(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:S(t=>q(e.id),[`stop`])},{default:v(()=>[K.value===e.id?(h(),c(r(pe),{key:0,class:`size-3 text-success`})):(h(),c(r(O),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),w(r(j),null,{default:v(()=>[x(d(r(l)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),w(r(k),null,{default:v(()=>[w(r(M),{"as-child":``},{default:v(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-destructive hover:text-destructive`,onClick:S(t=>Te(e.id),[`stop`])},{default:v(()=>[w(r(oe),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),w(r(j),null,{default:v(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:2},1024)],10,kt))),128))]),_:1})]),_:1})]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(V),{class:`pb-2`},{default:v(()=>[p(`div`,Mt,[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.completed`)),1)]),_:1}),w(r(R),{variant:`secondary`},{default:v(()=>[x(d(r(g).length),1)]),_:1})])]),_:1}),w(r(B),null,{default:v(()=>[w(r(A),{"delay-duration":300},{default:v(()=>[w(r(D),{class:`h-64`},{default:v(()=>[r(g).length===0?(h(),m(`div`,Nt,d(r(l)(`monitor.noCompletedRequests`)),1)):e(``,!0),(h(!0),m(a,null,T(r(g),t=>(h(),m(`div`,{key:t.id,class:C([`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":r(I)===t.id}]),onClick:e=>r(W)(t.id)},[w(r(R),{variant:r(pt)(t.status),class:`shrink-0`},{default:v(()=>[x(d(r(mt)(t.status)),1)]),_:2},1032,[`variant`]),p(`span`,Ft,d(t.model),1),w(r(R),{variant:`outline`,class:`shrink-0 text-xs`},{default:v(()=>[x(d(t.providerName),1)]),_:2},1024),t.isStream?(h(),c(r(R),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:v(()=>[...n[3]||=[x(`SSE`,-1)]]),_:1})):e(``,!0),p(`span`,It,d(je(t)),1),w(r(k),null,{default:v(()=>[w(r(M),{"as-child":``},{default:v(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:S(e=>q(t.id),[`stop`])},{default:v(()=>[K.value===t.id?(h(),c(r(pe),{key:0,class:`size-3 text-success`})):(h(),c(r(O),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),w(r(j),null,{default:v(()=>[x(d(r(l)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)],10,Pt))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),w(r(z),{class:`mb-4`},{default:v(()=>[w(r(V),null,{default:v(()=>[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.providerStats`)),1)]),_:1})]),_:1}),w(r(B),null,{default:v(()=>[w(it,{stats:r(E)},null,8,[`stats`])]),_:1})]),_:1}),p(`div`,Lt,[w(r(z),null,{default:v(()=>[w(r(V),null,{default:v(()=>[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.concurrency`)),1)]),_:1})]),_:1}),w(r(B),null,{default:v(()=>[w(Oe,{providers:r(N)},null,8,[`providers`])]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(V),null,{default:v(()=>[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.statusCodeDistribution`)),1)]),_:1})]),_:1}),w(r(B),null,{default:v(()=>[w($e,{"by-status-code":r(E)?.byStatusCode??{}},null,8,[`by-status-code`])]),_:1})]),_:1}),w(r(z),null,{default:v(()=>[w(r(V),null,{default:v(()=>[w(r(H),{class:`text-sm font-medium text-foreground`},{default:v(()=>[x(d(r(l)(`monitor.runtime`)),1)]),_:1})]),_:1}),w(r(B),null,{default:v(()=>[w(qe,{runtime:r(ne)},null,8,[`runtime`])]),_:1})]),_:1})]),w(te,{open:r(U),"onUpdate:open":n[0]||=e=>s(U)?U.value=e:null,source:`realtime`,request:r(L),"stream-content":r(_e),"log-detail-data":r(ve)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`]),w(r(le),{open:J.value,"onUpdate:open":n[1]||=e=>J.value=e},{default:v(()=>[w(r(de),null,{default:v(()=>[w(r(fe),null,{default:v(()=>[w(r(ae),null,{default:v(()=>[x(d(r(l)(`monitor.killConfirmTitle`)),1)]),_:1}),X.value?(h(),c(r(se),{key:0},{default:v(()=>[x(d(r(l)(`monitor.killConfirm`,{model:X.value.model,provider:X.value.providerName})),1)]),_:1})):e(``,!0)]),_:1}),w(r(me),null,{default:v(()=>[w(r(he),null,{default:v(()=>[x(d(r(l)(`monitor.killCancel`)),1)]),_:1}),w(r(ce),{class:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,onClick:Ee},{default:v(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Vt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,Gt as n,H as r,J as i,K as a,L as o,Lt as s,M as c,N as l,Nt as u,Q as d,X as f,Xt as p,Z as m,et as h,gt as g,it as _,k as v,kt as y,mt as ee,n as b,nt as x,q as te,qt as S,rt as C,vt as w,xt as ne}from"./button-Dm-cbgS5.js";import{t as re}from"./copy-DMw-23Tb.js";import{a as ie,n as ae,o as oe,s as se,t as T}from"./model-patches-Be68Qreu.js";import{a as ce,c as le,d as ue,f as de,l as fe,n as pe,o as me,r as he,s as ge,t as _e,u as E}from"./dialog-Dzy4m58L.js";import{t as D}from"./Label-CumWBzHY.js";import{_ as ve,a as ye,c as be,d as xe,f as Se,g as Ce,h as O,i as k,l as we,m as Te,o as Ee,p as De,pt as Oe,s as ke,u as Ae,x as je}from"./index-CTaQHTod.js";import{t as A}from"./Input-BwqUPR8k.js";import{t as Me}from"./useClipboard-DebN1Yvq.js";import{n as Ne,t as Pe}from"./TransformRulesForm-BT9zoPTc.js";var Fe=o(`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`}]]),Ie=o(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Le={class:`border rounded-md p-3 space-y-3`},Re={class:`flex items-center gap-3`},ze={class:`text-xs font-medium text-muted-foreground whitespace-nowrap`},Be={key:0,class:`grid grid-cols-4 gap-3`},Ve={class:`col-span-2`},He=_({__name:`ProxyConfigForm`,props:{proxyType:{type:String,default:``},proxyUrl:{type:String,default:``},proxyUsername:{type:String,default:``},proxyPassword:{type:String,default:``}},emits:[`update:proxyType`,`update:proxyUrl`,`update:proxyUsername`,`update:proxyPassword`,`clear`],setup(t,{emit:i}){let a=i,{t:o}=r();function s(e){let t=typeof e==`string`?e:e==null?``:JSON.stringify(e),n=t===`none`?``:t;a(`update:proxyType`,n),n||a(`clear`)}return(r,i)=>(g(),h(`div`,Le,[m(`div`,Re,[m(`span`,ze,p(n(o)(`providers.fields.proxyTitle`)),1),C(n(ve),{"model-value":t.proxyType||`none`,class:`w-32`,"onUpdate:modelValue":s},{default:y(()=>[C(n(Te),null,{default:y(()=>[C(n(De))]),_:1}),C(n(Ce),null,{default:y(()=>[C(n(O),{value:`none`},{default:y(()=>[x(p(n(o)(`providers.fields.proxyNoProxy`)),1)]),_:1}),C(n(O),{value:`http`},{default:y(()=>[x(p(n(o)(`providers.fields.proxyHttp`)),1)]),_:1}),C(n(O),{value:`socks5`},{default:y(()=>[x(p(n(o)(`providers.fields.proxySocks5`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),t.proxyType?(g(),h(`div`,Be,[m(`div`,Ve,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.fields.proxyUrl`)),1)]),_:1}),C(n(A),{"model-value":t.proxyUrl,type:`text`,class:`mt-1 font-mono text-xs`,placeholder:t.proxyType===`socks5`?n(o)(`providers.fields.proxyUrlPlaceholderSocks5`):n(o)(`providers.fields.proxyUrlPlaceholderHttp`),"onUpdate:modelValue":i[0]||=e=>a(`update:proxyUrl`,e)},null,8,[`model-value`,`placeholder`])]),m(`div`,null,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.fields.proxyUsername`)),1)]),_:1}),C(n(A),{"model-value":t.proxyUsername,type:`text`,class:`mt-1`,placeholder:n(o)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":i[1]||=e=>a(`update:proxyUsername`,e)},null,8,[`model-value`,`placeholder`])]),m(`div`,null,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.fields.proxyPassword`)),1)]),_:1}),C(n(A),{"model-value":t.proxyPassword,type:`password`,class:`mt-1`,placeholder:n(o)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":i[2]||=e=>a(`update:proxyPassword`,e)},null,8,[`model-value`,`placeholder`])])])):e(``,!0)]))}}),j;(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})(j||={});var Ue;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Ue||={});var M=j.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),N=e=>{switch(typeof e){case`undefined`:return M.undefined;case`string`:return M.string;case`number`:return Number.isNaN(e)?M.nan:M.number;case`boolean`:return M.boolean;case`function`:return M.function;case`bigint`:return M.bigint;case`symbol`:return M.symbol;case`object`:return Array.isArray(e)?M.array:e===null?M.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?M.promise:typeof Map<`u`&&e instanceof Map?M.map:typeof Set<`u`&&e instanceof Set?M.set:typeof Date<`u`&&e instanceof Date?M.date:M.object;default:return M.unknown}},P=j.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`]),F=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,j.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()}};F.create=e=>new F(e);var I=(e,t)=>{let n;switch(e.code){case P.invalid_type:n=e.received===M.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case P.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,j.jsonStringifyReplacer)}`;break;case P.unrecognized_keys:n=`Unrecognized key(s) in object: ${j.joinValues(e.keys,`, `)}`;break;case P.invalid_union:n=`Invalid input`;break;case P.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${j.joinValues(e.options)}`;break;case P.invalid_enum_value:n=`Invalid enum value. Expected ${j.joinValues(e.options)}, received '${e.received}'`;break;case P.invalid_arguments:n=`Invalid function arguments`;break;case P.invalid_return_type:n=`Invalid function return type`;break;case P.invalid_date:n=`Invalid date`;break;case P.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}"`:j.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case P.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 P.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 P.custom:n=`Invalid input`;break;case P.invalid_intersection_types:n=`Intersection results could not be merged`;break;case P.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case P.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,j.assertNever(e)}return{message:n}},We=I;function Ge(){return We}var Ke=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=``,c=r.filter(e=>!!e).slice().reverse();for(let e of c)s=e(o,{data:t,defaultError:s}).message;return{...i,path:a,message:s}};function L(e,t){let n=Ge(),r=Ke({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===I?void 0:I].filter(e=>!!e)});e.common.issues.push(r)}var R=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 z;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 z;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}}},z=Object.freeze({status:`aborted`}),qe=e=>({status:`dirty`,value:e}),B=e=>({status:`valid`,value:e}),Je=e=>e.status===`aborted`,Ye=e=>e.status===`dirty`,V=e=>e.status===`valid`,Xe=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}},Ze=(e,t)=>{if(V(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 F(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 N(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:N(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new R,ctx:{common:e.parent.common,data:e.data,parsedType:N(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(Xe(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:N(e)};return Ze(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:N(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return V(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=>V(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:N(e)},r=this._parse({data:e,path:n.path,parent:n});return Ze(n,await(Xe(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:P.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 X({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 Z.create(this,this._def)}nullable(){return Q.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Pt.create(this)}promise(){return Yt.create(this,this._def)}or(e){return It.create([this,e],this._def)}and(e){return zt.create(this,e,this._def)}transform(e){return new X({...W(this._def),schema:this,typeName:$.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Xt({...W(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new $t({typeName:$.ZodBranded,type:this,...W(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new Zt({...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 en.create(this,e)}readonly(){return tn.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Qe=/^c[^\s-]{8,}$/i,$e=/^[0-9a-z]+$/,et=/^[0-9A-HJKMNP-TV-Z]{26}$/i,tt=/^[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,nt=/^[a-z0-9_-]{21}$/i,rt=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,it=/^[-+]?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)?)??$/,at=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,ot=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,st,ct=/^(?:(?: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])$/,lt=/^(?:(?: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])$/,ut=/^(([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]))$/,dt=/^(([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])$/,ft=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,pt=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,mt=`((\\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])))`,ht=RegExp(`^${mt}$`);function gt(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 _t(e){return RegExp(`^${gt(e)}$`)}function vt(e){let t=`${mt}T${gt(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function yt(e,t){return!!((t===`v4`||!t)&&ct.test(e)||(t===`v6`||!t)&&ut.test(e))}function bt(e,t){if(!rt.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 xt(e,t){return!!((t===`v4`||!t)&<.test(e)||(t===`v6`||!t)&&dt.test(e))}var St=class e extends G{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==M.string){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.string,received:t.parsedType}),z}let t=new R,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:P.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),L(n,{code:P.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?L(n,{code:P.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&L(n,{code:P.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)at.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`email`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)st||=new RegExp(ot,`u`),st.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`emoji`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)tt.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`uuid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)nt.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`nanoid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)Qe.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cuid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)$e.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cuid2`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)et.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`ulid`,code:P.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),L(n,{validation:`url`,code:P.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),L(n,{validation:`regex`,code:P.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),L(n,{code:P.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),L(n,{code:P.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),L(n,{code:P.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?vt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:P.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?ht.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:P.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?_t(r).test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{code:P.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?it.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`duration`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?yt(e.data,r.version)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`ip`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?bt(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`jwt`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?xt(e.data,r.version)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`cidr`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?ft.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`base64`,code:P.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?pt.test(e.data)||(n=this._getOrReturnCtx(e,n),L(n,{validation:`base64url`,code:P.invalid_string,message:r.message}),t.dirty()):j.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:P.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 wt=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)!==M.number){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.number,received:t.parsedType}),z}let t,n=new R;for(let r of this._def.checks)r.kind===`int`?j.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),L(t,{code:P.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),L(t,{code:P.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),L(t,{code:P.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),L(t,{code:P.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),L(t,{code:P.not_finite,message:r.message}),n.dirty()):j.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`&&j.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)}};wt.create=e=>new wt({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...W(e)});var Tt=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)!==M.bigint)return this._getInvalidInput(e);let t,n=new R;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),L(t,{code:P.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),L(t,{code:P.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),L(t,{code:P.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):j.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.bigint,received:t.parsedType}),z}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}};Tt.create=e=>new Tt({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...W(e)});var Et=class extends G{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==M.boolean){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.boolean,received:t.parsedType}),z}return B(e.data)}};Et.create=e=>new Et({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...W(e)});var Dt=class e extends G{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==M.date){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.date,received:t.parsedType}),z}if(Number.isNaN(e.data.getTime()))return L(this._getOrReturnCtx(e),{code:P.invalid_date}),z;let t=new R,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),L(n,{code:P.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),L(n,{code:P.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):j.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)}};Dt.create=e=>new Dt({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...W(e)});var Ot=class extends G{_parse(e){if(this._getType(e)!==M.symbol){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.symbol,received:t.parsedType}),z}return B(e.data)}};Ot.create=e=>new Ot({typeName:$.ZodSymbol,...W(e)});var kt=class extends G{_parse(e){if(this._getType(e)!==M.undefined){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.undefined,received:t.parsedType}),z}return B(e.data)}};kt.create=e=>new kt({typeName:$.ZodUndefined,...W(e)});var At=class extends G{_parse(e){if(this._getType(e)!==M.null){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.null,received:t.parsedType}),z}return B(e.data)}};At.create=e=>new At({typeName:$.ZodNull,...W(e)});var jt=class extends G{constructor(){super(...arguments),this._any=!0}_parse(e){return B(e.data)}};jt.create=e=>new jt({typeName:$.ZodAny,...W(e)});var Mt=class extends G{constructor(){super(...arguments),this._unknown=!0}_parse(e){return B(e.data)}};Mt.create=e=>new Mt({typeName:$.ZodUnknown,...W(e)});var K=class extends G{_parse(e){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.never,received:t.parsedType}),z}};K.create=e=>new K({typeName:$.ZodNever,...W(e)});var Nt=class extends G{_parse(e){if(this._getType(e)!==M.undefined){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.void,received:t.parsedType}),z}return B(e.data)}};Nt.create=e=>new Nt({typeName:$.ZodVoid,...W(e)});var Pt=class e extends G{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==M.array)return L(t,{code:P.invalid_type,expected:M.array,received:t.parsedType}),z;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(L(t,{code:e?P.too_big:P.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&&(L(t,{code:P.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&&(L(t,{code:P.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=>R.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new U(t,e,t.path,n)));return R.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)}};Pt.create=(e,t)=>new Pt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...W(t)});function Ft(e){if(e instanceof q){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Z.create(Ft(r))}return new q({...e._def,shape:()=>t})}else if(e instanceof Pt)return new Pt({...e._def,type:Ft(e.element)});else if(e instanceof Z)return Z.create(Ft(e.unwrap()));else if(e instanceof Q)return Q.create(Ft(e.unwrap()));else if(e instanceof Y)return Y.create(e.items.map(e=>Ft(e)));else return e}var q=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=j.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==M.object){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.object,received:t.parsedType}),z}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof K&&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 K){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&&(L(n,{code:P.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=>R.mergeObjectSync(t,e)):R.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 j.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 j.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ft(this)}partial(t){let n={};for(let e of j.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 j.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof Z;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return Kt(j.objectKeys(this.shape))}};q.create=(e,t)=>new q({shape:()=>e,unknownKeys:`strip`,catchall:K.create(),typeName:$.ZodObject,...W(t)}),q.strictCreate=(e,t)=>new q({shape:()=>e,unknownKeys:`strict`,catchall:K.create(),typeName:$.ZodObject,...W(t)}),q.lazycreate=(e,t)=>new q({shape:e,unknownKeys:`strip`,catchall:K.create(),typeName:$.ZodObject,...W(t)});var It=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 F(e.ctx.common.issues));return L(t,{code:P.invalid_union,unionErrors:n}),z}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 F(e));return L(t,{code:P.invalid_union,unionErrors:i}),z}}get options(){return this._def.options}};It.create=(e,t)=>new It({options:e,typeName:$.ZodUnion,...W(t)});var J=e=>e instanceof Wt?J(e.schema):e instanceof X?J(e.innerType()):e instanceof Gt?[e.value]:e instanceof qt?e.options:e instanceof Jt?j.objectValues(e.enum):e instanceof Xt?J(e._def.innerType):e instanceof kt?[void 0]:e instanceof At?[null]:e instanceof Z?[void 0,...J(e.unwrap())]:e instanceof Q?[null,...J(e.unwrap())]:e instanceof $t||e instanceof tn?J(e.unwrap()):e instanceof Zt?J(e._def.innerType):[],Lt=class e extends G{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==M.object)return L(t,{code:P.invalid_type,expected:M.object,received:t.parsedType}),z;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}):(L(t,{code:P.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),z)}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=J(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 Rt(e,t){let n=N(e),r=N(t);if(e===t)return{valid:!0,data:e};if(n===M.object&&r===M.object){let n=j.objectKeys(t),r=j.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Rt(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===M.array&&r===M.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=Rt(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===M.date&&r===M.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var zt=class extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(Je(e)||Je(r))return z;let i=Rt(e.value,r.value);return i.valid?((Ye(e)||Ye(r))&&t.dirty(),{status:t.value,value:i.data}):(L(n,{code:P.invalid_intersection_types}),z)};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}))}};zt.create=(e,t,n)=>new zt({left:e,right:t,typeName:$.ZodIntersection,...W(n)});var Y=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.array)return L(n,{code:P.invalid_type,expected:M.array,received:n.parsedType}),z;if(n.data.length<this._def.items.length)return L(n,{code:P.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),z;!this._def.rest&&n.data.length>this._def.items.length&&(L(n,{code:P.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=>R.mergeArray(t,e)):R.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Y.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new Y({items:e,typeName:$.ZodTuple,rest:null,...W(t)})};var Bt=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!==M.object)return L(n,{code:P.invalid_type,expected:M.object,received:n.parsedType}),z;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?R.mergeObjectAsync(t,r):R.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)})}},Vt=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!==M.map)return L(n,{code:P.invalid_type,expected:M.map,received:n.parsedType}),z;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 z;(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 z;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};Vt.create=(e,t,n)=>new Vt({valueType:t,keyType:e,typeName:$.ZodMap,...W(n)});var Ht=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==M.set)return L(n,{code:P.invalid_type,expected:M.set,received:n.parsedType}),z;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(L(n,{code:P.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&&(L(n,{code:P.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 z;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)}};Ht.create=(e,t)=>new Ht({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...W(t)});var Ut=class e extends G{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==M.function)return L(t,{code:P.invalid_type,expected:M.function,received:t.parsedType}),z;function n(e,n){return Ke({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Ge(),I].filter(e=>!!e),issueData:{code:P.invalid_arguments,argumentsError:n}})}function r(e,n){return Ke({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,Ge(),I].filter(e=>!!e),issueData:{code:P.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Yt){let e=this;return B(async function(...t){let o=new F([]),s=await e._def.args.parseAsync(t,i).catch(e=>{throw o.addIssue(n(t,e)),o}),c=await Reflect.apply(a,this,s);return await e._def.returns._def.type.parseAsync(c,i).catch(e=>{throw o.addIssue(r(c,e)),o})})}else{let e=this;return B(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new F([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new F([r(s,c.error)]);return c.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Y.create(t).rest(Mt.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||Y.create([]).rest(Mt.create()),returns:n||Mt.create(),typeName:$.ZodFunction,...W(r)})}},Wt=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})}};Wt.create=(e,t)=>new Wt({getter:e,typeName:$.ZodLazy,...W(t)});var Gt=class extends G{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return L(t,{received:t.data,code:P.invalid_literal,expected:this._def.value}),z}return{status:`valid`,value:e.data}}get value(){return this._def.value}};Gt.create=(e,t)=>new Gt({value:e,typeName:$.ZodLiteral,...W(t)});function Kt(e,t){return new qt({values:e,typeName:$.ZodEnum,...W(t)})}var qt=class e extends G{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return L(t,{expected:j.joinValues(n),received:t.parsedType,code:P.invalid_type}),z}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return L(t,{received:t.data,code:P.invalid_enum_value,options:n}),z}return B(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})}};qt.create=Kt;var Jt=class extends G{_parse(e){let t=j.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==M.string&&n.parsedType!==M.number){let e=j.objectValues(t);return L(n,{expected:j.joinValues(e),received:n.parsedType,code:P.invalid_type}),z}if(this._cache||=new Set(j.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=j.objectValues(t);return L(n,{received:n.data,code:P.invalid_enum_value,options:e}),z}return B(e.data)}get enum(){return this._def.values}};Jt.create=(e,t)=>new Jt({values:e,typeName:$.ZodNativeEnum,...W(t)});var Yt=class extends G{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==M.promise&&t.common.async===!1?(L(t,{code:P.invalid_type,expected:M.promise,received:t.parsedType}),z):B((t.parsedType===M.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Yt.create=(e,t)=>new Yt({type:e,typeName:$.ZodPromise,...W(t)});var X=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=>{L(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 z;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?z:r.status===`dirty`||t.value===`dirty`?qe(r.value):r});{if(t.value===`aborted`)return z;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?z:r.status===`dirty`||t.value===`dirty`?qe(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`?z:(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`?z:(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(!V(e))return z;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=>V(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):z);j.assertNever(r)}};X.create=(e,t,n)=>new X({schema:e,typeName:$.ZodEffects,effect:t,...W(n)}),X.createWithPreprocess=(e,t,n)=>new X({schema:t,effect:{type:`preprocess`,transform:e},typeName:$.ZodEffects,...W(n)});var Z=class extends G{_parse(e){return this._getType(e)===M.undefined?B(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Z.create=(e,t)=>new Z({innerType:e,typeName:$.ZodOptional,...W(t)});var Q=class extends G{_parse(e){return this._getType(e)===M.null?B(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Q.create=(e,t)=>new Q({innerType:e,typeName:$.ZodNullable,...W(t)});var Xt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===M.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Xt.create=(e,t)=>new Xt({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...W(t)});var Zt=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 Xe(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new F(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new F(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Zt.create=(e,t)=>new Zt({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...W(t)});var Qt=class extends G{_parse(e){if(this._getType(e)!==M.nan){let t=this._getOrReturnCtx(e);return L(t,{code:P.invalid_type,expected:M.nan,received:t.parsedType}),z}return{status:`valid`,value:e.data}}};Qt.create=e=>new Qt({typeName:$.ZodNaN,...W(e)});var $t=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}},en=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`?z:e.status===`dirty`?(t.dirty(),qe(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`?z: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})}},tn=class extends G{_parse(e){let t=this._def.innerType._parse(e),n=e=>(V(e)&&(e.value=Object.freeze(e.value)),e);return Xe(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};tn.create=(e,t)=>new tn({innerType:e,typeName:$.ZodReadonly,...W(t)}),q.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 nn=St.create;wt.create,Qt.create,Tt.create,Et.create,Dt.create,Ot.create,kt.create,At.create,jt.create,Mt.create,K.create,Nt.create,Pt.create;var rn=q.create;q.strictCreate,It.create,Lt.create,zt.create,Y.create,Bt.create,Vt.create,Ht.create,Ut.create,Wt.create,Gt.create,qt.create,Jt.create,Yt.create,X.create,Z.create,Q.create,X.createWithPreprocess,en.create;function an(){let{t:e}=r(),n=s({dropFieldsInput:``,requestDefaultsInput:``,injectHeadersInput:``,exists:!1});async function i(r){try{let e=await v.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){console.error(`transformRules.load:`,r),k.error(t(r,e(`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 k.error(e(`providers.transform.requestDefaultsJsonError`)),Promise.resolve()}let o=null;if(n.value.injectHeadersInput.trim())try{o=JSON.parse(n.value.injectHeadersInput)}catch{return k.error(e(`providers.transform.injectHeadersJsonError`)),Promise.resolve()}return v.upsertTransformRules(r,{drop_fields:i,request_defaults:a,inject_headers:o,is_active:1}).then(()=>{n.value.exists=!0,k.success(e(`providers.transform.saved`))}).catch(n=>{console.error(`transformRules.save:`,n),k.error(t(n,e(`common.saveFailed`)))})}function o(r){return r?v.deleteTransformRules(r).then(()=>{n.value.dropFieldsInput=``,n.value.requestDefaultsInput=``,n.value.injectHeadersInput=``,n.value.exists=!1,k.success(e(`providers.transform.deleted`))}).catch(n=>{console.error(`transformRules.delete:`,n),k.error(t(n,e(`providers.transform.deleteFailed`)))}):Promise.resolve()}return{transformForm:n,loadTransformRules:i,saveTransformRules:a,handleDeleteTransformRules:o}}function on(e){let t=s([]),n=s(``),r=s(``),i=f(()=>n.value?t.value.find(e=>e.group===n.value)?.presets??[]:[]);function a(){if(n.value===`__custom__`){r.value=``,e.value.name=``,e.value.api_type=`openai`,e.value.base_url=``,e.value.models=[];return}let i=t.value.find(e=>e.group===n.value)?.presets;i?.length?(r.value=i[0].plan,o()):r.value=``}function o(){let t=i.value.find(e=>e.plan===r.value);t&&(e.value.name=t.presetName,e.value.api_type=t.apiType,e.value.base_url=t.baseUrl,e.value.upstream_path=t.upstreamPath??``,e.value.models=t.models.map(e=>({name:e,context_window:ie(e),patches:T(e,t.apiType,!1),capabilities:t.modelCapabilities?.[e]})))}function c(){return i.value.find(e=>e.plan===r.value)?.modelsEndpoint}function l(){return i.value.find(e=>e.plan===r.value)?.models??[]}async function u(){try{t.value=await v.recommended.getProviders()}catch{t.value=[]}}function d(){n.value=``,r.value=``}return{providerPresets:t,presetGroup:n,presetPlan:r,availablePlans:i,onGroupChange:a,onPresetChange:o,getCurrentModelsEndpoint:c,getCurrentPresetModels:l,loadPresets:u,resetPreset:d}}var sn=3,cn=10,ln=12e4,un=10,dn=100,fn=1e3,pn=1e3,mn=1e6,hn=1e3,gn={name:``,api_type:`anthropic`,base_url:``,upstream_path:``,api_key:``,models:[],is_active:!0,max_concurrency:cn,queue_timeout_ms:ln,max_queue_size:un,adaptive_enabled:!0,proxy_type:``,proxy_url:``,proxy_username:``,proxy_password:``},_n=[{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`}],vn={openai:`OpenAI Chat Completions`,"openai-responses":`OpenAI Responses`,anthropic:`Anthropic Messages`};function yn(){let{t:e}=r(),{transformForm:t,loadTransformRules:n,saveTransformRules:i}=an(),a=s({...gn}),o=s({}),u=s(`auto`),d=s(!1),p=s(null),m=s(``),h=s(c),g=f({get:()=>`${h.value}`,set:e=>{h.value=Number(e)}}),_=on(a);function v(){let t=rn({name:nn().min(1,e(`providers.validation.nameRequired`)).regex(/^[a-zA-Z0-9_-]+$/,e(`providers.validation.namePattern`)),base_url:nn().min(1,e(`providers.validation.baseUrlRequired`)).url(e(`providers.validation.baseUrlInvalid`))}),n={},r=t.safeParse({name:a.value.name.trim(),base_url:a.value.base_url.trim()});if(!r.success)for(let e of r.error.issues){let t=e.path[0];n[t]||(n[t]=e.message)}if(!p.value&&!a.value.api_key.trim()&&(n.api_key=e(`providers.validation.apiKeyRequired`)),u.value!==`none`){let t=a.value.max_concurrency;(!t||t<1||t>dn)&&(n.max_concurrency=e(`providers.validation.concurrencyRange`,{min:1,max:dn})),a.value.queue_timeout_ms<0&&(n.queue_timeout_ms=e(`providers.validation.negativeNotAllowed`));let r=a.value.max_queue_size;(!r||r<1||r>fn)&&(n.max_queue_size=e(`providers.validation.queueSizeRange`,{min:1,max:fn}))}return o.value=n,Object.keys(n).length===0}function y(){let e={name:a.value.name,api_type:a.value.api_type,base_url:a.value.base_url,upstream_path:a.value.upstream_path||void 0,models:a.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities??void 0})),is_active:+!!a.value.is_active,max_concurrency:u.value===`none`?0:a.value.max_concurrency,queue_timeout_ms:u.value===`none`?0:a.value.queue_timeout_ms,max_queue_size:u.value===`none`?un:a.value.max_queue_size,adaptive_enabled:+(u.value===`auto`),proxy_type:a.value.proxy_type||null,proxy_url:a.value.proxy_url?.trim()||null,proxy_username:a.value.proxy_username?.trim()||null,proxy_password:a.value.proxy_password||null};return a.value.api_key&&(e.api_key=a.value.api_key),e}function ee(){let e=m.value.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let e of t)a.value.models.some(t=>t.name===e)||a.value.models.push({name:e,context_window:h.value||2e5,patches:[],stream_timeout_ms:l,capabilities:[`text`]});m.value=``,h.value=c}function b(e){a.value.models.splice(e,1)}function x(e,t){a.value.models[e].context_window=t.contextWindow,a.value.models[e].patches=t.patches}function te(e,t){if(t===`text`)return;let n=a.value.models[e],r=n.capabilities??[`text`];n.capabilities=r.includes(t)?r.filter(e=>e!==t):[...r,t]}function S(e,t){let n=Number(t);a.value.models[e].stream_timeout_ms=n>0?n*hn:null}function C(e){u.value=e,e===`auto`?((!a.value.max_concurrency||a.value.max_concurrency<1)&&(a.value.max_concurrency=cn),a.value.adaptive_enabled=!0):e===`manual`&&((!a.value.max_concurrency||a.value.max_concurrency<1)&&(a.value.max_concurrency=sn),a.value.adaptive_enabled=!1)}function w(e){return e.includes(`api.openai.com`)}function ne(){p.value=null,a.value={...gn,models:[]},u.value=`auto`,m.value=``,h.value=c,_.presetGroup.value=``,_.presetPlan.value=``,o.value={},d.value=!0}function re(e){p.value=e.id;let t=e.max_concurrency??0;t===0?u.value=`none`:e.adaptive_enabled?u.value=`auto`:u.value=`manual`,a.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??[],stream_timeout_ms:e.stream_timeout_ms??null,capabilities:e.capabilities??[`text`]})),is_active:!!e.is_active,max_concurrency:u.value===`none`?cn:t,queue_timeout_ms:e.queue_timeout_ms??ln,max_queue_size:e.max_queue_size??un,adaptive_enabled:u.value===`auto`,proxy_type:e.proxy_type||``,proxy_url:e.proxy_url||``,proxy_username:e.proxy_username||``,proxy_password:``},_.presetGroup.value=``,_.presetPlan.value=``,m.value=``,h.value=c,o.value={},d.value=!0,n(e.id)}return{form:a,errors:o,concurrencyMode:u,dialogOpen:d,editingId:p,modelInput:m,modelContextWindow:h,contextWindowSelect:g,transformForm:t,presetHook:_,validate:v,buildPayload:y,addModel:ee,removeModel:b,updateModel:x,updateModelTimeout:S,toggleModelCapability:te,onConcurrencyModeChange:C,isOfficialOpenai:w,openCreate:ne,openEdit:re,saveTransformRules:i}}var bn={class:`grid grid-cols-2 gap-3`},xn={key:0,class:`text-xs text-destructive mt-0.5`},Sn={key:0,class:`text-xs text-destructive mt-0.5`},Cn={key:0,class:`text-xs text-destructive mt-0.5`},wn={class:`text-xs text-muted-foreground mt-0.5`},Tn={class:`flex items-center justify-between mb-2`},En={class:`grid grid-cols-2 gap-2 mb-3`},Dn={class:`flex gap-2`},On={class:`grid grid-cols-2 gap-4`},kn={class:`border rounded-md p-3 space-y-3`},An={class:`text-xs font-medium text-muted-foreground`},jn={class:`border rounded-md p-3 space-y-3`},Mn={class:`text-xs font-medium text-muted-foreground`},Nn=_({__name:`ModelCapabilitiesEditor`,props:{name:{},apiType:{},baseUrl:{},apiKey:{},upstreamPath:{},proxyType:{},proxyUrl:{},proxyUsername:{},proxyPassword:{},errorsName:{},errorsBaseUrl:{},errorsApiKey:{},editingId:{},models:{},fetchingModels:{type:Boolean},modelInput:{},contextWindowSelect:{},hasModelsEndpoint:{type:Boolean},presetGroup:{},hasApiKey:{type:Boolean},concurrencyMode:{},maxConcurrency:{},queueTimeoutMs:{},maxQueueSize:{},transformInjectHeaders:{},transformDropFields:{},transformRequestDefaults:{}},emits:`update:name.update:api-type.update:base-url.update:api-key.update:upstream-path.update:proxy-type.update:proxy-url.update:proxy-username.update:proxy-password.clear-errors.update:model.remove-model.update:model-timeout.toggle-model-capability.fetch-upstream-models.add-model.update:model-input.update:context-window-select.update:concurrency-mode.update:max-concurrency.update:queue-timeout-ms.update:max-queue-size.update:inject-headers.update:drop-fields.update:request-defaults.clear-proxy`.split(`.`),setup(t,{emit:o}){let{t:s}=r(),c=t,l=o;function u(e){return e.capabilities??[`text`]}function f(e){return e.includes(`api.openai.com`)}return(t,r)=>(g(),h(i,null,[m(`div`,bn,[m(`div`,null,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(s)(`providers.fields.name`)),1)]),_:1}),C(n(A),{"model-value":c.name,type:`text`,required:``,class:`mt-1`,"onUpdate:modelValue":r[0]||=e=>l(`update:name`,String(e)),onInput:r[1]||=e=>l(`clear-errors`,`name`)},null,8,[`model-value`]),c.errorsName?(g(),h(`p`,xn,p(c.errorsName),1)):e(``,!0)]),m(`div`,null,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(s)(`providers.fields.apiType`)),1)]),_:1}),C(n(ve),{"model-value":c.apiType,"onUpdate:modelValue":r[2]||=e=>l(`update:api-type`,String(e)),class:`mt-1`},{default:y(()=>[C(n(Te),null,{default:y(()=>[C(n(De),{placeholder:n(s)(`common.pleaseSelect`)},null,8,[`placeholder`])]),_:1}),C(n(Ce),null,{default:y(()=>[C(n(O),{value:`openai`},{default:y(()=>[...r[25]||=[x(`OpenAI Chat Completions`,-1)]]),_:1}),C(n(O),{value:`openai-responses`},{default:y(()=>[...r[26]||=[x(`OpenAI Responses`,-1)]]),_:1}),C(n(O),{value:`anthropic`},{default:y(()=>[...r[27]||=[x(`Anthropic Messages`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`])]),m(`div`,null,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(s)(`providers.fields.baseUrl`)),1)]),_:1}),C(n(A),{"model-value":c.baseUrl,type:`url`,required:``,class:`mt-1 font-mono text-xs`,"onUpdate:modelValue":r[3]||=e=>l(`update:base-url`,String(e)),onInput:r[4]||=e=>l(`clear-errors`,`base_url`)},null,8,[`model-value`]),c.errorsBaseUrl?(g(),h(`p`,Sn,p(c.errorsBaseUrl),1)):e(``,!0)]),m(`div`,null,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(s)(`providers.fields.apiKey`)),1)]),_:1}),C(n(A),{"model-value":c.apiKey,type:`text`,required:!c.editingId,placeholder:c.editingId?n(s)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1`,"onUpdate:modelValue":r[5]||=e=>l(`update:api-key`,String(e)),onInput:r[6]||=e=>l(`clear-errors`,`api_key`)},null,8,[`model-value`,`required`,`placeholder`]),c.errorsApiKey?(g(),h(`p`,Cn,p(c.errorsApiKey),1)):e(``,!0)])]),m(`div`,null,[C(n(D),{class:`text-xs`},{default:y(()=>[x(p(n(s)(`providers.fields.upstreamPath`)),1)]),_:1}),C(n(A),{"model-value":c.upstreamPath,placeholder:n(s)(`providers.fields.upstreamPathPlaceholder`),class:`mt-1 font-mono text-xs`,"onUpdate:modelValue":r[7]||=e=>l(`update:upstream-path`,String(e))},null,8,[`model-value`,`placeholder`]),m(`p`,wn,p(n(s)(`providers.fields.upstreamPathHint`)),1)]),C(He,{"proxy-type":c.proxyType,"proxy-url":c.proxyUrl,"proxy-username":c.proxyUsername,"proxy-password":c.proxyPassword,"onUpdate:proxyType":r[8]||=e=>l(`update:proxy-type`,e),"onUpdate:proxyUrl":r[9]||=e=>l(`update:proxy-url`,e),"onUpdate:proxyUsername":r[10]||=e=>l(`update:proxy-username`,e),"onUpdate:proxyPassword":r[11]||=e=>l(`update:proxy-password`,e),onClear:r[12]||=e=>l(`clear-proxy`)},null,8,[`proxy-type`,`proxy-url`,`proxy-username`,`proxy-password`]),m(`div`,null,[m(`div`,Tn,[C(n(D),{class:`text-xs text-muted-foreground`},{default:y(()=>[x(p(n(s)(`providers.fields.availableModels`)),1)]),_:1}),!c.editingId&&c.presetGroup&&c.presetGroup!==`__custom__`&&(c.hasApiKey||!c.hasModelsEndpoint)?(g(),d(n(b),{key:0,type:`button`,variant:`outline`,size:`sm`,class:`text-xs`,disabled:c.fetchingModels,onClick:r[13]||=e=>l(`fetch-upstream-models`)},{default:y(()=>[C(n(Fe),{class:S([`w-3 h-3 mr-1`,{"animate-spin":c.fetchingModels}])},null,8,[`class`]),x(` `+p(c.fetchingModels?n(s)(`providers.fetchModels.loading`):c.hasModelsEndpoint?n(s)(`providers.fetchModels.button`):n(s)(`providers.fetchModels.buttonPreset`)),1)]),_:1},8,[`disabled`])):e(``,!0)]),m(`div`,En,[(g(!0),h(i,null,w(c.models,(e,t)=>(g(),h(`div`,{key:t},[C(ae,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":c.apiType,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!f(c.baseUrl),"stream-timeout-ms":e.stream_timeout_ms??void 0,capabilities:u(e),"onUpdate:model":e=>l(`update:model`,t,e),onRemove:e=>l(`remove-model`,t),"onUpdate:streamTimeoutMs":e=>l(`update:model-timeout`,t,String(e?Math.round(e/1e3):``)),onToggleCapability:e=>l(`toggle-model-capability`,t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`stream-timeout-ms`,`capabilities`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onToggleCapability`])]))),128))]),m(`div`,Dn,[C(n(A),{"model-value":c.modelInput,"onUpdate:modelValue":r[14]||=e=>l(`update:model-input`,String(e)),placeholder:n(s)(`providers.fields.modelInputPlaceholder`),onKeydown:r[15]||=a(te(e=>l(`add-model`),[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`model-value`,`placeholder`]),C(n(ve),{"model-value":c.contextWindowSelect,"onUpdate:modelValue":r[16]||=e=>l(`update:context-window-select`,String(e))},{default:y(()=>[C(n(Te),{class:`w-28`},{default:y(()=>[C(n(De),{placeholder:n(s)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),C(n(Ce),null,{default:y(()=>[(g(!0),h(i,null,w(n(_n),e=>(g(),d(n(O),{key:e.value,value:e.value},{default:y(()=>[x(p(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),C(n(b),{type:`button`,variant:`outline`,size:`sm`,onClick:r[17]||=e=>l(`add-model`),disabled:!c.modelInput.trim()},{default:y(()=>[x(p(n(s)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])]),m(`div`,On,[m(`div`,kn,[m(`div`,An,p(n(s)(`providers.concurrency.title`)),1),C(Ne,{mode:c.concurrencyMode,"max-concurrency":c.maxConcurrency,"queue-timeout-ms":c.queueTimeoutMs,"max-queue-size":c.maxQueueSize,compact:``,"onUpdate:mode":r[18]||=e=>l(`update:concurrency-mode`,e),"onUpdate:maxConcurrency":r[19]||=e=>l(`update:max-concurrency`,e),"onUpdate:queueTimeoutMs":r[20]||=e=>l(`update:queue-timeout-ms`,e),"onUpdate:maxQueueSize":r[21]||=e=>l(`update:max-queue-size`,e)},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),m(`div`,jn,[m(`div`,Mn,p(n(s)(`providers.transform.title`)),1),C(Pe,{"inject-headers":c.transformInjectHeaders,"drop-fields":c.transformDropFields,"request-defaults":c.transformRequestDefaults,"onUpdate:injectHeaders":r[22]||=e=>l(`update:inject-headers`,e),"onUpdate:dropFields":r[23]||=e=>l(`update:drop-fields`,e),"onUpdate:requestDefaults":r[24]||=e=>l(`update:request-defaults`,e)},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])])],64))}}),Pn=7,Fn=7,In=2e3;function Ln(){let{t:e}=r(),n=s([]),i=s(!1),a=s(null),o=s(null),c=s(null),l=s(null),u=s(!1),d=s([]);async function f(){try{n.value=await v.getProviders()}catch(n){console.error(`Failed to load providers:`,n),k.error(t(n,e(`providers.toast.loadFailed`)))}}function p(e){return e?e.slice(0,Pn)+`*`.repeat(Fn):``}let{copy:m}=Me();async function h(e,t){await m(e)&&(a.value=t,setTimeout(()=>{a.value=null},In))}function g(e){o.value=e}async function _(e){if(c.value=e,l.value=e.id,u.value=!!e.is_active,d.value=[],e.is_active)try{d.value=(await v.getProviderDependencies(e.id)).references}catch{d.value=[]}}async function y(){let n=l.value;if(!n)return;let r=u.value;c.value=null,l.value=null;try{let t=await v.updateProvider(n,{is_active:+!r});if(t.cascadedGroups?.length){let n=t.cascadedGroups.filter(e=>e.disabled).length,r=t.cascadedGroups.length-n,i=[];r>0&&i.push(e(`providers.toast.cascadeClean`,{count:r})),n>0&&i.push(e(`providers.toast.cascadeDisable`,{count:n})),k.warning(e(`providers.toast.cascadeAuto`,{actions:i.join(`, `)}))}await f()}catch(n){console.error(`Failed to toggle provider:`,n),k.error(t(n,e(`providers.toast.toggleFailed`)))}}async function ee(){let n=o.value;if(n){o.value=null;try{await v.deleteProvider(n.id),await f()}catch(n){console.error(`providerActions.delete:`,n),k.error(t(n,e(`providers.toast.deleteFailed`)))}}}async function b(){i.value=!0;try{let t=await v.reloadTransformRules();k.success(e(`providers.toast.reloadSuccess`,{pluginCount:t.loadedPlugins.length,rulesCount:t.rulesCount}))}catch(n){console.error(`providerActions.reload:`,n),k.error(t(n,e(`providers.toast.reloadFailed`)))}finally{i.value=!1}}return{providers:n,reloading:i,copiedId:a,deleteTarget:o,toggleTarget:c,pendingToggleId:l,pendingToggleActive:u,toggleDependencies:d,maskKey:p,copyKey:h,loadProviders:f,confirmDelete:g,confirmToggle:_,handleToggle:y,handleDelete:ee,handleReload:b}}function Rn(e,t,n){let{t:i}=r(),a=s(!1);function o(t,n){if(t.length===0){k.info(i(`providers.fetchModels.empty`));return}let r=new Set(e.value.models.map(e=>e.name)),a=0;for(let n of t)r.has(n)||(e.value.models.push({name:n,context_window:ie(n),patches:T(n,e.value.api_type,!1)}),a++);a>0?k.success(i(`providers.fetchModels.success`,{source:n,total:t.length,added:a})):k.info(i(`providers.fetchModels.allExist`,{total:t.length}))}function c(){o(n(),i(`providers.fetchModels.sourcePreset`))}async function l(){let n=t();if(!n){c();return}if(!e.value.api_key?.trim()){k.error(i(`providers.fetchModels.noApiKey`));return}a.value=!0;try{let t=await v.fetchUpstreamModels({base_url:e.value.base_url,models_endpoint:n,api_key:e.value.api_key,api_type:e.value.api_type});if(t.length===0){c();return}o(t,i(`providers.fetchModels.sourceUpstream`))}catch{c()}finally{a.value=!1}}return{fetchingModels:a,fetchUpstreamModels:l}}var zn={class:`p-6`},Bn={class:`flex items-center justify-between mb-4`},Vn={class:`text-lg font-semibold text-foreground`},Hn={class:`flex items-center gap-2`},Un={class:`bg-card rounded-lg border overflow-hidden`},Wn={class:`space-y-0.5`},Gn={class:`flex items-center gap-2 font-medium`},Kn={class:`text-xs text-muted-foreground`},qn={class:`text-xs text-muted-foreground flex items-center gap-1 max-w-0`},Jn={class:`truncate`},Yn={class:`flex items-center gap-1`},Xn={class:`font-mono text-xs text-muted-foreground`},Zn={class:`truncate block`},Qn={key:0,class:`ml-1 text-muted-foreground`},$n={key:0,class:`text-muted-foreground text-xs`},er={key:2,class:`text-muted-foreground`},tr={class:`flex items-center gap-1`},nr={key:0,class:`rounded-md border-2 border-primary/30 bg-primary/5 p-3 space-y-2`},rr={class:`flex items-center gap-1.5 text-xs font-semibold text-primary`},ir={class:`flex gap-2`},ar={key:1,class:`flex flex-col items-center justify-center py-10 text-muted-foreground`},or={class:`text-sm`},sr={key:0,class:`mt-2 space-y-1`},cr={class:`text-sm font-medium`},lr=_({__name:`Providers`,setup(a){let{t:o}=r(),{form:s,errors:c,concurrencyMode:l,dialogOpen:f,editingId:_,modelInput:ie,contextWindowSelect:ae,transformForm:T,presetHook:D,validate:A,buildPayload:Me,addModel:Ne,removeModel:Pe,updateModel:Le,updateModelTimeout:Re,toggleModelCapability:ze,onConcurrencyModeChange:Be,openCreate:Ve,openEdit:He,saveTransformRules:j}=yn(),{providerPresets:Ue,presetGroup:M,presetPlan:N,availablePlans:P,onGroupChange:F,onPresetChange:I,loadPresets:We,getCurrentModelsEndpoint:Ge,getCurrentPresetModels:Ke}=D,{providers:L,reloading:R,copiedId:z,deleteTarget:qe,toggleTarget:B,toggleDependencies:Je,maskKey:Ye,copyKey:V,loadProviders:Xe,confirmDelete:H,confirmToggle:U,handleToggle:Ze,handleDelete:W,handleReload:G}=Ln(),{fetchingModels:Qe,fetchUpstreamModels:$e}=Rn(s,Ge,Ke),et={deepseek:`deepseek`,qianfan:`baidu`,百度千帆:`baidu`,iflytek:`iflytek`,科大讯飞:`iflytek`,siliconflow:`siliconcloud`,硅基流动:`siliconcloud`,zhipu:`zhipu`,智谱:`zhipu`,kimi:`moonshot`,moonshot:`moonshot`,月之暗面:`moonshot`,minimax:`minimax`,volcengine:`volcengine`,火山引擎:`volcengine`,aliyun:`alibaba`,alibaba:`alibaba`,阿里云:`alibaba`,tencent:`tencentcloud`,腾讯云:`tencentcloud`,opencode:`opencode`,stepfun:`stepfun`,阶跃星辰:`stepfun`};function tt(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(et))if(t.includes(e))return n;return t}let nt={anthropic:`/v1/messages`,openai:`/v1/chat/completions`,"openai-responses":`/v1/responses`};function rt(e){let t=e.upstream_path||nt[e.api_type]||`/v1/chat/completions`;try{let n=new URL(e.base_url),r=n.pathname.replace(/\/+$/,``),i=t.replace(/\/+$/,``);return r.endsWith(i)?`${n.origin}${r}`:`${n.origin}${r}${t}`}catch{return`${e.base_url.replace(/\/+$/,``)}${t}`}}function it(e){return e.capabilities??[`text`]}function at(e){return e>=1e6?`${e/mn}M`:e>=1e3?`${e/pn}K`:`${e}`}async function ot(){if(A())try{let e=Me();e.name=s.value.name.trim();let t=_.value;_.value?await v.updateProvider(_.value,e):(e.api_key=s.value.api_key,t=(await v.createProvider(e)).id),await j(t),f.value=!1,await Xe()}catch(e){console.error(`Failed to save provider:`,e),k.error(t(e,o(`providers.toast.saveFailed`)))}}return ee(async()=>{await Promise.allSettled([We(),Xe()])}),(t,r)=>(g(),h(`div`,zn,[m(`div`,Bn,[m(`h2`,Vn,p(n(o)(`providers.title`)),1),m(`div`,Hn,[C(n(b),{variant:`outline`,size:`sm`,onClick:n(G),disabled:n(R)},{default:y(()=>[C(n(Fe),{class:S([`w-4 h-4 mr-1`,{"animate-spin":n(R)}])},null,8,[`class`]),x(` `+p(n(o)(`providers.reloadPlugin`)),1)]),_:1},8,[`onClick`,`disabled`]),C(n(b),{onClick:n(Ve),class:`flex items-center gap-1`},{default:y(()=>[r[25]||=m(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[m(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),x(` `+p(n(o)(`providers.addProvider`)),1)]),_:1},8,[`onClick`])])]),m(`div`,Un,[C(n(de),{class:`[&_td]:px-4 [&_th]:px-4`},{default:y(()=>[C(n(ge),null,{default:y(()=>[C(n(fe),{class:`bg-muted`},{default:y(()=>[C(n(le),{class:`text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.tableHeaders.name`)),1)]),_:1}),C(n(le),{class:`text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.tableHeaders.apiKey`)),1)]),_:1}),C(n(le),{class:`text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.tableHeaders.models`)),1)]),_:1}),C(n(le),{class:`text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.tableHeaders.concurrency`)),1)]),_:1}),C(n(le),{class:`text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.tableHeaders.status`)),1)]),_:1}),C(n(le),{class:`text-muted-foreground`},{default:y(()=>[x(p(n(o)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),C(n(ue),null,{default:y(()=>[(g(!0),h(i,null,w(n(L),t=>(g(),d(n(fe),{key:t.id,class:S({"opacity-60":!t.is_active})},{default:y(()=>[C(n(E),null,{default:y(()=>[m(`div`,Wn,[m(`div`,Gn,[C(oe,{name:tt(t.name),size:18},null,8,[`name`]),m(`span`,null,p(t.name),1)]),m(`div`,Kn,[C(n(je),{variant:`secondary`,class:`text-[11px] px-1.5 py-0`},{default:y(()=>[x(p(n(vn)[t.api_type]??t.api_type),1)]),_:2},1024)]),m(`div`,qn,[m(`span`,Jn,p(rt(t)),1),t.proxy_type?(g(),d(n(Ie),{key:0,class:`w-3 h-3`,title:`Proxy: ${t.proxy_type.toUpperCase()}`},null,8,[`title`])):e(``,!0)])])]),_:2},1024),C(n(E),null,{default:y(()=>[m(`div`,Yn,[m(`span`,Xn,p(n(Ye)(t.api_key)),1),C(n(b),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:e=>n(V)(t.api_key,t.id)},{default:y(()=>[(g(),d(ne(n(z)===t.id?n(Oe):n(re)),{class:S([`w-3.5 h-3.5`,{"text-success":n(z)===t.id}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])]),_:2},1024),C(n(E),null,{default:y(()=>[m(`div`,{class:S([`grid gap-1`,(t.models?.length??0)>3?`grid-cols-2`:`grid-cols-1`])},[(g(!0),h(i,null,w(t.models||[],t=>(g(),h(`div`,{key:t.name,class:`flex items-center gap-1`},[C(n(je),{variant:`secondary`,class:`text-xs max-w-[200px]`},{default:y(()=>[m(`span`,Zn,p(t.name),1),t.context_window?(g(),h(`span`,Qn,`(`+p(at(t.context_window))+`)`,1)):e(``,!0)]),_:2},1024),it(t).includes(`image`)?(g(),d(n(je),{key:0,variant:`outline`,class:`text-[10px] px-1 py-0 gap-0.5 text-primary/70 border-primary/20`},{default:y(()=>[C(n(se),{class:`w-2.5 h-2.5`})]),_:1})):e(``,!0)]))),128)),t.models?.length?e(``,!0):(g(),h(`span`,$n,`-`))],2)]),_:2},1024),C(n(E),null,{default:y(()=>[t.adaptive_enabled?(g(),d(n(je),{key:0,variant:`outline`},{default:y(()=>[x(p(n(o)(`common.adaptive`)),1)]),_:1})):t.max_concurrency>0?(g(),d(n(je),{key:1,variant:`secondary`},{default:y(()=>[x(p(t.max_concurrency),1)]),_:2},1024)):(g(),h(`span`,er,`-`))]),_:2},1024),C(n(E),null,{default:y(()=>[C(n(b),{variant:`ghost`,size:`sm`,class:`gap-1.5`,onClick:e=>n(U)(t)},{default:y(()=>[m(`span`,{class:S([`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors`,t.is_active?`bg-primary`:`bg-input`])},[m(`span`,{class:S([`inline-block h-3 w-3 rounded-full bg-background shadow-sm transition-transform`,t.is_active?`translate-x-3.5`:`translate-x-0.5`])},null,2)],2),C(n(je),{variant:t.is_active?`default`:`secondary`},{default:y(()=>[x(p(t.is_active?n(o)(`common.enabled`):n(o)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1032,[`onClick`])]),_:2},1024),C(n(E),null,{default:y(()=>[m(`div`,tr,[C(n(b),{variant:`ghost`,size:`sm`,onClick:e=>n(He)(t),class:`text-muted-foreground hover:text-primary`},{default:y(()=>[x(p(n(o)(`common.edit`)),1)]),_:1},8,[`onClick`]),C(n(b),{variant:`ghost`,size:`sm`,onClick:e=>n(H)(t),class:`text-muted-foreground hover:text-destructive`},{default:y(()=>[x(p(n(o)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128)),n(L).length===0?(g(),d(n(fe),{key:0},{default:y(()=>[C(n(E),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:y(()=>[x(p(n(o)(`providers.noProviders`)),1)]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),C(n(me),{open:n(f),"onUpdate:open":r[22]||=e=>u(f)?f.value=e:null},{default:y(()=>[C(n(ce),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:y(()=>[C(n(pe),null,{default:y(()=>[C(n(_e),null,{default:y(()=>[x(p(n(_)?n(o)(`providers.editProvider`):n(o)(`providers.addProvider`)),1)]),_:1})]),_:1}),m(`form`,{onSubmit:te(ot,[`prevent`]),class:`space-y-4`},[n(_)?e(``,!0):(g(),h(`div`,nr,[m(`div`,rr,[r[26]||=m(`svg`,{class:`w-3.5 h-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[m(`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),x(` `+p(n(o)(`providers.template.title`)),1)]),m(`div`,ir,[C(n(ve),{modelValue:n(M),"onUpdate:modelValue":[r[0]||=e=>u(M)?M.value=e:null,n(F)]},{default:y(()=>[C(n(Te),{class:`flex-1 border-primary/40`},{default:y(()=>[C(n(De),{placeholder:n(o)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),C(n(Ce),null,{default:y(()=>[C(n(O),{value:`__custom__`},{default:y(()=>[x(p(n(o)(`providers.template.custom`)),1)]),_:1}),(g(!0),h(i,null,w(n(Ue),e=>(g(),d(n(O),{key:e.group,value:e.group},{default:y(()=>[x(p(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),n(M)===`__custom__`?e(``,!0):(g(),d(n(ve),{key:0,modelValue:n(N),"onUpdate:modelValue":[r[1]||=e=>u(N)?N.value=e:null,n(I)],disabled:!n(M)||n(M)===`__custom__`},{default:y(()=>[C(n(Te),{class:`flex-1 border-primary/40`},{default:y(()=>[C(n(De),{placeholder:n(o)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),C(n(Ce),null,{default:y(()=>[(g(!0),h(i,null,w(n(P),e=>(g(),d(n(O),{key:e.plan,value:e.plan},{default:y(()=>[x(p(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`disabled`]))])])),!n(M)&&!n(_)?(g(),h(`div`,ar,[r[27]||=m(`svg`,{class:`w-10 h-10 mb-3 opacity-30`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[m(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),m(`path`,{d:`M9 12l2 2 4-4`})],-1),m(`span`,or,p(n(o)(`providers.template.selectFirst`)),1)])):e(``,!0),n(M)||n(_)?(g(),d(Nn,{key:2,name:n(s).name,"api-type":n(s).api_type,"base-url":n(s).base_url,"api-key":n(s).api_key,"upstream-path":n(s).upstream_path,"proxy-type":n(s).proxy_type,"proxy-url":n(s).proxy_url,"proxy-username":n(s).proxy_username,"proxy-password":n(s).proxy_password,"errors-name":n(c).name??``,"errors-base-url":n(c).base_url??``,"errors-api-key":n(c).api_key??``,"editing-id":n(_),models:n(s).models,"fetching-models":n(Qe),"model-input":n(ie),"context-window-select":n(ae),"has-models-endpoint":!!n(Ge)(),"preset-group":n(M),"has-api-key":!!n(s).api_key,"concurrency-mode":n(l),"max-concurrency":n(s).max_concurrency,"queue-timeout-ms":n(s).queue_timeout_ms,"max-queue-size":n(s).max_queue_size,"transform-inject-headers":n(T).injectHeadersInput,"transform-drop-fields":n(T).dropFieldsInput,"transform-request-defaults":n(T).requestDefaultsInput,"onUpdate:name":r[2]||=e=>n(s).name=e,"onUpdate:apiType":r[3]||=e=>n(s).api_type=e,"onUpdate:baseUrl":r[4]||=e=>n(s).base_url=e,"onUpdate:apiKey":r[5]||=e=>n(s).api_key=e,"onUpdate:upstreamPath":r[6]||=e=>n(s).upstream_path=e,"onUpdate:proxyType":r[7]||=e=>n(s).proxy_type=e,"onUpdate:proxyUrl":r[8]||=e=>n(s).proxy_url=e,"onUpdate:proxyUsername":r[9]||=e=>n(s).proxy_username=e,"onUpdate:proxyPassword":r[10]||=e=>n(s).proxy_password=e,onClearErrors:r[11]||=e=>delete n(c)[e],onClearProxy:r[12]||=e=>{n(s).proxy_url=``,n(s).proxy_username=``,n(s).proxy_password=``},"onUpdate:model":n(Le),onRemoveModel:n(Pe),"onUpdate:modelTimeout":n(Re),onToggleModelCapability:n(ze),onFetchUpstreamModels:n($e),onAddModel:n(Ne),"onUpdate:modelInput":r[13]||=e=>ie.value=e,"onUpdate:contextWindowSelect":r[14]||=e=>ae.value=e,"onUpdate:concurrencyMode":n(Be),"onUpdate:maxConcurrency":r[15]||=e=>n(s).max_concurrency=e,"onUpdate:queueTimeoutMs":r[16]||=e=>n(s).queue_timeout_ms=e,"onUpdate:maxQueueSize":r[17]||=e=>n(s).max_queue_size=e,"onUpdate:injectHeaders":r[18]||=e=>n(T).injectHeadersInput=e,"onUpdate:dropFields":r[19]||=e=>n(T).dropFieldsInput=e,"onUpdate:requestDefaults":r[20]||=e=>n(T).requestDefaultsInput=e},null,8,`name.api-type.base-url.api-key.upstream-path.proxy-type.proxy-url.proxy-username.proxy-password.errors-name.errors-base-url.errors-api-key.editing-id.models.fetching-models.model-input.context-window-select.has-models-endpoint.preset-group.has-api-key.concurrency-mode.max-concurrency.queue-timeout-ms.max-queue-size.transform-inject-headers.transform-drop-fields.transform-request-defaults.onUpdate:model.onRemoveModel.onUpdate:modelTimeout.onToggleModelCapability.onFetchUpstreamModels.onAddModel.onUpdate:concurrencyMode`.split(`.`))):e(``,!0),C(n(he),null,{default:y(()=>[C(n(b),{type:`button`,variant:`outline`,onClick:r[21]||=e=>f.value=!1},{default:y(()=>[x(p(n(o)(`common.cancel`)),1)]),_:1}),C(n(b),{type:`submit`},{default:y(()=>[x(p(n(o)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),C(n(Se),{open:!!n(qe),"onUpdate:open":r[23]||=e=>{e||(qe.value=null)}},{default:y(()=>[C(n(we),null,{default:y(()=>[C(n(Ee),null,{default:y(()=>[C(n(ye),null,{default:y(()=>[x(p(n(o)(`providers.confirmDelete.title`)),1)]),_:1}),C(n(be),null,{default:y(()=>[x(p(n(o)(`providers.confirmDelete.message`,{name:n(qe)?.name})),1)]),_:1})]),_:1}),C(n(ke),null,{default:y(()=>[C(n(Ae),null,{default:y(()=>[x(p(n(o)(`common.cancel`)),1)]),_:1}),C(n(b),{variant:`destructive`,onClick:n(W)},{default:y(()=>[x(p(n(o)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),C(n(Se),{open:!!n(B),"onUpdate:open":r[24]||=e=>{e||(B.value=null)}},{default:y(()=>[C(n(we),null,{default:y(()=>[C(n(Ee),null,{default:y(()=>[C(n(ye),null,{default:y(()=>[x(p(n(B)?.is_active?n(o)(`providers.confirmToggle.titleDisable`):n(o)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),C(n(be),null,{default:y(()=>[x(p(n(B)?.is_active?n(o)(`providers.confirmToggle.messageDisable`,{name:n(B)?.name}):n(o)(`providers.confirmToggle.messageEnable`,{name:n(B)?.name}))+` `,1),n(Je).length?(g(),h(`div`,sr,[m(`div`,cr,p(n(o)(`providers.confirmToggle.dependencyWarning`)),1),(g(!0),h(i,null,w(n(Je),e=>(g(),h(`div`,{key:e,class:`text-destructive text-sm`},p(e),1))),128))])):e(``,!0)]),_:1})]),_:1}),C(n(ke),null,{default:y(()=>[C(n(Ae),null,{default:y(()=>[x(p(n(o)(`common.cancel`)),1)]),_:1}),C(n(xe),{onClick:n(Ze)},{default:y(()=>[x(p(n(o)(`common.confirm`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{lr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,Gt as t,H as n,J as r,Lt as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,k as d,kt as f,mt as ee,n as p,nt as m,qt as h,r as g,rt as _,vt as v,yt as y}from"./button-
|
|
1
|
+
import{A as e,Gt as t,H as n,J as r,Lt as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,k as d,kt as f,mt as ee,n as p,nt as m,qt as h,r as g,rt as _,vt as v,yt as y}from"./button-Dm-cbgS5.js";import{t as te}from"./CascadingModelSelect-CqzJeQWb.js";import{t as b}from"./plus-BkH7yWn-.js";import{t as x}from"./sparkles-7mkrsmh7.js";import{t as S}from"./trash-2-BoBubJto.js";import{t as C}from"./Label-CumWBzHY.js";import{t as w}from"./Switch-Ce1RNEg2.js";import{Q as ne,et as re,i as T,it as ie,lt as ae,rt as oe,x as se}from"./index-CTaQHTod.js";import{n as E,t as D}from"./CardContent-1i8E_S3q.js";import{n as O,t as k}from"./CardTitle-9IEYVrNF.js";import{t as A}from"./Input-BwqUPR8k.js";var j=u({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e;return(e,r)=>(l(),c(`div`,{"data-slot":`card-description`,class:h(t(g)(`text-muted-foreground text-sm`,n.class))},[y(e.$slots,`default`)],2))}}),M={class:`p-6`},N={class:`text-lg font-semibold text-foreground mb-4`},P={class:`flex items-center gap-3`},F={class:`flex items-center gap-3`},I={class:`flex items-center gap-3`},L={class:`flex items-center gap-3`},R={class:`space-y-3`},z={class:`w-40 shrink-0`},B={class:`flex items-center gap-3`},V={class:`text-xs text-muted-foreground mt-2`},H={class:`text-xs text-muted-foreground mt-1`},ce={class:`mt-3 text-xs text-muted-foreground`},U={class:`cursor-pointer hover:text-foreground transition-colors`},W={class:`mt-2 space-y-1 pl-2 border-l-2 border-muted`},G={class:`whitespace-pre-line`},le={class:`whitespace-pre-line`},ue={class:`flex justify-end mt-4`},de={key:0,class:`flex items-center gap-1`},fe={key:1},pe=128e3,K=u({__name:`ProxyEnhancement`,setup(u){let{t:h}=n(),g=i(!0),y=i(!1),K=i(!1),q=i(!1),J=i(!1),Y=i(!1),X=i([]),Z=i(void 0),Q=i([]);async function me(){try{Q.value=(await d.getProviders()).filter(e=>e.is_active).map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??pe,streamTimeoutMs:e.stream_timeout_ms??null}))}))}catch(e){console.error(`proxyEnhancement.loadProviders:`,e),T.error(h(`proxyEnhancement.loadProvidersFailed`))}}function he(e){Z.value=e}async function ge(){try{let e=await d.getProxyEnhancement();g.value=e.tool_round_limit_enabled,y.value=e.tool_call_loop_enabled,K.value=e.stream_loop_enabled,q.value=e.tool_error_logging_enabled,Z.value=e.ai_retry_config??void 0,J.value=(await re()).enabled;let[t]=await Promise.allSettled([ne()]);t.status===`fulfilled`&&(X.value=t.value.entries.map(e=>({...e,persisted:!0})))}catch(t){console.error(`Failed to load proxy enhancement config:`,t),T.error(e(t,h(`proxyEnhancement.loadFailed`)))}}async function $(){Y.value=!0;try{let e=X.value.filter(e=>e.client_type.trim()&&e.session_header_key.trim()).map(e=>({client_type:e.client_type.trim(),session_header_key:e.session_header_key.trim()})),t=(await Promise.allSettled([d.updateProxyEnhancement({tool_call_loop_enabled:y.value,stream_loop_enabled:K.value,tool_round_limit_enabled:g.value,tool_error_logging_enabled:q.value,ai_retry_config:Z.value??null}),ie(J.value),oe(e)])).filter(e=>e.status===`rejected`);if(t.length>0){let e=t.map(e=>e.status===`rejected`?e.reason instanceof Error?e.reason.message:typeof e.reason==`string`?e.reason:JSON.stringify(e.reason):``).filter(Boolean).join(`; `);T.error(h(`proxyEnhancement.saveFailed`)+`: `+e);return}T.success(h(`common.saveSuccess`))}catch(t){console.error(`Failed to save config:`,t),T.error(e(t,h(`proxyEnhancement.saveFailed`)))}finally{Y.value=!1}}function _e(){X.value.push({client_type:``,session_header_key:``,persisted:!1})}function ve(e){X.value.splice(e,1)}return ee(()=>{ge(),me()}),(e,n)=>(l(),c(`div`,M,[s(`h2`,N,o(t(h)(`proxyEnhancement.title`)),1),_(t(E),null,{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.loopDetection.toolRoundLimit.title`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.loopDetection.toolRoundLimit.description`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[s(`div`,P,[_(t(w),{id:`tool-round-limit-toggle`,modelValue:g.value,"onUpdate:modelValue":n[0]||=e=>g.value=e},null,8,[`modelValue`]),_(t(C),{for:`tool-round-limit-toggle`},{default:f(()=>[m(o(g.value?t(h)(`proxyEnhancement.status.enabled`):t(h)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),_(t(E),{class:`mt-4`},{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.loopDetection.toolCallLoop.title`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.loopDetection.toolCallLoop.description`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[s(`div`,F,[_(t(w),{id:`tool-call-loop-toggle`,modelValue:y.value,"onUpdate:modelValue":n[1]||=e=>y.value=e},null,8,[`modelValue`]),_(t(C),{for:`tool-call-loop-toggle`},{default:f(()=>[m(o(y.value?t(h)(`proxyEnhancement.status.enabled`):t(h)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),_(t(E),{class:`mt-4`},{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.loopDetection.streamLoop.title`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.loopDetection.streamLoop.description`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[s(`div`,I,[_(t(w),{id:`stream-loop-toggle`,modelValue:K.value,"onUpdate:modelValue":n[2]||=e=>K.value=e},null,8,[`modelValue`]),_(t(C),{for:`stream-loop-toggle`},{default:f(()=>[m(o(K.value?t(h)(`proxyEnhancement.status.enabled`):t(h)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),_(t(E),{class:`mt-4`},{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.toolErrorLogging.title`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.toolErrorLogging.description`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[s(`div`,L,[_(t(w),{id:`tool-error-logging-toggle`,modelValue:q.value,"onUpdate:modelValue":n[3]||=e=>q.value=e},null,8,[`modelValue`]),_(t(C),{for:`tool-error-logging-toggle`},{default:f(()=>[m(o(q.value?t(h)(`proxyEnhancement.status.enabled`):t(h)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),_(t(E),{class:`mt-4`},{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.clientIdentification.title`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.clientIdentification.description`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[s(`div`,R,[(l(!0),c(r,null,v(X.value,(e,n)=>(l(),c(`div`,{key:n,class:`flex items-center gap-3`},[s(`div`,z,[e.persisted?(l(),a(t(se),{key:0,variant:`secondary`},{default:f(()=>[m(o(e.client_type),1)]),_:2},1024)):(l(),a(t(A),{key:1,modelValue:e.client_type,"onUpdate:modelValue":t=>e.client_type=t,placeholder:`client_type`,class:`h-8`},null,8,[`modelValue`,`onUpdate:modelValue`]))]),_(t(A),{modelValue:e.session_header_key,"onUpdate:modelValue":t=>e.session_header_key=t,placeholder:`session header key`,class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`]),_(t(p),{variant:`ghost`,size:`icon`,disabled:X.value.length<=1,onClick:e=>ve(n)},{default:f(()=>[_(t(S),{class:`w-4 h-4`})]),_:1},8,[`disabled`,`onClick`])]))),128)),_(t(p),{variant:`outline`,size:`sm`,onClick:_e},{default:f(()=>[_(t(b),{class:`w-4 h-4 mr-1`}),m(` `+o(t(h)(`proxyEnhancement.clientIdentification.addEntry`)),1)]),_:1})])]),_:1})]),_:1}),_(t(E),{class:`mt-4`},{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.tokenEstimation.title`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.tokenEstimation.shortDescription`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[s(`div`,B,[_(t(w),{id:`token-estimation-toggle`,"model-value":J.value,"onUpdate:modelValue":n[4]||=e=>J.value=e},null,8,[`model-value`]),_(t(C),{for:`token-estimation-toggle`},{default:f(()=>[m(o(J.value?t(h)(`proxyEnhancement.status.enabled`):t(h)(`proxyEnhancement.status.disabled`)),1)]),_:1})]),s(`p`,V,o(t(h)(`proxyEnhancement.tokenEstimation.desc`)),1),s(`p`,H,o(t(h)(`proxyEnhancement.saveHint`)),1),s(`details`,ce,[s(`summary`,U,o(t(h)(`proxyEnhancement.tokenEstimation.setupTitle`))+` ▸ `,1),s(`div`,W,[s(`p`,null,o(t(h)(`proxyEnhancement.tokenEstimation.claudeCode`)),1),s(`p`,G,o(t(h)(`proxyEnhancement.tokenEstimation.piExtension`)),1),s(`p`,le,o(t(h)(`proxyEnhancement.tokenEstimation.piModelsJson`)),1)])])]),_:1})]),_:1}),_(t(E),{class:`mt-4`},{default:f(()=>[_(t(O),null,{default:f(()=>[_(t(k),{class:`flex items-center gap-2`},{default:f(()=>[_(t(x),{class:`h-4 w-4`}),m(` `+o(t(h)(`proxyEnhancement.aiRetryRuleGen`)),1)]),_:1}),_(t(j),null,{default:f(()=>[m(o(t(h)(`proxyEnhancement.aiRetryRuleGenDesc`)),1)]),_:1})]),_:1}),_(t(D),null,{default:f(()=>[_(te,{providers:Q.value,"model-value":Z.value,"onUpdate:modelValue":he},null,8,[`providers`,`model-value`])]),_:1})]),_:1}),s(`div`,ue,[_(t(p),{disabled:Y.value,onClick:$},{default:f(()=>[Y.value?(l(),c(`span`,de,[_(t(ae),{class:`w-4 h-4 animate-spin`}),m(` `+o(t(h)(`proxyEnhancement.dynamicModel.saving`)),1)])):(l(),c(`span`,fe,o(t(h)(`common.save`)),1))]),_:1},8,[`disabled`])])]))}});export{K as default};
|