llm-simple-router 1.0.20-beta.4289fbc → 1.0.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/upgrade/checker.d.ts +2 -0
- package/dist/upgrade/checker.js +28 -1
- package/frontend-dist/assets/{AuthLayout-CnQptF9T.js → AuthLayout-UzmdwXpC.js} +1 -1
- package/frontend-dist/assets/{Card-BdgLihoh.js → Card-BAJ7K-oq.js} +1 -1
- package/frontend-dist/assets/{CardContent-CLEGUV0w.js → CardContent-D4ma-cic.js} +1 -1
- package/frontend-dist/assets/{CardTitle-Wz1G4zDT.js → CardTitle-B3frXOF6.js} +1 -1
- package/frontend-dist/assets/{CascadingModelSelect-BL4feC-w.js → CascadingModelSelect-D1iTboYP.js} +1 -1
- package/frontend-dist/assets/{Checkbox-BBFKe2F8.js → Checkbox-FFHFrFEk.js} +1 -1
- package/frontend-dist/assets/{CollapsibleContent-DeUSycQ8.js → CollapsibleContent-CsQhKwq1.js} +1 -1
- package/frontend-dist/assets/{CollapsibleTrigger-CYmevmHY.js → CollapsibleTrigger-x1DJz63o.js} +1 -1
- package/frontend-dist/assets/{ConcurrencyControl-DodlZ58i.js → ConcurrencyControl-CjQi9JM0.js} +1 -1
- package/frontend-dist/assets/{Dashboard-CreFTV6O.js → Dashboard-DKm9udvl.js} +2 -2
- package/frontend-dist/assets/{Input-CiK38Phu.js → Input-4bkkJSKj.js} +1 -1
- package/frontend-dist/assets/{Label-CyMCbrvm.js → Label-D9CEaBof.js} +1 -1
- package/frontend-dist/assets/{Login-BWVxWZnP.js → Login-h4I4rmnC.js} +1 -1
- package/frontend-dist/assets/Logs-CAU6FiMD.js +1 -0
- package/frontend-dist/assets/{ModelMappings-BL0HEJgH.js → ModelMappings-B6rCeno-.js} +1 -1
- package/frontend-dist/assets/Monitor-Dmb_-qsO.js +1 -0
- package/frontend-dist/assets/Providers-U4m7hTSJ.js +1 -0
- package/frontend-dist/assets/{ProxyEnhancement-Dh4T8ybv.js → ProxyEnhancement-DRgjcB7n.js} +1 -1
- package/frontend-dist/assets/{QuickSetup-BfbhkNuD.js → QuickSetup-BNmLBUdC.js} +1 -1
- package/frontend-dist/assets/{RetryRules-BU3KUr8r.js → RetryRules-Bl3ZVdvu.js} +1 -1
- package/frontend-dist/assets/RouterKeys-BwnEUWyG.js +1 -0
- package/frontend-dist/assets/{RovingFocusItem-DN4U9Dsn.js → RovingFocusItem-DsNw2OyU.js} +1 -1
- package/frontend-dist/assets/{Schedules-OPacM2kt.js → Schedules-D2N8icq0.js} +1 -1
- package/frontend-dist/assets/{Separator-DxuOx79q.js → Separator-BAEMvYDZ.js} +1 -1
- package/frontend-dist/assets/{Settings-DKSDQU0v.js → Settings-C4ZqRV31.js} +1 -1
- package/frontend-dist/assets/{Setup-lUaNPvHR.js → Setup-BXEaeu0C.js} +1 -1
- package/frontend-dist/assets/{Skeleton-SorMdxL7.js → Skeleton-BwwGudhK.js} +1 -1
- package/frontend-dist/assets/{Switch-D7Sl8Nyv.js → Switch-C9A1URA9.js} +1 -1
- package/frontend-dist/assets/{TableHeader-DIIBQ_GD.js → TableHeader-B8tbY3uE.js} +1 -1
- package/frontend-dist/assets/{TabsTrigger-DMlEwUoz.js → TabsTrigger-BciD13aS.js} +1 -1
- package/frontend-dist/assets/UnifiedRequestDialog-Dnhxxnoi.js +3 -0
- package/frontend-dist/assets/{VisuallyHiddenInput-DhiZ0UhT.js → VisuallyHiddenInput-Deh-FeJI.js} +1 -1
- package/frontend-dist/assets/arrow-down-CL1-lpk5.js +1 -0
- package/frontend-dist/assets/{badge-CDqa9Glr.js → badge-_5ZpB7R1.js} +1 -1
- package/frontend-dist/assets/{button-BpR9_1Oi.js → button-BcmABzob.js} +2 -2
- package/frontend-dist/assets/chevron-right-Bf3Fdg6M.js +1 -0
- package/frontend-dist/assets/{dialog-Kt0ooFHU.js → dialog-BDw6KIzh.js} +1 -1
- package/frontend-dist/assets/{image-CvK0QbMP.js → image-BQjpozCO.js} +1 -1
- package/frontend-dist/assets/index-BebG1zR0.css +1 -0
- package/frontend-dist/assets/index-CpvOTf7s.js +58 -0
- package/frontend-dist/assets/{model-patches-DdTnkx1K.js → model-patches-Bz5q_usR.js} +1 -1
- package/frontend-dist/assets/{pencil-CdjtWflL.js → pencil-QUrS_Knn.js} +1 -1
- package/frontend-dist/assets/plus-COwF_5ra.js +1 -0
- package/frontend-dist/assets/search-aFGV_wt3.js +1 -0
- package/frontend-dist/assets/{sidebar-BxTRaJDZ.js → sidebar-BQHyJ0uA.js} +1 -1
- package/frontend-dist/assets/{sidebar-Dl1-HY8Q.js → sidebar-CBnHp-Vx.js} +1 -1
- package/frontend-dist/assets/{sparkles-CKnA3jxb.js → sparkles-D26eNUGF.js} +1 -1
- package/frontend-dist/assets/{transform-domain-CArlLlHL.js → transform-domain-BiEMeUvX.js} +1 -1
- package/frontend-dist/assets/{trash-2-CXuZGldZ.js → trash-2-4HdxTT6S.js} +1 -1
- package/frontend-dist/assets/useClipboard-Bv5gUQAX.js +1 -0
- package/frontend-dist/assets/{useLogRetention-CPwrsXDv.js → useLogRetention-NFhOwCBf.js} +1 -1
- package/frontend-dist/assets/{useProviderGroups-D2jWO27u.js → useProviderGroups-Z3iRaBYM.js} +1 -1
- package/frontend-dist/index.html +3 -3
- package/package.json +1 -1
- package/frontend-dist/assets/Logs-_Nn3c6xP.js +0 -1
- package/frontend-dist/assets/Monitor-BdK1aoT_.js +0 -1
- package/frontend-dist/assets/Providers-DiLtb9KD.js +0 -1
- package/frontend-dist/assets/RouterKeys-DnuiCOcT.js +0 -1
- package/frontend-dist/assets/UnifiedRequestDialog-DD0UVD7w.js +0 -3
- package/frontend-dist/assets/arrow-down-Bp1-jBZj.js +0 -1
- package/frontend-dist/assets/chevron-right-FHv79ln6.js +0 -1
- package/frontend-dist/assets/index-BTfjdJDq.css +0 -1
- package/frontend-dist/assets/index-DDIPrwyW.js +0 -3
- package/frontend-dist/assets/plus-DB2feA5n.js +0 -1
- package/frontend-dist/assets/search-CmsfUQmp.js +0 -1
- package/frontend-dist/assets/useClipboard-DeLcRz6o.js +0 -1
- /package/frontend-dist/assets/{common-WzFPzDR_.js → common-Btg2V2bB.js} +0 -0
- /package/frontend-dist/assets/{common-vLJ_SFUM.js → common-OSS_YzXG.js} +0 -0
- /package/frontend-dist/assets/{dashboard-C50KHy8J.js → dashboard-BPUf0pFh.js} +0 -0
- /package/frontend-dist/assets/{dashboard-DxQEVaH8.js → dashboard-N-FinZbV.js} +0 -0
- /package/frontend-dist/assets/{login-BjRWJuuH.js → login-BA1S65GD.js} +0 -0
- /package/frontend-dist/assets/{login-Drdlb6If.js → login-DOzBTMtj.js} +0 -0
- /package/frontend-dist/assets/{logs-toInbfD3.js → logs-2trsmWXf.js} +0 -0
- /package/frontend-dist/assets/{logs-BUYq0WgN.js → logs-DTjf3jYc.js} +0 -0
- /package/frontend-dist/assets/{mappings-C68NUaJA.js → mappings--bhItRXm.js} +0 -0
- /package/frontend-dist/assets/{mappings-CeO9ylDO.js → mappings-N9t1rhX2.js} +0 -0
- /package/frontend-dist/assets/{monitor-Crmj9XSn.js → monitor-Bsd7gNj9.js} +0 -0
- /package/frontend-dist/assets/{monitor-D5lXaCoi.js → monitor-CNNijm1P.js} +0 -0
- /package/frontend-dist/assets/{providers-DTIaw_44.js → providers-5WF_0M_M.js} +0 -0
- /package/frontend-dist/assets/{providers-Cy6EVDp5.js → providers-BWlu8Dgf.js} +0 -0
- /package/frontend-dist/assets/{proxyEnhancement-BEbUoM8Y.js → proxyEnhancement-Dg9_1bwx.js} +0 -0
- /package/frontend-dist/assets/{proxyEnhancement-rdWlqMlw.js → proxyEnhancement-Dj9Y-cXx.js} +0 -0
- /package/frontend-dist/assets/{quickSetup-DUBCRvkP.js → quickSetup-CqxQRMCR.js} +0 -0
- /package/frontend-dist/assets/{quickSetup-DpoJ3AU-.js → quickSetup-DplqYrvf.js} +0 -0
- /package/frontend-dist/assets/{requestDetail-BgwV24CW.js → requestDetail-BVswwYWh.js} +0 -0
- /package/frontend-dist/assets/{requestDetail-zegFIYZs.js → requestDetail-CJcSiE_S.js} +0 -0
- /package/frontend-dist/assets/{retryRules-v9HTZUGQ.js → retryRules-Ck1v4EB4.js} +0 -0
- /package/frontend-dist/assets/{retryRules-KY-2u2K-.js → retryRules-Do2KuqHO.js} +0 -0
- /package/frontend-dist/assets/{routerKeys-B2_9kz1O.js → routerKeys-BKlK5-lC.js} +0 -0
- /package/frontend-dist/assets/{routerKeys-C579ZS8v.js → routerKeys-C__xS2_i.js} +0 -0
- /package/frontend-dist/assets/{schedules-DeR-EOsE.js → schedules-BaxuhY5-.js} +0 -0
- /package/frontend-dist/assets/{schedules-u1et4hyF.js → schedules-DthDdQSv.js} +0 -0
- /package/frontend-dist/assets/{settings-C1AmEyXr.js → settings-D5CrtZQ_.js} +0 -0
- /package/frontend-dist/assets/{settings-DHufHb9v.js → settings-DqImZujb.js} +0 -0
- /package/frontend-dist/assets/{setup-Bw-U-YJa.js → setup-AwDVcW-s.js} +0 -0
- /package/frontend-dist/assets/{setup-B0bSyAH4.js → setup-H39sZkpa.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ft as e,Mt as t,Yt as n,h as r,nt as i,ot as a,q as o,qt as s,r as c,vt as l}from"./button-
|
|
1
|
+
import{Ft as e,Mt as t,Yt as n,h as r,nt as i,ot as a,q as o,qt as s,r as c,vt as l}from"./button-BcmABzob.js";var u=a({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(a,{emit:u}){let d=a,f=r(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(r,a)=>t((l(),i(`input`,{"onUpdate:modelValue":a[0]||=t=>e(f)?f.value=t:null,"data-slot":`input`,class:n(s(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)),[[o,s(f)]])}});export{u as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as e,et as t,i as n,jt as r,o as i,ot as a,pt as o,qt as s,r as c,vt as l,xt as u}from"./button-
|
|
1
|
+
import{S as e,et as t,i as n,jt as r,o as i,ot as a,pt as o,qt as s,r as c,vt as l,xt as u}from"./button-BcmABzob.js";var d=a({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let a=e;return i(),(e,i)=>(l(),t(s(n),o(a,{onMousedown:i[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:r(()=>[u(e.$slots,`default`)]),_:3},16))}}),f=a({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(n){let i=n,a=e(i,`class`);return(e,n)=>(l(),t(s(d),o({"data-slot":`label`},s(a),{class:s(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,i.class)}),{default:r(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,B as n,Qt as r,U as i,Y as a,at as o,et as s,it as c,j as l,jt as u,n as d,nt as f,ot as p,qt as m,tt as h,vt as g,zt as _}from"./button-
|
|
1
|
+
import{$ as e,A as t,B as n,Qt as r,U as i,Y as a,at as o,et as s,it as c,j as l,jt as u,n as d,nt as f,ot as p,qt as m,tt as h,vt as g,zt as _}from"./button-BcmABzob.js";import{t as v}from"./Label-D9CEaBof.js";import{t as y}from"./Input-4bkkJSKj.js";import{t as b}from"./AuthLayout-UzmdwXpC.js";var x={key:0,class:`text-destructive text-sm`},S=p({__name:`Login`,setup(p){let{t:S}=i(),C=n(),w=_(``),T=_(``),E=_(!1);async function D(){if(w.value){T.value=``,E.value=!0;try{await t.login(w.value),C.push(`/`)}catch(e){console.error(`login:`,e),T.value=l(e,S(`login.loginFailed`))}finally{E.value=!1}}}return(t,n)=>(g(),s(b,{subtitle:m(S)(`login.subtitle`)},{default:u(()=>[e(`form`,{onSubmit:a(D,[`prevent`]),class:`space-y-4`},[e(`div`,null,[o(m(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:u(()=>[c(r(m(S)(`login.password`)),1)]),_:1}),o(m(y),{modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,type:`password`,placeholder:m(S)(`login.passwordPlaceholder`),disabled:E.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),T.value?(g(),f(`p`,x,r(T.value),1)):h(``,!0),o(m(d),{type:`submit`,class:`w-full`,disabled:E.value},{default:u(()=>[c(r(E.value?m(S)(`login.loggingIn`):m(S)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{S as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,Ft as n,Ot as r,Q as i,Qt as a,U as o,X as s,Y as c,Yt as l,at as u,bt as d,et as f,gt as p,it as m,j as h,jt as g,n as _,nt as v,ot as y,qt as b,tt as x,vt as S,zt as C}from"./button-BcmABzob.js";import{r as w,t as ee}from"./UnifiedRequestDialog-Dnhxxnoi.js";import{a as T,i as E,o as D}from"./TabsTrigger-BciD13aS.js";import{a as te,n as ne,o as re,r as ie,t as ae}from"./dialog-BDw6KIzh.js";import{t as oe}from"./Label-D9CEaBof.js";import{At as O,St as k,Tt as se,_ as A,a as j,c as ce,f as le,g as M,gt as ue,h as N,kt as de,l as fe,m as P,o as pe,p as me,s as he,t as ge,u as _e,v as F,vt as ve,yt as I}from"./index-CpvOTf7s.js";import{t as L}from"./Skeleton-BwwGudhK.js";import{t as R}from"./badge-_5ZpB7R1.js";import{t as z}from"./Input-4bkkJSKj.js";import{t as ye}from"./Card-BAJ7K-oq.js";import{a as be,i as B,n as V,o as xe,r as H,t as Se}from"./TableHeader-B8tbY3uE.js";import{t as Ce}from"./useClipboard-Bv5gUQAX.js";import{t as we}from"./useLogRetention-NFhOwCBf.js";var Te={key:1,class:`ml-4 text-muted-foreground text-xs`},U={class:`inline-flex items-center gap-1`},W={class:`font-mono`},G={class:`text-muted-foreground`},K={key:2,class:`text-muted-foreground`},Ee={class:`flex flex-wrap gap-1`},q={class:`block truncate`},J={key:1,class:`text-muted-foreground`},De=y({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},copiedId:{default:null}},emits:[`toggleExpand`,`openDetail`,`copy`],setup(t,{emit:n}){let r=t,d=n,{t:p}=o(),h=i(()=>r.log.thinking_level??`off`);function y(e){if(!e)return p(`logs.row.unknown`);try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch(e){return console.error(`LogTableRow.formatLog:`,e),p(`logs.row.unknown`)}}return(n,r)=>(S(),f(b(H),{class:l([`group`,{"bg-destructive/10":!t.isChild&&(t.log.status_code??0)>=400,"bg-muted/20":t.isChild}])},{default:g(()=>[u(b(B),{class:`w-10`},{default:g(()=>[!t.isChild&&t.log.child_count?(S(),f(b(_),{key:0,variant:`ghost`,size:`xs`,onClick:r[0]||=e=>d(`toggleExpand`,t.log)},{default:g(()=>[u(b(ve),{class:l([`size-3 transition-transform`,t.expanded?``:`-rotate-90`])},null,8,[`class`])]),_:1})):x(``,!0),t.isChild?(S(),v(`span`,Te,`└`)):x(``,!0)]),_:1}),u(b(B),{class:`font-mono text-xs text-muted-foreground`,title:t.log.id},{default:g(()=>[e(`span`,U,[m(a(t.log.id.slice(0,8))+` `,1),u(b(D),{"delay-duration":300},{default:g(()=>[u(b(E),{"as-child":``},{default:g(()=>[u(b(_),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:r[1]||=c(e=>d(`copy`,t.log.id),[`stop`])},{default:g(()=>[t.copiedId===t.log.id?(S(),f(b(I),{key:0,class:`size-3 text-success`})):(S(),f(b(ue),{key:1,class:`size-3`}))]),_:1})]),_:1}),u(b(T),null,{default:g(()=>[m(a(b(p)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})])]),_:1},8,[`title`]),u(b(B),{class:`font-mono text-xs text-muted-foreground whitespace-nowrap`},{default:g(()=>[m(a(b(se)(t.log.created_at)),1)]),_:1}),u(b(B),{class:`font-mono text-xs whitespace-nowrap`},{default:g(()=>[m(a(t.log.model||`-`)+` `,1),u(b(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[m(a(t.log.api_type),1)]),_:1})]),_:1}),u(b(B),{class:`text-xs whitespace-nowrap`},{default:g(()=>[!t.isChild&&t.log.provider_id===b(`router`)?(S(),f(b(R),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:g(()=>[m(a(b(p)(`logs.row.proxyEnhancement`,{label:y(t.log.upstream_request)})),1)]),_:1})):t.log.backend_model||t.log.provider_name?(S(),v(s,{key:1},[e(`span`,W,a(t.log.backend_model||`-`),1),r[3]||=e(`span`,{class:`text-muted-foreground`},` @ `,-1),e(`span`,G,a(t.log.provider_name||t.log.provider_id||`-`),1),u(b(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[m(a(t.log.api_type),1)]),_:1})],64)):(S(),v(`span`,K,`-`))]),_:1}),u(b(B),null,{default:g(()=>[e(`div`,Ee,[t.log.upstream_api_type&&t.log.upstream_api_type!==t.log.api_type?(S(),f(b(R),{key:0,variant:t.log.api_type===`openai`?`default`:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[m(a(t.log.api_type)+` → `+a(t.log.upstream_api_type),1)]),_:1},8,[`variant`])):x(``,!0),u(b(R),{variant:(t.log.status_code??0)<400?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[m(a(t.log.status_code||`-`),1)]),_:1},8,[`variant`]),h.value?(S(),f(b(R),{key:1,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[m(a(h.value),1)]),_:1})):x(``,!0),t.log.is_stream?(S(),f(b(R),{key:2,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[...r[4]||=[m(` SSE `,-1)]]),_:1})):x(``,!0),t.log.is_retry?(S(),f(b(R),{key:3,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-warning-dark border-warning`},{default:g(()=>[m(a(b(p)(`logs.table.retry`)),1)]),_:1})):x(``,!0),t.log.is_failover?(S(),f(b(R),{key:4,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-danger-dark border-danger`},{default:g(()=>[m(a(b(p)(`logs.table.failover`)),1)]),_:1})):x(``,!0)])]),_:1}),u(b(B),{class:`text-xs text-muted-foreground font-mono`},{default:g(()=>[m(a(b(k)(t.log.latency_ms)),1)]),_:1}),u(b(B),{class:`text-destructive text-xs min-w-0 max-w-60 lg:max-w-xs`},{default:g(()=>[t.log.error_message?(S(),f(b(D),{key:0,"delay-duration":300},{default:g(()=>[u(b(E),{"as-child":``},{default:g(()=>[e(`span`,q,a(t.log.error_message),1)]),_:1}),u(b(T),{class:`max-w-sm whitespace-pre-wrap`},{default:g(()=>[m(a(t.log.error_message),1)]),_:1})]),_:1})):(S(),v(`span`,J,`-`))]),_:1}),u(b(B),null,{default:g(()=>[u(b(_),{variant:`ghost`,size:`sm`,onClick:r[2]||=e=>d(`openDetail`,t.log.id)},{default:g(()=>[m(a(b(p)(`logs.row.detail`)),1)]),_:1})]),_:1})]),_:1},8,[`class`]))}});function Oe(e){try{return JSON.parse(e)}catch{return null}}var ke=[{label:`1h`,value:`1h`},{label:`5h`,value:`5h`},{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`}];function Ae(){let{t:e}=o(),n=C(`5h`),r=C({start:``,end:``}),a=C(`all`),s=C(`all`),c=C(`all`),l=C(`all`),u=C(`all`),d=C(`all`),f=C([]),m=C([]),g=C([]),_=C([]),v=i(()=>r.value.start&&r.value.end&&r.value.start<r.value.end),y=i(()=>{let{start:t,end:n}=r.value;return!t||!n?``:t>=n?e(`logs.validation.endTimeAfterStart`):``}),b={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function x(){let e={};if(v.value)e.start_time=O(r.value.start),e.end_time=de(r.value.end);else{let t=b[n.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return u.value!==`all`&&(e.api_type=u.value),a.value!==`all`&&(e.provider_id=a.value),s.value!==`all`&&(e.client_model=s.value),c.value!==`all`&&(e.backend_model=c.value),l.value!==`all`&&(e.router_key_id=l.value),d.value!==`all`&&(e.status_code=d.value),e}function S(){r.value={start:``,end:``}}async function w(){try{f.value=await t.getProviders()}catch(t){console.error(`Failed to load providers:`,t),j.error(h(t,e(`logs.messages.loadProvidersFailed`)))}}async function ee(){try{m.value=await t.getRouterKeys()}catch(t){console.error(`Failed to load router keys:`,t),j.error(h(t,e(`logs.messages.loadKeysFailed`)))}}async function T(){try{let e=await t.getMappingGroups(),n=new Set,r=new Set;for(let t of e){t.client_model&&n.add(t.client_model);let e=Oe(t.rule);if(e)for(let t of e.targets??[])t.backend_model&&r.add(t.backend_model)}g.value=[...n].sort(),_.value=[...r].sort()}catch(e){console.error(`useLogFilters.loadModelOptions:`,e),g.value=[],_.value=[]}}return p(async()=>{try{let e=await t.getLogsInit();e.providers&&(f.value=e.providers),e.router_keys&&(m.value=e.router_keys),e.client_models&&(g.value=e.client_models),e.backend_models&&(_.value=e.backend_models)}catch(e){console.error(`useLogFilters.init:`,e),await Promise.allSettled([w(),ee(),T()])}}),{PERIODS:ke,period:n,dateRange:r,dateRangeError:y,providerFilter:a,clientModelFilter:s,backendModelFilter:c,keyFilter:l,apiTypeFilter:u,statusFilter:d,providers:f,routerKeys:m,clientModelOptions:g,backendModelOptions:_,hasDateRange:v,clearDateRange:S,buildFilterParams:x}}var Y=20,je=864e5;function Me(){let{t:e}=o(),n=C([]),r=C(0),a=C(1),s=C({}),c=C(30),l=C(!1),u=C(!1),d=C(new Set),f=C({}),p=C({}),m=C(!1),g=C(null),_=i(()=>Math.ceil(r.value/Y));async function v(i){i&&(s.value=i),l.value=!0;try{let e=await t.getLogs({page:a.value,limit:Y,view:`grouped`,...s.value});n.value=e.data,r.value=e.total,d.value.clear(),f.value={},p.value={}}catch(t){console.error(`Failed to load logs:`,t),j.error(h(t,e(`logs.messages.loadFailed`)))}finally{l.value=!1}}function y(e){e>=1&&e<=_.value&&e!==a.value&&(a.value=e,v())}let b=C(null),x=C(!1);async function S(){try{let e=new Date(Date.now()-c.value*je).toISOString(),n=await t.deleteLogsBefore(e);u.value=!1,a.value=1,await v(),b.value=n.deleted,x.value=!0}catch(t){console.error(`Failed to cleanup logs:`,t),j.error(h(t,e(`logs.messages.cleanupFailed`)))}}async function ee(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 t.getLogChildren(r)}catch(t){console.error(`Failed to load child logs:`,t),j.error(h(t,e(`logs.messages.loadSubRequestsFailed`)))}finally{p.value[r]=!1}}}async function T(n){try{let e=await t.getLogDetail(n);g.value=w(e,e.child_count?await t.getLogChildren(n):[]),m.value=!0}catch(t){console.error(`Failed to load log detail:`,t),j.error(h(t,e(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:Y,loading:l,logs:n,total:r,page:a,totalPages:_,cleanupDays:c,showCleanup:u,expandedRows:d,childLogs:f,childLoading:p,logDetailOpen:m,selectedLogEntry:g,cleanupResult:b,showCleanupResult:x,loadLogs:v,goToPage:y,handleCleanup:S,toggleExpand:ee,openLogDetail:T}}var Ne={class:`page`},Pe={class:`flex items-center justify-between mb-4`},Fe={class:`text-lg font-semibold text-foreground`},Ie={class:`flex flex-wrap items-center gap-2 mb-4`},Le={class:`flex`},Re={class:`flex items-center gap-1`},ze={key:1,class:`text-xs text-destructive whitespace-nowrap`},Be={key:0,class:`absolute inset-0 bg-background/50 flex items-center justify-center z-10`},Ve={class:`space-y-3 w-3/4`},He={class:`flex flex-col items-center gap-2`},Ue={class:`text-sm text-muted-foreground`},We={key:0,class:`text-xs text-muted-foreground`},Ge={class:`flex items-center justify-between mt-4`},Ke={class:`text-sm text-muted-foreground`},qe={class:`flex items-center gap-1`},Je={key:0,class:`px-2 text-sm text-muted-foreground`},Ye={class:`flex items-center justify-end mt-2 gap-2`},Xe={class:`text-xs text-muted-foreground`},Ze={class:`text-xs text-muted-foreground`},Qe={class:`text-sm text-muted-foreground`},$e={class:`mb-4`},et=9,tt=300,nt=7,X=2,Z=1,rt=2e3,it=y({__name:`Logs`,setup(t){let{t:c}=o(),{PERIODS:l,period:h,dateRange:y,dateRangeError:w,providerFilter:T,clientModelFilter:E,backendModelFilter:D,keyFilter:O,statusFilter:k,providers:se,routerKeys:j,clientModelOptions:ue,backendModelOptions:de,clearDateRange:ve,buildFilterParams:I}=Ae(),{logs:R,total:Te,page:U,totalPages:W,cleanupDays:G,showCleanup:K,cleanupResult:Ee,showCleanupResult:q,expandedRows:J,childLogs:Oe,childLoading:ke,logDetailOpen:Y,selectedLogEntry:je,loadLogs:it,goToPage:Q,handleCleanup:at,toggleExpand:ot,openLogDetail:st,loading:ct}=Me(),lt=i(()=>{let e=W.value,t=U.value;if(e<=nt)return Array.from({length:e},(e,t)=>t+1);let n=[Z],r=Math.max(Z+1,t-X),i=Math.min(e-Z,t+X);r>Z+X&&n.push(`...`);for(let e=r;e<=i;e++)n.push(e);return i<e-X&&n.push(`...`),n.push(e),n}),{retentionDays:ut,retentionSaving:dt,saveRetention:ft,loadRetention:pt}=we(),{copy:mt}=Ce(),$=C(null);function ht(e){mt(e),$.value=e,setTimeout(()=>{$.value===e&&($.value=null)},rt)}let gt=i(()=>T.value!==`all`||E.value!==`all`||D.value!==`all`||O.value!==`all`||k.value!==`all`||!!y.value.start||!!y.value.end);function _t(){h.value=`5h`,y.value={start:``,end:``},T.value=`all`,E.value=`all`,D.value=`all`,O.value=`all`,k.value=`all`}let vt=null;return r([h,y,T,E,D,O,k],()=>{U.value=1,vt&&clearTimeout(vt),vt=setTimeout(()=>it(I()),tt)},{deep:!0}),p(()=>{it(I()),pt()}),(t,r)=>(S(),v(`div`,Ne,[e(`div`,Pe,[e(`h2`,Fe,a(b(c)(`logs.title`)),1),u(b(_),{variant:`ghost`,size:`sm`,onClick:r[0]||=e=>K.value=!0},{default:g(()=>[m(a(b(c)(`logs.cleanupLogs`)),1)]),_:1})]),e(`div`,Ie,[e(`div`,Le,[(S(!0),v(s,null,d(b(l),e=>(S(),f(b(_),{key:e.value,variant:b(h)===e.value?`default`:`outline`,size:`sm`,class:`rounded-none first:rounded-l-md last:rounded-r-md -ml-px first:ml-0`,onClick:t=>h.value=e.value},{default:g(()=>[m(a(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),e(`div`,Re,[u(b(z),{type:`datetime-local`,modelValue:b(y).start,"onUpdate:modelValue":r[1]||=e=>b(y).start=e,class:`w-44`},null,8,[`modelValue`]),r[19]||=e(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),u(b(z),{type:`datetime-local`,modelValue:b(y).end,"onUpdate:modelValue":r[2]||=e=>b(y).end=e,class:`w-44`},null,8,[`modelValue`]),b(y).start||b(y).end?(S(),f(b(_),{key:0,variant:`ghost`,size:`sm`,onClick:b(ve)},{default:g(()=>[m(a(b(c)(`logs.clear`)),1)]),_:1},8,[`onClick`])):x(``,!0),b(w)?(S(),v(`span`,ze,a(b(w)),1)):x(``,!0)]),u(b(F),{modelValue:b(T),"onUpdate:modelValue":r[3]||=e=>n(T)?T.value=e:null},{default:g(()=>[u(b(N),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.allProviders`)),1)]),_:1}),(S(!0),v(s,null,d(b(se),e=>(S(),f(b(M),{key:e.id,value:e.id},{default:g(()=>[m(a(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(E),"onUpdate:modelValue":r[4]||=e=>n(E)?E.value=e:null},{default:g(()=>[u(b(N),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.filters.allClientModels`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.filters.allClientModels`)),1)]),_:1}),(S(!0),v(s,null,d(b(ue),e=>(S(),f(b(M),{key:e,value:e},{default:g(()=>[m(a(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(D),"onUpdate:modelValue":r[5]||=e=>n(D)?D.value=e:null},{default:g(()=>[u(b(N),{class:`w-32 truncate`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.filters.allBackendModels`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.filters.allBackendModels`)),1)]),_:1}),(S(!0),v(s,null,d(b(de),e=>(S(),f(b(M),{key:e,value:e},{default:g(()=>[m(a(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(O),"onUpdate:modelValue":r[6]||=e=>n(O)?O.value=e:null},{default:g(()=>[u(b(N),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.allKeys`)),1)]),_:1}),(S(!0),v(s,null,d(b(j),e=>(S(),f(b(M),{key:e.id,value:e.id},{default:g(()=>[m(a(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(k),"onUpdate:modelValue":r[7]||=e=>n(k)?k.value=e:null},{default:g(()=>[u(b(N),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.allStatus`)),1)]),_:1}),u(b(M),{value:`200`},{default:g(()=>[...r[20]||=[m(`200`,-1)]]),_:1}),u(b(M),{value:`non200`},{default:g(()=>[m(a(b(c)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(b(ye),{flush:``,class:`relative`},{default:g(()=>[b(ct)?(S(),v(`div`,Be,[e(`div`,Ve,[u(b(L),{class:`h-8 w-full`}),u(b(L),{class:`h-8 w-full`}),u(b(L),{class:`h-8 w-5/6`})])])):x(``,!0),u(b(ge),{"delay-duration":300},{default:g(()=>[u(b(xe),{class:`[&_td]:px-3 [&_th]:px-3`},{default:g(()=>[u(b(Se),null,{default:g(()=>[u(b(H),{class:`bg-muted`},{default:g(()=>[u(b(V),{class:`w-10`}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.id`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.time`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.clientModel`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.targetModel`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.latency`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.tags`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.latency`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.error`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),u(b(be),null,{default:g(()=>[(S(!0),v(s,null,d(b(R),e=>(S(),v(s,{key:e.id},[u(De,{log:e,expanded:b(J).has(e.id),"copied-id":$.value,onToggleExpand:b(ot),onOpenDetail:b(st),onCopy:ht},null,8,[`log`,`expanded`,`copied-id`,`onToggleExpand`,`onOpenDetail`]),b(J).has(e.id)?(S(),v(s,{key:0},[b(ke)[e.id]?(S(),f(b(H),{key:0},{default:g(()=>[u(b(B),{colspan:et,class:`text-center py-2 pl-10`},{default:g(()=>[u(b(L),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):b(Oe)[e.id]?.length?(S(!0),v(s,{key:1},d(b(Oe)[e.id],e=>(S(),f(De,{key:e.id,log:e,"is-child":!0,"copied-id":$.value,onOpenDetail:b(st),onCopy:ht},null,8,[`log`,`copied-id`,`onOpenDetail`]))),128)):x(``,!0)],64)):x(``,!0)],64))),128)),b(R).length===0&&!b(ct)?(S(),f(b(H),{key:0},{default:g(()=>[u(b(B),{colspan:et,class:`py-12 text-center`},{default:g(()=>[e(`div`,He,[e(`p`,Ue,a(b(c)(`logs.noLogs`)),1),gt.value?(S(),v(`p`,We,a(b(c)(`logs.noLogsFilterHint`)),1)):x(``,!0),gt.value?(S(),f(b(_),{key:1,variant:`ghost`,size:`sm`,onClick:_t},{default:g(()=>[m(a(b(c)(`logs.clearAllFilters`)),1)]),_:1})):x(``,!0)])]),_:1})]),_:1})):x(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),e(`div`,Ge,[e(`p`,Ke,a(b(c)(`logs.pagination`,{total:b(Te),page:b(U),totalPages:b(W)})),1),e(`div`,qe,[u(b(_),{variant:`outline`,size:`sm`,onClick:r[8]||=e=>b(Q)(1),disabled:b(U)<=1},{default:g(()=>[m(a(b(c)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),u(b(_),{variant:`outline`,size:`sm`,onClick:r[9]||=e=>b(Q)(b(U)-1),disabled:b(U)<=1},{default:g(()=>[m(a(b(c)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(S(!0),v(s,null,d(lt.value,e=>(S(),v(s,{key:e},[e===`...`?(S(),v(`span`,Je,`...`)):(S(),f(b(_),{key:1,variant:e===b(U)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>b(Q)(e)},{default:g(()=>[m(a(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),u(b(_),{variant:`outline`,size:`sm`,onClick:r[10]||=e=>b(Q)(b(U)+1),disabled:b(U)>=b(W)},{default:g(()=>[m(a(b(c)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),u(b(_),{variant:`outline`,size:`sm`,onClick:r[11]||=e=>b(Q)(b(W)),disabled:b(U)>=b(W)},{default:g(()=>[m(a(b(c)(`logs.lastPage`)),1)]),_:1},8,[`disabled`])])]),e(`div`,Ye,[e(`span`,Xe,a(b(c)(`logs.cleanup.autoCleanup`)),1),u(b(z),{type:`number`,modelValue:b(ut),"onUpdate:modelValue":r[12]||=e=>n(ut)?ut.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-16 h-6 text-xs`},null,8,[`modelValue`]),e(`span`,Ze,a(b(c)(`logs.cleanup.days`)),1),u(b(_),{size:`sm`,onClick:b(ft),disabled:b(dt)},{default:g(()=>[m(a(b(c)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])]),u(ee,{open:b(Y),"onUpdate:open":r[13]||=e=>n(Y)?Y.value=e:null,source:`history`,"log-entry":b(je)},null,8,[`open`,`log-entry`]),u(b(re),{open:b(K),"onUpdate:open":r[16]||=e=>n(K)?K.value=e:null},{default:g(()=>[u(b(te),null,{default:g(()=>[u(b(ne),null,{default:g(()=>[u(b(ae),null,{default:g(()=>[m(a(b(c)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),e(`p`,Qe,a(b(c)(`logs.cleanup.description`)),1),e(`div`,$e,[u(b(oe),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[m(a(b(c)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),u(b(z),{modelValue:b(G),"onUpdate:modelValue":r[14]||=e=>n(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),u(b(ie),null,{default:g(()=>[u(b(_),{variant:`outline`,onClick:r[15]||=e=>K.value=!1},{default:g(()=>[m(a(b(c)(`common.cancel`)),1)]),_:1}),u(b(_),{variant:`destructive`,onClick:b(at)},{default:g(()=>[m(a(b(c)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),u(b(me),{open:b(q),"onUpdate:open":r[18]||=e=>n(q)?q.value=e:null},{default:g(()=>[u(b(_e),null,{default:g(()=>[u(b(he),null,{default:g(()=>[u(b(pe),null,{default:g(()=>[m(a(b(c)(`logs.cleanupResult.title`)),1)]),_:1}),u(b(fe),null,{default:g(()=>[m(a(b(c)(`logs.cleanupResult.description`,{count:b(Ee)})),1)]),_:1})]),_:1}),u(b(ce),null,{default:g(()=>[u(b(le),{onClick:r[17]||=e=>q.value=!1},{default:g(()=>[m(a(b(c)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{it as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Ot as n,Q as r,Qt as i,R as a,U as o,X as s,Yt as c,at as l,bt as u,et as ee,gt as te,it as d,j as f,jt as p,n as m,nt as h,ot as g,qt as _,tt as v,vt as y,zt as b}from"./button-BpR9_1Oi.js";import{t as ne}from"./arrow-down-Bp1-jBZj.js";import{t as re}from"./image-CvK0QbMP.js";import{t as x}from"./plus-DB2feA5n.js";import{a as ie,n as ae,o as oe,r as se,t as ce}from"./dialog-Kt0ooFHU.js";import{t as S}from"./Label-CyMCbrvm.js";import{t as C}from"./Switch-D7Sl8Nyv.js";import{a as w,ct as le,lt as ue,ut as de}from"./index-DDIPrwyW.js";import{t as T}from"./Input-CiK38Phu.js";import{t as E}from"./CascadingModelSelect-BL4feC-w.js";import{t as fe}from"./useProviderGroups-D2jWO27u.js";var pe=a(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]);function D(e,t){let n={},r=!1;try{let t=JSON.parse(e);n=t.default&&!t.targets?{targets:[t.default]}:t}catch{r=!0}let i=(n.targets??[]).map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||``,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})),a=i[0],o=a?.overflow_provider_id&&a?.overflow_model?{provider_id:a.overflow_provider_id,model:a.overflow_model}:null,s=n.multimodal_fallback??null;return{data:{targets:i.length>0?i:[{backend_model:``,provider_id:t}],overflow:o,multimodal:s},parseError:r}}function O(e,t,n){let r=e.map((e,n)=>n===0&&t?{backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:t.provider_id,overflow_model:t.model}:{backend_model:e.backend_model,provider_id:e.provider_id});return JSON.stringify({targets:r,...n?{multimodal_fallback:n}:{}})}function me(e,t,n){let{data:r}=D(e,n),i=[];for(let e of r.targets){let n=t.find(t=>t.id===e.provider_id)?.name??e.provider_id.slice(0,6);i.push(n)}if(r.overflow){let e=t.find(e=>e.id===r.overflow.provider_id);i.push(`↓ `+(e?.name??`OF`))}return r.multimodal&&i.push(`MM`),i.join(` → `)}var he={class:`page`},ge={class:`flex items-center gap-4 mb-4`},_e={class:`text-base font-semibold text-foreground shrink-0`},ve={class:`flex gap-4`,style:{"min-height":`calc(100vh - 120px)`}},ye={class:`w-[340px] shrink-0 flex flex-col gap-2`},be={class:`font-mono text-[10px] text-muted-foreground/60 px-0.5`},k={class:`flex flex-col gap-0.5 flex-1 overflow-y-auto`},A=[`onClick`],j={class:`flex-1 min-w-0`},M={key:0,class:`py-8 text-center text-xs text-muted-foreground/50`},N={class:`flex-1 bg-card rounded-lg border border-border flex flex-col overflow-hidden`},xe={key:0,class:`flex-1 flex items-center justify-center text-muted-foreground/50 text-sm flex-col gap-2`},Se={class:`flex items-center gap-3 px-4 py-3 border-b border-border bg-background/30`},Ce={class:`font-mono text-sm font-bold flex-1 truncate`},we={class:`flex-1 overflow-y-auto px-4 py-4 space-y-5`},Te={class:`flex items-center gap-2 mb-2`},Ee={class:`text-xs font-semibold text-muted-foreground`},De={class:`font-mono text-[10px] text-muted-foreground/40 bg-muted/30 px-1.5 py-px rounded`},Oe={class:`flex flex-col gap-1.5`},ke={class:`flex-1`},Ae={class:`flex items-center gap-2 mb-2`},je={class:`text-xs font-semibold text-primary/60`},Me={key:0,class:`font-mono text-[10px] text-primary/40 bg-primary/8 px-1.5 py-px rounded`},Ne={class:`bg-background border border-border rounded-md px-3 py-2.5`},Pe={class:`flex items-center gap-2.5 mb-2`},Fe={class:`text-xs text-foreground`},Ie={key:0,class:`flex gap-2`},Le={class:`flex-1`},Re={key:1,class:`text-xs text-muted-foreground/40`},ze={class:`flex items-center gap-2 mb-2`},Be={class:`text-xs font-semibold text-blue-500/60`},Ve={key:0,class:`font-mono text-[10px] text-blue-500/40 bg-blue-500/8 px-1.5 py-px rounded`},He={class:`bg-background border border-border rounded-md px-3 py-2.5`},Ue={class:`flex items-center gap-2.5 mb-2`},We={class:`text-xs text-foreground`},Ge={key:0,class:`flex gap-2`},Ke={class:`flex-1`},qe={key:1,class:`text-xs text-muted-foreground/40`},Je={key:2,class:`flex items-center gap-2 mt-2 px-2 py-1.5 bg-warning/8 rounded`},Ye={class:`text-[10px] text-warning leading-relaxed`},Xe={class:`flex items-center justify-between px-4 py-2.5 border-t border-border bg-background/30`},P={key:0,class:`flex items-center gap-2 text-xs text-danger`},Ze={class:`font-mono text-[10px] text-muted-foreground/40`},Qe={class:`flex gap-2`},$e={class:`space-y-3 py-2`},et={class:`space-y-1.5`},tt={class:`space-y-1.5`},F=g({__name:`ModelMappings`,setup(a){let{t:g}=o(),F=b([]),I=b([]),L=b(null),R=b(``),z=b(!1),B=b(!1),V=b(!1),H=b(``),U=b(void 0),W=b([]),G=b(null),K=b(null),q=r(()=>fe(I.value)),J=r(()=>{let e=R.value.toLowerCase().trim();return e?F.value.filter(t=>t.client_model.toLowerCase().includes(e)):F.value}),Y=r(()=>F.value.find(e=>e.id===L.value)??null),X=r(()=>!!G.value),Z=r(()=>!!K.value),nt=r(()=>H.value.trim().length>0&&!!U.value?.model),Q=r(()=>I.value[0]?.id??``);function rt(e){let t=D(e.rule,Q.value);return t.parseError&&w.error(g(`mappings.messages.parseRuleFailed`)),t.data}function it(e){return me(e.rule,I.value,Q.value)}function at(e){L.value=e,B.value=!1}n(Y,e=>{if(!e)return;let t=rt(e);W.value=t.targets.map(e=>({...e})),G.value=t.overflow?{...t.overflow}:null,K.value=t.multimodal?{...t.multimodal}:null,B.value=!1});function ot(){let e=q.value[0];W.value.push({backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``})}function st(e){W.value.length<=1||W.value.splice(e,1)}function ct(e,t){W.value[e]={...W.value[e],provider_id:t.provider_id,backend_model:t.model}}function lt(e){if(e){let e=q.value[0];G.value={provider_id:e?.provider.id??``,model:e?.models[0]?.name??``}}else G.value=null}function ut(e){G.value={provider_id:e.provider_id,model:e.model}}function dt(e){if(e){let e=q.value[0];K.value={provider_id:e?.provider.id??``,backend_model:e?.models[0]?.name??``}}else K.value=null}function ft(e){K.value={provider_id:e.provider_id,backend_model:e.model}}async function $(){try{let e=await t.getMappingGroupsInit();F.value=e.groups,I.value=e.providers}catch(e){console.error(`ModelMappings.init:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}!L.value&&F.value.length>0&&(L.value=F.value[0].id)}async function pt(){if(!Y.value)return;let e=Y.value.client_model.trim();if(e){z.value=!0;try{await t.updateMappingGroup(Y.value.id,{client_model:e,rule:O(W.value,G.value,K.value)}),await $(),w.success(g(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.save:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}finally{z.value=!1}}}async function mt(){if(Y.value)try{await t.toggleMappingGroup(Y.value.id),await $()}catch(e){console.error(`ModelMappings.toggle:`,e),w.error(f(e,g(`mappings.messages.toggleFailed`)))}}async function ht(){if(Y.value)try{await t.deleteMappingGroup(Y.value.id),B.value=!1;let e=F.value.filter(e=>e.id!==Y.value.id);L.value=e.length>0?e[0].id:null,await $(),w.success(g(`common.deleteSuccess`))}catch(e){console.error(`ModelMappings.delete:`,e),w.error(f(e,g(`mappings.messages.deleteFailed`,{model:Y.value.client_model})))}}function gt(){H.value=``;let e=q.value[0];U.value=e?{provider_id:e.provider.id,model:e.models[0]?.name??``}:void 0,V.value=!0}async function _t(){let e=H.value.trim();if(!(!e||!U.value?.model))try{let n=O([{provider_id:U.value.provider_id,backend_model:U.value.model}],null,null),r=await t.createMappingGroup({client_model:e,rule:n});V.value=!1,await $(),L.value=r.id,w.success(g(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.add:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}}return te($),(t,n)=>(y(),h(`div`,he,[e(`div`,ge,[e(`h2`,_e,i(_(g)(`mappings.title`)),1),n[9]||=e(`div`,{class:`flex-1`},null,-1),l(_(m),{size:`sm`,class:`h-[30px] gap-1.5`,onClick:gt},{default:p(()=>[l(_(x),{class:`w-3.5 h-3.5`}),d(` `+i(_(g)(`mappings.addGroup`)),1)]),_:1})]),e(`div`,ve,[e(`aside`,ye,[e(`div`,null,[l(_(T),{modelValue:R.value,"onUpdate:modelValue":n[0]||=e=>R.value=e,placeholder:_(g)(`common.search`)+`...`,class:`h-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])]),e(`span`,be,i(J.value.length)+` / `+i(F.value.length)+` `+i(_(g)(`mappings.totalMappings`,{count:0}).replace(/\d+.*/,``)),1),e(`div`,k,[(y(!0),h(s,null,u(J.value,t=>(y(),h(`div`,{key:t.id,class:c([`flex items-center gap-2.5 px-3 py-2 bg-card rounded-lg border cursor-pointer transition-colors`,L.value===t.id?`border-primary bg-primary/10`:`border-border hover:bg-muted/30`]),onClick:e=>at(t.id)},[e(`div`,j,[e(`div`,{class:c([`font-mono text-xs font-semibold truncate`,t.is_active?`text-foreground`:`text-muted-foreground`])},i(t.client_model),3),e(`div`,{class:c([`text-[10px] truncate mt-0.5`,t.is_active?`text-muted-foreground/60`:`text-muted-foreground/30`])},i(it(t)),3)]),e(`span`,{class:c([`inline-flex items-center gap-1 px-1.5 py-px rounded-full text-[9px] font-mono font-semibold shrink-0`,t.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[e(`span`,{class:c([`w-1 h-1 rounded-full`,t.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+i(t.is_active?`ON`:`OFF`),1)],2)],10,A))),128)),J.value.length===0?(y(),h(`div`,M,i(_(g)(`mappings.noGroups`)),1)):v(``,!0)])]),e(`main`,N,[Y.value?(y(),h(s,{key:1},[e(`div`,Se,[e(`span`,Ce,i(Y.value.client_model),1),e(`span`,{class:c([`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-[10px] font-mono font-semibold h-5`,Y.value.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[e(`span`,{class:c([`w-1 h-1 rounded-full`,Y.value.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+i(Y.value.is_active?`Active`:`Inactive`),1)],2),l(_(C),{"model-value":!!Y.value.is_active,"onUpdate:modelValue":mt},null,8,[`model-value`])]),e(`div`,we,[e(`section`,null,[e(`div`,Te,[l(_(le),{class:`w-3.5 h-3.5 text-primary/60`}),e(`span`,Ee,i(_(g)(`mappings.editor.failoverChain`)),1),e(`span`,De,i(W.value.length)+` target`+i(W.value.length>1?`s`:``),1)]),e(`div`,Oe,[(y(!0),h(s,null,u(W.value,(t,n)=>(y(),h(`div`,{key:n,class:`flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-md`},[e(`span`,{class:c([`w-[22px] h-[22px] flex items-center justify-center rounded-full text-[10px] font-mono font-bold shrink-0`,n===0?`bg-primary/15 text-primary`:`bg-muted/40 text-muted-foreground`])},i(n+1),3),e(`div`,ke,[l(E,{providers:q.value,"model-value":{provider_id:t.provider_id,model:t.backend_model},compact:``,placeholder:_(g)(`mappings.selectProviderModel`),"onUpdate:modelValue":e=>ct(n,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),W.value.length>1?(y(),ee(_(m),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>st(n)},{default:p(()=>[l(_(ue),{class:`w-3 h-3`})]),_:1},8,[`onClick`])):v(``,!0)]))),128))]),l(_(m),{variant:`ghost`,size:`sm`,class:`mt-1.5 text-xs text-muted-foreground/40 border border-dashed border-border hover:border-primary/40 hover:text-primary/60`,onClick:ot},{default:p(()=>[l(_(x),{class:`w-3 h-3 mr-1`}),d(` `+i(_(g)(`mappings.addBackup`)),1)]),_:1})]),n[10]||=e(`div`,{class:`border-t border-dashed border-primary/10`},null,-1),e(`section`,null,[e(`div`,Ae,[l(_(ne),{class:`w-3.5 h-3.5 text-primary/50`}),e(`span`,je,i(_(g)(`mappings.editor.contextOverflow`)),1),X.value?(y(),h(`span`,Me,i(_(g)(`mappings.enabled`)),1)):v(``,!0)]),e(`div`,Ne,[e(`div`,Pe,[l(_(C),{"model-value":X.value,"onUpdate:modelValue":lt},null,8,[`model-value`]),e(`span`,Fe,i(_(g)(`mappings.overflowTooltip`)),1)]),X.value?(y(),h(`div`,Ie,[e(`div`,Le,[l(E,{providers:q.value,"model-value":G.value?{provider_id:G.value.provider_id,model:G.value.model}:void 0,compact:``,dashed:``,placeholder:_(g)(`mappings.selectModel`),"onUpdate:modelValue":n[1]||=e=>ut(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),h(`span`,Re,i(_(g)(`mappings.overflowTooltip`)),1))])]),e(`section`,null,[e(`div`,ze,[l(_(re),{class:`w-3.5 h-3.5 text-blue-500/50`}),e(`span`,Be,i(_(g)(`mappings.editor.multimodalFallback`)),1),Z.value?(y(),h(`span`,Ve,i(_(g)(`mappings.enabled`)),1)):v(``,!0)]),e(`div`,He,[e(`div`,Ue,[l(_(C),{"model-value":Z.value,"onUpdate:modelValue":dt},null,8,[`model-value`]),e(`span`,We,i(_(g)(`mappings.multimodalFallback.add`)),1)]),Z.value?(y(),h(`div`,Ge,[e(`div`,Ke,[l(E,{providers:q.value,"model-value":K.value?{provider_id:K.value.provider_id,model:K.value.backend_model}:void 0,compact:``,dashed:``,placeholder:_(g)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[2]||=e=>ft(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),h(`span`,qe,i(_(g)(`mappings.multimodalFallback.add`)),1)),Z.value?(y(),h(`div`,Je,[l(_(de),{class:`w-3 h-3 text-warning shrink-0`}),e(`span`,Ye,i(_(g)(`mappings.multimodalFallback.sessionLockWarning`)),1)])):v(``,!0)])])]),e(`div`,Xe,[B.value?(y(),h(`div`,P,[d(i(_(g)(`mappings.confirmDeleteDesc`,{model:Y.value.client_model}))+` `,1),l(_(m),{variant:`destructive`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:ht},{default:p(()=>[d(i(_(g)(`common.yes`)),1)]),_:1}),l(_(m),{variant:`ghost`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:n[3]||=e=>B.value=!1},{default:p(()=>[d(i(_(g)(`common.no`)),1)]),_:1})])):(y(),h(s,{key:1},[e(`span`,Ze,` ID: `+i(Y.value.id),1),e(`div`,Qe,[l(_(m),{variant:`ghost`,size:`sm`,class:`text-xs text-danger hover:text-danger`,onClick:n[4]||=e=>B.value=!0},{default:p(()=>[d(i(_(g)(`common.delete`)),1)]),_:1}),l(_(m),{size:`sm`,class:`text-xs`,disabled:z.value,onClick:pt},{default:p(()=>[d(i(z.value?_(g)(`common.saving`):_(g)(`common.save`)),1)]),_:1},8,[`disabled`])])],64))])],64)):(y(),h(`div`,xe,[l(_(pe),{class:`w-6 h-6 opacity-40`}),d(` `+i(_(g)(`mappings.selectProviderOrModel`)),1)]))])]),l(_(oe),{open:V.value,"onUpdate:open":n[8]||=e=>V.value=!1},{default:p(()=>[l(_(ie),{class:`max-w-md`},{default:p(()=>[l(_(ae),null,{default:p(()=>[l(_(ce),null,{default:p(()=>[d(i(_(g)(`mappings.addGroup`)),1)]),_:1})]),_:1}),e(`div`,$e,[e(`div`,et,[l(_(S),{class:`text-xs text-muted-foreground`},{default:p(()=>[d(i(_(g)(`mappings.clientModel`)),1)]),_:1}),l(_(T),{modelValue:H.value,"onUpdate:modelValue":n[5]||=e=>H.value=e,placeholder:_(g)(`mappings.editor.clientInputPlaceholder`),class:`h-8 font-mono text-xs`},null,8,[`modelValue`,`placeholder`])]),e(`div`,tt,[l(_(S),{class:`text-xs text-muted-foreground`},{default:p(()=>[d(i(_(g)(`mappings.selectProviderModel`)),1)]),_:1}),l(E,{providers:q.value,"model-value":U.value,compact:``,placeholder:_(g)(`mappings.selectProviderModel`),"onUpdate:modelValue":n[6]||=e=>U.value=e},null,8,[`providers`,`model-value`,`placeholder`])])]),l(_(se),null,{default:p(()=>[l(_(m),{variant:`ghost`,size:`sm`,onClick:n[7]||=e=>V.value=!1},{default:p(()=>[d(i(_(g)(`common.cancel`)),1)]),_:1}),l(_(m),{size:`sm`,disabled:!nt.value,onClick:_t},{default:p(()=>[d(i(_(g)(`mappings.addGroup`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{F as default};
|
|
1
|
+
import{$ as e,A as t,Ot as n,Q as r,Qt as i,R as a,U as o,X as s,Yt as c,at as l,bt as u,et as ee,gt as te,it as d,j as f,jt as p,n as m,nt as h,ot as g,qt as _,tt as v,vt as y,zt as b}from"./button-BcmABzob.js";import{t as ne}from"./arrow-down-CL1-lpk5.js";import{t as re}from"./image-BQjpozCO.js";import{t as x}from"./plus-COwF_5ra.js";import{a as ie,n as ae,o as oe,r as se,t as ce}from"./dialog-BDw6KIzh.js";import{t as S}from"./Label-D9CEaBof.js";import{t as C}from"./Switch-C9A1URA9.js";import{a as w,ct as le,lt as ue,ut as de}from"./index-CpvOTf7s.js";import{t as T}from"./Input-4bkkJSKj.js";import{t as E}from"./CascadingModelSelect-D1iTboYP.js";import{t as fe}from"./useProviderGroups-Z3iRaBYM.js";var pe=a(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]);function D(e,t){let n={},r=!1;try{let t=JSON.parse(e);n=t.default&&!t.targets?{targets:[t.default]}:t}catch{r=!0}let i=(n.targets??[]).map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||``,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})),a=i[0],o=a?.overflow_provider_id&&a?.overflow_model?{provider_id:a.overflow_provider_id,model:a.overflow_model}:null,s=n.multimodal_fallback??null;return{data:{targets:i.length>0?i:[{backend_model:``,provider_id:t}],overflow:o,multimodal:s},parseError:r}}function O(e,t,n){let r=e.map((e,n)=>n===0&&t?{backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:t.provider_id,overflow_model:t.model}:{backend_model:e.backend_model,provider_id:e.provider_id});return JSON.stringify({targets:r,...n?{multimodal_fallback:n}:{}})}function me(e,t,n){let{data:r}=D(e,n),i=[];for(let e of r.targets){let n=t.find(t=>t.id===e.provider_id)?.name??e.provider_id.slice(0,6);i.push(n)}if(r.overflow){let e=t.find(e=>e.id===r.overflow.provider_id);i.push(`↓ `+(e?.name??`OF`))}return r.multimodal&&i.push(`MM`),i.join(` → `)}var he={class:`page`},ge={class:`flex items-center gap-4 mb-4`},_e={class:`text-base font-semibold text-foreground shrink-0`},ve={class:`flex gap-4`,style:{"min-height":`calc(100vh - 120px)`}},ye={class:`w-[340px] shrink-0 flex flex-col gap-2`},be={class:`font-mono text-[10px] text-muted-foreground/60 px-0.5`},k={class:`flex flex-col gap-0.5 flex-1 overflow-y-auto`},A=[`onClick`],j={class:`flex-1 min-w-0`},M={key:0,class:`py-8 text-center text-xs text-muted-foreground/50`},N={class:`flex-1 bg-card rounded-lg border border-border flex flex-col overflow-hidden`},xe={key:0,class:`flex-1 flex items-center justify-center text-muted-foreground/50 text-sm flex-col gap-2`},Se={class:`flex items-center gap-3 px-4 py-3 border-b border-border bg-background/30`},Ce={class:`font-mono text-sm font-bold flex-1 truncate`},we={class:`flex-1 overflow-y-auto px-4 py-4 space-y-5`},Te={class:`flex items-center gap-2 mb-2`},Ee={class:`text-xs font-semibold text-muted-foreground`},De={class:`font-mono text-[10px] text-muted-foreground/40 bg-muted/30 px-1.5 py-px rounded`},Oe={class:`flex flex-col gap-1.5`},ke={class:`flex-1`},Ae={class:`flex items-center gap-2 mb-2`},je={class:`text-xs font-semibold text-primary/60`},Me={key:0,class:`font-mono text-[10px] text-primary/40 bg-primary/8 px-1.5 py-px rounded`},Ne={class:`bg-background border border-border rounded-md px-3 py-2.5`},Pe={class:`flex items-center gap-2.5 mb-2`},Fe={class:`text-xs text-foreground`},Ie={key:0,class:`flex gap-2`},Le={class:`flex-1`},Re={key:1,class:`text-xs text-muted-foreground/40`},ze={class:`flex items-center gap-2 mb-2`},Be={class:`text-xs font-semibold text-blue-500/60`},Ve={key:0,class:`font-mono text-[10px] text-blue-500/40 bg-blue-500/8 px-1.5 py-px rounded`},He={class:`bg-background border border-border rounded-md px-3 py-2.5`},Ue={class:`flex items-center gap-2.5 mb-2`},We={class:`text-xs text-foreground`},Ge={key:0,class:`flex gap-2`},Ke={class:`flex-1`},qe={key:1,class:`text-xs text-muted-foreground/40`},Je={key:2,class:`flex items-center gap-2 mt-2 px-2 py-1.5 bg-warning/8 rounded`},Ye={class:`text-[10px] text-warning leading-relaxed`},Xe={class:`flex items-center justify-between px-4 py-2.5 border-t border-border bg-background/30`},P={key:0,class:`flex items-center gap-2 text-xs text-danger`},Ze={class:`font-mono text-[10px] text-muted-foreground/40`},Qe={class:`flex gap-2`},$e={class:`space-y-3 py-2`},et={class:`space-y-1.5`},tt={class:`space-y-1.5`},F=g({__name:`ModelMappings`,setup(a){let{t:g}=o(),F=b([]),I=b([]),L=b(null),R=b(``),z=b(!1),B=b(!1),V=b(!1),H=b(``),U=b(void 0),W=b([]),G=b(null),K=b(null),q=r(()=>fe(I.value)),J=r(()=>{let e=R.value.toLowerCase().trim();return e?F.value.filter(t=>t.client_model.toLowerCase().includes(e)):F.value}),Y=r(()=>F.value.find(e=>e.id===L.value)??null),X=r(()=>!!G.value),Z=r(()=>!!K.value),nt=r(()=>H.value.trim().length>0&&!!U.value?.model),Q=r(()=>I.value[0]?.id??``);function rt(e){let t=D(e.rule,Q.value);return t.parseError&&w.error(g(`mappings.messages.parseRuleFailed`)),t.data}function it(e){return me(e.rule,I.value,Q.value)}function at(e){L.value=e,B.value=!1}n(Y,e=>{if(!e)return;let t=rt(e);W.value=t.targets.map(e=>({...e})),G.value=t.overflow?{...t.overflow}:null,K.value=t.multimodal?{...t.multimodal}:null,B.value=!1});function ot(){let e=q.value[0];W.value.push({backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``})}function st(e){W.value.length<=1||W.value.splice(e,1)}function ct(e,t){W.value[e]={...W.value[e],provider_id:t.provider_id,backend_model:t.model}}function lt(e){if(e){let e=q.value[0];G.value={provider_id:e?.provider.id??``,model:e?.models[0]?.name??``}}else G.value=null}function ut(e){G.value={provider_id:e.provider_id,model:e.model}}function dt(e){if(e){let e=q.value[0];K.value={provider_id:e?.provider.id??``,backend_model:e?.models[0]?.name??``}}else K.value=null}function ft(e){K.value={provider_id:e.provider_id,backend_model:e.model}}async function $(){try{let e=await t.getMappingGroupsInit();F.value=e.groups,I.value=e.providers}catch(e){console.error(`ModelMappings.init:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}!L.value&&F.value.length>0&&(L.value=F.value[0].id)}async function pt(){if(!Y.value)return;let e=Y.value.client_model.trim();if(e){z.value=!0;try{await t.updateMappingGroup(Y.value.id,{client_model:e,rule:O(W.value,G.value,K.value)}),await $(),w.success(g(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.save:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}finally{z.value=!1}}}async function mt(){if(Y.value)try{await t.toggleMappingGroup(Y.value.id),await $()}catch(e){console.error(`ModelMappings.toggle:`,e),w.error(f(e,g(`mappings.messages.toggleFailed`)))}}async function ht(){if(Y.value)try{await t.deleteMappingGroup(Y.value.id),B.value=!1;let e=F.value.filter(e=>e.id!==Y.value.id);L.value=e.length>0?e[0].id:null,await $(),w.success(g(`common.deleteSuccess`))}catch(e){console.error(`ModelMappings.delete:`,e),w.error(f(e,g(`mappings.messages.deleteFailed`,{model:Y.value.client_model})))}}function gt(){H.value=``;let e=q.value[0];U.value=e?{provider_id:e.provider.id,model:e.models[0]?.name??``}:void 0,V.value=!0}async function _t(){let e=H.value.trim();if(!(!e||!U.value?.model))try{let n=O([{provider_id:U.value.provider_id,backend_model:U.value.model}],null,null),r=await t.createMappingGroup({client_model:e,rule:n});V.value=!1,await $(),L.value=r.id,w.success(g(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.add:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}}return te($),(t,n)=>(y(),h(`div`,he,[e(`div`,ge,[e(`h2`,_e,i(_(g)(`mappings.title`)),1),n[9]||=e(`div`,{class:`flex-1`},null,-1),l(_(m),{size:`sm`,class:`h-[30px] gap-1.5`,onClick:gt},{default:p(()=>[l(_(x),{class:`w-3.5 h-3.5`}),d(` `+i(_(g)(`mappings.addGroup`)),1)]),_:1})]),e(`div`,ve,[e(`aside`,ye,[e(`div`,null,[l(_(T),{modelValue:R.value,"onUpdate:modelValue":n[0]||=e=>R.value=e,placeholder:_(g)(`common.search`)+`...`,class:`h-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])]),e(`span`,be,i(J.value.length)+` / `+i(F.value.length)+` `+i(_(g)(`mappings.totalMappings`,{count:0}).replace(/\d+.*/,``)),1),e(`div`,k,[(y(!0),h(s,null,u(J.value,t=>(y(),h(`div`,{key:t.id,class:c([`flex items-center gap-2.5 px-3 py-2 bg-card rounded-lg border cursor-pointer transition-colors`,L.value===t.id?`border-primary bg-primary/10`:`border-border hover:bg-muted/30`]),onClick:e=>at(t.id)},[e(`div`,j,[e(`div`,{class:c([`font-mono text-xs font-semibold truncate`,t.is_active?`text-foreground`:`text-muted-foreground`])},i(t.client_model),3),e(`div`,{class:c([`text-[10px] truncate mt-0.5`,t.is_active?`text-muted-foreground/60`:`text-muted-foreground/30`])},i(it(t)),3)]),e(`span`,{class:c([`inline-flex items-center gap-1 px-1.5 py-px rounded-full text-[9px] font-mono font-semibold shrink-0`,t.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[e(`span`,{class:c([`w-1 h-1 rounded-full`,t.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+i(t.is_active?`ON`:`OFF`),1)],2)],10,A))),128)),J.value.length===0?(y(),h(`div`,M,i(_(g)(`mappings.noGroups`)),1)):v(``,!0)])]),e(`main`,N,[Y.value?(y(),h(s,{key:1},[e(`div`,Se,[e(`span`,Ce,i(Y.value.client_model),1),e(`span`,{class:c([`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-[10px] font-mono font-semibold h-5`,Y.value.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[e(`span`,{class:c([`w-1 h-1 rounded-full`,Y.value.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+i(Y.value.is_active?`Active`:`Inactive`),1)],2),l(_(C),{"model-value":!!Y.value.is_active,"onUpdate:modelValue":mt},null,8,[`model-value`])]),e(`div`,we,[e(`section`,null,[e(`div`,Te,[l(_(le),{class:`w-3.5 h-3.5 text-primary/60`}),e(`span`,Ee,i(_(g)(`mappings.editor.failoverChain`)),1),e(`span`,De,i(W.value.length)+` target`+i(W.value.length>1?`s`:``),1)]),e(`div`,Oe,[(y(!0),h(s,null,u(W.value,(t,n)=>(y(),h(`div`,{key:n,class:`flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-md`},[e(`span`,{class:c([`w-[22px] h-[22px] flex items-center justify-center rounded-full text-[10px] font-mono font-bold shrink-0`,n===0?`bg-primary/15 text-primary`:`bg-muted/40 text-muted-foreground`])},i(n+1),3),e(`div`,ke,[l(E,{providers:q.value,"model-value":{provider_id:t.provider_id,model:t.backend_model},compact:``,placeholder:_(g)(`mappings.selectProviderModel`),"onUpdate:modelValue":e=>ct(n,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),W.value.length>1?(y(),ee(_(m),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>st(n)},{default:p(()=>[l(_(ue),{class:`w-3 h-3`})]),_:1},8,[`onClick`])):v(``,!0)]))),128))]),l(_(m),{variant:`ghost`,size:`sm`,class:`mt-1.5 text-xs text-muted-foreground/40 border border-dashed border-border hover:border-primary/40 hover:text-primary/60`,onClick:ot},{default:p(()=>[l(_(x),{class:`w-3 h-3 mr-1`}),d(` `+i(_(g)(`mappings.addBackup`)),1)]),_:1})]),n[10]||=e(`div`,{class:`border-t border-dashed border-primary/10`},null,-1),e(`section`,null,[e(`div`,Ae,[l(_(ne),{class:`w-3.5 h-3.5 text-primary/50`}),e(`span`,je,i(_(g)(`mappings.editor.contextOverflow`)),1),X.value?(y(),h(`span`,Me,i(_(g)(`mappings.enabled`)),1)):v(``,!0)]),e(`div`,Ne,[e(`div`,Pe,[l(_(C),{"model-value":X.value,"onUpdate:modelValue":lt},null,8,[`model-value`]),e(`span`,Fe,i(_(g)(`mappings.overflowTooltip`)),1)]),X.value?(y(),h(`div`,Ie,[e(`div`,Le,[l(E,{providers:q.value,"model-value":G.value?{provider_id:G.value.provider_id,model:G.value.model}:void 0,compact:``,dashed:``,placeholder:_(g)(`mappings.selectModel`),"onUpdate:modelValue":n[1]||=e=>ut(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),h(`span`,Re,i(_(g)(`mappings.overflowTooltip`)),1))])]),e(`section`,null,[e(`div`,ze,[l(_(re),{class:`w-3.5 h-3.5 text-blue-500/50`}),e(`span`,Be,i(_(g)(`mappings.editor.multimodalFallback`)),1),Z.value?(y(),h(`span`,Ve,i(_(g)(`mappings.enabled`)),1)):v(``,!0)]),e(`div`,He,[e(`div`,Ue,[l(_(C),{"model-value":Z.value,"onUpdate:modelValue":dt},null,8,[`model-value`]),e(`span`,We,i(_(g)(`mappings.multimodalFallback.add`)),1)]),Z.value?(y(),h(`div`,Ge,[e(`div`,Ke,[l(E,{providers:q.value,"model-value":K.value?{provider_id:K.value.provider_id,model:K.value.backend_model}:void 0,compact:``,dashed:``,placeholder:_(g)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[2]||=e=>ft(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),h(`span`,qe,i(_(g)(`mappings.multimodalFallback.add`)),1)),Z.value?(y(),h(`div`,Je,[l(_(de),{class:`w-3 h-3 text-warning shrink-0`}),e(`span`,Ye,i(_(g)(`mappings.multimodalFallback.sessionLockWarning`)),1)])):v(``,!0)])])]),e(`div`,Xe,[B.value?(y(),h(`div`,P,[d(i(_(g)(`mappings.confirmDeleteDesc`,{model:Y.value.client_model}))+` `,1),l(_(m),{variant:`destructive`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:ht},{default:p(()=>[d(i(_(g)(`common.yes`)),1)]),_:1}),l(_(m),{variant:`ghost`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:n[3]||=e=>B.value=!1},{default:p(()=>[d(i(_(g)(`common.no`)),1)]),_:1})])):(y(),h(s,{key:1},[e(`span`,Ze,` ID: `+i(Y.value.id),1),e(`div`,Qe,[l(_(m),{variant:`ghost`,size:`sm`,class:`text-xs text-danger hover:text-danger`,onClick:n[4]||=e=>B.value=!0},{default:p(()=>[d(i(_(g)(`common.delete`)),1)]),_:1}),l(_(m),{size:`sm`,class:`text-xs`,disabled:z.value,onClick:pt},{default:p(()=>[d(i(z.value?_(g)(`common.saving`):_(g)(`common.save`)),1)]),_:1},8,[`disabled`])])],64))])],64)):(y(),h(`div`,xe,[l(_(pe),{class:`w-6 h-6 opacity-40`}),d(` `+i(_(g)(`mappings.selectProviderOrModel`)),1)]))])]),l(_(oe),{open:V.value,"onUpdate:open":n[8]||=e=>V.value=!1},{default:p(()=>[l(_(ie),{class:`max-w-md`},{default:p(()=>[l(_(ae),null,{default:p(()=>[l(_(ce),null,{default:p(()=>[d(i(_(g)(`mappings.addGroup`)),1)]),_:1})]),_:1}),e(`div`,$e,[e(`div`,et,[l(_(S),{class:`text-xs text-muted-foreground`},{default:p(()=>[d(i(_(g)(`mappings.clientModel`)),1)]),_:1}),l(_(T),{modelValue:H.value,"onUpdate:modelValue":n[5]||=e=>H.value=e,placeholder:_(g)(`mappings.editor.clientInputPlaceholder`),class:`h-8 font-mono text-xs`},null,8,[`modelValue`,`placeholder`])]),e(`div`,tt,[l(_(S),{class:`text-xs text-muted-foreground`},{default:p(()=>[d(i(_(g)(`mappings.selectProviderModel`)),1)]),_:1}),l(E,{providers:q.value,"model-value":U.value,compact:``,placeholder:_(g)(`mappings.selectProviderModel`),"onUpdate:modelValue":n[6]||=e=>U.value=e},null,8,[`providers`,`model-value`,`placeholder`])])]),l(_(se),null,{default:p(()=>[l(_(m),{variant:`ghost`,size:`sm`,onClick:n[7]||=e=>V.value=!1},{default:p(()=>[d(i(_(g)(`common.cancel`)),1)]),_:1}),l(_(m),{size:`sm`,disabled:!nt.value,onClick:_t},{default:p(()=>[d(i(_(g)(`mappings.addGroup`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{F as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,Ft as n,Kt as r,Ot as i,Q as a,Qt as o,U as s,Vt as c,X as l,Y as u,Yt as d,Zt as f,_t as p,at as m,bt as h,et as g,gt as ee,it as _,j as te,jt as v,n as y,nt as b,ot as x,qt as S,tt as C,vt as w,zt as T}from"./button-BcmABzob.js";import{n as E,t as D}from"./UnifiedRequestDialog-Dnhxxnoi.js";import{a as O,i as k,o as ne}from"./TabsTrigger-BciD13aS.js";import{n as re,t as A}from"./CollapsibleContent-CsQhKwq1.js";import{t as ie}from"./CollapsibleTrigger-x1DJz63o.js";import{a as ae,bt as j,c as oe,d as se,f as ce,gt as le,l as ue,lt as de,o as fe,p as pe,s as me,u as he,vt as ge,yt as _e}from"./index-CpvOTf7s.js";import{t as ve}from"./badge-_5ZpB7R1.js";import{a as ye,i as M,n as N,o as be,r as P,t as xe}from"./TableHeader-B8tbY3uE.js";import{t as Se}from"./useClipboard-Bv5gUQAX.js";function F(e){return e.adaptiveLimit??e.maxConcurrency}function I(e,t){let n=t>0?e/t:0;return n>=.8?`bg-danger`:n>=.5?`bg-warning`:`bg-primary`}function L(e,t){return(t>0?e/t:0)>=.8?`text-danger`:``}var Ce={class:`flex items-stretch bg-card border border-border rounded-lg overflow-hidden mb-3`},R={class:`flex items-center gap-3.5 px-5 py-3 border-r border-border min-w-[180px]`,style:{background:`oklch(0.68 0.13 175 / 8%)`}},z={class:`text-[32px] font-bold text-primary font-mono leading-none`},we={class:`flex flex-col gap-0.5`},Te={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},B={class:`font-mono text-[11px] text-muted-foreground`},Ee={key:0,class:`inline-flex items-center gap-1 ml-3 px-2 py-0.5 rounded-full font-mono text-[11px] font-semibold bg-warning/10 text-warning`},De={class:`flex-1 px-4 py-2.5 flex flex-col gap-1 justify-center`},Oe={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-0.5`},ke={key:0,class:`text-[11px] text-muted-foreground py-1`},Ae=[`title`],V={class:`flex-1 h-1 bg-foreground/[0.06] rounded-sm overflow-hidden`},je=x({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{},queuedCount:{},concurrency:{}},setup(t){let{t:n}=s();return(r,i)=>(w(),b(`div`,Ce,[e(`div`,R,[e(`span`,z,o(t.activeCount),1),e(`div`,we,[e(`span`,Te,o(S(n)(`monitor.header.activeRequests`)),1),e(`span`,B,o(S(n)(`monitor.header.streamNonStream`,{stream:t.streamCount,nonStream:t.activeCount-t.streamCount})),1)]),t.queuedCount>0?(w(),b(`span`,Ee,o(t.queuedCount)+` `+o(S(n)(`monitor.queued`)),1)):C(``,!0)]),e(`div`,De,[e(`span`,Oe,o(S(n)(`monitor.concurrency`)),1),t.concurrency.length===0?(w(),b(`div`,ke,o(S(n)(`monitor.concurrencyPanel.noData`)),1)):C(``,!0),(w(!0),b(l,null,h(t.concurrency,t=>(w(),b(`div`,{key:t.providerId,class:`flex items-center gap-1.5`},[e(`span`,{class:`text-[11px] font-medium text-muted-foreground w-[130px] shrink-0 truncate`,title:t.providerName},o(t.providerName),9,Ae),e(`div`,V,[S(F)(t)>0?(w(),b(`div`,{key:0,class:d([`h-full rounded-sm transition-all duration-300`,S(I)(t.active,S(F)(t))]),style:f({width:`${Math.min(100,t.active/S(F)(t)*100)}%`})},null,6)):C(``,!0)]),e(`span`,{class:d([`font-mono text-[11px] text-muted-foreground w-10 text-right shrink-0`,S(L)(t.active,S(F)(t))])},[t.adaptiveEnabled?(w(),b(l,{key:0},[_(o(t.active)+`/`+o(t.adaptiveLimit??t.maxConcurrency),1)],64)):t.maxConcurrency===0?(w(),b(l,{key:1},[_(o(S(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(w(),b(l,{key:2},[_(o(t.active)+`/`+o(t.maxConcurrency),1)],64))],2)]))),128))])]))}}),Me={key:0,class:`text-[13px] text-muted-foreground py-2`},Ne={key:1},Pe={class:`flex items-center justify-between py-[3px]`},Fe={class:`text-[11px] text-muted-foreground`},Ie={class:`font-mono text-[11px] text-foreground`},H={class:`flex items-center justify-between py-[3px] border-t border-foreground/[0.04]`},Le={class:`text-[11px] text-muted-foreground`},Re={class:`font-mono text-[11px] text-success`},U={class:`flex items-center justify-between py-[3px] border-t border-foreground/[0.04]`},ze={class:`text-[11px] text-muted-foreground`},W={class:`font-mono text-[11px] text-foreground`},G={class:`mt-1 pt-1 border-t border-foreground/[0.04]`},K={class:`flex justify-between mb-[3px]`},Be={class:`text-[11px] text-muted-foreground`},Ve={class:`font-mono text-[10px] text-muted-foreground`},q={class:`h-1 bg-foreground/[0.06] rounded-sm overflow-hidden`},J=100,He=x({__name:`RuntimePanel`,props:{runtime:{}},setup(t){let{t:n}=s(),r=t,i=a(()=>!r.runtime||r.runtime.memoryUsage.heapTotal===0?0:Math.min(J,r.runtime.memoryUsage.heapUsed/r.runtime.memoryUsage.heapTotal*J));return(r,a)=>t.runtime?(w(),b(`div`,Ne,[e(`div`,Pe,[e(`span`,Fe,o(S(n)(`monitor.runtimePanel.memoryRss`)),1),e(`span`,Ie,o(S(j)(t.runtime.memoryUsage.rss)),1)]),e(`div`,H,[e(`span`,Le,o(S(n)(`monitor.runtimePanel.eventLoopDelay`)),1),e(`span`,Re,o(t.runtime.eventLoopDelayMs.toFixed(1))+`ms`,1)]),e(`div`,U,[e(`span`,ze,o(S(n)(`monitor.runtimePanel.activeHandles`)),1),e(`span`,W,o(t.runtime.activeHandles),1)]),e(`div`,G,[e(`div`,K,[e(`span`,Be,o(S(n)(`monitor.runtimePanel.heapUsage`)),1),e(`span`,Ve,o(S(j)(t.runtime.memoryUsage.heapUsed))+` / `+o(S(j)(t.runtime.memoryUsage.heapTotal)),1)]),e(`div`,q,[e(`div`,{class:`h-full bg-primary rounded-sm transition-all duration-300`,style:f({width:`${i.value}%`})},null,4)])])])):(w(),b(`div`,Me,o(S(n)(`monitor.runtimePanel.noData`)),1))}}),Ue={key:0,class:`text-[13px] text-muted-foreground py-2`},We={key:1},Ge={class:`text-[11px] font-medium text-muted-foreground flex-1`},Ke={class:`font-mono text-[10px] text-muted-foreground w-9 text-right`},qe=x({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(t){let{t:n}=s(),r=t,i=a(()=>Object.values(r.byStatusCode).reduce((e,t)=>e+t,0)),c=a(()=>{let e=r.byStatusCode,t=i.value||1,n=u(e,200,299),a=u(e,400,499)-(e[429]||0),o=e[429]||0,s=u(e,500,599);return[{label:`2xx`,count:n,percent:(n/t*100).toFixed(1),textClass:`text-success`,dotClass:`bg-success`},{label:`4xx`,count:a,percent:(a/t*100).toFixed(1),textClass:`text-warning`,dotClass:`bg-warning`},{label:`429`,count:o,percent:(o/t*100).toFixed(1),textClass:`text-info`,dotClass:`bg-info`},{label:`5xx`,count:s,percent:(s/t*100).toFixed(1),textClass:`text-danger`,dotClass:`bg-danger`}].filter(e=>e.count>0)});function u(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(t,r)=>i.value===0?(w(),b(`div`,Ue,o(S(n)(`monitor.statusCodes.noData`)),1)):(w(),b(`div`,We,[(w(!0),b(l,null,h(c.value,t=>(w(),b(`div`,{key:t.label,class:`flex items-center gap-1.5 py-[3px] border-t border-foreground/[0.04] first:border-t-0`},[e(`span`,{class:d([`size-[5px] rounded-full shrink-0`,t.dotClass])},null,2),e(`span`,Ge,o(t.label),1),e(`span`,{class:d([`font-mono text-[11px]`,t.textClass])},o(t.count),3),e(`span`,Ke,o(t.percent)+`%`,1)]))),128))]))}}),Je={key:0,class:`text-sm text-muted-foreground py-4 text-center`},Y={key:1,class:`text-sm text-muted-foreground py-4 text-center`},Ye={class:`flex flex-wrap gap-1`},Xe={key:0,class:`text-xs text-muted-foreground`},Ze=100,Qe=x({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let{t:n}=s(),r=t,i=a(()=>r.stats?Object.entries(r.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*Ze:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*Ze:0})):[]);return(r,a)=>t.stats?i.value.length===0?(w(),b(`div`,Y,o(S(n)(`monitor.providerTable.noProviders`)),1)):(w(),g(S(be),{key:2},{default:v(()=>[m(S(xe),null,{default:v(()=>[m(S(P),{class:`border-b-0`},{default:v(()=>[m(S(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.provider`)),1)]),_:1}),m(S(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.requests`)),1)]),_:1}),m(S(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.successRate`)),1)]),_:1}),m(S(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.avgLatency`)),1)]),_:1}),m(S(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.retryRate`)),1)]),_:1}),m(S(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),m(S(ye),null,{default:v(()=>[(w(!0),b(l,null,h(i.value,t=>(w(),g(S(P),{key:t.id,class:`border-b-0 hover:bg-muted/50`},{default:v(()=>[m(S(M),{class:`font-medium text-[13px] py-1`},{default:v(()=>[_(o(t.name),1)]),_:2},1024),m(S(M),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[_(o(t.stats.totalRequests),1)]),_:2},1024),m(S(M),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[e(`span`,{class:d(t.successRate>=95?`text-success`:t.successRate>=80?`text-warning`:`text-danger`)},o(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),m(S(M),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[_(o(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),m(S(M),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[e(`span`,{class:d(t.retryRate>10?`text-warning`:``)},o(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),m(S(M),{class:`py-1`},{default:v(()=>[e(`div`,Ye,[(w(!0),b(l,null,h(t.stats.topErrors.slice(0,3),e=>(w(),g(S(ve),{key:e.code,variant:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:v(()=>[_(o(e.code)+` (`+o(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(w(),b(`span`,Xe,`--`)):C(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(w(),b(`div`,Je,o(S(n)(`monitor.providerTable.noData`)),1))}}),$e=3e4;function X(e,t,n){let r=null,i=null,a=0,o=null,s=!1;function c(){document.hidden?o=setTimeout(()=>{u(),n?.onClose?.()},$e):(o&&=(clearTimeout(o),null),r||l())}function l(){if(!r){r=new EventSource(e),r.onopen=()=>{a=0,n?.onOpen?.(),!s&&typeof document<`u`&&(document.addEventListener(`visibilitychange`,c),s=!0)};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{u(),n?.onClose?.();let e=Math.min(3e3*2**a,3e4);a++,i=setTimeout(l,e)}}}function u(){i&&=(clearTimeout(i),null),o&&=(clearTimeout(o),null),r&&=(r.close(),null)}return p(()=>{u(),s&&typeof document<`u`&&(document.removeEventListener(`visibilitychange`,c),s=!1),n?.onClose?.()}),{connect:l,disconnect:u}}var Z=200,Q=404,$=500;async function et(e,t){try{let n=tt(e.value,await t());n!==e.value&&(e.value=n)}catch(t){console.error(`useMonitorData.syncActiveOnSSEReconnect failed:`,t),e.value=[...e.value]}}function tt(e,t){let n=new Set(t.map(e=>e.id)),r=new Set(e.map(e=>e.id)),i=e.filter(e=>!n.has(e.id)),a=t.filter(e=>!r.has(e.id));if(i.length===0&&a.length===0)return e;let o=e.filter(e=>n.has(e.id));return[...a,...o]}function nt(e,t){let n;try{n=JSON.parse(e.data)}catch{return}switch(e.type){case`request_start`:{let e=n;t.recentCompleted.value.some(t=>t.id===e.id)||(t.activeRequests.value.unshift(e),r(t.activeRequests));break}case`request_update`:t.activeRequests.value=n;break;case`request_complete`:{let e=n;t.activeRequests.value=t.activeRequests.value.filter(t=>t.id!==e.id),t.recentCompleted.value.unshift(e),t.recentCompleted.value.length>Z&&(t.recentCompleted.value.length=Z);break}case`concurrency_update`:t.concurrency.value=n;break;case`stats_update`:t.stats.value=n;break;case`stream_content_update`:{let e=n;for(let n of e){let e=t.activeRequests.value.find(e=>e.id===n.id);e&&(e.streamTotalChars=n.totalChars,n.streamMetrics&&(e.streamMetrics=n.streamMetrics))}r(t.activeRequests);break}case`runtime_update`:t.runtime.value=n;break}}async function rt(e,n,r,i,a){try{let o=await t.getMonitorInit();o.active&&(e.value=o.active),o.recent&&(n.value=o.recent),o.stats&&(r.value=o.stats),o.concurrency&&(i.value=o.concurrency),o.runtime&&(a.value=o.runtime)}catch(e){console.error(`Failed to load initial monitor data:`,e),r.value=null,i.value=[],a.value=null}}function it(){let e=c([]),n=T([]),r=T(null),o=T([]),s=T(null),l=T(!1),u=!1,d=a(()=>e.value.filter(e=>e.isStream).length),f=a(()=>e.value.filter(e=>!e.queued)),m=a(()=>e.value.filter(e=>e.queued===!0)),h=t=>nt(t,{recentCompleted:n,activeRequests:e,concurrency:o,stats:r,runtime:s});async function g(){if(l.value=!0,!u){u=!0;return}await et(e,()=>t.getMonitorActive())}function ee(){l.value=!1}let _=()=>rt(e,n,r,o,s),{connect:te,disconnect:v}=X(`/admin/api/monitor/stream`,{request_start:h,request_update:h,request_complete:h,concurrency_update:h,stats_update:h,runtime_update:h,stream_content_update:h},{onOpen:g,onClose:ee}),y=T(null),b=T(!1),x=T(0);async function S(r){let i=++x.value,a=e.value.find(e=>e.id===r)??n.value.find(e=>e.id===r);if(!a){y.value=null;return}y.value=null,b.value=!0;try{if(a.status===`pending`){try{let e=await t.getMonitorRequest(r);if(i!==x.value)return;y.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==Q)throw e;if(i!==x.value)return;let n=await t.getLogDetail(r);if(i!==x.value)return;y.value=n.client_request?{clientRequest:n.client_request}:null}return}let e=await t.getLogDetail(r);if(i!==x.value)return;let n;if(!a.isStream){let t=e.upstream_response;if(t)try{let e=JSON.parse(t);n=(typeof e.body==`string`?e.body:t)??void 0}catch{n=t}}y.value={responseBody:n,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(i!==x.value)return;console.warn(`Failed to load log detail:`,e),y.value=null}finally{i===x.value&&(b.value=!1)}}let C=T(null),w=T(!1),E=T(null),D=null;function O(n){if(k(),!n)return;let r=async()=>{let r=e.value.find(e=>e.id===n);if(!r||r.status===`completed`||r.status===`failed`){k();return}try{let e=await t.getMonitorRequest(n);if(C.value!==n)return;e.streamContent&&(E.value=e.streamContent)}catch(e){e?.response?.status===Q&&k()}};r(),D=setInterval(r,$)}function k(){D&&=(clearInterval(D),null)}function ne(e){C.value=e,w.value=!0,E.value=null;let t=n.value.find(t=>t.id===e);t&&(t.status===`completed`||t.status===`failed`)&&(t.streamContent?E.value=t.streamContent:re(e)),O(e),S(e)}async function re(e){try{let n=await t.getMonitorRequest(e);if(C.value!==e)return;n.streamContent&&(E.value=n.streamContent)}catch(e){console.error(`loadCompletedStreamContent:`,e)}}let A=a(()=>C.value?e.value.find(e=>e.id===C.value)??n.value.find(e=>e.id===C.value)??null:null);return i(()=>A.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&(k(),S(C.value))}),p(()=>{k()}),{activeRequests:e,recentCompleted:n,stats:r,concurrency:o,runtime:s,connected:l,streamCount:d,streamingRequests:f,queuedRequests:m,selectedRequestId:C,selectedRequest:A,requestDetailOpen:w,selectRequest:ne,selectedStreamContent:E,logDetailData:y,nonStreamBodyLoading:b,connect:te,disconnect:v,loadInitialData:_}}var at={class:`page`},ot={class:`flex items-center justify-between mb-3`},st={class:`text-base font-semibold text-foreground`},ct={class:`bg-card border border-border rounded-lg overflow-hidden mb-3`},lt={class:`flex items-center border-b border-border px-3 bg-muted/30 dark:bg-muted/50`},ut={key:0,class:`absolute bottom-0 left-0 right-0 h-0.5 bg-primary rounded-t-sm`},dt={key:0,class:`inline-flex items-center px-1.5 py-px rounded-full font-mono text-[10px] font-semibold bg-primary/15 text-primary`},ft={key:1,class:`inline-flex items-center px-1.5 py-px rounded-full font-mono text-[10px] font-semibold bg-foreground/5 text-muted-foreground`},pt={class:`bg-foreground/[0.03] rounded-md px-4 py-2 grid grid-cols-4 gap-x-6 gap-y-1.5`},mt={class:`font-mono text-[12px] text-foreground`},ht={class:`font-mono text-[12px] text-foreground`},gt={class:`font-mono text-[12px] text-foreground`},_t={class:`font-mono text-[12px] text-foreground`},vt={class:`flex bg-card border border-border rounded-lg overflow-hidden mb-3 divide-x divide-border`},yt={class:`flex-1 px-3 py-2`},bt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},xt={class:`text-[13px] font-mono font-semibold text-success`},St={class:`flex-1 px-3 py-2`},Ct={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},wt={class:`text-[10px] font-mono text-muted-foreground`},Tt={class:`flex-1 px-3 py-2`},Et={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Dt={class:`text-[13px] font-mono font-semibold text-foreground`},Ot={class:`text-[10px] font-mono text-muted-foreground`},kt={class:`flex-1 px-3 py-2`},At={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},jt={class:`text-[13px] font-mono font-semibold text-foreground`},Mt={class:`text-[10px] font-mono text-muted-foreground`},Nt={class:`flex-1 px-3 py-2`},Pt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Ft={class:`text-[13px] font-mono font-semibold text-foreground`},It={class:`text-[10px] font-mono text-muted-foreground`},Lt={class:`mb-3`},Rt={class:`flex items-center justify-between bg-card border border-border rounded-t-lg px-4 py-1.5`},zt={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Bt={class:`bg-card border border-border border-t-0 rounded-b-lg px-4 py-3`},Vt={class:`grid grid-cols-3 gap-px bg-border rounded-lg overflow-hidden border border-border`},Ht={class:`bg-card`},Ut={class:`flex items-center px-3 py-1.5 border-b border-border bg-muted/30 dark:bg-muted/50`},Wt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Gt={class:`p-3`},Kt={class:`bg-card`},qt={class:`flex items-center px-3 py-1.5 border-b border-border bg-muted/30 dark:bg-muted/50`},Jt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Yt={class:`p-3`},Xt={class:`bg-card`},Zt={class:`flex items-center px-3 py-1.5 border-b border-border bg-muted/30 dark:bg-muted/50`},Qt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},$t={class:`p-3`},en={class:`flex items-baseline gap-1.5 mb-2`},tn={class:`text-xl font-mono font-bold text-primary`},nn={class:`text-xs font-mono text-muted-foreground`},rn={class:`text-xs font-mono text-muted-foreground ml-auto`},an={class:`h-1 bg-foreground/10 rounded-full overflow-hidden mb-3`},on={class:`grid grid-cols-2 gap-2`},sn={class:`text-xs font-mono text-warning`},cn={class:`text-xs font-mono text-primary`},ln=2e3,un=1e3,dn=100,fn=5,pn=10,mn=100,hn=80,gn=50,_n=36e5,vn=6e4,yn=864e5,bn=3e3,xn=x({__name:`Monitor`,setup(r){let{t:i}=s(),{activeRequests:c,recentCompleted:x,stats:j,concurrency:F,runtime:I,connected:L,streamCount:Ce,streamingRequests:R,queuedRequests:z,selectedRequestId:we,selectedRequest:Te,requestDetailOpen:B,selectRequest:Ee,selectedStreamContent:De,logDetailData:Oe,loadInitialData:ke,connect:Ae}=it(),V=T(`active`),Me=a(()=>[{key:`active`,label:i(`monitor.activeRequests`),count:R.value.length},{key:`queued`,label:i(`monitor.queuedRequests`),count:z.value.length},{key:`recent`,label:i(`monitor.completed`),count:x.value.length}]),Ne={active:()=>R.value,queued:()=>z.value,recent:()=>x.value},Pe={active:i(`monitor.noActiveRequests`),queued:i(`monitor.noQueuedRequests`),recent:i(`monitor.noCompletedRequests`)},Fe=a(()=>Ne[V.value]()),Ie=a(()=>Pe[V.value]),H=T(null);function Le(e){H.value=H.value===e?null:e}let{copy:Re}=Se(),U=T(null);function ze(e){Re(e),U.value=e,setTimeout(()=>{U.value===e&&(U.value=null)},ln)}let W=T(!1),G=T(null),K=a(()=>G.value?c.value.find(e=>e.id===G.value)??null:null);function Be(e){G.value=e,W.value=!0}async function Ve(){if(G.value){try{await t.killMonitorRequest(G.value),c.value=c.value.filter(e=>e.id!==G.value),ae.success(i(`monitor.killSuccess`))}catch(e){console.error(`Monitor.killRequest:`,e),ae.error(te(e,i(`monitor.killFailed`)))}W.value=!1}}let q=T(!0),J=a(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.errorCount/j.value.totalRequests*dn).toFixed(1)),Ue=a(()=>{let e=Number.parseFloat(J.value);return e>=pn?`text-danger`:e>=fn?`text-warning`:`text-foreground`}),We=a(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.retryCount/j.value.totalRequests*dn).toFixed(1)),Ge=a(()=>j.value?j.value.p50LatencyMs.toFixed(0):`--`),Ke=a(()=>j.value?j.value.p99LatencyMs.toFixed(0):`--`),Je=a(()=>{if(!j.value||!I.value||I.value.uptimeMs===0)return`--`;let e=I.value.uptimeMs/un;return(j.value.totalRequests/e).toFixed(1)}),Y=a(()=>{let e=F.value.reduce((e,t)=>e+t.active,0),t=F.value.reduce((e,t)=>e+(t.adaptiveLimit??t.maxConcurrency),0);return{active:e,total:t,pct:t>0?Math.round(e/t*mn):0}}),Ye=a(()=>{let e=Y.value.pct;return e>=hn?`bg-danger`:e>=gn?`bg-warning`:`bg-primary`}),Xe=a(()=>I.value?$e(I.value.uptimeMs):`--`),Ze=a(()=>!I.value||!j.value?`--`:`${j.value.totalRequests} req`);function $e(e){let t=Math.floor(e/yn),n=Math.floor(e%yn/_n),r=Math.floor(e%_n/vn);return t>0?`${t}d ${n}h`:n>0?`${n}h ${r}m`:`${r}m`}let X=T(Date.now()),Z=null;function Q(){$(),Z=setInterval(()=>{X.value=Date.now()},bn)}function $(){Z&&=(clearInterval(Z),null)}function et(){document.hidden?$():(X.value=Date.now(),Q())}function tt(e){return`${(((e.completedAt??X.value)-e.startTime)/un).toFixed(1)}s`}function nt(e){let t=e.streamMetrics?.tokensPerSecond;return t==null?`--`:`${t.toFixed(0)} t/s`}function rt(e){let t=e.streamMetrics?.outputTokens;return t==null?`--`:`${t}`}function xn(e){return e.status===`failed`?`bg-danger`:e.queued?`bg-warning`:e.status===`completed`?`bg-success`:`bg-primary`}function Sn(e){return e.status===`pending`}return ee(async()=>{await ke(),Ae(),Q(),document.addEventListener(`visibilitychange`,et)}),p(()=>{$(),document.removeEventListener(`visibilitychange`,et)}),(t,r)=>(w(),b(`div`,at,[e(`div`,ot,[e(`h2`,st,o(S(i)(`monitor.title`)),1),m(S(ve),{variant:S(L)?`default`:`destructive`},{default:v(()=>[_(o(S(L)?S(i)(`monitor.connected`):S(i)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])]),m(je,{stats:S(j),"active-count":S(c).length,"stream-count":S(Ce),"queued-count":S(z).length,concurrency:S(F)},null,8,[`stats`,`active-count`,`stream-count`,`queued-count`,`concurrency`]),e(`div`,ct,[e(`div`,lt,[(w(!0),b(l,null,h(Me.value,t=>(w(),g(S(y),{key:t.key,variant:`ghost`,class:d([`relative px-3.5 py-2 text-[13px] font-medium transition-colors flex items-center gap-2 h-auto rounded-none`,V.value===t.key?`text-primary`:`text-muted-foreground hover:text-foreground`]),onClick:e=>V.value=t.key},{default:v(()=>[_(o(t.label)+` `,1),e(`span`,{class:d([`font-mono text-[11px] font-semibold px-1.5 py-px rounded-full`,V.value===t.key?`bg-primary/15 text-primary`:`bg-foreground/5 text-muted-foreground`])},o(t.count),3),V.value===t.key?(w(),b(`span`,ut)):C(``,!0)]),_:2},1032,[`class`,`onClick`]))),128))]),m(S(E),{class:`h-[252px]`},{default:v(()=>[m(S(be),null,{default:v(()=>[m(S(xe),null,{default:v(()=>[m(S(P),{class:`border-b-0 hover:bg-transparent`},{default:v(()=>[m(S(N),{class:`w-9 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:v(()=>[...r[4]||=[_(`Model`,-1)]]),_:1}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:v(()=>[...r[5]||=[_(`Provider`,-1)]]),_:1}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-16`},{default:v(()=>[...r[6]||=[_(`Type`,-1)]]),_:1}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:v(()=>[...r[7]||=[_(`Elapsed`,-1)]]),_:1}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:v(()=>[...r[8]||=[_(`Speed`,-1)]]),_:1}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:v(()=>[...r[9]||=[_(`Output`,-1)]]),_:1}),m(S(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-14`})]),_:1})]),_:1}),m(S(ye),null,{default:v(()=>[Fe.value.length===0?(w(),g(S(P),{key:0,class:`border-b-0 h-[220px]`},{default:v(()=>[m(S(M),{colspan:`8`,class:`text-center text-[13px] text-muted-foreground align-middle`},{default:v(()=>[_(o(Ie.value),1)]),_:1})]),_:1})):C(``,!0),(w(!0),b(l,null,h(Fe.value,t=>(w(),b(l,{key:t.id},[m(S(P),{class:d([`cursor-pointer transition-colors border-b border-foreground/[0.04] hover:bg-muted/40`,[S(we)===t.id?`bg-primary/10`:``,V.value===`recent`?`opacity-60 hover:opacity-80`:``]]),onClick:e=>S(Ee)(t.id)},{default:v(()=>[m(S(M),{class:`px-3 py-1`},{default:v(()=>[e(`span`,{class:d([`inline-block size-2 rounded-full shrink-0`,xn(t)])},null,2)]),_:2},1024),m(S(M),{class:`px-3 py-1 text-[13px] font-medium truncate max-w-[200px]`},{default:v(()=>[_(o(t.model),1)]),_:2},1024),m(S(M),{class:`px-3 py-1 font-mono text-[11px] text-muted-foreground`},{default:v(()=>[_(o(t.providerName),1)]),_:2},1024),m(S(M),{class:`px-3 py-1`},{default:v(()=>[t.isStream?(w(),b(`span`,dt,` SSE `)):(w(),b(`span`,ft,` Sync `))]),_:2},1024),m(S(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:v(()=>[_(o(tt(t)),1)]),_:2},1024),m(S(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:v(()=>[_(o(nt(t)),1)]),_:2},1024),m(S(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:v(()=>[_(o(rt(t)),1)]),_:2},1024),m(S(M),{class:`px-3 py-1`},{default:v(()=>[e(`div`,{class:`flex items-center gap-0.5 justify-end`,onClick:r[0]||=u(()=>{},[`stop`])},[m(S(ne),null,{default:v(()=>[m(S(k),{"as-child":``},{default:v(()=>[m(S(y),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:u(e=>ze(t.id),[`stop`])},{default:v(()=>[U.value===t.id?(w(),g(S(_e),{key:0,class:`size-3 text-success`})):(w(),g(S(le),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),m(S(O),null,{default:v(()=>[_(o(S(i)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),Sn(t)?(w(),g(S(ne),{key:0},{default:v(()=>[m(S(k),{"as-child":``},{default:v(()=>[m(S(y),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6 text-destructive hover:text-destructive`,onClick:u(e=>Be(t.id),[`stop`])},{default:v(()=>[m(S(de),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),m(S(O),null,{default:v(()=>[_(o(S(i)(`monitor.kill`)),1)]),_:1})]),_:2},1024)):C(``,!0),m(S(y),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:u(e=>Le(t.id),[`stop`])},{default:v(()=>[m(S(ge),{class:d([`size-3 transition-transform`,{"rotate-180":H.value===t.id}])},null,8,[`class`])]),_:2},1032,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`,`onClick`]),H.value===t.id?(w(),g(S(P),{key:0,class:`border-b border-foreground/[0.04] bg-foreground/[0.02]`},{default:v(()=>[m(S(M),{colspan:`8`,class:`px-3 py-2`},{default:v(()=>[e(`div`,pt,[e(`div`,null,[r[10]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Request ID `,-1),e(`div`,mt,o(t.id),1)]),e(`div`,null,[r[11]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Input Tokens `,-1),e(`div`,ht,o(t.streamMetrics?.inputTokens?.toLocaleString()??`--`),1)]),e(`div`,null,[r[12]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Output Tokens `,-1),e(`div`,gt,o(t.streamMetrics?.outputTokens?.toLocaleString()??`--`),1)]),e(`div`,null,[r[13]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Cache Tokens `,-1),e(`div`,_t,o(t.streamMetrics?.cacheReadTokens?.toLocaleString()??`--`),1)])])]),_:2},1024)]),_:2},1024)):C(``,!0)],64))),128))]),_:1})]),_:1})]),_:1})]),e(`div`,vt,[e(`div`,yt,[e(`div`,bt,o(S(i)(`monitor.completed`)),1),e(`div`,xt,o(S(j)?.successCount??0),1),r[14]||=e(`div`,{class:`text-[10px] font-mono text-muted-foreground`},`last 5h`,-1)]),e(`div`,St,[e(`div`,Ct,o(S(i)(`monitor.header.errorRate`)),1),e(`div`,{class:d([`text-[13px] font-mono font-semibold`,Ue.value])},o(J.value)+`% `,3),e(`div`,wt,o(S(j)?.errorCount??0)+` / `+o(S(j)?.totalRequests??0),1)]),e(`div`,Tt,[e(`div`,Et,o(S(i)(`monitor.header.p50Latency`)),1),e(`div`,Dt,o(Ge.value)+`ms `,1),e(`div`,Ot,` avg `+o(S(j)?.avgLatencyMs?.toFixed(1)??`--`)+`s `,1)]),e(`div`,kt,[e(`div`,At,o(S(i)(`monitor.header.retryRate`)),1),e(`div`,jt,o(We.value)+`% `,1),e(`div`,Mt,o(S(j)?.retryCount??0)+` / `+o(S(j)?.totalRequests??0),1)]),e(`div`,Nt,[e(`div`,Pt,o(S(i)(`monitor.runtimePanel.uptime`)),1),e(`div`,Ft,o(Xe.value),1),e(`div`,It,o(Ze.value),1)])]),e(`div`,Lt,[m(S(re),{open:q.value,"onUpdate:open":r[1]||=e=>q.value=e},{default:v(()=>[e(`div`,Rt,[e(`span`,zt,o(S(i)(`monitor.providerStats`)),1),m(S(ie),{"as-child":``},{default:v(()=>[m(S(y),{variant:`ghost`,size:`xs`,class:`text-[11px] text-muted-foreground hover:text-foreground h-6 px-1.5`},{default:v(()=>[_(o(q.value?S(i)(`monitor.providerStatsHide`):S(i)(`monitor.providerStatsShow`)),1)]),_:1})]),_:1})]),m(S(A),null,{default:v(()=>[e(`div`,Bt,[m(Qe,{stats:S(j)},null,8,[`stats`])])]),_:1})]),_:1},8,[`open`])]),e(`div`,Vt,[e(`div`,Ht,[e(`div`,Ut,[e(`span`,Wt,o(S(i)(`monitor.statusCodeDistribution`)),1)]),e(`div`,Gt,[m(qe,{"by-status-code":S(j)?.byStatusCode??{}},null,8,[`by-status-code`])])]),e(`div`,Kt,[e(`div`,qt,[e(`span`,Jt,o(S(i)(`monitor.runtime`)),1)]),e(`div`,Yt,[m(He,{runtime:S(I)},null,8,[`runtime`])])]),e(`div`,Xt,[e(`div`,Zt,[e(`span`,Qt,o(S(i)(`monitor.concurrency`)),1)]),e(`div`,$t,[e(`div`,en,[e(`span`,tn,o(Y.value.active),1),e(`span`,nn,`/ `+o(Y.value.total),1),e(`span`,rn,o(Y.value.pct)+`%`,1)]),e(`div`,an,[e(`div`,{class:d([`h-full rounded-full transition-all duration-300`,Ye.value]),style:f({width:`${Math.min(100,Y.value.pct)}%`})},null,6)]),e(`div`,on,[e(`div`,null,[r[15]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` P99 `,-1),e(`div`,sn,o(Ke.value)+`ms `,1)]),e(`div`,null,[r[16]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` QPS `,-1),e(`div`,cn,o(Je.value),1)])])])])]),m(D,{open:S(B),"onUpdate:open":r[2]||=e=>n(B)?B.value=e:null,source:`realtime`,request:S(Te),"stream-content":S(De),"log-detail-data":S(Oe)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`]),m(S(pe),{open:W.value,"onUpdate:open":r[3]||=e=>W.value=e},{default:v(()=>[m(S(he),null,{default:v(()=>[m(S(me),null,{default:v(()=>[m(S(fe),null,{default:v(()=>[_(o(S(i)(`monitor.killConfirmTitle`)),1)]),_:1}),K.value?(w(),g(S(ue),{key:0},{default:v(()=>[_(o(S(i)(`monitor.killConfirm`,{model:K.value.model,provider:K.value.providerName})),1)]),_:1})):C(``,!0)]),_:1}),m(S(oe),null,{default:v(()=>[m(S(se),null,{default:v(()=>[_(o(S(i)(`monitor.killCancel`)),1)]),_:1}),m(S(ce),{class:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,onClick:Ve},{default:v(()=>[_(o(S(i)(`monitor.kill`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{xn as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as e,A as t,Ct as n,Ft as r,J as i,N as a,P as o,Q as s,Qt as c,R as l,U as u,X as d,Y as f,Yt as p,Zt as m,at as h,bt as g,et as _,gt as v,it as y,j as b,jt as x,n as S,nt as C,ot as w,qt as T,rt as E,tt as D,vt as O,zt as k}from"./button-BcmABzob.js";import{t as ee}from"./chevron-right-Bf3Fdg6M.js";import{t as te}from"./image-BQjpozCO.js";import{t as A}from"./search-aFGV_wt3.js";import{c as ne,l as re,n as ie,o as j,r as ae,s as oe,t as M}from"./model-patches-Bz5q_usR.js";import{a as se,n as ce,o as le,r as ue,t as de}from"./dialog-BDw6KIzh.js";import{t as N}from"./Label-D9CEaBof.js";import{t as fe}from"./Switch-C9A1URA9.js";import{_ as P,a as F,c as pe,d as me,f as he,g as I,gt as ge,h as L,l as _e,m as R,n as ve,o as ye,p as be,s as xe,u as Se,v as z,yt as Ce}from"./index-CpvOTf7s.js";import{t as B}from"./badge-_5ZpB7R1.js";import{t as V}from"./Input-4bkkJSKj.js";import{t as we}from"./Card-BAJ7K-oq.js";import{a as Te,i as H,n as U,o as Ee,r as De,t as Oe}from"./TableHeader-B8tbY3uE.js";import{t as W}from"./useClipboard-Bv5gUQAX.js";import{a as G,i as ke,n as Ae,r as K,t as je}from"./transform-domain-BiEMeUvX.js";var Me=l(`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`}]]),Ne=l(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Pe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function q(t,n){return O(),C(`svg`,Pe,[...n[0]||=[e(`path`,{fill:`#4D6BFE`,d:`M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.5 5.5 0 0 1-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11 11 0 0 0-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428s-1.67.295-2.687.684a3 3 0 0 1-.465.137 9.6 9.6 0 0 0-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.2 4.2 0 0 0 1.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.7 4.7 0 0 1 1.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614m1-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .2.288.306.306 0 0 1-.31.307.303.303 0 0 1-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.552-.758a1.7 1.7 0 0 1 .016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.56.56 0 0 1-.254-.078.253.253 0 0 1-.114-.358c.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452`},null,-1)]])}var J={render:q},Fe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Y(t,n){return O(),C(`svg`,Fe,[...n[0]||=[e(`path`,{fill:`#3859FF`,d:`M11.991 23.503a.24.24 0 0 0-.244.248.24.24 0 0 0 .244.249.24.24 0 0 0 .245-.249.24.24 0 0 0-.22-.247zM9.671 5.365a1.697 1.697 0 0 1 1.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.66 1.66 0 0 1-2.077 1.102 1.7 1.7 0 0 1-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 0 0-1.954.746 1.66 1.66 0 0 1-1.065.764 1.677 1.677 0 0 1-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.5 1.5 0 0 1 .296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.3 1.3 0 0 0-.227-.693 2.5 2.5 0 0 1-.366-1.403 2.4 2.4 0 0 1 .366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.4 1.4 0 0 1-.299-.07l-.05-.019a1.7 1.7 0 0 1-1.047-2.114 1.68 1.68 0 0 1 2.094-1.101m-5.575 10.11c.26-.264.639-.367.994-.27s.633.379.728.74c.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.06 1.06 0 0 1 0-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237 1.025s-.396.634-.756.718c-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 0 1 .757-1.26zm-.064-4.39c.314.32.49.753.49 1.206s-.176.886-.49 1.206c-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 0 1 0-2.412 1.654 1.654 0 0 1 2.369 0m-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 0 1-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 0 1 1.33-1.038 1.66 1.66 0 0 1 1.547.652m11.545-4.221c.368 0 .708.2.892.524s.184.724 0 1.048a1.03 1.03 0 0 1-.892.524 1.04 1.04 0 0 1-1.03-1.048 1.04 1.04 0 0 1 1.03-1.048m-14.358 0c.368 0 .707.2.891.524s.184.724 0 1.048a1.03 1.03 0 0 1-.891.524 1.04 1.04 0 0 1-1.03-1.048c0-.579.461-1.048 1.03-1.048m10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705.75-1.706 1.674-1.706m-2.626-.684c.362-.082.653-.356.761-.718a1.06 1.06 0 0 0-.238-1.028 1.02 1.02 0 0 0-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783m0 16.876c.359-.087.644-.36.75-.72a1.06 1.06 0 0 0-.237-1.019 1.02 1.02 0 0 0-.985-.301 1.04 1.04 0 0 0-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305zM17.19 3.5a.63.63 0 0 0 .628-.64.63.63 0 0 0-.628-.64.63.63 0 0 0-.628.64c0 .355.28.64.628.64m-10.38 0a.63.63 0 0 0 .628-.64c0-.355-.28-.64-.628-.64a.63.63 0 0 0-.628.64c0 .355.279.64.628.64m-5.182 7.852a.63.63 0 0 0-.628.64c0 .354.28.639.628.639a.63.63 0 0 0 .627-.606l.001-.034a.62.62 0 0 0-.628-.64zm5.182 9.13a.63.63 0 0 0-.628.64c0 .355.279.64.628.64a.63.63 0 0 0 .628-.64c0-.355-.28-.64-.628-.64m10.38.018a.63.63 0 0 0-.628.64c0 .355.28.64.628.64a.63.63 0 0 0 .628-.64.63.63 0 0 0-.628-.64m5.182-9.148a.63.63 0 0 0-.628.64c0 .354.279.639.628.639a.63.63 0 0 0 .628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 0 0 .244-.249.24.24 0 0 0-.244-.249.24.24 0 0 0-.244.249c0 .142.122.249.244.249M11.991.497a.24.24 0 0 0 .245-.248A.24.24 0 0 0 11.99 0a.24.24 0 0 0-.244.249c0 .133.108.236.223.247zM2.011 6.36a.24.24 0 0 0 .245-.249.24.24 0 0 0-.244-.249.24.24 0 0 0-.244.249.24.24 0 0 0 .244.249zm0 11.263a.24.24 0 0 0-.243.248.24.24 0 0 0 .244.249.24.24 0 0 0 .244-.249.25.25 0 0 0-.244-.248zm19.995-.018a.24.24 0 0 0-.245.248.24.24 0 0 0 .245.25.24.24 0 0 0 .244-.25.25.25 0 0 0-.244-.248`},null,-1)]])}var X={render:Y},Ie={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Le(t,n){return O(),C(`svg`,Ie,[...n[0]||=[e(`path`,{fill:`#1783FF`,d:`M21.846 0a1.923 1.923 0 1 1 0 3.846H20.15a.226.226 0 0 1-.227-.226V1.923C19.923.861 20.784 0 21.846 0`},null,-1),e(`path`,{fill:`#fff`,d:`m11.065 11.199 7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.16.16 0 0 0-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23h-2.69c-.103 0-.186.103-.186.23v15.95c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25a.25.25 0 0 1 .069-.178l2.424-2.406a.16.16 0 0 1 .205-.023l6.484 4.772a7.7 7.7 0 0 0 3.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5 5 0 0 1-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381`},null,-1)]])}var Re={render:Le},ze={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Be(t,n){return O(),C(`svg`,ze,[...n[0]||=[e(`path`,{fill:`url(#a)`,d:`M12.604 1.34q.59 1.035 1.174 2.075a.18.18 0 0 0 .157.091h5.552q.26 0 .446.327l1.454 2.57c.19.337.24.478.024.837q-.39.646-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77q-.656 1.177-1.335 2.34c-.159.272-.352.375-.68.37a43 43 0 0 0-2.327.016.1.1 0 0 0-.081.05 575 575 0 0 1-2.705 4.74c-.169.293-.38.363-.725.364q-1.495.005-3.017.002a.54.54 0 0 1-.465-.271l-1.335-2.323a.09.09 0 0 0-.083-.049H4.982a1.8 1.8 0 0 1-.805-.092l-1.603-2.77a.54.54 0 0 1-.002-.54l1.207-2.12a.2.2 0 0 0 0-.197 551 551 0 0 1-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965q.697-1.22 1.387-2.436c.132-.234.304-.334.584-.335a338 338 0 0 1 2.589-.001.12.12 0 0 0 .107-.063l2.806-4.895a.49.49 0 0 1 .422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34m-3.432.403a.06.06 0 0 0-.052.03L6.254 6.788a.16.16 0 0 1-.135.078H3.253q-.084 0-.041.074l5.81 10.156q.037.062-.034.063l-2.795.015a.22.22 0 0 0-.2.116l-1.32 2.31q-.066.117.068.118l5.716.008q.068 0 .104.061l1.403 2.454q.069.122.139 0l5.006-8.76.783-1.382a.055.055 0 0 1 .096 0l1.424 2.53a.12.12 0 0 0 .107.062l2.763-.02a.04.04 0 0 0 .035-.02.04.04 0 0 0 0-.04l-2.9-5.086a.11.11 0 0 1 0-.113l.293-.507 1.12-1.977q.036-.062-.035-.062H9.2q-.088 0-.043-.077l1.434-2.505a.11.11 0 0 0 0-.114L9.225 1.774a.06.06 0 0 0-.053-.031m6.29 8.02q.07 0 .034.06l-.832 1.465-2.613 4.585a.06.06 0 0 1-.05.029.06.06 0 0 1-.05-.029L8.498 9.841q-.03-.051.028-.054l.216-.012 6.722-.012z`},null,-1),e(`defs`,null,[e(`linearGradient`,{id:`a`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`},[e(`stop`,{offset:`0%`,"stop-color":`#6336E7`,"stop-opacity":`.84`}),e(`stop`,{offset:`100%`,"stop-color":`#6F69F7`,"stop-opacity":`.84`})])],-1)]])}var Ve={render:Be},He={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ue(t,n){return O(),C(`svg`,He,[...n[0]||=[e(`path`,{fill:`#2932E1`,d:`M8.859 11.735c1.017-1.71 4.059-3.083 6.202.286 1.579 2.284 4.284 4.397 4.284 4.397s2.027 1.601.73 4.684c-1.24 2.956-5.64 1.607-6.005 1.49l-.024-.009s-1.746-.568-3.776-.112c-2.026.458-3.773.286-3.773.286l-.045-.001c-.328-.01-2.38-.187-3.001-2.968-.675-3.028 2.365-4.687 2.592-4.968.226-.288 1.802-1.37 2.816-3.085m.986 1.738v2.032h-1.64s-1.64.138-2.213 2.014c-.2 1.252.177 1.99.242 2.148.067.157.596 1.073 1.927 1.342h3.078v-7.514zm3.588 2.191-1.44.024v3.956s.064.985 1.44 1.344h3.541v-5.3h-1.528v3.979h-1.46s-.466-.068-.553-.447zM9.82 16.715v3.06H8.58s-.863-.045-1.126-1.049c-.136-.445.02-.959.088-1.16.063-.203.353-.671.951-.85zm9.525-9.036c2.086 0 2.646 2.06 2.646 2.742 0 .688.284 3.597-2.309 3.655-2.595.057-2.704-1.77-2.704-3.08 0-1.374.277-3.317 2.367-3.317M4.24 6.08c1.523-.135 2.645 1.55 2.762 2.513.07.625.393 3.486-1.975 4-2.364.515-3.244-2.249-2.984-3.544 0 0 .28-2.797 2.197-2.969m8.847-1.483c.14-1.31 1.69-3.316 2.931-3.028 1.236.285 2.367 1.944 2.137 3.37-.224 1.428-1.345 3.313-3.095 3.082-1.748-.226-2.143-1.823-1.973-3.424M9.425 1c1.307 0 2.364 1.519 2.364 3.398s-1.057 3.4-2.364 3.4-2.367-1.521-2.367-3.4S8.118 1 9.425 1`},null,-1)]])}var We={render:Ue},Ge={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ke(t,n){return O(),C(`svg`,Ge,[...n[0]||=[e(`path`,{fill:`#2A80E2`,d:`M20.713 6.655c-.414-1.426-1.748-2.472-3.357-2.472a3.6 3.6 0 0 0-1.7.423A5.9 5.9 0 0 0 10.735 2C7.77 2 5.31 4.16 4.943 6.944 2.138 7.39 0 9.728 0 12.58c0 3.14 2.62 5.68 5.862 5.68 1.61 0 3.08-.646 4.138-1.671.276-.267.529-.557.736-.89a5 5 0 0 1-.713.845 9 9 0 0 0-1.77 5.39V22a16.7 16.7 0 0 1 8.666-2.717h.046c3.035 0 5.633-1.871 6.621-4.499A6.6 6.6 0 0 0 24 12.445c0-2.427-1.31-4.565-3.287-5.79M6.966 12.869a.836.836 0 0 1-.851.824.81.81 0 0 1-.805-.824v-2.183a.81.81 0 0 1 .805-.824c.46 0 .85.379.85.824zm3.011 1.069a.86.86 0 0 1-.874.846.86.86 0 0 1-.873-.846v-4.9a.86.86 0 0 1 .873-.846.86.86 0 0 1 .874.846zm3.104-1.047c0 .445-.414.824-.874.824s-.85-.379-.85-.824v-2.227c0-.446.367-.824.85-.824.46 0 .873.378.873.824v2.227zm3.149 1.069a.86.86 0 0 1-.874.846.86.86 0 0 1-.873-.846v-4.9a.86.86 0 0 1 .873-.846.86.86 0 0 1 .874.846zm3.08-1.091a.836.836 0 0 1-.85.824.81.81 0 0 1-.805-.824v-2.183a.81.81 0 0 1 .805-.824c.46 0 .85.379.85.824z`},null,-1)]])}var qe={render:Ke},Je={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Z(t,n){return O(),C(`svg`,Je,[...n[0]||=[e(`path`,{fill:`#6E29F6`,"fill-rule":`evenodd`,d:`M22.956 6.521H12.522c-.577 0-1.044.468-1.044 1.044v3.13c0 .577-.466 1.044-1.043 1.044H1.044c-.577 0-1.044.467-1.044 1.044v4.174C0 17.533.467 18 1.044 18h10.434c.577 0 1.044-.467 1.044-1.043v-3.13c0-.578.466-1.044 1.043-1.044h9.391c.577 0 1.044-.467 1.044-1.044V7.565c0-.576-.467-1.044-1.044-1.044`,"clip-rule":`evenodd`},null,-1)]])}var Q={render:Z},$={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ye(t,n){return O(),C(`svg`,$,[...n[0]||=[e(`path`,{fill:`url(#a)`,"fill-rule":`evenodd`,d:`M22.012 0h1.032v.927H24v.968h-.956V3.78h-1.032V1.896h-1.878v-.97h1.878zM2.6 12.371V1.87h.969v10.502zm10.423.66h10.95v.918h-6.208v9.579h-4.742V13.03zM5.629 3.333v12.356H0v4.51h10.386V8h10.473l-.003-4.668z`},null,-1),e(`defs`,null,[e(`linearGradient`,{id:`a`,x1:`1.646`,x2:`18.342`,y1:`1.916`,y2:`22.091`,gradientUnits:`userSpaceOnUse`},[e(`stop`,{"stop-color":`#01A9FF`}),e(`stop`,{offset:`1`,"stop-color":`#0160FF`})])],-1)]])}var Xe={render:Ye},Ze={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Qe(t,n){return O(),C(`svg`,Ze,[...n[0]||=[e(`path`,{fill:`#0052D9`,"fill-rule":`evenodd`,d:`M9.976 1 24 9.8l-10.587.015L10.723 23H5.489L8.18 9.8H3.244L1 5.4h8.077z`},null,-1)]])}var $e={render:Qe},et={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function tt(t,n){return O(),C(`svg`,et,[...n[0]||=[e(`path`,{fill:`#00E5E5`,d:`m19.44 10.153-2.936 11.586a.215.215 0 0 0 .214.261h5.87a.215.215 0 0 0 .214-.261l-2.95-11.586a.214.214 0 0 0-.412 0M3.28 12.778l-2.275 8.96A.214.214 0 0 0 1.22 22h4.532a.21.21 0 0 0 .214-.165.2.2 0 0 0 0-.097l-2.276-8.96a.214.214 0 0 0-.41 0`},null,-1),e(`path`,{fill:`#006EFF`,d:`M7.29 5.359 3.148 21.738a.215.215 0 0 0 .203.261h8.29a.214.214 0 0 0 .215-.261L7.7 5.358a.214.214 0 0 0-.41 0z`},null,-1),e(`path`,{fill:`#006EFF`,d:`M14.44.15a.214.214 0 0 0-.41 0L8.366 21.739A.214.214 0 0 0 8.58 22H19.9a.22.22 0 0 0 .171-.078.21.21 0 0 0 .044-.183z`},null,-1),e(`path`,{fill:`#00E5E5`,d:`M10.278 7.741 6.685 21.736a.214.214 0 0 0 .214.264h7.17a.215.215 0 0 0 .214-.264L10.688 7.741a.214.214 0 0 0-.41 0`},null,-1)]])}var nt={render:tt},rt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function it(t,n){return O(),C(`svg`,rt,[...n[0]||=[e(`defs`,null,[e(`linearGradient`,{id:`a`,x1:`0%`,x2:`100.182%`,y1:`50.057%`,y2:`50.057%`},[e(`stop`,{offset:`0%`,"stop-color":`#E2167E`}),e(`stop`,{offset:`100%`,"stop-color":`#FE603C`})])],-1),e(`path`,{fill:`url(#a)`,d:`M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 0 0 .744.709.74.74 0 0 0 .743-.709V9.099a2.06 2.06 0 0 1 2.071-2.049A2.06 2.06 0 0 1 24 9.1v6.561a.65.65 0 0 1-.652.645.65.65 0 0 1-.653-.645V9.1a.76.76 0 0 0-.766-.758.76.76 0 0 0-.766.758v7.472a2.037 2.037 0 0 1-2.048 2.026 2.037 2.037 0 0 1-2.048-2.026v-12.5a.785.785 0 0 0-.788-.753.785.785 0 0 0-.789.752l-.001 15.904A2.037 2.037 0 0 1 13.441 22a2.037 2.037 0 0 1-2.048-2.026V18.04c0-.356.292-.645.652-.645s.652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.73.73 0 0 0 .372-.638V4.07c0-1.143.937-2.07 2.093-2.07m-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.65.65 0 0 1-.652.645.65.65 0 0 1-.652-.645V4.07a.785.785 0 0 0-.789-.78.785.785 0 0 0-.789.78v14.013a2.06 2.06 0 0 1-2.07 2.048 2.06 2.06 0 0 1-2.071-2.048V9.1a.76.76 0 0 0-.766-.758.76.76 0 0 0-.766.758v3.8a2.06 2.06 0 0 1-2.071 2.049A2.06 2.06 0 0 1 0 12.9v-1.378c0-.357.292-.646.652-.646s.653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 0 1 2.07-2.048 2.06 2.06 0 0 1 2.071 2.048v8.984c0 .419.343.758.767.758a.76.76 0 0 0 .766-.758V4.07c0-1.143.937-2.07 2.093-2.07`},null,-1)]])}var at={render:it},ot={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function st(t,n){return O(),C(`svg`,ot,[...n[0]||=[e(`path`,{fill:`#FF6003`,"fill-rule":`evenodd`,d:`M24 14.014c-2.8 1.512-5.62 2.896-8.759 3.524-.7.139-1.476.139-2.187.043-.678-.085-1.017-.682-.776-1.31.23-.585.536-1.181.93-1.671.852-1.065 1.814-2.034 2.678-3.088a16 16 0 0 0 1.422-2.054c.306-.511.164-1.129-.372-1.384-.897-.437-1.859-.745-2.81-1.075-.11-.043-.274.074-.492.149.273.244.47.425.743.67-2.821.48-5.49 1.16-8.08 2.098-.012.053-.033.095-.023.117.383.585.208 1.032-.35 1.394a2.4 2.4 0 0 0-.568.522c1.706.5 3.226.213 4.68-.735-.087-.127-.175-.244-.262-.372.546.096.874.394.918.862.011.107-.054.213-.087.32-.077-.086-.175-.17-.24-.267-.045-.064-.056-.138-.088-.245-1.728 1.15-3.587 1.438-5.632.842 0 .404-.022.745.011 1.075.022.287-.098.415-.36.564-.591.362-1.204.735-1.696 1.214-.59.585-.371 1.299.427 1.597.907.34 1.859.35 2.81.234 1.126-.139 2.23-.32 3.456-.49-1.433.67-2.844 1.14-4.33 1.33-1.04.14-2.078.214-3.106-.084-1.476-.415-2.133-1.501-1.75-2.96.361-1.363 1.236-2.449 2.176-3.45 3.139-3.332 7.108-5.024 11.7-5.365 1.072-.074 2.155.064 3.16.511 1.411.639 2.002 1.99 1.313 3.354-.448.905-1.072 1.735-1.695 2.555-.612.809-1.301 1.554-1.946 2.331-.186.234-.361.48-.503.745-.274.5-.088.83.492.778 1.213-.118 2.45-.213 3.62-.511 1.716-.437 3.389-1.054 5.084-1.597.175-.043.339-.107.492-.17z`},null,-1)]])}var ct={render:st},lt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function ut(t,n){return O(),C(`svg`,lt,[...n[0]||=[e(`path`,{fill:`#D97757`,d:`m4.709 15.955 4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a3 3 0 0 1-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312z`},null,-1)]])}var dt={render:ut},ft={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function pt(e,t){return O(),C(`svg`,ft,[...t[0]||=[E(`<path fill="#fff" d="M19.503 0H4.496A4.496 4.496 0 0 0 0 4.496v15.007A4.496 4.496 0 0 0 4.496 24h15.007A4.496 4.496 0 0 0 24 19.503V4.496A4.496 4.496 0 0 0 19.503 0"></path><path fill="url(#a)" d="M9.064 3.344a4.6 4.6 0 0 1 2.285-.312q1.5.173 2.673 1.275.016.015.037.021a.1.1 0 0 0 .043 0 4.55 4.55 0 0 1 3.046.275l.047.022.116.057a4.58 4.58 0 0 1 2.188 2.399q.313.765.315 1.595a4.2 4.2 0 0 1-.134 1.223.12.12 0 0 0 .03.115q.89.91 1.183 2.17.433 2.138-.887 3.854l-.136.166a4.55 4.55 0 0 1-2.201 1.388.12.12 0 0 0-.081.076c-.191.551-.383 1.023-.74 1.494-.9 1.187-2.222 1.846-3.711 1.838q-1.78-.009-3.157-1.302a.11.11 0 0 0-.105-.024c-.388.125-.78.143-1.204.138a4.44 4.44 0 0 1-1.945-.466 4.54 4.54 0 0 1-1.61-1.335c-.152-.202-.303-.392-.414-.617a6 6 0 0 1-.37-.961 4.6 4.6 0 0 1-.014-2.298.1.1 0 0 0 .006-.056.1.1 0 0 0-.027-.048 4.5 4.5 0 0 1-1.034-1.651 3.9 3.9 0 0 1-.251-1.192 5.2 5.2 0 0 1 .141-1.6Q3.659 7.92 5.086 6.97q.318-.212.601-.33a6 6 0 0 1 .646-.227.1.1 0 0 0 .065-.066 4.5 4.5 0 0 1 .829-1.615 4.54 4.54 0 0 1 1.837-1.388m3.482 10.565a.637.637 0 0 0 0 1.272h3.636a.637.637 0 1 0 0-1.272zM8.462 9.23a.637.637 0 0 0-1.106.631l1.272 2.224-1.266 2.136a.636.636 0 1 0 1.095.649l1.454-2.455a.64.64 0 0 0 .005-.64z"></path><defs><linearGradient id="a" x1="12" x2="12" y1="3" y2="21" gradientUnits="userSpaceOnUse"><stop stop-color="#B1A7FF"></stop><stop offset=".5" stop-color="#7A9DFF"></stop><stop offset="1" stop-color="#3941FF"></stop></linearGradient></defs>`,3)]])}var mt={render:pt},ht={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`currentColor`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function gt(t,n){return O(),C(`svg`,ht,[...n[0]||=[e(`path`,{d:`m1.052 16.916 9.539 2.552a21 21 0 0 0 .06 2.033l5.956 1.593a12 12 0 0 1-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01-.157-.02-.107-.014-.11-.016a12 12 0 0 1-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024-.044-.015-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027-.041-.018-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032-.046-.026-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035-.054-.036-.044-.03-.044-.03-.04-.028-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039-.043-.037-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084-.099-.097-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a7 7 0 0 1-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056-.027-.033-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a12 12 0 0 1-1.44-2.402m-1.02-5.794 11.353 3.037a21 21 0 0 0-.469 2.011l10.817 2.894a12 12 0 0 1-1.845 2.005L.657 15.923l-.016-.046-.035-.104-.05-.153-.007-.023a12 12 0 0 1-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094q-.04-.212-.071-.426l-.017-.118-.011-.083-.013-.102-.019-.161-.005-.047a12 12 0 0 1-.034-2.145m1.593-5.15 11.948 3.196a21 21 0 0 0-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098q.04-.222.088-.442l.028-.124.02-.085.024-.097q.033-.135.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a12 12 0 0 1 1.01-2.232zm4.442-4.4L17.352 4.59a21 21 0 0 0-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12 12 0 0 1 2.272-1.677M12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017q.081.055.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035q.17-.068.341-.131l.096-.035.093-.033.084-.03.096-.031A8 8 0 0 1 8.49.525l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01q.14-.015.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z`},null,-1)]])}var _t={render:gt},vt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`currentColor`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function yt(t,n){return O(),C(`svg`,vt,[...n[0]||=[e(`path`,{d:`M16 6H8v12h8zm4 16H4V2h16z`},null,-1)]])}var bt={render:yt},xt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#09090b`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function St(t,n){return O(),C(`svg`,xt,[...n[0]||=[e(`path`,{d:`M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.8.8 0 0 0-.856 0zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.43.43 0 0 1 .476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142a.45.45 0 0 1-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.48 4.48 0 0 1 4.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.43.43 0 0 1-.476 0m-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71a.79.79 0 0 0 .856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523m5.899 2.83a5.95 5.95 0 0 0 5.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947a5.7 5.7 0 0 0-1.88.31A5.96 5.96 0 0 0 10.205 0a5.95 5.95 0 0 0-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 0 0 4.162 1.713z`},null,-1)]])}var Ct={render:St},wt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#09090b`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Tt(t,n){return O(),C(`svg`,wt,[...n[0]||=[e(`path`,{d:`M13.827 3.52h3.603L24 20h-3.603zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z`},null,-1)]])}var Et={render:Tt},Dt={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 800 800`};function Ot(t,n){return O(),C(`svg`,Dt,[...n[0]||=[e(`path`,{fill:`#09090b`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),e(`path`,{fill:`#09090b`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var kt={render:Ot},At={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function jt(t,n){return O(),C(`svg`,At,[...n[0]||=[e(`path`,{d:`m1.052 16.916 9.539 2.552a21 21 0 0 0 .06 2.033l5.956 1.593a12 12 0 0 1-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01-.157-.02-.107-.014-.11-.016a12 12 0 0 1-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024-.044-.015-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027-.041-.018-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032-.046-.026-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035-.054-.036-.044-.03-.044-.03-.04-.028-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039-.043-.037-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084-.099-.097-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a7 7 0 0 1-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056-.027-.033-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a12 12 0 0 1-1.44-2.402m-1.02-5.794 11.353 3.037a21 21 0 0 0-.469 2.011l10.817 2.894a12 12 0 0 1-1.845 2.005L.657 15.923l-.016-.046-.035-.104-.05-.153-.007-.023a12 12 0 0 1-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094q-.04-.212-.071-.426l-.017-.118-.011-.083-.013-.102-.019-.161-.005-.047a12 12 0 0 1-.034-2.145m1.593-5.15 11.948 3.196a21 21 0 0 0-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098q.04-.222.088-.442l.028-.124.02-.085.024-.097q.033-.135.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a12 12 0 0 1 1.01-2.232zm4.442-4.4L17.352 4.59a21 21 0 0 0-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12 12 0 0 1 2.272-1.677M12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017q.081.055.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035q.17-.068.341-.131l.096-.035.093-.033.084-.03.096-.031A8 8 0 0 1 8.49.525l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01q.14-.015.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z`},null,-1)]])}var Mt={render:jt},Nt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Pt(t,n){return O(),C(`svg`,Nt,[...n[0]||=[e(`path`,{d:`M16 6H8v12h8zm4 16H4V2h16z`},null,-1)]])}var Ft={render:Pt},It={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Lt(t,n){return O(),C(`svg`,It,[...n[0]||=[e(`path`,{d:`M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.8.8 0 0 0-.856 0zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.43.43 0 0 1 .476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142a.45.45 0 0 1-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.48 4.48 0 0 1 4.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.43.43 0 0 1-.476 0m-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71a.79.79 0 0 0 .856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523m5.899 2.83a5.95 5.95 0 0 0 5.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947a5.7 5.7 0 0 0-1.88.31A5.96 5.96 0 0 0 10.205 0a5.95 5.95 0 0 0-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 0 0 4.162 1.713z`},null,-1)]])}var Rt={render:Lt},zt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Bt(t,n){return O(),C(`svg`,zt,[...n[0]||=[e(`path`,{d:`M13.827 3.52h3.603L24 20h-3.603zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z`},null,-1)]])}var Vt={render:Bt},Ht={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 800 800`};function Ut(t,n){return O(),C(`svg`,Ht,[...n[0]||=[e(`path`,{fill:`#fff`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),e(`path`,{fill:`#fff`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var Wt={render:Ut},Gt=w({__name:`ProviderIcon`,props:{name:{},size:{default:20}},setup(e){let t={deepseek:J,zhipu:X,kimi:Re,qwen:Ve,baidu:We,iflytek:qe,siliconcloud:Q,stepfun:Xe,tencentcloud:$e,volcengine:nt,minimax:at,alibaba:ct,claude:dt,codex:mt},r={moonshot:_t,opencode:bt,openai:Ct,anthropic:Et,pi:kt},i={moonshot:Mt,opencode:Ft,openai:Rt,anthropic:Vt,pi:Wt},a=e,o=s(()=>{let e=a.name.toLowerCase();if(t[e])return t[e];if(ve.value&&i[e])return i[e];if(r[e])return r[e]}),l=s(()=>a.name.charAt(0).toUpperCase());return(t,r)=>o.value?(O(),_(n(o.value),{key:0,class:`shrink-0`,style:m({width:`${e.size}px`,height:`${e.size}px`})},null,8,[`style`])):(O(),C(`span`,{key:1,class:`inline-flex items-center justify-center shrink-0 font-bold text-muted-foreground`,style:m({width:`${e.size}px`,height:`${e.size}px`,fontSize:`${e.size*.5}px`})},c(l.value),5))}}),Kt={class:`border border-input rounded-lg p-4 space-y-3`},qt={class:`flex items-center gap-3`},Jt={class:`text-xs font-medium text-muted-foreground whitespace-nowrap`},Yt={key:0,class:`grid grid-cols-4 gap-3`},Xt={class:`col-span-2`},Zt=w({__name:`ProxyConfigForm`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=n,{t:a}=u();function o(e){i(`update:modelValue`,{...r.modelValue,...e})}let l=s(()=>r.modelValue.proxyType??G.proxyType),d=s(()=>r.modelValue.proxyUrl??G.proxyUrl),f=s(()=>r.modelValue.proxyUsername??G.proxyUsername),p=s(()=>r.modelValue.proxyPassword??G.proxyPassword);function m(e){let t=typeof e==`string`?e:e==null?``:JSON.stringify(e),n=t===`none`?``:t;n?o({proxyType:n}):i(`update:modelValue`,{...G})}return(t,n)=>(O(),C(`div`,Kt,[e(`div`,qt,[e(`span`,Jt,c(T(a)(`providers.fields.proxyTitle`)),1),h(T(z),{"model-value":l.value||`none`,class:`w-32`,"onUpdate:modelValue":m},{default:x(()=>[h(T(L),null,{default:x(()=>[h(T(R))]),_:1}),h(T(P),null,{default:x(()=>[h(T(I),{value:`none`},{default:x(()=>[y(c(T(a)(`providers.fields.proxyNoProxy`)),1)]),_:1}),h(T(I),{value:`http`},{default:x(()=>[y(c(T(a)(`providers.fields.proxyHttp`)),1)]),_:1}),h(T(I),{value:`socks5`},{default:x(()=>[y(c(T(a)(`providers.fields.proxySocks5`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),l.value?(O(),C(`div`,Yt,[e(`div`,Xt,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(a)(`providers.fields.proxyUrl`)),1)]),_:1}),h(T(V),{"model-value":d.value,type:`text`,class:`mt-1 font-mono text-xs`,placeholder:l.value===`socks5`?T(a)(`providers.fields.proxyUrlPlaceholderSocks5`):T(a)(`providers.fields.proxyUrlPlaceholderHttp`),"onUpdate:modelValue":n[0]||=e=>o({proxyUrl:e})},null,8,[`model-value`,`placeholder`])]),e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(a)(`providers.fields.proxyUsername`)),1)]),_:1}),h(T(V),{"model-value":f.value,type:`text`,class:`mt-1`,placeholder:T(a)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":n[1]||=e=>o({proxyUsername:e})},null,8,[`model-value`,`placeholder`])]),e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(a)(`providers.fields.proxyPassword`)),1)]),_:1}),h(T(V),{"model-value":p.value,type:`password`,autocomplete:`new-password`,class:`mt-1`,placeholder:T(a)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":n[2]||=e=>o({proxyPassword:e})},null,8,[`model-value`,`placeholder`])])])):D(``,!0)]))}});function Qt(){let{t:e}=u(),n=k({injectHeaders:``,dropFields:``,requestDefaults:``}),r=k(!1);async function i(i){try{let e=await t.getTransformRules(i);e?(n.value.dropFields=(e.drop_fields||[]).join(`, `),n.value.requestDefaults=e.request_defaults?JSON.stringify(e.request_defaults):``,n.value.injectHeaders=e.inject_headers?JSON.stringify(e.inject_headers):``,r.value=!0):(n.value={injectHeaders:``,dropFields:``,requestDefaults:``},r.value=!1)}catch(t){console.error(`transformRules.load:`,t),F.error(b(t,e(`providers.transform.loadFailed`))),n.value={injectHeaders:``,dropFields:``,requestDefaults:``},r.value=!1}}function a(i){if(!i)return Promise.resolve();let a=je({injectHeaders:n.value.injectHeaders,dropFields:n.value.dropFields,requestDefaults:n.value.requestDefaults});if(a.errorKey)return F.error(e(`providers.transform.${a.errorKey}`)),Promise.resolve();let o=a.rule?JSON.parse(a.rule):{drop_fields:null,request_defaults:null,inject_headers:null};return t.upsertTransformRules(i,{...o,is_active:1}).then(()=>{r.value=!0,F.success(e(`providers.transform.saved`))}).catch(t=>{console.error(`transformRules.save:`,t),F.error(b(t,e(`common.saveFailed`)))})}function o(i){return i?t.deleteTransformRules(i).then(()=>{n.value={injectHeaders:``,dropFields:``,requestDefaults:``},r.value=!1,F.success(e(`providers.transform.deleted`))}).catch(t=>{console.error(`transformRules.delete:`,t),F.error(b(t,e(`providers.transform.deleteFailed`)))}):Promise.resolve()}return{transformConfig:n,transformExists:r,loadTransformRules:i,saveTransformRules:a,handleDeleteTransformRules:o}}function $t(e){let n=k([]),r=k(``),i=k(``),a=s(()=>r.value?n.value.find(e=>e.group===r.value)?.presets??[]:[]);function o(){if(r.value===`__custom__`){i.value=``,e.value.name=``,e.value.api_type=`openai`,e.value.base_url=``,e.value.models=[],e.value.endpoints=[];return}let t=n.value.find(e=>e.group===r.value)?.presets[0];t?(i.value=t.plan,c(),t.endpoints&&t.endpoints.length>0?e.value.endpoints=t.endpoints.map(e=>({api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||null,api_key:null})):e.value.endpoints=[{api_type:t.apiType,base_url:t.baseUrl,upstream_path:t.upstreamPath||null,api_key:null}]):i.value=``}function c(){let t=a.value.find(e=>e.plan===i.value);t&&(e.value.name=t.presetName,e.value.api_type=t.apiType,e.value.base_url=t.baseUrl,e.value.upstream_path=t.upstreamPath??``,e.value.models=t.models.map(e=>({name:e,context_window:j(e),patches:M(e,t.apiType,!1),capabilities:t.modelCapabilities?.[e]})))}function l(){return a.value.find(e=>e.plan===i.value)?.modelsEndpoint}function u(){return a.value.find(e=>e.plan===i.value)?.models??[]}async function d(){try{n.value=await t.recommended.getProviders()}catch(e){console.error(`useProviderPresets.loadPresets:`,e),n.value=[]}}function f(){r.value=``,i.value=``}return{providerPresets:n,presetGroup:r,presetPlan:i,availablePlans:a,onGroupChange:o,onPresetChange:c,getCurrentModelsEndpoint:l,getCurrentPresetModels:u,loadPresets:d,resetPreset:f}}var en=100,tn=1e3,nn=1e3,rn={name:``,api_type:`anthropic`,base_url:``,upstream_path:``,api_key:``,endpoints:[],models:[],is_active:!0,max_concurrency:K.max_concurrency,queue_timeout_ms:K.queue_timeout_ms,max_queue_size:K.max_queue_size,adaptive_enabled:!0,proxy_type:``,proxy_url:``,proxy_username:``,proxy_password:``},an=[{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`}],on={openai:`OpenAI Chat Completions`,"openai-responses":`OpenAI Responses`,anthropic:`Anthropic Messages`};function sn(){let{t:e}=u(),{transformConfig:t,loadTransformRules:n,saveTransformRules:r}=Qt(),i=k({...rn}),c=k({}),l=k(`auto`),d=k(!1),f=k(null),p=k(``),m=k(a),h=s({get:()=>`${m.value}`,set:e=>{m.value=Number(e)}}),g=$t(i);function _(){let t={};i.value.name.trim()?/^[a-zA-Z0-9_-]+$/.test(i.value.name.trim())||(t.name=e(`providers.validation.namePattern`)):t.name=e(`providers.validation.nameRequired`);let n=i.value.endpoints.length>0;if(!n)if(!i.value.base_url.trim())t.base_url=e(`providers.validation.baseUrlRequired`);else try{new URL(i.value.base_url.trim())}catch{t.base_url=e(`providers.validation.baseUrlInvalid`)}if(!f.value&&!i.value.api_key.trim()&&(t.api_key=e(`providers.validation.apiKeyRequired`)),n){let n=i.value.endpoints;for(let r=0;r<n.length;r++)n[r].base_url.trim()||(t[`endpoint_${r}_base_url`]=e(`providers.validation.baseUrlRequired`));let r=n.map(e=>e.api_type);new Set(r).size!==r.length&&(t.endpoints=e(`providers.validation.duplicateApiType`))}if(l.value!==`none`){let n=i.value.max_concurrency;(!n||n<1||n>en)&&(t.max_concurrency=e(`providers.validation.concurrencyRange`,{min:1,max:en})),i.value.queue_timeout_ms<0&&(t.queue_timeout_ms=e(`providers.validation.negativeNotAllowed`));let r=i.value.max_queue_size;(!r||r<1||r>tn)&&(t.max_queue_size=e(`providers.validation.queueSizeRange`,{min:1,max:tn}))}return c.value=t,Object.keys(t).length===0}function v(){let e={name:i.value.name,api_type:i.value.api_type,base_url:i.value.endpoints.length>0&&!i.value.base_url?i.value.endpoints[0].base_url:i.value.base_url,upstream_path:i.value.upstream_path||void 0,endpoints:i.value.endpoints.length>0?i.value.endpoints.map(e=>({api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||void 0,api_key:e.api_key||void 0})):void 0,models:i.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities??void 0})),is_active:+!!i.value.is_active,max_concurrency:l.value===`none`?0:i.value.max_concurrency,queue_timeout_ms:l.value===`none`?0:i.value.queue_timeout_ms,max_queue_size:l.value===`none`?ke.max_queue_size:i.value.max_queue_size,adaptive_enabled:+(l.value===`auto`),proxy_type:i.value.proxy_type||null,proxy_url:i.value.proxy_url?.trim()||null,proxy_username:i.value.proxy_username?.trim()||null,proxy_password:i.value.proxy_password||null};return i.value.api_key&&(e.api_key=i.value.api_key),e}function y(e,t){let n=p.value.trim();if(!n)return;let r=n.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let n of r)i.value.models.some(e=>e.name===n)||i.value.models.push({name:n,context_window:m.value||2e5,patches:t??[],stream_timeout_ms:o,capabilities:e??[`text`]});p.value=``,m.value=a}function b(e){i.value.models.splice(e,1)}function x(e,t){i.value.models[e].context_window=t.contextWindow,i.value.models[e].patches=t.patches}function S(e,t){if(t===`text`)return;let n=i.value.models[e],r=n.capabilities??[`text`];n.capabilities=r.includes(t)?r.filter(e=>e!==t):[...r,t]}function C(e,t){let n=Number(t);i.value.models[e].stream_timeout_ms=n>0?n*nn:null}function w(e){l.value=e,e===`auto`?((!i.value.max_concurrency||i.value.max_concurrency<1)&&(i.value.max_concurrency=K.max_concurrency),i.value.adaptive_enabled=!0):e===`manual`&&((!i.value.max_concurrency||i.value.max_concurrency<1)&&(i.value.max_concurrency=ke.max_concurrency),i.value.adaptive_enabled=!1)}function T(e){return e.includes(`api.openai.com`)}function E(){f.value=null,i.value={...rn,models:[],endpoints:[]},l.value=`auto`,p.value=``,m.value=a,g.presetGroup.value=``,g.presetPlan.value=``,c.value={},d.value=!0}function D(e){f.value=e.id;let t=e.max_concurrency??0;t===0?l.value=`none`:e.adaptive_enabled?l.value=`auto`:l.value=`manual`,i.value={name:e.name,api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||``,api_key:``,endpoints:(e.endpoints??[]).map(e=>({api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path??null,api_key:e.api_key??null})),models:(e.models||[]).map(e=>({name:e.name,context_window:e.context_window??2e5,patches:e.patches??[],stream_timeout_ms:e.stream_timeout_ms??null,capabilities:e.capabilities??[`text`]})),is_active:!!e.is_active,max_concurrency:l.value===`none`?K.max_concurrency:t,queue_timeout_ms:e.queue_timeout_ms??K.queue_timeout_ms,max_queue_size:e.max_queue_size??K.max_queue_size,adaptive_enabled:l.value===`auto`,proxy_type:e.proxy_type||``,proxy_url:e.proxy_url||``,proxy_username:e.proxy_username||``,proxy_password:``},g.presetGroup.value=``,g.presetPlan.value=``,p.value=``,m.value=a,c.value={},d.value=!0,n(e.id)}return{form:i,errors:c,concurrencyMode:l,dialogOpen:d,editingId:f,modelInput:p,modelContextWindow:m,contextWindowSelect:h,transformConfig:t,presetHook:g,validate:_,buildPayload:v,addModel:y,removeModel:b,updateModel:x,updateModelTimeout:C,toggleModelCapability:S,onConcurrencyModeChange:w,isOfficialOpenai:T,openCreate:E,openEdit:D,saveTransformRules:r}}var cn={class:`bg-card border-input border rounded-lg p-5 mb-4`},ln={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-4 pb-2.5 border-b border-input`},un={class:`grid grid-cols-2 gap-3`},dn={key:0,class:`text-xs text-destructive mt-0.5`},fn={key:0,class:`text-xs text-destructive mt-0.5`},pn={class:`text-xs text-muted-foreground mt-0.5`},mn={class:`bg-card border-input border rounded-lg p-5 mb-4`},hn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-4 pb-2.5 border-b border-input`},gn={class:`flex items-center justify-between mb-2`},_n={class:`grid grid-cols-1 gap-2 mb-3`},vn={class:`flex gap-2 items-center`},yn={class:`flex items-center gap-0.5 shrink-0`},bn={class:`bg-card border-input border rounded-lg overflow-hidden mb-4`},xn={key:0,class:`px-5 pb-5`},Sn={class:`border-t border-input pt-4 space-y-4`},Cn={class:`grid grid-cols-3 gap-3`},wn={class:`border border-input rounded-md p-3 space-y-3`},Tn={class:`text-xs font-medium text-muted-foreground`},En=w({__name:`ModelCapabilitiesEditor`,props:{modelValue:{},editingId:{},errors:{},fetchingModels:{type:Boolean},hasModelsEndpoint:{type:Boolean},presetGroup:{},hasApiKey:{type:Boolean},endpoints:{},sharedKey:{}},emits:[`update:modelValue`,`clear-errors`,`fetch-upstream-models`,`update:endpoints`],setup(t,{emit:r}){let{t:s}=u(),l=k(!1),m=k([`text`]),v=[{key:`text`,icon:re,label:`text`},{key:`image`,icon:te,label:`image`},{key:`audio`,icon:oe,label:`audio`},{key:`video`,icon:ne,label:`video`}];function b(e){if(e===`text`)return;let t=m.value;m.value=t.includes(e)?t.filter(t=>t!==e):[...t,e]}let w=t,E=r;function A(e){E(`update:modelValue`,{...w.modelValue,...e})}function j(){let e=w.modelValue.modelInput.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean),n=[...w.modelValue.models];for(let e of t)n.some(t=>t.name===e)||n.push({name:e,context_window:Number(w.modelValue.contextWindowSelect)||2e5,patches:[],stream_timeout_ms:o,capabilities:[...m.value]});A({models:n,modelInput:``,contextWindowSelect:`${a}`}),m.value=[`text`]}function M(e){let t=[...w.modelValue.models];t.splice(e,1),A({models:t})}function se(e,t){let n=[...w.modelValue.models];n[e]={...n[e],context_window:t.contextWindow,patches:t.patches},A({models:n})}function ce(e,t){let n=[...w.modelValue.models];n[e]={...n[e],stream_timeout_ms:t&&t>0?t:null},A({models:n})}function le(e,t){if(t===`text`)return;let n=[...w.modelValue.models],r=n[e],i=r.capabilities??[`text`];n[e]={...r,capabilities:i.includes(t)?i.filter(e=>e!==t):[...i,t]},A({models:n})}function ue(e){let t={concurrencyMode:e};e===`auto`?(!w.modelValue.maxConcurrency||w.modelValue.maxConcurrency<1)&&(t.maxConcurrency=10):e===`manual`&&(!w.modelValue.maxConcurrency||w.modelValue.maxConcurrency<1)&&(t.maxConcurrency=3),A(t)}function de(e){return e.capabilities??[`text`]}function fe(e){return e.includes(`api.openai.com`)}return(t,r)=>(O(),C(d,null,[e(`div`,cn,[e(`div`,ln,c(T(s)(`providers.fields.connectionSection`)),1),e(`div`,un,[e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.fields.name`)),1)]),_:1}),h(T(V),{"model-value":w.modelValue.name,type:`text`,required:``,class:`mt-1`,"onUpdate:modelValue":r[0]||=e=>A({name:String(e)}),onInput:r[1]||=e=>E(`clear-errors`,`name`)},null,8,[`model-value`]),w.errors.name?(O(),C(`p`,dn,c(w.errors.name),1)):D(``,!0)]),e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.fields.apiKey`)),1)]),_:1}),h(T(V),{"model-value":w.modelValue.apiKey,type:`password`,autocomplete:`new-password`,required:!w.editingId,placeholder:w.editingId?T(s)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1 font-mono text-xs`,"onUpdate:modelValue":r[2]||=e=>A({apiKey:String(e)}),onInput:r[3]||=e=>E(`clear-errors`,`api_key`)},null,8,[`model-value`,`required`,`placeholder`]),w.errors.api_key?(O(),C(`p`,fn,c(w.errors.api_key),1)):D(``,!0),e(`p`,pn,c(T(s)(`providers.fields.sharedKeyHint`)),1)])]),h(ie,{"model-value":w.endpoints,"shared-key":w.sharedKey,"onUpdate:modelValue":r[4]||=e=>E(`update:endpoints`,e)},null,8,[`model-value`,`shared-key`])]),e(`div`,mn,[e(`div`,hn,c(T(s)(`providers.fields.modelsSection`)),1),e(`div`,null,[e(`div`,gn,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.fields.availableModels`)),1)]),_:1}),!w.editingId&&w.presetGroup&&w.presetGroup!==`__custom__`&&(w.hasApiKey||!w.hasModelsEndpoint)?(O(),_(T(S),{key:0,type:`button`,variant:`outline`,size:`sm`,class:`text-xs`,disabled:w.fetchingModels,onClick:r[5]||=e=>E(`fetch-upstream-models`)},{default:x(()=>[h(T(Me),{class:p([`w-3 h-3 mr-1`,{"animate-spin":w.fetchingModels}])},null,8,[`class`]),y(` `+c(w.fetchingModels?T(s)(`providers.fetchModels.loading`):w.hasModelsEndpoint?T(s)(`providers.fetchModels.button`):T(s)(`providers.fetchModels.buttonPreset`)),1)]),_:1},8,[`disabled`])):D(``,!0)]),e(`div`,_n,[(O(!0),C(d,null,g(w.modelValue.models,(e,t)=>(O(),C(`div`,{key:t},[h(ae,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":w.modelValue.apiType,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!fe(w.modelValue.baseUrl),"stream-timeout-ms":e.stream_timeout_ms??void 0,capabilities:de(e),"onUpdate:model":e=>se(t,e),onRemove:e=>M(t),"onUpdate:streamTimeoutMs":e=>ce(t,e),onToggleCapability:e=>le(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`stream-timeout-ms`,`capabilities`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onToggleCapability`])]))),128))]),e(`div`,vn,[h(T(V),{"model-value":w.modelValue.modelInput,"onUpdate:modelValue":r[6]||=e=>A({modelInput:String(e)}),placeholder:T(s)(`providers.fields.modelInputPlaceholder`),onKeydown:i(f(j,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`model-value`,`placeholder`,`onKeydown`]),h(T(z),{"model-value":w.modelValue.contextWindowSelect,"onUpdate:modelValue":r[7]||=e=>A({contextWindowSelect:String(e)})},{default:x(()=>[h(T(L),{class:`w-28`},{default:x(()=>[h(T(R),{placeholder:T(s)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),h(T(P),null,{default:x(()=>[(O(!0),C(d,null,g(T(an),e=>(O(),_(T(I),{key:e.value,value:e.value},{default:x(()=>[y(c(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),e(`div`,yn,[(O(),C(d,null,g(v,e=>h(T(S),{key:e.key,type:`button`,variant:`outline`,size:`icon`,class:p([`w-6 h-6 text-[11px] font-medium`,m.value.includes(e.key)?`border-primary/30 text-primary bg-primary/10`:`text-muted-foreground/40 hover:text-muted-foreground border-input`]),title:e.label,onClick:t=>b(e.key)},{default:x(()=>[(O(),_(n(e.icon),{class:`size-[11px]`}))]),_:2},1032,[`class`,`title`,`onClick`])),64))]),h(T(S),{type:`button`,variant:`outline`,size:`sm`,onClick:j,disabled:!w.modelValue.modelInput.trim()},{default:x(()=>[y(c(T(s)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])])]),e(`div`,bn,[h(T(S),{type:`button`,variant:`ghost`,class:`w-full flex items-center gap-2 px-5 py-3 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider hover:text-foreground`,onClick:r[8]||=e=>l.value=!l.value},{default:x(()=>[h(T(ee),{class:p([`w-3 h-3 transition-transform duration-150`,l.value?`rotate-90`:``])},null,8,[`class`]),y(` `+c(T(s)(`providers.fields.advancedSection`)),1)]),_:1}),l.value?(O(),C(`div`,xn,[e(`div`,Sn,[e(`div`,Cn,[e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.concurrency.mode`)),1)]),_:1}),h(T(z),{"model-value":w.modelValue.concurrencyMode,"onUpdate:modelValue":r[9]||=e=>ue(e),class:`mt-1`},{default:x(()=>[h(T(L),{class:`h-8 text-[13px]`},{default:x(()=>[h(T(R),{placeholder:T(s)(`providers.concurrency.selectMode`)},null,8,[`placeholder`])]),_:1}),h(T(P),null,{default:x(()=>[h(T(I),{value:`auto`},{default:x(()=>[y(c(T(s)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),h(T(I),{value:`manual`},{default:x(()=>[y(c(T(s)(`providers.concurrency.manual`)),1)]),_:1}),h(T(I),{value:`none`},{default:x(()=>[y(c(T(s)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),w.modelValue.concurrencyMode===`none`?D(``,!0):(O(),C(d,{key:0},[e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),h(T(V),{"model-value":String(w.modelValue.maxConcurrency),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[10]||=e=>A({maxConcurrency:Number(e)})},null,8,[`model-value`])]),e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.concurrency.queueTimeout`)),1)]),_:1}),h(T(V),{"model-value":String(w.modelValue.queueTimeoutMs),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[11]||=e=>A({queueTimeoutMs:Number(e)})},null,8,[`model-value`])]),e(`div`,null,[h(T(N),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(c(T(s)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),h(T(V),{"model-value":String(w.modelValue.maxQueueSize),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[12]||=e=>A({maxQueueSize:Number(e)})},null,8,[`model-value`])])],64))]),h(Zt,{"model-value":w.modelValue.proxyConfig,"onUpdate:modelValue":r[13]||=e=>A({proxyConfig:e})},null,8,[`model-value`]),e(`div`,wn,[e(`div`,Tn,c(T(s)(`providers.transform.title`)),1),h(Ae,{"model-value":w.modelValue.transformConfig,"onUpdate:modelValue":r[14]||=e=>A({transformConfig:e})},null,8,[`model-value`])])])])):D(``,!0)])],64))}}),Dn=7,On=7,kn=2e3;function An(){let{t:e}=u(),n=k([]),r=k(!1),i=k(null),a=k(null),o=k(null),s=k(null),c=k(!1),l=k([]);async function d(){try{n.value=await t.getProviders()}catch(t){console.error(`Failed to load providers:`,t),F.error(b(t,e(`providers.toast.loadFailed`)))}}function f(e){return e?e.slice(0,Dn)+`*`.repeat(On):``}let{copy:p}=W();async function m(e,t){await p(e)&&(i.value=t,setTimeout(()=>{i.value=null},kn))}function h(e){a.value=e}async function g(e){if(o.value=e,s.value=e.id,c.value=!!e.is_active,l.value=[],e.is_active)try{l.value=(await t.getProviderDependencies(e.id)).references}catch(e){console.error(`useProviderActions.doSave:`,e),l.value=[]}}async function _(){let n=s.value;if(!n)return;let r=c.value;o.value=null,s.value=null;try{let i=await t.updateProvider(n,{is_active:+!r});if(i.cascadedGroups?.length){let t=i.cascadedGroups.filter(e=>e.disabled).length,n=i.cascadedGroups.length-t,r=[];n>0&&r.push(e(`providers.toast.cascadeClean`,{count:n})),t>0&&r.push(e(`providers.toast.cascadeDisable`,{count:t})),F.warning(e(`providers.toast.cascadeAuto`,{actions:r.join(`, `)}))}await d()}catch(t){console.error(`Failed to toggle provider:`,t),F.error(b(t,e(`providers.toast.toggleFailed`)))}}async function v(){let n=a.value;if(n){a.value=null;try{await t.deleteProvider(n.id),await d()}catch(t){console.error(`providerActions.delete:`,t),F.error(b(t,e(`providers.toast.deleteFailed`)))}}}async function y(){r.value=!0;try{let n=await t.reloadTransformRules();F.success(e(`providers.toast.reloadSuccess`,{pluginCount:n.loadedPlugins.length,rulesCount:n.rulesCount}))}catch(t){console.error(`providerActions.reload:`,t),F.error(b(t,e(`providers.toast.reloadFailed`)))}finally{r.value=!1}}return{providers:n,reloading:r,copiedId:i,deleteTarget:a,toggleTarget:o,pendingToggleId:s,pendingToggleActive:c,toggleDependencies:l,maskKey:f,copyKey:m,loadProviders:d,confirmDelete:h,confirmToggle:g,handleToggle:_,handleDelete:v,handleReload:y}}function jn(e,n,r){let{t:i}=u(),a=k(!1);function o(t,n){if(t.length===0){F.info(i(`providers.fetchModels.empty`));return}let r=new Set(e.value.models.map(e=>e.name)),a=0;for(let n of t)r.has(n)||(e.value.models.push({name:n,context_window:j(n),patches:M(n,e.value.api_type,!1)}),a++);a>0?F.success(i(`providers.fetchModels.success`,{source:n,total:t.length,added:a})):F.info(i(`providers.fetchModels.allExist`,{total:t.length}))}function s(){o(r(),i(`providers.fetchModels.sourcePreset`))}async function c(){let r=n();if(!r){s();return}if(!e.value.api_key?.trim()){F.error(i(`providers.fetchModels.noApiKey`));return}a.value=!0;try{let n=await t.fetchUpstreamModels({base_url:e.value.base_url,models_endpoint:r,api_key:e.value.api_key,api_type:e.value.api_type});if(n.length===0){s();return}o(n,i(`providers.fetchModels.sourceUpstream`))}catch(e){console.error(`useFetchUpstreamModels.fetch:`,e),s()}finally{a.value=!1}}return{fetchingModels:a,fetchUpstreamModels:c}}var Mn={class:`page`},Nn={class:`mb-4`},Pn={class:`flex items-center justify-between mb-3`},Fn={class:`text-base font-semibold text-foreground`},In={class:`flex items-center gap-2`},Ln={key:0,class:`grid grid-cols-4 bg-card border-input border rounded-lg overflow-hidden`},Rn={class:`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0`},zn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Bn={class:`font-mono text-[28px] font-bold leading-none mt-0.5`},Vn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Hn={class:`font-mono text-[28px] font-bold leading-none mt-0.5 text-success`},Un={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Wn={class:`font-mono text-[28px] font-bold leading-none mt-0.5 text-muted-foreground`},Gn={class:`flex flex-col gap-1 px-5 py-3.5`},Kn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},qn={class:`font-mono text-[28px] font-bold leading-none mt-0.5`},Jn={class:`flex items-center gap-2 mb-4`},Yn={class:`relative flex-1 max-w-sm`},Xn={class:`font-mono text-xs text-muted-foreground shrink-0`},Zn={class:`flex items-center gap-2.5`},Qn={class:`flex flex-col gap-0.5 min-w-0`},$n={class:`flex items-center gap-1.5`},er={class:`font-medium text-[13px] truncate`},tr={key:0,class:`border-t border-dashed border-border my-0.5`},nr={class:`font-mono text-[11px] text-muted-foreground truncate max-w-[260px] block`},rr={class:`space-y-0.5`},ir={key:0,class:`border-t border-dashed border-border my-0.5`},ar={class:`flex items-center gap-1`},or={key:0,class:`font-mono text-xs text-muted-foreground`},sr={key:1,class:`text-[10px] text-emerald-600 dark:text-emerald-400`},cr={class:`flex items-center gap-1.5`},lr={class:`font-mono text-[13px] font-medium`},ur={class:`flex items-center gap-1.5`},dr={key:2,class:`text-muted-foreground text-xs`},fr={class:`flex items-center gap-2`},pr={class:`flex items-center gap-1`},mr={key:1,class:`flex flex-col items-center justify-center py-16 text-center bg-card border-input border rounded-lg`},hr={class:`text-[15px] font-semibold mb-1.5`},gr={class:`text-sm text-muted-foreground mb-5 max-w-sm`},_r={key:2,class:`flex flex-col items-center justify-center py-12 text-center bg-card border-input border rounded-lg`},vr={class:`text-sm text-muted-foreground`},yr={key:0,class:`bg-card border-input border rounded-lg p-4 mb-4`},br={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-3 pb-2 border-b border-input`},xr={class:`flex items-center gap-2`},Sr={key:0,class:`mt-2 space-y-1`},Cr={class:`text-sm font-medium`},wr=w({__name:`Providers`,setup(i){let{t:a}=u(),{form:o,errors:l,concurrencyMode:m,dialogOpen:w,editingId:E,modelInput:ee,contextWindowSelect:ne,transformConfig:re,presetHook:ie,validate:j,buildPayload:ae,openCreate:oe,openEdit:M,saveTransformRules:N}=sn(),{providerPresets:ve,presetGroup:W,presetPlan:G,availablePlans:ke,onGroupChange:Ae,onPresetChange:K,getCurrentModelsEndpoint:je,getCurrentPresetModels:Pe}=ie,{providers:q,reloading:J,copiedId:Fe,deleteTarget:Y,toggleTarget:X,toggleDependencies:Ie,maskKey:Le,copyKey:Re,loadProviders:ze,confirmDelete:Be,confirmToggle:Ve,handleToggle:He,handleDelete:Ue,handleReload:We}=An(),{fetchingModels:Ge,fetchUpstreamModels:Ke}=jn(o,je,Pe),qe=s({get:()=>({proxyType:o.value.proxy_type,proxyUrl:o.value.proxy_url,proxyUsername:o.value.proxy_username,proxyPassword:o.value.proxy_password}),set:e=>{o.value.proxy_type=e.proxyType,o.value.proxy_url=e.proxyUrl,o.value.proxy_username=e.proxyUsername,o.value.proxy_password=e.proxyPassword}}),Je=s({get:()=>({name:o.value.name,apiType:o.value.api_type,baseUrl:o.value.base_url,apiKey:o.value.api_key,upstreamPath:o.value.upstream_path,models:o.value.models,modelInput:ee.value,contextWindowSelect:ne.value,concurrencyMode:m.value,maxConcurrency:o.value.max_concurrency,queueTimeoutMs:o.value.queue_timeout_ms,maxQueueSize:o.value.max_queue_size,transformConfig:re.value,proxyConfig:qe.value}),set:e=>{o.value.name=e.name,o.value.api_type=e.apiType,o.value.base_url=e.baseUrl,o.value.api_key=e.apiKey,o.value.upstream_path=e.upstreamPath,o.value.models=e.models,ee.value=e.modelInput,ne.value=e.contextWindowSelect,m.value=e.concurrencyMode,o.value.max_concurrency=e.maxConcurrency,o.value.queue_timeout_ms=e.queueTimeoutMs,o.value.max_queue_size=e.maxQueueSize,qe.value=e.proxyConfig,re.value=e.transformConfig}}),Z=k(``),Q=k(`all`),$=k(``);function Ye(e){$.value===e?($.value=``,Q.value=`all`):($.value=e,Q.value=e)}function Xe(){Q.value===`all`?$.value=``:$.value=Q.value}let Ze=s(()=>q.value.filter(e=>e.is_active).length),Qe=s(()=>q.value.filter(e=>!e.is_active).length),$e=s(()=>q.value.reduce((e,t)=>e+(t.models?.length??0),0)),et=s(()=>{let e=q.value,t=Z.value.toLowerCase().trim();return t&&(e=e.filter(e=>e.name.toLowerCase().includes(t)||e.base_url.toLowerCase().includes(t))),Q.value===`enabled`?e=e.filter(e=>e.is_active):Q.value===`disabled`&&(e=e.filter(e=>!e.is_active)),e}),tt={deepseek:`deepseek`,qianfan:`baidu`,百度千帆:`baidu`,iflytek:`iflytek`,科大讯飞:`iflytek`,siliconflow:`siliconcloud`,硅基流动:`siliconcloud`,zhipu:`zhipu`,智谱:`zhipu`,kimi:`moonshot`,moonshot:`moonshot`,月之暗面:`moonshot`,minimax:`minimax`,volcengine:`volcengine`,火山引擎:`volcengine`,aliyun:`alibaba`,alibaba:`alibaba`,阿里云:`alibaba`,tencent:`tencentcloud`,腾讯云:`tencentcloud`,opencode:`opencode`,stepfun:`stepfun`,阶跃星辰:`stepfun`};function nt(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(tt))if(t.includes(e))return n;return t}function rt(e){return(e.models??[]).some(e=>e.capabilities?.includes(`image`))}let it={anthropic:`/v1/messages`,openai:`/v1/chat/completions`,"openai-responses":`/v1/responses`};function at(e){return it[e.api_type]}function ot(e){return e.endpoints&&e.endpoints.length>0?e.endpoints.map(e=>({api_type:e.api_type,base_url:e.base_url,api_key:e.api_key})):[{api_type:e.api_type,base_url:e.base_url,api_key:e.api_key}]}function st(e){let t=at(e)??`/v1/chat/completions`;try{let n=new URL(e.base_url),r=n.pathname.replace(/\/+$/,``),i=t.replace(/\/+$/,``);return r.endsWith(i)?`${n.origin}${r}`:`${n.origin}${r}${t}`}catch(n){return console.error(`Providers.normalizeUrl:`,n),`${e.base_url.replace(/\/+$/,``)}${t}`}}async function ct(){if(j())try{let e=ae();e.name=o.value.name.trim();let n=E.value;E.value?await t.updateProvider(E.value,e):(e.api_key=o.value.api_key,n=(await t.createProvider(e)).id),await N(n),w.value=!1,await ze()}catch(e){console.error(`Failed to save provider:`,e),F.error(b(e,a(`providers.toast.saveFailed`)))}}return v(async()=>{try{let e=await t.getProvidersInit();q.value=e.providers,ve.value=e.recommended}catch(e){console.error(`Providers.init:`,e),F.error(b(e,a(`providers.toast.loadFailed`)))}}),(t,i)=>(O(),C(`div`,Mn,[e(`div`,Nn,[e(`div`,Pn,[e(`h2`,Fn,c(T(a)(`providers.title`)),1),e(`div`,In,[h(T(S),{variant:`outline`,size:`sm`,onClick:T(We),disabled:T(J)},{default:x(()=>[h(T(Me),{class:p([`w-4 h-4 mr-1`,{"animate-spin":T(J)}])},null,8,[`class`]),y(` `+c(T(a)(`providers.reloadPlugin`)),1)]),_:1},8,[`onClick`,`disabled`])])]),T(q).length>0?(O(),C(`div`,Ln,[e(`div`,Rn,[e(`span`,zn,c(T(a)(`providers.anchor.total`)),1),e(`span`,Bn,c(T(q).length),1)]),e(`div`,{class:p([`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0 cursor-pointer transition-colors hover:bg-foreground/[0.02]`,{"bg-primary/5 shadow-[inset_0_2px_0_var(--primary)]":$.value===`enabled`}]),onClick:i[0]||=e=>Ye(`enabled`)},[e(`span`,Vn,c(T(a)(`providers.anchor.enabled`)),1),e(`span`,Hn,c(Ze.value),1)],2),e(`div`,{class:p([`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0 cursor-pointer transition-colors hover:bg-foreground/[0.02]`,{"bg-muted":$.value===`disabled`}]),onClick:i[1]||=e=>Ye(`disabled`)},[e(`span`,Un,c(T(a)(`providers.anchor.disabled`)),1),e(`span`,Wn,c(Qe.value),1)],2),e(`div`,Gn,[e(`span`,Kn,c(T(a)(`providers.anchor.models`)),1),e(`span`,qn,c($e.value),1)])])):D(``,!0)]),e(`div`,Jn,[e(`div`,Yn,[h(T(A),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground`}),h(T(V),{modelValue:Z.value,"onUpdate:modelValue":i[2]||=e=>Z.value=e,placeholder:T(a)(`providers.filter.searchPlaceholder`),class:`pl-8 h-8 text-[13px]`},null,8,[`modelValue`,`placeholder`])]),h(T(z),{modelValue:Q.value,"onUpdate:modelValue":[i[3]||=e=>Q.value=e,Xe]},{default:x(()=>[h(T(L),{class:`w-28 h-8 text-[13px]`},{default:x(()=>[h(T(R),{placeholder:T(a)(`providers.filter.status`)},null,8,[`placeholder`])]),_:1}),h(T(P),null,{default:x(()=>[h(T(I),{value:`all`},{default:x(()=>[y(c(T(a)(`providers.filter.all`)),1)]),_:1}),h(T(I),{value:`enabled`},{default:x(()=>[y(c(T(a)(`providers.filter.enabled`)),1)]),_:1}),h(T(I),{value:`disabled`},{default:x(()=>[y(c(T(a)(`providers.filter.disabled`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`]),e(`span`,Xn,c(et.value.length)+` `+c(T(a)(`providers.filter.count`)),1),i[14]||=e(`div`,{class:`flex-1`},null,-1),h(T(S),{onClick:T(oe),class:`flex items-center gap-1.5 h-8`},{default:x(()=>[i[13]||=e(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),y(` `+c(T(a)(`providers.addProvider`)),1)]),_:1},8,[`onClick`])]),T(q).length>0?(O(),_(T(we),{key:0,flush:``,class:`border-input`},{default:x(()=>[h(T(Ee),{class:`[&_td]:px-4 [&_th]:px-4`},{default:x(()=>[h(T(Oe),null,{default:x(()=>[h(T(De),{class:`bg-muted/50 border-b border-input hover:bg-muted/50`},{default:x(()=>[h(T(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:x(()=>[y(c(T(a)(`providers.tableHeaders.name`)),1)]),_:1}),h(T(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:x(()=>[y(c(T(a)(`providers.tableHeaders.apiKey`)),1)]),_:1}),h(T(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:x(()=>[y(c(T(a)(`providers.tableHeaders.models`)),1)]),_:1}),h(T(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:x(()=>[y(c(T(a)(`providers.tableHeaders.concurrency`)),1)]),_:1}),h(T(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:x(()=>[y(c(T(a)(`providers.tableHeaders.status`)),1)]),_:1}),h(T(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:x(()=>[y(c(T(a)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),h(T(Te),null,{default:x(()=>[(O(!0),C(d,null,g(et.value,t=>(O(),_(T(De),{key:t.id,class:p([`border-b border-input`,{"opacity-55 hover:opacity-75":!t.is_active}])},{default:x(()=>[h(T(H),null,{default:x(()=>[e(`div`,Zn,[h(Gt,{name:nt(t.name),size:20},null,8,[`name`]),e(`div`,Qn,[e(`div`,$n,[e(`span`,er,c(t.name),1),(O(!0),C(d,null,g(ot(t),e=>(O(),_(T(B),{key:e.api_type,variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:x(()=>[y(c(T(on)[e.api_type]??e.api_type),1)]),_:2},1024))),128)),t.proxy_type?(O(),_(T(Ne),{key:0,class:`w-3 h-3 text-muted-foreground`,title:`Proxy: ${t.proxy_type.toUpperCase()}`},null,8,[`title`])):D(``,!0)]),e(`div`,null,[(O(!0),C(d,null,g(ot(t),(t,n)=>(O(),C(d,{key:t.api_type},[n>0?(O(),C(`div`,tr)):D(``,!0),e(`span`,nr,c(st(t)),1)],64))),128))])])])]),_:2},1024),h(T(H),null,{default:x(()=>[e(`div`,rr,[(O(!0),C(d,null,g(ot(t),(r,i)=>(O(),C(d,{key:r.api_type},[i>0?(O(),C(`div`,ir)):D(``,!0),e(`div`,ar,[r.api_key?(O(),C(`span`,or,c(T(Le)(r.api_key)),1)):(O(),C(`span`,sr,`shared`)),h(T(S),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:e=>T(Re)(r.api_key||t.api_key,`${t.id}-${r.api_type}`)},{default:x(()=>[(O(),_(n(T(Fe)===`${t.id}-${r.api_type}`?T(Ce):T(ge)),{class:p([`w-3 h-3`,{"text-success":T(Fe)===`${t.id}-${r.api_type}`}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])],64))),128))])]),_:2},1024),h(T(H),null,{default:x(()=>[e(`div`,cr,[e(`span`,lr,c(t.models?.length??0),1),i[15]||=e(`span`,{class:`text-xs text-muted-foreground`},`models`,-1),rt(t)?(O(),_(T(B),{key:0,variant:`outline`,class:`text-[10px] px-1 py-0 gap-0.5 text-primary/70 border-primary/20 h-4`},{default:x(()=>[h(T(te),{class:`w-2.5 h-2.5`})]),_:1})):D(``,!0)])]),_:2},1024),h(T(H),null,{default:x(()=>[e(`div`,ur,[t.adaptive_enabled?(O(),_(T(B),{key:0,variant:`outline`,class:`text-[11px] h-5`},{default:x(()=>[y(c(T(a)(`common.adaptive`)),1)]),_:1})):t.max_concurrency>0?(O(),_(T(B),{key:1,variant:`secondary`,class:`text-[11px] h-5 font-mono`},{default:x(()=>[y(c(t.max_concurrency),1)]),_:2},1024)):(O(),C(`span`,dr,`-`))])]),_:2},1024),h(T(H),null,{default:x(()=>[e(`div`,fr,[h(T(fe),{"model-value":!!t.is_active,"onUpdate:modelValue":e=>T(Ve)(t)},null,8,[`model-value`,`onUpdate:modelValue`]),e(`span`,{class:p([`text-xs`,t.is_active?`text-foreground`:`text-muted-foreground`])},c(t.is_active?T(a)(`common.enabled`):T(a)(`common.disabled`)),3)])]),_:2},1024),h(T(H),null,{default:x(()=>[e(`div`,pr,[h(T(S),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-primary`,onClick:e=>T(M)(t)},{default:x(()=>[y(c(T(a)(`common.edit`)),1)]),_:1},8,[`onClick`]),h(T(S),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-destructive`,onClick:e=>T(Be)(t)},{default:x(()=>[y(c(T(a)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1})):D(``,!0),T(q).length===0&&!T(J)?(O(),C(`div`,mr,[i[17]||=e(`div`,{class:`w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4`},[e(`svg`,{class:`w-6 h-6 text-primary`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[e(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),e(`path`,{d:`M12 8v8M8 12h8`})])],-1),e(`h3`,hr,c(T(a)(`providers.empty.title`)),1),e(`p`,gr,c(T(a)(`providers.empty.description`)),1),h(T(S),{onClick:T(oe),class:`flex items-center gap-1.5`},{default:x(()=>[i[16]||=e(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[e(`path`,{d:`M12 4v16m8-8H4`})],-1),y(` `+c(T(a)(`providers.empty.addFirst`)),1)]),_:1},8,[`onClick`])])):D(``,!0),T(q).length>0&&et.value.length===0?(O(),C(`div`,_r,[e(`p`,vr,c(T(a)(`providers.filter.noResults`)),1)])):D(``,!0),h(T(le),{open:T(w),"onUpdate:open":i[10]||=e=>r(w)?w.value=e:null},{default:x(()=>[h(T(se),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:x(()=>[h(T(ce),null,{default:x(()=>[h(T(de),null,{default:x(()=>[y(c(T(E)?T(a)(`providers.editProvider`):T(a)(`providers.addProvider`)),1)]),_:1})]),_:1}),e(`form`,{onSubmit:f(ct,[`prevent`])},[T(E)?D(``,!0):(O(),C(`div`,yr,[e(`div`,br,c(T(a)(`providers.template.title`)),1),e(`div`,xr,[h(T(z),{modelValue:T(W),"onUpdate:modelValue":[i[4]||=e=>r(W)?W.value=e:null,T(Ae)]},{default:x(()=>[h(T(L),{class:`flex-1 h-8 text-[13px]`},{default:x(()=>[h(T(R),{placeholder:T(a)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),h(T(P),null,{default:x(()=>[h(T(I),{value:`__custom__`},{default:x(()=>[y(c(T(a)(`providers.template.custom`)),1)]),_:1}),(O(!0),C(d,null,g(T(ve),e=>(O(),_(T(I),{key:e.group,value:e.group},{default:x(()=>[y(c(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),T(W)===`__custom__`?D(``,!0):(O(),_(T(z),{key:0,modelValue:T(G),"onUpdate:modelValue":[i[5]||=e=>r(G)?G.value=e:null,T(K)],disabled:!T(W)||T(W)===`__custom__`},{default:x(()=>[h(T(L),{class:`flex-1 h-8 text-[13px]`},{default:x(()=>[h(T(R),{placeholder:T(a)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),h(T(P),null,{default:x(()=>[(O(!0),C(d,null,g(T(ke),e=>(O(),_(T(I),{key:e.plan,value:e.plan},{default:x(()=>[y(c(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`disabled`]))])])),T(W)||T(E)?(O(),_(En,{key:1,modelValue:Je.value,"onUpdate:modelValue":i[6]||=e=>Je.value=e,"editing-id":T(E),errors:T(l),"fetching-models":T(Ge),"has-models-endpoint":!!T(je)(),"preset-group":T(W),"has-api-key":!!T(o).api_key,endpoints:T(o).endpoints,"shared-key":T(o).api_key,onClearErrors:i[7]||=e=>delete T(l)[e],onFetchUpstreamModels:T(Ke),"onUpdate:endpoints":i[8]||=e=>T(o).endpoints=e},null,8,[`modelValue`,`editing-id`,`errors`,`fetching-models`,`has-models-endpoint`,`preset-group`,`has-api-key`,`endpoints`,`shared-key`,`onFetchUpstreamModels`])):D(``,!0),h(T(ue),null,{default:x(()=>[h(T(S),{type:`button`,variant:`outline`,onClick:i[9]||=e=>w.value=!1},{default:x(()=>[y(c(T(a)(`common.cancel`)),1)]),_:1}),h(T(S),{type:`submit`},{default:x(()=>[y(c(T(a)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),h(T(be),{open:!!T(Y),"onUpdate:open":i[11]||=e=>{e||(Y.value=null)}},{default:x(()=>[h(T(Se),null,{default:x(()=>[h(T(xe),null,{default:x(()=>[h(T(ye),null,{default:x(()=>[y(c(T(a)(`providers.confirmDelete.title`)),1)]),_:1}),h(T(_e),null,{default:x(()=>[y(c(T(a)(`providers.confirmDelete.message`,{name:T(Y)?.name})),1)]),_:1})]),_:1}),h(T(pe),null,{default:x(()=>[h(T(me),null,{default:x(()=>[y(c(T(a)(`common.cancel`)),1)]),_:1}),h(T(S),{variant:`destructive`,onClick:T(Ue)},{default:x(()=>[y(c(T(a)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),h(T(be),{open:!!T(X),"onUpdate:open":i[12]||=e=>{e||(X.value=null)}},{default:x(()=>[h(T(Se),null,{default:x(()=>[h(T(xe),null,{default:x(()=>[h(T(ye),null,{default:x(()=>[y(c(T(X)?.is_active?T(a)(`providers.confirmToggle.titleDisable`):T(a)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),h(T(_e),null,{default:x(()=>[y(c(T(X)?.is_active?T(a)(`providers.confirmToggle.messageDisable`,{name:T(X)?.name}):T(a)(`providers.confirmToggle.messageEnable`,{name:T(X)?.name}))+` `,1),T(Ie).length?(O(),C(`div`,Sr,[e(`div`,Cr,c(T(a)(`providers.confirmToggle.dependencyWarning`)),1),(O(!0),C(d,null,g(T(Ie),e=>(O(),C(`div`,{key:e,class:`text-destructive text-sm`},c(e),1))),128))])):D(``,!0)]),_:1})]),_:1}),h(T(pe),null,{default:x(()=>[h(T(me),null,{default:x(()=>[y(c(T(a)(`common.cancel`)),1)]),_:1}),h(T(he),{onClick:T(He)},{default:x(()=>[y(c(T(a)(`common.confirm`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{wr as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,A as t,Q as n,Qt as r,R as i,U as a,X as o,Yt as ee,at as s,bt as te,et as c,gt as l,it as u,j as d,jt as f,n as p,nt as m,ot as h,qt as g,tt as _,vt as v,zt as y}from"./button-BpR9_1Oi.js";import{t as ne}from"./chevron-right-FHv79ln6.js";import{t as re}from"./plus-DB2feA5n.js";import{t as ie}from"./trash-2-CXuZGldZ.js";import{n as ae,t as oe}from"./CollapsibleContent-DeUSycQ8.js";import{t as se}from"./CollapsibleTrigger-CYmevmHY.js";import{t as b}from"./Switch-D7Sl8Nyv.js";import{a as x,et as ce,nt as le,ot as ue,pt as S,st as C}from"./index-DDIPrwyW.js";import{t as w}from"./Skeleton-SorMdxL7.js";import{t as T}from"./badge-CDqa9Glr.js";import{t as E}from"./Input-CiK38Phu.js";import{t as D}from"./Card-BdgLihoh.js";import{t as O}from"./CardContent-CLEGUV0w.js";import{t as de}from"./CascadingModelSelect-BL4feC-w.js";import{t as fe}from"./useProviderGroups-D2jWO27u.js";var k=i(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),A={class:`flex items-center justify-between py-4 first:pt-0 last:pb-0`},j={class:`flex-1 mr-4`},M={class:`text-sm font-medium`},N={class:`text-xs text-muted-foreground mt-0.5`},P=h({__name:`ToggleRow`,props:{title:{},description:{},modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(t){return(n,i)=>(v(),m(`div`,A,[e(`div`,j,[e(`div`,M,r(t.title),1),e(`div`,N,r(t.description),1)]),s(g(b),{"model-value":t.modelValue,"onUpdate:modelValue":i[0]||=e=>n.$emit(`update:modelValue`,e)},null,8,[`model-value`])]))}}),F={class:`page pb-16 max-w-[1000px]`},I={class:`mb-6`},L={class:`text-base font-semibold text-foreground`},R={class:`text-sm text-muted-foreground mt-1`},z={key:0,class:`space-y-4`},B={class:`space-y-2`},V={class:`space-y-2`},pe={class:`space-y-2`},me={key:2,class:`space-y-6`},he={class:`text-sm font-medium text-muted-foreground mb-3`},ge={class:`text-sm font-medium text-muted-foreground mb-3`},_e={class:`text-sm font-medium text-muted-foreground mb-3`},ve={class:`w-40 shrink-0`},ye={class:`pt-3`},be={class:`text-sm font-medium text-muted-foreground mb-3`},xe={class:`space-y-4`},Se={class:`flex items-center justify-between py-1`},Ce={class:`flex-1 mr-4`},we={class:`text-sm font-medium`},H={class:`text-xs text-muted-foreground mt-0.5`},Te={class:`mt-2`},Ee={class:`mt-2 space-y-1 text-xs text-muted-foreground pl-4`},De={class:`whitespace-pre-line`},Oe={class:`whitespace-pre-line`},ke={class:`text-sm font-medium`},Ae={class:`text-xs text-muted-foreground mt-0.5`},je={class:`text-sm font-medium text-muted-foreground mb-3`},Me={class:`space-y-4`},Ne={class:`flex items-start gap-3 mb-3`},Pe={class:`text-sm font-medium`},Fe={class:`text-xs text-muted-foreground mt-0.5`},Ie={class:`text-sm font-medium`},Le={class:`text-xs text-muted-foreground mt-0.5`},Re={key:3,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`},ze={key:0,class:`text-sm text-warning`},Be={key:1},Ve={class:`flex gap-3`},U=h({__name:`ProxyEnhancement`,setup(i){let{t:h}=a(),A=y(!0),j=y(``),M=y(!1),N=y(!1),U=y(!1),W=y(!1),G=y(!1),K=y(!1),q=y(!1),J=y([]),Y=y(void 0),X=y([]),Z=null;function Q(){return{toolRoundLimit:N.value,toolCallLoop:U.value,streamLoop:W.value,toolErrorLogging:G.value,tokenEstimation:K.value,aiRetryConfig:Y.value?{...Y.value}:void 0,headers:J.value.map(e=>({client_type:e.client_type,session_header_key:e.session_header_key,persisted:e.persisted}))}}function He(e,t){return e.toolRoundLimit!==t.toolRoundLimit||e.toolCallLoop!==t.toolCallLoop||e.streamLoop!==t.streamLoop||e.toolErrorLogging!==t.toolErrorLogging||e.tokenEstimation!==t.tokenEstimation||(e.aiRetryConfig||t.aiRetryConfig)&&(!e.aiRetryConfig||!t.aiRetryConfig||e.aiRetryConfig.provider_id!==t.aiRetryConfig.provider_id||e.aiRetryConfig.model!==t.aiRetryConfig.model)||e.headers.length!==t.headers.length?!1:e.headers.every((e,n)=>e.client_type===t.headers[n].client_type&&e.session_header_key===t.headers[n].session_header_key)}let $=n(()=>Z?!He(Z,Q()):!1);async function Ue(){try{let e=await t.getProxyEnhancementInit(),n=e.config;N.value=n.tool_round_limit_enabled,U.value=n.tool_call_loop_enabled,W.value=n.stream_loop_enabled,G.value=n.tool_error_logging_enabled,Y.value=n.ai_retry_config??void 0,X.value=fe(e.providers,{activeOnly:!0,defaultContextWindow:128e3});let[r,i]=await Promise.allSettled([le(),ce()]);r.status===`fulfilled`&&(K.value=r.value.enabled),i.status===`fulfilled`&&(J.value=i.value.entries.map(e=>({...e,persisted:!0}))),Z=Q()}catch(e){console.error(`proxyEnhancement.loadInit:`,e),j.value=d(e,h(`proxyEnhancement.loadFailed`))}finally{A.value=!1}}function We(e){Y.value=e}function Ge(){J.value.push({client_type:``,session_header_key:``,persisted:!1})}function Ke(e){J.value.splice(e,1)}function qe(){Z&&(N.value=Z.toolRoundLimit,U.value=Z.toolCallLoop,W.value=Z.streamLoop,G.value=Z.toolErrorLogging,K.value=Z.tokenEstimation,Y.value=Z.aiRetryConfig?{...Z.aiRetryConfig}:void 0,J.value=Z.headers.map(e=>({...e})))}async function Je(){M.value=!0;try{let e=J.value.filter(e=>e.client_type.trim()&&e.session_header_key.trim()).map(e=>({client_type:e.client_type.trim(),session_header_key:e.session_header_key.trim()})),n=(await Promise.allSettled([t.updateProxyEnhancement({tool_call_loop_enabled:U.value,stream_loop_enabled:W.value,tool_round_limit_enabled:N.value,tool_error_logging_enabled:G.value,ai_retry_config:Y.value??null}),C(K.value),ue(e)])).filter(e=>e.status===`rejected`);if(n.length>0){let e=n.map(e=>e.status===`rejected`?e.reason instanceof Error?e.reason.message:typeof e.reason==`string`?e.reason:JSON.stringify(e.reason):``).filter(Boolean).join(`; `);x.error(h(`proxyEnhancement.saveFailed`)+`: `+e);return}for(let e of J.value)e.client_type.trim()&&e.session_header_key.trim()&&(e.persisted=!0);x.success(h(`common.saveSuccess`)),Z=Q()}catch(e){console.error(`proxyEnhancement.handleSave:`,e),x.error(d(e,h(`proxyEnhancement.saveFailed`)))}finally{M.value=!1}}return l(Ue),(t,n)=>(v(),m(`div`,F,[e(`div`,I,[e(`h2`,L,r(g(h)(`proxyEnhancement.title`)),1),e(`p`,R,r(g(h)(`proxyEnhancement.subtitle`)),1)]),A.value?(v(),m(`div`,z,[e(`div`,B,[s(g(w),{class:`h-4 w-24`}),s(g(w),{class:`h-28 w-full rounded-lg`})]),s(g(w),{class:`h-20 w-full rounded-lg`}),e(`div`,V,[s(g(w),{class:`h-4 w-20`}),s(g(w),{class:`h-28 w-full rounded-lg`})]),e(`div`,pe,[s(g(w),{class:`h-4 w-20`}),s(g(w),{class:`h-36 w-full rounded-lg`})])])):j.value?(v(),c(g(D),{key:1},{default:f(()=>[s(g(O),{class:`py-8 text-center text-sm text-muted-foreground`},{default:f(()=>[u(r(j.value),1)]),_:1})]),_:1})):(v(),m(`div`,me,[e(`section`,null,[e(`h3`,he,r(g(h)(`proxyEnhancement.sections.loopDetection`)),1),s(g(D),null,{default:f(()=>[s(g(O),{class:`divide-y divide-border`},{default:f(()=>[s(P,{title:g(h)(`proxyEnhancement.loopDetection.toolRoundLimit.title`),description:g(h)(`proxyEnhancement.loopDetection.toolRoundLimit.description`),modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e},null,8,[`title`,`description`,`modelValue`]),s(P,{title:g(h)(`proxyEnhancement.loopDetection.toolCallLoop.title`),description:g(h)(`proxyEnhancement.loopDetection.toolCallLoop.description`),modelValue:U.value,"onUpdate:modelValue":n[1]||=e=>U.value=e},null,8,[`title`,`description`,`modelValue`]),s(P,{title:g(h)(`proxyEnhancement.loopDetection.streamLoop.title`),description:g(h)(`proxyEnhancement.loopDetection.streamLoop.description`),modelValue:W.value,"onUpdate:modelValue":n[2]||=e=>W.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,ge,r(g(h)(`proxyEnhancement.sections.errorHandling`)),1),s(g(D),null,{default:f(()=>[s(g(O),null,{default:f(()=>[s(P,{title:g(h)(`proxyEnhancement.toolErrorLogging.title`),description:g(h)(`proxyEnhancement.toolErrorLogging.description`),modelValue:G.value,"onUpdate:modelValue":n[3]||=e=>G.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,_e,r(g(h)(`proxyEnhancement.sections.clientIdentification`)),1),s(g(D),null,{default:f(()=>[s(g(O),{class:`divide-y divide-border`},{default:f(()=>[(v(!0),m(o,null,te(J.value,(t,n)=>(v(),m(`div`,{key:n,class:`flex items-center gap-3 py-3 first:pt-0 last:pb-0`},[e(`div`,ve,[t.persisted?(v(),c(g(E),{key:0,"model-value":t.client_type,disabled:``,class:`h-8 text-xs font-mono`},null,8,[`model-value`])):(v(),c(g(E),{key:1,modelValue:t.client_type,"onUpdate:modelValue":e=>t.client_type=e,placeholder:g(h)(`proxyEnhancement.clientIdentification.placeholder.type`),class:`h-8 text-xs`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),s(g(E),{modelValue:t.session_header_key,"onUpdate:modelValue":e=>t.session_header_key=e,placeholder:g(h)(`proxyEnhancement.clientIdentification.placeholder.header`),class:`h-8 text-xs flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),s(g(p),{variant:`ghost`,size:`icon`,class:`h-8 w-8 shrink-0`,disabled:J.value.length<=1,onClick:e=>Ke(n)},{default:f(()=>[s(g(ie),{class:`w-4 h-4`})]),_:1},8,[`disabled`,`onClick`])]))),128)),e(`div`,ye,[s(g(p),{variant:`outline`,class:`w-full h-8 border-dashed border-muted-foreground/30 hover:border-primary/50 hover:bg-primary/5 text-xs`,onClick:Ge},{default:f(()=>[s(g(re),{class:`w-3.5 h-3.5 mr-1.5`}),u(` `+r(g(h)(`proxyEnhancement.clientIdentification.addEntry`)),1)]),_:1})])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,be,r(g(h)(`proxyEnhancement.sections.tokenManagement`)),1),e(`div`,xe,[s(g(D),null,{default:f(()=>[s(g(O),null,{default:f(()=>[e(`div`,Se,[e(`div`,Ce,[e(`div`,we,r(g(h)(`proxyEnhancement.tokenEstimation.title`)),1),e(`div`,H,r(g(h)(`proxyEnhancement.tokenEstimation.shortDescription`)),1)]),s(g(b),{modelValue:K.value,"onUpdate:modelValue":n[4]||=e=>K.value=e},null,8,[`modelValue`])]),e(`div`,Te,[s(g(ae),{open:q.value,"onUpdate:open":n[5]||=e=>q.value=e},{default:f(()=>[s(g(se),{class:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors`},{default:f(()=>[s(g(ne),{class:ee([`w-3 h-3 transition-transform`,q.value?`rotate-90`:``])},null,8,[`class`]),u(` `+r(g(h)(`proxyEnhancement.tokenEstimation.setupTitle`)),1)]),_:1}),s(g(oe),null,{default:f(()=>[e(`div`,Ee,[e(`p`,null,r(g(h)(`proxyEnhancement.tokenEstimation.claudeCode`)),1),e(`p`,De,r(g(h)(`proxyEnhancement.tokenEstimation.piExtension`)),1),e(`p`,Oe,r(g(h)(`proxyEnhancement.tokenEstimation.piModelsJson`)),1)])]),_:1})]),_:1},8,[`open`])])]),_:1})]),_:1}),s(g(D),null,{default:f(()=>[s(g(O),{class:`flex items-start gap-3 py-4`},{default:f(()=>[s(g(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:f(()=>[u(r(g(h)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),e(`div`,null,[e(`div`,ke,r(g(h)(`proxyEnhancement.contextOverflow.title`)),1),e(`div`,Ae,r(g(h)(`proxyEnhancement.contextOverflow.description`)),1)])]),_:1})]),_:1})])]),e(`section`,null,[e(`h3`,je,r(g(h)(`proxyEnhancement.sections.aiFeatures`)),1),e(`div`,Me,[s(g(D),null,{default:f(()=>[s(g(O),{class:`py-4`},{default:f(()=>[e(`div`,Ne,[s(g(k),{class:`w-4 h-4 mt-0.5 shrink-0 text-muted-foreground`}),e(`div`,null,[e(`div`,Pe,r(g(h)(`proxyEnhancement.aiRetryRuleGen`)),1),e(`div`,Fe,r(g(h)(`proxyEnhancement.aiRetryRuleGenDesc`)),1)])]),s(de,{providers:X.value,"model-value":Y.value,"onUpdate:modelValue":We},null,8,[`providers`,`model-value`])]),_:1})]),_:1}),s(g(D),null,{default:f(()=>[s(g(O),{class:`flex items-start gap-3 py-4`},{default:f(()=>[s(g(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:f(()=>[u(r(g(h)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),e(`div`,null,[e(`div`,Ie,r(g(h)(`proxyEnhancement.sessionState.title`)),1),e(`div`,Le,r(g(h)(`proxyEnhancement.sessionState.description`)),1)])]),_:1})]),_:1})])])])),!A.value&&!j.value?(v(),m(`div`,Re,[$.value?(v(),m(`span`,ze,r(g(h)(`proxyEnhancement.unsavedChanges`)),1)):(v(),m(`span`,Be)),e(`div`,Ve,[$.value?(v(),c(g(p),{key:0,variant:`outline`,onClick:qe},{default:f(()=>[u(r(g(h)(`common.cancel`)),1)]),_:1})):_(``,!0),s(g(p),{disabled:M.value||!$.value,onClick:Je},{default:f(()=>[M.value?(v(),c(g(S),{key:0,class:`w-4 h-4 animate-spin mr-1`})):_(``,!0),u(` `+r(M.value?g(h)(`common.saving`):g(h)(`common.save`)),1)]),_:1},8,[`disabled`])])])):_(``,!0)]))}});export{U as default};
|
|
1
|
+
import{$ as e,A as t,Q as n,Qt as r,R as i,U as a,X as o,Yt as ee,at as s,bt as te,et as c,gt as l,it as u,j as d,jt as f,n as p,nt as m,ot as h,qt as g,tt as _,vt as v,zt as y}from"./button-BcmABzob.js";import{t as ne}from"./chevron-right-Bf3Fdg6M.js";import{t as re}from"./plus-COwF_5ra.js";import{t as ie}from"./trash-2-4HdxTT6S.js";import{n as ae,t as oe}from"./CollapsibleContent-CsQhKwq1.js";import{t as se}from"./CollapsibleTrigger-x1DJz63o.js";import{t as b}from"./Switch-C9A1URA9.js";import{a as x,et as ce,nt as le,ot as ue,pt as S,st as C}from"./index-CpvOTf7s.js";import{t as w}from"./Skeleton-BwwGudhK.js";import{t as T}from"./badge-_5ZpB7R1.js";import{t as E}from"./Input-4bkkJSKj.js";import{t as D}from"./Card-BAJ7K-oq.js";import{t as O}from"./CardContent-D4ma-cic.js";import{t as de}from"./CascadingModelSelect-D1iTboYP.js";import{t as fe}from"./useProviderGroups-Z3iRaBYM.js";var k=i(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),A={class:`flex items-center justify-between py-4 first:pt-0 last:pb-0`},j={class:`flex-1 mr-4`},M={class:`text-sm font-medium`},N={class:`text-xs text-muted-foreground mt-0.5`},P=h({__name:`ToggleRow`,props:{title:{},description:{},modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(t){return(n,i)=>(v(),m(`div`,A,[e(`div`,j,[e(`div`,M,r(t.title),1),e(`div`,N,r(t.description),1)]),s(g(b),{"model-value":t.modelValue,"onUpdate:modelValue":i[0]||=e=>n.$emit(`update:modelValue`,e)},null,8,[`model-value`])]))}}),F={class:`page pb-16 max-w-[1000px]`},I={class:`mb-6`},L={class:`text-base font-semibold text-foreground`},R={class:`text-sm text-muted-foreground mt-1`},z={key:0,class:`space-y-4`},B={class:`space-y-2`},V={class:`space-y-2`},pe={class:`space-y-2`},me={key:2,class:`space-y-6`},he={class:`text-sm font-medium text-muted-foreground mb-3`},ge={class:`text-sm font-medium text-muted-foreground mb-3`},_e={class:`text-sm font-medium text-muted-foreground mb-3`},ve={class:`w-40 shrink-0`},ye={class:`pt-3`},be={class:`text-sm font-medium text-muted-foreground mb-3`},xe={class:`space-y-4`},Se={class:`flex items-center justify-between py-1`},Ce={class:`flex-1 mr-4`},we={class:`text-sm font-medium`},H={class:`text-xs text-muted-foreground mt-0.5`},Te={class:`mt-2`},Ee={class:`mt-2 space-y-1 text-xs text-muted-foreground pl-4`},De={class:`whitespace-pre-line`},Oe={class:`whitespace-pre-line`},ke={class:`text-sm font-medium`},Ae={class:`text-xs text-muted-foreground mt-0.5`},je={class:`text-sm font-medium text-muted-foreground mb-3`},Me={class:`space-y-4`},Ne={class:`flex items-start gap-3 mb-3`},Pe={class:`text-sm font-medium`},Fe={class:`text-xs text-muted-foreground mt-0.5`},Ie={class:`text-sm font-medium`},Le={class:`text-xs text-muted-foreground mt-0.5`},Re={key:3,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`},ze={key:0,class:`text-sm text-warning`},Be={key:1},Ve={class:`flex gap-3`},U=h({__name:`ProxyEnhancement`,setup(i){let{t:h}=a(),A=y(!0),j=y(``),M=y(!1),N=y(!1),U=y(!1),W=y(!1),G=y(!1),K=y(!1),q=y(!1),J=y([]),Y=y(void 0),X=y([]),Z=null;function Q(){return{toolRoundLimit:N.value,toolCallLoop:U.value,streamLoop:W.value,toolErrorLogging:G.value,tokenEstimation:K.value,aiRetryConfig:Y.value?{...Y.value}:void 0,headers:J.value.map(e=>({client_type:e.client_type,session_header_key:e.session_header_key,persisted:e.persisted}))}}function He(e,t){return e.toolRoundLimit!==t.toolRoundLimit||e.toolCallLoop!==t.toolCallLoop||e.streamLoop!==t.streamLoop||e.toolErrorLogging!==t.toolErrorLogging||e.tokenEstimation!==t.tokenEstimation||(e.aiRetryConfig||t.aiRetryConfig)&&(!e.aiRetryConfig||!t.aiRetryConfig||e.aiRetryConfig.provider_id!==t.aiRetryConfig.provider_id||e.aiRetryConfig.model!==t.aiRetryConfig.model)||e.headers.length!==t.headers.length?!1:e.headers.every((e,n)=>e.client_type===t.headers[n].client_type&&e.session_header_key===t.headers[n].session_header_key)}let $=n(()=>Z?!He(Z,Q()):!1);async function Ue(){try{let e=await t.getProxyEnhancementInit(),n=e.config;N.value=n.tool_round_limit_enabled,U.value=n.tool_call_loop_enabled,W.value=n.stream_loop_enabled,G.value=n.tool_error_logging_enabled,Y.value=n.ai_retry_config??void 0,X.value=fe(e.providers,{activeOnly:!0,defaultContextWindow:128e3});let[r,i]=await Promise.allSettled([le(),ce()]);r.status===`fulfilled`&&(K.value=r.value.enabled),i.status===`fulfilled`&&(J.value=i.value.entries.map(e=>({...e,persisted:!0}))),Z=Q()}catch(e){console.error(`proxyEnhancement.loadInit:`,e),j.value=d(e,h(`proxyEnhancement.loadFailed`))}finally{A.value=!1}}function We(e){Y.value=e}function Ge(){J.value.push({client_type:``,session_header_key:``,persisted:!1})}function Ke(e){J.value.splice(e,1)}function qe(){Z&&(N.value=Z.toolRoundLimit,U.value=Z.toolCallLoop,W.value=Z.streamLoop,G.value=Z.toolErrorLogging,K.value=Z.tokenEstimation,Y.value=Z.aiRetryConfig?{...Z.aiRetryConfig}:void 0,J.value=Z.headers.map(e=>({...e})))}async function Je(){M.value=!0;try{let e=J.value.filter(e=>e.client_type.trim()&&e.session_header_key.trim()).map(e=>({client_type:e.client_type.trim(),session_header_key:e.session_header_key.trim()})),n=(await Promise.allSettled([t.updateProxyEnhancement({tool_call_loop_enabled:U.value,stream_loop_enabled:W.value,tool_round_limit_enabled:N.value,tool_error_logging_enabled:G.value,ai_retry_config:Y.value??null}),C(K.value),ue(e)])).filter(e=>e.status===`rejected`);if(n.length>0){let e=n.map(e=>e.status===`rejected`?e.reason instanceof Error?e.reason.message:typeof e.reason==`string`?e.reason:JSON.stringify(e.reason):``).filter(Boolean).join(`; `);x.error(h(`proxyEnhancement.saveFailed`)+`: `+e);return}for(let e of J.value)e.client_type.trim()&&e.session_header_key.trim()&&(e.persisted=!0);x.success(h(`common.saveSuccess`)),Z=Q()}catch(e){console.error(`proxyEnhancement.handleSave:`,e),x.error(d(e,h(`proxyEnhancement.saveFailed`)))}finally{M.value=!1}}return l(Ue),(t,n)=>(v(),m(`div`,F,[e(`div`,I,[e(`h2`,L,r(g(h)(`proxyEnhancement.title`)),1),e(`p`,R,r(g(h)(`proxyEnhancement.subtitle`)),1)]),A.value?(v(),m(`div`,z,[e(`div`,B,[s(g(w),{class:`h-4 w-24`}),s(g(w),{class:`h-28 w-full rounded-lg`})]),s(g(w),{class:`h-20 w-full rounded-lg`}),e(`div`,V,[s(g(w),{class:`h-4 w-20`}),s(g(w),{class:`h-28 w-full rounded-lg`})]),e(`div`,pe,[s(g(w),{class:`h-4 w-20`}),s(g(w),{class:`h-36 w-full rounded-lg`})])])):j.value?(v(),c(g(D),{key:1},{default:f(()=>[s(g(O),{class:`py-8 text-center text-sm text-muted-foreground`},{default:f(()=>[u(r(j.value),1)]),_:1})]),_:1})):(v(),m(`div`,me,[e(`section`,null,[e(`h3`,he,r(g(h)(`proxyEnhancement.sections.loopDetection`)),1),s(g(D),null,{default:f(()=>[s(g(O),{class:`divide-y divide-border`},{default:f(()=>[s(P,{title:g(h)(`proxyEnhancement.loopDetection.toolRoundLimit.title`),description:g(h)(`proxyEnhancement.loopDetection.toolRoundLimit.description`),modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e},null,8,[`title`,`description`,`modelValue`]),s(P,{title:g(h)(`proxyEnhancement.loopDetection.toolCallLoop.title`),description:g(h)(`proxyEnhancement.loopDetection.toolCallLoop.description`),modelValue:U.value,"onUpdate:modelValue":n[1]||=e=>U.value=e},null,8,[`title`,`description`,`modelValue`]),s(P,{title:g(h)(`proxyEnhancement.loopDetection.streamLoop.title`),description:g(h)(`proxyEnhancement.loopDetection.streamLoop.description`),modelValue:W.value,"onUpdate:modelValue":n[2]||=e=>W.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,ge,r(g(h)(`proxyEnhancement.sections.errorHandling`)),1),s(g(D),null,{default:f(()=>[s(g(O),null,{default:f(()=>[s(P,{title:g(h)(`proxyEnhancement.toolErrorLogging.title`),description:g(h)(`proxyEnhancement.toolErrorLogging.description`),modelValue:G.value,"onUpdate:modelValue":n[3]||=e=>G.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,_e,r(g(h)(`proxyEnhancement.sections.clientIdentification`)),1),s(g(D),null,{default:f(()=>[s(g(O),{class:`divide-y divide-border`},{default:f(()=>[(v(!0),m(o,null,te(J.value,(t,n)=>(v(),m(`div`,{key:n,class:`flex items-center gap-3 py-3 first:pt-0 last:pb-0`},[e(`div`,ve,[t.persisted?(v(),c(g(E),{key:0,"model-value":t.client_type,disabled:``,class:`h-8 text-xs font-mono`},null,8,[`model-value`])):(v(),c(g(E),{key:1,modelValue:t.client_type,"onUpdate:modelValue":e=>t.client_type=e,placeholder:g(h)(`proxyEnhancement.clientIdentification.placeholder.type`),class:`h-8 text-xs`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),s(g(E),{modelValue:t.session_header_key,"onUpdate:modelValue":e=>t.session_header_key=e,placeholder:g(h)(`proxyEnhancement.clientIdentification.placeholder.header`),class:`h-8 text-xs flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),s(g(p),{variant:`ghost`,size:`icon`,class:`h-8 w-8 shrink-0`,disabled:J.value.length<=1,onClick:e=>Ke(n)},{default:f(()=>[s(g(ie),{class:`w-4 h-4`})]),_:1},8,[`disabled`,`onClick`])]))),128)),e(`div`,ye,[s(g(p),{variant:`outline`,class:`w-full h-8 border-dashed border-muted-foreground/30 hover:border-primary/50 hover:bg-primary/5 text-xs`,onClick:Ge},{default:f(()=>[s(g(re),{class:`w-3.5 h-3.5 mr-1.5`}),u(` `+r(g(h)(`proxyEnhancement.clientIdentification.addEntry`)),1)]),_:1})])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,be,r(g(h)(`proxyEnhancement.sections.tokenManagement`)),1),e(`div`,xe,[s(g(D),null,{default:f(()=>[s(g(O),null,{default:f(()=>[e(`div`,Se,[e(`div`,Ce,[e(`div`,we,r(g(h)(`proxyEnhancement.tokenEstimation.title`)),1),e(`div`,H,r(g(h)(`proxyEnhancement.tokenEstimation.shortDescription`)),1)]),s(g(b),{modelValue:K.value,"onUpdate:modelValue":n[4]||=e=>K.value=e},null,8,[`modelValue`])]),e(`div`,Te,[s(g(ae),{open:q.value,"onUpdate:open":n[5]||=e=>q.value=e},{default:f(()=>[s(g(se),{class:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors`},{default:f(()=>[s(g(ne),{class:ee([`w-3 h-3 transition-transform`,q.value?`rotate-90`:``])},null,8,[`class`]),u(` `+r(g(h)(`proxyEnhancement.tokenEstimation.setupTitle`)),1)]),_:1}),s(g(oe),null,{default:f(()=>[e(`div`,Ee,[e(`p`,null,r(g(h)(`proxyEnhancement.tokenEstimation.claudeCode`)),1),e(`p`,De,r(g(h)(`proxyEnhancement.tokenEstimation.piExtension`)),1),e(`p`,Oe,r(g(h)(`proxyEnhancement.tokenEstimation.piModelsJson`)),1)])]),_:1})]),_:1},8,[`open`])])]),_:1})]),_:1}),s(g(D),null,{default:f(()=>[s(g(O),{class:`flex items-start gap-3 py-4`},{default:f(()=>[s(g(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:f(()=>[u(r(g(h)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),e(`div`,null,[e(`div`,ke,r(g(h)(`proxyEnhancement.contextOverflow.title`)),1),e(`div`,Ae,r(g(h)(`proxyEnhancement.contextOverflow.description`)),1)])]),_:1})]),_:1})])]),e(`section`,null,[e(`h3`,je,r(g(h)(`proxyEnhancement.sections.aiFeatures`)),1),e(`div`,Me,[s(g(D),null,{default:f(()=>[s(g(O),{class:`py-4`},{default:f(()=>[e(`div`,Ne,[s(g(k),{class:`w-4 h-4 mt-0.5 shrink-0 text-muted-foreground`}),e(`div`,null,[e(`div`,Pe,r(g(h)(`proxyEnhancement.aiRetryRuleGen`)),1),e(`div`,Fe,r(g(h)(`proxyEnhancement.aiRetryRuleGenDesc`)),1)])]),s(de,{providers:X.value,"model-value":Y.value,"onUpdate:modelValue":We},null,8,[`providers`,`model-value`])]),_:1})]),_:1}),s(g(D),null,{default:f(()=>[s(g(O),{class:`flex items-start gap-3 py-4`},{default:f(()=>[s(g(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:f(()=>[u(r(g(h)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),e(`div`,null,[e(`div`,Ie,r(g(h)(`proxyEnhancement.sessionState.title`)),1),e(`div`,Le,r(g(h)(`proxyEnhancement.sessionState.description`)),1)])]),_:1})]),_:1})])])])),!A.value&&!j.value?(v(),m(`div`,Re,[$.value?(v(),m(`span`,ze,r(g(h)(`proxyEnhancement.unsavedChanges`)),1)):(v(),m(`span`,Be)),e(`div`,Ve,[$.value?(v(),c(g(p),{key:0,variant:`outline`,onClick:qe},{default:f(()=>[u(r(g(h)(`common.cancel`)),1)]),_:1})):_(``,!0),s(g(p),{disabled:M.value||!$.value,onClick:Je},{default:f(()=>[M.value?(v(),c(g(S),{key:0,class:`w-4 h-4 animate-spin mr-1`})):_(``,!0),u(` `+r(M.value?g(h)(`common.saving`):g(h)(`common.save`)),1)]),_:1},8,[`disabled`])])])):_(``,!0)]))}});export{U as default};
|