llm-simple-router 0.9.20 → 0.9.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/setup.js +2 -1
- package/dist/middleware/admin-auth.js +2 -1
- package/dist/utils/cookie-secure.d.ts +3 -0
- package/dist/utils/cookie-secure.js +8 -0
- package/frontend-dist/assets/CardContent-DmBQARma.js +1 -0
- package/frontend-dist/assets/CardTitle-DgwtSVqy.js +1 -0
- package/frontend-dist/assets/Checkbox-DgWzyASL.js +1 -0
- package/frontend-dist/assets/CollapsibleContent-BjJrE5cf.js +1 -0
- package/frontend-dist/assets/CollapsibleTrigger-C73cozLg.js +1 -0
- package/frontend-dist/assets/{Dashboard-niqNN72b.js → Dashboard-D47Lzd5i.js} +2 -2
- package/frontend-dist/assets/{Input--tQLJqtT.js → Input-glS226Q6.js} +1 -1
- package/frontend-dist/assets/Label-B2lstY9k.js +1 -0
- package/frontend-dist/assets/Login-B5v_CIaw.js +1 -0
- package/frontend-dist/assets/Logs-CC6e8ty3.js +1 -0
- package/frontend-dist/assets/MappingEntryEditor-auxWvl8S.js +1 -0
- package/frontend-dist/assets/{ModelCard-BzFBBbml.js → ModelCard-DixuS062.js} +1 -1
- package/frontend-dist/assets/ModelMappings-DtmMS2o6.js +1 -0
- package/frontend-dist/assets/Monitor-F6DD03LF.js +1 -0
- package/frontend-dist/assets/Providers-DZkl5ryZ.js +1 -0
- package/frontend-dist/assets/ProxyEnhancement-C1uXuPZm.js +1 -0
- package/frontend-dist/assets/QuickSetup-BEeZJQ3g.js +1 -0
- package/frontend-dist/assets/RetryRules-plJdXlmH.js +1 -0
- package/frontend-dist/assets/RouterKeys-CLh6XISQ.js +1 -0
- package/frontend-dist/assets/{RovingFocusItem-CP9lqnFp.js → RovingFocusItem-BnqO1JTY.js} +1 -1
- package/frontend-dist/assets/Schedules-btnuRbYc.js +1 -0
- package/frontend-dist/assets/Settings-CbQaUkQ5.js +6 -0
- package/frontend-dist/assets/Setup-8yOUQ97d.js +1 -0
- package/frontend-dist/assets/Switch-BwPbL6O4.js +1 -0
- package/frontend-dist/assets/TooltipTrigger-D4gYyjGF.js +1 -0
- package/frontend-dist/assets/TransformRulesForm-C6PBk8zI.js +1 -0
- package/frontend-dist/assets/UnifiedRequestDialog-rmWxp09D.js +3 -0
- package/frontend-dist/assets/VisuallyHiddenInput-BPy71v35.js +1 -0
- package/frontend-dist/assets/{button-CDY3J7p5.js → button-DRFSckEU.js} +2 -2
- package/frontend-dist/assets/{copy-DyhMBltz.js → copy-BsWNnxok.js} +1 -1
- package/frontend-dist/assets/dialog-DxoN_Irc.js +1 -0
- package/frontend-dist/assets/index-Dr-BkaVu.js +3 -0
- package/frontend-dist/assets/{trash-2-BvFFjoxL.js → trash-2-DZ6KuutY.js} +1 -1
- package/frontend-dist/assets/{useClipboard-BJeJ8Sah.js → useClipboard-B0s-K67s.js} +1 -1
- package/frontend-dist/assets/{useLogRetention-BIEahe9Z.js → useLogRetention-BS-AFvlE.js} +1 -1
- package/frontend-dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend-dist/assets/CardContent-uWoTAlVi.js +0 -1
- package/frontend-dist/assets/CardTitle-Cr8POTL5.js +0 -1
- package/frontend-dist/assets/Checkbox-D2Z17AP8.js +0 -1
- package/frontend-dist/assets/CollapsibleContent-BqCmqNIs.js +0 -1
- package/frontend-dist/assets/CollapsibleTrigger-B--uk4iR.js +0 -1
- package/frontend-dist/assets/Label-C4V5wJj3.js +0 -1
- package/frontend-dist/assets/Login-EWJo401l.js +0 -1
- package/frontend-dist/assets/Logs-Pvhkbrof.js +0 -1
- package/frontend-dist/assets/MappingEntryEditor-Ch7ahw0-.js +0 -1
- package/frontend-dist/assets/ModelMappings-DeNasUhB.js +0 -1
- package/frontend-dist/assets/Monitor-C5FdCHhI.js +0 -1
- package/frontend-dist/assets/Providers-TZCIlKs9.js +0 -1
- package/frontend-dist/assets/ProxyEnhancement-D-pHVAHL.js +0 -1
- package/frontend-dist/assets/QuickSetup-CdKq6YXW.js +0 -1
- package/frontend-dist/assets/RetryRules-Dm0WmD9Z.js +0 -1
- package/frontend-dist/assets/RouterKeys-CVFtDedl.js +0 -1
- package/frontend-dist/assets/Schedules-BB2cufFc.js +0 -1
- package/frontend-dist/assets/Settings-Dc8uJ5Il.js +0 -6
- package/frontend-dist/assets/Setup-15RN4xTV.js +0 -1
- package/frontend-dist/assets/Switch-GUFZnjj9.js +0 -1
- package/frontend-dist/assets/TooltipTrigger-DhZJrVvO.js +0 -1
- package/frontend-dist/assets/TransformRulesForm-D0BEkLYX.js +0 -1
- package/frontend-dist/assets/UnifiedRequestDialog-txL71pYo.js +0 -3
- package/frontend-dist/assets/VisuallyHiddenInput-Itdmiinr.js +0 -1
- package/frontend-dist/assets/dialog-B3bc_Iev.js +0 -1
- package/frontend-dist/assets/index-BZ7-9gPE.js +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{$ as e,Ot as t,Tt as n,V as r,Vt as i,X as a,dt as o,m as s,r as c,zt as l}from"./button-DRFSckEU.js";var u=e({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:u}){let d=e,f=s(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(e,s)=>n((o(),a(`input`,{"onUpdate:modelValue":s[0]||=e=>t(f)?f.value=e:null,"data-slot":`input`,class:i(l(c)(`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)),[[r,l(f)]])}});export{u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,J as t,dt as n,i as r,mt as i,o as a,ot as o,r as s,wt as c,x as l,zt as u}from"./button-DRFSckEU.js";var d=e({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let s=e;return a(),(e,a)=>(n(),t(u(r),o(s,{onMousedown:a[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:c(()=>[i(e.$slots,`default`)]),_:3},16))}}),f=e({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e,a=l(r,`class`);return(e,l)=>(n(),t(u(d),o({"data-slot":`label`},u(a),{class:u(s)(`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`,r.class)}),{default:c(()=>[i(e.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,I as n,J as r,Mt as i,Q as a,R as o,U as s,Wt as c,X as l,Y as u,Z as d,dt as f,k as p,n as m,q as h,wt as g,zt as _}from"./button-DRFSckEU.js";import{t as v}from"./Label-B2lstY9k.js";import{Q as y,Z as b,t as x}from"./index-Dr-BkaVu.js";import{n as S,t as C}from"./CardContent-DmBQARma.js";import{t as w}from"./Input-glS226Q6.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=e({__name:`Login`,setup(e){let{t:k}=n(),{isDark:A,toggleTheme:j}=x(),M=o(),N=i(``),P=i(``),F=i(!1);async function I(){if(N.value){P.value=``,F.value=!0;try{await p.login(N.value),M.push(`/`)}catch(e){P.value=t(e,k(`login.loginFailed`))}finally{F.value=!1}}}return(e,t)=>(f(),l(`div`,T,[a(_(m),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:_(j)},{default:g(()=>[_(A)?(f(),r(_(b),{key:1,class:`w-4 h-4`})):(f(),r(_(y),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),a(_(S),{class:`w-full max-w-sm shadow-lg`},{default:g(()=>[a(_(C),{class:`pt-6`},{default:g(()=>[h(`div`,E,[t[1]||=h(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[h(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[h(`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),t[2]||=h(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`,-1),h(`p`,D,c(_(k)(`login.subtitle`)),1)]),h(`form`,{onSubmit:s(I,[`prevent`]),class:`space-y-4`},[h(`div`,null,[a(_(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[d(c(_(k)(`login.password`)),1)]),_:1}),a(_(w),{modelValue:N.value,"onUpdate:modelValue":t[0]||=e=>N.value=e,type:`password`,placeholder:_(k)(`login.passwordPlaceholder`),disabled:F.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),P.value?(f(),l(`p`,O,c(P.value),1)):u(``,!0),a(_(m),{type:`submit`,class:`w-full`,disabled:F.value},{default:g(()=>[d(c(F.value?_(k)(`login.loggingIn`):_(k)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,I as n,J as r,K as i,Mt as a,Ot as o,Q as s,U as c,Vt as l,W as u,Wt as d,X as f,Y as p,Z as m,dt as h,k as g,lt as _,n as v,pt as y,q as b,r as x,wt as S,xt as C,zt as w}from"./button-DRFSckEU.js";import{r as T,t as ee}from"./UnifiedRequestDialog-rmWxp09D.js";import{t as E}from"./copy-BsWNnxok.js";import{i as D,n as O,r as te,t as ne}from"./TooltipTrigger-D4gYyjGF.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-DxoN_Irc.js";import{t as de}from"./Label-B2lstY9k.js";import{a as fe,b as M,c as pe,d as me,f as N,g as P,h as F,i as he,m as I,nt as ge,o as _e,p as L,r as R,rt as z,s as ve,u as ye}from"./index-Dr-BkaVu.js";import{t as B}from"./Input-glS226Q6.js";import{t as be}from"./useClipboard-B0s-K67s.js";import{t as xe}from"./useLogRetention-BS-AFvlE.js";var Se=e({__name:`Skeleton`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(h(),f(`div`,{"data-slot":`skeleton`,class:l(w(x)(`bg-muted rounded-md animate-pulse`,t.class))},null,2))}}),V={key:1,class:`ml-4 text-muted-foreground text-xs`},H={class:`inline-flex items-center gap-1`},U={class:`font-mono`},W={key:2,class:`text-muted-foreground`},Ce={key:1,class:`text-muted-foreground`},G={key:1,class:`text-muted-foreground`},we=e({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1}},emits:[`toggleExpand`,`openDetail`],setup(e,{emit:t}){let i=t,{t:a}=n(),{copied:o,copy:g}=be();function _(e){if(!e)return a(`logs.row.unknown`);try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch{return a(`logs.row.unknown`)}}return(t,n)=>(h(),r(w(A),{class:l({"bg-destructive/10":!e.isChild&&(e.log.status_code??0)>=400,"bg-muted/20":e.isChild})},{default:S(()=>[s(w(j),{class:`w-10`},{default:S(()=>[!e.isChild&&e.log.child_count?(h(),r(w(v),{key:0,variant:`ghost`,size:`xs`,onClick:n[0]||=t=>i(`toggleExpand`,e.log)},{default:S(()=>[b(`span`,{class:l([`text-xs transition-transform`,e.expanded?``:`-rotate-90`])},`▼`,2)]),_:1})):p(``,!0),e.isChild?(h(),f(`span`,V,`└`)):p(``,!0)]),_:1}),s(w(j),{class:`font-mono text-xs text-muted-foreground`,title:e.log.id},{default:S(()=>[b(`span`,H,[m(d(e.log.id.slice(0,8))+` `,1),s(w(O),null,{default:S(()=>[s(w(D),{"delay-duration":300},{default:S(()=>[s(w(ne),{"as-child":``},{default:S(()=>[s(w(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:n[1]||=c(t=>w(g)(e.log.id),[`stop`])},{default:S(()=>[w(o)?(h(),r(w(ge),{key:0,class:`size-3 text-success`})):(h(),r(w(E),{key:1,class:`size-3`}))]),_:1})]),_:1}),s(w(te),null,{default:S(()=>[m(d(w(a)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})]),_:1})])]),_:1},8,[`title`]),s(w(j),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(z)(e.log.created_at)),1)]),_:1}),s(w(j),null,{default:S(()=>[s(w(M),{variant:e.log.api_type===`openai`?`default`:`secondary`},{default:S(()=>[m(d(e.log.api_type),1)]),_:1},8,[`variant`])]),_:1}),s(w(j),{class:`font-mono text-xs`},{default:S(()=>[m(d(e.log.model||`-`)+` `,1),!e.isChild&&e.log.original_model?(h(),r(w(M),{key:0,variant:`secondary`,class:`ml-1 text-xs`},{default:S(()=>[m(d(w(a)(`logs.row.replaced`)),1)]),_:1})):p(``,!0)]),_:1}),s(w(j),{class:`text-xs`},{default:S(()=>[!e.isChild&&e.log.provider_id===w(`router`)?(h(),r(w(M),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:S(()=>[m(d(w(a)(`logs.row.proxyEnhancement`,{label:_(e.log.upstream_request)})),1)]),_:1})):e.log.backend_model||e.log.provider_name?(h(),f(u,{key:1},[b(`span`,U,d(e.log.backend_model||`-`),1),n[3]||=b(`span`,{class:`text-muted-foreground`},` @ `,-1),s(w(M),{variant:`outline`,class:`text-[10px] px-1 py-0`},{default:S(()=>[m(d(e.log.provider_name||e.log.provider_id||`-`),1)]),_:1})],64)):(h(),f(`span`,W,`-`))]),_:1}),s(w(j),null,{default:S(()=>[s(w(M),{variant:(e.log.status_code??0)<400?`default`:`destructive`},{default:S(()=>[m(d(e.log.status_code||`-`),1)]),_:1},8,[`variant`])]),_:1}),s(w(j),null,{default:S(()=>[m(d(e.log.latency_ms?e.log.latency_ms+`ms`:`-`),1)]),_:1}),s(w(j),null,{default:S(()=>[m(d(e.log.is_stream?`Yes`:`No`),1)]),_:1}),s(w(j),null,{default:S(()=>[e.log.is_retry?(h(),r(w(M),{key:0,variant:`outline`,class:`text-warning-dark border-warning`},{default:S(()=>[m(d(w(a)(`logs.table.retry`)),1)]),_:1})):(h(),f(`span`,Ce,`-`))]),_:1}),s(w(j),null,{default:S(()=>[e.log.is_failover?(h(),r(w(M),{key:0,variant:`outline`,class:`text-danger-dark border-danger`},{default:S(()=>[m(d(w(a)(`logs.table.failover`)),1)]),_:1})):(h(),f(`span`,G,`-`))]),_:1}),s(w(j),{class:`text-destructive text-xs`},{default:S(()=>[m(d(e.log.error_message||`-`),1)]),_:1}),s(w(j),null,{default:S(()=>[s(w(v),{variant:`ghost`,size:`sm`,onClick:n[2]||=t=>i(`openDetail`,e.log.id)},{default:S(()=>[m(d(w(a)(`logs.row.detail`)),1)]),_:1})]),_:1})]),_:1},8,[`class`]))}}),K=[{label:`1h`,value:`1h`},{label:`5h`,value:`5h`},{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`}];function Te(){let{t:e}=n(),r=a(`5h`),o=a({start:``,end:``}),s=a(`all`),c=a(`all`),l=a(`all`),u=a(`all`),d=a(`all`),f=a([]),p=a([]),m=a([]),h=i(()=>o.value.start&&o.value.end&&o.value.start<o.value.end),v=i(()=>{let{start:t,end:n}=o.value;return!t||!n?``:t>=n?e(`logs.validation.endTimeAfterStart`):``}),y=i(()=>{if(s.value===`all`)return m.value;let e=f.value.find(e=>e.id===s.value);if(!e)return m.value;let t=new Set(e.models.map(e=>e.name));return m.value.filter(e=>t.has(e))});function b(e){return e.includes(`T`)?`${e}:00.000Z`:`${e}T00:00:00.000Z`}function x(e){return e.includes(`T`)?`${e}:59.999Z`:`${e}T23:59:59.999Z`}let S={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function C(){let e={};if(h.value)e.start_time=b(o.value.start),e.end_time=x(o.value.end);else{let t=S[r.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return u.value!==`all`&&(e.api_type=u.value),s.value!==`all`&&(e.provider_id=s.value),c.value!==`all`&&(e.model=c.value),l.value!==`all`&&(e.router_key_id=l.value),d.value!==`all`&&(e.status_code=d.value),e}function w(){o.value={start:``,end:``}}async function T(){try{f.value=await g.getProviders()}catch(n){console.error(`Failed to load providers:`,n),R.error(t(n,e(`logs.messages.loadProvidersFailed`)))}}async function ee(){try{p.value=await g.getRouterKeys()}catch(n){console.error(`Failed to load router keys:`,n),R.error(t(n,e(`logs.messages.loadKeysFailed`)))}}async function E(){try{let e=await g.getMetricsSummary({period:`30d`});m.value=[...new Set(e.map(e=>e.backend_model))]}catch{m.value=[]}}return _(()=>{Promise.allSettled([T(),ee(),E()])}),{PERIODS:K,period:r,dateRange:o,dateRangeError:v,providerFilter:s,modelFilter:c,keyFilter:l,apiTypeFilter:u,statusFilter:d,providers:f,routerKeys:p,filteredModelOptions:y,hasDateRange:h,clearDateRange:w,buildFilterParams:C}}var q=20,Ee=864e5;function De(){let{t:e}=n(),r=a([]),o=a(0),s=a(1),c=a({}),l=a(30),u=a(!1),d=a(new Set),f=a({}),p=a({}),m=a(!1),h=a(null),_=i(()=>Math.ceil(o.value/q));async function v(n){n&&(c.value=n);try{let e=await g.getLogs({page:s.value,limit:q,view:`grouped`,...c.value});r.value=e.data,o.value=e.total,d.value.clear(),f.value={},p.value={}}catch(n){console.error(`Failed to load logs:`,n),R.error(t(n,e(`logs.messages.loadFailed`)))}}function y(e){e>=1&&e<=_.value&&e!==s.value&&(s.value=e,v())}let b=a(null),x=a(!1);async function S(){try{let e=new Date(Date.now()-l.value*Ee).toISOString(),t=await g.deleteLogsBefore(e);u.value=!1,s.value=1,await v(),b.value=t.deleted,x.value=!0}catch(n){console.error(`Failed to cleanup logs:`,n),R.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 g.getLogChildren(r)}catch(n){console.error(`Failed to load child logs:`,n),R.error(t(n,e(`logs.messages.loadSubRequestsFailed`)))}finally{p.value[r]=!1}}}async function w(n){try{h.value=await g.getLogDetail(n),m.value=!0}catch(n){console.error(`Failed to load log detail:`,n),R.error(t(n,e(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:q,logs:r,total:o,page:s,totalPages:_,cleanupDays:l,showCleanup:u,expandedRows:d,childLogs:f,childLoading:p,logDetailOpen:m,selectedLogEntry:h,cleanupResult:b,showCleanupResult:x,loadLogs:v,goToPage:y,handleCleanup:S,toggleExpand:C,openLogDetail:w}}var Oe={class:`p-6`},ke={class:`flex items-center justify-between mb-4`},Ae={class:`text-lg font-semibold text-foreground`},je={class:`flex flex-wrap items-center gap-2 mb-4`},Me={class:`flex gap-1`},Ne={class:`flex items-center gap-1`},Pe={key:1,class:`text-xs text-destructive whitespace-nowrap`},Fe={class:`bg-card rounded-lg border overflow-hidden`},Ie={class:`flex items-center justify-between mt-4`},Le={class:`text-sm text-muted-foreground`},Re={class:`flex items-center gap-1`},ze={key:0,class:`px-2 text-sm text-muted-foreground`},Be={class:`text-sm text-muted-foreground`},Ve={class:`mb-4`},He={class:`space-y-3`},Ue={class:`text-sm font-medium`},We={class:`flex items-center gap-3`},Ge={class:`text-xs text-muted-foreground`},Ke={class:`flex justify-end`},qe=13,Je=300,Ye=7,J=2,Y=1,X=e({__name:`Logs`,setup(e){let{t}=n(),{PERIODS:a,period:c,dateRange:l,dateRangeError:g,providerFilter:x,modelFilter:E,keyFilter:D,statusFilter:O,providers:te,routerKeys:ne,filteredModelOptions:M,clearDateRange:ge,buildFilterParams:R}=Te(),{logs:z,total:be,page:V,totalPages:H,cleanupDays:U,showCleanup:W,cleanupResult:Ce,showCleanupResult:G,expandedRows:K,childLogs:q,childLoading:Ee,logDetailOpen:X,selectedLogEntry:Xe,loadLogs:Ze,goToPage:Z,handleCleanup:Qe,toggleExpand:$e,openLogDetail:et}=De(),tt=i(()=>{let e=H.value,t=V.value;if(e<=Ye)return Array.from({length:e},(e,t)=>t+1);let n=[Y],r=Math.max(Y+1,t-J),i=Math.min(e-Y,t+J);r>Y+J&&n.push(`...`);for(let e=r;e<=i;e++)n.push(e);return i<e-J&&n.push(`...`),n.push(e),n}),{retentionDays:Q,retentionSaving:nt,saveRetention:rt,loadRetention:it}=xe(),$=null;return C([c,l,x,E,D,O],()=>{V.value=1,$&&clearTimeout($),$=setTimeout(()=>Ze(R()),Je)},{deep:!0}),_(()=>{Ze(R()),it()}),(e,n)=>(h(),f(`div`,Oe,[b(`div`,ke,[b(`h2`,Ae,d(w(t)(`logs.title`)),1),s(w(v),{variant:`outline`,class:`text-destructive border-destructive hover:bg-destructive/10`,onClick:n[0]||=e=>W.value=!0},{default:S(()=>[m(d(w(t)(`logs.cleanupLogs`)),1)]),_:1})]),b(`div`,je,[b(`div`,Me,[(h(!0),f(u,null,y(w(a),e=>(h(),r(w(v),{key:e.value,variant:w(c)===e.value?`default`:`ghost`,size:`sm`,onClick:t=>c.value=e.value},{default:S(()=>[m(d(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),b(`div`,Ne,[s(w(B),{type:`datetime-local`,modelValue:w(l).start,"onUpdate:modelValue":n[1]||=e=>w(l).start=e,class:`w-44`},null,8,[`modelValue`]),n[18]||=b(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),s(w(B),{type:`datetime-local`,modelValue:w(l).end,"onUpdate:modelValue":n[2]||=e=>w(l).end=e,class:`w-44`},null,8,[`modelValue`]),w(l).start||w(l).end?(h(),r(w(v),{key:0,variant:`ghost`,size:`sm`,onClick:w(ge)},{default:S(()=>[m(d(w(t)(`logs.clear`)),1)]),_:1},8,[`onClick`])):p(``,!0),w(g)?(h(),f(`span`,Pe,d(w(g)),1)):p(``,!0)]),s(w(P),{modelValue:w(x),"onUpdate:modelValue":n[3]||=e=>o(x)?x.value=e:null},{default:S(()=>[s(w(L),{class:`w-28 truncate`},{default:S(()=>[s(w(N),{placeholder:w(t)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),s(w(F),null,{default:S(()=>[s(w(I),{value:`all`},{default:S(()=>[m(d(w(t)(`logs.allProviders`)),1)]),_:1}),(h(!0),f(u,null,y(w(te),e=>(h(),r(w(I),{key:e.id,value:e.id},{default:S(()=>[m(d(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),s(w(P),{modelValue:w(E),"onUpdate:modelValue":n[4]||=e=>o(E)?E.value=e:null},{default:S(()=>[s(w(L),{class:`w-32 truncate`},{default:S(()=>[s(w(N),{placeholder:w(t)(`logs.allModels`)},null,8,[`placeholder`])]),_:1}),s(w(F),null,{default:S(()=>[s(w(I),{value:`all`},{default:S(()=>[m(d(w(t)(`logs.allModels`)),1)]),_:1}),(h(!0),f(u,null,y(w(M),e=>(h(),r(w(I),{key:e,value:e},{default:S(()=>[m(d(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),s(w(P),{modelValue:w(D),"onUpdate:modelValue":n[5]||=e=>o(D)?D.value=e:null},{default:S(()=>[s(w(L),{class:`w-32 truncate`},{default:S(()=>[s(w(N),{placeholder:w(t)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),s(w(F),null,{default:S(()=>[s(w(I),{value:`all`},{default:S(()=>[m(d(w(t)(`logs.allKeys`)),1)]),_:1}),(h(!0),f(u,null,y(w(ne),e=>(h(),r(w(I),{key:e.id,value:e.id},{default:S(()=>[m(d(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),s(w(P),{modelValue:w(O),"onUpdate:modelValue":n[6]||=e=>o(O)?O.value=e:null},{default:S(()=>[s(w(L),{class:`w-28 truncate`},{default:S(()=>[s(w(N),{placeholder:w(t)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),s(w(F),null,{default:S(()=>[s(w(I),{value:`all`},{default:S(()=>[m(d(w(t)(`logs.allStatus`)),1)]),_:1}),s(w(I),{value:`200`},{default:S(()=>[...n[19]||=[m(`200`,-1)]]),_:1}),s(w(I),{value:`non200`},{default:S(()=>[m(d(w(t)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),b(`div`,Fe,[s(w(ae),null,{default:S(()=>[s(w(le),null,{default:S(()=>[s(w(A),{class:`bg-muted`},{default:S(()=>[s(w(k),{class:`w-10`}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.id`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.time`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.type`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.model`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.actualForward`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.statusCode`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.latency`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.streaming`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.retry`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.failover`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.error`)),1)]),_:1}),s(w(k),{class:`text-muted-foreground`},{default:S(()=>[m(d(w(t)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),s(w(ie),null,{default:S(()=>[(h(!0),f(u,null,y(w(z),e=>(h(),f(u,{key:e.id},[s(we,{log:e,expanded:w(K).has(e.id),onToggleExpand:w($e),onOpenDetail:w(et)},null,8,[`log`,`expanded`,`onToggleExpand`,`onOpenDetail`]),w(K).has(e.id)?(h(),f(u,{key:0},[w(Ee)[e.id]?(h(),r(w(A),{key:0},{default:S(()=>[s(w(j),{colspan:qe,class:`text-center py-2 pl-10`},{default:S(()=>[s(w(Se),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):w(q)[e.id]?.length?(h(!0),f(u,{key:1},y(w(q)[e.id],e=>(h(),r(we,{key:e.id,log:e,"is-child":!0,onOpenDetail:w(et)},null,8,[`log`,`onOpenDetail`]))),128)):p(``,!0)],64)):p(``,!0)],64))),128)),w(z).length===0?(h(),r(w(A),{key:0},{default:S(()=>[s(w(j),{colspan:qe,class:`text-center text-muted-foreground py-8`},{default:S(()=>[m(d(w(t)(`logs.noLogs`)),1)]),_:1})]),_:1})):p(``,!0)]),_:1})]),_:1})]),b(`div`,Ie,[b(`p`,Le,d(w(t)(`logs.pagination`,{total:w(be),page:w(V),totalPages:w(H)})),1),b(`div`,Re,[s(w(v),{variant:`outline`,size:`sm`,onClick:n[7]||=e=>w(Z)(1),disabled:w(V)<=1},{default:S(()=>[m(d(w(t)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),s(w(v),{variant:`outline`,size:`sm`,onClick:n[8]||=e=>w(Z)(w(V)-1),disabled:w(V)<=1},{default:S(()=>[m(d(w(t)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(h(!0),f(u,null,y(tt.value,e=>(h(),f(u,{key:e},[e===`...`?(h(),f(`span`,ze,`...`)):(h(),r(w(v),{key:1,variant:e===w(V)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>w(Z)(e)},{default:S(()=>[m(d(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),s(w(v),{variant:`outline`,size:`sm`,onClick:n[9]||=e=>w(Z)(w(V)+1),disabled:w(V)>=w(H)},{default:S(()=>[m(d(w(t)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),s(w(v),{variant:`outline`,size:`sm`,onClick:n[10]||=e=>w(Z)(w(H)),disabled:w(V)>=w(H)},{default:S(()=>[m(d(w(t)(`logs.lastPage`)),1)]),_:1},8,[`disabled`]),n[20]||=m(` > `,-1)])]),s(ee,{open:w(X),"onUpdate:open":n[11]||=e=>o(X)?X.value=e:null,source:`history`,"log-entry":w(Xe)},null,8,[`open`,`log-entry`]),s(w(se),{open:w(W),"onUpdate:open":n[15]||=e=>o(W)?W.value=e:null},{default:S(()=>[s(w(re),null,{default:S(()=>[s(w(oe),null,{default:S(()=>[s(w(ue),null,{default:S(()=>[m(d(w(t)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),b(`p`,Be,d(w(t)(`logs.cleanup.description`)),1),b(`div`,Ve,[s(w(de),{class:`block text-sm font-medium text-foreground mb-1`},{default:S(()=>[m(d(w(t)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),s(w(B),{modelValue:w(U),"onUpdate:modelValue":n[12]||=e=>o(U)?U.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),s(w(T)),b(`div`,He,[b(`div`,Ue,d(w(t)(`logs.cleanup.autoCleanup`)),1),b(`div`,We,[s(w(de),{class:`whitespace-nowrap`},{default:S(()=>[m(d(w(t)(`logs.cleanup.retentionDays`)),1)]),_:1}),s(w(B),{type:`number`,modelValue:w(Q),"onUpdate:modelValue":n[13]||=e=>o(Q)?Q.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-20`},null,8,[`modelValue`]),b(`span`,Ge,d(w(t)(`logs.cleanup.noAutoCleanup`)),1)]),b(`div`,Ke,[s(w(v),{size:`sm`,onClick:w(rt),disabled:w(nt)},{default:S(()=>[m(d(w(t)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])])]),s(w(ce),null,{default:S(()=>[s(w(v),{variant:`outline`,onClick:n[14]||=e=>W.value=!1},{default:S(()=>[m(d(w(t)(`common.cancel`)),1)]),_:1}),s(w(v),{variant:`destructive`,onClick:w(Qe)},{default:S(()=>[m(d(w(t)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),s(w(me),{open:w(G),"onUpdate:open":n[17]||=e=>o(G)?G.value=e:null},{default:S(()=>[s(w(pe),null,{default:S(()=>[s(w(fe),null,{default:S(()=>[s(w(he),null,{default:S(()=>[m(d(w(t)(`logs.cleanupResult.title`)),1)]),_:1}),s(w(ve),null,{default:S(()=>[m(d(w(t)(`logs.cleanupResult.description`,{count:w(Ce)})),1)]),_:1})]),_:1}),s(w(_e),null,{default:S(()=>[s(w(ye),{onClick:n[16]||=e=>G.value=!1},{default:S(()=>[m(d(w(t)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{X as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,I as t,J as n,K as r,Mt as i,N as a,Q as o,Vt as s,W as c,Wt as l,X as u,Y as d,Z as f,dt as p,n as m,pt as h,q as g,wt as _,zt as v}from"./button-DRFSckEU.js";import{t as y}from"./trash-2-DZ6KuutY.js";import{i as b,n as x,r as S,t as C}from"./TooltipTrigger-D4gYyjGF.js";import{_ as w,tt as T,v as E,y as D}from"./index-Dr-BkaVu.js";import{t as O}from"./Input-glS226Q6.js";var k=a(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),A=a(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),ee=a(`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`}]]),j=a(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),M=a(`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`}]]),N=[`onMouseenter`],P={class:`truncate max-w-40`},F={key:0,class:`ml-1 text-[10px] px-1 py-px rounded bg-emerald-500/15 text-emerald-400 shrink-0`},I=[`onMouseenter`],L=[`onClick`],R={class:`truncate`},z={key:0,class:`shrink-0 text-xs text-muted-foreground`},B={key:0,class:`px-2 py-1.5 text-sm text-muted-foreground`},V=e({__name:`CascadingSelect`,props:{groups:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(e,{emit:a}){let{t:f}=t(),m=e,y=r(()=>m.placeholder||f(`common.selectPlaceholder`)),b=a,x=i(!1),S=i(null),C=r(()=>{if(!m.modelValue)return``;let e=m.groups.find(e=>e.key===m.modelValue.groupKey);if(!e)return``;let t=e.options.find(e=>e.value===m.modelValue.value);return t?`${e.label} / ${t.label}`:``});function O(e,t){b(`update:modelValue`,{groupKey:e,value:t}),x.value=!1}function k(e){x.value=e,e||(S.value=null)}return(t,r)=>(p(),n(v(D),{open:x.value,"onUpdate:open":k},{default:_(()=>[o(v(w),{"as-child":``},{default:_(()=>[g(`div`,{class:s([`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background cursor-pointer hover:bg-accent hover:text-accent-foreground`,[e.compact?`h-8 text-xs px-2.5 py-1`:`h-10 text-sm px-3 py-2`,{"ring-2 ring-ring ring-offset-2":x.value}]])},[g(`span`,{class:s([`truncate`,e.modelValue?`text-foreground`:`text-muted-foreground`])},l(C.value||y.value),3),o(v(T),{class:`h-4 w-4 shrink-0 opacity-50`})],2)]),_:1}),o(v(E),{align:`start`,"side-offset":4,class:`z-[200] w-auto min-w-56 overflow-visible p-1`},{default:_(()=>[(p(!0),u(c,null,h(e.groups,t=>(p(),u(`div`,{key:t.key,class:s([`relative flex cursor-pointer items-center justify-between rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground z-10":S.value===t.key}]),onMouseenter:e=>S.value=t.key},[g(`span`,P,l(t.label),1),t.badge?(p(),u(`span`,F,l(t.badge),1)):d(``,!0),o(v(A),{class:`ml-1 h-4 w-4 shrink-0 opacity-50`}),S.value===t.key&&t.options.length>0?(p(),u(`div`,{key:1,class:`absolute left-full top-0 ml-0.5 min-w-48 rounded-md border bg-popover p-1 text-popover-foreground shadow-md`,onMouseenter:e=>S.value=t.key},[(p(!0),u(c,null,h(t.options,n=>(p(),u(`div`,{key:n.value,class:s([`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground":e.modelValue?.groupKey===t.key&&e.modelValue?.value===n.value}]),onClick:e=>O(t.key,n.value)},[g(`span`,R,l(n.label),1),n.tag?(p(),u(`span`,z,l(n.tag),1)):d(``,!0)],10,L))),128))],40,I)):d(``,!0)],42,N))),128)),e.groups.length===0?(p(),u(`div`,B,l(v(f)(`common.noOptions`)),1)):d(``,!0)]),_:1})]),_:1},8,[`open`]))}}),H=e({__name:`CascadingModelSelect`,props:{providers:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:i}){let{t:a}=t(),o=e,s=r(()=>o.placeholder||a(`mappings.selectProviderModel`)),c=i;function l(e){return e>=1e6?`${e/1e6}M`:`${e/1e3}K`}let u=r(()=>o.providers.map(e=>({key:e.provider.id,label:e.provider.name,badge:e.isNew?a(`common.new`):void 0,options:e.models.map(e=>({value:e.name,label:e.name,tag:l(e.contextWindow)}))}))),d=r(()=>o.modelValue?{groupKey:o.modelValue.provider_id,value:o.modelValue.model}:void 0);function f(e){c(`update:modelValue`,{provider_id:e.groupKey,model:e.value})}return(t,r)=>(p(),n(V,{groups:u.value,"model-value":d.value,placeholder:s.value,compact:e.compact,"onUpdate:modelValue":f},null,8,[`groups`,`model-value`,`placeholder`,`compact`]))}}),U={key:0,class:`flex items-start gap-3`},W=[`title`],G={class:`flex-1 flex flex-col gap-0 min-w-0`},K={class:`font-mono truncate`},q={class:`text-[10px] px-1 py-px rounded bg-muted/50 text-muted-foreground/50 shrink-0`},J={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`},Y={key:0,class:`flex items-center gap-1 pl-5 py-0.5`},X={class:`text-[9px] text-orange-400/50`},Z={key:0,class:`flex items-center gap-1.5 mt-1 pt-1.5 border-t border-dashed border-primary/10`},Q={class:`text-[10px] text-primary/30`},te={class:`font-mono text-xs text-primary/50`},ne={key:1,class:`space-y-1.5`},re={key:0,class:`flex items-center gap-2`},ie={key:1,class:`flex items-center gap-2 px-2.5 py-1.5 rounded-md bg-muted/20 border border-border/50`},ae={class:`font-mono text-sm font-medium text-foreground truncate`},oe={class:`flex items-center gap-2`},se={class:`flex-1`},ce={key:0,class:`flex items-center gap-1 pl-8 py-0.5`},le={class:`text-[9px] text-orange-400/50`},$={class:`pt-2 mt-1 border-t border-dashed border-primary/15 space-y-1.5`},ue={key:0,class:`flex items-center gap-2`},de={class:`text-[10px] w-6 text-center px-1 py-0.5 rounded bg-primary/10 text-primary/70 shrink-0`},fe={class:`flex-1`},pe={key:1,class:`flex items-center gap-1.5`},me=e({__name:`MappingEntryEditor`,props:{entry:{},providerGroups:{},expanded:{type:Boolean},editable:{type:Boolean,default:!0},editableClientModel:{type:Boolean,default:!1}},emits:[`update:targets`,`update:clientModel`],setup(e,{emit:r}){let{t:i}=t(),a=e,w=r;function T(e){return a.providerGroups.find(t=>t.provider.id===e)?.provider.name??e.slice(0,6)}function E(e,t){return a.providerGroups.find(t=>t.provider.id===e)?.models.find(e=>e.name===t)?.streamTimeoutMs}function D(){let e=a.providerGroups[0];w(`update:targets`,[...a.entry.targets,{backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``}])}function A(){let e=a.providerGroups[0];w(`update:targets`,a.entry.targets.map((t,n)=>n===0?{...t,overflow_provider_id:e?.provider.id??``,overflow_model:e?.models[0]?.name??``}:t))}function N(e){a.entry.targets.length<=1||w(`update:targets`,a.entry.targets.filter((t,n)=>n!==e))}function P(e,t){let n=[...a.entry.targets];n[e]={...n[e],provider_id:t.provider_id,backend_model:t.model},w(`update:targets`,n)}function F(e){w(`update:targets`,a.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(t,r)=>(p(),u(`div`,null,[e.expanded?(p(),u(`div`,ne,[e.editableClientModel?(p(),u(`div`,re,[r[5]||=g(`span`,{class:`text-[10px] text-muted-foreground/60 shrink-0 w-6 text-center`},`Client`,-1),o(v(O),{"model-value":e.entry.clientModel,class:`h-7 flex-1 text-xs font-mono`,placeholder:v(i)(`providers.shared.clientModel`),"onUpdate:modelValue":r[0]||=e=>w(`update:clientModel`,String(e))},null,8,[`model-value`,`placeholder`])])):(p(),u(`div`,ie,[r[6]||=g(`span`,{class:`text-[10px] text-muted-foreground/60 shrink-0`},`Client`,-1),g(`span`,ae,l(e.entry.clientModel),1)])),(p(!0),u(c,null,h(e.entry.targets,(t,a)=>(p(),u(`div`,{key:a},[g(`div`,oe,[g(`span`,{class:s([`text-xs font-medium shrink-0 w-6 text-center px-1 py-0.5 rounded`,a===0?`bg-primary/10 text-primary`:`bg-muted/30 text-muted-foreground`])},l(a===0?`①`:a===1?`②`:a===2?`③`:`${a+1}`),3),g(`div`,se,[o(H,{providers:e.providerGroups,"model-value":{provider_id:t.provider_id,model:t.backend_model},compact:``,placeholder:v(i)(`providers.shared.selectModel`),"onUpdate:modelValue":e=>P(a,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),a>0&&e.entry.targets.length>1?(p(),n(v(m),{key:0,type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:e=>N(a)},{default:_(()=>[o(v(y),{class:`size-3`})]),_:1},8,[`onClick`])):d(``,!0)]),a<e.entry.targets.length-1?(p(),u(`div`,ce,[r[7]||=g(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),g(`span`,le,l(v(i)(`providers.shared.switchOnFail`)),1)])):d(``,!0)]))),128)),o(v(m),{type:`button`,variant:`ghost`,size:`sm`,class:`w-full text-xs text-muted-foreground/50`,onClick:D},{default:_(()=>[o(v(j),{class:`w-3 h-3 mr-1`}),f(` `+l(e.entry.targets.length===0?v(i)(`providers.shared.addMappingModel`):v(i)(`providers.shared.addFailover`)),1)]),_:1}),g(`div`,$,[e.entry.targets[0]?.overflow_model?(p(),u(`div`,ue,[g(`span`,de,l(v(i)(`providers.shared.overflow`)),1),g(`div`,fe,[o(H,{providers:e.providerGroups,"model-value":e.entry.targets[0]?.overflow_provider_id&&e.entry.targets[0]?.overflow_model?{provider_id:e.entry.targets[0].overflow_provider_id,model:e.entry.targets[0].overflow_model}:void 0,compact:``,placeholder:v(i)(`providers.shared.overflowPlaceholder`),"onUpdate:modelValue":r[1]||=e=>F(e)},null,8,[`providers`,`model-value`,`placeholder`])]),o(v(m),{type:`button`,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/40 hover:text-destructive`,onClick:r[2]||=e=>F(void 0)},{default:_(()=>[o(v(y),{class:`size-3`})]),_:1})])):(p(),u(`div`,pe,[o(v(m),{type:`button`,variant:`ghost`,size:`sm`,class:`text-xs text-muted-foreground/50`,onClick:A},{default:_(()=>[o(v(j),{class:`w-3 h-3 mr-1`}),f(` `+l(v(i)(`providers.shared.addOverflow`)),1)]),_:1}),o(v(x),{"delay-duration":200},{default:_(()=>[o(v(b),null,{default:_(()=>[o(v(C),{"as-child":``},{default:_(()=>[o(v(ee),{class:`size-3 text-muted-foreground/30 cursor-help`})]),_:1}),o(v(S),{side:`top`,class:`max-w-[240px] text-xs`},{default:_(()=>[f(l(v(i)(`providers.shared.overflowTooltip`)),1)]),_:1})]),_:1})]),_:1})]))])])):(p(),u(`div`,U,[g(`span`,{class:`min-w-[90px] font-mono text-sm font-semibold text-foreground shrink-0 truncate`,title:e.entry.clientModel},l(e.entry.clientModel),9,W),o(v(k),{class:`size-3.5 mt-0.5 shrink-0 text-muted-foreground/30`}),g(`div`,G,[(p(!0),u(c,null,h(e.entry.targets,(t,n)=>(p(),u(`div`,{key:n},[g(`div`,{class:s([`flex items-center gap-1.5 px-2.5 py-1 rounded-md text-sm`,n===0?`bg-primary/10 border border-primary/20 text-primary`:`bg-muted/30 border border-border text-muted-foreground`])},[g(`span`,{class:s([`text-[10px] font-semibold w-3.5 text-center`,n===0?`text-primary`:`text-muted-foreground`])},l(n===0?`①`:n===1?`②`:n===2?`③`:`${n+1}`),3),g(`span`,K,l(t.backend_model),1),g(`span`,q,l(T(t.provider_id)),1),E(t.provider_id,t.backend_model)?(p(),u(`span`,J,[o(v(M),{class:`size-2.5`}),f(` `+l(Math.round(E(t.provider_id,t.backend_model)/1e3))+`s `,1)])):d(``,!0)],2),n<e.entry.targets.length-1?(p(),u(`div`,Y,[r[3]||=g(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),g(`span`,X,l(v(i)(`providers.shared.switchOnFail`)),1)])):d(``,!0)]))),128)),e.entry.targets[0]?.overflow_model?(p(),u(`div`,Z,[r[4]||=g(`span`,{class:`text-[10px] text-primary/40 w-3.5 text-center`},`⤵`,-1),g(`span`,Q,l(v(i)(`providers.shared.overflow`)),1),g(`span`,te,l(e.entry.targets[0].overflow_model),1)])):d(``,!0)])]))]))}});export{j as n,k as r,me as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{$ as e,I as t,J as n,K as r,Mt as i,Q as a,Vt as o,W as s,Wt as c,X as l,Y as u,Z as d,dt as f,n as p,pt as m,q as h,r as g,wt as _,zt as v}from"./button-DRFSckEU.js";import{t as y}from"./trash-2-DZ6KuutY.js";import{n as b,t as x}from"./CollapsibleContent-BjJrE5cf.js";import{f as S,g as C,h as w,m as T,p as E,tt as D}from"./index-Dr-BkaVu.js";import{t as O}from"./Input-glS226Q6.js";var k=[{id:`claude-code`,name:`Claude Code`,icon:`C`,iconClass:`cc`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.claudeCodeDesc`},{id:`pi`,name:`Pi`,icon:`P`,iconClass:`pi`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.piDesc`},{id:`openai-sdk`,name:`OpenAI SDK`,icon:`OA`,iconClass:`oa`,format:`openai`,defaultProvider:`DeepSeek`,defaultPlan:`OpenAI`,descriptionKey:`quickSetup.client.openaiSdkDesc`},{id:`anthropic-sdk`,name:`Anthropic SDK`,icon:`AN`,iconClass:`an`,format:`anthropic`,defaultProvider:`DeepSeek`,defaultPlan:`Anthropic`,descriptionKey:`quickSetup.client.anthropicSdkDesc`}],A=[{key:`deepseek_anthropic`,labelKey:`quickSetup.patch.deepseekAnthropic`,items:[{id:`thinking-param`,nameKey:`quickSetup.patch.thinkingParam`,descKey:`quickSetup.patch.thinkingParamDesc`},{id:`cache-control`,nameKey:`quickSetup.patch.cacheControl`,descKey:`quickSetup.patch.cacheControlDesc`},{id:`thinking-blocks`,nameKey:`quickSetup.patch.thinkingBlocks`,descKey:`quickSetup.patch.thinkingBlocksDesc`},{id:`orphan-tool-results`,nameKey:`quickSetup.patch.orphanToolResult`,descKey:`quickSetup.patch.orphanToolResultDesc`}]},{key:`deepseek_openai`,labelKey:`quickSetup.patch.deepseekOpenai`,items:[{id:`non-ds-tools`,nameKey:`quickSetup.patch.nonDsTools`,descKey:`quickSetup.patch.nonDsToolsDesc`},{id:`orphan-tool-results-oa`,nameKey:`quickSetup.patch.orphanToolResultOa`,descKey:`quickSetup.patch.orphanToolResultOaDesc`}]},{key:`general`,labelKey:`quickSetup.patch.general`,items:[{id:`developer-role`,nameKey:`quickSetup.patch.developerRole`,descKey:`quickSetup.patch.developerRoleDesc`}]}],j=[{label:`8K`,value:8e3},{label:`16K`,value:16e3},{label:`32K`,value:32e3},{label:`64K`,value:64e3},{label:`128K`,value:128e3},{label:`160K`,value:16e4},{label:`200K`,value:2e5},{label:`256K`,value:256e3},{label:`1M`,value:1e6}],M=1e6,N=128e3,P=32e3,F=8e3;function I(e){let t=e.toLowerCase();return t.includes(`v4`)||t.includes(`v3.2`)||t.includes(`r1`)||t.includes(`reasoner`)||t.includes(`qwen3.6`)?M:t.includes(`128k`)?N:t.includes(`32k`)?P:t.includes(`8k`)?F:N}var L={"claude-code":[`sonnet`,`opus`,`haiku`],"openai-sdk":[`gpt-5.1`,`gpt-4.1`,`o3`,`o4-mini`],"anthropic-sdk":[`claude-sonnet-4-20250514`,`claude-opus-4-20250116`,`claude-haiku-4-20250414`]},R={class:`space-y-3`},z={class:`mb-1.5 text-xs font-medium text-[var(--muted-foreground)]`},B={class:`flex flex-wrap gap-1.5`},V=[`title`,`onClick`],H=e({__name:`PatchChips`,props:{apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean},modelValue:{}},emits:[`update:modelValue`],setup(e,{emit:n}){let{t:i}=t(),a=e,u=n,p=r(()=>A.filter(e=>e.key===`deepseek_anthropic`?a.isDeepSeek&&a.apiType===`anthropic`:e.key===`deepseek_openai`?a.isDeepSeek&&a.apiType===`openai`:e.key===`general`?a.apiType===`openai`&&a.isNonOpenaiEndpoint:!0));function _(e){u(`update:modelValue`,a.modelValue.includes(e)?a.modelValue.filter(t=>t!==e):[...a.modelValue,e])}function y(e){return a.modelValue.includes(e)}return(e,t)=>(f(),l(`div`,R,[(f(!0),l(s,null,m(p.value,e=>(f(),l(`div`,{key:e.key},[h(`p`,z,c(v(i)(e.labelKey)),1),h(`div`,B,[(f(!0),l(s,null,m(e.items,e=>(f(),l(`button`,{key:e.id,type:`button`,title:v(i)(e.descKey),class:o(v(g)(`inline-flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs font-medium transition-all cursor-pointer select-none`,y(e.id)?`border-[var(--ring)] bg-[var(--primary)]/10 text-[var(--primary)]`:`border-[var(--border)] bg-transparent text-[var(--muted-foreground)] hover:border-[var(--muted-foreground)] hover:text-[var(--foreground)]`)),onClick:t=>_(e.id)},[h(`span`,{class:o(v(g)(`size-1.5 rounded-full transition-colors`,y(e.id)?`bg-[var(--primary)]`:`bg-[var(--border)]`))},null,2),d(` `+c(v(i)(e.nameKey)),1)],10,V))),128))])]))),128))]))}}),U={class:`rounded-lg border border-border bg-card px-3 py-2.5 transition-colors`},W={class:`flex items-center gap-2`},G=[`title`],K={class:`flex items-center gap-1 shrink-0`},q=e({__name:`ModelCard`,props:{model:{},apiType:{},isDeepSeek:{type:Boolean},isNonOpenaiEndpoint:{type:Boolean}},emits:[`update:model`,`remove`],setup(e,{emit:k}){let{t:A}=t(),M=e,N=k,P=i(!1),F=r(()=>j.find(e=>e.value===M.model.contextWindow)),I=r(()=>!!F.value);function L(e){let t=e;if(t===`__custom__`)return;let n=parseInt(t,10);isNaN(n)||N(`update:model`,{...M.model,contextWindow:n})}function R(e){let t=parseInt(e,10);!isNaN(t)&&t>0&&N(`update:model`,{...M.model,contextWindow:t})}function z(e){N(`update:model`,{...M.model,patches:e})}function B(e){return e>=1e6?`${e/1e6}M`:e>=1e3?`${e/1e3}K`:String(e)}return(t,r)=>(f(),l(`div`,U,[h(`div`,W,[h(`span`,{class:`truncate text-xs font-medium text-foreground min-w-0 flex-1`,title:e.model.name},c(e.model.name),9,G),h(`div`,K,[a(v(C),{"model-value":I.value?String(e.model.contextWindow):`__custom__`,"onUpdate:modelValue":L},{default:_(()=>[a(v(E),{class:`h-7 w-[72px] text-xs`},{default:_(()=>[a(v(S),null,{default:_(()=>[d(c(I.value?F.value.label:B(e.model.contextWindow)),1)]),_:1})]),_:1}),a(v(w),null,{default:_(()=>[(f(!0),l(s,null,m(v(j),e=>(f(),n(v(T),{key:e.value,value:String(e.value)},{default:_(()=>[d(c(e.label),1)]),_:2},1032,[`value`]))),128)),a(v(T),{value:`__custom__`},{default:_(()=>[d(c(v(A)(`quickSetup.model.contextCustom`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`]),I.value?u(``,!0):(f(),n(v(O),{key:0,"model-value":String(e.model.contextWindow),type:`number`,min:`1`,class:`h-7 w-20 text-xs text-right [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,"onUpdate:modelValue":r[0]||=e=>R(e)},null,8,[`model-value`]))]),h(`button`,{type:`button`,class:`inline-flex items-center gap-0.5 text-[10px] text-muted-foreground hover:text-foreground transition-colors cursor-pointer select-none shrink-0`,onClick:r[1]||=e=>P.value=!P.value},[a(v(D),{class:o(v(g)(`size-3 transition-transform`,P.value?`rotate-0`:`-rotate-90`))},null,8,[`class`]),d(` `+c(e.model.patches.length>0?e.model.patches.length:``),1)]),a(v(p),{variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground hover:text-destructive shrink-0`,onClick:r[2]||=e=>t.$emit(`remove`)},{default:_(()=>[a(v(y),{class:`size-3`})]),_:1})]),a(v(b),{open:P.value,"onUpdate:open":r[3]||=e=>P.value=e},{default:_(()=>[a(v(x),{class:`pt-1.5`},{default:_(()=>[a(H,{"api-type":e.apiType,"is-deep-seek":e.isDeepSeek,"is-non-openai-endpoint":e.isNonOpenaiEndpoint,"model-value":e.model.patches,"onUpdate:modelValue":z},null,8,[`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`model-value`])]),_:1})]),_:1},8,[`open`])]))}});export{I as i,k as n,L as r,q as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,I as n,J as r,K as i,Mt as a,Q as o,U as s,Vt as c,W as l,Wt as u,X as d,Y as f,Z as p,dt as m,k as h,lt as g,n as _,pt as v,q as y,wt as b,xt as x,zt as S}from"./button-DRFSckEU.js";import{n as C,t as w}from"./MappingEntryEditor-auxWvl8S.js";import{t as T}from"./trash-2-DZ6KuutY.js";import{t as E}from"./Switch-BwPbL6O4.js";import{a as D,c as O,d as k,i as A,l as j,o as M,r as N,s as P}from"./index-Dr-BkaVu.js";import"./constants-yM0YwP2s.js";var F={class:`flex-1 min-w-0`},I={class:`flex flex-col items-end gap-1.5 shrink-0 pt-0.5`},L={class:`flex items-center gap-2`},R={key:0,class:`text-[10px] px-1.5 py-0.5 rounded border border-orange-400/30 text-orange-400/60`},z={key:0,class:`flex items-center justify-end gap-2 px-4 py-2 border-t border-border/50`},B=e({__name:`ModelMappingCard`,props:{entry:{},providerGroups:{},editableClientModel:{type:Boolean},defaultExpanded:{type:Boolean,default:!1}},emits:[`saved`,`deleted`,`cancel-add`],setup(e,{emit:g}){let{t:v}=n(),C=e,B=g,V=a(``);x(()=>C.entry.clientModel,e=>{V.value=e},{immediate:!0});let H=a(C.defaultExpanded),U=a([]),W=a(!1),G=a(!1);x(H,e=>{e&&(U.value=C.entry.targets.map(e=>({...e})))}),x(()=>C.entry.targets,e=>{H.value&&(U.value=e.map(e=>({...e})))},{deep:!0});let K=i(()=>H.value?{...C.entry,targets:U.value}:C.entry);function q(e){U.value=e}function J(e){V.value=e}async function Y(){W.value=!0;try{let e=C.editableClientModel?V.value.trim():C.entry.clientModel;if(!e)return;let t=JSON.stringify({targets:U.value});C.entry.existingId?await h.updateMappingGroup(C.entry.existingId,{client_model:e,rule:t}):await h.createMappingGroup({client_model:e,rule:t}),H.value=!1,B(`saved`),N.success(v(`common.saveSuccess`))}catch(e){N.error(t(e,v(`mappings.messages.saveFailed`)))}finally{W.value=!1}}function X(){C.editableClientModel?B(`cancel-add`):H.value=!1}async function Z(){try{C.entry.existingId&&await h.toggleMappingGroup(C.entry.existingId),B(`saved`)}catch(e){N.error(t(e,v(`mappings.messages.toggleFailed`)))}}function Q(){G.value=!1,B(`deleted`,C.entry.clientModel)}return(t,n)=>(m(),d(l,null,[y(`div`,{class:c([`rounded-lg border transition-colors`,H.value?`border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`])},[y(`div`,{class:c([`flex items-start gap-2 px-4 py-3`,{"cursor-pointer":!H.value}]),onClick:n[2]||=e=>!H.value&&(H.value=!0)},[y(`div`,F,[o(w,{entry:K.value,"provider-groups":e.providerGroups,expanded:H.value,editable:!0,"editable-client-model":e.editableClientModel,"onUpdate:targets":q,"onUpdate:clientModel":J},null,8,[`entry`,`provider-groups`,`expanded`,`editable-client-model`])]),y(`div`,I,[y(`div`,L,[e.entry.targets.length>1?(m(),d(`span`,R,u(S(v)(`providers.shared.level`,{count:e.entry.targets.length})),1)):f(``,!0),e.editableClientModel?f(``,!0):(m(),r(S(_),{key:1,variant:`ghost`,size:`icon-xs`,class:`text-muted-foreground/40 hover:text-destructive`,onClick:n[0]||=s(e=>G.value=!0,[`stop`])},{default:b(()=>[o(S(T),{class:`size-3`})]),_:1})),e.editableClientModel?f(``,!0):(m(),r(S(E),{key:2,"model-value":e.entry.active,"onUpdate:modelValue":Z,class:`scale-75`,onClick:n[1]||=s(()=>{},[`stop`])},null,8,[`model-value`]))])])],2),H.value?(m(),d(`div`,z,[o(S(_),{size:`sm`,variant:`outline`,onClick:X},{default:b(()=>[p(u(S(v)(`common.cancel`)),1)]),_:1}),o(S(_),{size:`sm`,disabled:W.value,onClick:Y},{default:b(()=>[p(u(W.value?S(v)(`common.saving`):S(v)(`common.save`)),1)]),_:1},8,[`disabled`])])):f(``,!0)],2),o(S(k),{open:G.value,"onUpdate:open":n[3]||=e=>{e||(G.value=!1)}},{default:b(()=>[o(S(O),null,{default:b(()=>[o(S(D),null,{default:b(()=>[o(S(A),null,{default:b(()=>[p(u(S(v)(`common.confirmDelete`)),1)]),_:1}),o(S(P),null,{default:b(()=>[p(u(S(v)(`mappings.confirmDeleteDesc`,{model:e.entry.clientModel})),1)]),_:1})]),_:1}),o(S(M),null,{default:b(()=>[o(S(j),null,{default:b(()=>[p(u(S(v)(`common.cancel`)),1)]),_:1}),o(S(_),{variant:`destructive`,onClick:Q},{default:b(()=>[p(u(S(v)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])],64))}}),V={class:`p-6 space-y-3`},H={class:`flex items-center justify-between`},U={class:`text-lg font-semibold text-foreground`},W={class:`flex gap-2 mt-1`},G={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},K={class:`text-[11px] px-2 py-0.5 rounded-full bg-muted/40 text-muted-foreground`},q={class:`grid grid-cols-3 gap-3`},J={key:0,class:`py-8 text-center text-xs text-muted-foreground`},Y=e({__name:`ModelMappings`,setup(e){let{t:s}=n(),c=a([]),x=a([]),w=a([]),T=a(!1),E=i(()=>w.value.filter(e=>e.active).length),D=i(()=>x.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=i(()=>({clientModel:``,targets:[{backend_model:``,provider_id:x.value[0]?.id??``}],existing:!1,tag:`cust`,active:!0}));function k(){return c.value.map(e=>{let t={};try{let n=JSON.parse(e.rule);t=n.default&&!n.targets?{targets:[n.default]}:n}catch(e){console.warn(`Failed to parse rule:`,e)}let n=(t.targets??[]).map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||``,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model}));return{clientModel:e.client_model,targets:n.length>0?n:[{backend_model:``,provider_id:x.value[0]?.id??``}],existing:!0,existingId:e.id,tag:`existing`,active:!!e.is_active,originalActive:!!e.is_active}})}async function A(){let e=await Promise.allSettled([h.getMappingGroups(),h.getProviders()]);e[0].status===`fulfilled`&&(c.value=e[0].value),e[1].status===`fulfilled`&&(x.value=e[1].value),w.value=k()}function j(){T.value=!1,A()}async function M(e){let n=w.value.find(t=>t.clientModel===e);if(n?.existingId)try{await h.deleteMappingGroup(n.existingId),await A(),N.success(s(`common.saveSuccess`))}catch(n){N.error(t(n,s(`mappings.messages.deleteFailed`,{model:e})))}}return g(A),(e,t)=>(m(),d(`div`,V,[y(`div`,H,[y(`div`,null,[y(`h2`,U,u(S(s)(`mappings.title`)),1),y(`div`,W,[y(`span`,G,u(S(s)(`mappings.totalMappings`,{count:w.value.length})),1),y(`span`,K,u(S(s)(`mappings.enabledCount`,{count:E.value})),1)])]),T.value?f(``,!0):(m(),r(S(_),{key:0,size:`sm`,variant:`outline`,onClick:t[0]||=e=>T.value=!0},{default:b(()=>[o(S(C),{class:`w-3.5 h-3.5 mr-1`}),p(` `+u(S(s)(`providers.shared.add`)),1)]),_:1}))]),y(`div`,q,[(m(!0),d(l,null,v(w.value,e=>(m(),r(B,{key:e.clientModel,entry:e,"provider-groups":D.value,onSaved:A,onDeleted:M},null,8,[`entry`,`provider-groups`]))),128)),T.value?(m(),r(B,{key:0,entry:O.value,"provider-groups":D.value,"editable-client-model":!0,"default-expanded":!0,onSaved:j,onCancelAdd:t[1]||=e=>T.value=!1},null,8,[`entry`,`provider-groups`])):f(``,!0)]),w.value.length===0&&!T.value?(m(),d(`p`,J,u(S(s)(`providers.shared.noMappings`)),1)):f(``,!0)]))}});export{Y as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,I as t,J as n,K as r,Mt as i,Ot as a,Q as o,U as s,Ut as c,Vt as l,W as u,Wt as d,X as f,Y as p,Z as m,dt as h,k as g,lt as _,n as v,pt as y,q as b,ut as x,wt as S,xt as C,zt as w}from"./button-DRFSckEU.js";import{n as T,t as ee}from"./UnifiedRequestDialog-rmWxp09D.js";import{t as E}from"./copy-BsWNnxok.js";import{i as D,n as O,r as k,t as A}from"./TooltipTrigger-D4gYyjGF.js";import{c as j,d as te,f as M,l as N,s as P,u as F}from"./dialog-DxoN_Irc.js";import{b as I,ct as L,nt as R}from"./index-Dr-BkaVu.js";import{n as z,t as B}from"./CardContent-DmBQARma.js";import{n as V,t as H}from"./CardTitle-DgwtSVqy.js";import{t as ne}from"./useClipboard-B0s-K67s.js";var U={class:`grid grid-cols-2 lg:grid-cols-4 gap-4 mb-6`},W={class:`text-sm text-muted-foreground`},G={class:`text-2xl font-bold text-foreground mt-1`},K={class:`text-xs text-muted-foreground mt-1`},q={class:`text-sm text-muted-foreground`},re={class:`text-2xl font-bold text-foreground mt-1`},ie={class:`text-xs text-muted-foreground mt-1`},ae={class:`text-sm text-muted-foreground`},oe={class:`text-2xl font-bold text-foreground mt-1`},J={class:`text-xs text-muted-foreground mt-1`},Y={class:`text-sm text-muted-foreground`},X={class:`text-2xl font-bold text-foreground mt-1`},Z={class:`text-xs text-muted-foreground mt-1`},se=e({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{}},setup(e){let{t:n}=t(),i=e,a=r(()=>!i.stats||i.stats.totalRequests===0?`0.0`:(i.stats.errorCount/i.stats.totalRequests*100).toFixed(1)),s=r(()=>!i.stats||i.stats.totalRequests===0?`0.0`:(i.stats.retryCount/i.stats.totalRequests*100).toFixed(1)),c=r(()=>i.stats?i.stats.p50LatencyMs.toFixed(0):`--`);return(t,r)=>(h(),f(`div`,U,[o(w(z),null,{default:S(()=>[o(w(B),{class:`p-4`},{default:S(()=>[b(`p`,W,d(w(n)(`monitor.header.activeRequests`)),1),b(`p`,G,d(e.activeCount),1),b(`p`,K,d(w(n)(`monitor.header.streamNonStream`,{stream:e.streamCount,nonStream:e.activeCount-e.streamCount})),1)]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(B),{class:`p-4`},{default:S(()=>[b(`p`,q,d(w(n)(`monitor.header.errorRate`)),1),b(`p`,re,d(a.value)+`%`,1),b(`p`,ie,d(e.stats?.errorCount??0)+` / `+d(e.stats?.totalRequests??0),1)]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(B),{class:`p-4`},{default:S(()=>[b(`p`,ae,d(w(n)(`monitor.header.p50Latency`)),1),b(`p`,oe,d(c.value)+`ms`,1),b(`p`,J,d(w(n)(`monitor.header.avgLatency`,{value:e.stats?.avgLatencyMs?.toFixed(0)??`--`})),1)]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(B),{class:`p-4`},{default:S(()=>[b(`p`,Y,d(w(n)(`monitor.header.retryRate`)),1),b(`p`,X,d(s.value)+`%`,1),b(`p`,Z,d(e.stats?.retryCount??0)+` / `+d(e.stats?.totalRequests??0),1)]),_:1})]),_:1})]))}}),Q={class:`space-y-3`},ce={key:0,class:`text-sm text-muted-foreground`},le={class:`flex items-center justify-between text-sm`},ue={class:`font-medium text-foreground`},de={class:`text-muted-foreground`},fe={class:`text-xs`},pe={key:0,class:`h-2 bg-muted rounded-full overflow-hidden`},me={key:1,class:`flex gap-3 text-xs text-muted-foreground`},he=e({__name:`ConcurrencyPanel`,props:{providers:{}},setup(e){let{t:n}=t();function r(e){return e.adaptiveLimit??e.maxConcurrency}function i(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(t,a)=>(h(),f(`div`,Q,[e.providers.length===0?(h(),f(`div`,ce,d(w(n)(`monitor.concurrencyPanel.noData`)),1)):p(``,!0),(h(!0),f(u,null,y(e.providers,e=>(h(),f(`div`,{key:e.providerId,class:`space-y-1`},[b(`div`,le,[b(`span`,ue,d(e.providerName),1),b(`span`,de,[e.adaptiveEnabled?(h(),f(u,{key:0},[m(d(e.active)+` / `+d(e.adaptiveLimit??e.maxConcurrency)+` `,1),b(`span`,fe,`(`+d(w(n)(`monitor.concurrencyPanel.adaptive`))+`)`,1)],64)):e.maxConcurrency===0?(h(),f(u,{key:1},[m(d(w(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(h(),f(u,{key:2},[m(d(e.active)+` / `+d(e.maxConcurrency),1)],64))])]),e.maxConcurrency>0?(h(),f(`div`,pe,[b(`div`,{class:l([`h-full rounded-full transition-all duration-300`,i(e.active,r(e))]),style:c({width:`${Math.min(100,e.active/r(e)*100)}%`})},null,6)])):p(``,!0),e.maxConcurrency>0?(h(),f(`div`,me,[b(`span`,null,d(w(n)(`monitor.concurrencyPanel.queued`,{count:e.queued})),1),b(`span`,null,d(w(n)(`monitor.concurrencyPanel.queueLimit`,{limit:e.adaptiveLimit??e.maxQueueSize})),1)])):p(``,!0)]))),128))]))}}),ge={key:0,class:`text-sm text-muted-foreground`},_e={key:1,class:`grid grid-cols-2 gap-3 text-sm`},ve={class:`text-muted-foreground`},ye={class:`font-medium text-foreground`},be={class:`text-muted-foreground`},xe={class:`font-medium text-foreground`},Se={class:`col-span-2`},Ce={class:`flex items-center justify-between`},we={class:`text-muted-foreground`},Te={class:`text-muted-foreground`},Ee={class:`h-2 bg-muted rounded-full overflow-hidden mt-1`},De={class:`text-muted-foreground`},Oe={class:`font-medium text-foreground`},ke={class:`text-muted-foreground`},Ae={class:`font-medium text-foreground`},je={class:`col-span-2`},Me={class:`text-muted-foreground`},Ne={class:`font-medium text-foreground`},Pe=e({__name:`RuntimePanel`,props:{runtime:{}},setup(e){let{t:n}=t(),i=e,a=r(()=>!i.runtime||i.runtime.memoryUsage.heapTotal===0?0:Math.min(100,i.runtime.memoryUsage.heapUsed/i.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`}function s(e){return e<1024?`${e}B`:e<1024*1024?`${(e/1024).toFixed(1)}KB`:`${(e/(1024*1024)).toFixed(1)}MB`}return(t,r)=>e.runtime?(h(),f(`div`,_e,[b(`div`,null,[b(`p`,ve,d(w(n)(`monitor.runtimePanel.uptime`)),1),b(`p`,ye,d(o(e.runtime.uptimeMs)),1)]),b(`div`,null,[b(`p`,be,d(w(n)(`monitor.runtimePanel.memoryRss`)),1),b(`p`,xe,d(s(e.runtime.memoryUsage.rss)),1)]),b(`div`,Se,[b(`div`,Ce,[b(`p`,we,d(w(n)(`monitor.runtimePanel.heapUsage`)),1),b(`p`,Te,d(s(e.runtime.memoryUsage.heapUsed))+` / `+d(s(e.runtime.memoryUsage.heapTotal)),1)]),b(`div`,Ee,[b(`div`,{class:`h-full bg-primary rounded-full transition-all duration-300`,style:c({width:`${a.value}%`})},null,4)])]),b(`div`,null,[b(`p`,De,d(w(n)(`monitor.runtimePanel.activeHandles`)),1),b(`p`,Oe,d(e.runtime.activeHandles),1)]),b(`div`,null,[b(`p`,ke,d(w(n)(`monitor.runtimePanel.activeRequests`)),1),b(`p`,Ae,d(e.runtime.activeRequests),1)]),b(`div`,je,[b(`p`,Me,d(w(n)(`monitor.runtimePanel.eventLoopDelay`)),1),b(`p`,Ne,d(e.runtime.eventLoopDelayMs.toFixed(2))+`ms`,1)])])):(h(),f(`div`,ge,d(w(n)(`monitor.runtimePanel.noData`)),1))}}),Fe={key:0,class:`text-sm text-muted-foreground`},Ie={key:1,class:`space-y-2`},Le={class:`flex items-center justify-between text-sm`},Re={class:`text-muted-foreground`},ze={class:`h-2 bg-muted rounded-full overflow-hidden`},Be=e({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(e){let{t:n}=t(),i=e,a=r(()=>Object.values(i.byStatusCode).reduce((e,t)=>e+t,0)),o=r(()=>{let e=i.byStatusCode,t=a.value||1,r=s(e,200,299),o=s(e,400,499)-(e[429]||0),c=e[429]||0,l=s(e,500,599);return[{label:n(`monitor.statusCodes.success`),count:r,percent:(r/t*100).toFixed(1),textClass:`text-green-600 dark:text-green-400`,barClass:`bg-green-500`},{label:n(`monitor.statusCodes.clientError`),count:o,percent:(o/t*100).toFixed(1),textClass:`text-yellow-600 dark:text-yellow-400`,barClass:`bg-yellow-500`},{label:n(`monitor.statusCodes.rateLimited`),count:c,percent:(c/t*100).toFixed(1),textClass:`text-orange-600 dark:text-orange-400`,barClass:`bg-orange-500`},{label:n(`monitor.statusCodes.serverError`),count:l,percent:(l/t*100).toFixed(1),textClass:`text-red-600 dark:text-red-400`,barClass:`bg-red-500`}].filter(e=>e.count>0)});function s(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,t)=>a.value===0?(h(),f(`div`,Fe,d(w(n)(`monitor.statusCodes.noData`)),1)):(h(),f(`div`,Ie,[(h(!0),f(u,null,y(o.value,e=>(h(),f(`div`,{key:e.label,class:`space-y-1`},[b(`div`,Le,[b(`span`,{class:l(e.textClass)},d(e.label),3),b(`span`,Re,d(e.count)+` (`+d(e.percent)+`%) `,1)]),b(`div`,ze,[b(`div`,{class:l([`h-full rounded-full transition-all duration-300`,e.barClass]),style:c({width:`${e.percent}%`})},null,6)])]))),128))]))}}),Ve={key:0,class:`text-sm text-muted-foreground py-4 text-center`},He={key:1,class:`text-sm text-muted-foreground py-4 text-center`},Ue={class:`flex flex-wrap gap-1`},We={key:0,class:`text-xs text-muted-foreground`},Ge=e({__name:`ProviderStatsTable`,props:{stats:{}},setup(e){let{t:i}=t(),a=e,s=r(()=>a.stats?Object.entries(a.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(t,r)=>e.stats?s.value.length===0?(h(),f(`div`,He,d(w(i)(`monitor.providerTable.noProviders`)),1)):(h(),n(w(M),{key:2},{default:S(()=>[o(w(P),null,{default:S(()=>[o(w(N),null,{default:S(()=>[o(w(j),null,{default:S(()=>[...r[0]||=[m(`Provider`,-1)]]),_:1}),o(w(j),{class:`text-right`},{default:S(()=>[m(d(w(i)(`monitor.providerTable.requests`)),1)]),_:1}),o(w(j),{class:`text-right`},{default:S(()=>[m(d(w(i)(`monitor.providerTable.successRate`)),1)]),_:1}),o(w(j),{class:`text-right`},{default:S(()=>[m(d(w(i)(`monitor.providerTable.avgLatency`)),1)]),_:1}),o(w(j),{class:`text-right`},{default:S(()=>[m(d(w(i)(`monitor.providerTable.retryRate`)),1)]),_:1}),o(w(j),null,{default:S(()=>[m(d(w(i)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),o(w(te),null,{default:S(()=>[(h(!0),f(u,null,y(s.value,e=>(h(),n(w(N),{key:e.id},{default:S(()=>[o(w(F),{class:`font-medium`},{default:S(()=>[m(d(e.name),1)]),_:2},1024),o(w(F),{class:`text-right`},{default:S(()=>[m(d(e.stats.totalRequests),1)]),_:2},1024),o(w(F),{class:`text-right`},{default:S(()=>[b(`span`,{class:l(e.successRate>=95?`text-green-600 dark:text-green-400`:e.successRate>=80?`text-yellow-600 dark:text-yellow-400`:`text-red-500 dark:text-red-400`)},d(e.successRate.toFixed(1))+`% `,3)]),_:2},1024),o(w(F),{class:`text-right`},{default:S(()=>[m(d(e.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),o(w(F),{class:`text-right`},{default:S(()=>[b(`span`,{class:l(e.retryRate>10?`text-yellow-600 dark:text-yellow-400`:``)},d(e.retryRate.toFixed(1))+`% `,3)]),_:2},1024),o(w(F),null,{default:S(()=>[b(`div`,Ue,[(h(!0),f(u,null,y(e.stats.topErrors.slice(0,3),e=>(h(),n(w(I),{key:e.code,variant:`destructive`,class:`text-xs`},{default:S(()=>[m(d(e.code)+` (`+d(e.count)+`) `,1)]),_:2},1024))),128)),e.stats.topErrors.length===0?(h(),f(`span`,We,`--`)):p(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(h(),f(`div`,Ve,d(w(i)(`monitor.providerTable.noData`)),1))}});function Ke(e,t,n){let r=null,i=null;function a(){if(!r){r=new EventSource(e),r.onopen=()=>{n?.onOpen?.()};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{o(),n?.onClose?.(),i=setTimeout(a,3e3)}}}function o(){i&&=(clearTimeout(i),null),r&&=(r.close(),null)}return x(()=>{o(),n?.onClose?.()}),{connect:a,disconnect:o}}var qe=200;function Je(){let e=i([]),t=i([]),n=i(null),a=i([]),o=i(null),s=i(!1),c=r(()=>e.value.filter(e=>e.isStream).length),l=r(()=>e.value.filter(e=>!e.queued)),u=r(()=>e.value.filter(e=>e.queued===!0));function d(r){let i;try{i=JSON.parse(r.data)}catch{return}switch(r.type){case`request_start`:{let n=i;t.value.some(e=>e.id===n.id)||e.value.unshift(n);break}case`request_update`:e.value=i;break;case`request_complete`:{let n=i;e.value=e.value.filter(e=>e.id!==n.id),t.value.unshift(n),t.value.length>qe&&(t.value.length=qe);break}case`concurrency_update`:a.value=i;break;case`stats_update`:n.value=i;break;case`stream_content_update`:{let t=i;for(let n of t){let t=e.value.find(e=>e.id===n.id);t&&(n.streamContent&&(t.streamContent=n.streamContent),n.streamMetrics&&(t.streamMetrics=n.streamMetrics))}break}case`runtime_update`:o.value=i;break}}function f(){s.value=!0}function p(){s.value=!1}async function m(){try{let[r,i,s,c,l]=await Promise.allSettled([g.getMonitorActive(),g.getMonitorRecent(),g.getMonitorStats(),g.getMonitorConcurrency(),g.getMonitorRuntime()]);r.status===`fulfilled`&&(e.value=r.value),i.status===`fulfilled`&&(t.value=i.value),s.status===`fulfilled`&&(n.value=s.value),c.status===`fulfilled`&&(a.value=c.value),l.status===`fulfilled`&&(o.value=l.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),n.value=null,a.value=[],o.value=null}}let h=i(null),_=i(!1),v=i(0);async function y(n){let r=++v.value,i=e.value.find(e=>e.id===n)??t.value.find(e=>e.id===n);if(!i){h.value=null;return}h.value=null,_.value=!0;try{if(i.status===`pending`){try{let e=await g.getMonitorRequest(n);if(r!==v.value)return;h.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==404)throw e;if(r!==v.value)return;let t=await g.getLogDetail(n);if(r!==v.value)return;h.value=t.client_request?{clientRequest:t.client_request}:null}return}let e=await g.getLogDetail(n);if(r!==v.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}}h.value={responseBody:t,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==v.value)return;console.warn(`Failed to load log detail:`,e),h.value=null}finally{r===v.value&&(_.value=!1)}}let b=i(null),x=i(!1);function S(e){b.value=e,x.value=!0,y(e)}let w=r(()=>b.value?e.value.find(e=>e.id===b.value)??t.value.find(e=>e.id===b.value)??null:null);return C(()=>w.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&y(b.value)}),{activeRequests:e,recentCompleted:t,stats:n,concurrency:a,runtime:o,connected:s,streamCount:c,streamingRequests:l,queuedRequests:u,selectedRequestId:b,selectedRequest:w,requestDetailOpen:x,selectRequest:S,logDetailData:h,nonStreamBodyLoading:_,handleSSEMessage:d,handleSSEOpen:f,handleSSEClose:p,loadInitialData:m}}function Ye(e){switch(e){case`pending`:return`default`;case`failed`:return`destructive`;case`completed`:return`secondary`;default:return`outline`}}function Xe(e){let{t}=L.global;switch(e){case`pending`:return t(`common.statusPending`);case`failed`:return t(`common.statusFailed`);case`completed`:return t(`common.statusCompleted`);default:return e}}var Ze={class:`p-6`},Qe={class:`flex items-center justify-between mb-4`},$e={class:`text-lg font-semibold text-foreground`},et={class:`flex items-center gap-2`},tt={class:`grid grid-cols-3 gap-4 mb-6`},nt={class:`flex items-center justify-between`},rt={key:0,class:`text-sm text-muted-foreground py-2`},it=[`onClick`],at={class:`text-sm text-foreground truncate flex-1`},ot={class:`text-xs text-muted-foreground shrink-0`},st={class:`flex items-center justify-between`},ct={key:0,class:`text-sm text-muted-foreground py-2`},lt=[`onClick`],ut={class:`text-sm text-foreground truncate flex-1`},dt={class:`text-xs text-muted-foreground shrink-0`},ft={class:`flex items-center justify-between`},pt={key:0,class:`text-sm text-muted-foreground py-2`},mt=[`onClick`],ht={class:`text-sm text-foreground truncate flex-1`},gt={class:`text-xs text-muted-foreground shrink-0`},_t={class:`grid grid-cols-1 lg:grid-cols-3 gap-4`},$=1e3,vt=e({__name:`Monitor`,setup(e){let{t:r}=t(),{activeRequests:c,recentCompleted:g,stats:C,concurrency:j,runtime:te,connected:M,streamCount:N,streamingRequests:P,queuedRequests:F,selectedRequestId:L,selectedRequest:U,requestDetailOpen:W,selectRequest:G,logDetailData:K,handleSSEMessage:q,handleSSEOpen:re,handleSSEClose:ie,loadInitialData:ae}=Je(),{connect:oe}=Ke(`/admin/api/monitor/stream`,{request_start:q,request_update:q,request_complete:q,concurrency_update:q,stats_update:q,runtime_update:q,stream_content_update:q},{onOpen:re,onClose:ie}),{copied:J,copy:Y}=ne(),X=i(Date.now()),Z=null;function Q(e){return((X.value-e)/$).toFixed(1)}function ce(e){return e.completedAt?((e.completedAt-e.startTime)/$).toFixed(1)+`s`:`--`}return _(async()=>{await ae(),oe(),Z=setInterval(()=>{X.value=Date.now()},$)}),x(()=>{Z&&=(clearInterval(Z),null)}),(e,t)=>(h(),f(`div`,Ze,[b(`div`,Qe,[b(`h2`,$e,d(w(r)(`monitor.title`)),1),b(`div`,et,[o(w(I),{variant:w(M)?`default`:`destructive`},{default:S(()=>[m(d(w(M)?w(r)(`monitor.connected`):w(r)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])])]),o(se,{stats:w(C),"active-count":w(c).length,"stream-count":w(N)},null,8,[`stats`,`active-count`,`stream-count`]),b(`div`,tt,[o(w(z),null,{default:S(()=>[o(w(V),{class:`pb-2`},{default:S(()=>[b(`div`,nt,[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.activeRequests`)),1)]),_:1}),o(w(I),{variant:`secondary`},{default:S(()=>[m(d(w(P).length),1)]),_:1})])]),_:1}),o(w(B),null,{default:S(()=>[o(w(T),{class:`h-64`},{default:S(()=>[w(P).length===0?(h(),f(`div`,rt,d(w(r)(`monitor.noActiveRequests`)),1)):p(``,!0),(h(!0),f(u,null,y(w(P),e=>(h(),f(`div`,{key:e.id,class:l([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":w(L)===e.id}]),onClick:t=>w(G)(e.id)},[o(w(I),{variant:w(Ye)(e.status),class:`shrink-0`},{default:S(()=>[m(d(w(Xe)(e.status)),1)]),_:2},1032,[`variant`]),b(`span`,at,d(e.model),1),o(w(I),{variant:`outline`,class:`shrink-0 text-xs`},{default:S(()=>[m(d(e.providerName),1)]),_:2},1024),b(`span`,ot,d(Q(e.startTime))+`s`,1),e.isStream?(h(),n(w(I),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:S(()=>[...t[1]||=[m(`SSE`,-1)]]),_:1})):p(``,!0),o(w(O),{"delay-duration":300},{default:S(()=>[o(w(D),null,{default:S(()=>[o(w(A),{"as-child":``},{default:S(()=>[o(w(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:s(t=>w(Y)(e.id),[`stop`])},{default:S(()=>[w(J)?(h(),n(w(R),{key:0,class:`size-3 text-success`})):(h(),n(w(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),o(w(k),null,{default:S(()=>[m(d(w(r)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)]),_:2},1024)],10,it))),128))]),_:1})]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(V),{class:`pb-2`},{default:S(()=>[b(`div`,st,[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.queuedRequests`)),1)]),_:1}),o(w(I),{variant:`secondary`},{default:S(()=>[m(d(w(F).length),1)]),_:1})])]),_:1}),o(w(B),null,{default:S(()=>[o(w(T),{class:`h-64`},{default:S(()=>[w(F).length===0?(h(),f(`div`,ct,d(w(r)(`monitor.noQueuedRequests`)),1)):p(``,!0),(h(!0),f(u,null,y(w(F),e=>(h(),f(`div`,{key:e.id,class:l([`flex items-center gap-2 py-2 px-2 rounded cursor-pointer hover:bg-muted/50 transition-colors`,{"bg-muted":w(L)===e.id}]),onClick:t=>w(G)(e.id)},[o(w(I),{variant:`outline`,class:`shrink-0`},{default:S(()=>[m(d(w(r)(`monitor.queued`)),1)]),_:1}),b(`span`,ut,d(e.model),1),o(w(I),{variant:`outline`,class:`shrink-0 text-xs`},{default:S(()=>[m(d(e.providerName),1)]),_:2},1024),b(`span`,dt,d(Q(e.startTime))+`s`,1),o(w(O),{"delay-duration":300},{default:S(()=>[o(w(D),null,{default:S(()=>[o(w(A),{"as-child":``},{default:S(()=>[o(w(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:s(t=>w(Y)(e.id),[`stop`])},{default:S(()=>[w(J)?(h(),n(w(R),{key:0,class:`size-3 text-success`})):(h(),n(w(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),o(w(k),null,{default:S(()=>[m(d(w(r)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)]),_:2},1024)],10,lt))),128))]),_:1})]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(V),{class:`pb-2`},{default:S(()=>[b(`div`,ft,[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.completed`)),1)]),_:1}),o(w(I),{variant:`secondary`},{default:S(()=>[m(d(w(g).length),1)]),_:1})])]),_:1}),o(w(B),null,{default:S(()=>[o(w(T),{class:`h-64`},{default:S(()=>[w(g).length===0?(h(),f(`div`,pt,d(w(r)(`monitor.noCompletedRequests`)),1)):p(``,!0),(h(!0),f(u,null,y(w(g),e=>(h(),f(`div`,{key:e.id,class:l([`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":w(L)===e.id}]),onClick:t=>w(G)(e.id)},[o(w(I),{variant:w(Ye)(e.status),class:`shrink-0`},{default:S(()=>[m(d(w(Xe)(e.status)),1)]),_:2},1032,[`variant`]),b(`span`,ht,d(e.model),1),o(w(I),{variant:`outline`,class:`shrink-0 text-xs`},{default:S(()=>[m(d(e.providerName),1)]),_:2},1024),e.isStream?(h(),n(w(I),{key:0,variant:`outline`,class:`shrink-0 text-xs`},{default:S(()=>[...t[2]||=[m(`SSE`,-1)]]),_:1})):p(``,!0),b(`span`,gt,d(ce(e)),1),o(w(O),{"delay-duration":300},{default:S(()=>[o(w(D),null,{default:S(()=>[o(w(A),{"as-child":``},{default:S(()=>[o(w(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:s(t=>w(Y)(e.id),[`stop`])},{default:S(()=>[w(J)?(h(),n(w(R),{key:0,class:`size-3 text-success`})):(h(),n(w(E),{key:1,class:`size-3`}))]),_:1},8,[`onClick`])]),_:2},1024),o(w(k),null,{default:S(()=>[m(d(w(r)(`monitor.copyId`)),1)]),_:1})]),_:2},1024)]),_:2},1024)],10,mt))),128))]),_:1})]),_:1})]),_:1})]),o(w(z),{class:`mb-4`},{default:S(()=>[o(w(V),null,{default:S(()=>[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.providerStats`)),1)]),_:1})]),_:1}),o(w(B),null,{default:S(()=>[o(Ge,{stats:w(C)},null,8,[`stats`])]),_:1})]),_:1}),b(`div`,_t,[o(w(z),null,{default:S(()=>[o(w(V),null,{default:S(()=>[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.concurrency`)),1)]),_:1})]),_:1}),o(w(B),null,{default:S(()=>[o(he,{providers:w(j)},null,8,[`providers`])]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(V),null,{default:S(()=>[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.statusCodeDistribution`)),1)]),_:1})]),_:1}),o(w(B),null,{default:S(()=>[o(Be,{"by-status-code":w(C)?.byStatusCode??{}},null,8,[`by-status-code`])]),_:1})]),_:1}),o(w(z),null,{default:S(()=>[o(w(V),null,{default:S(()=>[o(w(H),{class:`text-sm font-medium text-foreground`},{default:S(()=>[m(d(w(r)(`monitor.runtime`)),1)]),_:1})]),_:1}),o(w(B),null,{default:S(()=>[o(Pe,{runtime:w(te)},null,8,[`runtime`])]),_:1})]),_:1})]),o(ee,{open:w(W),"onUpdate:open":t[0]||=e=>a(W)?W.value=e:null,source:`realtime`,request:w(U),"stream-content":w(U)?.streamContent,"log-detail-data":w(K)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`])]))}});export{vt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,H as n,I as r,J as i,K as a,Mt as o,N as s,Q as c,U as ee,Vt as te,W as l,Wt as u,X as d,Y as f,Z as p,dt as m,gt as ne,k as h,lt as re,n as g,pt as _,q as v,wt as y,zt as b}from"./button-DRFSckEU.js";import{t as ie}from"./copy-BsWNnxok.js";import{a as ae,c as x,d as oe,f as se,l as ce,n as le,o as ue,r as de,s as fe,t as pe,u as S}from"./dialog-DxoN_Irc.js";import{t as C}from"./Label-B2lstY9k.js";import{a as me,b as he,c as ge,d as _e,f as ve,g as ye,h as be,i as xe,l as Se,m as Ce,nt as we,o as Te,p as Ee,r as w,s as De,u as Oe}from"./index-Dr-BkaVu.js";import{t as ke}from"./Input-glS226Q6.js";import{t as Ae}from"./constants-yM0YwP2s.js";import{i as je,t as Me}from"./ModelCard-DixuS062.js";import{n as Ne,t as Pe}from"./TransformRulesForm-C6PBk8zI.js";var Fe=s(`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`}]]),T;(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})(T||={});var Ie;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(Ie||={});var E=T.arrayToEnum([`string`,`nan`,`number`,`integer`,`float`,`boolean`,`date`,`bigint`,`symbol`,`function`,`undefined`,`null`,`array`,`object`,`unknown`,`promise`,`void`,`never`,`map`,`set`]),D=e=>{switch(typeof e){case`undefined`:return E.undefined;case`string`:return E.string;case`number`:return Number.isNaN(e)?E.nan:E.number;case`boolean`:return E.boolean;case`function`:return E.function;case`bigint`:return E.bigint;case`symbol`:return E.symbol;case`object`:return Array.isArray(e)?E.array:e===null?E.null:e.then&&typeof e.then==`function`&&e.catch&&typeof e.catch==`function`?E.promise:typeof Map<`u`&&e instanceof Map?E.map:typeof Set<`u`&&e instanceof Set?E.set:typeof Date<`u`&&e instanceof Date?E.date:E.object;default:return E.unknown}},O=T.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`]),k=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,T.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()}};k.create=e=>new k(e);var A=(e,t)=>{let n;switch(e.code){case O.invalid_type:n=e.received===E.undefined?`Required`:`Expected ${e.expected}, received ${e.received}`;break;case O.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,T.jsonStringifyReplacer)}`;break;case O.unrecognized_keys:n=`Unrecognized key(s) in object: ${T.joinValues(e.keys,`, `)}`;break;case O.invalid_union:n=`Invalid input`;break;case O.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${T.joinValues(e.options)}`;break;case O.invalid_enum_value:n=`Invalid enum value. Expected ${T.joinValues(e.options)}, received '${e.received}'`;break;case O.invalid_arguments:n=`Invalid function arguments`;break;case O.invalid_return_type:n=`Invalid function return type`;break;case O.invalid_date:n=`Invalid date`;break;case O.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}"`:T.assertNever(e.validation):n=e.validation===`regex`?`Invalid`:`Invalid ${e.validation}`;break;case O.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 O.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 O.custom:n=`Invalid input`;break;case O.invalid_intersection_types:n=`Intersection results could not be merged`;break;case O.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case O.not_finite:n=`Number must be finite`;break;default:n=t.defaultError,T.assertNever(e)}return{message:n}},j=A;function M(){return j}var N=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 P(e,t){let n=M(),r=N({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===A?void 0:A].filter(e=>!!e)});e.common.issues.push(r)}var F=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 I;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 I;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}}},I=Object.freeze({status:`aborted`}),Le=e=>({status:`dirty`,value:e}),L=e=>({status:`valid`,value:e}),R=e=>e.status===`aborted`,z=e=>e.status===`dirty`,B=e=>e.status===`valid`,V=e=>typeof Promise<`u`&&e instanceof Promise,H;(function(e){e.errToObj=e=>typeof e==`string`?{message:e}:e||{},e.toString=e=>typeof e==`string`?e:e?.message})(H||={});var U=class{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},Re=(e,t)=>{if(B(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw Error(`Validation failed but no issues detected.`);return{success:!1,get error(){if(this._error)return this._error;let t=new k(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 D(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:D(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new F,ctx:{common:e.parent.common,data:e.data,parsedType:D(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){let t=this._parse(e);if(V(t))throw Error(`Synchronous parse encountered promise.`);return t}_parseAsync(e){let t=this._parse(e);return Promise.resolve(t)}parse(e,t){let n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){let n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:D(e)};return Re(n,this._parseSync({data:e,path:n.path,parent:n}))}"~validate"(e){let t={common:{issues:[],async:!!this[`~standard`].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:D(e)};if(!this[`~standard`].async)try{let n=this._parseSync({data:e,path:[],parent:t});return B(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes(`encountered`)&&(this[`~standard`].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>B(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){let n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){let n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:D(e)},r=this._parse({data:e,path:n.path,parent:n});return Re(n,await(V(r)?r:Promise.resolve(r)))}refine(e,t){let n=e=>typeof t==`string`||t===void 0?{message:t}:typeof t==`function`?t(e):t;return this._refinement((t,r)=>{let i=e(t),a=()=>r.addIssue({code:O.custom,...n(t)});return typeof Promise<`u`&&i instanceof Promise?i.then(e=>e?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,r)=>e(n)?!0:(r.addIssue(typeof t==`function`?t(n,r):t),!1))}_refinement(e){return new Z({schema:this,typeName:$.ZodEffects,effect:{type:`refinement`,refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[`~standard`]={version:1,vendor:`zod`,validate:e=>this[`~validate`](e)}}optional(){return Q.create(this,this._def)}nullable(){return It.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return yt.create(this)}promise(){return Ft.create(this,this._def)}or(e){return xt.create([this,e],this._def)}and(e){return wt.create(this,e,this._def)}transform(e){return new Z({...W(this._def),schema:this,typeName:$.ZodEffects,effect:{type:`transform`,transform:e}})}default(e){let t=typeof e==`function`?e:()=>e;return new Lt({...W(this._def),innerType:this,defaultValue:t,typeName:$.ZodDefault})}brand(){return new Bt({typeName:$.ZodBranded,type:this,...W(this._def)})}catch(e){let t=typeof e==`function`?e:()=>e;return new Rt({...W(this._def),innerType:this,catchValue:t,typeName:$.ZodCatch})}describe(e){let t=this.constructor;return new t({...this._def,description:e})}pipe(e){return Vt.create(this,e)}readonly(){return Ht.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},ze=/^c[^\s-]{8,}$/i,Be=/^[0-9a-z]+$/,Ve=/^[0-9A-HJKMNP-TV-Z]{26}$/i,K=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,q=/^[a-z0-9_-]{21}$/i,He=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Ue=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,We=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ge=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,Ke,qe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Je=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Ye=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Xe=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ze=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Qe=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,$e=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`,et=RegExp(`^${$e}$`);function tt(e){let t=`[0-5]\\d`;e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision??(t=`${t}(\\.\\d+)?`);let n=e.precision?`+`:`?`;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function nt(e){return RegExp(`^${tt(e)}$`)}function rt(e){let t=`${$e}T${tt(e)}`,n=[];return n.push(e.local?`Z?`:`Z`),e.offset&&n.push(`([+-]\\d{2}:?\\d{2})`),t=`${t}(${n.join(`|`)})`,RegExp(`^${t}$`)}function it(e,t){return!!((t===`v4`||!t)&&qe.test(e)||(t===`v6`||!t)&&Ye.test(e))}function at(e,t){if(!He.test(e))return!1;try{let[n]=e.split(`.`);if(!n)return!1;let r=n.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(n.length+(4-n.length%4)%4,`=`),i=JSON.parse(atob(r));return!(typeof i!=`object`||!i||`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&i.alg!==t)}catch{return!1}}function ot(e,t){return!!((t===`v4`||!t)&&Je.test(e)||(t===`v6`||!t)&&Xe.test(e))}var st=class e extends G{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==E.string){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.string,received:t.parsedType}),I}let t=new F,n;for(let r of this._def.checks)if(r.kind===`min`)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.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),P(n,{code:O.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?P(n,{code:O.too_big,maximum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}):a&&P(n,{code:O.too_small,minimum:r.value,type:`string`,inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if(r.kind===`email`)We.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`email`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`emoji`)Ke||=new RegExp(Ge,`u`),Ke.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`emoji`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`uuid`)K.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`uuid`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`nanoid`)q.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`nanoid`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid`)ze.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`cuid`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`cuid2`)Be.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`cuid2`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`ulid`)Ve.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`ulid`,code:O.invalid_string,message:r.message}),t.dirty());else if(r.kind===`url`)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),P(n,{validation:`url`,code:O.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),P(n,{validation:`regex`,code:O.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),P(n,{code:O.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),P(n,{code:O.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty()):r.kind===`endsWith`?e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty()):r.kind===`datetime`?rt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_string,validation:`datetime`,message:r.message}),t.dirty()):r.kind===`date`?et.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_string,validation:`date`,message:r.message}),t.dirty()):r.kind===`time`?nt(r).test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{code:O.invalid_string,validation:`time`,message:r.message}),t.dirty()):r.kind===`duration`?Ue.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`duration`,code:O.invalid_string,message:r.message}),t.dirty()):r.kind===`ip`?it(e.data,r.version)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`ip`,code:O.invalid_string,message:r.message}),t.dirty()):r.kind===`jwt`?at(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`jwt`,code:O.invalid_string,message:r.message}),t.dirty()):r.kind===`cidr`?ot(e.data,r.version)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`cidr`,code:O.invalid_string,message:r.message}),t.dirty()):r.kind===`base64`?Ze.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`base64`,code:O.invalid_string,message:r.message}),t.dirty()):r.kind===`base64url`?Qe.test(e.data)||(n=this._getOrReturnCtx(e,n),P(n,{validation:`base64url`,code:O.invalid_string,message:r.message}),t.dirty()):T.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:O.invalid_string,...H.errToObj(n)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(e){return this._addCheck({kind:`email`,...H.errToObj(e)})}url(e){return this._addCheck({kind:`url`,...H.errToObj(e)})}emoji(e){return this._addCheck({kind:`emoji`,...H.errToObj(e)})}uuid(e){return this._addCheck({kind:`uuid`,...H.errToObj(e)})}nanoid(e){return this._addCheck({kind:`nanoid`,...H.errToObj(e)})}cuid(e){return this._addCheck({kind:`cuid`,...H.errToObj(e)})}cuid2(e){return this._addCheck({kind:`cuid2`,...H.errToObj(e)})}ulid(e){return this._addCheck({kind:`ulid`,...H.errToObj(e)})}base64(e){return this._addCheck({kind:`base64`,...H.errToObj(e)})}base64url(e){return this._addCheck({kind:`base64url`,...H.errToObj(e)})}jwt(e){return this._addCheck({kind:`jwt`,...H.errToObj(e)})}ip(e){return this._addCheck({kind:`ip`,...H.errToObj(e)})}cidr(e){return this._addCheck({kind:`cidr`,...H.errToObj(e)})}datetime(e){return typeof e==`string`?this._addCheck({kind:`datetime`,precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:`datetime`,precision:e?.precision===void 0?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...H.errToObj(e?.message)})}date(e){return this._addCheck({kind:`date`,message:e})}time(e){return typeof e==`string`?this._addCheck({kind:`time`,precision:null,message:e}):this._addCheck({kind:`time`,precision:e?.precision===void 0?null:e?.precision,...H.errToObj(e?.message)})}duration(e){return this._addCheck({kind:`duration`,...H.errToObj(e)})}regex(e,t){return this._addCheck({kind:`regex`,regex:e,...H.errToObj(t)})}includes(e,t){return this._addCheck({kind:`includes`,value:e,position:t?.position,...H.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:`startsWith`,value:e,...H.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:`endsWith`,value:e,...H.errToObj(t)})}min(e,t){return this._addCheck({kind:`min`,value:e,...H.errToObj(t)})}max(e,t){return this._addCheck({kind:`max`,value:e,...H.errToObj(t)})}length(e,t){return this._addCheck({kind:`length`,value:e,...H.errToObj(t)})}nonempty(e){return this.min(1,H.errToObj(e))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:`trim`}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toLowerCase`}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:`toUpperCase`}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind===`datetime`)}get isDate(){return!!this._def.checks.find(e=>e.kind===`date`)}get isTime(){return!!this._def.checks.find(e=>e.kind===`time`)}get isDuration(){return!!this._def.checks.find(e=>e.kind===`duration`)}get isEmail(){return!!this._def.checks.find(e=>e.kind===`email`)}get isURL(){return!!this._def.checks.find(e=>e.kind===`url`)}get isEmoji(){return!!this._def.checks.find(e=>e.kind===`emoji`)}get isUUID(){return!!this._def.checks.find(e=>e.kind===`uuid`)}get isNANOID(){return!!this._def.checks.find(e=>e.kind===`nanoid`)}get isCUID(){return!!this._def.checks.find(e=>e.kind===`cuid`)}get isCUID2(){return!!this._def.checks.find(e=>e.kind===`cuid2`)}get isULID(){return!!this._def.checks.find(e=>e.kind===`ulid`)}get isIP(){return!!this._def.checks.find(e=>e.kind===`ip`)}get isCIDR(){return!!this._def.checks.find(e=>e.kind===`cidr`)}get isBase64(){return!!this._def.checks.find(e=>e.kind===`base64`)}get isBase64url(){return!!this._def.checks.find(e=>e.kind===`base64url`)}get minLength(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};st.create=e=>new st({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...W(e)});function ct(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=(t.toString().split(`.`)[1]||``).length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(`.`,``))%Number.parseInt(t.toFixed(i).replace(`.`,``))/10**i}var lt=class e extends G{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==E.number){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.number,received:t.parsedType}),I}let t,n=new F;for(let r of this._def.checks)r.kind===`int`?T.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),P(t,{code:O.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),P(t,{code:O.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),P(t,{code:O.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),P(t,{code:O.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):r.kind===`finite`?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),P(t,{code:O.not_finite,message:r.message}),n.dirty()):T.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`&&T.isInteger(e.value))}get isFinite(){let e=null,t=null;for(let n of this._def.checks)if(n.kind===`finite`||n.kind===`int`||n.kind===`multipleOf`)return!0;else n.kind===`min`?(t===null||n.value>t)&&(t=n.value):n.kind===`max`&&(e===null||n.value<e)&&(e=n.value);return Number.isFinite(t)&&Number.isFinite(e)}};lt.create=e=>new lt({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...W(e)});var ut=class e extends G{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==E.bigint)return this._getInvalidInput(e);let t,n=new F;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),P(t,{code:O.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),P(t,{code:O.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),P(t,{code:O.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):T.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.bigint,received:t.parsedType}),I}gte(e,t){return this.setLimit(`min`,e,!0,H.toString(t))}gt(e,t){return this.setLimit(`min`,e,!1,H.toString(t))}lte(e,t){return this.setLimit(`max`,e,!0,H.toString(t))}lt(e,t){return this.setLimit(`max`,e,!1,H.toString(t))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:H.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!1,message:H.toString(e)})}negative(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!1,message:H.toString(e)})}nonpositive(e){return this._addCheck({kind:`max`,value:BigInt(0),inclusive:!0,message:H.toString(e)})}nonnegative(e){return this._addCheck({kind:`min`,value:BigInt(0),inclusive:!0,message:H.toString(e)})}multipleOf(e,t){return this._addCheck({kind:`multipleOf`,value:e,message:H.toString(t)})}get minValue(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e}};ut.create=e=>new ut({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...W(e)});var dt=class extends G{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==E.boolean){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.boolean,received:t.parsedType}),I}return L(e.data)}};dt.create=e=>new dt({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...W(e)});var ft=class e extends G{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==E.date){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.date,received:t.parsedType}),I}if(Number.isNaN(e.data.getTime()))return P(this._getOrReturnCtx(e),{code:O.invalid_date}),I;let t=new F,n;for(let r of this._def.checks)r.kind===`min`?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),P(n,{code:O.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),P(n,{code:O.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:`date`}),t.dirty()):T.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(e,t){return this._addCheck({kind:`min`,value:e.getTime(),message:H.toString(t)})}max(e,t){return this._addCheck({kind:`max`,value:e.getTime(),message:H.toString(t)})}get minDate(){let e=null;for(let t of this._def.checks)t.kind===`min`&&(e===null||t.value>e)&&(e=t.value);return e==null?null:new Date(e)}get maxDate(){let e=null;for(let t of this._def.checks)t.kind===`max`&&(e===null||t.value<e)&&(e=t.value);return e==null?null:new Date(e)}};ft.create=e=>new ft({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...W(e)});var pt=class extends G{_parse(e){if(this._getType(e)!==E.symbol){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.symbol,received:t.parsedType}),I}return L(e.data)}};pt.create=e=>new pt({typeName:$.ZodSymbol,...W(e)});var mt=class extends G{_parse(e){if(this._getType(e)!==E.undefined){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.undefined,received:t.parsedType}),I}return L(e.data)}};mt.create=e=>new mt({typeName:$.ZodUndefined,...W(e)});var ht=class extends G{_parse(e){if(this._getType(e)!==E.null){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.null,received:t.parsedType}),I}return L(e.data)}};ht.create=e=>new ht({typeName:$.ZodNull,...W(e)});var gt=class extends G{constructor(){super(...arguments),this._any=!0}_parse(e){return L(e.data)}};gt.create=e=>new gt({typeName:$.ZodAny,...W(e)});var _t=class extends G{constructor(){super(...arguments),this._unknown=!0}_parse(e){return L(e.data)}};_t.create=e=>new _t({typeName:$.ZodUnknown,...W(e)});var J=class extends G{_parse(e){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.never,received:t.parsedType}),I}};J.create=e=>new J({typeName:$.ZodNever,...W(e)});var vt=class extends G{_parse(e){if(this._getType(e)!==E.undefined){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.void,received:t.parsedType}),I}return L(e.data)}};vt.create=e=>new vt({typeName:$.ZodVoid,...W(e)});var yt=class e extends G{_parse(e){let{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==E.array)return P(t,{code:O.invalid_type,expected:E.array,received:t.parsedType}),I;if(r.exactLength!==null){let e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(P(t,{code:e?O.too_big:O.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&&(P(t,{code:O.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&&(P(t,{code:O.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=>F.mergeArray(n,e));let i=[...t.data].map((e,n)=>r.type._parseSync(new U(t,e,t.path,n)));return F.mergeArray(n,i)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:H.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:H.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:H.toString(n)}})}nonempty(e){return this.min(1,e)}};yt.create=(e,t)=>new yt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...W(t)});function bt(e){if(e instanceof Y){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=Q.create(bt(r))}return new Y({...e._def,shape:()=>t})}else if(e instanceof yt)return new yt({...e._def,type:bt(e.element)});else if(e instanceof Q)return Q.create(bt(e.unwrap()));else if(e instanceof It)return It.create(bt(e.unwrap()));else if(e instanceof Tt)return Tt.create(e.items.map(e=>bt(e)));else return e}var Y=class e extends G{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let e=this._def.shape(),t=T.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==E.object){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.object,received:t.parsedType}),I}let{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof J&&this._def.unknownKeys===`strip`))for(let e in n.data)i.includes(e)||a.push(e);let o=[];for(let e of i){let t=r[e],i=n.data[e];o.push({key:{status:`valid`,value:e},value:t._parse(new U(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof J){let e=this._def.unknownKeys;if(e===`passthrough`)for(let e of a)o.push({key:{status:`valid`,value:e},value:{status:`valid`,value:n.data[e]}});else if(e===`strict`)a.length>0&&(P(n,{code:O.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=>F.mergeObjectSync(t,e)):F.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 T.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 T.objectKeys(this.shape))t[e]||(n[e]=this.shape[e]);return new e({...this._def,shape:()=>n})}deepPartial(){return bt(this)}partial(t){let n={};for(let e of T.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 T.objectKeys(this.shape))if(t&&!t[e])n[e]=this.shape[e];else{let t=this.shape[e];for(;t instanceof Q;)t=t._def.innerType;n[e]=t}return new e({...this._def,shape:()=>n})}keyof(){return Mt(T.objectKeys(this.shape))}};Y.create=(e,t)=>new Y({shape:()=>e,unknownKeys:`strip`,catchall:J.create(),typeName:$.ZodObject,...W(t)}),Y.strictCreate=(e,t)=>new Y({shape:()=>e,unknownKeys:`strict`,catchall:J.create(),typeName:$.ZodObject,...W(t)}),Y.lazycreate=(e,t)=>new Y({shape:e,unknownKeys:`strip`,catchall:J.create(),typeName:$.ZodObject,...W(t)});var xt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=this._def.options;function r(e){for(let t of e)if(t.result.status===`valid`)return t.result;for(let n of e)if(n.result.status===`dirty`)return t.common.issues.push(...n.ctx.common.issues),n.result;let n=e.map(e=>new k(e.ctx.common.issues));return P(t,{code:O.invalid_union,unionErrors:n}),I}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 k(e));return P(t,{code:O.invalid_union,unionErrors:i}),I}}get options(){return this._def.options}};xt.create=(e,t)=>new xt({options:e,typeName:$.ZodUnion,...W(t)});var X=e=>e instanceof At?X(e.schema):e instanceof Z?X(e.innerType()):e instanceof jt?[e.value]:e instanceof Nt?e.options:e instanceof Pt?T.objectValues(e.enum):e instanceof Lt?X(e._def.innerType):e instanceof mt?[void 0]:e instanceof ht?[null]:e instanceof Q?[void 0,...X(e.unwrap())]:e instanceof It?[null,...X(e.unwrap())]:e instanceof Bt||e instanceof Ht?X(e.unwrap()):e instanceof Rt?X(e._def.innerType):[],St=class e extends G{_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.object)return P(t,{code:O.invalid_type,expected:E.object,received:t.parsedType}),I;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}):(P(t,{code:O.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),I)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let e of n){let n=X(e.shape[t]);if(!n.length)throw Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let r of n){if(i.has(r))throw Error(`Discriminator property ${String(t)} has duplicate value ${String(r)}`);i.set(r,e)}}return new e({typeName:$.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...W(r)})}};function Ct(e,t){let n=D(e),r=D(t);if(e===t)return{valid:!0,data:e};if(n===E.object&&r===E.object){let n=T.objectKeys(t),r=T.objectKeys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=Ct(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}else if(n===E.array&&r===E.array){if(e.length!==t.length)return{valid:!1};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=Ct(i,a);if(!o.valid)return{valid:!1};n.push(o.data)}return{valid:!0,data:n}}else if(n===E.date&&r===E.date&&+e==+t)return{valid:!0,data:e};else return{valid:!1}}var wt=class extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(R(e)||R(r))return I;let i=Ct(e.value,r.value);return i.valid?((z(e)||z(r))&&t.dirty(),{status:t.value,value:i.data}):(P(n,{code:O.invalid_intersection_types}),I)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};wt.create=(e,t,n)=>new wt({left:e,right:t,typeName:$.ZodIntersection,...W(n)});var Tt=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.array)return P(n,{code:O.invalid_type,expected:E.array,received:n.parsedType}),I;if(n.data.length<this._def.items.length)return P(n,{code:O.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:`array`}),I;!this._def.rest&&n.data.length>this._def.items.length&&(P(n,{code:O.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=>F.mergeArray(t,e)):F.mergeArray(t,r)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Tt.create=(e,t)=>{if(!Array.isArray(e))throw Error(`You must pass an array of schemas to z.tuple([ ... ])`);return new Tt({items:e,typeName:$.ZodTuple,rest:null,...W(t)})};var Et=class e extends G{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.object)return P(n,{code:O.invalid_type,expected:E.object,received:n.parsedType}),I;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?F.mergeObjectAsync(t,r):F.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof G?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...W(r)}):new e({keyType:st.create(),valueType:t,typeName:$.ZodRecord,...W(n)})}},Dt=class extends G{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.map)return P(n,{code:O.invalid_type,expected:E.map,received:n.parsedType}),I;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 I;(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 I;(r.status===`dirty`||i.status===`dirty`)&&t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}};Dt.create=(e,t,n)=>new Dt({valueType:t,keyType:e,typeName:$.ZodMap,...W(n)});var Ot=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==E.set)return P(n,{code:O.invalid_type,expected:E.set,received:n.parsedType}),I;let r=this._def;r.minSize!==null&&n.data.size<r.minSize.value&&(P(n,{code:O.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&&(P(n,{code:O.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 I;r.status===`dirty`&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}let o=[...n.data.values()].map((e,t)=>i._parse(new U(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>a(e)):a(o)}min(t,n){return new e({...this._def,minSize:{value:t,message:H.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:H.toString(n)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}};Ot.create=(e,t)=>new Ot({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...W(t)});var kt=class e extends G{constructor(){super(...arguments),this.validate=this.implement}_parse(e){let{ctx:t}=this._processInputParams(e);if(t.parsedType!==E.function)return P(t,{code:O.invalid_type,expected:E.function,received:t.parsedType}),I;function n(e,n){return N({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,M(),A].filter(e=>!!e),issueData:{code:O.invalid_arguments,argumentsError:n}})}function r(e,n){return N({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,M(),A].filter(e=>!!e),issueData:{code:O.invalid_return_type,returnTypeError:n}})}let i={errorMap:t.common.contextualErrorMap},a=t.data;if(this._def.returns instanceof Ft){let e=this;return L(async function(...t){let o=new k([]),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 L(function(...t){let o=e._def.args.safeParse(t,i);if(!o.success)throw new k([n(t,o.error)]);let s=Reflect.apply(a,this,o.data),c=e._def.returns.safeParse(s,i);if(!c.success)throw new k([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:Tt.create(t).rest(_t.create())})}returns(t){return new e({...this._def,returns:t})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(t,n,r){return new e({args:t||Tt.create([]).rest(_t.create()),returns:n||_t.create(),typeName:$.ZodFunction,...W(r)})}},At=class extends G{get schema(){return this._def.getter()}_parse(e){let{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}};At.create=(e,t)=>new At({getter:e,typeName:$.ZodLazy,...W(t)});var jt=class extends G{_parse(e){if(e.data!==this._def.value){let t=this._getOrReturnCtx(e);return P(t,{received:t.data,code:O.invalid_literal,expected:this._def.value}),I}return{status:`valid`,value:e.data}}get value(){return this._def.value}};jt.create=(e,t)=>new jt({value:e,typeName:$.ZodLiteral,...W(t)});function Mt(e,t){return new Nt({values:e,typeName:$.ZodEnum,...W(t)})}var Nt=class e extends G{_parse(e){if(typeof e.data!=`string`){let t=this._getOrReturnCtx(e),n=this._def.values;return P(t,{expected:T.joinValues(n),received:t.parsedType,code:O.invalid_type}),I}if(this._cache||=new Set(this._def.values),!this._cache.has(e.data)){let t=this._getOrReturnCtx(e),n=this._def.values;return P(t,{received:t.data,code:O.invalid_enum_value,options:n}),I}return L(e.data)}get options(){return this._def.values}get enum(){let e={};for(let t of this._def.values)e[t]=t;return e}get Values(){let e={};for(let t of this._def.values)e[t]=t;return e}get Enum(){let e={};for(let t of this._def.values)e[t]=t;return e}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(e=>!t.includes(e)),{...this._def,...n})}};Nt.create=Mt;var Pt=class extends G{_parse(e){let t=T.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==E.string&&n.parsedType!==E.number){let e=T.objectValues(t);return P(n,{expected:T.joinValues(e),received:n.parsedType,code:O.invalid_type}),I}if(this._cache||=new Set(T.getValidEnumValues(this._def.values)),!this._cache.has(e.data)){let e=T.objectValues(t);return P(n,{received:n.data,code:O.invalid_enum_value,options:e}),I}return L(e.data)}get enum(){return this._def.values}};Pt.create=(e,t)=>new Pt({values:e,typeName:$.ZodNativeEnum,...W(t)});var Ft=class extends G{unwrap(){return this._def.type}_parse(e){let{ctx:t}=this._processInputParams(e);return t.parsedType!==E.promise&&t.common.async===!1?(P(t,{code:O.invalid_type,expected:E.promise,received:t.parsedType}),I):L((t.parsedType===E.promise?t.data:Promise.resolve(t.data)).then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}};Ft.create=(e,t)=>new Ft({type:e,typeName:$.ZodPromise,...W(t)});var Z=class extends G{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){let{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{P(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 I;let r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return r.status===`aborted`?I:r.status===`dirty`||t.value===`dirty`?Le(r.value):r});{if(t.value===`aborted`)return I;let r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return r.status===`aborted`?I:r.status===`dirty`||t.value===`dirty`?Le(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`?I:(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`?I:(n.status===`dirty`&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if(r.type===`transform`)if(n.common.async===!1){let e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!B(e))return I;let a=r.transform(e.value,i);if(a instanceof Promise)throw Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>B(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):I);T.assertNever(r)}};Z.create=(e,t,n)=>new Z({schema:e,typeName:$.ZodEffects,effect:t,...W(n)}),Z.createWithPreprocess=(e,t,n)=>new Z({schema:t,effect:{type:`preprocess`,transform:e},typeName:$.ZodEffects,...W(n)});var Q=class extends G{_parse(e){return this._getType(e)===E.undefined?L(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};Q.create=(e,t)=>new Q({innerType:e,typeName:$.ZodOptional,...W(t)});var It=class extends G{_parse(e){return this._getType(e)===E.null?L(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}};It.create=(e,t)=>new It({innerType:e,typeName:$.ZodNullable,...W(t)});var Lt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return t.parsedType===E.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}};Lt.create=(e,t)=>new Lt({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default==`function`?t.default:()=>t.default,...W(t)});var Rt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return V(r)?r.then(e=>({status:`valid`,value:e.status===`valid`?e.value:this._def.catchValue({get error(){return new k(n.common.issues)},input:n.data})})):{status:`valid`,value:r.status===`valid`?r.value:this._def.catchValue({get error(){return new k(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};Rt.create=(e,t)=>new Rt({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch==`function`?t.catch:()=>t.catch,...W(t)});var zt=class extends G{_parse(e){if(this._getType(e)!==E.nan){let t=this._getOrReturnCtx(e);return P(t,{code:O.invalid_type,expected:E.nan,received:t.parsedType}),I}return{status:`valid`,value:e.data}}};zt.create=e=>new zt({typeName:$.ZodNaN,...W(e)});var Bt=class extends G{_parse(e){let{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}},Vt=class e extends G{_parse(e){let{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{let e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return e.status===`aborted`?I:e.status===`dirty`?(t.dirty(),Le(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`?I:e.status===`dirty`?(t.dirty(),{status:`dirty`,value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(t,n){return new e({in:t,out:n,typeName:$.ZodPipeline})}},Ht=class extends G{_parse(e){let t=this._def.innerType._parse(e),n=e=>(B(e)&&(e.value=Object.freeze(e.value)),e);return V(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}};Ht.create=(e,t)=>new Ht({innerType:e,typeName:$.ZodReadonly,...W(t)}),Y.lazycreate;var $;(function(e){e.ZodString=`ZodString`,e.ZodNumber=`ZodNumber`,e.ZodNaN=`ZodNaN`,e.ZodBigInt=`ZodBigInt`,e.ZodBoolean=`ZodBoolean`,e.ZodDate=`ZodDate`,e.ZodSymbol=`ZodSymbol`,e.ZodUndefined=`ZodUndefined`,e.ZodNull=`ZodNull`,e.ZodAny=`ZodAny`,e.ZodUnknown=`ZodUnknown`,e.ZodNever=`ZodNever`,e.ZodVoid=`ZodVoid`,e.ZodArray=`ZodArray`,e.ZodObject=`ZodObject`,e.ZodUnion=`ZodUnion`,e.ZodDiscriminatedUnion=`ZodDiscriminatedUnion`,e.ZodIntersection=`ZodIntersection`,e.ZodTuple=`ZodTuple`,e.ZodRecord=`ZodRecord`,e.ZodMap=`ZodMap`,e.ZodSet=`ZodSet`,e.ZodFunction=`ZodFunction`,e.ZodLazy=`ZodLazy`,e.ZodLiteral=`ZodLiteral`,e.ZodEnum=`ZodEnum`,e.ZodEffects=`ZodEffects`,e.ZodNativeEnum=`ZodNativeEnum`,e.ZodOptional=`ZodOptional`,e.ZodNullable=`ZodNullable`,e.ZodDefault=`ZodDefault`,e.ZodCatch=`ZodCatch`,e.ZodPromise=`ZodPromise`,e.ZodBranded=`ZodBranded`,e.ZodPipeline=`ZodPipeline`,e.ZodReadonly=`ZodReadonly`})($||={});var Ut=st.create;lt.create,zt.create,ut.create,dt.create,ft.create,pt.create,mt.create,ht.create,gt.create,_t.create,J.create,vt.create,yt.create;var Wt=Y.create;Y.strictCreate,xt.create,St.create,wt.create,Tt.create,Et.create,Dt.create,Ot.create,kt.create,At.create,jt.create,Nt.create,Pt.create,Ft.create,Z.create,Q.create,It.create,Z.createWithPreprocess,Vt.create;function Gt(){let{t:e}=r(),n=o({dropFieldsInput:``,requestDefaultsInput:``,injectHeadersInput:``,exists:!1});async function i(r){try{let e=await h.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){w.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 w.error(e(`providers.transform.requestDefaultsJsonError`)),Promise.resolve()}let o=null;if(n.value.injectHeadersInput.trim())try{o=JSON.parse(n.value.injectHeadersInput)}catch{return w.error(e(`providers.transform.injectHeadersJsonError`)),Promise.resolve()}return h.upsertTransformRules(r,{drop_fields:i,request_defaults:a,inject_headers:o,is_active:1}).then(()=>{n.value.exists=!0,w.success(e(`providers.transform.saved`))}).catch(n=>w.error(t(n,e(`common.saveFailed`))))}function s(r){return r?h.deleteTransformRules(r).then(()=>{n.value.dropFieldsInput=``,n.value.requestDefaultsInput=``,n.value.injectHeadersInput=``,n.value.exists=!1,w.success(e(`providers.transform.deleted`))}).catch(n=>w.error(t(n,e(`providers.transform.deleteFailed`)))):Promise.resolve()}return{transformForm:n,loadTransformRules:i,saveTransformRules:a,handleDeleteTransformRules:s}}var Kt={class:`p-6`},qt={class:`flex items-center justify-between mb-4`},Jt={class:`text-lg font-semibold text-foreground`},Yt={class:`flex items-center gap-2`},Xt={class:`bg-card rounded-lg border overflow-hidden`},Zt={class:`flex items-center gap-1`},Qt={class:`font-mono text-xs text-muted-foreground`},$t={class:`flex flex-wrap gap-1`},en={key:0,class:`ml-1 text-muted-foreground`},tn={key:0,class:`text-muted-foreground text-xs`},nn={key:2,class:`text-muted-foreground`},rn={key:0,class:`rounded-md border-2 border-primary/30 bg-primary/5 p-3 space-y-2`},an={class:`flex items-center gap-1.5 text-xs font-semibold text-primary`},on={class:`flex gap-2`},sn={key:1,class:`flex flex-col items-center justify-center py-10 text-muted-foreground`},cn={class:`text-sm`},ln={class:`grid grid-cols-2 gap-3`},un={key:0,class:`text-xs text-destructive mt-0.5`},dn={key:0,class:`text-xs text-destructive mt-0.5`},fn={key:0,class:`text-xs text-destructive mt-0.5`},pn={class:`grid grid-cols-3 gap-2 mb-3`},mn={class:`flex items-center gap-1.5 mt-1.5`},hn={class:`flex gap-2`},gn={class:`grid grid-cols-2 gap-4`},_n={class:`border rounded-md p-3 space-y-3`},vn={class:`text-xs font-medium text-muted-foreground`},yn={class:`border rounded-md p-3 space-y-3`},bn={class:`text-xs font-medium text-muted-foreground`},xn={key:0,class:`mt-2 space-y-1`},Sn={class:`text-sm font-medium`},Cn=3,wn=10,Tn=12e4,En=10,Dn=100,On=1e3,kn=1e3,An=1e6,jn=7,Mn=7,Nn=2e3,Pn=e({__name:`Providers`,setup(e){let s=[{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`}],T={openai:`OpenAI Chat Completions`,"openai-responses":`OpenAI Responses`,anthropic:`Anthropic Messages`},Ie={name:``,api_type:`anthropic`,base_url:``,upstream_path:``,api_key:``,models:[],is_active:!0,max_concurrency:wn,queue_timeout_ms:Tn,max_queue_size:En,adaptive_enabled:!0},E=o(``),D=o(Ae),O=a({get:()=>String(D.value),set:e=>{D.value=Number(e)}}),k=o([]),A=o([]),j=o(!1),M=o(null),N=o(null),P=o(null),F=o(null),I=o(!1),Le=o([]),L=o({...Ie}),R=o({}),z=o(`auto`),{t:B}=r(),{transformForm:V,loadTransformRules:H,saveTransformRules:U}=Gt(),Re=o(null),W=o(!1);function G(){let e=Wt({name:Ut().min(1,B(`providers.validation.nameRequired`)).regex(/^[a-zA-Z0-9_-]+$/,B(`providers.validation.namePattern`)),base_url:Ut().min(1,B(`providers.validation.baseUrlRequired`)).url(B(`providers.validation.baseUrlInvalid`))}),t={},n=e.safeParse({name:L.value.name.trim(),base_url:L.value.base_url.trim()});if(!n.success)for(let e of n.error.issues){let n=e.path[0];t[n]||(t[n]=e.message)}if(!M.value&&!L.value.api_key.trim()&&(t.api_key=B(`providers.validation.apiKeyRequired`)),z.value!==`none`){let e=L.value.max_concurrency;(!e||e<1||e>Dn)&&(t.max_concurrency=B(`providers.validation.concurrencyRange`,{min:1,max:Dn})),L.value.queue_timeout_ms<0&&(t.queue_timeout_ms=B(`providers.validation.negativeNotAllowed`));let n=L.value.max_queue_size;(!n||n<1||n>On)&&(t.max_queue_size=B(`providers.validation.queueSizeRange`,{min:1,max:On}))}return R.value=t,Object.keys(t).length===0}function ze(e){return e?e.slice(0,jn)+`*`.repeat(Mn):``}function Be(e){return e>=An?`${e/An}M`:e>=kn?`${e/kn}K`:String(e)}async function Ve(e,t){await navigator.clipboard.writeText(e),Re.value=t,setTimeout(()=>{Re.value=null},Nn)}let K=o(``),q=o(``),He=a(()=>K.value?A.value.find(e=>e.group===K.value)?.presets??[]:[]);function Ue(){if(K.value===`__custom__`){q.value=``,L.value.name=``,L.value.api_type=`openai`,L.value.base_url=``,L.value.models=[];return}let e=A.value.find(e=>e.group===K.value)?.presets;e?.length?(q.value=e[0].plan,We()):q.value=``}function We(){let e=He.value.find(e=>e.plan===q.value);e&&(L.value.name=e.presetName,L.value.api_type=e.apiType,L.value.base_url=e.baseUrl,L.value.models=e.models.map(t=>({name:t,context_window:je(t),patches:Ze(t,e.apiType)})))}async function Ge(){try{k.value=await h.getProviders()}catch(e){console.error(`Failed to load providers:`,e),w.error(t(e,B(`providers.toast.loadFailed`)))}}function Ke(){let e=E.value.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let e of t)L.value.models.some(t=>t.name===e)||L.value.models.push({name:e,context_window:D.value||2e5,patches:[]});E.value=``,D.value=Ae}function qe(e){L.value.models.splice(e,1)}function Je(e){return e.includes(`api.openai.com`)}function Ye(e,t){L.value.models[e].context_window=t.contextWindow,L.value.models[e].patches=t.patches}function Xe(e,t){let n=Number(t);n>0?L.value.models[e].stream_timeout_ms=n*1e3:L.value.models[e].stream_timeout_ms=null}function Ze(e,t){let n=[];return e.toLowerCase().includes(`deepseek`)&&(t===`anthropic`?n.push(`thinking-param`,`cache-control`,`thinking-blocks`,`orphan-tool-results`):n.push(`non-ds-tools`,`orphan-tool-results-oa`)),n}function Qe(e){e===`auto`?((!L.value.max_concurrency||L.value.max_concurrency<1)&&(L.value.max_concurrency=wn),L.value.adaptive_enabled=!0):e===`manual`&&((!L.value.max_concurrency||L.value.max_concurrency<1)&&(L.value.max_concurrency=Cn),L.value.adaptive_enabled=!1)}function $e(){M.value=null,L.value={...Ie,models:[]},z.value=`auto`,E.value=``,D.value=Ae,K.value=``,q.value=``,R.value={},j.value=!0}function et(e){M.value=e.id;let t=e.max_concurrency??0;t===0?z.value=`none`:e.adaptive_enabled?z.value=`auto`:z.value=`manual`,L.value={name:e.name,api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||``,api_key:``,models:(e.models||[]).map(e=>({name:e.name,context_window:e.context_window??2e5,patches:e.patches??[],stream_timeout_ms:e.stream_timeout_ms??null})),is_active:!!e.is_active,max_concurrency:z.value===`none`?wn:t,queue_timeout_ms:e.queue_timeout_ms??Tn,max_queue_size:e.max_queue_size??En,adaptive_enabled:z.value===`auto`},E.value=``,D.value=Ae,K.value=``,q.value=``,R.value={},j.value=!0,H(e.id)}function tt(){let e={name:L.value.name,api_type:L.value.api_type,base_url:L.value.base_url,upstream_path:L.value.upstream_path||void 0,models:L.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0,stream_timeout_ms:e.stream_timeout_ms??void 0})),is_active:+!!L.value.is_active,max_concurrency:z.value===`none`?0:L.value.max_concurrency,queue_timeout_ms:z.value===`none`?0:L.value.queue_timeout_ms,max_queue_size:z.value===`none`?En:L.value.max_queue_size,adaptive_enabled:+(z.value===`auto`)};return L.value.api_key&&(e.api_key=L.value.api_key),e}async function nt(){if(G())try{let e=tt();e.name=L.value.name.trim();let t=M.value;M.value?await h.updateProvider(M.value,e):(e.api_key=L.value.api_key,t=(await h.createProvider(e)).id),await U(t),j.value=!1,await Ge()}catch(e){console.error(`Failed to save provider:`,e),w.error(t(e,B(`providers.toast.saveFailed`)))}}function rt(e){N.value=e}async function it(e){if(P.value=e,F.value=e.id,I.value=!!e.is_active,Le.value=[],e.is_active)try{Le.value=(await h.getProviderDependencies(e.id)).references}catch{}}async function at(){let e=F.value;if(!e)return;let n=I.value;P.value=null,F.value=null;try{let t=await h.updateProvider(e,{is_active:+!n});if(t.cascadedGroups?.length){let e=t.cascadedGroups.filter(e=>e.disabled).length,n=t.cascadedGroups.length-e,r=[];n>0&&r.push(B(`providers.toast.cascadeClean`,{count:n})),e>0&&r.push(B(`providers.toast.cascadeDisable`,{count:e})),w.warning(B(`providers.toast.cascadeAuto`,{actions:r.join(`, `)}))}await Ge()}catch(e){console.error(`Failed to toggle provider:`,e),w.error(t(e,B(`providers.toast.toggleFailed`)))}}async function ot(){let e=N.value;if(e){N.value=null;try{await h.deleteProvider(e.id),await Ge()}catch(e){w.error(t(e,B(`providers.toast.deleteFailed`)))}}}async function st(){W.value=!0;try{let e=await h.reloadTransformRules();w.success(B(`providers.toast.reloadSuccess`,{pluginCount:e.loadedPlugins.length,rulesCount:e.rulesCount}))}catch(e){w.error(t(e,B(`providers.toast.reloadFailed`)))}finally{W.value=!1}}return re(async()=>{let[e]=await Promise.allSettled([h.recommended.getProviders(),Ge()]);e.status===`fulfilled`?A.value=e.value:(A.value=[],console.error(`Failed to load provider presets:`,e.reason))}),(e,t)=>(m(),d(`div`,Kt,[v(`div`,qt,[v(`h2`,Jt,u(b(B)(`providers.title`)),1),v(`div`,Yt,[c(b(g),{variant:`outline`,size:`sm`,onClick:st,disabled:W.value},{default:y(()=>[c(b(Fe),{class:te([`w-4 h-4 mr-1`,{"animate-spin":W.value}])},null,8,[`class`]),p(` `+u(b(B)(`providers.reloadPlugin`)),1)]),_:1},8,[`disabled`]),c(b(g),{onClick:$e,class:`flex items-center gap-1`},{default:y(()=>[t[23]||=v(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[v(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),p(` `+u(b(B)(`providers.addProvider`)),1)]),_:1})])]),v(`div`,Xt,[c(b(se),null,{default:y(()=>[c(b(fe),null,{default:y(()=>[c(b(ce),{class:`bg-muted`},{default:y(()=>[c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.name`)),1)]),_:1}),c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.type`)),1)]),_:1}),c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.baseUrl`)),1)]),_:1}),c(b(x),{class:`text-xs`},{default:y(()=>[...t[24]||=[p(`Path`,-1)]]),_:1}),c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.apiKey`)),1)]),_:1}),c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.models`)),1)]),_:1}),c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.concurrency`)),1)]),_:1}),c(b(x),{class:`text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.status`)),1)]),_:1}),c(b(x),{class:`text-right text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),c(b(oe),null,{default:y(()=>[(m(!0),d(l,null,_(k.value,e=>(m(),i(b(ce),{key:e.id,class:te({"opacity-60":!e.is_active})},{default:y(()=>[c(b(S),{class:`font-medium`},{default:y(()=>[p(u(e.name),1)]),_:2},1024),c(b(S),null,{default:y(()=>[c(b(he),{variant:`secondary`},{default:y(()=>[p(u(T[e.api_type]??e.api_type),1)]),_:2},1024)]),_:2},1024),c(b(S),{class:`text-muted-foreground`},{default:y(()=>[p(u(e.base_url),1)]),_:2},1024),c(b(S),{class:`text-muted-foreground text-xs`},{default:y(()=>[p(u(e.upstream_path||(e.api_type===`anthropic`?`/v1/messages`:`/v1/chat/completions`)),1)]),_:2},1024),c(b(S),null,{default:y(()=>[v(`div`,Zt,[v(`span`,Qt,u(ze(e.api_key)),1),c(b(g),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>Ve(e.api_key,e.id)},{default:y(()=>[(m(),i(ne(Re.value===e.id?b(we):b(ie)),{class:te([`w-3.5 h-3.5`,{"text-success":Re.value===e.id}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])]),_:2},1024),c(b(S),null,{default:y(()=>[v(`div`,$t,[(m(!0),d(l,null,_(e.models||[],e=>(m(),i(b(he),{key:e.name,variant:`secondary`,class:`text-xs`},{default:y(()=>[p(u(e.name)+` `,1),e.context_window?(m(),d(`span`,en,`(`+u(Be(e.context_window))+`)`,1)):f(``,!0)]),_:2},1024))),128)),e.models?.length?f(``,!0):(m(),d(`span`,tn,`-`))])]),_:2},1024),c(b(S),null,{default:y(()=>[e.adaptive_enabled?(m(),i(b(he),{key:0,variant:`outline`},{default:y(()=>[p(u(b(B)(`common.adaptive`)),1)]),_:1})):e.max_concurrency>0?(m(),i(b(he),{key:1,variant:`secondary`},{default:y(()=>[p(u(e.max_concurrency),1)]),_:2},1024)):(m(),d(`span`,nn,`-`))]),_:2},1024),c(b(S),null,{default:y(()=>[c(b(g),{variant:`ghost`,size:`sm`,class:`gap-1.5`,onClick:t=>it(e)},{default:y(()=>[v(`span`,{class:te([`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full transition-colors`,e.is_active?`bg-primary`:`bg-input`])},[v(`span`,{class:te([`inline-block h-3 w-3 rounded-full bg-background shadow-sm transition-transform`,e.is_active?`translate-x-3.5`:`translate-x-0.5`])},null,2)],2),c(b(he),{variant:e.is_active?`default`:`secondary`},{default:y(()=>[p(u(e.is_active?b(B)(`common.enabled`):b(B)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1032,[`onClick`])]),_:2},1024),c(b(S),{class:`text-right`},{default:y(()=>[c(b(g),{variant:`ghost`,size:`sm`,onClick:t=>et(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:y(()=>[p(u(b(B)(`common.edit`)),1)]),_:1},8,[`onClick`]),c(b(g),{variant:`ghost`,size:`sm`,onClick:t=>rt(e),class:`text-muted-foreground hover:text-destructive`},{default:y(()=>[p(u(b(B)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),k.value.length===0?(m(),i(b(ce),{key:0},{default:y(()=>[c(b(S),{colspan:`9`,class:`text-center text-muted-foreground py-8`},{default:y(()=>[p(u(b(B)(`providers.noProviders`)),1)]),_:1})]),_:1})):f(``,!0)]),_:1})]),_:1})]),c(b(ue),{open:j.value,"onUpdate:open":t[20]||=e=>j.value=e},{default:y(()=>[c(b(ae),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:y(()=>[c(b(le),null,{default:y(()=>[c(b(pe),null,{default:y(()=>[p(u(M.value?b(B)(`providers.editProvider`):b(B)(`providers.addProvider`)),1)]),_:1})]),_:1}),v(`form`,{onSubmit:ee(nt,[`prevent`]),class:`space-y-4`},[M.value?f(``,!0):(m(),d(`div`,rn,[v(`div`,an,[t[25]||=v(`svg`,{class:`w-3.5 h-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`},[v(`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),p(` `+u(b(B)(`providers.template.title`)),1)]),v(`div`,on,[c(b(ye),{modelValue:K.value,"onUpdate:modelValue":[t[0]||=e=>K.value=e,Ue]},{default:y(()=>[c(b(Ee),{class:`flex-1 border-primary/40`},{default:y(()=>[c(b(ve),{placeholder:b(B)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),c(b(be),null,{default:y(()=>[c(b(Ce),{value:`__custom__`},{default:y(()=>[p(u(b(B)(`providers.template.custom`)),1)]),_:1}),(m(!0),d(l,null,_(A.value,e=>(m(),i(b(Ce),{key:e.group,value:e.group},{default:y(()=>[p(u(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),K.value===`__custom__`?f(``,!0):(m(),i(b(ye),{key:0,modelValue:q.value,"onUpdate:modelValue":[t[1]||=e=>q.value=e,We],disabled:!K.value||K.value===`__custom__`},{default:y(()=>[c(b(Ee),{class:`flex-1 border-primary/40`},{default:y(()=>[c(b(ve),{placeholder:b(B)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),c(b(be),null,{default:y(()=>[(m(!0),d(l,null,_(He.value,e=>(m(),i(b(Ce),{key:e.plan,value:e.plan},{default:y(()=>[p(u(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`]))])])),!K.value&&!M.value?(m(),d(`div`,sn,[t[26]||=v(`svg`,{class:`w-10 h-10 mb-3 opacity-30`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`},[v(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),v(`path`,{d:`M9 12l2 2 4-4`})],-1),v(`span`,cn,u(b(B)(`providers.template.selectFirst`)),1)])):f(``,!0),K.value||M.value?(m(),d(l,{key:2},[v(`div`,ln,[v(`div`,null,[c(b(C),{class:`text-xs text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.fields.name`)),1)]),_:1}),c(b(ke),{modelValue:L.value.name,"onUpdate:modelValue":t[2]||=e=>L.value.name=e,type:`text`,required:``,class:`mt-1`,onInput:t[3]||=e=>delete R.value.name},null,8,[`modelValue`]),R.value.name?(m(),d(`p`,un,u(R.value.name),1)):f(``,!0)]),v(`div`,null,[c(b(C),{class:`text-xs text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.fields.apiType`)),1)]),_:1}),c(b(ye),{modelValue:L.value.api_type,"onUpdate:modelValue":t[4]||=e=>L.value.api_type=e,class:`mt-1`},{default:y(()=>[c(b(Ee),null,{default:y(()=>[c(b(ve),{placeholder:b(B)(`common.pleaseSelect`)},null,8,[`placeholder`])]),_:1}),c(b(be),null,{default:y(()=>[c(b(Ce),{value:`openai`},{default:y(()=>[...t[27]||=[p(`OpenAI Chat Completions`,-1)]]),_:1}),c(b(Ce),{value:`openai-responses`},{default:y(()=>[...t[28]||=[p(`OpenAI Responses`,-1)]]),_:1}),c(b(Ce),{value:`anthropic`},{default:y(()=>[...t[29]||=[p(`Anthropic Messages`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),v(`div`,null,[c(b(C),{class:`text-xs text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.fields.baseUrl`)),1)]),_:1}),c(b(ke),{modelValue:L.value.base_url,"onUpdate:modelValue":t[5]||=e=>L.value.base_url=e,type:`url`,required:``,class:`mt-1 font-mono text-xs`,onInput:t[6]||=e=>delete R.value.base_url},null,8,[`modelValue`]),R.value.base_url?(m(),d(`p`,dn,u(R.value.base_url),1)):f(``,!0)]),v(`div`,null,[c(b(C),{class:`text-xs text-muted-foreground`},{default:y(()=>[p(u(b(B)(`providers.fields.apiKey`)),1)]),_:1}),c(b(ke),{modelValue:L.value.api_key,"onUpdate:modelValue":t[7]||=e=>L.value.api_key=e,type:`text`,required:!M.value,placeholder:M.value?b(B)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1`,onInput:t[8]||=e=>delete R.value.api_key},null,8,[`modelValue`,`required`,`placeholder`]),R.value.api_key?(m(),d(`p`,fn,u(R.value.api_key),1)):f(``,!0)])]),v(`div`,null,[c(b(C),{class:`text-xs`},{default:y(()=>[...t[30]||=[p(`Upstream Path`,-1)]]),_:1}),c(b(ke),{modelValue:L.value.upstream_path,"onUpdate:modelValue":t[9]||=e=>L.value.upstream_path=e,placeholder:`默认: /v1/chat/completions 或 /v1/messages`,class:`mt-1 font-mono text-xs`},null,8,[`modelValue`]),t[31]||=v(`p`,{class:`text-xs text-muted-foreground mt-0.5`},`留空使用 API 类型默认路径`,-1)]),v(`div`,null,[c(b(C),{class:`text-xs text-muted-foreground mb-2`},{default:y(()=>[p(u(b(B)(`providers.fields.availableModels`)),1)]),_:1}),v(`div`,pn,[(m(!0),d(l,null,_(L.value.models,(e,n)=>(m(),d(`div`,{key:n},[c(Me,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":L.value.api_type,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!Je(L.value.base_url),"onUpdate:model":e=>Ye(n,e),onRemove:e=>qe(n)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`onUpdate:model`,`onRemove`]),v(`div`,mn,[c(b(C),{class:`text-xs text-muted-foreground whitespace-nowrap`},{default:y(()=>[...t[32]||=[p(`Timeout(s)`,-1)]]),_:1}),c(b(ke),{type:`number`,"model-value":e.stream_timeout_ms?Math.round(e.stream_timeout_ms/1e3):``,"onUpdate:modelValue":e=>Xe(n,e),placeholder:`默认`,class:`h-7 text-xs`,min:`1`},null,8,[`model-value`,`onUpdate:modelValue`])])]))),128))]),v(`div`,hn,[c(b(ke),{modelValue:E.value,"onUpdate:modelValue":t[10]||=e=>E.value=e,placeholder:b(B)(`providers.fields.modelInputPlaceholder`),onKeydown:n(ee(Ke,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),c(b(ye),{modelValue:O.value,"onUpdate:modelValue":t[11]||=e=>O.value=e},{default:y(()=>[c(b(Ee),{class:`w-28`},{default:y(()=>[c(b(ve),{placeholder:b(B)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),c(b(be),null,{default:y(()=>[(m(),d(l,null,_(s,e=>c(b(Ce),{key:e.value,value:e.value},{default:y(()=>[p(u(e.label),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`]),c(b(g),{type:`button`,variant:`outline`,size:`sm`,onClick:Ke,disabled:!E.value.trim()},{default:y(()=>[p(u(b(B)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])]),v(`div`,gn,[v(`div`,_n,[v(`div`,vn,u(b(B)(`providers.concurrency.title`)),1),c(Ne,{mode:z.value,"max-concurrency":L.value.max_concurrency,"queue-timeout-ms":L.value.queue_timeout_ms,"max-queue-size":L.value.max_queue_size,compact:``,"onUpdate:mode":t[12]||=e=>Qe(e),"onUpdate:maxConcurrency":t[13]||=e=>L.value.max_concurrency=e,"onUpdate:queueTimeoutMs":t[14]||=e=>L.value.queue_timeout_ms=e,"onUpdate:maxQueueSize":t[15]||=e=>L.value.max_queue_size=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),v(`div`,yn,[v(`div`,bn,u(b(B)(`providers.transform.title`)),1),c(Pe,{"inject-headers":b(V).injectHeadersInput,"drop-fields":b(V).dropFieldsInput,"request-defaults":b(V).requestDefaultsInput,"onUpdate:injectHeaders":t[16]||=e=>b(V).injectHeadersInput=e,"onUpdate:dropFields":t[17]||=e=>b(V).dropFieldsInput=e,"onUpdate:requestDefaults":t[18]||=e=>b(V).requestDefaultsInput=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])])],64)):f(``,!0),c(b(de),null,{default:y(()=>[c(b(g),{type:`button`,variant:`outline`,onClick:t[19]||=e=>j.value=!1},{default:y(()=>[p(u(b(B)(`common.cancel`)),1)]),_:1}),c(b(g),{type:`submit`},{default:y(()=>[p(u(b(B)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),c(b(_e),{open:!!N.value,"onUpdate:open":t[21]||=e=>{e||(N.value=null)}},{default:y(()=>[c(b(ge),null,{default:y(()=>[c(b(me),null,{default:y(()=>[c(b(xe),null,{default:y(()=>[p(u(b(B)(`providers.confirmDelete.title`)),1)]),_:1}),c(b(De),null,{default:y(()=>[p(u(b(B)(`providers.confirmDelete.message`,{name:N.value?.name})),1)]),_:1})]),_:1}),c(b(Te),null,{default:y(()=>[c(b(Se),null,{default:y(()=>[p(u(b(B)(`common.cancel`)),1)]),_:1}),c(b(g),{variant:`destructive`,onClick:ot},{default:y(()=>[p(u(b(B)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),c(b(_e),{open:!!P.value,"onUpdate:open":t[22]||=e=>{e||(P.value=null)}},{default:y(()=>[c(b(ge),null,{default:y(()=>[c(b(me),null,{default:y(()=>[c(b(xe),null,{default:y(()=>[p(u(P.value?.is_active?b(B)(`providers.confirmToggle.titleDisable`):b(B)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),c(b(De),null,{default:y(()=>[p(u(P.value?.is_active?b(B)(`providers.confirmToggle.messageDisable`,{name:P.value?.name}):b(B)(`providers.confirmToggle.messageEnable`,{name:P.value?.name}))+` `,1),Le.value.length?(m(),d(`div`,xn,[v(`div`,Sn,u(b(B)(`providers.confirmToggle.dependencyWarning`)),1),(m(!0),d(l,null,_(Le.value,e=>(m(),d(`div`,{key:e,class:`text-destructive text-sm`},u(e),1))),128))])):f(``,!0)]),_:1})]),_:1}),c(b(Te),null,{default:y(()=>[c(b(Se),null,{default:y(()=>[p(u(b(B)(`common.cancel`)),1)]),_:1}),c(b(Oe),{onClick:at},{default:y(()=>[p(u(b(B)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Pn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,I as n,Mt as r,Q as i,Vt as a,Wt as o,X as s,Z as c,dt as l,k as u,lt as d,mt as f,n as p,q as m,r as h,wt as g,zt as _}from"./button-DRFSckEU.js";import{t as v}from"./Label-B2lstY9k.js";import{t as y}from"./Switch-BwPbL6O4.js";import{$ as b,r as x}from"./index-Dr-BkaVu.js";import{n as S,t as C}from"./CardContent-DmBQARma.js";import{n as w,t as T}from"./CardTitle-DgwtSVqy.js";var E=e({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(l(),s(`div`,{"data-slot":`card-description`,class:a(_(h)(`text-muted-foreground text-sm`,t.class))},[f(e.$slots,`default`)],2))}}),D={class:`p-6`},O={class:`text-lg font-semibold text-foreground mb-4`},k={class:`flex items-center gap-3`},A={class:`flex items-center gap-3`},j={class:`flex items-center gap-3`},M={class:`flex justify-end mt-4`},N={key:0,class:`flex items-center gap-1`},P={key:1},F=e({__name:`ProxyEnhancement`,setup(e){let{t:a}=n(),f=r(!0),h=r(!1),F=r(!1),I=r(!1);async function L(){try{let e=await u.getProxyEnhancement();f.value=e.tool_round_limit_enabled,h.value=e.tool_call_loop_enabled,F.value=e.stream_loop_enabled}catch(e){console.error(`Failed to load proxy enhancement config:`,e),x.error(t(e,a(`proxyEnhancement.loadFailed`)))}}async function R(){I.value=!0;try{await u.updateProxyEnhancement({tool_call_loop_enabled:h.value,stream_loop_enabled:F.value,tool_round_limit_enabled:f.value}),x.success(a(`common.saveSuccess`))}catch(e){console.error(`Failed to save proxy enhancement config:`,e),x.error(t(e,a(`proxyEnhancement.saveFailed`)))}finally{I.value=!1}}return d(()=>{L()}),(e,t)=>(l(),s(`div`,D,[m(`h2`,O,o(_(a)(`proxyEnhancement.title`)),1),i(_(S),null,{default:g(()=>[i(_(w),null,{default:g(()=>[i(_(T),null,{default:g(()=>[c(o(_(a)(`proxyEnhancement.loopDetection.toolRoundLimit.title`)),1)]),_:1}),i(_(E),null,{default:g(()=>[c(o(_(a)(`proxyEnhancement.loopDetection.toolRoundLimit.description`)),1)]),_:1})]),_:1}),i(_(C),null,{default:g(()=>[m(`div`,k,[i(_(y),{id:`tool-round-limit-toggle`,modelValue:f.value,"onUpdate:modelValue":t[0]||=e=>f.value=e},null,8,[`modelValue`]),i(_(v),{for:`tool-round-limit-toggle`},{default:g(()=>[c(o(f.value?_(a)(`proxyEnhancement.status.enabled`):_(a)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),i(_(S),{class:`mt-4`},{default:g(()=>[i(_(w),null,{default:g(()=>[i(_(T),null,{default:g(()=>[c(o(_(a)(`proxyEnhancement.loopDetection.toolCallLoop.title`)),1)]),_:1}),i(_(E),null,{default:g(()=>[c(o(_(a)(`proxyEnhancement.loopDetection.toolCallLoop.description`)),1)]),_:1})]),_:1}),i(_(C),null,{default:g(()=>[m(`div`,A,[i(_(y),{id:`tool-call-loop-toggle`,modelValue:h.value,"onUpdate:modelValue":t[1]||=e=>h.value=e},null,8,[`modelValue`]),i(_(v),{for:`tool-call-loop-toggle`},{default:g(()=>[c(o(h.value?_(a)(`proxyEnhancement.status.enabled`):_(a)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),i(_(S),{class:`mt-4`},{default:g(()=>[i(_(w),null,{default:g(()=>[i(_(T),null,{default:g(()=>[c(o(_(a)(`proxyEnhancement.loopDetection.streamLoop.title`)),1)]),_:1}),i(_(E),null,{default:g(()=>[c(o(_(a)(`proxyEnhancement.loopDetection.streamLoop.description`)),1)]),_:1})]),_:1}),i(_(C),null,{default:g(()=>[m(`div`,j,[i(_(y),{id:`stream-loop-toggle`,modelValue:F.value,"onUpdate:modelValue":t[2]||=e=>F.value=e},null,8,[`modelValue`]),i(_(v),{for:`stream-loop-toggle`},{default:g(()=>[c(o(F.value?_(a)(`proxyEnhancement.status.enabled`):_(a)(`proxyEnhancement.status.disabled`)),1)]),_:1})])]),_:1})]),_:1}),m(`div`,M,[i(_(p),{disabled:I.value,onClick:R},{default:g(()=>[I.value?(l(),s(`span`,N,[i(_(b),{class:`w-4 h-4 animate-spin`}),c(` `+o(_(a)(`proxyEnhancement.dynamicModel.saving`)),1)])):(l(),s(`span`,P,o(_(a)(`common.save`)),1))]),_:1},8,[`disabled`])])]))}});export{F as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,H as n,I as r,J as i,K as a,M as o,Mt as s,Ot as c,Q as l,U as u,Vt as d,W as f,Wt as p,X as m,Y as h,Z as g,dt as _,k as v,lt as y,n as b,pt as x,q as S,wt as C,xt as w,zt as T}from"./button-DRFSckEU.js";import{r as E,t as D}from"./MappingEntryEditor-auxWvl8S.js";import{t as O}from"./Checkbox-DgWzyASL.js";import{t as k}from"./Label-B2lstY9k.js";import{t as A}from"./Switch-BwPbL6O4.js";import{b as j,f as M,g as N,h as P,m as F,p as I,r as L}from"./index-Dr-BkaVu.js";import{n as R,t as z}from"./CardContent-DmBQARma.js";import{n as B,t as V}from"./CardTitle-DgwtSVqy.js";import{t as H}from"./Input-glS226Q6.js";import{i as U,n as W,r as ee,t as G}from"./ModelCard-DixuS062.js";import{n as K,t as te}from"./TransformRulesForm-C6PBk8zI.js";var q={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,OpenCode:`opencode`,阶跃星辰:`stepfun`};function J(e){return q[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function ne(){let{t:e}=r(),n=s(`claude-code`),i=s([]),c=s(``),l=s(``),u=s(`anthropic`),d=s(``),f=s([]),p=s([]),m=s([]),h=s(new Set),g=s(!1),_=s(`idle`),b=s(`auto`),x=s(10),S=s(12e4),C=s(100),T=s(``),E=s(``),D=s(``),O=s([]),k=s([]),A=a(()=>c.value===`__custom__`),j=a(()=>W.find(e=>e.id===n.value)),M=a(()=>{if(!c.value||!l.value)return;let e=i.value.find(e=>e.group===c.value);if(e)return e.presets.find(e=>e.plan===l.value)}),N=s(``),P=s(``),F=a(()=>A.value?N.value:M.value?.baseUrl??``),I=a(()=>{if(A.value)return P.value;let e=M.value;if(!e)return``;let t=e.apiType===`anthropic`?`/v1/messages`:e.apiType===`openai-responses`?`/v1/responses`:`/v1/chat/completions`;return e.upstreamPath&&e.upstreamPath!==t?e.upstreamPath:``}),R=a(()=>i.value.find(e=>e.group===c.value)?.presets??[]),z=a(()=>!F.value.includes(`openai.com`)),B=a(()=>c.value?{provider:{id:A.value?`__new_custom__`:`__new_${J(c.value)}_${J(l.value)}__`,name:A.value?e(`quickSetup.provider.customProvider`):`${c.value} - ${l.value}`},models:f.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null),V=a(()=>{let e=k.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??128e3}))}));return B.value&&B.value.models.length>0?[...e,B.value]:e}),H=a(()=>{let e=c.value;return m.value.filter(t=>!t.providers||t.providers.length===0?!0:t.providers.includes(e))});function G(e,t){let n=[];return e.toLowerCase().includes(`deepseek`)&&(t===`anthropic`?n.push(`thinking-param`,`cache-control`,`thinking-blocks`,`orphan-tool-results`):n.push(`non-ds-tools`,`orphan-tool-results-oa`)),t===`openai`&&z.value&&n.push(`developer-role`),n}function K(e){f.value=e.models.map(t=>({name:t,contextWindow:U(t),enabled:!0,patches:G(t,e.apiType)}))}function te(e,t=128e3){f.value.push({name:e,contextWindow:t,enabled:!0,patches:G(e,u.value)})}function q(){let e=f.value.filter(e=>e.enabled),t;t=n.value===`pi`?e.map(e=>e.name):ee[n.value]??e.map(e=>e.name),p.value=t.map(r=>{let i=O.value.find(e=>e.client_model===r);if(i){let t={};try{t=JSON.parse(i.rule)}catch{}let n=t.targets??[];return{clientModel:r,targets:n.length>0?n.map(e=>({backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})):[{backend_model:e[0]?.name??``,provider_id:`__new__`}],existing:!0,existingId:i.id,tag:`existing`,active:!!i.is_active,originalActive:!!i.is_active}}return{clientModel:r,targets:[{backend_model:e[t.indexOf(r)]?.name??e[e.length-1]?.name??``,provider_id:`__new__`}],existing:!1,tag:n.value===`pi`?`auto`:`def`,active:!0}})}function ne(){h.value=new Set(H.value.filter(e=>!e.exists).map(e=>e.name))}function Y(e){n.value=e;let t=W.find(t=>t.id===e);if(t){c.value=``,l.value=``;for(let e of i.value)if(e.group===t.defaultProvider){c.value=e.group;for(let n of e.presets)if(n.plan===t.defaultPlan){l.value=n.plan,u.value=n.apiType,K(n);break}break}q(),ne()}}function X(e){if(c.value=e,l.value=``,f.value=[],e===`__custom__`)u.value=`openai`,N.value=``,P.value=``,f.value=[];else{let t=i.value.find(t=>t.group===e);if(t&&t.presets.length>0){let e=j.value,n=(e?t.presets.find(t=>t.apiType===e.format):null)??t.presets[0];l.value=n.plan,u.value=n.apiType,K(n)}}q(),ne()}function re(e){l.value=e;let t=i.value.find(e=>e.group===c.value);if(!t)return;let n=t.presets.find(t=>t.plan===e);n&&(u.value=n.apiType,K(n),q())}w(u,()=>{for(let e of f.value)e.patches=G(e.name,u.value)});function ie(e,t){let n=new Set(h.value);t?n.add(e):n.delete(e),h.value=n}function ae(e,t){let n=[...p.value];n[e]={...n[e],targets:t},p.value=n}function Z(e){let t=[...p.value];t[e]={...t[e],active:!t[e].active},p.value=t}function oe(e,t){let n=p.value.filter(t=>t.clientModel!==e);n.push({clientModel:e,targets:[{backend_model:t,provider_id:`__new__`}],existing:!1,tag:`cust`,active:!0}),p.value=n}function se(t){if(p.value.find(e=>e.clientModel===t)?.existing){L.error(e(`quickSetup.messages.existingMappingDelete`));return}p.value=p.value.filter(e=>e.clientModel!==t)}function ce(e){b.value=e,e===`auto`?x.value=10:e===`manual`&&(x.value=3)}async function le(){if(!d.value.trim()){_.value=`error`,L.error(e(`quickSetup.messages.fillApiKeyFirst`));return}_.value=`testing`,await new Promise(e=>setTimeout(e,800)),_.value=`ok`}function ue(){let t=T.value.trim(),n=E.value.trim(),r=D.value.trim();if(!t&&!n&&!r)return;let i={};if(t)try{i.inject_headers=JSON.parse(t)}catch{return L.error(e(`quickSetup.messages.injectHeadersJsonError`)),!1}if(n&&(i.drop_fields=n.split(`,`).map(e=>e.trim()).filter(Boolean)),r)try{i.request_defaults=JSON.parse(r)}catch{return L.error(e(`quickSetup.messages.requestDefaultsJsonError`)),!1}return Object.keys(i).length>0?i:void 0}async function de(){if(!M.value){L.error(e(`quickSetup.messages.selectProviderAndPlan`));return}if(!d.value.trim()){L.error(e(`quickSetup.messages.fillApiKey`));return}g.value=!0;try{let t={provider:{name:A.value?`custom-${Date.now()}`:`${J(c.value)}-${J(l.value)}`,api_type:u.value,base_url:F.value,upstream_path:I.value||void 0,api_key:d.value.trim(),models:f.value.map(e=>({name:e.name,context_window:e.contextWindow,patches:e.patches.length>0?e.patches:void 0})),concurrency_mode:b.value,max_concurrency:b.value===`none`?void 0:x.value,queue_timeout_ms:b.value===`none`?void 0:S.value,max_queue_size:b.value===`none`?void 0:C.value},mappings:p.value.filter(e=>e.targets[0]?.backend_model).map(e=>({client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``})),retry_rules:H.value.filter(e=>h.value.has(e.name)&&!e.exists).map(e=>({name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms})),transform_rules:(()=>{let e=ue();if(e===!1)throw Error(`__transform_invalid__`);return e})()};await v.quickSetup(t);let n=[];for(let e of p.value)if(e.existing&&e.existingId&&e.originalActive!==void 0&&e.active!==e.originalActive)try{await v.toggleMappingGroup(e.existingId)}catch{n.push(e.clientModel)}n.length>0?L.success(e(`quickSetup.messages.setupCompleteWithErrors`,{count:n.length})):L.success(e(`quickSetup.messages.setupComplete`)),await new Promise(e=>setTimeout(e,1500)),o.push(`/`)}catch(n){L.error(t(n,e(`quickSetup.messages.setupFailed`)))}finally{g.value=!1}}return y(async()=>{try{let[e,t,n,r]=await Promise.all([v.recommended.getProviders(),v.recommended.getRetryRules(),v.getMappingGroups().catch(()=>[]),v.getProviders().catch(()=>[])]);i.value=e,m.value=t,O.value=n,k.value=r,Y(`claude-code`)}catch(n){L.error(t(n,e(`quickSetup.messages.loadFailed`)))}}),{clientType:n,providerGroups:i,selectedGroup:c,selectedPlan:l,apiType:u,apiKey:d,modelConfigs:f,mappingEntries:p,allRecommendedRules:m,recommendedRules:H,selectedRetryRules:h,saving:g,connectionStatus:_,currentClient:j,currentPreset:M,baseUrl:F,customBaseUrl:N,upstreamPath:I,customUpstreamPath:P,isCustomProvider:A,availablePlans:R,isNonOpenaiEndpoint:z,concurrencyMode:b,maxConcurrency:x,queueTimeoutMs:S,maxQueueSize:C,transformInjectHeaders:T,transformDropFields:E,transformRequestDefaults:D,existingMappings:O,allProviders:k,allProviderGroups:V,selectClient:Y,onProviderChange:X,onPlanChange:re,initModels:K,getDefaultPatches:G,updateMappings:q,updateMappingTargets:ae,toggleMappingActive:Z,addMappingEntry:oe,removeMappingEntry:se,toggleRetryRule:ie,onConcurrencyModeChange:ce,testConnection:le,submit:de,addCustomModel:te}}var Y={class:`space-y-1.5`},X={class:`flex items-start gap-2 px-3 py-2`},re=[`onClick`],ie={class:`flex items-center gap-1.5 shrink-0 pt-0.5`},ae={key:0,class:`py-3 text-center text-xs text-muted-foreground`},Z={class:`flex items-center gap-2 pt-2 border-t mt-2`},oe=e({__name:`QuickSetupMappingList`,props:{entries:{},providerGroups:{}},emits:[`update:targets`,`toggle-active`,`add`],setup(e,{emit:t}){let{t:n}=r(),i=t,a=s(new Set);function o(e){let t=new Set(a.value);t.has(e)?t.delete(e):t.add(e),a.value=t}let c=s(``),d=s(``);function v(){return c.value.trim().length>0&&d.value.trim().length>0}function y(){let e=c.value.trim(),t=d.value.trim();e&&t&&(i(`add`,e,t),c.value=``,d.value=``)}function w(e){e.key===`Enter`&&v()&&(e.preventDefault(),y())}return(t,r)=>(_(),m(`div`,Y,[(_(!0),m(f,null,x(e.entries,(t,n)=>(_(),m(`div`,{key:t.clientModel,class:`rounded-md border border-border`},[S(`div`,X,[S(`div`,{class:`flex-1 min-w-0 cursor-pointer`,onClick:e=>o(t.clientModel)},[l(D,{entry:t,"provider-groups":e.providerGroups,expanded:a.value.has(t.clientModel),editable:!0,"onUpdate:targets":e=>i(`update:targets`,n,e)},null,8,[`entry`,`provider-groups`,`expanded`,`onUpdate:targets`])],8,re),S(`div`,ie,[l(T(A),{"model-value":t.active,"onUpdate:modelValue":e=>i(`toggle-active`,n),class:`scale-75`,onClick:r[0]||=u(()=>{},[`stop`])},null,8,[`model-value`,`onUpdate:modelValue`])])])]))),128)),e.entries.length===0?(_(),m(`p`,ae,p(T(n)(`providers.shared.noMappings`)),1)):h(``,!0),S(`div`,Z,[l(T(H),{modelValue:c.value,"onUpdate:modelValue":r[1]||=e=>c.value=e,placeholder:T(n)(`providers.shared.clientModel`),class:`h-8 flex-1 text-xs font-mono`,onKeydown:w},null,8,[`modelValue`,`placeholder`]),l(T(E),{class:`size-3 shrink-0 text-muted-foreground`}),l(T(H),{modelValue:d.value,"onUpdate:modelValue":r[2]||=e=>d.value=e,placeholder:T(n)(`providers.shared.targetModel`),class:`h-8 flex-1 text-xs font-mono`,onKeydown:w},null,8,[`modelValue`,`placeholder`]),l(T(b),{size:`sm`,variant:`outline`,class:`h-8 shrink-0`,disabled:!v(),onClick:y},{default:C(()=>[g(p(T(n)(`providers.shared.add`)),1)]),_:1},8,[`disabled`])])]))}}),se={class:`p-6 space-y-4 pb-20`},ce={class:`flex gap-2 flex-wrap`},le=[`onClick`],ue={class:`text-left`},de={class:`font-medium text-sm leading-tight`},fe={class:`text-[10px] opacity-60 leading-tight`},pe={class:`flex items-end gap-2`},me={class:`w-40 space-y-1`},he={class:`w-48 space-y-1`},ge={class:`w-80 space-y-1`},_e={class:`w-48 space-y-1`},ve={class:`w-28 space-y-1`},ye={class:`w-48 space-y-1`},be={class:`w-72 space-y-1`},xe={key:0,class:`w-48 space-y-1`},Se={class:`w-64 space-y-1`},Ce={class:`shrink-0 space-y-1`},we={class:`border-t pt-3`},Te={class:`flex items-center justify-between mb-2`},Ee={class:`text-xs font-medium text-muted-foreground`},De={key:0,class:`py-4 text-center text-xs text-muted-foreground`},Oe={key:1,class:`grid grid-cols-4 gap-2`},ke={key:2,class:`flex gap-2 mt-2`},Ae={class:`border-t pt-3`},je={class:`flex items-center justify-between mb-2`},Me={class:`text-xs font-medium text-muted-foreground`},Ne={class:`grid grid-cols-5 gap-4`},Pe={class:`flex items-center justify-between`},Fe={class:`col-span-2 space-y-4`},Ie={class:`flex items-center justify-between`},Le={key:0,class:`py-6 text-center text-xs text-muted-foreground`},Re={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},ze=[`onClick`],Be={class:`flex-1 min-w-0`},Ve={class:`flex items-center gap-1.5`},He={class:`text-xs font-medium`},Ue={class:`text-[10px] text-muted-foreground mt-0.5`},We={class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},Ge={class:`text-xs text-muted-foreground flex items-center gap-1.5`},Ke={class:`flex items-center gap-2`},Q=e({__name:`QuickSetup`,setup(e){let{t}=r(),{clientType:o,providerGroups:v,selectedGroup:y,selectedPlan:w,apiType:E,apiKey:D,modelConfigs:A,mappingEntries:U,allRecommendedRules:ee,recommendedRules:q,selectedRetryRules:J,saving:Y,connectionStatus:X,baseUrl:re,availablePlans:ie,isNonOpenaiEndpoint:ae,isCustomProvider:Z,customBaseUrl:Q,upstreamPath:qe,customUpstreamPath:Je,concurrencyMode:Ye,maxConcurrency:Xe,queueTimeoutMs:Ze,maxQueueSize:Qe,allProviderGroups:$e,transformInjectHeaders:et,transformDropFields:tt,transformRequestDefaults:nt,selectClient:rt,onProviderChange:it,onPlanChange:at,updateMappingTargets:ot,toggleMappingActive:st,addMappingEntry:ct,toggleRetryRule:lt,onConcurrencyModeChange:ut,testConnection:dt,submit:ft,addCustomModel:pt}=ne(),$=s(``);function mt(){$.value.trim()&&(pt($.value.trim()),$.value=``)}let ht=a(()=>A.value.filter(e=>e.enabled).length),gt=a(()=>W.find(e=>e.id===o.value)?.name??o.value);function _t(e,t){let n=[...A.value];n[e]=t,A.value=n}function vt(e){A.value=A.value.filter((t,n)=>n!==e)}function yt(){if(!y.value){L.error(t(`quickSetup.messages.selectProvider`));return}if(!D.value.trim()){L.error(t(`quickSetup.messages.fillApiKey`));return}if(ht.value===0){L.error(t(`quickSetup.messages.enableOneModel`));return}L.success(t(`quickSetup.messages.validationPassed`))}return(e,r)=>(_(),m(f,null,[S(`div`,se,[l(T(R),null,{default:C(()=>[l(T(B),{class:`pb-3`},{default:C(()=>[l(T(V),{class:`text-sm font-medium`},{default:C(()=>[g(p(T(t)(`quickSetup.client.selectClient`)),1)]),_:1})]),_:1}),l(T(z),null,{default:C(()=>[S(`div`,ce,[(_(!0),m(f,null,x(T(W),e=>(_(),m(`button`,{key:e.id,class:d([`flex items-center gap-2.5 px-4 py-2.5 rounded-lg border text-sm transition-all cursor-pointer`,T(o)===e.id?`border-primary bg-primary/5 text-primary ring-1 ring-primary/20`:`border-border hover:border-muted-foreground/30 text-muted-foreground hover:text-foreground`]),onClick:t=>T(rt)(e.id)},[S(`span`,{class:d([`w-7 h-7 rounded-md text-xs font-bold flex items-center justify-center shrink-0`,{"bg-purple-600 text-white":e.iconClass===`cc`,"bg-emerald-600 text-white":e.iconClass===`pi`,"bg-blue-600 text-white":e.iconClass===`oa`,"bg-orange-600 text-white":e.iconClass===`an`}])},p(e.icon),3),S(`div`,ue,[S(`div`,de,p(e.name),1),S(`div`,fe,p(e.format)+` · `+p(T(t)(e.descriptionKey)),1)])],10,le))),128))])]),_:1})]),_:1}),l(T(R),null,{default:C(()=>[l(T(B),{class:`pb-3`},{default:C(()=>[l(T(V),{class:`text-sm font-medium`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.config`)),1)]),_:1})]),_:1}),l(T(z),{class:`space-y-4`},{default:C(()=>[S(`div`,pe,[S(`div`,me,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.label`)),1)]),_:1}),l(T(N),{"model-value":T(y),"onUpdate:modelValue":r[0]||=e=>T(it)(e)},{default:C(()=>[l(T(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:C(()=>[l(T(M),{placeholder:T(t)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),l(T(P),null,{default:C(()=>[l(T(F),{value:`__custom__`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.custom`)),1)]),_:1}),(_(!0),m(f,null,x(T(v),e=>(_(),i(T(F),{key:e.group,value:e.group},{default:C(()=>[g(p(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),T(Z)?(_(),m(f,{key:0},[S(`div`,he,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.format`)),1)]),_:1}),l(T(N),{modelValue:T(E),"onUpdate:modelValue":r[1]||=e=>c(E)?E.value=e:null},{default:C(()=>[l(T(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:C(()=>[l(T(M))]),_:1}),l(T(P),null,{default:C(()=>[l(T(F),{value:`anthropic`},{default:C(()=>[...r[15]||=[g(`Anthropic Messages`,-1)]]),_:1}),l(T(F),{value:`openai`},{default:C(()=>[...r[16]||=[g(`OpenAI Chat Completions`,-1)]]),_:1}),l(T(F),{value:`openai-responses`},{default:C(()=>[...r[17]||=[g(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),S(`div`,ge,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[...r[18]||=[g(`Base URL`,-1)]]),_:1}),l(T(H),{modelValue:T(Q),"onUpdate:modelValue":r[2]||=e=>c(Q)?Q.value=e:null,placeholder:`https://api.example.com/v1`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])]),S(`div`,_e,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[...r[19]||=[g(`Upstream Path`,-1)]]),_:1}),l(T(H),{modelValue:T(Je),"onUpdate:modelValue":r[3]||=e=>c(Je)?Je.value=e:null,placeholder:`/v1/chat/completions`,class:`font-mono md:text-xs h-7`},null,8,[`modelValue`])])],64)):(_(),m(f,{key:1},[S(`div`,ve,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.plan`)),1)]),_:1}),l(T(N),{"model-value":T(w),"onUpdate:modelValue":r[4]||=e=>T(at)(e)},{default:C(()=>[l(T(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:C(()=>[l(T(M),{placeholder:T(t)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),l(T(P),null,{default:C(()=>[(_(!0),m(f,null,x(T(ie),e=>(_(),i(T(F),{key:e.plan,value:e.plan},{default:C(()=>[g(p(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),S(`div`,ye,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.format`)),1)]),_:1}),l(T(N),{modelValue:T(E),"onUpdate:modelValue":r[5]||=e=>c(E)?E.value=e:null},{default:C(()=>[l(T(I),{class:`w-full text-xs data-[size=default]:h-7`},{default:C(()=>[l(T(M))]),_:1}),l(T(P),null,{default:C(()=>[l(T(F),{value:`anthropic`},{default:C(()=>[...r[20]||=[g(`Anthropic Messages`,-1)]]),_:1}),l(T(F),{value:`openai`},{default:C(()=>[...r[21]||=[g(`OpenAI Chat Completions`,-1)]]),_:1}),l(T(F),{value:`openai-responses`},{default:C(()=>[...r[22]||=[g(`OpenAI Responses`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),S(`div`,be,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[...r[23]||=[g(`Base URL`,-1)]]),_:1}),l(T(H),{"model-value":T(re),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])]),T(qe)?(_(),m(`div`,xe,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[...r[24]||=[g(`Upstream Path`,-1)]]),_:1}),l(T(H),{"model-value":T(qe),readonly:``,class:`font-mono md:text-xs h-7`},null,8,[`model-value`])])):h(``,!0)],64)),S(`div`,Se,[l(T(k),{class:`text-xs text-muted-foreground`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.apiKey`)),1)]),_:1}),l(T(H),{modelValue:T(D),"onUpdate:modelValue":r[6]||=e=>c(D)?D.value=e:null,type:`password`,placeholder:T(t)(`quickSetup.provider.apiKeyPlaceholder`),class:`md:text-xs h-7`},null,8,[`modelValue`,`placeholder`])]),S(`div`,Ce,[l(T(k),{class:`text-xs text-muted-foreground invisible`},{default:C(()=>[g(p(T(t)(`quickSetup.provider.connect`)),1)]),_:1}),l(T(b),{variant:`outline`,size:`sm`,disabled:T(X)===`testing`,onClick:T(dt)},{default:C(()=>[T(X)===`testing`?(_(),m(f,{key:0},[r[25]||=S(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[S(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),S(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),g(` `+p(T(t)(`quickSetup.provider.testing`)),1)],64)):T(X)===`ok`?(_(),m(f,{key:1},[g(p(T(t)(`quickSetup.provider.connected`)),1)],64)):(_(),m(f,{key:2},[g(p(T(t)(`quickSetup.provider.test`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])]),S(`div`,we,[S(`div`,Te,[S(`span`,Ee,p(T(t)(`quickSetup.model.config`)),1),l(T(j),{variant:`secondary`,class:`text-[10px]`},{default:C(()=>[g(p(ht.value)+`/`+p(T(A).length),1)]),_:1})]),T(A).length===0?(_(),m(`p`,De,p(T(t)(`quickSetup.model.selectProviderFirst`)),1)):(_(),m(`div`,Oe,[(_(!0),m(f,null,x(T(A),(e,t)=>(_(),i(G,{key:e.name,model:e,"api-type":T(E),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":T(ae),"onUpdate:model":e=>_t(t,e),onRemove:e=>vt(t)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`onUpdate:model`,`onRemove`]))),128))])),T(Z)?(_(),m(`div`,ke,[l(T(H),{modelValue:$.value,"onUpdate:modelValue":r[7]||=e=>$.value=e,placeholder:T(t)(`quickSetup.model.namePlaceholder`),onKeydown:n(u(mt,[`prevent`]),[`enter`]),class:`flex-1 md:text-xs h-7`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),l(T(b),{type:`button`,variant:`outline`,size:`sm`,onClick:mt,disabled:!$.value.trim()},{default:C(()=>[g(p(T(t)(`common.add`)),1)]),_:1},8,[`disabled`])])):h(``,!0)]),S(`div`,Ae,[S(`div`,je,[S(`span`,Me,p(T(t)(`quickSetup.concurrency.control`)),1)]),l(K,{mode:T(Ye),"max-concurrency":T(Xe),"queue-timeout-ms":T(Ze),"max-queue-size":T(Qe),"onUpdate:mode":T(ut),"onUpdate:maxConcurrency":r[8]||=e=>Xe.value=e,"onUpdate:queueTimeoutMs":r[9]||=e=>Ze.value=e,"onUpdate:maxQueueSize":r[10]||=e=>Qe.value=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`,`onUpdate:mode`])])]),_:1})]),_:1}),S(`div`,Ne,[l(T(R),{class:`col-span-3`},{default:C(()=>[l(T(B),{class:`pb-3`},{default:C(()=>[S(`div`,Pe,[l(T(V),{class:`text-sm font-medium`},{default:C(()=>[g(p(T(t)(`quickSetup.mapping.title`)),1)]),_:1}),l(T(j),{variant:`secondary`,class:`text-[10px]`},{default:C(()=>[g(p(T(t)(`quickSetup.mapping.count`,{count:T(U).length})),1)]),_:1})])]),_:1}),l(T(z),null,{default:C(()=>[l(oe,{entries:T(U),"provider-groups":T($e),"onUpdate:targets":T(ot),onToggleActive:T(st),onAdd:T(ct)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onToggleActive`,`onAdd`])]),_:1})]),_:1}),S(`div`,Fe,[l(T(R),null,{default:C(()=>[l(T(B),{class:`pb-3`},{default:C(()=>[S(`div`,Ie,[l(T(V),{class:`text-sm font-medium`},{default:C(()=>[g(p(T(t)(`quickSetup.retry.title`)),1)]),_:1}),l(T(j),{variant:`secondary`,class:`text-[10px]`},{default:C(()=>[g(p(T(t)(`quickSetup.retry.selectedCount`,{count:T(J).size})),1)]),_:1})])]),_:1}),l(T(z),null,{default:C(()=>[T(q).length===0?(_(),m(`div`,Le,[T(ee).length===0?(_(),m(f,{key:0},[g(p(T(t)(`quickSetup.retry.allCreated`)),1)],64)):(_(),m(f,{key:1},[g(p(T(t)(`quickSetup.retry.selectProviderFirst`)),1)],64))])):(_(),m(`div`,Re,[(_(!0),m(f,null,x(T(q),e=>(_(),m(`div`,{key:e.name,class:d([`flex items-start gap-2.5 rounded-md transition-colors`,e.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:t=>!e.exists&&T(lt)(e.name,!T(J).has(e.name))},[l(T(O),{checked:e.exists?!0:T(J).has(e.name),disabled:e.exists,class:`mt-0.5`,"onUpdate:checked":t=>T(lt)(e.name,!!t),onClick:r[11]||=u(()=>{},[`stop`])},null,8,[`checked`,`disabled`,`onUpdate:checked`]),S(`div`,Be,[S(`div`,Ve,[S(`span`,He,p(e.name),1),e.exists?(_(),i(T(j),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:C(()=>[g(p(T(t)(`quickSetup.retry.configured`)),1)]),_:1})):e.providers&&e.providers.length>0?(_(),i(T(j),{key:1,variant:`outline`,class:`text-[9px] px-1 py-0 leading-none`},{default:C(()=>[g(p(e.providers[0]),1)]),_:2},1024)):(_(),i(T(j),{key:2,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none`},{default:C(()=>[g(p(T(t)(`quickSetup.retry.general`)),1)]),_:1}))]),S(`div`,Ue,p(e.status_code)+` · `+p(e.retry_strategy===`fixed`?T(t)(`quickSetup.retry.fixed`):T(t)(`quickSetup.retry.exponential`))+` · `+p(e.retry_delay_ms/1e3)+`s · `+p(e.max_retries)+p(T(t)(`quickSetup.retry.times`)),1)])],10,ze))),128))]))]),_:1})]),_:1}),l(T(R),null,{default:C(()=>[l(T(B),{class:`pb-3`},{default:C(()=>[l(T(V),{class:`text-sm font-medium`},{default:C(()=>[g(p(T(t)(`quickSetup.transform.title`)),1)]),_:1})]),_:1}),l(T(z),null,{default:C(()=>[l(te,{"inject-headers":T(et),"drop-fields":T(tt),"request-defaults":T(nt),"onUpdate:injectHeaders":r[12]||=e=>et.value=e,"onUpdate:dropFields":r[13]||=e=>tt.value=e,"onUpdate:requestDefaults":r[14]||=e=>nt.value=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])]),_:1})]),_:1})])])]),S(`div`,We,[S(`div`,Ge,[T(y)?(_(),m(f,{key:0},[l(T(j),{variant:`secondary`,class:`text-[10px]`},{default:C(()=>[g(p(gt.value),1)]),_:1}),r[26]||=S(`span`,{class:`text-muted-foreground/50`},`→`,-1),l(T(j),{variant:`secondary`,class:`text-[10px]`},{default:C(()=>[g(p(T(Z)?T(t)(`quickSetup.provider.custom`):T(y)),1)]),_:1})],64)):h(``,!0),ht.value>0?(_(),m(f,{key:1},[r[27]||=S(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),S(`span`,null,p(T(t)(`quickSetup.footer.models`,{count:ht.value})),1)],64)):h(``,!0),T(U).length>0?(_(),m(f,{key:2},[r[28]||=S(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),S(`span`,null,p(T(t)(`quickSetup.footer.mappings`,{count:T(U).length})),1)],64)):h(``,!0),T(J).size>0?(_(),m(f,{key:3},[r[29]||=S(`span`,{class:`text-muted-foreground/50 mx-0.5`},`·`,-1),S(`span`,null,p(T(t)(`quickSetup.footer.rules`,{count:T(J).size})),1)],64)):h(``,!0)]),S(`div`,Ke,[l(T(b),{size:`sm`,variant:`outline`,onClick:yt},{default:C(()=>[g(p(T(t)(`quickSetup.footer.validate`)),1)]),_:1}),l(T(b),{size:`sm`,disabled:T(Y),onClick:T(ft)},{default:C(()=>[T(Y)?(_(),m(f,{key:0},[r[30]||=S(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[S(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),S(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),g(` `+p(T(t)(`quickSetup.footer.saving`)),1)],64)):(_(),m(f,{key:1},[g(p(T(t)(`quickSetup.footer.saveConfig`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{Q as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,I as n,J as r,K as ee,Mt as i,Q as a,U as te,Vt as ne,W as o,Wt as s,X as c,Y as l,Z as u,dt as d,k as f,lt as p,n as m,pt as h,q as g,wt as _,zt as v}from"./button-DRFSckEU.js";import{t as y}from"./Checkbox-DgWzyASL.js";import{n as re,t as ie}from"./CollapsibleContent-BjJrE5cf.js";import{t as ae}from"./CollapsibleTrigger-C73cozLg.js";import{a as oe,c as b,d as x,f as S,l as C,n as se,o as ce,r as le,s as w,t as ue,u as T}from"./dialog-DxoN_Irc.js";import{t as E}from"./Label-B2lstY9k.js";import{a as de,b as D,c as fe,d as pe,f as me,g as he,h as ge,i as _e,l as ve,m as O,o as ye,p as k,r as A,s as j,tt as M}from"./index-Dr-BkaVu.js";import{n as N,t as P}from"./CardContent-DmBQARma.js";import{n as be,t as F}from"./CardTitle-DgwtSVqy.js";import{t as I}from"./Input-glS226Q6.js";var xe={class:`p-6`},Se={class:`flex items-center justify-between mb-4`},Ce={class:`text-lg font-semibold text-foreground`},we={class:`bg-card rounded-lg border overflow-hidden`},Te={class:`flex items-center gap-2`},Ee={class:`text-xs text-muted-foreground`},De={key:0,class:`text-sm text-destructive mt-1`},Oe={key:0,class:`text-sm text-destructive mt-1`},ke={key:0,class:`text-sm text-destructive mt-1`},Ae={class:`grid grid-cols-2 gap-3`},je={key:0,class:`text-sm text-destructive mt-1`},Me={key:0,class:`text-sm text-destructive mt-1`},Ne={key:0},Pe={key:0,class:`text-sm text-destructive mt-1`},Fe={class:`flex items-center gap-2`},Ie={class:`flex items-center justify-between`},Le={class:`flex items-center justify-between mb-3`},Re={class:`flex items-center gap-2`},ze={class:`text-sm text-muted-foreground`},L=100,R=599,z=100,B=100,V=e({__name:`RetryRules`,setup(e){let{t:V}=n(),H={name:``,status_code:429,body_pattern:``,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4},U=i([]),W=i(!1),G=i(null),K=i(null),q=i({...H}),J=i({});function Be(){let e={};q.value.name.trim()||(e.name=V(`retryRules.validation.nameRequired`));let t=Number(q.value.status_code);if((!Number.isInteger(t)||t<L||t>R)&&(e.status_code=V(`retryRules.validation.statusCodeRange`,{min:L,max:R})),!q.value.body_pattern.trim())e.body_pattern=V(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(q.value.body_pattern)}catch{e.body_pattern=V(`retryRules.validation.bodyPatternInvalid`)}let n=Number(q.value.retry_delay_ms);(!n||n<z)&&(e.retry_delay_ms=V(`retryRules.validation.delayMin`,{min:z}));let r=Number(q.value.max_retries);if((!Number.isInteger(r)||r<0||r>B)&&(e.max_retries=V(`retryRules.validation.retriesRange`,{max:B})),q.value.retry_strategy===`exponential`){let t=Number(q.value.max_delay_ms);(!t||t<z)&&(e.max_delay_ms=V(`retryRules.validation.delayMin`,{min:z}))}return J.value=e,Object.keys(e).length===0}async function Y(){try{U.value=await f.getRetryRules()}catch(e){console.error(`Failed to load retry rules:`,e),A.error(t(e,V(`retryRules.messages.loadFailed`)))}}function Ve(){G.value=null,q.value={...H},J.value={},W.value=!0}function He(e){G.value=e.id,q.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,is_active:!!e.is_active,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms},J.value={},W.value=!0}async function Ue(){if(Be())try{let e={name:q.value.name,status_code:Number(q.value.status_code),body_pattern:q.value.body_pattern,is_active:+!!q.value.is_active,retry_strategy:q.value.retry_strategy,retry_delay_ms:Number(q.value.retry_delay_ms),max_retries:Number(q.value.max_retries),max_delay_ms:Number(q.value.max_delay_ms)};G.value?await f.updateRetryRule(G.value,e):await f.createRetryRule(e),W.value=!1,await Y()}catch(e){console.error(`Failed to save retry rule:`,e),A.error(t(e,V(`retryRules.messages.saveFailed`)))}}function We(e){K.value=e}async function Ge(){let e=K.value;if(e){K.value=null;try{await f.deleteRetryRule(e.id),await Y()}catch(e){console.error(`Failed to delete retry rule:`,e),A.error(t(e,V(`retryRules.messages.deleteFailed`)))}}}let X=i(!1),Z=i([]),Q=i(new Set),Ke=ee(()=>Z.value.length>0&&Q.value.size===Z.value.length);async function $(){try{Z.value=await f.recommended.getRetryRules()}catch{Z.value=[]}}function qe(e){let t=new Set(Q.value);t.has(e)?t.delete(e):t.add(e),Q.value=t}function Je(e){Q.value=e===!0?new Set(Z.value.map(e=>e.name)):new Set}async function Ye(){let e=Z.value.filter(e=>Q.value.has(e.name));for(let t of e)await f.createRetryRule({name:t.name,status_code:t.status_code,body_pattern:t.body_pattern,is_active:1,retry_strategy:t.retry_strategy,retry_delay_ms:t.retry_delay_ms,max_retries:t.max_retries,max_delay_ms:t.max_delay_ms});A.success(V(`retryRules.messages.addedCount`,{count:e.length})),Q.value=new Set,await Promise.allSettled([$(),Y()])}return p(()=>{Y(),$()}),(e,t)=>(d(),c(`div`,xe,[g(`div`,Se,[g(`h2`,Ce,s(v(V)(`retryRules.title`)),1),a(v(m),{onClick:Ve,class:`flex items-center gap-1`},{default:_(()=>[t[18]||=g(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[g(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),u(` `+s(v(V)(`retryRules.addRule`)),1)]),_:1})]),g(`div`,we,[a(v(S),null,{default:_(()=>[a(v(w),null,{default:_(()=>[a(v(C),{class:`bg-muted`},{default:_(()=>[a(v(b),{class:`text-muted-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.tableHeaders.name`)),1)]),_:1}),a(v(b),{class:`text-muted-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),a(v(b),{class:`text-muted-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),a(v(b),{class:`text-muted-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),a(v(b),{class:`text-muted-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.tableHeaders.status`)),1)]),_:1}),a(v(b),{class:`text-right text-muted-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),a(v(x),null,{default:_(()=>[(d(!0),c(o,null,h(U.value,e=>(d(),r(v(C),{key:e.id},{default:_(()=>[a(v(T),{class:`font-mono text-sm`},{default:_(()=>[u(s(e.name),1)]),_:2},1024),a(v(T),null,{default:_(()=>[u(s(e.status_code),1)]),_:2},1024),a(v(T),{class:`font-mono text-xs text-muted-foreground`},{default:_(()=>[u(s(e.body_pattern),1)]),_:2},1024),a(v(T),null,{default:_(()=>[g(`div`,Te,[a(v(D),{variant:`outline`},{default:_(()=>[u(s(e.retry_strategy===`fixed`?v(V)(`retryRules.strategy.fixed`):v(V)(`retryRules.strategy.exponential`)),1)]),_:2},1024),g(`span`,Ee,[u(s(e.retry_delay_ms/1e3)+`s · `+s(v(V)(`retryRules.times`,{count:e.max_retries}))+` `,1),e.retry_strategy===`exponential`?(d(),c(o,{key:0},[u(` · `+s(v(V)(`retryRules.upperLimit`,{value:e.max_delay_ms/1e3})),1)],64)):l(``,!0)])])]),_:2},1024),a(v(T),null,{default:_(()=>[a(v(D),{variant:e.is_active?`default`:`secondary`},{default:_(()=>[u(s(e.is_active?v(V)(`common.enabled`):v(V)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),a(v(T),{class:`text-right`},{default:_(()=>[a(v(m),{variant:`ghost`,size:`sm`,onClick:t=>He(e),class:`mr-2`},{default:_(()=>[u(s(v(V)(`common.edit`)),1)]),_:1},8,[`onClick`]),a(v(m),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>We(e)},{default:_(()=>[u(s(v(V)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),U.value.length===0?(d(),r(v(C),{key:0},{default:_(()=>[a(v(T),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:_(()=>[u(s(v(V)(`retryRules.noRules`)),1)]),_:1})]),_:1})):l(``,!0)]),_:1})]),_:1})]),a(v(ce),{open:W.value,"onUpdate:open":t[15]||=e=>W.value=e},{default:_(()=>[a(v(oe),null,{default:_(()=>[a(v(se),null,{default:_(()=>[a(v(ue),null,{default:_(()=>[u(s(G.value?v(V)(`retryRules.dialog.editRule`):v(V)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),g(`form`,{onSubmit:te(Ue,[`prevent`]),class:`space-y-3`},[g(`div`,null,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.name`)),1)]),_:1}),a(v(I),{modelValue:q.value.name,"onUpdate:modelValue":t[0]||=e=>q.value.name=e,type:`text`,required:``,onInput:t[1]||=e=>delete J.value.name},null,8,[`modelValue`]),J.value.name?(d(),c(`p`,De,s(J.value.name),1)):l(``,!0)]),g(`div`,null,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.statusCode`)),1)]),_:1}),a(v(I),{modelValue:q.value.status_code,"onUpdate:modelValue":t[2]||=e=>q.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:t[3]||=e=>delete J.value.status_code},null,8,[`modelValue`]),J.value.status_code?(d(),c(`p`,Oe,s(J.value.status_code),1)):l(``,!0)]),g(`div`,null,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.bodyPattern`)),1)]),_:1}),a(v(I),{modelValue:q.value.body_pattern,"onUpdate:modelValue":t[4]||=e=>q.value.body_pattern=e,type:`text`,placeholder:v(V)(`retryRules.dialog.bodyPatternPlaceholder`),required:``,onInput:t[5]||=e=>delete J.value.body_pattern},null,8,[`modelValue`,`placeholder`]),J.value.body_pattern?(d(),c(`p`,ke,s(J.value.body_pattern),1)):l(``,!0)]),g(`div`,null,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),a(v(he),{modelValue:q.value.retry_strategy,"onUpdate:modelValue":t[6]||=e=>q.value.retry_strategy=e},{default:_(()=>[a(v(k),{class:`w-full`},{default:_(()=>[a(v(me),{placeholder:v(V)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),a(v(ge),null,{default:_(()=>[a(v(O),{value:`exponential`},{default:_(()=>[u(s(v(V)(`retryRules.strategy.exponential`)),1)]),_:1}),a(v(O),{value:`fixed`},{default:_(()=>[u(s(v(V)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),g(`div`,Ae,[g(`div`,null,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(q.value.retry_strategy===`fixed`?v(V)(`retryRules.dialog.intervalMs`):v(V)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),a(v(I),{modelValue:q.value.retry_delay_ms,"onUpdate:modelValue":t[7]||=e=>q.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:t[8]||=e=>delete J.value.retry_delay_ms},null,8,[`modelValue`]),J.value.retry_delay_ms?(d(),c(`p`,je,s(J.value.retry_delay_ms),1)):l(``,!0)]),g(`div`,null,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.maxRetries`)),1)]),_:1}),a(v(I),{modelValue:q.value.max_retries,"onUpdate:modelValue":t[9]||=e=>q.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:t[10]||=e=>delete J.value.max_retries},null,8,[`modelValue`]),J.value.max_retries?(d(),c(`p`,Me,s(J.value.max_retries),1)):l(``,!0)])]),q.value.retry_strategy===`exponential`?(d(),c(`div`,Ne,[a(v(E),{class:`block text-sm font-medium text-foreground mb-1`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),a(v(I),{modelValue:q.value.max_delay_ms,"onUpdate:modelValue":t[11]||=e=>q.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:t[12]||=e=>delete J.value.max_delay_ms},null,8,[`modelValue`]),J.value.max_delay_ms?(d(),c(`p`,Pe,s(J.value.max_delay_ms),1)):l(``,!0)])):l(``,!0),g(`div`,Fe,[a(v(y),{modelValue:q.value.is_active,"onUpdate:modelValue":t[13]||=e=>q.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),a(v(E),{for:`rule-active`,class:`text-sm text-foreground`},{default:_(()=>[u(s(v(V)(`retryRules.dialog.enable`)),1)]),_:1})]),a(v(le),null,{default:_(()=>[a(v(m),{type:`button`,variant:`outline`,onClick:t[14]||=e=>W.value=!1},{default:_(()=>[u(s(v(V)(`common.cancel`)),1)]),_:1}),a(v(m),{type:`submit`},{default:_(()=>[u(s(v(V)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),a(v(pe),{open:!!K.value,"onUpdate:open":t[16]||=e=>{e||(K.value=null)}},{default:_(()=>[a(v(fe),null,{default:_(()=>[a(v(de),null,{default:_(()=>[a(v(_e),null,{default:_(()=>[u(s(v(V)(`retryRules.deleteConfirm.title`)),1)]),_:1}),a(v(j),null,{default:_(()=>[u(s(v(V)(`retryRules.deleteConfirm.description`,{name:K.value?.name})),1)]),_:1})]),_:1}),a(v(ye),null,{default:_(()=>[a(v(ve),null,{default:_(()=>[u(s(v(V)(`common.cancel`)),1)]),_:1}),a(v(m),{variant:`destructive`,onClick:Ge},{default:_(()=>[u(s(v(V)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),Z.value.length>0?(d(),r(v(N),{key:0,class:`mt-6`},{default:_(()=>[a(v(re),{open:X.value,"onUpdate:open":t[17]||=e=>X.value=e},{default:_(()=>[a(v(ae),{"as-child":``},{default:_(()=>[a(v(be),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:_(()=>[g(`div`,Ie,[a(v(F),{class:`text-sm font-medium`},{default:_(()=>[u(s(v(V)(`retryRules.recommended.title`,{count:Z.value.length})),1)]),_:1}),a(v(M),{class:ne([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":X.value}])},null,8,[`class`])])]),_:1})]),_:1}),a(v(ie),null,{default:_(()=>[a(v(P),null,{default:_(()=>[g(`div`,Le,[g(`div`,Re,[a(v(y),{"model-value":Ke.value,"onUpdate:modelValue":Je},null,8,[`model-value`]),g(`span`,ze,s(v(V)(`retryRules.recommended.selectAll`)),1)]),a(v(m),{size:`sm`,disabled:Q.value.size===0,onClick:Ye},{default:_(()=>[u(s(v(V)(`retryRules.recommended.addSelected`,{count:Q.value.size})),1)]),_:1},8,[`disabled`])]),a(v(S),null,{default:_(()=>[a(v(w),null,{default:_(()=>[a(v(C),null,{default:_(()=>[a(v(b),{class:`w-10`}),a(v(b),null,{default:_(()=>[u(s(v(V)(`retryRules.recommended.headers.name`)),1)]),_:1}),a(v(b),null,{default:_(()=>[u(s(v(V)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),a(v(b),null,{default:_(()=>[u(s(v(V)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),a(v(b),null,{default:_(()=>[u(s(v(V)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),a(v(x),null,{default:_(()=>[(d(!0),c(o,null,h(Z.value,e=>(d(),r(v(C),{key:e.name},{default:_(()=>[a(v(T),null,{default:_(()=>[a(v(y),{"model-value":Q.value.has(e.name),"onUpdate:modelValue":()=>qe(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),a(v(T),null,{default:_(()=>[u(s(e.name),1)]),_:2},1024),a(v(T),null,{default:_(()=>[u(s(e.status_code),1)]),_:2},1024),a(v(T),{class:`font-mono text-xs max-w-[200px] truncate`},{default:_(()=>[u(s(e.body_pattern),1)]),_:2},1024),a(v(T),null,{default:_(()=>[u(s(e.retry_strategy===`fixed`?v(V)(`retryRules.strategy.fixed`):v(V)(`retryRules.strategy.exponential`)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):l(``,!0)]))}});export{V as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,I as n,J as r,Mt as i,Q as a,U as ee,Vt as te,W as o,Wt as s,X as c,Y as l,Z as u,dt as d,k as f,lt as ne,n as p,pt as m,q as h,wt as g,zt as _}from"./button-DRFSckEU.js";import{t as v}from"./Checkbox-DgWzyASL.js";import{a as re,c as y,d as ie,f as ae,l as b,n as oe,o as se,r as ce,s as le,t as ue,u as x}from"./dialog-DxoN_Irc.js";import{t as S}from"./Label-B2lstY9k.js";import{a as de,b as C,c as w,d as T,i as E,l as D,o as O,r as k,rt as A,s as j}from"./index-Dr-BkaVu.js";import{t as M}from"./Input-glS226Q6.js";import{t as N}from"./useClipboard-B0s-K67s.js";var P={class:`p-6`},F={class:`flex items-center justify-between mb-4`},I={class:`text-lg font-semibold text-foreground`},L={class:`bg-card rounded-lg border overflow-hidden`},R={class:`flex items-center gap-1`},z={class:`font-mono text-xs text-muted-foreground`},B={key:0,class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},V={key:1,class:`w-3.5 h-3.5 text-success`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},H={key:0,class:`flex flex-wrap gap-1`},fe={key:0,class:`text-sm text-destructive mt-1`},pe={class:`text-xs text-muted-foreground mb-2`},me={class:`border rounded-md p-3 max-h-48 overflow-y-auto space-y-2 bg-muted`},he={class:`font-mono text-xs`},ge={key:0,class:`text-muted-foreground text-sm text-center py-2`},_e={key:0,class:`flex flex-wrap gap-1 mt-2`},ve={key:0,class:`flex items-center gap-2`},U=e({__name:`RouterKeys`,setup(e){let{t:U}=n(),W={name:``,allowed_models:[],is_active:!0},G=i([]),K=i([]),q=i(!1),J=i(null),Y=i(null),X=i({...W,allowed_models:[]}),Z=i({}),{copied:ye,copy:be}=N();function xe(e){return e?e.slice(0,7)+`*`.repeat(7):``}function Se(e){return A(e)}function Ce(e){let t=X.value.allowed_models.indexOf(e);t>=0&&X.value.allowed_models.splice(t,1)}async function Q(){try{let[e,t]=await Promise.allSettled([f.getRouterKeys(),f.getAvailableModels()]);e.status===`fulfilled`&&(G.value=e.value),t.status===`fulfilled`&&(K.value=t.value)}catch(e){console.error(`Failed to load data:`,e),k.error(t(e,U(`routerKeys.loadFailed`)))}}function $(){J.value=null,X.value={...W,allowed_models:[]},Z.value={},q.value=!0}function we(e){J.value=e.id,X.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},Z.value={},q.value=!0}function Te(){return{name:X.value.name,allowed_models:X.value.allowed_models.length>0?X.value.allowed_models:null,is_active:+!!X.value.is_active}}function Ee(){return{name:X.value.name,allowed_models:X.value.allowed_models.length>0?X.value.allowed_models:null}}async function De(){let e={};if(X.value.name.trim()||(e.name=U(`routerKeys.nameRequired`)),Z.value=e,!(Object.keys(e).length>0))try{J.value?await f.updateRouterKey(J.value,Te()):await f.createRouterKey(Ee()),q.value=!1,await Q()}catch(e){console.error(`Failed to save router key:`,e),k.error(t(e,U(`routerKeys.saveFailed`)))}}function Oe(e){Y.value=e}async function ke(){let e=Y.value;if(e){Y.value=null;try{await f.deleteRouterKey(e.id),await Q()}catch(e){console.error(`Failed to delete router key:`,e),k.error(t(e,U(`routerKeys.deleteFailed`)))}}}return ne(Q),(e,t)=>(d(),c(`div`,P,[h(`div`,F,[h(`h2`,I,s(_(U)(`routerKeys.title`)),1),a(_(p),{onClick:$,class:`flex items-center gap-1`},{default:g(()=>[t[6]||=h(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[h(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),u(` `+s(_(U)(`routerKeys.createKey`)),1)]),_:1})]),h(`div`,L,[a(_(ae),null,{default:g(()=>[a(_(le),null,{default:g(()=>[a(_(b),{class:`bg-muted`},{default:g(()=>[a(_(y),{class:`text-muted-foreground`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.name`)),1)]),_:1}),a(_(y),{class:`text-muted-foreground`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.key`)),1)]),_:1}),a(_(y),{class:`text-muted-foreground`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.whitelist`)),1)]),_:1}),a(_(y),{class:`text-muted-foreground`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.status`)),1)]),_:1}),a(_(y),{class:`text-muted-foreground`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.createdAt`)),1)]),_:1}),a(_(y),{class:`text-right text-muted-foreground`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),a(_(ie),null,{default:g(()=>[(d(!0),c(o,null,m(G.value,e=>(d(),r(_(b),{key:e.id,class:te({"opacity-60":!e.is_active})},{default:g(()=>[a(_(x),{class:`font-medium`},{default:g(()=>[u(s(e.name),1)]),_:2},1024),a(_(x),null,{default:g(()=>[h(`div`,R,[h(`span`,z,s(xe(e.key)),1),a(_(p),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>e.key&&_(be)(e.key)},{default:g(()=>[_(ye)?(d(),c(`svg`,V,[...t[8]||=[h(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 13l4 4L19 7`},null,-1)]])):(d(),c(`svg`,B,[...t[7]||=[h(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`},null,-1)]]))]),_:1},8,[`onClick`])])]),_:2},1024),a(_(x),null,{default:g(()=>[e.allowed_models&&e.allowed_models.length>0?(d(),c(`div`,H,[(d(!0),c(o,null,m(e.allowed_models,e=>(d(),r(_(C),{key:e,variant:`outline`,class:`text-xs`},{default:g(()=>[u(s(e),1)]),_:2},1024))),128))])):(d(),r(_(C),{key:1,variant:`secondary`},{default:g(()=>[u(s(_(U)(`common.allModels`)),1)]),_:1}))]),_:2},1024),a(_(x),null,{default:g(()=>[a(_(C),{variant:e.is_active?`default`:`secondary`},{default:g(()=>[u(s(e.is_active?_(U)(`common.enabled`):_(U)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),a(_(x),{class:`text-muted-foreground text-sm`},{default:g(()=>[u(s(Se(e.created_at)),1)]),_:2},1024),a(_(x),{class:`text-right`},{default:g(()=>[a(_(p),{variant:`ghost`,size:`sm`,onClick:t=>we(e),class:`text-muted-foreground hover:text-primary mr-2`},{default:g(()=>[u(s(_(U)(`common.edit`)),1)]),_:1},8,[`onClick`]),a(_(p),{variant:`ghost`,size:`sm`,onClick:t=>Oe(e),class:`text-muted-foreground hover:text-destructive`},{default:g(()=>[u(s(_(U)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),G.value.length===0?(d(),r(_(b),{key:0},{default:g(()=>[a(_(x),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:g(()=>[u(s(_(U)(`routerKeys.noKeys`)),1)]),_:1})]),_:1})):l(``,!0)]),_:1})]),_:1})]),a(_(se),{open:q.value,"onUpdate:open":t[4]||=e=>q.value=e},{default:g(()=>[a(_(re),{class:`sm:max-w-lg`},{default:g(()=>[a(_(oe),null,{default:g(()=>[a(_(ue),null,{default:g(()=>[u(s(J.value?_(U)(`routerKeys.editKey`):_(U)(`routerKeys.createKey`)),1)]),_:1})]),_:1}),h(`form`,{onSubmit:ee(De,[`prevent`]),class:`space-y-4`},[h(`div`,null,[a(_(S),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[u(s(_(U)(`routerKeys.tableHeaders.name`)),1)]),_:1}),a(_(M),{modelValue:X.value.name,"onUpdate:modelValue":t[0]||=e=>X.value.name=e,type:`text`,required:``,placeholder:_(U)(`routerKeys.placeholder.name`),onInput:t[1]||=e=>delete Z.value.name},null,8,[`modelValue`,`placeholder`]),Z.value.name?(d(),c(`p`,fe,s(Z.value.name),1)):l(``,!0)]),h(`div`,null,[a(_(S),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[u(s(_(U)(`routerKeys.whitelistLabel`)),1)]),_:1}),h(`div`,pe,s(_(U)(`routerKeys.whitelistHint`)),1),h(`div`,me,[(d(!0),c(o,null,m(K.value,e=>(d(),r(_(S),{key:e,class:`flex items-center gap-2 cursor-pointer text-sm font-normal`},{default:g(()=>[a(_(v),{"model-value":X.value.allowed_models.includes(e),"onUpdate:modelValue":t=>{if(t&&t!==`indeterminate`&&!X.value.allowed_models.includes(e))X.value.allowed_models.push(e);else if(!t){let t=X.value.allowed_models.indexOf(e);t>=0&&X.value.allowed_models.splice(t,1)}}},null,8,[`model-value`,`onUpdate:modelValue`]),h(`span`,he,s(e),1)]),_:2},1024))),128)),K.value.length===0?(d(),c(`div`,ge,s(_(U)(`routerKeys.noModels`)),1)):l(``,!0)]),X.value.allowed_models.length>0?(d(),c(`div`,_e,[(d(!0),c(o,null,m(X.value.allowed_models,e=>(d(),r(_(C),{key:e,variant:`outline`,class:`text-xs`},{default:g(()=>[u(s(e)+` `,1),a(_(p),{type:`button`,variant:`ghost`,size:`sm`,class:`ml-1 h-4 w-4 p-0 text-muted-foreground hover:text-destructive`,onClick:t=>Ce(e)},{default:g(()=>[...t[9]||=[u(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))])):l(``,!0)]),J.value?(d(),c(`div`,ve,[a(_(v),{modelValue:X.value.is_active,"onUpdate:modelValue":t[2]||=e=>X.value.is_active=e,id:`key-active`},null,8,[`modelValue`]),a(_(S),{for:`key-active`,class:`text-sm text-foreground`},{default:g(()=>[u(s(_(U)(`common.enable`)),1)]),_:1})])):l(``,!0),a(_(ce),null,{default:g(()=>[a(_(p),{type:`button`,variant:`outline`,onClick:t[3]||=e=>q.value=!1},{default:g(()=>[u(s(_(U)(`common.cancel`)),1)]),_:1}),a(_(p),{type:`submit`},{default:g(()=>[u(s(_(U)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),a(_(T),{open:!!Y.value,"onUpdate:open":t[5]||=e=>{e||(Y.value=null)}},{default:g(()=>[a(_(w),null,{default:g(()=>[a(_(de),null,{default:g(()=>[a(_(E),null,{default:g(()=>[u(s(_(U)(`routerKeys.confirmDeleteTitle`)),1)]),_:1}),a(_(j),null,{default:g(()=>[u(s(_(U)(`routerKeys.confirmDeleteDesc`,{name:Y.value?.name})),1)]),_:1})]),_:1}),a(_(O),null,{default:g(()=>[a(_(D),null,{default:g(()=>[u(s(_(U)(`common.cancel`)),1)]),_:1}),a(_(p),{variant:`destructive`,onClick:ke},{default:g(()=>[u(s(_(U)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{U as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{$ as e,J as t,K as n,Lt as r,Mt as i,Q as a,dt as o,i as s,lt as c,m as l,mt as u,st as d,ut as f,wt as p,zt as m}from"./button-DRFSckEU.js";import{D as h,K as g,U as _,q as v,z as y}from"./index-Dr-BkaVu.js";var b=`rovingFocusGroup.onEntryFocus`,x={bubbles:!1,cancelable:!0},S={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function C(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function w(e,t,n){let r=C(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return S[r]}function T(e,t=!1){let n=g();for(let r of e)if(r===n||(r.focus({preventScroll:t}),g()!==n))return}function E(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[D,O]=v(`RovingFocusGroup`),k=e({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:n,emit:c}){let d=e,f=c,{loop:g,orientation:v,dir:y}=r(d),S=_(y),C=l(d,`currentTabStopId`,f,{defaultValue:d.defaultCurrentTabStopId,passive:d.currentTabStopId===void 0}),w=i(!1),E=i(!1),D=i(0),{getItems:k,CollectionSlot:A}=h({isProvider:!0});function j(e){let t=!E.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!w.value){let t=new CustomEvent(b,x);if(e.currentTarget.dispatchEvent(t),f(`entryFocus`,t),!t.defaultPrevented){let e=k().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);T([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===C.value),...e].filter(Boolean),d.preventScrollOnEntryFocus)}}E.value=!1}function M(){setTimeout(()=>{E.value=!1},1)}return n({getItems:k}),O({loop:g,dir:S,orientation:v,currentTabStopId:C,onItemFocus:e=>{C.value=e},onItemShiftTab:()=>{w.value=!0},onFocusableItemAdd:()=>{D.value++},onFocusableItemRemove:()=>{D.value--}}),(e,n)=>(o(),t(m(A),null,{default:p(()=>[a(m(s),{tabindex:w.value||D.value===0?-1:0,"data-orientation":m(v),as:e.as,"as-child":e.asChild,dir:m(S),style:{outline:`none`},onMousedown:n[0]||=e=>E.value=!0,onMouseup:M,onFocus:j,onBlur:n[1]||=e=>w.value=!1},{default:p(()=>[u(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),A=e({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let r=e,i=D(),l=y(),g=n(()=>r.tabStopId||l),_=n(()=>i.currentTabStopId.value===g.value),{getItems:v,CollectionItem:b}=h();c(()=>{r.focusable&&i.onFocusableItemAdd()}),f(()=>{r.focusable&&i.onFocusableItemRemove()});function x(e){if(e.key===`Tab`&&e.shiftKey){i.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=w(e,i.orientation.value,i.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!r.allowShiftKey&&e.shiftKey)return;e.preventDefault();let n=[...v().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=i.loop.value?E(n,r+1):n.slice(r+1)}d(()=>T(n))}}return(e,n)=>(o(),t(m(b),null,{default:p(()=>[a(m(s),{tabindex:_.value?0:-1,"data-orientation":m(i).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:n[0]||=t=>{e.focusable?m(i).onItemFocus(g.value):t.preventDefault()},onFocus:n[1]||=e=>m(i).onItemFocus(g.value),onKeydown:x},{default:p(()=>[u(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{k as n,A as t};
|