llm-simple-router 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/frontend-dist/assets/{AuthLayout-BBV4jWms.js → AuthLayout-CrDZ0S1l.js} +1 -1
  2. package/frontend-dist/assets/{Card-yRbEmkW1.js → Card-BVxPbRVS.js} +1 -1
  3. package/frontend-dist/assets/{CardContent-NOlZj1mO.js → CardContent-mtMPJeBk.js} +1 -1
  4. package/frontend-dist/assets/{CardTitle-uKlCQLwJ.js → CardTitle-B57j9XPI.js} +1 -1
  5. package/frontend-dist/assets/{CascadingModelSelect-CKHdcd7h.js → CascadingModelSelect-CEA1IWYp.js} +1 -1
  6. package/frontend-dist/assets/{Checkbox-DTcNpGRx.js → Checkbox-Dy91V6uO.js} +1 -1
  7. package/frontend-dist/assets/{CollapsibleContent-DE4ywG7w.js → CollapsibleContent-BNYRQZDC.js} +1 -1
  8. package/frontend-dist/assets/{CollapsibleTrigger-CgHghQOk.js → CollapsibleTrigger-BsRqX2Cu.js} +1 -1
  9. package/frontend-dist/assets/{ConcurrencyControl-BdkY-tqL.js → ConcurrencyControl-CYMId2CN.js} +1 -1
  10. package/frontend-dist/assets/{Dashboard-Bf8r73LW.js → Dashboard-CdyqA2IJ.js} +1 -1
  11. package/frontend-dist/assets/{Input-CSouVyRo.js → Input-qtzKspPF.js} +1 -1
  12. package/frontend-dist/assets/{Label-sQ7fWp0R.js → Label-C-4yGDcj.js} +1 -1
  13. package/frontend-dist/assets/{Login-Bjjcfhml.js → Login-Djwy2tf8.js} +1 -1
  14. package/frontend-dist/assets/{Logs-BGlhJhLu.js → Logs-CPjawsdI.js} +1 -1
  15. package/frontend-dist/assets/{ModelMappings-Bt7Eeorm.js → ModelMappings-BPAkfDsD.js} +1 -1
  16. package/frontend-dist/assets/{Monitor-DX0kNv2Q.js → Monitor-C9evAeEj.js} +1 -1
  17. package/frontend-dist/assets/Providers-FYxhWwD9.js +1 -0
  18. package/frontend-dist/assets/{ProxyEnhancement-CrhSj0i-.js → ProxyEnhancement-D7ZP80Lz.js} +1 -1
  19. package/frontend-dist/assets/QuickSetup-DGt0nShS.js +1 -0
  20. package/frontend-dist/assets/{RetryRules-DZIJZIue.js → RetryRules-3-6_iVb0.js} +1 -1
  21. package/frontend-dist/assets/{RouterKeys-aAVJ1X2x.js → RouterKeys-ISCjK-Ct.js} +1 -1
  22. package/frontend-dist/assets/{RovingFocusItem-BKuUrFvc.js → RovingFocusItem-Ch8O0jki.js} +1 -1
  23. package/frontend-dist/assets/{Schedules-CUUnlDcA.js → Schedules-DQgLcSFw.js} +1 -1
  24. package/frontend-dist/assets/{Settings-EbCm1UOg.js → Settings-BU3ivwpF.js} +1 -1
  25. package/frontend-dist/assets/{Setup-BPA7-uN1.js → Setup-CMZiW_BK.js} +1 -1
  26. package/frontend-dist/assets/{Skeleton-BDY4RnXa.js → Skeleton-Lckr7Vzh.js} +1 -1
  27. package/frontend-dist/assets/{Switch-BRh_TDGi.js → Switch-vb3eQrUY.js} +1 -1
  28. package/frontend-dist/assets/{TableHeader-B8F2wgND.js → TableHeader-DvgxagEq.js} +1 -1
  29. package/frontend-dist/assets/{TabsTrigger-BJevV5T0.js → TabsTrigger-vvniTekl.js} +1 -1
  30. package/frontend-dist/assets/{TooltipTrigger-CHU60MyA.js → TooltipTrigger-B_7uc54_.js} +1 -1
  31. package/frontend-dist/assets/{UnifiedRequestDialog-BzRXPsTD.js → UnifiedRequestDialog-CHh7SjPE.js} +1 -1
  32. package/frontend-dist/assets/{VisuallyHiddenInput-TVFca75O.js → VisuallyHiddenInput-DPDB7WoD.js} +1 -1
  33. package/frontend-dist/assets/arrow-down-BYVAWREL.js +1 -0
  34. package/frontend-dist/assets/{badge-Ccpzh1js.js → badge-BAIzzgzC.js} +1 -1
  35. package/frontend-dist/assets/{button-BKZEIFFE.js → button-BJEwiB8A.js} +2 -2
  36. package/frontend-dist/assets/chevron-right-CR3YFy_O.js +1 -0
  37. package/frontend-dist/assets/{dialog-CruRGe5P.js → dialog-BwSmcgaV.js} +1 -1
  38. package/frontend-dist/assets/{image-C8-jFHbc.js → image-DWAFh4CH.js} +1 -1
  39. package/frontend-dist/assets/{index-BFtMfyLk.js → index-3DIQxot0.js} +2 -2
  40. package/frontend-dist/assets/index-BayP76hx.css +1 -0
  41. package/frontend-dist/assets/mappings-C68NUaJA.js +1 -0
  42. package/frontend-dist/assets/mappings-CeO9ylDO.js +1 -0
  43. package/frontend-dist/assets/model-patches-COK1yfWm.js +1 -0
  44. package/frontend-dist/assets/{pencil-BKp_Kyht.js → pencil-BAYWJXMP.js} +1 -1
  45. package/frontend-dist/assets/plus-B_GSrrcs.js +1 -0
  46. package/frontend-dist/assets/search-B87CsLO4.js +1 -0
  47. package/frontend-dist/assets/{sparkles-BvcyYOkT.js → sparkles-BXqZs-3m.js} +1 -1
  48. package/frontend-dist/assets/{transform-domain-CeOsB-dB.js → transform-domain-DLWadwZU.js} +1 -1
  49. package/frontend-dist/assets/{trash-2-BIogN4DV.js → trash-2-AdzXWmCq.js} +1 -1
  50. package/frontend-dist/assets/{useClipboard-CwZtAc72.js → useClipboard-uOuEel2P.js} +1 -1
  51. package/frontend-dist/assets/{useLogRetention-CAmMGxOc.js → useLogRetention-DstR1E-X.js} +1 -1
  52. package/frontend-dist/assets/{useProviderGroups-DreRXuIF.js → useProviderGroups-BCau8ZEY.js} +1 -1
  53. package/frontend-dist/index.html +3 -3
  54. package/package.json +1 -1
  55. package/frontend-dist/assets/Providers-CaF8rxfU.js +0 -1
  56. package/frontend-dist/assets/QuickSetup-CnR2B0Zn.js +0 -1
  57. package/frontend-dist/assets/arrow-down-CUpEzooo.js +0 -1
  58. package/frontend-dist/assets/chevron-right-Dp6aNEx7.js +0 -1
  59. package/frontend-dist/assets/index-BDhTGcco.css +0 -1
  60. package/frontend-dist/assets/mappings-Bw39-I5f.js +0 -1
  61. package/frontend-dist/assets/mappings-DBDiQL8p.js +0 -1
  62. package/frontend-dist/assets/model-patches-BKobAm03.js +0 -1
  63. package/frontend-dist/assets/plus-IMRPIvN7.js +0 -1
  64. package/frontend-dist/assets/search-C7yHsC1t.js +0 -1
@@ -1 +1 @@
1
- import{At as e,G as t,Gt as n,Nt as r,et as i,gt as a,it as o,m as s,qt as c,r as l}from"./button-BKZEIFFE.js";var u=o({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(o,{emit:u}){let d=o,f=s(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(o,s)=>e((a(),i(`input`,{"onUpdate:modelValue":s[0]||=e=>r(f)?f.value=e:null,"data-slot":`input`,class:c(n(l)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[t,n(f)]])}});export{u as t};
1
+ import{At as e,G as t,Gt as n,Nt as r,et as i,gt as a,it as o,m as s,qt as c,r as l}from"./button-BJEwiB8A.js";var u=o({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(o,{emit:u}){let d=o,f=s(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(o,s)=>e((a(),i(`input`,{"onUpdate:modelValue":s[0]||=e=>r(f)?f.value=e:null,"data-slot":`input`,class:c(n(l)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[t,n(f)]])}});export{u as t};
@@ -1 +1 @@
1
- import{Gt as e,Q as t,dt as n,gt as r,i,it as a,kt as o,o as s,r as c,x as l,yt as u}from"./button-BKZEIFFE.js";var d=a({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(a){let c=a;return s(),(a,s)=>(r(),t(e(i),n(c,{onMousedown:s[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:o(()=>[u(a.$slots,`default`)]),_:3},16))}}),f=a({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(i){let a=i,s=l(a,`class`);return(i,l)=>(r(),t(e(d),n({"data-slot":`label`},e(s),{class:e(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,a.class)}),{default:o(()=>[u(i.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
1
+ import{Gt as e,Q as t,dt as n,gt as r,i,it as a,kt as o,o as s,r as c,x as l,yt as u}from"./button-BJEwiB8A.js";var d=a({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(a){let c=a;return s(),(a,s)=>(r(),t(e(i),n(c,{onMousedown:s[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:o(()=>[u(a.$slots,`default`)]),_:3},16))}}),f=a({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(i){let a=i,s=l(a,`class`);return(i,l)=>(r(),t(e(d),n({"data-slot":`label`},e(s),{class:e(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,a.class)}),{default:o(()=>[u(i.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
@@ -1 +1 @@
1
- import{$ as e,A as t,Gt as n,H as r,Lt as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,k as d,kt as f,n as p,nt as m,q as h,rt as g,z as _}from"./button-BKZEIFFE.js";import{t as v}from"./Label-sQ7fWp0R.js";import{t as y}from"./AuthLayout-BBV4jWms.js";import{t as b}from"./Input-CSouVyRo.js";var x={key:0,class:`text-destructive text-sm`},S=u({__name:`Login`,setup(u){let{t:S}=r(),C=_(),w=i(``),T=i(``),E=i(!1);async function D(){if(w.value){T.value=``,E.value=!0;try{await d.login(w.value),C.push(`/`)}catch(e){console.error(`login:`,e),T.value=t(e,S(`login.loginFailed`))}finally{E.value=!1}}}return(t,r)=>(l(),a(y,{subtitle:n(S)(`login.subtitle`)},{default:f(()=>[s(`form`,{onSubmit:h(D,[`prevent`]),class:`space-y-4`},[s(`div`,null,[g(n(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:f(()=>[m(o(n(S)(`login.password`)),1)]),_:1}),g(n(b),{modelValue:w.value,"onUpdate:modelValue":r[0]||=e=>w.value=e,type:`password`,placeholder:n(S)(`login.passwordPlaceholder`),disabled:E.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),T.value?(l(),c(`p`,x,o(T.value),1)):e(``,!0),g(n(p),{type:`submit`,class:`w-full`,disabled:E.value},{default:f(()=>[m(o(E.value?n(S)(`login.loggingIn`):n(S)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{S as default};
1
+ import{$ as e,A as t,Gt as n,H as r,Lt as i,Q as a,Xt as o,Z as s,et as c,gt as l,it as u,k as d,kt as f,n as p,nt as m,q as h,rt as g,z as _}from"./button-BJEwiB8A.js";import{t as v}from"./Label-C-4yGDcj.js";import{t as y}from"./AuthLayout-CrDZ0S1l.js";import{t as b}from"./Input-qtzKspPF.js";var x={key:0,class:`text-destructive text-sm`},S=u({__name:`Login`,setup(u){let{t:S}=r(),C=_(),w=i(``),T=i(``),E=i(!1);async function D(){if(w.value){T.value=``,E.value=!0;try{await d.login(w.value),C.push(`/`)}catch(e){console.error(`login:`,e),T.value=t(e,S(`login.loginFailed`))}finally{E.value=!1}}}return(t,r)=>(l(),a(y,{subtitle:n(S)(`login.subtitle`)},{default:f(()=>[s(`form`,{onSubmit:h(D,[`prevent`]),class:`space-y-4`},[s(`div`,null,[g(n(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:f(()=>[m(o(n(S)(`login.password`)),1)]),_:1}),g(n(b),{modelValue:w.value,"onUpdate:modelValue":r[0]||=e=>w.value=e,type:`password`,placeholder:n(S)(`login.passwordPlaceholder`),disabled:E.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),T.value?(l(),c(`p`,x,o(T.value),1)):e(``,!0),g(n(p),{type:`submit`,class:`w-full`,disabled:E.value},{default:f(()=>[m(o(E.value?n(S)(`login.loggingIn`):n(S)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{S as default};
@@ -1 +1 @@
1
- import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,Lt as o,Nt as s,Q as c,X as l,Xt as u,Z as d,et as f,gt as p,it as m,k as h,kt as g,mt as _,n as v,nt as y,q as b,qt as x,rt as S,vt as C}from"./button-BKZEIFFE.js";import{r as w,t as T}from"./UnifiedRequestDialog-BzRXPsTD.js";import{n as E,t as ee}from"./useClipboard-CwZtAc72.js";import{n as D,r as O,t as k}from"./TooltipTrigger-CHU60MyA.js";import{a as te,n as ne,o as re,r as ie,t as ae}from"./dialog-CruRGe5P.js";import{t as oe}from"./Label-sQ7fWp0R.js";import{Dt as A,Et as se,St as ce,_ as j,a as M,c as le,f as ue,g as N,gt as de,h as P,ht as fe,l as pe,m as F,o as me,p as he,s as ge,t as _e,u as ve,v as I,yt as ye}from"./index-BFtMfyLk.js";import{t as L}from"./Skeleton-BDY4RnXa.js";import{t as R}from"./badge-Ccpzh1js.js";import{t as be}from"./Card-yRbEmkW1.js";import{t as z}from"./Input-CSouVyRo.js";import{a as xe,i as B,n as V,o as Se,r as H,t as Ce}from"./TableHeader-B8F2wgND.js";import{t as we}from"./useLogRetention-CAmMGxOc.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`},De={key:1,class:`text-muted-foreground`},Oe=m({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},copiedId:{default:null}},emits:[`toggleExpand`,`openDetail`,`copy`],setup(t,{emit:n}){let o=t,s=n,{t:m}=i(),h=l(()=>o.log.thinking_level??`off`);function _(e){if(!e)return m(`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),m(`logs.row.unknown`)}}return(n,i)=>(p(),c(r(H),{class:x([`group`,{"bg-destructive/10":!t.isChild&&(t.log.status_code??0)>=400,"bg-muted/20":t.isChild}])},{default:g(()=>[S(r(B),{class:`w-10`},{default:g(()=>[!t.isChild&&t.log.child_count?(p(),c(r(v),{key:0,variant:`ghost`,size:`xs`,onClick:i[0]||=e=>s(`toggleExpand`,t.log)},{default:g(()=>[S(r(fe),{class:x([`size-3 transition-transform`,t.expanded?``:`-rotate-90`])},null,8,[`class`])]),_:1})):e(``,!0),t.isChild?(p(),f(`span`,Te,`└`)):e(``,!0)]),_:1}),S(r(B),{class:`font-mono text-xs text-muted-foreground`,title:t.log.id},{default:g(()=>[d(`span`,U,[y(u(t.log.id.slice(0,8))+` `,1),S(r(O),{"delay-duration":300},{default:g(()=>[S(r(k),{"as-child":``},{default:g(()=>[S(r(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:i[1]||=b(e=>s(`copy`,t.log.id),[`stop`])},{default:g(()=>[t.copiedId===t.log.id?(p(),c(r(de),{key:0,class:`size-3 text-success`})):(p(),c(r(E),{key:1,class:`size-3`}))]),_:1})]),_:1}),S(r(D),null,{default:g(()=>[y(u(r(m)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})])]),_:1},8,[`title`]),S(r(B),{class:`font-mono text-xs text-muted-foreground whitespace-nowrap`},{default:g(()=>[y(u(r(ce)(t.log.created_at)),1)]),_:1}),S(r(B),{class:`font-mono text-xs whitespace-nowrap`},{default:g(()=>[y(u(t.log.model||`-`)+` `,1),S(r(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[y(u(t.log.api_type),1)]),_:1})]),_:1}),S(r(B),{class:`text-xs whitespace-nowrap`},{default:g(()=>[!t.isChild&&t.log.provider_id===r(`router`)?(p(),c(r(R),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:g(()=>[y(u(r(m)(`logs.row.proxyEnhancement`,{label:_(t.log.upstream_request)})),1)]),_:1})):t.log.backend_model||t.log.provider_name?(p(),f(a,{key:1},[d(`span`,W,u(t.log.backend_model||`-`),1),i[3]||=d(`span`,{class:`text-muted-foreground`},` @ `,-1),d(`span`,G,u(t.log.provider_name||t.log.provider_id||`-`),1),S(r(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[y(u(t.log.api_type),1)]),_:1})],64)):(p(),f(`span`,K,`-`))]),_:1}),S(r(B),null,{default:g(()=>[d(`div`,Ee,[t.log.upstream_api_type&&t.log.upstream_api_type!==t.log.api_type?(p(),c(r(R),{key:0,variant:t.log.api_type===`openai`?`default`:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(t.log.api_type)+` → `+u(t.log.upstream_api_type),1)]),_:1},8,[`variant`])):e(``,!0),S(r(R),{variant:(t.log.status_code??0)<400?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(t.log.status_code||`-`),1)]),_:1},8,[`variant`]),h.value?(p(),c(r(R),{key:1,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(h.value),1)]),_:1})):e(``,!0),t.log.is_stream?(p(),c(r(R),{key:2,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[...i[4]||=[y(` SSE `,-1)]]),_:1})):e(``,!0),t.log.is_retry?(p(),c(r(R),{key:3,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-warning-dark border-warning`},{default:g(()=>[y(u(r(m)(`logs.table.retry`)),1)]),_:1})):e(``,!0),t.log.is_failover?(p(),c(r(R),{key:4,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-danger-dark border-danger`},{default:g(()=>[y(u(r(m)(`logs.table.failover`)),1)]),_:1})):e(``,!0)])]),_:1}),S(r(B),{class:`text-xs text-muted-foreground font-mono`},{default:g(()=>[y(u(r(ye)(t.log.latency_ms)),1)]),_:1}),S(r(B),{class:`text-destructive text-xs min-w-0 max-w-60 lg:max-w-xs`},{default:g(()=>[t.log.error_message?(p(),c(r(O),{key:0,"delay-duration":300},{default:g(()=>[S(r(k),{"as-child":``},{default:g(()=>[d(`span`,q,u(t.log.error_message),1)]),_:1}),S(r(D),{class:`max-w-sm whitespace-pre-wrap`},{default:g(()=>[y(u(t.log.error_message),1)]),_:1})]),_:1})):(p(),f(`span`,De,`-`))]),_:1}),S(r(B),null,{default:g(()=>[S(r(v),{variant:`ghost`,size:`sm`,onClick:i[2]||=e=>s(`openDetail`,t.log.id)},{default:g(()=>[y(u(r(m)(`logs.row.detail`)),1)]),_:1})]),_:1})]),_:1},8,[`class`]))}}),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}=i(),n=o(`5h`),r=o({start:``,end:``}),a=o(`all`),s=o(`all`),c=o(`all`),u=o(`all`),d=o(`all`),f=o(`all`),p=o([]),m=o([]),g=o([]),v=o([]),y=l(()=>r.value.start&&r.value.end&&r.value.start<r.value.end),b=l(()=>{let{start:t,end:n}=r.value;return!t||!n?``:t>=n?e(`logs.validation.endTimeAfterStart`):``}),x={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function S(){let e={};if(y.value)e.start_time=A(r.value.start),e.end_time=se(r.value.end);else{let t=x[n.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return d.value!==`all`&&(e.api_type=d.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),u.value!==`all`&&(e.router_key_id=u.value),f.value!==`all`&&(e.status_code=f.value),e}function C(){r.value={start:``,end:``}}async function w(){try{p.value=await h.getProviders()}catch(n){console.error(`Failed to load providers:`,n),M.error(t(n,e(`logs.messages.loadProvidersFailed`)))}}async function T(){try{m.value=await h.getRouterKeys()}catch(n){console.error(`Failed to load router keys:`,n),M.error(t(n,e(`logs.messages.loadKeysFailed`)))}}async function E(){try{let[e,t]=await Promise.allSettled([h.getMetricsSummary({period:`30d`}),h.getAvailableModels()]);g.value=t.status===`fulfilled`?t.value:[],v.value=e.status===`fulfilled`?[...new Set(e.value.rows.map(e=>e.backend_model))]:[]}catch(e){console.error(`useLogFilters.loadModelOptions:`,e),g.value=[],v.value=[]}}return _(()=>{Promise.allSettled([w(),T(),E()])}),{PERIODS:ke,period:n,dateRange:r,dateRangeError:b,providerFilter:a,clientModelFilter:s,backendModelFilter:c,keyFilter:u,apiTypeFilter:d,statusFilter:f,providers:p,routerKeys:m,clientModelOptions:g,backendModelOptions:v,hasDateRange:y,clearDateRange:C,buildFilterParams:S}}var J=20,Y=864e5;function je(){let{t:e}=i(),n=o([]),r=o(0),a=o(1),s=o({}),c=o(30),u=o(!1),d=o(!1),f=o(new Set),p=o({}),m=o({}),g=o(!1),_=o(null),v=l(()=>Math.ceil(r.value/J));async function y(i){i&&(s.value=i),u.value=!0;try{let e=await h.getLogs({page:a.value,limit:J,view:`grouped`,...s.value});n.value=e.data,r.value=e.total,f.value.clear(),p.value={},m.value={}}catch(n){console.error(`Failed to load logs:`,n),M.error(t(n,e(`logs.messages.loadFailed`)))}finally{u.value=!1}}function b(e){e>=1&&e<=v.value&&e!==a.value&&(a.value=e,y())}let x=o(null),S=o(!1);async function C(){try{let e=new Date(Date.now()-c.value*Y).toISOString(),t=await h.deleteLogsBefore(e);d.value=!1,a.value=1,await y(),x.value=t.deleted,S.value=!0}catch(n){console.error(`Failed to cleanup logs:`,n),M.error(t(n,e(`logs.messages.cleanupFailed`)))}}async function T(n){let r=n.id;if(f.value.has(r)){f.value.delete(r);return}if(f.value.add(r),!p.value[r]){m.value[r]=!0;try{p.value[r]=await h.getLogChildren(r)}catch(n){console.error(`Failed to load child logs:`,n),M.error(t(n,e(`logs.messages.loadSubRequestsFailed`)))}finally{m.value[r]=!1}}}async function E(n){try{let e=await h.getLogDetail(n);_.value=w(e,e.child_count?await h.getLogChildren(n):[]),g.value=!0}catch(n){console.error(`Failed to load log detail:`,n),M.error(t(n,e(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:J,loading:u,logs:n,total:r,page:a,totalPages:v,cleanupDays:c,showCleanup:d,expandedRows:f,childLogs:p,childLoading:m,logDetailOpen:g,selectedLogEntry:_,cleanupResult:x,showCleanupResult:S,loadLogs:y,goToPage:b,handleCleanup:C,toggleExpand:T,openLogDetail:E}}var Me={class:`page`},Ne={class:`flex items-center justify-between mb-4`},Pe={class:`text-lg font-semibold text-foreground`},Fe={class:`flex flex-wrap items-center gap-2 mb-4`},Ie={class:`flex`},Le={class:`flex items-center gap-1`},Re={key:1,class:`text-xs text-destructive whitespace-nowrap`},ze={key:0,class:`absolute inset-0 bg-background/50 flex items-center justify-center z-10`},Be={class:`space-y-3 w-3/4`},Ve={class:`flex flex-col items-center gap-2`},He={class:`text-sm text-muted-foreground`},Ue={key:0,class:`text-xs text-muted-foreground`},We={class:`flex items-center justify-between mt-4`},Ge={class:`text-sm text-muted-foreground`},Ke={class:`flex items-center gap-1`},qe={key:0,class:`px-2 text-sm text-muted-foreground`},Je={class:`flex items-center justify-end mt-2 gap-2`},Ye={class:`text-xs text-muted-foreground`},Xe={class:`text-xs text-muted-foreground`},Ze={class:`text-sm text-muted-foreground`},Qe={class:`mb-4`},$e=9,et=300,tt=7,X=2,Z=1,nt=2e3,rt=m({__name:`Logs`,setup(t){let{t:m}=i(),{PERIODS:h,period:b,dateRange:x,dateRangeError:w,providerFilter:E,clientModelFilter:D,backendModelFilter:O,keyFilter:k,statusFilter:A,providers:se,routerKeys:ce,clientModelOptions:M,backendModelOptions:de,clearDateRange:fe,buildFilterParams:ye}=Ae(),{logs:R,total:Te,page:U,totalPages:W,cleanupDays:G,showCleanup:K,cleanupResult:Ee,showCleanupResult:q,expandedRows:De,childLogs:ke,childLoading:J,logDetailOpen:Y,selectedLogEntry:rt,loadLogs:it,goToPage:Q,handleCleanup:at,toggleExpand:ot,openLogDetail:st,loading:ct}=je(),lt=l(()=>{let e=W.value,t=U.value;if(e<=tt)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}=ee(),$=o(null);function ht(e){mt(e),$.value=e,setTimeout(()=>{$.value===e&&($.value=null)},nt)}let gt=l(()=>E.value!==`all`||D.value!==`all`||O.value!==`all`||k.value!==`all`||A.value!==`all`||!!x.value.start||!!x.value.end);function _t(){b.value=`5h`,x.value={start:``,end:``},E.value=`all`,D.value=`all`,O.value=`all`,k.value=`all`,A.value=`all`}let vt=null;return n([b,x,E,D,O,k,A],()=>{U.value=1,vt&&clearTimeout(vt),vt=setTimeout(()=>it(ye()),et)},{deep:!0}),_(()=>{it(ye()),pt()}),(t,n)=>(p(),f(`div`,Me,[d(`div`,Ne,[d(`h2`,Pe,u(r(m)(`logs.title`)),1),S(r(v),{variant:`ghost`,size:`sm`,onClick:n[0]||=e=>K.value=!0},{default:g(()=>[y(u(r(m)(`logs.cleanupLogs`)),1)]),_:1})]),d(`div`,Fe,[d(`div`,Ie,[(p(!0),f(a,null,C(r(h),e=>(p(),c(r(v),{key:e.value,variant:r(b)===e.value?`default`:`outline`,size:`sm`,class:`rounded-none first:rounded-l-md last:rounded-r-md -ml-px first:ml-0`,onClick:t=>b.value=e.value},{default:g(()=>[y(u(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),d(`div`,Le,[S(r(z),{type:`datetime-local`,modelValue:r(x).start,"onUpdate:modelValue":n[1]||=e=>r(x).start=e,class:`w-44`},null,8,[`modelValue`]),n[19]||=d(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),S(r(z),{type:`datetime-local`,modelValue:r(x).end,"onUpdate:modelValue":n[2]||=e=>r(x).end=e,class:`w-44`},null,8,[`modelValue`]),r(x).start||r(x).end?(p(),c(r(v),{key:0,variant:`ghost`,size:`sm`,onClick:r(fe)},{default:g(()=>[y(u(r(m)(`logs.clear`)),1)]),_:1},8,[`onClick`])):e(``,!0),r(w)?(p(),f(`span`,Re,u(r(w)),1)):e(``,!0)]),S(r(I),{modelValue:r(E),"onUpdate:modelValue":n[3]||=e=>s(E)?E.value=e:null},{default:g(()=>[S(r(P),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allProviders`)),1)]),_:1}),(p(!0),f(a,null,C(r(se),e=>(p(),c(r(N),{key:e.id,value:e.id},{default:g(()=>[y(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(D),"onUpdate:modelValue":n[4]||=e=>s(D)?D.value=e:null},{default:g(()=>[S(r(P),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.filters.allClientModels`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.filters.allClientModels`)),1)]),_:1}),(p(!0),f(a,null,C(r(M),e=>(p(),c(r(N),{key:e,value:e},{default:g(()=>[y(u(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(O),"onUpdate:modelValue":n[5]||=e=>s(O)?O.value=e:null},{default:g(()=>[S(r(P),{class:`w-32 truncate`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.filters.allBackendModels`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.filters.allBackendModels`)),1)]),_:1}),(p(!0),f(a,null,C(r(de),e=>(p(),c(r(N),{key:e,value:e},{default:g(()=>[y(u(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(k),"onUpdate:modelValue":n[6]||=e=>s(k)?k.value=e:null},{default:g(()=>[S(r(P),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allKeys`)),1)]),_:1}),(p(!0),f(a,null,C(r(ce),e=>(p(),c(r(N),{key:e.id,value:e.id},{default:g(()=>[y(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(A),"onUpdate:modelValue":n[7]||=e=>s(A)?A.value=e:null},{default:g(()=>[S(r(P),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allStatus`)),1)]),_:1}),S(r(N),{value:`200`},{default:g(()=>[...n[20]||=[y(`200`,-1)]]),_:1}),S(r(N),{value:`non200`},{default:g(()=>[y(u(r(m)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),S(r(be),{flush:``,class:`relative`},{default:g(()=>[r(ct)?(p(),f(`div`,ze,[d(`div`,Be,[S(r(L),{class:`h-8 w-full`}),S(r(L),{class:`h-8 w-full`}),S(r(L),{class:`h-8 w-5/6`})])])):e(``,!0),S(r(_e),{"delay-duration":300},{default:g(()=>[S(r(Se),{class:`[&_td]:px-3 [&_th]:px-3`},{default:g(()=>[S(r(Ce),null,{default:g(()=>[S(r(H),{class:`bg-muted`},{default:g(()=>[S(r(V),{class:`w-10`}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.id`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.time`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.clientModel`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.targetModel`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.latency`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.tags`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.latency`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.error`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),S(r(xe),null,{default:g(()=>[(p(!0),f(a,null,C(r(R),t=>(p(),f(a,{key:t.id},[S(Oe,{log:t,expanded:r(De).has(t.id),"copied-id":$.value,onToggleExpand:r(ot),onOpenDetail:r(st),onCopy:ht},null,8,[`log`,`expanded`,`copied-id`,`onToggleExpand`,`onOpenDetail`]),r(De).has(t.id)?(p(),f(a,{key:0},[r(J)[t.id]?(p(),c(r(H),{key:0},{default:g(()=>[S(r(B),{colspan:$e,class:`text-center py-2 pl-10`},{default:g(()=>[S(r(L),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):r(ke)[t.id]?.length?(p(!0),f(a,{key:1},C(r(ke)[t.id],e=>(p(),c(Oe,{key:e.id,log:e,"is-child":!0,"copied-id":$.value,onOpenDetail:r(st),onCopy:ht},null,8,[`log`,`copied-id`,`onOpenDetail`]))),128)):e(``,!0)],64)):e(``,!0)],64))),128)),r(R).length===0&&!r(ct)?(p(),c(r(H),{key:0},{default:g(()=>[S(r(B),{colspan:$e,class:`py-12 text-center`},{default:g(()=>[d(`div`,Ve,[d(`p`,He,u(r(m)(`logs.noLogs`)),1),gt.value?(p(),f(`p`,Ue,u(r(m)(`logs.noLogsFilterHint`)),1)):e(``,!0),gt.value?(p(),c(r(v),{key:1,variant:`ghost`,size:`sm`,onClick:_t},{default:g(()=>[y(u(r(m)(`logs.clearAllFilters`)),1)]),_:1})):e(``,!0)])]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),d(`div`,We,[d(`p`,Ge,u(r(m)(`logs.pagination`,{total:r(Te),page:r(U),totalPages:r(W)})),1),d(`div`,Ke,[S(r(v),{variant:`outline`,size:`sm`,onClick:n[8]||=e=>r(Q)(1),disabled:r(U)<=1},{default:g(()=>[y(u(r(m)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),S(r(v),{variant:`outline`,size:`sm`,onClick:n[9]||=e=>r(Q)(r(U)-1),disabled:r(U)<=1},{default:g(()=>[y(u(r(m)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(p(!0),f(a,null,C(lt.value,e=>(p(),f(a,{key:e},[e===`...`?(p(),f(`span`,qe,`...`)):(p(),c(r(v),{key:1,variant:e===r(U)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>r(Q)(e)},{default:g(()=>[y(u(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),S(r(v),{variant:`outline`,size:`sm`,onClick:n[10]||=e=>r(Q)(r(U)+1),disabled:r(U)>=r(W)},{default:g(()=>[y(u(r(m)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),S(r(v),{variant:`outline`,size:`sm`,onClick:n[11]||=e=>r(Q)(r(W)),disabled:r(U)>=r(W)},{default:g(()=>[y(u(r(m)(`logs.lastPage`)),1)]),_:1},8,[`disabled`])])]),d(`div`,Je,[d(`span`,Ye,u(r(m)(`logs.cleanup.autoCleanup`)),1),S(r(z),{type:`number`,modelValue:r(ut),"onUpdate:modelValue":n[12]||=e=>s(ut)?ut.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-16 h-6 text-xs`},null,8,[`modelValue`]),d(`span`,Xe,u(r(m)(`logs.cleanup.days`)),1),S(r(v),{size:`sm`,onClick:r(ft),disabled:r(dt)},{default:g(()=>[y(u(r(m)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])]),S(T,{open:r(Y),"onUpdate:open":n[13]||=e=>s(Y)?Y.value=e:null,source:`history`,"log-entry":r(rt)},null,8,[`open`,`log-entry`]),S(r(re),{open:r(K),"onUpdate:open":n[16]||=e=>s(K)?K.value=e:null},{default:g(()=>[S(r(te),null,{default:g(()=>[S(r(ne),null,{default:g(()=>[S(r(ae),null,{default:g(()=>[y(u(r(m)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),d(`p`,Ze,u(r(m)(`logs.cleanup.description`)),1),d(`div`,Qe,[S(r(oe),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[y(u(r(m)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),S(r(z),{modelValue:r(G),"onUpdate:modelValue":n[14]||=e=>s(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),S(r(ie),null,{default:g(()=>[S(r(v),{variant:`outline`,onClick:n[15]||=e=>K.value=!1},{default:g(()=>[y(u(r(m)(`common.cancel`)),1)]),_:1}),S(r(v),{variant:`destructive`,onClick:r(at)},{default:g(()=>[y(u(r(m)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),S(r(he),{open:r(q),"onUpdate:open":n[18]||=e=>s(q)?q.value=e:null},{default:g(()=>[S(r(ve),null,{default:g(()=>[S(r(ge),null,{default:g(()=>[S(r(me),null,{default:g(()=>[y(u(r(m)(`logs.cleanupResult.title`)),1)]),_:1}),S(r(pe),null,{default:g(()=>[y(u(r(m)(`logs.cleanupResult.description`,{count:r(Ee)})),1)]),_:1})]),_:1}),S(r(le),null,{default:g(()=>[S(r(ue),{onClick:n[17]||=e=>q.value=!1},{default:g(()=>[y(u(r(m)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{rt as default};
1
+ import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,Lt as o,Nt as s,Q as c,X as l,Xt as u,Z as d,et as f,gt as p,it as m,k as h,kt as g,mt as _,n as v,nt as y,q as b,qt as x,rt as S,vt as C}from"./button-BJEwiB8A.js";import{r as w,t as T}from"./UnifiedRequestDialog-CHh7SjPE.js";import{n as E,t as ee}from"./useClipboard-uOuEel2P.js";import{n as D,r as O,t as k}from"./TooltipTrigger-B_7uc54_.js";import{a as te,n as ne,o as re,r as ie,t as ae}from"./dialog-BwSmcgaV.js";import{t as oe}from"./Label-C-4yGDcj.js";import{Dt as A,Et as se,St as ce,_ as j,a as M,c as le,f as ue,g as N,gt as de,h as P,ht as fe,l as pe,m as F,o as me,p as he,s as ge,t as _e,u as ve,v as I,yt as ye}from"./index-3DIQxot0.js";import{t as L}from"./Skeleton-Lckr7Vzh.js";import{t as R}from"./badge-BAIzzgzC.js";import{t as be}from"./Card-BVxPbRVS.js";import{t as z}from"./Input-qtzKspPF.js";import{a as xe,i as B,n as V,o as Se,r as H,t as Ce}from"./TableHeader-DvgxagEq.js";import{t as we}from"./useLogRetention-DstR1E-X.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`},De={key:1,class:`text-muted-foreground`},Oe=m({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},copiedId:{default:null}},emits:[`toggleExpand`,`openDetail`,`copy`],setup(t,{emit:n}){let o=t,s=n,{t:m}=i(),h=l(()=>o.log.thinking_level??`off`);function _(e){if(!e)return m(`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),m(`logs.row.unknown`)}}return(n,i)=>(p(),c(r(H),{class:x([`group`,{"bg-destructive/10":!t.isChild&&(t.log.status_code??0)>=400,"bg-muted/20":t.isChild}])},{default:g(()=>[S(r(B),{class:`w-10`},{default:g(()=>[!t.isChild&&t.log.child_count?(p(),c(r(v),{key:0,variant:`ghost`,size:`xs`,onClick:i[0]||=e=>s(`toggleExpand`,t.log)},{default:g(()=>[S(r(fe),{class:x([`size-3 transition-transform`,t.expanded?``:`-rotate-90`])},null,8,[`class`])]),_:1})):e(``,!0),t.isChild?(p(),f(`span`,Te,`└`)):e(``,!0)]),_:1}),S(r(B),{class:`font-mono text-xs text-muted-foreground`,title:t.log.id},{default:g(()=>[d(`span`,U,[y(u(t.log.id.slice(0,8))+` `,1),S(r(O),{"delay-duration":300},{default:g(()=>[S(r(k),{"as-child":``},{default:g(()=>[S(r(v),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:i[1]||=b(e=>s(`copy`,t.log.id),[`stop`])},{default:g(()=>[t.copiedId===t.log.id?(p(),c(r(de),{key:0,class:`size-3 text-success`})):(p(),c(r(E),{key:1,class:`size-3`}))]),_:1})]),_:1}),S(r(D),null,{default:g(()=>[y(u(r(m)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})])]),_:1},8,[`title`]),S(r(B),{class:`font-mono text-xs text-muted-foreground whitespace-nowrap`},{default:g(()=>[y(u(r(ce)(t.log.created_at)),1)]),_:1}),S(r(B),{class:`font-mono text-xs whitespace-nowrap`},{default:g(()=>[y(u(t.log.model||`-`)+` `,1),S(r(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[y(u(t.log.api_type),1)]),_:1})]),_:1}),S(r(B),{class:`text-xs whitespace-nowrap`},{default:g(()=>[!t.isChild&&t.log.provider_id===r(`router`)?(p(),c(r(R),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:g(()=>[y(u(r(m)(`logs.row.proxyEnhancement`,{label:_(t.log.upstream_request)})),1)]),_:1})):t.log.backend_model||t.log.provider_name?(p(),f(a,{key:1},[d(`span`,W,u(t.log.backend_model||`-`),1),i[3]||=d(`span`,{class:`text-muted-foreground`},` @ `,-1),d(`span`,G,u(t.log.provider_name||t.log.provider_id||`-`),1),S(r(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[y(u(t.log.api_type),1)]),_:1})],64)):(p(),f(`span`,K,`-`))]),_:1}),S(r(B),null,{default:g(()=>[d(`div`,Ee,[t.log.upstream_api_type&&t.log.upstream_api_type!==t.log.api_type?(p(),c(r(R),{key:0,variant:t.log.api_type===`openai`?`default`:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(t.log.api_type)+` → `+u(t.log.upstream_api_type),1)]),_:1},8,[`variant`])):e(``,!0),S(r(R),{variant:(t.log.status_code??0)<400?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(t.log.status_code||`-`),1)]),_:1},8,[`variant`]),h.value?(p(),c(r(R),{key:1,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[y(u(h.value),1)]),_:1})):e(``,!0),t.log.is_stream?(p(),c(r(R),{key:2,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[...i[4]||=[y(` SSE `,-1)]]),_:1})):e(``,!0),t.log.is_retry?(p(),c(r(R),{key:3,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-warning-dark border-warning`},{default:g(()=>[y(u(r(m)(`logs.table.retry`)),1)]),_:1})):e(``,!0),t.log.is_failover?(p(),c(r(R),{key:4,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-danger-dark border-danger`},{default:g(()=>[y(u(r(m)(`logs.table.failover`)),1)]),_:1})):e(``,!0)])]),_:1}),S(r(B),{class:`text-xs text-muted-foreground font-mono`},{default:g(()=>[y(u(r(ye)(t.log.latency_ms)),1)]),_:1}),S(r(B),{class:`text-destructive text-xs min-w-0 max-w-60 lg:max-w-xs`},{default:g(()=>[t.log.error_message?(p(),c(r(O),{key:0,"delay-duration":300},{default:g(()=>[S(r(k),{"as-child":``},{default:g(()=>[d(`span`,q,u(t.log.error_message),1)]),_:1}),S(r(D),{class:`max-w-sm whitespace-pre-wrap`},{default:g(()=>[y(u(t.log.error_message),1)]),_:1})]),_:1})):(p(),f(`span`,De,`-`))]),_:1}),S(r(B),null,{default:g(()=>[S(r(v),{variant:`ghost`,size:`sm`,onClick:i[2]||=e=>s(`openDetail`,t.log.id)},{default:g(()=>[y(u(r(m)(`logs.row.detail`)),1)]),_:1})]),_:1})]),_:1},8,[`class`]))}}),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}=i(),n=o(`5h`),r=o({start:``,end:``}),a=o(`all`),s=o(`all`),c=o(`all`),u=o(`all`),d=o(`all`),f=o(`all`),p=o([]),m=o([]),g=o([]),v=o([]),y=l(()=>r.value.start&&r.value.end&&r.value.start<r.value.end),b=l(()=>{let{start:t,end:n}=r.value;return!t||!n?``:t>=n?e(`logs.validation.endTimeAfterStart`):``}),x={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function S(){let e={};if(y.value)e.start_time=A(r.value.start),e.end_time=se(r.value.end);else{let t=x[n.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return d.value!==`all`&&(e.api_type=d.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),u.value!==`all`&&(e.router_key_id=u.value),f.value!==`all`&&(e.status_code=f.value),e}function C(){r.value={start:``,end:``}}async function w(){try{p.value=await h.getProviders()}catch(n){console.error(`Failed to load providers:`,n),M.error(t(n,e(`logs.messages.loadProvidersFailed`)))}}async function T(){try{m.value=await h.getRouterKeys()}catch(n){console.error(`Failed to load router keys:`,n),M.error(t(n,e(`logs.messages.loadKeysFailed`)))}}async function E(){try{let[e,t]=await Promise.allSettled([h.getMetricsSummary({period:`30d`}),h.getAvailableModels()]);g.value=t.status===`fulfilled`?t.value:[],v.value=e.status===`fulfilled`?[...new Set(e.value.rows.map(e=>e.backend_model))]:[]}catch(e){console.error(`useLogFilters.loadModelOptions:`,e),g.value=[],v.value=[]}}return _(()=>{Promise.allSettled([w(),T(),E()])}),{PERIODS:ke,period:n,dateRange:r,dateRangeError:b,providerFilter:a,clientModelFilter:s,backendModelFilter:c,keyFilter:u,apiTypeFilter:d,statusFilter:f,providers:p,routerKeys:m,clientModelOptions:g,backendModelOptions:v,hasDateRange:y,clearDateRange:C,buildFilterParams:S}}var J=20,Y=864e5;function je(){let{t:e}=i(),n=o([]),r=o(0),a=o(1),s=o({}),c=o(30),u=o(!1),d=o(!1),f=o(new Set),p=o({}),m=o({}),g=o(!1),_=o(null),v=l(()=>Math.ceil(r.value/J));async function y(i){i&&(s.value=i),u.value=!0;try{let e=await h.getLogs({page:a.value,limit:J,view:`grouped`,...s.value});n.value=e.data,r.value=e.total,f.value.clear(),p.value={},m.value={}}catch(n){console.error(`Failed to load logs:`,n),M.error(t(n,e(`logs.messages.loadFailed`)))}finally{u.value=!1}}function b(e){e>=1&&e<=v.value&&e!==a.value&&(a.value=e,y())}let x=o(null),S=o(!1);async function C(){try{let e=new Date(Date.now()-c.value*Y).toISOString(),t=await h.deleteLogsBefore(e);d.value=!1,a.value=1,await y(),x.value=t.deleted,S.value=!0}catch(n){console.error(`Failed to cleanup logs:`,n),M.error(t(n,e(`logs.messages.cleanupFailed`)))}}async function T(n){let r=n.id;if(f.value.has(r)){f.value.delete(r);return}if(f.value.add(r),!p.value[r]){m.value[r]=!0;try{p.value[r]=await h.getLogChildren(r)}catch(n){console.error(`Failed to load child logs:`,n),M.error(t(n,e(`logs.messages.loadSubRequestsFailed`)))}finally{m.value[r]=!1}}}async function E(n){try{let e=await h.getLogDetail(n);_.value=w(e,e.child_count?await h.getLogChildren(n):[]),g.value=!0}catch(n){console.error(`Failed to load log detail:`,n),M.error(t(n,e(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:J,loading:u,logs:n,total:r,page:a,totalPages:v,cleanupDays:c,showCleanup:d,expandedRows:f,childLogs:p,childLoading:m,logDetailOpen:g,selectedLogEntry:_,cleanupResult:x,showCleanupResult:S,loadLogs:y,goToPage:b,handleCleanup:C,toggleExpand:T,openLogDetail:E}}var Me={class:`page`},Ne={class:`flex items-center justify-between mb-4`},Pe={class:`text-lg font-semibold text-foreground`},Fe={class:`flex flex-wrap items-center gap-2 mb-4`},Ie={class:`flex`},Le={class:`flex items-center gap-1`},Re={key:1,class:`text-xs text-destructive whitespace-nowrap`},ze={key:0,class:`absolute inset-0 bg-background/50 flex items-center justify-center z-10`},Be={class:`space-y-3 w-3/4`},Ve={class:`flex flex-col items-center gap-2`},He={class:`text-sm text-muted-foreground`},Ue={key:0,class:`text-xs text-muted-foreground`},We={class:`flex items-center justify-between mt-4`},Ge={class:`text-sm text-muted-foreground`},Ke={class:`flex items-center gap-1`},qe={key:0,class:`px-2 text-sm text-muted-foreground`},Je={class:`flex items-center justify-end mt-2 gap-2`},Ye={class:`text-xs text-muted-foreground`},Xe={class:`text-xs text-muted-foreground`},Ze={class:`text-sm text-muted-foreground`},Qe={class:`mb-4`},$e=9,et=300,tt=7,X=2,Z=1,nt=2e3,rt=m({__name:`Logs`,setup(t){let{t:m}=i(),{PERIODS:h,period:b,dateRange:x,dateRangeError:w,providerFilter:E,clientModelFilter:D,backendModelFilter:O,keyFilter:k,statusFilter:A,providers:se,routerKeys:ce,clientModelOptions:M,backendModelOptions:de,clearDateRange:fe,buildFilterParams:ye}=Ae(),{logs:R,total:Te,page:U,totalPages:W,cleanupDays:G,showCleanup:K,cleanupResult:Ee,showCleanupResult:q,expandedRows:De,childLogs:ke,childLoading:J,logDetailOpen:Y,selectedLogEntry:rt,loadLogs:it,goToPage:Q,handleCleanup:at,toggleExpand:ot,openLogDetail:st,loading:ct}=je(),lt=l(()=>{let e=W.value,t=U.value;if(e<=tt)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}=ee(),$=o(null);function ht(e){mt(e),$.value=e,setTimeout(()=>{$.value===e&&($.value=null)},nt)}let gt=l(()=>E.value!==`all`||D.value!==`all`||O.value!==`all`||k.value!==`all`||A.value!==`all`||!!x.value.start||!!x.value.end);function _t(){b.value=`5h`,x.value={start:``,end:``},E.value=`all`,D.value=`all`,O.value=`all`,k.value=`all`,A.value=`all`}let vt=null;return n([b,x,E,D,O,k,A],()=>{U.value=1,vt&&clearTimeout(vt),vt=setTimeout(()=>it(ye()),et)},{deep:!0}),_(()=>{it(ye()),pt()}),(t,n)=>(p(),f(`div`,Me,[d(`div`,Ne,[d(`h2`,Pe,u(r(m)(`logs.title`)),1),S(r(v),{variant:`ghost`,size:`sm`,onClick:n[0]||=e=>K.value=!0},{default:g(()=>[y(u(r(m)(`logs.cleanupLogs`)),1)]),_:1})]),d(`div`,Fe,[d(`div`,Ie,[(p(!0),f(a,null,C(r(h),e=>(p(),c(r(v),{key:e.value,variant:r(b)===e.value?`default`:`outline`,size:`sm`,class:`rounded-none first:rounded-l-md last:rounded-r-md -ml-px first:ml-0`,onClick:t=>b.value=e.value},{default:g(()=>[y(u(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),d(`div`,Le,[S(r(z),{type:`datetime-local`,modelValue:r(x).start,"onUpdate:modelValue":n[1]||=e=>r(x).start=e,class:`w-44`},null,8,[`modelValue`]),n[19]||=d(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),S(r(z),{type:`datetime-local`,modelValue:r(x).end,"onUpdate:modelValue":n[2]||=e=>r(x).end=e,class:`w-44`},null,8,[`modelValue`]),r(x).start||r(x).end?(p(),c(r(v),{key:0,variant:`ghost`,size:`sm`,onClick:r(fe)},{default:g(()=>[y(u(r(m)(`logs.clear`)),1)]),_:1},8,[`onClick`])):e(``,!0),r(w)?(p(),f(`span`,Re,u(r(w)),1)):e(``,!0)]),S(r(I),{modelValue:r(E),"onUpdate:modelValue":n[3]||=e=>s(E)?E.value=e:null},{default:g(()=>[S(r(P),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allProviders`)),1)]),_:1}),(p(!0),f(a,null,C(r(se),e=>(p(),c(r(N),{key:e.id,value:e.id},{default:g(()=>[y(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(D),"onUpdate:modelValue":n[4]||=e=>s(D)?D.value=e:null},{default:g(()=>[S(r(P),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.filters.allClientModels`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.filters.allClientModels`)),1)]),_:1}),(p(!0),f(a,null,C(r(M),e=>(p(),c(r(N),{key:e,value:e},{default:g(()=>[y(u(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(O),"onUpdate:modelValue":n[5]||=e=>s(O)?O.value=e:null},{default:g(()=>[S(r(P),{class:`w-32 truncate`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.filters.allBackendModels`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.filters.allBackendModels`)),1)]),_:1}),(p(!0),f(a,null,C(r(de),e=>(p(),c(r(N),{key:e,value:e},{default:g(()=>[y(u(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(k),"onUpdate:modelValue":n[6]||=e=>s(k)?k.value=e:null},{default:g(()=>[S(r(P),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allKeys`)),1)]),_:1}),(p(!0),f(a,null,C(r(ce),e=>(p(),c(r(N),{key:e.id,value:e.id},{default:g(()=>[y(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),S(r(I),{modelValue:r(A),"onUpdate:modelValue":n[7]||=e=>s(A)?A.value=e:null},{default:g(()=>[S(r(P),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[S(r(F),{placeholder:r(m)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),S(r(j),null,{default:g(()=>[S(r(N),{value:`all`},{default:g(()=>[y(u(r(m)(`logs.allStatus`)),1)]),_:1}),S(r(N),{value:`200`},{default:g(()=>[...n[20]||=[y(`200`,-1)]]),_:1}),S(r(N),{value:`non200`},{default:g(()=>[y(u(r(m)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),S(r(be),{flush:``,class:`relative`},{default:g(()=>[r(ct)?(p(),f(`div`,ze,[d(`div`,Be,[S(r(L),{class:`h-8 w-full`}),S(r(L),{class:`h-8 w-full`}),S(r(L),{class:`h-8 w-5/6`})])])):e(``,!0),S(r(_e),{"delay-duration":300},{default:g(()=>[S(r(Se),{class:`[&_td]:px-3 [&_th]:px-3`},{default:g(()=>[S(r(Ce),null,{default:g(()=>[S(r(H),{class:`bg-muted`},{default:g(()=>[S(r(V),{class:`w-10`}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.id`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.time`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.clientModel`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.targetModel`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.latency`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.tags`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.latency`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.error`)),1)]),_:1}),S(r(V),{class:`text-muted-foreground`},{default:g(()=>[y(u(r(m)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),S(r(xe),null,{default:g(()=>[(p(!0),f(a,null,C(r(R),t=>(p(),f(a,{key:t.id},[S(Oe,{log:t,expanded:r(De).has(t.id),"copied-id":$.value,onToggleExpand:r(ot),onOpenDetail:r(st),onCopy:ht},null,8,[`log`,`expanded`,`copied-id`,`onToggleExpand`,`onOpenDetail`]),r(De).has(t.id)?(p(),f(a,{key:0},[r(J)[t.id]?(p(),c(r(H),{key:0},{default:g(()=>[S(r(B),{colspan:$e,class:`text-center py-2 pl-10`},{default:g(()=>[S(r(L),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):r(ke)[t.id]?.length?(p(!0),f(a,{key:1},C(r(ke)[t.id],e=>(p(),c(Oe,{key:e.id,log:e,"is-child":!0,"copied-id":$.value,onOpenDetail:r(st),onCopy:ht},null,8,[`log`,`copied-id`,`onOpenDetail`]))),128)):e(``,!0)],64)):e(``,!0)],64))),128)),r(R).length===0&&!r(ct)?(p(),c(r(H),{key:0},{default:g(()=>[S(r(B),{colspan:$e,class:`py-12 text-center`},{default:g(()=>[d(`div`,Ve,[d(`p`,He,u(r(m)(`logs.noLogs`)),1),gt.value?(p(),f(`p`,Ue,u(r(m)(`logs.noLogsFilterHint`)),1)):e(``,!0),gt.value?(p(),c(r(v),{key:1,variant:`ghost`,size:`sm`,onClick:_t},{default:g(()=>[y(u(r(m)(`logs.clearAllFilters`)),1)]),_:1})):e(``,!0)])]),_:1})]),_:1})):e(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),d(`div`,We,[d(`p`,Ge,u(r(m)(`logs.pagination`,{total:r(Te),page:r(U),totalPages:r(W)})),1),d(`div`,Ke,[S(r(v),{variant:`outline`,size:`sm`,onClick:n[8]||=e=>r(Q)(1),disabled:r(U)<=1},{default:g(()=>[y(u(r(m)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),S(r(v),{variant:`outline`,size:`sm`,onClick:n[9]||=e=>r(Q)(r(U)-1),disabled:r(U)<=1},{default:g(()=>[y(u(r(m)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(p(!0),f(a,null,C(lt.value,e=>(p(),f(a,{key:e},[e===`...`?(p(),f(`span`,qe,`...`)):(p(),c(r(v),{key:1,variant:e===r(U)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>r(Q)(e)},{default:g(()=>[y(u(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),S(r(v),{variant:`outline`,size:`sm`,onClick:n[10]||=e=>r(Q)(r(U)+1),disabled:r(U)>=r(W)},{default:g(()=>[y(u(r(m)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),S(r(v),{variant:`outline`,size:`sm`,onClick:n[11]||=e=>r(Q)(r(W)),disabled:r(U)>=r(W)},{default:g(()=>[y(u(r(m)(`logs.lastPage`)),1)]),_:1},8,[`disabled`])])]),d(`div`,Je,[d(`span`,Ye,u(r(m)(`logs.cleanup.autoCleanup`)),1),S(r(z),{type:`number`,modelValue:r(ut),"onUpdate:modelValue":n[12]||=e=>s(ut)?ut.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-16 h-6 text-xs`},null,8,[`modelValue`]),d(`span`,Xe,u(r(m)(`logs.cleanup.days`)),1),S(r(v),{size:`sm`,onClick:r(ft),disabled:r(dt)},{default:g(()=>[y(u(r(m)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])]),S(T,{open:r(Y),"onUpdate:open":n[13]||=e=>s(Y)?Y.value=e:null,source:`history`,"log-entry":r(rt)},null,8,[`open`,`log-entry`]),S(r(re),{open:r(K),"onUpdate:open":n[16]||=e=>s(K)?K.value=e:null},{default:g(()=>[S(r(te),null,{default:g(()=>[S(r(ne),null,{default:g(()=>[S(r(ae),null,{default:g(()=>[y(u(r(m)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),d(`p`,Ze,u(r(m)(`logs.cleanup.description`)),1),d(`div`,Qe,[S(r(oe),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[y(u(r(m)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),S(r(z),{modelValue:r(G),"onUpdate:modelValue":n[14]||=e=>s(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),S(r(ie),null,{default:g(()=>[S(r(v),{variant:`outline`,onClick:n[15]||=e=>K.value=!1},{default:g(()=>[y(u(r(m)(`common.cancel`)),1)]),_:1}),S(r(v),{variant:`destructive`,onClick:r(at)},{default:g(()=>[y(u(r(m)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),S(r(he),{open:r(q),"onUpdate:open":n[18]||=e=>s(q)?q.value=e:null},{default:g(()=>[S(r(ve),null,{default:g(()=>[S(r(ge),null,{default:g(()=>[S(r(me),null,{default:g(()=>[y(u(r(m)(`logs.cleanupResult.title`)),1)]),_:1}),S(r(pe),null,{default:g(()=>[y(u(r(m)(`logs.cleanupResult.description`,{count:r(Ee)})),1)]),_:1})]),_:1}),S(r(le),null,{default:g(()=>[S(r(ue),{onClick:n[17]||=e=>q.value=!1},{default:g(()=>[y(u(r(m)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{rt as default};
@@ -1 +1 @@
1
- import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,L as o,Lt as s,Q as ee,X as c,Xt as l,Z as u,et as d,gt as f,it as p,k as m,kt as h,mt as te,n as g,nt as _,qt as v,rt as y,vt as b}from"./button-BKZEIFFE.js";import{t as ne}from"./arrow-down-CUpEzooo.js";import{t as re}from"./image-C8-jFHbc.js";import{t as x}from"./plus-IMRPIvN7.js";import{a as ie,n as ae,o as oe,r as se,t as ce}from"./dialog-CruRGe5P.js";import{t as S}from"./Label-sQ7fWp0R.js";import{t as C}from"./Switch-BRh_TDGi.js";import{a as w,ct as le,ot as ue,st as de}from"./index-BFtMfyLk.js";import{t as T}from"./Input-CSouVyRo.js";import{t as E}from"./CascadingModelSelect-CKHdcd7h.js";import{t as fe}from"./useProviderGroups-DreRXuIF.js";var pe=o(`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=p({__name:`ModelMappings`,setup(o){let{t:p}=i(),F=s([]),I=s([]),L=s(null),R=s(``),z=s(!1),B=s(!1),V=s(!1),H=s(``),U=s(void 0),W=s([]),G=s(null),K=s(null),q=c(()=>fe(I.value)),J=c(()=>{let e=R.value.toLowerCase().trim();return e?F.value.filter(t=>t.client_model.toLowerCase().includes(e)):F.value}),Y=c(()=>F.value.find(e=>e.id===L.value)??null),X=c(()=>!!G.value),Z=c(()=>!!K.value),nt=c(()=>H.value.trim().length>0&&!!U.value?.model),Q=c(()=>I.value[0]?.id??``);function rt(e){let t=D(e.rule,Q.value);return t.parseError&&w.error(p(`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 $(){let e=await Promise.allSettled([m.getMappingGroups(),m.getProviders()]);e[0].status===`fulfilled`&&(F.value=e[0].value),e[1].status===`fulfilled`&&(I.value=e[1].value),!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 m.updateMappingGroup(Y.value.id,{client_model:e,rule:O(W.value,G.value,K.value)}),await $(),w.success(p(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.save:`,e),w.error(t(e,p(`mappings.messages.saveFailed`)))}finally{z.value=!1}}}async function mt(){if(Y.value)try{await m.toggleMappingGroup(Y.value.id),await $()}catch(e){console.error(`ModelMappings.toggle:`,e),w.error(t(e,p(`mappings.messages.toggleFailed`)))}}async function ht(){if(Y.value)try{await m.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(p(`common.deleteSuccess`))}catch(e){console.error(`ModelMappings.delete:`,e),w.error(t(e,p(`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 t=O([{provider_id:U.value.provider_id,backend_model:U.value.model}],null,null),n=await m.createMappingGroup({client_model:e,rule:t});V.value=!1,await $(),L.value=n.id,w.success(p(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.add:`,e),w.error(t(e,p(`mappings.messages.saveFailed`)))}}return te($),(t,n)=>(f(),d(`div`,he,[u(`div`,ge,[u(`h2`,_e,l(r(p)(`mappings.title`)),1),n[9]||=u(`div`,{class:`flex-1`},null,-1),y(r(g),{size:`sm`,class:`h-[30px] gap-1.5`,onClick:gt},{default:h(()=>[y(r(x),{class:`w-3.5 h-3.5`}),_(` `+l(r(p)(`mappings.addGroup`)),1)]),_:1})]),u(`div`,ve,[u(`aside`,ye,[u(`div`,null,[y(r(T),{modelValue:R.value,"onUpdate:modelValue":n[0]||=e=>R.value=e,placeholder:r(p)(`common.search`)+`...`,class:`h-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])]),u(`span`,be,l(J.value.length)+` / `+l(F.value.length)+` `+l(r(p)(`mappings.totalMappings`,{count:0}).replace(/\d+.*/,``)),1),u(`div`,k,[(f(!0),d(a,null,b(J.value,e=>(f(),d(`div`,{key:e.id,class:v([`flex items-center gap-2.5 px-3 py-2 bg-card rounded-lg border cursor-pointer transition-colors`,L.value===e.id?`border-primary bg-primary/10`:`border-border hover:bg-muted/30`]),onClick:t=>at(e.id)},[u(`div`,j,[u(`div`,{class:v([`font-mono text-xs font-semibold truncate`,e.is_active?`text-foreground`:`text-muted-foreground`])},l(e.client_model),3),u(`div`,{class:v([`text-[10px] truncate mt-0.5`,e.is_active?`text-muted-foreground/60`:`text-muted-foreground/30`])},l(it(e)),3)]),u(`span`,{class:v([`inline-flex items-center gap-1 px-1.5 py-px rounded-full text-[9px] font-mono font-semibold shrink-0`,e.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[u(`span`,{class:v([`w-1 h-1 rounded-full`,e.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),_(` `+l(e.is_active?`ON`:`OFF`),1)],2)],10,A))),128)),J.value.length===0?(f(),d(`div`,M,l(r(p)(`mappings.noGroups`)),1)):e(``,!0)])]),u(`main`,N,[Y.value?(f(),d(a,{key:1},[u(`div`,Se,[u(`span`,Ce,l(Y.value.client_model),1),u(`span`,{class:v([`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`])},[u(`span`,{class:v([`w-1 h-1 rounded-full`,Y.value.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),_(` `+l(Y.value.is_active?`Active`:`Inactive`),1)],2),y(r(C),{"model-value":!!Y.value.is_active,"onUpdate:modelValue":mt},null,8,[`model-value`])]),u(`div`,we,[u(`section`,null,[u(`div`,Te,[y(r(ue),{class:`w-3.5 h-3.5 text-primary/60`}),u(`span`,Ee,l(r(p)(`mappings.editor.failoverChain`)),1),u(`span`,De,l(W.value.length)+` target`+l(W.value.length>1?`s`:``),1)]),u(`div`,Oe,[(f(!0),d(a,null,b(W.value,(t,n)=>(f(),d(`div`,{key:n,class:`flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-md`},[u(`span`,{class:v([`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`])},l(n+1),3),u(`div`,ke,[y(E,{providers:q.value,"model-value":{provider_id:t.provider_id,model:t.backend_model},compact:``,placeholder:r(p)(`mappings.selectProviderModel`),"onUpdate:modelValue":e=>ct(n,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),W.value.length>1?(f(),ee(r(g),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>st(n)},{default:h(()=>[y(r(de),{class:`w-3 h-3`})]),_:1},8,[`onClick`])):e(``,!0)]))),128))]),y(r(g),{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:h(()=>[y(r(x),{class:`w-3 h-3 mr-1`}),_(` `+l(r(p)(`mappings.addBackup`)),1)]),_:1})]),n[10]||=u(`div`,{class:`border-t border-dashed border-primary/10`},null,-1),u(`section`,null,[u(`div`,Ae,[y(r(ne),{class:`w-3.5 h-3.5 text-primary/50`}),u(`span`,je,l(r(p)(`mappings.editor.contextOverflow`)),1),X.value?(f(),d(`span`,Me,l(r(p)(`mappings.enabled`)),1)):e(``,!0)]),u(`div`,Ne,[u(`div`,Pe,[y(r(C),{"model-value":X.value,"onUpdate:modelValue":lt},null,8,[`model-value`]),u(`span`,Fe,l(r(p)(`mappings.overflowTooltip`)),1)]),X.value?(f(),d(`div`,Ie,[u(`div`,Le,[y(E,{providers:q.value,"model-value":G.value?{provider_id:G.value.provider_id,model:G.value.model}:void 0,compact:``,dashed:``,placeholder:r(p)(`mappings.selectModel`),"onUpdate:modelValue":n[1]||=e=>ut(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(f(),d(`span`,Re,l(r(p)(`mappings.overflowTooltip`)),1))])]),u(`section`,null,[u(`div`,ze,[y(r(re),{class:`w-3.5 h-3.5 text-blue-500/50`}),u(`span`,Be,l(r(p)(`mappings.editor.multimodalFallback`)),1),Z.value?(f(),d(`span`,Ve,l(r(p)(`mappings.enabled`)),1)):e(``,!0)]),u(`div`,He,[u(`div`,Ue,[y(r(C),{"model-value":Z.value,"onUpdate:modelValue":dt},null,8,[`model-value`]),u(`span`,We,l(r(p)(`mappings.multimodalFallback.add`)),1)]),Z.value?(f(),d(`div`,Ge,[u(`div`,Ke,[y(E,{providers:q.value,"model-value":K.value?{provider_id:K.value.provider_id,model:K.value.backend_model}:void 0,compact:``,dashed:``,placeholder:r(p)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[2]||=e=>ft(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(f(),d(`span`,qe,l(r(p)(`mappings.multimodalFallback.add`)),1)),Z.value?(f(),d(`div`,Je,[y(r(le),{class:`w-3 h-3 text-warning shrink-0`}),u(`span`,Ye,l(r(p)(`mappings.multimodalFallback.sessionLockWarning`)),1)])):e(``,!0)])])]),u(`div`,Xe,[B.value?(f(),d(`div`,P,[_(l(r(p)(`mappings.confirmDeleteDesc`,{model:Y.value.client_model}))+` `,1),y(r(g),{variant:`destructive`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:ht},{default:h(()=>[_(l(r(p)(`common.yes`)),1)]),_:1}),y(r(g),{variant:`ghost`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:n[3]||=e=>B.value=!1},{default:h(()=>[_(l(r(p)(`common.no`)),1)]),_:1})])):(f(),d(a,{key:1},[u(`span`,Ze,` ID: `+l(Y.value.id),1),u(`div`,Qe,[y(r(g),{variant:`ghost`,size:`sm`,class:`text-xs text-danger hover:text-danger`,onClick:n[4]||=e=>B.value=!0},{default:h(()=>[_(l(r(p)(`common.delete`)),1)]),_:1}),y(r(g),{size:`sm`,class:`text-xs`,disabled:z.value,onClick:pt},{default:h(()=>[_(l(z.value?r(p)(`common.saving`):r(p)(`common.save`)),1)]),_:1},8,[`disabled`])])],64))])],64)):(f(),d(`div`,xe,[y(r(pe),{class:`w-6 h-6 opacity-40`}),_(` `+l(r(p)(`mappings.selectProviderOrModel`)),1)]))])]),y(r(oe),{open:V.value,"onUpdate:open":n[8]||=e=>V.value=!1},{default:h(()=>[y(r(ie),{class:`max-w-md`},{default:h(()=>[y(r(ae),null,{default:h(()=>[y(r(ce),null,{default:h(()=>[_(l(r(p)(`mappings.addGroup`)),1)]),_:1})]),_:1}),u(`div`,$e,[u(`div`,et,[y(r(S),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(l(r(p)(`mappings.clientModel`)),1)]),_:1}),y(r(T),{modelValue:H.value,"onUpdate:modelValue":n[5]||=e=>H.value=e,placeholder:r(p)(`mappings.editor.clientInputPlaceholder`),class:`h-8 font-mono text-xs`},null,8,[`modelValue`,`placeholder`])]),u(`div`,tt,[y(r(S),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(l(r(p)(`mappings.selectProviderModel`)),1)]),_:1}),y(E,{providers:q.value,"model-value":U.value,compact:``,placeholder:r(p)(`mappings.selectProviderModel`),"onUpdate:modelValue":n[6]||=e=>U.value=e},null,8,[`providers`,`model-value`,`placeholder`])])]),y(r(se),null,{default:h(()=>[y(r(g),{variant:`ghost`,size:`sm`,onClick:n[7]||=e=>V.value=!1},{default:h(()=>[_(l(r(p)(`common.cancel`)),1)]),_:1}),y(r(g),{size:`sm`,disabled:!nt.value,onClick:_t},{default:h(()=>[_(l(r(p)(`mappings.addGroup`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{F as default};
1
+ import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,L as o,Lt as s,Q as ee,X as c,Xt as l,Z as u,et as d,gt as f,it as p,k as m,kt as h,mt as te,n as g,nt as _,qt as v,rt as y,vt as b}from"./button-BJEwiB8A.js";import{t as ne}from"./arrow-down-BYVAWREL.js";import{t as re}from"./image-DWAFh4CH.js";import{t as x}from"./plus-B_GSrrcs.js";import{a as ie,n as ae,o as oe,r as se,t as ce}from"./dialog-BwSmcgaV.js";import{t as S}from"./Label-C-4yGDcj.js";import{t as C}from"./Switch-vb3eQrUY.js";import{a as w,ct as le,ot as ue,st as de}from"./index-3DIQxot0.js";import{t as T}from"./Input-qtzKspPF.js";import{t as E}from"./CascadingModelSelect-CEA1IWYp.js";import{t as fe}from"./useProviderGroups-BCau8ZEY.js";var pe=o(`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=p({__name:`ModelMappings`,setup(o){let{t:p}=i(),F=s([]),I=s([]),L=s(null),R=s(``),z=s(!1),B=s(!1),V=s(!1),H=s(``),U=s(void 0),W=s([]),G=s(null),K=s(null),q=c(()=>fe(I.value)),J=c(()=>{let e=R.value.toLowerCase().trim();return e?F.value.filter(t=>t.client_model.toLowerCase().includes(e)):F.value}),Y=c(()=>F.value.find(e=>e.id===L.value)??null),X=c(()=>!!G.value),Z=c(()=>!!K.value),nt=c(()=>H.value.trim().length>0&&!!U.value?.model),Q=c(()=>I.value[0]?.id??``);function rt(e){let t=D(e.rule,Q.value);return t.parseError&&w.error(p(`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 $(){let e=await Promise.allSettled([m.getMappingGroups(),m.getProviders()]);e[0].status===`fulfilled`&&(F.value=e[0].value),e[1].status===`fulfilled`&&(I.value=e[1].value),!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 m.updateMappingGroup(Y.value.id,{client_model:e,rule:O(W.value,G.value,K.value)}),await $(),w.success(p(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.save:`,e),w.error(t(e,p(`mappings.messages.saveFailed`)))}finally{z.value=!1}}}async function mt(){if(Y.value)try{await m.toggleMappingGroup(Y.value.id),await $()}catch(e){console.error(`ModelMappings.toggle:`,e),w.error(t(e,p(`mappings.messages.toggleFailed`)))}}async function ht(){if(Y.value)try{await m.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(p(`common.deleteSuccess`))}catch(e){console.error(`ModelMappings.delete:`,e),w.error(t(e,p(`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 t=O([{provider_id:U.value.provider_id,backend_model:U.value.model}],null,null),n=await m.createMappingGroup({client_model:e,rule:t});V.value=!1,await $(),L.value=n.id,w.success(p(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.add:`,e),w.error(t(e,p(`mappings.messages.saveFailed`)))}}return te($),(t,n)=>(f(),d(`div`,he,[u(`div`,ge,[u(`h2`,_e,l(r(p)(`mappings.title`)),1),n[9]||=u(`div`,{class:`flex-1`},null,-1),y(r(g),{size:`sm`,class:`h-[30px] gap-1.5`,onClick:gt},{default:h(()=>[y(r(x),{class:`w-3.5 h-3.5`}),_(` `+l(r(p)(`mappings.addGroup`)),1)]),_:1})]),u(`div`,ve,[u(`aside`,ye,[u(`div`,null,[y(r(T),{modelValue:R.value,"onUpdate:modelValue":n[0]||=e=>R.value=e,placeholder:r(p)(`common.search`)+`...`,class:`h-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])]),u(`span`,be,l(J.value.length)+` / `+l(F.value.length)+` `+l(r(p)(`mappings.totalMappings`,{count:0}).replace(/\d+.*/,``)),1),u(`div`,k,[(f(!0),d(a,null,b(J.value,e=>(f(),d(`div`,{key:e.id,class:v([`flex items-center gap-2.5 px-3 py-2 bg-card rounded-lg border cursor-pointer transition-colors`,L.value===e.id?`border-primary bg-primary/10`:`border-border hover:bg-muted/30`]),onClick:t=>at(e.id)},[u(`div`,j,[u(`div`,{class:v([`font-mono text-xs font-semibold truncate`,e.is_active?`text-foreground`:`text-muted-foreground`])},l(e.client_model),3),u(`div`,{class:v([`text-[10px] truncate mt-0.5`,e.is_active?`text-muted-foreground/60`:`text-muted-foreground/30`])},l(it(e)),3)]),u(`span`,{class:v([`inline-flex items-center gap-1 px-1.5 py-px rounded-full text-[9px] font-mono font-semibold shrink-0`,e.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[u(`span`,{class:v([`w-1 h-1 rounded-full`,e.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),_(` `+l(e.is_active?`ON`:`OFF`),1)],2)],10,A))),128)),J.value.length===0?(f(),d(`div`,M,l(r(p)(`mappings.noGroups`)),1)):e(``,!0)])]),u(`main`,N,[Y.value?(f(),d(a,{key:1},[u(`div`,Se,[u(`span`,Ce,l(Y.value.client_model),1),u(`span`,{class:v([`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`])},[u(`span`,{class:v([`w-1 h-1 rounded-full`,Y.value.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),_(` `+l(Y.value.is_active?`Active`:`Inactive`),1)],2),y(r(C),{"model-value":!!Y.value.is_active,"onUpdate:modelValue":mt},null,8,[`model-value`])]),u(`div`,we,[u(`section`,null,[u(`div`,Te,[y(r(ue),{class:`w-3.5 h-3.5 text-primary/60`}),u(`span`,Ee,l(r(p)(`mappings.editor.failoverChain`)),1),u(`span`,De,l(W.value.length)+` target`+l(W.value.length>1?`s`:``),1)]),u(`div`,Oe,[(f(!0),d(a,null,b(W.value,(t,n)=>(f(),d(`div`,{key:n,class:`flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-md`},[u(`span`,{class:v([`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`])},l(n+1),3),u(`div`,ke,[y(E,{providers:q.value,"model-value":{provider_id:t.provider_id,model:t.backend_model},compact:``,placeholder:r(p)(`mappings.selectProviderModel`),"onUpdate:modelValue":e=>ct(n,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),W.value.length>1?(f(),ee(r(g),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>st(n)},{default:h(()=>[y(r(de),{class:`w-3 h-3`})]),_:1},8,[`onClick`])):e(``,!0)]))),128))]),y(r(g),{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:h(()=>[y(r(x),{class:`w-3 h-3 mr-1`}),_(` `+l(r(p)(`mappings.addBackup`)),1)]),_:1})]),n[10]||=u(`div`,{class:`border-t border-dashed border-primary/10`},null,-1),u(`section`,null,[u(`div`,Ae,[y(r(ne),{class:`w-3.5 h-3.5 text-primary/50`}),u(`span`,je,l(r(p)(`mappings.editor.contextOverflow`)),1),X.value?(f(),d(`span`,Me,l(r(p)(`mappings.enabled`)),1)):e(``,!0)]),u(`div`,Ne,[u(`div`,Pe,[y(r(C),{"model-value":X.value,"onUpdate:modelValue":lt},null,8,[`model-value`]),u(`span`,Fe,l(r(p)(`mappings.overflowTooltip`)),1)]),X.value?(f(),d(`div`,Ie,[u(`div`,Le,[y(E,{providers:q.value,"model-value":G.value?{provider_id:G.value.provider_id,model:G.value.model}:void 0,compact:``,dashed:``,placeholder:r(p)(`mappings.selectModel`),"onUpdate:modelValue":n[1]||=e=>ut(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(f(),d(`span`,Re,l(r(p)(`mappings.overflowTooltip`)),1))])]),u(`section`,null,[u(`div`,ze,[y(r(re),{class:`w-3.5 h-3.5 text-blue-500/50`}),u(`span`,Be,l(r(p)(`mappings.editor.multimodalFallback`)),1),Z.value?(f(),d(`span`,Ve,l(r(p)(`mappings.enabled`)),1)):e(``,!0)]),u(`div`,He,[u(`div`,Ue,[y(r(C),{"model-value":Z.value,"onUpdate:modelValue":dt},null,8,[`model-value`]),u(`span`,We,l(r(p)(`mappings.multimodalFallback.add`)),1)]),Z.value?(f(),d(`div`,Ge,[u(`div`,Ke,[y(E,{providers:q.value,"model-value":K.value?{provider_id:K.value.provider_id,model:K.value.backend_model}:void 0,compact:``,dashed:``,placeholder:r(p)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[2]||=e=>ft(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(f(),d(`span`,qe,l(r(p)(`mappings.multimodalFallback.add`)),1)),Z.value?(f(),d(`div`,Je,[y(r(le),{class:`w-3 h-3 text-warning shrink-0`}),u(`span`,Ye,l(r(p)(`mappings.multimodalFallback.sessionLockWarning`)),1)])):e(``,!0)])])]),u(`div`,Xe,[B.value?(f(),d(`div`,P,[_(l(r(p)(`mappings.confirmDeleteDesc`,{model:Y.value.client_model}))+` `,1),y(r(g),{variant:`destructive`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:ht},{default:h(()=>[_(l(r(p)(`common.yes`)),1)]),_:1}),y(r(g),{variant:`ghost`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:n[3]||=e=>B.value=!1},{default:h(()=>[_(l(r(p)(`common.no`)),1)]),_:1})])):(f(),d(a,{key:1},[u(`span`,Ze,` ID: `+l(Y.value.id),1),u(`div`,Qe,[y(r(g),{variant:`ghost`,size:`sm`,class:`text-xs text-danger hover:text-danger`,onClick:n[4]||=e=>B.value=!0},{default:h(()=>[_(l(r(p)(`common.delete`)),1)]),_:1}),y(r(g),{size:`sm`,class:`text-xs`,disabled:z.value,onClick:pt},{default:h(()=>[_(l(z.value?r(p)(`common.saving`):r(p)(`common.save`)),1)]),_:1},8,[`disabled`])])],64))])],64)):(f(),d(`div`,xe,[y(r(pe),{class:`w-6 h-6 opacity-40`}),_(` `+l(r(p)(`mappings.selectProviderOrModel`)),1)]))])]),y(r(oe),{open:V.value,"onUpdate:open":n[8]||=e=>V.value=!1},{default:h(()=>[y(r(ie),{class:`max-w-md`},{default:h(()=>[y(r(ae),null,{default:h(()=>[y(r(ce),null,{default:h(()=>[_(l(r(p)(`mappings.addGroup`)),1)]),_:1})]),_:1}),u(`div`,$e,[u(`div`,et,[y(r(S),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(l(r(p)(`mappings.clientModel`)),1)]),_:1}),y(r(T),{modelValue:H.value,"onUpdate:modelValue":n[5]||=e=>H.value=e,placeholder:r(p)(`mappings.editor.clientInputPlaceholder`),class:`h-8 font-mono text-xs`},null,8,[`modelValue`,`placeholder`])]),u(`div`,tt,[y(r(S),{class:`text-xs text-muted-foreground`},{default:h(()=>[_(l(r(p)(`mappings.selectProviderModel`)),1)]),_:1}),y(E,{providers:q.value,"model-value":U.value,compact:``,placeholder:r(p)(`mappings.selectProviderModel`),"onUpdate:modelValue":n[6]||=e=>U.value=e},null,8,[`providers`,`model-value`,`placeholder`])])]),y(r(se),null,{default:h(()=>[y(r(g),{variant:`ghost`,size:`sm`,onClick:n[7]||=e=>V.value=!1},{default:h(()=>[_(l(r(p)(`common.cancel`)),1)]),_:1}),y(r(g),{size:`sm`,disabled:!nt.value,onClick:_t},{default:h(()=>[_(l(r(p)(`mappings.addGroup`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{F as default};
@@ -1 +1 @@
1
- import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,Lt as o,Nt as s,Q as c,Wt as l,X as u,Xt as d,Yt as f,Z as p,et as m,gt as h,ht as g,it as _,k as v,kt as y,mt as ee,n as b,nt as x,q as S,qt as C,rt as w,vt as T,zt as E}from"./button-BKZEIFFE.js";import{n as D,t as O}from"./UnifiedRequestDialog-BzRXPsTD.js";import{n as te,t as k}from"./useClipboard-CwZtAc72.js";import{n as ne,r as re,t as A}from"./TooltipTrigger-CHU60MyA.js";import{n as ie,t as ae}from"./CollapsibleContent-DE4ywG7w.js";import{t as oe}from"./CollapsibleTrigger-CgHghQOk.js";import{_t as j,a as se,c as ce,d as le,f as ue,gt as de,ht as fe,l as pe,o as me,p as he,s as ge,st as _e,u as ve}from"./index-BFtMfyLk.js";import{t as ye}from"./badge-Ccpzh1js.js";import{a as be,i as M,n as N,o as xe,r as P,t as Se}from"./TableHeader-B8F2wgND.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=_({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{},queuedCount:{},concurrency:{}},setup(t){let{t:n}=i();return(i,o)=>(h(),m(`div`,Ce,[p(`div`,R,[p(`span`,z,d(t.activeCount),1),p(`div`,we,[p(`span`,Te,d(r(n)(`monitor.header.activeRequests`)),1),p(`span`,B,d(r(n)(`monitor.header.streamNonStream`,{stream:t.streamCount,nonStream:t.activeCount-t.streamCount})),1)]),t.queuedCount>0?(h(),m(`span`,Ee,d(t.queuedCount)+` `+d(r(n)(`monitor.queued`)),1)):e(``,!0)]),p(`div`,De,[p(`span`,Oe,d(r(n)(`monitor.concurrency`)),1),t.concurrency.length===0?(h(),m(`div`,ke,d(r(n)(`monitor.concurrencyPanel.noData`)),1)):e(``,!0),(h(!0),m(a,null,T(t.concurrency,t=>(h(),m(`div`,{key:t.providerId,class:`flex items-center gap-1.5`},[p(`span`,{class:`text-[11px] font-medium text-muted-foreground w-[130px] shrink-0 truncate`,title:t.providerName},d(t.providerName),9,Ae),p(`div`,V,[r(F)(t)>0?(h(),m(`div`,{key:0,class:C([`h-full rounded-sm transition-all duration-300`,r(I)(t.active,r(F)(t))]),style:f({width:`${Math.min(100,t.active/r(F)(t)*100)}%`})},null,6)):e(``,!0)]),p(`span`,{class:C([`font-mono text-[11px] text-muted-foreground w-10 text-right shrink-0`,r(L)(t.active,r(F)(t))])},[t.adaptiveEnabled?(h(),m(a,{key:0},[x(d(t.active)+`/`+d(t.adaptiveLimit??t.maxConcurrency),1)],64)):t.maxConcurrency===0?(h(),m(a,{key:1},[x(d(r(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(h(),m(a,{key:2},[x(d(t.active)+`/`+d(t.maxConcurrency),1)],64))],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=_({__name:`RuntimePanel`,props:{runtime:{}},setup(e){let{t}=i(),n=e,a=u(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(J,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*J));return(n,i)=>e.runtime?(h(),m(`div`,Ne,[p(`div`,Pe,[p(`span`,Fe,d(r(t)(`monitor.runtimePanel.memoryRss`)),1),p(`span`,Ie,d(r(j)(e.runtime.memoryUsage.rss)),1)]),p(`div`,H,[p(`span`,Le,d(r(t)(`monitor.runtimePanel.eventLoopDelay`)),1),p(`span`,Re,d(e.runtime.eventLoopDelayMs.toFixed(1))+`ms`,1)]),p(`div`,U,[p(`span`,ze,d(r(t)(`monitor.runtimePanel.activeHandles`)),1),p(`span`,W,d(e.runtime.activeHandles),1)]),p(`div`,G,[p(`div`,K,[p(`span`,Be,d(r(t)(`monitor.runtimePanel.heapUsage`)),1),p(`span`,Ve,d(r(j)(e.runtime.memoryUsage.heapUsed))+` / `+d(r(j)(e.runtime.memoryUsage.heapTotal)),1)]),p(`div`,q,[p(`div`,{class:`h-full bg-primary rounded-sm transition-all duration-300`,style:f({width:`${a.value}%`})},null,4)])])])):(h(),m(`div`,Me,d(r(t)(`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=_({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(e){let{t}=i(),n=e,o=u(()=>Object.values(n.byStatusCode).reduce((e,t)=>e+t,0)),s=u(()=>{let e=n.byStatusCode,t=o.value||1,r=c(e,200,299),i=c(e,400,499)-(e[429]||0),a=e[429]||0,s=c(e,500,599);return[{label:`2xx`,count:r,percent:(r/t*100).toFixed(1),textClass:`text-success`,dotClass:`bg-success`},{label:`4xx`,count:i,percent:(i/t*100).toFixed(1),textClass:`text-warning`,dotClass:`bg-warning`},{label:`429`,count:a,percent:(a/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 c(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(e,n)=>o.value===0?(h(),m(`div`,Ue,d(r(t)(`monitor.statusCodes.noData`)),1)):(h(),m(`div`,We,[(h(!0),m(a,null,T(s.value,e=>(h(),m(`div`,{key:e.label,class:`flex items-center gap-1.5 py-[3px] border-t border-foreground/[0.04] first:border-t-0`},[p(`span`,{class:C([`size-[5px] rounded-full shrink-0`,e.dotClass])},null,2),p(`span`,Ge,d(e.label),1),p(`span`,{class:C([`font-mono text-[11px]`,e.textClass])},d(e.count),3),p(`span`,Ke,d(e.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=_({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let{t:n}=i(),o=t,s=u(()=>o.stats?Object.entries(o.stats.byProvider).filter(([e])=>typeof e==`string`).map(([e,t])=>({id:e,name:t.providerName,stats:t,successRate:t.totalRequests>0?t.successCount/t.totalRequests*Ze:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*Ze:0})):[]);return(i,o)=>t.stats?s.value.length===0?(h(),m(`div`,Y,d(r(n)(`monitor.providerTable.noProviders`)),1)):(h(),c(r(xe),{key:2},{default:y(()=>[w(r(Se),null,{default:y(()=>[w(r(P),{class:`border-b-0`},{default:y(()=>[w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.provider`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.requests`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.successRate`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.avgLatency`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.retryRate`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),w(r(be),null,{default:y(()=>[(h(!0),m(a,null,T(s.value,t=>(h(),c(r(P),{key:t.id,class:`border-b-0 hover:bg-muted/50`},{default:y(()=>[w(r(M),{class:`font-medium text-[13px] py-1`},{default:y(()=>[x(d(t.name),1)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[x(d(t.stats.totalRequests),1)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[p(`span`,{class:C(t.successRate>=95?`text-success`:t.successRate>=80?`text-warning`:`text-danger`)},d(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[x(d(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[p(`span`,{class:C(t.retryRate>10?`text-warning`:``)},d(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),w(r(M),{class:`py-1`},{default:y(()=>[p(`div`,Ye,[(h(!0),m(a,null,T(t.stats.topErrors.slice(0,3),e=>(h(),c(r(ye),{key:e.code,variant:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:y(()=>[x(d(e.code)+` (`+d(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(h(),m(`span`,Xe,`--`)):e(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(h(),m(`div`,Je,d(r(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 g(()=>{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),l(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))}l(t.activeRequests);break}case`runtime_update`:t.runtime.value=n;break}}async function rt(e,t,n,r,i){try{let[a,o,s,c,l]=await Promise.allSettled([v.getMonitorActive(),v.getMonitorRecent(),v.getMonitorStats(),v.getMonitorConcurrency(),v.getMonitorRuntime()]);a.status===`fulfilled`&&(e.value=a.value),o.status===`fulfilled`&&(t.value=o.value),s.status===`fulfilled`&&(n.value=s.value),c.status===`fulfilled`&&(r.value=c.value),l.status===`fulfilled`&&(i.value=l.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),n.value=null,r.value=[],i.value=null}}function it(){let e=E([]),t=o([]),r=o(null),i=o([]),a=o(null),s=o(!1),c=!1,l=u(()=>e.value.filter(e=>e.isStream).length),d=u(()=>e.value.filter(e=>!e.queued)),f=u(()=>e.value.filter(e=>e.queued===!0)),p=n=>nt(n,{recentCompleted:t,activeRequests:e,concurrency:i,stats:r,runtime:a});async function m(){if(s.value=!0,!c){c=!0;return}await et(e,()=>v.getMonitorActive())}function h(){s.value=!1}let _=()=>rt(e,t,r,i,a),{connect:y,disconnect:ee}=X(`/admin/api/monitor/stream`,{request_start:p,request_update:p,request_complete:p,concurrency_update:p,stats_update:p,runtime_update:p,stream_content_update:p},{onOpen:m,onClose:h}),b=o(null),x=o(!1),S=o(0);async function C(n){let r=++S.value,i=e.value.find(e=>e.id===n)??t.value.find(e=>e.id===n);if(!i){b.value=null;return}b.value=null,x.value=!0;try{if(i.status===`pending`){try{let e=await v.getMonitorRequest(n);if(r!==S.value)return;b.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==Q)throw e;if(r!==S.value)return;let t=await v.getLogDetail(n);if(r!==S.value)return;b.value=t.client_request?{clientRequest:t.client_request}:null}return}let e=await v.getLogDetail(n);if(r!==S.value)return;let t;if(!i.isStream){let n=e.upstream_response;if(n)try{let e=JSON.parse(n);t=(typeof e.body==`string`?e.body:n)??void 0}catch{t=n}}b.value={responseBody:t,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==S.value)return;console.warn(`Failed to load log detail:`,e),b.value=null}finally{r===S.value&&(x.value=!1)}}let w=o(null),T=o(!1),D=o(null),O=null;function te(t){if(k(),!t)return;let n=async()=>{let n=e.value.find(e=>e.id===t);if(!n||n.status===`completed`||n.status===`failed`){k();return}try{let e=await v.getMonitorRequest(t);if(w.value!==t)return;e.streamContent&&(D.value=e.streamContent)}catch(e){e?.response?.status===Q&&k()}};n(),O=setInterval(n,$)}function k(){O&&=(clearInterval(O),null)}function ne(e){w.value=e,T.value=!0,D.value=null;let n=t.value.find(t=>t.id===e);n&&(n.status===`completed`||n.status===`failed`)&&(n.streamContent?D.value=n.streamContent:re(e)),te(e),C(e)}async function re(e){try{let t=await v.getMonitorRequest(e);if(w.value!==e)return;t.streamContent&&(D.value=t.streamContent)}catch(e){console.error(`loadCompletedStreamContent:`,e)}}let A=u(()=>w.value?e.value.find(e=>e.id===w.value)??t.value.find(e=>e.id===w.value)??null:null);return n(()=>A.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&(k(),C(w.value))}),g(()=>{k()}),{activeRequests:e,recentCompleted:t,stats:r,concurrency:i,runtime:a,connected:s,streamCount:l,streamingRequests:d,queuedRequests:f,selectedRequestId:w,selectedRequest:A,requestDetailOpen:T,selectRequest:ne,selectedStreamContent:D,logDetailData:b,nonStreamBodyLoading:x,connect:y,disconnect:ee,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=_({__name:`Monitor`,setup(n){let{t:l}=i(),{activeRequests:_,recentCompleted:E,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=o(`active`),Me=u(()=>[{key:`active`,label:l(`monitor.activeRequests`),count:R.value.length},{key:`queued`,label:l(`monitor.queuedRequests`),count:z.value.length},{key:`recent`,label:l(`monitor.completed`),count:E.value.length}]),Ne={active:()=>R.value,queued:()=>z.value,recent:()=>E.value},Pe={active:l(`monitor.noActiveRequests`),queued:l(`monitor.noQueuedRequests`),recent:l(`monitor.noCompletedRequests`)},Fe=u(()=>Ne[V.value]()),Ie=u(()=>Pe[V.value]),H=o(null);function Le(e){H.value=H.value===e?null:e}let{copy:Re}=k(),U=o(null);function ze(e){Re(e),U.value=e,setTimeout(()=>{U.value===e&&(U.value=null)},ln)}let W=o(!1),G=o(null),K=u(()=>G.value?_.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 v.killMonitorRequest(G.value),_.value=_.value.filter(e=>e.id!==G.value),se.success(l(`monitor.killSuccess`))}catch(e){console.error(`Monitor.killRequest:`,e),se.error(t(e,l(`monitor.killFailed`)))}W.value=!1}}let q=o(!0),J=u(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.errorCount/j.value.totalRequests*dn).toFixed(1)),Ue=u(()=>{let e=Number.parseFloat(J.value);return e>=pn?`text-danger`:e>=fn?`text-warning`:`text-foreground`}),We=u(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.retryCount/j.value.totalRequests*dn).toFixed(1)),Ge=u(()=>j.value?j.value.p50LatencyMs.toFixed(0):`--`),Ke=u(()=>j.value?j.value.p99LatencyMs.toFixed(0):`--`),Je=u(()=>{if(!j.value||!I.value||I.value.uptimeMs===0)return`--`;let e=I.value.uptimeMs/un;return(j.value.totalRequests/e).toFixed(1)}),Y=u(()=>{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=u(()=>{let e=Y.value.pct;return e>=hn?`bg-danger`:e>=gn?`bg-warning`:`bg-primary`}),Xe=u(()=>I.value?$e(I.value.uptimeMs):`--`),Ze=u(()=>!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=o(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)}),g(()=>{$(),document.removeEventListener(`visibilitychange`,et)}),(t,n)=>(h(),m(`div`,at,[p(`div`,ot,[p(`h2`,st,d(r(l)(`monitor.title`)),1),w(r(ye),{variant:r(L)?`default`:`destructive`},{default:y(()=>[x(d(r(L)?r(l)(`monitor.connected`):r(l)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])]),w(je,{stats:r(j),"active-count":r(_).length,"stream-count":r(Ce),"queued-count":r(z).length,concurrency:r(F)},null,8,[`stats`,`active-count`,`stream-count`,`queued-count`,`concurrency`]),p(`div`,ct,[p(`div`,lt,[(h(!0),m(a,null,T(Me.value,t=>(h(),c(r(b),{key:t.key,variant:`ghost`,class:C([`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:y(()=>[x(d(t.label)+` `,1),p(`span`,{class:C([`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`])},d(t.count),3),V.value===t.key?(h(),m(`span`,ut)):e(``,!0)]),_:2},1032,[`class`,`onClick`]))),128))]),w(r(D),{class:`h-[252px]`},{default:y(()=>[w(r(xe),null,{default:y(()=>[w(r(Se),null,{default:y(()=>[w(r(P),{class:`border-b-0 hover:bg-transparent`},{default:y(()=>[w(r(N),{class:`w-9 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:y(()=>[...n[4]||=[x(`Model`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:y(()=>[...n[5]||=[x(`Provider`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-16`},{default:y(()=>[...n[6]||=[x(`Type`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:y(()=>[...n[7]||=[x(`Elapsed`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:y(()=>[...n[8]||=[x(`Speed`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:y(()=>[...n[9]||=[x(`Output`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-14`})]),_:1})]),_:1}),w(r(be),null,{default:y(()=>[Fe.value.length===0?(h(),c(r(P),{key:0,class:`border-b-0 h-[220px]`},{default:y(()=>[w(r(M),{colspan:`8`,class:`text-center text-[13px] text-muted-foreground align-middle`},{default:y(()=>[x(d(Ie.value),1)]),_:1})]),_:1})):e(``,!0),(h(!0),m(a,null,T(Fe.value,t=>(h(),m(a,{key:t.id},[w(r(P),{class:C([`cursor-pointer transition-colors border-b border-foreground/[0.04] hover:bg-muted/40`,[r(we)===t.id?`bg-primary/10`:``,V.value===`recent`?`opacity-60 hover:opacity-80`:``]]),onClick:e=>r(Ee)(t.id)},{default:y(()=>[w(r(M),{class:`px-3 py-1`},{default:y(()=>[p(`span`,{class:C([`inline-block size-2 rounded-full shrink-0`,xn(t)])},null,2)]),_:2},1024),w(r(M),{class:`px-3 py-1 text-[13px] font-medium truncate max-w-[200px]`},{default:y(()=>[x(d(t.model),1)]),_:2},1024),w(r(M),{class:`px-3 py-1 font-mono text-[11px] text-muted-foreground`},{default:y(()=>[x(d(t.providerName),1)]),_:2},1024),w(r(M),{class:`px-3 py-1`},{default:y(()=>[t.isStream?(h(),m(`span`,dt,` SSE `)):(h(),m(`span`,ft,` Sync `))]),_:2},1024),w(r(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:y(()=>[x(d(tt(t)),1)]),_:2},1024),w(r(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:y(()=>[x(d(nt(t)),1)]),_:2},1024),w(r(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:y(()=>[x(d(rt(t)),1)]),_:2},1024),w(r(M),{class:`px-3 py-1`},{default:y(()=>[p(`div`,{class:`flex items-center gap-0.5 justify-end`,onClick:n[0]||=S(()=>{},[`stop`])},[w(r(re),null,{default:y(()=>[w(r(A),{"as-child":``},{default:y(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:S(e=>ze(t.id),[`stop`])},{default:y(()=>[U.value===t.id?(h(),c(r(de),{key:0,class:`size-3 text-success`})):(h(),c(r(te),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),w(r(ne),null,{default:y(()=>[x(d(r(l)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),Sn(t)?(h(),c(r(re),{key:0},{default:y(()=>[w(r(A),{"as-child":``},{default:y(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6 text-destructive hover:text-destructive`,onClick:S(e=>Be(t.id),[`stop`])},{default:y(()=>[w(r(_e),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),w(r(ne),null,{default:y(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:2},1024)):e(``,!0),w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:S(e=>Le(t.id),[`stop`])},{default:y(()=>[w(r(fe),{class:C([`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?(h(),c(r(P),{key:0,class:`border-b border-foreground/[0.04] bg-foreground/[0.02]`},{default:y(()=>[w(r(M),{colspan:`8`,class:`px-3 py-2`},{default:y(()=>[p(`div`,pt,[p(`div`,null,[n[10]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Request ID `,-1),p(`div`,mt,d(t.id),1)]),p(`div`,null,[n[11]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Input Tokens `,-1),p(`div`,ht,d(t.streamMetrics?.inputTokens?.toLocaleString()??`--`),1)]),p(`div`,null,[n[12]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Output Tokens `,-1),p(`div`,gt,d(t.streamMetrics?.outputTokens?.toLocaleString()??`--`),1)]),p(`div`,null,[n[13]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Cache Tokens `,-1),p(`div`,_t,d(t.streamMetrics?.cacheReadTokens?.toLocaleString()??`--`),1)])])]),_:2},1024)]),_:2},1024)):e(``,!0)],64))),128))]),_:1})]),_:1})]),_:1})]),p(`div`,vt,[p(`div`,yt,[p(`div`,bt,d(r(l)(`monitor.completed`)),1),p(`div`,xt,d(r(j)?.successCount??0),1),n[14]||=p(`div`,{class:`text-[10px] font-mono text-muted-foreground`},`last 5h`,-1)]),p(`div`,St,[p(`div`,Ct,d(r(l)(`monitor.header.errorRate`)),1),p(`div`,{class:C([`text-[13px] font-mono font-semibold`,Ue.value])},d(J.value)+`% `,3),p(`div`,wt,d(r(j)?.errorCount??0)+` / `+d(r(j)?.totalRequests??0),1)]),p(`div`,Tt,[p(`div`,Et,d(r(l)(`monitor.header.p50Latency`)),1),p(`div`,Dt,d(Ge.value)+`ms `,1),p(`div`,Ot,` avg `+d(r(j)?.avgLatencyMs?.toFixed(1)??`--`)+`s `,1)]),p(`div`,kt,[p(`div`,At,d(r(l)(`monitor.header.retryRate`)),1),p(`div`,jt,d(We.value)+`% `,1),p(`div`,Mt,d(r(j)?.retryCount??0)+` / `+d(r(j)?.totalRequests??0),1)]),p(`div`,Nt,[p(`div`,Pt,d(r(l)(`monitor.runtimePanel.uptime`)),1),p(`div`,Ft,d(Xe.value),1),p(`div`,It,d(Ze.value),1)])]),p(`div`,Lt,[w(r(ie),{open:q.value,"onUpdate:open":n[1]||=e=>q.value=e},{default:y(()=>[p(`div`,Rt,[p(`span`,zt,d(r(l)(`monitor.providerStats`)),1),w(r(oe),{"as-child":``},{default:y(()=>[w(r(b),{variant:`ghost`,size:`xs`,class:`text-[11px] text-muted-foreground hover:text-foreground h-6 px-1.5`},{default:y(()=>[x(d(q.value?r(l)(`monitor.providerStatsHide`):r(l)(`monitor.providerStatsShow`)),1)]),_:1})]),_:1})]),w(r(ae),null,{default:y(()=>[p(`div`,Bt,[w(Qe,{stats:r(j)},null,8,[`stats`])])]),_:1})]),_:1},8,[`open`])]),p(`div`,Vt,[p(`div`,Ht,[p(`div`,Ut,[p(`span`,Wt,d(r(l)(`monitor.statusCodeDistribution`)),1)]),p(`div`,Gt,[w(qe,{"by-status-code":r(j)?.byStatusCode??{}},null,8,[`by-status-code`])])]),p(`div`,Kt,[p(`div`,qt,[p(`span`,Jt,d(r(l)(`monitor.runtime`)),1)]),p(`div`,Yt,[w(He,{runtime:r(I)},null,8,[`runtime`])])]),p(`div`,Xt,[p(`div`,Zt,[p(`span`,Qt,d(r(l)(`monitor.concurrency`)),1)]),p(`div`,$t,[p(`div`,en,[p(`span`,tn,d(Y.value.active),1),p(`span`,nn,`/ `+d(Y.value.total),1),p(`span`,rn,d(Y.value.pct)+`%`,1)]),p(`div`,an,[p(`div`,{class:C([`h-full rounded-full transition-all duration-300`,Ye.value]),style:f({width:`${Math.min(100,Y.value.pct)}%`})},null,6)]),p(`div`,on,[p(`div`,null,[n[15]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` P99 `,-1),p(`div`,sn,d(Ke.value)+`ms `,1)]),p(`div`,null,[n[16]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` QPS `,-1),p(`div`,cn,d(Je.value),1)])])])])]),w(O,{open:r(B),"onUpdate:open":n[2]||=e=>s(B)?B.value=e:null,source:`realtime`,request:r(Te),"stream-content":r(De),"log-detail-data":r(Oe)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`]),w(r(he),{open:W.value,"onUpdate:open":n[3]||=e=>W.value=e},{default:y(()=>[w(r(ve),null,{default:y(()=>[w(r(ge),null,{default:y(()=>[w(r(me),null,{default:y(()=>[x(d(r(l)(`monitor.killConfirmTitle`)),1)]),_:1}),K.value?(h(),c(r(pe),{key:0},{default:y(()=>[x(d(r(l)(`monitor.killConfirm`,{model:K.value.model,provider:K.value.providerName})),1)]),_:1})):e(``,!0)]),_:1}),w(r(ce),null,{default:y(()=>[w(r(le),null,{default:y(()=>[x(d(r(l)(`monitor.killCancel`)),1)]),_:1}),w(r(ue),{class:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,onClick:Ve},{default:y(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{xn as default};
1
+ import{$ as e,A as t,Et as n,Gt as r,H as i,J as a,Lt as o,Nt as s,Q as c,Wt as l,X as u,Xt as d,Yt as f,Z as p,et as m,gt as h,ht as g,it as _,k as v,kt as y,mt as ee,n as b,nt as x,q as S,qt as C,rt as w,vt as T,zt as E}from"./button-BJEwiB8A.js";import{n as D,t as O}from"./UnifiedRequestDialog-CHh7SjPE.js";import{n as te,t as k}from"./useClipboard-uOuEel2P.js";import{n as ne,r as re,t as A}from"./TooltipTrigger-B_7uc54_.js";import{n as ie,t as ae}from"./CollapsibleContent-BNYRQZDC.js";import{t as oe}from"./CollapsibleTrigger-BsRqX2Cu.js";import{_t as j,a as se,c as ce,d as le,f as ue,gt as de,ht as fe,l as pe,o as me,p as he,s as ge,st as _e,u as ve}from"./index-3DIQxot0.js";import{t as ye}from"./badge-BAIzzgzC.js";import{a as be,i as M,n as N,o as xe,r as P,t as Se}from"./TableHeader-DvgxagEq.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=_({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{},queuedCount:{},concurrency:{}},setup(t){let{t:n}=i();return(i,o)=>(h(),m(`div`,Ce,[p(`div`,R,[p(`span`,z,d(t.activeCount),1),p(`div`,we,[p(`span`,Te,d(r(n)(`monitor.header.activeRequests`)),1),p(`span`,B,d(r(n)(`monitor.header.streamNonStream`,{stream:t.streamCount,nonStream:t.activeCount-t.streamCount})),1)]),t.queuedCount>0?(h(),m(`span`,Ee,d(t.queuedCount)+` `+d(r(n)(`monitor.queued`)),1)):e(``,!0)]),p(`div`,De,[p(`span`,Oe,d(r(n)(`monitor.concurrency`)),1),t.concurrency.length===0?(h(),m(`div`,ke,d(r(n)(`monitor.concurrencyPanel.noData`)),1)):e(``,!0),(h(!0),m(a,null,T(t.concurrency,t=>(h(),m(`div`,{key:t.providerId,class:`flex items-center gap-1.5`},[p(`span`,{class:`text-[11px] font-medium text-muted-foreground w-[130px] shrink-0 truncate`,title:t.providerName},d(t.providerName),9,Ae),p(`div`,V,[r(F)(t)>0?(h(),m(`div`,{key:0,class:C([`h-full rounded-sm transition-all duration-300`,r(I)(t.active,r(F)(t))]),style:f({width:`${Math.min(100,t.active/r(F)(t)*100)}%`})},null,6)):e(``,!0)]),p(`span`,{class:C([`font-mono text-[11px] text-muted-foreground w-10 text-right shrink-0`,r(L)(t.active,r(F)(t))])},[t.adaptiveEnabled?(h(),m(a,{key:0},[x(d(t.active)+`/`+d(t.adaptiveLimit??t.maxConcurrency),1)],64)):t.maxConcurrency===0?(h(),m(a,{key:1},[x(d(r(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(h(),m(a,{key:2},[x(d(t.active)+`/`+d(t.maxConcurrency),1)],64))],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=_({__name:`RuntimePanel`,props:{runtime:{}},setup(e){let{t}=i(),n=e,a=u(()=>!n.runtime||n.runtime.memoryUsage.heapTotal===0?0:Math.min(J,n.runtime.memoryUsage.heapUsed/n.runtime.memoryUsage.heapTotal*J));return(n,i)=>e.runtime?(h(),m(`div`,Ne,[p(`div`,Pe,[p(`span`,Fe,d(r(t)(`monitor.runtimePanel.memoryRss`)),1),p(`span`,Ie,d(r(j)(e.runtime.memoryUsage.rss)),1)]),p(`div`,H,[p(`span`,Le,d(r(t)(`monitor.runtimePanel.eventLoopDelay`)),1),p(`span`,Re,d(e.runtime.eventLoopDelayMs.toFixed(1))+`ms`,1)]),p(`div`,U,[p(`span`,ze,d(r(t)(`monitor.runtimePanel.activeHandles`)),1),p(`span`,W,d(e.runtime.activeHandles),1)]),p(`div`,G,[p(`div`,K,[p(`span`,Be,d(r(t)(`monitor.runtimePanel.heapUsage`)),1),p(`span`,Ve,d(r(j)(e.runtime.memoryUsage.heapUsed))+` / `+d(r(j)(e.runtime.memoryUsage.heapTotal)),1)]),p(`div`,q,[p(`div`,{class:`h-full bg-primary rounded-sm transition-all duration-300`,style:f({width:`${a.value}%`})},null,4)])])])):(h(),m(`div`,Me,d(r(t)(`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=_({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(e){let{t}=i(),n=e,o=u(()=>Object.values(n.byStatusCode).reduce((e,t)=>e+t,0)),s=u(()=>{let e=n.byStatusCode,t=o.value||1,r=c(e,200,299),i=c(e,400,499)-(e[429]||0),a=e[429]||0,s=c(e,500,599);return[{label:`2xx`,count:r,percent:(r/t*100).toFixed(1),textClass:`text-success`,dotClass:`bg-success`},{label:`4xx`,count:i,percent:(i/t*100).toFixed(1),textClass:`text-warning`,dotClass:`bg-warning`},{label:`429`,count:a,percent:(a/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 c(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(e,n)=>o.value===0?(h(),m(`div`,Ue,d(r(t)(`monitor.statusCodes.noData`)),1)):(h(),m(`div`,We,[(h(!0),m(a,null,T(s.value,e=>(h(),m(`div`,{key:e.label,class:`flex items-center gap-1.5 py-[3px] border-t border-foreground/[0.04] first:border-t-0`},[p(`span`,{class:C([`size-[5px] rounded-full shrink-0`,e.dotClass])},null,2),p(`span`,Ge,d(e.label),1),p(`span`,{class:C([`font-mono text-[11px]`,e.textClass])},d(e.count),3),p(`span`,Ke,d(e.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=_({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let{t:n}=i(),o=t,s=u(()=>o.stats?Object.entries(o.stats.byProvider).filter(([e])=>typeof e==`string`).map(([e,t])=>({id:e,name:t.providerName,stats:t,successRate:t.totalRequests>0?t.successCount/t.totalRequests*Ze:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*Ze:0})):[]);return(i,o)=>t.stats?s.value.length===0?(h(),m(`div`,Y,d(r(n)(`monitor.providerTable.noProviders`)),1)):(h(),c(r(xe),{key:2},{default:y(()=>[w(r(Se),null,{default:y(()=>[w(r(P),{class:`border-b-0`},{default:y(()=>[w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.provider`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.requests`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.successRate`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.avgLatency`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.retryRate`)),1)]),_:1}),w(r(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:y(()=>[x(d(r(n)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),w(r(be),null,{default:y(()=>[(h(!0),m(a,null,T(s.value,t=>(h(),c(r(P),{key:t.id,class:`border-b-0 hover:bg-muted/50`},{default:y(()=>[w(r(M),{class:`font-medium text-[13px] py-1`},{default:y(()=>[x(d(t.name),1)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[x(d(t.stats.totalRequests),1)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[p(`span`,{class:C(t.successRate>=95?`text-success`:t.successRate>=80?`text-warning`:`text-danger`)},d(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[x(d(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),w(r(M),{class:`text-right font-mono text-xs py-1`},{default:y(()=>[p(`span`,{class:C(t.retryRate>10?`text-warning`:``)},d(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),w(r(M),{class:`py-1`},{default:y(()=>[p(`div`,Ye,[(h(!0),m(a,null,T(t.stats.topErrors.slice(0,3),e=>(h(),c(r(ye),{key:e.code,variant:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:y(()=>[x(d(e.code)+` (`+d(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(h(),m(`span`,Xe,`--`)):e(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(h(),m(`div`,Je,d(r(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 g(()=>{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),l(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))}l(t.activeRequests);break}case`runtime_update`:t.runtime.value=n;break}}async function rt(e,t,n,r,i){try{let[a,o,s,c,l]=await Promise.allSettled([v.getMonitorActive(),v.getMonitorRecent(),v.getMonitorStats(),v.getMonitorConcurrency(),v.getMonitorRuntime()]);a.status===`fulfilled`&&(e.value=a.value),o.status===`fulfilled`&&(t.value=o.value),s.status===`fulfilled`&&(n.value=s.value),c.status===`fulfilled`&&(r.value=c.value),l.status===`fulfilled`&&(i.value=l.value)}catch(e){console.error(`Failed to load initial monitor data:`,e),n.value=null,r.value=[],i.value=null}}function it(){let e=E([]),t=o([]),r=o(null),i=o([]),a=o(null),s=o(!1),c=!1,l=u(()=>e.value.filter(e=>e.isStream).length),d=u(()=>e.value.filter(e=>!e.queued)),f=u(()=>e.value.filter(e=>e.queued===!0)),p=n=>nt(n,{recentCompleted:t,activeRequests:e,concurrency:i,stats:r,runtime:a});async function m(){if(s.value=!0,!c){c=!0;return}await et(e,()=>v.getMonitorActive())}function h(){s.value=!1}let _=()=>rt(e,t,r,i,a),{connect:y,disconnect:ee}=X(`/admin/api/monitor/stream`,{request_start:p,request_update:p,request_complete:p,concurrency_update:p,stats_update:p,runtime_update:p,stream_content_update:p},{onOpen:m,onClose:h}),b=o(null),x=o(!1),S=o(0);async function C(n){let r=++S.value,i=e.value.find(e=>e.id===n)??t.value.find(e=>e.id===n);if(!i){b.value=null;return}b.value=null,x.value=!0;try{if(i.status===`pending`){try{let e=await v.getMonitorRequest(n);if(r!==S.value)return;b.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==Q)throw e;if(r!==S.value)return;let t=await v.getLogDetail(n);if(r!==S.value)return;b.value=t.client_request?{clientRequest:t.client_request}:null}return}let e=await v.getLogDetail(n);if(r!==S.value)return;let t;if(!i.isStream){let n=e.upstream_response;if(n)try{let e=JSON.parse(n);t=(typeof e.body==`string`?e.body:n)??void 0}catch{t=n}}b.value={responseBody:t,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(r!==S.value)return;console.warn(`Failed to load log detail:`,e),b.value=null}finally{r===S.value&&(x.value=!1)}}let w=o(null),T=o(!1),D=o(null),O=null;function te(t){if(k(),!t)return;let n=async()=>{let n=e.value.find(e=>e.id===t);if(!n||n.status===`completed`||n.status===`failed`){k();return}try{let e=await v.getMonitorRequest(t);if(w.value!==t)return;e.streamContent&&(D.value=e.streamContent)}catch(e){e?.response?.status===Q&&k()}};n(),O=setInterval(n,$)}function k(){O&&=(clearInterval(O),null)}function ne(e){w.value=e,T.value=!0,D.value=null;let n=t.value.find(t=>t.id===e);n&&(n.status===`completed`||n.status===`failed`)&&(n.streamContent?D.value=n.streamContent:re(e)),te(e),C(e)}async function re(e){try{let t=await v.getMonitorRequest(e);if(w.value!==e)return;t.streamContent&&(D.value=t.streamContent)}catch(e){console.error(`loadCompletedStreamContent:`,e)}}let A=u(()=>w.value?e.value.find(e=>e.id===w.value)??t.value.find(e=>e.id===w.value)??null:null);return n(()=>A.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&(k(),C(w.value))}),g(()=>{k()}),{activeRequests:e,recentCompleted:t,stats:r,concurrency:i,runtime:a,connected:s,streamCount:l,streamingRequests:d,queuedRequests:f,selectedRequestId:w,selectedRequest:A,requestDetailOpen:T,selectRequest:ne,selectedStreamContent:D,logDetailData:b,nonStreamBodyLoading:x,connect:y,disconnect:ee,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=_({__name:`Monitor`,setup(n){let{t:l}=i(),{activeRequests:_,recentCompleted:E,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=o(`active`),Me=u(()=>[{key:`active`,label:l(`monitor.activeRequests`),count:R.value.length},{key:`queued`,label:l(`monitor.queuedRequests`),count:z.value.length},{key:`recent`,label:l(`monitor.completed`),count:E.value.length}]),Ne={active:()=>R.value,queued:()=>z.value,recent:()=>E.value},Pe={active:l(`monitor.noActiveRequests`),queued:l(`monitor.noQueuedRequests`),recent:l(`monitor.noCompletedRequests`)},Fe=u(()=>Ne[V.value]()),Ie=u(()=>Pe[V.value]),H=o(null);function Le(e){H.value=H.value===e?null:e}let{copy:Re}=k(),U=o(null);function ze(e){Re(e),U.value=e,setTimeout(()=>{U.value===e&&(U.value=null)},ln)}let W=o(!1),G=o(null),K=u(()=>G.value?_.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 v.killMonitorRequest(G.value),_.value=_.value.filter(e=>e.id!==G.value),se.success(l(`monitor.killSuccess`))}catch(e){console.error(`Monitor.killRequest:`,e),se.error(t(e,l(`monitor.killFailed`)))}W.value=!1}}let q=o(!0),J=u(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.errorCount/j.value.totalRequests*dn).toFixed(1)),Ue=u(()=>{let e=Number.parseFloat(J.value);return e>=pn?`text-danger`:e>=fn?`text-warning`:`text-foreground`}),We=u(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.retryCount/j.value.totalRequests*dn).toFixed(1)),Ge=u(()=>j.value?j.value.p50LatencyMs.toFixed(0):`--`),Ke=u(()=>j.value?j.value.p99LatencyMs.toFixed(0):`--`),Je=u(()=>{if(!j.value||!I.value||I.value.uptimeMs===0)return`--`;let e=I.value.uptimeMs/un;return(j.value.totalRequests/e).toFixed(1)}),Y=u(()=>{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=u(()=>{let e=Y.value.pct;return e>=hn?`bg-danger`:e>=gn?`bg-warning`:`bg-primary`}),Xe=u(()=>I.value?$e(I.value.uptimeMs):`--`),Ze=u(()=>!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=o(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)}),g(()=>{$(),document.removeEventListener(`visibilitychange`,et)}),(t,n)=>(h(),m(`div`,at,[p(`div`,ot,[p(`h2`,st,d(r(l)(`monitor.title`)),1),w(r(ye),{variant:r(L)?`default`:`destructive`},{default:y(()=>[x(d(r(L)?r(l)(`monitor.connected`):r(l)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])]),w(je,{stats:r(j),"active-count":r(_).length,"stream-count":r(Ce),"queued-count":r(z).length,concurrency:r(F)},null,8,[`stats`,`active-count`,`stream-count`,`queued-count`,`concurrency`]),p(`div`,ct,[p(`div`,lt,[(h(!0),m(a,null,T(Me.value,t=>(h(),c(r(b),{key:t.key,variant:`ghost`,class:C([`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:y(()=>[x(d(t.label)+` `,1),p(`span`,{class:C([`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`])},d(t.count),3),V.value===t.key?(h(),m(`span`,ut)):e(``,!0)]),_:2},1032,[`class`,`onClick`]))),128))]),w(r(D),{class:`h-[252px]`},{default:y(()=>[w(r(xe),null,{default:y(()=>[w(r(Se),null,{default:y(()=>[w(r(P),{class:`border-b-0 hover:bg-transparent`},{default:y(()=>[w(r(N),{class:`w-9 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:y(()=>[...n[4]||=[x(`Model`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:y(()=>[...n[5]||=[x(`Provider`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-16`},{default:y(()=>[...n[6]||=[x(`Type`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:y(()=>[...n[7]||=[x(`Elapsed`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:y(()=>[...n[8]||=[x(`Speed`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:y(()=>[...n[9]||=[x(`Output`,-1)]]),_:1}),w(r(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-14`})]),_:1})]),_:1}),w(r(be),null,{default:y(()=>[Fe.value.length===0?(h(),c(r(P),{key:0,class:`border-b-0 h-[220px]`},{default:y(()=>[w(r(M),{colspan:`8`,class:`text-center text-[13px] text-muted-foreground align-middle`},{default:y(()=>[x(d(Ie.value),1)]),_:1})]),_:1})):e(``,!0),(h(!0),m(a,null,T(Fe.value,t=>(h(),m(a,{key:t.id},[w(r(P),{class:C([`cursor-pointer transition-colors border-b border-foreground/[0.04] hover:bg-muted/40`,[r(we)===t.id?`bg-primary/10`:``,V.value===`recent`?`opacity-60 hover:opacity-80`:``]]),onClick:e=>r(Ee)(t.id)},{default:y(()=>[w(r(M),{class:`px-3 py-1`},{default:y(()=>[p(`span`,{class:C([`inline-block size-2 rounded-full shrink-0`,xn(t)])},null,2)]),_:2},1024),w(r(M),{class:`px-3 py-1 text-[13px] font-medium truncate max-w-[200px]`},{default:y(()=>[x(d(t.model),1)]),_:2},1024),w(r(M),{class:`px-3 py-1 font-mono text-[11px] text-muted-foreground`},{default:y(()=>[x(d(t.providerName),1)]),_:2},1024),w(r(M),{class:`px-3 py-1`},{default:y(()=>[t.isStream?(h(),m(`span`,dt,` SSE `)):(h(),m(`span`,ft,` Sync `))]),_:2},1024),w(r(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:y(()=>[x(d(tt(t)),1)]),_:2},1024),w(r(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:y(()=>[x(d(nt(t)),1)]),_:2},1024),w(r(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:y(()=>[x(d(rt(t)),1)]),_:2},1024),w(r(M),{class:`px-3 py-1`},{default:y(()=>[p(`div`,{class:`flex items-center gap-0.5 justify-end`,onClick:n[0]||=S(()=>{},[`stop`])},[w(r(re),null,{default:y(()=>[w(r(A),{"as-child":``},{default:y(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:S(e=>ze(t.id),[`stop`])},{default:y(()=>[U.value===t.id?(h(),c(r(de),{key:0,class:`size-3 text-success`})):(h(),c(r(te),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),w(r(ne),null,{default:y(()=>[x(d(r(l)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),Sn(t)?(h(),c(r(re),{key:0},{default:y(()=>[w(r(A),{"as-child":``},{default:y(()=>[w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6 text-destructive hover:text-destructive`,onClick:S(e=>Be(t.id),[`stop`])},{default:y(()=>[w(r(_e),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),w(r(ne),null,{default:y(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:2},1024)):e(``,!0),w(r(b),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:S(e=>Le(t.id),[`stop`])},{default:y(()=>[w(r(fe),{class:C([`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?(h(),c(r(P),{key:0,class:`border-b border-foreground/[0.04] bg-foreground/[0.02]`},{default:y(()=>[w(r(M),{colspan:`8`,class:`px-3 py-2`},{default:y(()=>[p(`div`,pt,[p(`div`,null,[n[10]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Request ID `,-1),p(`div`,mt,d(t.id),1)]),p(`div`,null,[n[11]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Input Tokens `,-1),p(`div`,ht,d(t.streamMetrics?.inputTokens?.toLocaleString()??`--`),1)]),p(`div`,null,[n[12]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Output Tokens `,-1),p(`div`,gt,d(t.streamMetrics?.outputTokens?.toLocaleString()??`--`),1)]),p(`div`,null,[n[13]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Cache Tokens `,-1),p(`div`,_t,d(t.streamMetrics?.cacheReadTokens?.toLocaleString()??`--`),1)])])]),_:2},1024)]),_:2},1024)):e(``,!0)],64))),128))]),_:1})]),_:1})]),_:1})]),p(`div`,vt,[p(`div`,yt,[p(`div`,bt,d(r(l)(`monitor.completed`)),1),p(`div`,xt,d(r(j)?.successCount??0),1),n[14]||=p(`div`,{class:`text-[10px] font-mono text-muted-foreground`},`last 5h`,-1)]),p(`div`,St,[p(`div`,Ct,d(r(l)(`monitor.header.errorRate`)),1),p(`div`,{class:C([`text-[13px] font-mono font-semibold`,Ue.value])},d(J.value)+`% `,3),p(`div`,wt,d(r(j)?.errorCount??0)+` / `+d(r(j)?.totalRequests??0),1)]),p(`div`,Tt,[p(`div`,Et,d(r(l)(`monitor.header.p50Latency`)),1),p(`div`,Dt,d(Ge.value)+`ms `,1),p(`div`,Ot,` avg `+d(r(j)?.avgLatencyMs?.toFixed(1)??`--`)+`s `,1)]),p(`div`,kt,[p(`div`,At,d(r(l)(`monitor.header.retryRate`)),1),p(`div`,jt,d(We.value)+`% `,1),p(`div`,Mt,d(r(j)?.retryCount??0)+` / `+d(r(j)?.totalRequests??0),1)]),p(`div`,Nt,[p(`div`,Pt,d(r(l)(`monitor.runtimePanel.uptime`)),1),p(`div`,Ft,d(Xe.value),1),p(`div`,It,d(Ze.value),1)])]),p(`div`,Lt,[w(r(ie),{open:q.value,"onUpdate:open":n[1]||=e=>q.value=e},{default:y(()=>[p(`div`,Rt,[p(`span`,zt,d(r(l)(`monitor.providerStats`)),1),w(r(oe),{"as-child":``},{default:y(()=>[w(r(b),{variant:`ghost`,size:`xs`,class:`text-[11px] text-muted-foreground hover:text-foreground h-6 px-1.5`},{default:y(()=>[x(d(q.value?r(l)(`monitor.providerStatsHide`):r(l)(`monitor.providerStatsShow`)),1)]),_:1})]),_:1})]),w(r(ae),null,{default:y(()=>[p(`div`,Bt,[w(Qe,{stats:r(j)},null,8,[`stats`])])]),_:1})]),_:1},8,[`open`])]),p(`div`,Vt,[p(`div`,Ht,[p(`div`,Ut,[p(`span`,Wt,d(r(l)(`monitor.statusCodeDistribution`)),1)]),p(`div`,Gt,[w(qe,{"by-status-code":r(j)?.byStatusCode??{}},null,8,[`by-status-code`])])]),p(`div`,Kt,[p(`div`,qt,[p(`span`,Jt,d(r(l)(`monitor.runtime`)),1)]),p(`div`,Yt,[w(He,{runtime:r(I)},null,8,[`runtime`])])]),p(`div`,Xt,[p(`div`,Zt,[p(`span`,Qt,d(r(l)(`monitor.concurrency`)),1)]),p(`div`,$t,[p(`div`,en,[p(`span`,tn,d(Y.value.active),1),p(`span`,nn,`/ `+d(Y.value.total),1),p(`span`,rn,d(Y.value.pct)+`%`,1)]),p(`div`,an,[p(`div`,{class:C([`h-full rounded-full transition-all duration-300`,Ye.value]),style:f({width:`${Math.min(100,Y.value.pct)}%`})},null,6)]),p(`div`,on,[p(`div`,null,[n[15]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` P99 `,-1),p(`div`,sn,d(Ke.value)+`ms `,1)]),p(`div`,null,[n[16]||=p(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` QPS `,-1),p(`div`,cn,d(Je.value),1)])])])])]),w(O,{open:r(B),"onUpdate:open":n[2]||=e=>s(B)?B.value=e:null,source:`realtime`,request:r(Te),"stream-content":r(De),"log-detail-data":r(Oe)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`]),w(r(he),{open:W.value,"onUpdate:open":n[3]||=e=>W.value=e},{default:y(()=>[w(r(ve),null,{default:y(()=>[w(r(ge),null,{default:y(()=>[w(r(me),null,{default:y(()=>[x(d(r(l)(`monitor.killConfirmTitle`)),1)]),_:1}),K.value?(h(),c(r(pe),{key:0},{default:y(()=>[x(d(r(l)(`monitor.killConfirm`,{model:K.value.model,provider:K.value.providerName})),1)]),_:1})):e(``,!0)]),_:1}),w(r(ce),null,{default:y(()=>[w(r(le),null,{default:y(()=>[x(d(r(l)(`monitor.killCancel`)),1)]),_:1}),w(r(ue),{class:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,onClick:Ve},{default:y(()=>[x(d(r(l)(`monitor.kill`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{xn as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Gt as n,H as r,J as i,K as a,L as o,Lt as s,M as c,N as l,Nt as u,Q as d,X as f,Xt as p,Yt as m,Z as h,et as g,gt as _,it as v,k as y,kt as b,mt as x,n as S,nt as C,q as ee,qt as w,rt as T,tt as E,vt as D,xt as te}from"./button-BJEwiB8A.js";import{t as ne}from"./chevron-right-CR3YFy_O.js";import{n as O,t as k}from"./useClipboard-uOuEel2P.js";import{t as re}from"./image-DWAFh4CH.js";import{t as ie}from"./search-B87CsLO4.js";import{c as ae,l as oe,n as se,o as A,r as ce,s as le,t as j}from"./model-patches-COK1yfWm.js";import{a as ue,n as de,o as fe,r as pe,t as me}from"./dialog-BwSmcgaV.js";import{t as M}from"./Label-C-4yGDcj.js";import{t as he}from"./Switch-vb3eQrUY.js";import{_ as N,a as P,c as ge,d as _e,f as ve,g as F,gt as ye,h as I,l as be,m as L,n as R,o as xe,p as Se,s as Ce,u as we,v as z}from"./index-3DIQxot0.js";import{t as B}from"./badge-BAIzzgzC.js";import{t as Te}from"./Card-BVxPbRVS.js";import{t as V}from"./Input-qtzKspPF.js";import{a as Ee,i as H,n as U,o as De,r as Oe,t as ke}from"./TableHeader-DvgxagEq.js";import{a as W,i as Ae,n as je,r as G,t as Me}from"./transform-domain-DLWadwZU.js";var Ne=o(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Pe=o(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Fe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ie(e,t){return _(),g(`svg`,Fe,[...t[0]||=[h(`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 K={render:Ie},q={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Le(e,t){return _(),g(`svg`,q,[...t[0]||=[h(`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 J={render:Le},Y={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Re(e,t){return _(),g(`svg`,Y,[...t[0]||=[h(`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),h(`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 ze={render:Re},Be={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ve(e,t){return _(),g(`svg`,Be,[...t[0]||=[h(`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),h(`defs`,null,[h(`linearGradient`,{id:`a`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`},[h(`stop`,{offset:`0%`,"stop-color":`#6336E7`,"stop-opacity":`.84`}),h(`stop`,{offset:`100%`,"stop-color":`#6F69F7`,"stop-opacity":`.84`})])],-1)]])}var He={render:Ve},Ue={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function We(e,t){return _(),g(`svg`,Ue,[...t[0]||=[h(`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 Ge={render:We},Ke={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function qe(e,t){return _(),g(`svg`,Ke,[...t[0]||=[h(`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 Je={render:qe},Ye={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Xe(e,t){return _(),g(`svg`,Ye,[...t[0]||=[h(`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 X={render:Xe},Z={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Q(e,t){return _(),g(`svg`,Z,[...t[0]||=[h(`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),h(`defs`,null,[h(`linearGradient`,{id:`a`,x1:`1.646`,x2:`18.342`,y1:`1.916`,y2:`22.091`,gradientUnits:`userSpaceOnUse`},[h(`stop`,{"stop-color":`#01A9FF`}),h(`stop`,{offset:`1`,"stop-color":`#0160FF`})])],-1)]])}var Ze={render:Q},Qe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function $e(e,t){return _(),g(`svg`,Qe,[...t[0]||=[h(`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 et={render:$e},tt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function $(e,t){return _(),g(`svg`,tt,[...t[0]||=[h(`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),h(`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),h(`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),h(`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:$},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(e,t){return _(),g(`svg`,rt,[...t[0]||=[h(`defs`,null,[h(`linearGradient`,{id:`a`,x1:`0%`,x2:`100.182%`,y1:`50.057%`,y2:`50.057%`},[h(`stop`,{offset:`0%`,"stop-color":`#E2167E`}),h(`stop`,{offset:`100%`,"stop-color":`#FE603C`})])],-1),h(`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(e,t){return _(),g(`svg`,ot,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,lt,[...t[0]||=[h(`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 _(),g(`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(e,t){return _(),g(`svg`,ht,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,vt,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,xt,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,wt,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,Dt,[...t[0]||=[h(`path`,{fill:`#09090b`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),h(`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(e,t){return _(),g(`svg`,At,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,Nt,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,It,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,zt,[...t[0]||=[h(`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(e,t){return _(),g(`svg`,Ht,[...t[0]||=[h(`path`,{fill:`#fff`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),h(`path`,{fill:`#fff`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var Wt={render:Ut},Gt=v({__name:`ProviderIcon`,props:{name:{},size:{default:20}},setup(e){let t={deepseek:K,zhipu:J,kimi:ze,qwen:He,baidu:Ge,iflytek:Je,siliconcloud:X,stepfun:Ze,tencentcloud:et,volcengine:nt,minimax:at,alibaba:ct,claude:dt,codex:mt},n={moonshot:_t,opencode:bt,openai:Ct,anthropic:Et,pi:kt},r={moonshot:Mt,opencode:Ft,openai:Rt,anthropic:Vt,pi:Wt},i=e,a=f(()=>{let e=i.name.toLowerCase();if(t[e])return t[e];if(R.value&&r[e])return r[e];if(n[e])return n[e]}),o=f(()=>i.name.charAt(0).toUpperCase());return(t,n)=>a.value?(_(),d(te(a.value),{key:0,class:`shrink-0`,style:m({width:`${e.size}px`,height:`${e.size}px`})},null,8,[`style`])):(_(),g(`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`})},p(o.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=v({__name:`ProxyConfigForm`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:i}){let a=t,o=i,{t:s}=r();function c(e){o(`update:modelValue`,{...a.modelValue,...e})}let l=f(()=>a.modelValue.proxyType??W.proxyType),u=f(()=>a.modelValue.proxyUrl??W.proxyUrl),d=f(()=>a.modelValue.proxyUsername??W.proxyUsername),m=f(()=>a.modelValue.proxyPassword??W.proxyPassword);function v(e){let t=typeof e==`string`?e:e==null?``:JSON.stringify(e),n=t===`none`?``:t;n?c({proxyType:n}):o(`update:modelValue`,{...W})}return(t,r)=>(_(),g(`div`,Kt,[h(`div`,qt,[h(`span`,Jt,p(n(s)(`providers.fields.proxyTitle`)),1),T(n(z),{"model-value":l.value||`none`,class:`w-32`,"onUpdate:modelValue":v},{default:b(()=>[T(n(I),null,{default:b(()=>[T(n(L))]),_:1}),T(n(N),null,{default:b(()=>[T(n(F),{value:`none`},{default:b(()=>[C(p(n(s)(`providers.fields.proxyNoProxy`)),1)]),_:1}),T(n(F),{value:`http`},{default:b(()=>[C(p(n(s)(`providers.fields.proxyHttp`)),1)]),_:1}),T(n(F),{value:`socks5`},{default:b(()=>[C(p(n(s)(`providers.fields.proxySocks5`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),l.value?(_(),g(`div`,Yt,[h(`div`,Xt,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(s)(`providers.fields.proxyUrl`)),1)]),_:1}),T(n(V),{"model-value":u.value,type:`text`,class:`mt-1 font-mono text-xs`,placeholder:l.value===`socks5`?n(s)(`providers.fields.proxyUrlPlaceholderSocks5`):n(s)(`providers.fields.proxyUrlPlaceholderHttp`),"onUpdate:modelValue":r[0]||=e=>c({proxyUrl:e})},null,8,[`model-value`,`placeholder`])]),h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(s)(`providers.fields.proxyUsername`)),1)]),_:1}),T(n(V),{"model-value":d.value,type:`text`,class:`mt-1`,placeholder:n(s)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":r[1]||=e=>c({proxyUsername:e})},null,8,[`model-value`,`placeholder`])]),h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(s)(`providers.fields.proxyPassword`)),1)]),_:1}),T(n(V),{"model-value":m.value,type:`password`,autocomplete:`new-password`,class:`mt-1`,placeholder:n(s)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":r[2]||=e=>c({proxyPassword:e})},null,8,[`model-value`,`placeholder`])])])):e(``,!0)]))}});function Qt(){let{t:e}=r(),n=s({injectHeaders:``,dropFields:``,requestDefaults:``}),i=s(!1);async function a(r){try{let e=await y.getTransformRules(r);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):``,i.value=!0):(n.value={injectHeaders:``,dropFields:``,requestDefaults:``},i.value=!1)}catch(r){console.error(`transformRules.load:`,r),P.error(t(r,e(`providers.transform.loadFailed`))),n.value={injectHeaders:``,dropFields:``,requestDefaults:``},i.value=!1}}function o(r){if(!r)return Promise.resolve();let a=Me({injectHeaders:n.value.injectHeaders,dropFields:n.value.dropFields,requestDefaults:n.value.requestDefaults});if(a.errorKey)return P.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 y.upsertTransformRules(r,{...o,is_active:1}).then(()=>{i.value=!0,P.success(e(`providers.transform.saved`))}).catch(n=>{console.error(`transformRules.save:`,n),P.error(t(n,e(`common.saveFailed`)))})}function c(r){return r?y.deleteTransformRules(r).then(()=>{n.value={injectHeaders:``,dropFields:``,requestDefaults:``},i.value=!1,P.success(e(`providers.transform.deleted`))}).catch(n=>{console.error(`transformRules.delete:`,n),P.error(t(n,e(`providers.transform.deleteFailed`)))}):Promise.resolve()}return{transformConfig:n,transformExists:i,loadTransformRules:a,saveTransformRules:o,handleDeleteTransformRules:c}}function $t(e){let t=s([]),n=s(``),r=s(``),i=f(()=>n.value?t.value.find(e=>e.group===n.value)?.presets??[]:[]);function a(){if(n.value===`__custom__`){r.value=``,e.value.name=``,e.value.api_type=`openai`,e.value.base_url=``,e.value.models=[],e.value.endpoints=[];return}let i=t.value.find(e=>e.group===n.value)?.presets[0];i?(r.value=i.plan,o(),i.endpoints&&i.endpoints.length>0?e.value.endpoints=i.endpoints.map(e=>({api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||null,api_key:null})):e.value.endpoints=[{api_type:i.apiType,base_url:i.baseUrl,upstream_path:i.upstreamPath||null,api_key:null}]):r.value=``}function o(){let t=i.value.find(e=>e.plan===r.value);t&&(e.value.name=t.presetName,e.value.api_type=t.apiType,e.value.base_url=t.baseUrl,e.value.upstream_path=t.upstreamPath??``,e.value.models=t.models.map(e=>({name:e,context_window:A(e),patches:j(e,t.apiType,!1),capabilities:t.modelCapabilities?.[e]})))}function c(){return i.value.find(e=>e.plan===r.value)?.modelsEndpoint}function l(){return i.value.find(e=>e.plan===r.value)?.models??[]}async function u(){try{t.value=await y.recommended.getProviders()}catch(e){console.error(`useProviderPresets.loadPresets:`,e),t.value=[]}}function d(){n.value=``,r.value=``}return{providerPresets:t,presetGroup:n,presetPlan:r,availablePlans:i,onGroupChange:a,onPresetChange:o,getCurrentModelsEndpoint:c,getCurrentPresetModels:l,loadPresets:u,resetPreset:d}}var en=100,tn=1e3,nn=1e3,rn={name:``,api_type:`anthropic`,base_url:``,upstream_path:``,api_key:``,endpoints:[],models:[],is_active:!0,max_concurrency:G.max_concurrency,queue_timeout_ms:G.queue_timeout_ms,max_queue_size:G.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}=r(),{transformConfig:t,loadTransformRules:n,saveTransformRules:i}=Qt(),a=s({...rn}),o=s({}),u=s(`auto`),d=s(!1),p=s(null),m=s(``),h=s(c),g=f({get:()=>`${h.value}`,set:e=>{h.value=Number(e)}}),_=$t(a);function v(){let t={};a.value.name.trim()?/^[a-zA-Z0-9_-]+$/.test(a.value.name.trim())||(t.name=e(`providers.validation.namePattern`)):t.name=e(`providers.validation.nameRequired`);let n=a.value.endpoints.length>0;if(!n)if(!a.value.base_url.trim())t.base_url=e(`providers.validation.baseUrlRequired`);else try{new URL(a.value.base_url.trim())}catch{t.base_url=e(`providers.validation.baseUrlInvalid`)}if(!p.value&&!a.value.api_key.trim()&&(t.api_key=e(`providers.validation.apiKeyRequired`)),n){let n=a.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(u.value!==`none`){let n=a.value.max_concurrency;(!n||n<1||n>en)&&(t.max_concurrency=e(`providers.validation.concurrencyRange`,{min:1,max:en})),a.value.queue_timeout_ms<0&&(t.queue_timeout_ms=e(`providers.validation.negativeNotAllowed`));let r=a.value.max_queue_size;(!r||r<1||r>tn)&&(t.max_queue_size=e(`providers.validation.queueSizeRange`,{min:1,max:tn}))}return o.value=t,Object.keys(t).length===0}function y(){let e={name:a.value.name,api_type:a.value.api_type,base_url:a.value.endpoints.length>0&&!a.value.base_url?a.value.endpoints[0].base_url:a.value.base_url,upstream_path:a.value.upstream_path||void 0,endpoints:a.value.endpoints.length>0?a.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:a.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities??void 0})),is_active:+!!a.value.is_active,max_concurrency:u.value===`none`?0:a.value.max_concurrency,queue_timeout_ms:u.value===`none`?0:a.value.queue_timeout_ms,max_queue_size:u.value===`none`?Ae.max_queue_size:a.value.max_queue_size,adaptive_enabled:+(u.value===`auto`),proxy_type:a.value.proxy_type||null,proxy_url:a.value.proxy_url?.trim()||null,proxy_username:a.value.proxy_username?.trim()||null,proxy_password:a.value.proxy_password||null};return a.value.api_key&&(e.api_key=a.value.api_key),e}function b(e,t){let n=m.value.trim();if(!n)return;let r=n.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let n of r)a.value.models.some(e=>e.name===n)||a.value.models.push({name:n,context_window:h.value||2e5,patches:t??[],stream_timeout_ms:l,capabilities:e??[`text`]});m.value=``,h.value=c}function x(e){a.value.models.splice(e,1)}function S(e,t){a.value.models[e].context_window=t.contextWindow,a.value.models[e].patches=t.patches}function C(e,t){if(t===`text`)return;let n=a.value.models[e],r=n.capabilities??[`text`];n.capabilities=r.includes(t)?r.filter(e=>e!==t):[...r,t]}function ee(e,t){let n=Number(t);a.value.models[e].stream_timeout_ms=n>0?n*nn:null}function w(e){u.value=e,e===`auto`?((!a.value.max_concurrency||a.value.max_concurrency<1)&&(a.value.max_concurrency=G.max_concurrency),a.value.adaptive_enabled=!0):e===`manual`&&((!a.value.max_concurrency||a.value.max_concurrency<1)&&(a.value.max_concurrency=Ae.max_concurrency),a.value.adaptive_enabled=!1)}function T(e){return e.includes(`api.openai.com`)}function E(){p.value=null,a.value={...rn,models:[],endpoints:[]},u.value=`auto`,m.value=``,h.value=c,_.presetGroup.value=``,_.presetPlan.value=``,o.value={},d.value=!0}function D(e){p.value=e.id;let t=e.max_concurrency??0;t===0?u.value=`none`:e.adaptive_enabled?u.value=`auto`:u.value=`manual`,a.value={name:e.name,api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||``,api_key:``,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:u.value===`none`?G.max_concurrency:t,queue_timeout_ms:e.queue_timeout_ms??G.queue_timeout_ms,max_queue_size:e.max_queue_size??G.max_queue_size,adaptive_enabled:u.value===`auto`,proxy_type:e.proxy_type||``,proxy_url:e.proxy_url||``,proxy_username:e.proxy_username||``,proxy_password:``},_.presetGroup.value=``,_.presetPlan.value=``,m.value=``,h.value=c,o.value={},d.value=!0,n(e.id)}return{form:a,errors:o,concurrencyMode:u,dialogOpen:d,editingId:p,modelInput:m,modelContextWindow:h,contextWindowSelect:g,transformConfig:t,presetHook:_,validate:v,buildPayload:y,addModel:b,removeModel:x,updateModel:S,updateModelTimeout:ee,toggleModelCapability:C,onConcurrencyModeChange:w,isOfficialOpenai:T,openCreate:E,openEdit:D,saveTransformRules:i}}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=v({__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:o}){let{t:u}=r(),f=s(!1),m=s([`text`]),v=[{key:`text`,icon:oe,label:`text`},{key:`image`,icon:re,label:`image`},{key:`audio`,icon:le,label:`audio`},{key:`video`,icon:ae,label:`video`}];function y(e){if(e===`text`)return;let t=m.value;m.value=t.includes(e)?t.filter(t=>t!==e):[...t,e]}let x=t,E=o;function O(e){E(`update:modelValue`,{...x.modelValue,...e})}function k(){let e=x.modelValue.modelInput.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean),n=[...x.modelValue.models];for(let e of t)n.some(t=>t.name===e)||n.push({name:e,context_window:Number(x.modelValue.contextWindowSelect)||2e5,patches:[],stream_timeout_ms:l,capabilities:[...m.value]});O({models:n,modelInput:``,contextWindowSelect:`${c}`}),m.value=[`text`]}function ie(e){let t=[...x.modelValue.models];t.splice(e,1),O({models:t})}function A(e,t){let n=[...x.modelValue.models];n[e]={...n[e],context_window:t.contextWindow,patches:t.patches},O({models:n})}function j(e,t){let n=[...x.modelValue.models];n[e]={...n[e],stream_timeout_ms:t&&t>0?t:null},O({models:n})}function ue(e,t){if(t===`text`)return;let n=[...x.modelValue.models],r=n[e],i=r.capabilities??[`text`];n[e]={...r,capabilities:i.includes(t)?i.filter(e=>e!==t):[...i,t]},O({models:n})}function de(e){let t={concurrencyMode:e};e===`auto`?(!x.modelValue.maxConcurrency||x.modelValue.maxConcurrency<1)&&(t.maxConcurrency=10):e===`manual`&&(!x.modelValue.maxConcurrency||x.modelValue.maxConcurrency<1)&&(t.maxConcurrency=3),O(t)}function fe(e){return e.capabilities??[`text`]}function pe(e){return e.includes(`api.openai.com`)}return(t,r)=>(_(),g(i,null,[h(`div`,cn,[h(`div`,ln,p(n(u)(`providers.fields.connectionSection`)),1),h(`div`,un,[h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.fields.name`)),1)]),_:1}),T(n(V),{"model-value":x.modelValue.name,type:`text`,required:``,class:`mt-1`,"onUpdate:modelValue":r[0]||=e=>O({name:String(e)}),onInput:r[1]||=e=>E(`clear-errors`,`name`)},null,8,[`model-value`]),x.errors.name?(_(),g(`p`,dn,p(x.errors.name),1)):e(``,!0)]),h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.fields.apiKey`)),1)]),_:1}),T(n(V),{"model-value":x.modelValue.apiKey,type:`password`,autocomplete:`new-password`,required:!x.editingId,placeholder:x.editingId?n(u)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1 font-mono text-xs`,"onUpdate:modelValue":r[2]||=e=>O({apiKey:String(e)}),onInput:r[3]||=e=>E(`clear-errors`,`api_key`)},null,8,[`model-value`,`required`,`placeholder`]),x.errors.api_key?(_(),g(`p`,fn,p(x.errors.api_key),1)):e(``,!0),h(`p`,pn,p(n(u)(`providers.fields.sharedKeyHint`)),1)])]),T(se,{"model-value":x.endpoints,"shared-key":x.sharedKey,"onUpdate:modelValue":r[4]||=e=>E(`update:endpoints`,e)},null,8,[`model-value`,`shared-key`])]),h(`div`,mn,[h(`div`,hn,p(n(u)(`providers.fields.modelsSection`)),1),h(`div`,null,[h(`div`,gn,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.fields.availableModels`)),1)]),_:1}),!x.editingId&&x.presetGroup&&x.presetGroup!==`__custom__`&&(x.hasApiKey||!x.hasModelsEndpoint)?(_(),d(n(S),{key:0,type:`button`,variant:`outline`,size:`sm`,class:`text-xs`,disabled:x.fetchingModels,onClick:r[5]||=e=>E(`fetch-upstream-models`)},{default:b(()=>[T(n(Ne),{class:w([`w-3 h-3 mr-1`,{"animate-spin":x.fetchingModels}])},null,8,[`class`]),C(` `+p(x.fetchingModels?n(u)(`providers.fetchModels.loading`):x.hasModelsEndpoint?n(u)(`providers.fetchModels.button`):n(u)(`providers.fetchModels.buttonPreset`)),1)]),_:1},8,[`disabled`])):e(``,!0)]),h(`div`,_n,[(_(!0),g(i,null,D(x.modelValue.models,(e,t)=>(_(),g(`div`,{key:t},[T(ce,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":x.modelValue.apiType,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!pe(x.modelValue.baseUrl),"stream-timeout-ms":e.stream_timeout_ms??void 0,capabilities:fe(e),"onUpdate:model":e=>A(t,e),onRemove:e=>ie(t),"onUpdate:streamTimeoutMs":e=>j(t,e),onToggleCapability:e=>ue(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))]),h(`div`,vn,[T(n(V),{"model-value":x.modelValue.modelInput,"onUpdate:modelValue":r[6]||=e=>O({modelInput:String(e)}),placeholder:n(u)(`providers.fields.modelInputPlaceholder`),onKeydown:a(ee(k,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`model-value`,`placeholder`,`onKeydown`]),T(n(z),{"model-value":x.modelValue.contextWindowSelect,"onUpdate:modelValue":r[7]||=e=>O({contextWindowSelect:String(e)})},{default:b(()=>[T(n(I),{class:`w-28`},{default:b(()=>[T(n(L),{placeholder:n(u)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),T(n(N),null,{default:b(()=>[(_(!0),g(i,null,D(n(an),e=>(_(),d(n(F),{key:e.value,value:e.value},{default:b(()=>[C(p(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),h(`div`,yn,[(_(),g(i,null,D(v,e=>T(n(S),{key:e.key,type:`button`,variant:`outline`,size:`icon`,class:w([`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=>y(e.key)},{default:b(()=>[(_(),d(te(e.icon),{class:`size-[11px]`}))]),_:2},1032,[`class`,`title`,`onClick`])),64))]),T(n(S),{type:`button`,variant:`outline`,size:`sm`,onClick:k,disabled:!x.modelValue.modelInput.trim()},{default:b(()=>[C(p(n(u)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])])]),h(`div`,bn,[T(n(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=>f.value=!f.value},{default:b(()=>[T(n(ne),{class:w([`w-3 h-3 transition-transform duration-150`,f.value?`rotate-90`:``])},null,8,[`class`]),C(` `+p(n(u)(`providers.fields.advancedSection`)),1)]),_:1}),f.value?(_(),g(`div`,xn,[h(`div`,Sn,[h(`div`,Cn,[h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.concurrency.mode`)),1)]),_:1}),T(n(z),{"model-value":x.modelValue.concurrencyMode,"onUpdate:modelValue":r[9]||=e=>de(e),class:`mt-1`},{default:b(()=>[T(n(I),{class:`h-8 text-[13px]`},{default:b(()=>[T(n(L),{placeholder:n(u)(`providers.concurrency.selectMode`)},null,8,[`placeholder`])]),_:1}),T(n(N),null,{default:b(()=>[T(n(F),{value:`auto`},{default:b(()=>[C(p(n(u)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),T(n(F),{value:`manual`},{default:b(()=>[C(p(n(u)(`providers.concurrency.manual`)),1)]),_:1}),T(n(F),{value:`none`},{default:b(()=>[C(p(n(u)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),x.modelValue.concurrencyMode===`none`?e(``,!0):(_(),g(i,{key:0},[h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),T(n(V),{"model-value":String(x.modelValue.maxConcurrency),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[10]||=e=>O({maxConcurrency:Number(e)})},null,8,[`model-value`])]),h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.concurrency.queueTimeout`)),1)]),_:1}),T(n(V),{"model-value":String(x.modelValue.queueTimeoutMs),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[11]||=e=>O({queueTimeoutMs:Number(e)})},null,8,[`model-value`])]),h(`div`,null,[T(n(M),{class:`text-xs text-muted-foreground`},{default:b(()=>[C(p(n(u)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),T(n(V),{"model-value":String(x.modelValue.maxQueueSize),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[12]||=e=>O({maxQueueSize:Number(e)})},null,8,[`model-value`])])],64))]),T(Zt,{"model-value":x.modelValue.proxyConfig,"onUpdate:modelValue":r[13]||=e=>O({proxyConfig:e})},null,8,[`model-value`]),h(`div`,wn,[h(`div`,Tn,p(n(u)(`providers.transform.title`)),1),T(je,{"model-value":x.modelValue.transformConfig,"onUpdate:modelValue":r[14]||=e=>O({transformConfig:e})},null,8,[`model-value`])])])])):e(``,!0)])],64))}}),Dn=7,On=7,kn=2e3;function An(){let{t:e}=r(),n=s([]),i=s(!1),a=s(null),o=s(null),c=s(null),l=s(null),u=s(!1),d=s([]);async function f(){try{n.value=await y.getProviders()}catch(n){console.error(`Failed to load providers:`,n),P.error(t(n,e(`providers.toast.loadFailed`)))}}function p(e){return e?e.slice(0,Dn)+`*`.repeat(On):``}let{copy:m}=k();async function h(e,t){await m(e)&&(a.value=t,setTimeout(()=>{a.value=null},kn))}function g(e){o.value=e}async function _(e){if(c.value=e,l.value=e.id,u.value=!!e.is_active,d.value=[],e.is_active)try{d.value=(await y.getProviderDependencies(e.id)).references}catch(e){console.error(`useProviderActions.doSave:`,e),d.value=[]}}async function v(){let n=l.value;if(!n)return;let r=u.value;c.value=null,l.value=null;try{let t=await y.updateProvider(n,{is_active:+!r});if(t.cascadedGroups?.length){let n=t.cascadedGroups.filter(e=>e.disabled).length,r=t.cascadedGroups.length-n,i=[];r>0&&i.push(e(`providers.toast.cascadeClean`,{count:r})),n>0&&i.push(e(`providers.toast.cascadeDisable`,{count:n})),P.warning(e(`providers.toast.cascadeAuto`,{actions:i.join(`, `)}))}await f()}catch(n){console.error(`Failed to toggle provider:`,n),P.error(t(n,e(`providers.toast.toggleFailed`)))}}async function b(){let n=o.value;if(n){o.value=null;try{await y.deleteProvider(n.id),await f()}catch(n){console.error(`providerActions.delete:`,n),P.error(t(n,e(`providers.toast.deleteFailed`)))}}}async function x(){i.value=!0;try{let t=await y.reloadTransformRules();P.success(e(`providers.toast.reloadSuccess`,{pluginCount:t.loadedPlugins.length,rulesCount:t.rulesCount}))}catch(n){console.error(`providerActions.reload:`,n),P.error(t(n,e(`providers.toast.reloadFailed`)))}finally{i.value=!1}}return{providers:n,reloading:i,copiedId:a,deleteTarget:o,toggleTarget:c,pendingToggleId:l,pendingToggleActive:u,toggleDependencies:d,maskKey:p,copyKey:h,loadProviders:f,confirmDelete:g,confirmToggle:_,handleToggle:v,handleDelete:b,handleReload:x}}function jn(e,t,n){let{t:i}=r(),a=s(!1);function o(t,n){if(t.length===0){P.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:A(n),patches:j(n,e.value.api_type,!1)}),a++);a>0?P.success(i(`providers.fetchModels.success`,{source:n,total:t.length,added:a})):P.info(i(`providers.fetchModels.allExist`,{total:t.length}))}function c(){o(n(),i(`providers.fetchModels.sourcePreset`))}async function l(){let n=t();if(!n){c();return}if(!e.value.api_key?.trim()){P.error(i(`providers.fetchModels.noApiKey`));return}a.value=!0;try{let t=await y.fetchUpstreamModels({base_url:e.value.base_url,models_endpoint:n,api_key:e.value.api_key,api_type:e.value.api_type});if(t.length===0){c();return}o(t,i(`providers.fetchModels.sourceUpstream`))}catch(e){console.error(`useFetchUpstreamModels.fetch:`,e),c()}finally{a.value=!1}}return{fetchingModels:a,fetchUpstreamModels:l}}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=v({__name:`Providers`,setup(a){let{t:o}=r(),{form:c,errors:l,concurrencyMode:m,dialogOpen:v,editingId:E,modelInput:ne,contextWindowSelect:k,transformConfig:ae,presetHook:oe,validate:se,buildPayload:A,openCreate:ce,openEdit:le,saveTransformRules:j}=sn(),{providerPresets:M,presetGroup:R,presetPlan:W,availablePlans:Ae,onGroupChange:je,onPresetChange:G,loadPresets:Me,getCurrentModelsEndpoint:Fe,getCurrentPresetModels:Ie}=oe,{providers:K,reloading:q,copiedId:Le,deleteTarget:J,toggleTarget:Y,toggleDependencies:Re,maskKey:ze,copyKey:Be,loadProviders:Ve,confirmDelete:He,confirmToggle:Ue,handleToggle:We,handleDelete:Ge,handleReload:Ke}=An(),{fetchingModels:qe,fetchUpstreamModels:Je}=jn(c,Fe,Ie),Ye=f({get:()=>({proxyType:c.value.proxy_type,proxyUrl:c.value.proxy_url,proxyUsername:c.value.proxy_username,proxyPassword:c.value.proxy_password}),set:e=>{c.value.proxy_type=e.proxyType,c.value.proxy_url=e.proxyUrl,c.value.proxy_username=e.proxyUsername,c.value.proxy_password=e.proxyPassword}}),Xe=f({get:()=>({name:c.value.name,apiType:c.value.api_type,baseUrl:c.value.base_url,apiKey:c.value.api_key,upstreamPath:c.value.upstream_path,models:c.value.models,modelInput:ne.value,contextWindowSelect:k.value,concurrencyMode:m.value,maxConcurrency:c.value.max_concurrency,queueTimeoutMs:c.value.queue_timeout_ms,maxQueueSize:c.value.max_queue_size,transformConfig:ae.value,proxyConfig:Ye.value}),set:e=>{c.value.name=e.name,c.value.api_type=e.apiType,c.value.base_url=e.baseUrl,c.value.api_key=e.apiKey,c.value.upstream_path=e.upstreamPath,c.value.models=e.models,ne.value=e.modelInput,k.value=e.contextWindowSelect,m.value=e.concurrencyMode,c.value.max_concurrency=e.maxConcurrency,c.value.queue_timeout_ms=e.queueTimeoutMs,c.value.max_queue_size=e.maxQueueSize,Ye.value=e.proxyConfig,ae.value=e.transformConfig}}),X=s(``),Z=s(`all`),Q=s(``);function Ze(e){Q.value===e?(Q.value=``,Z.value=`all`):(Q.value=e,Z.value=e)}function Qe(){Z.value===`all`?Q.value=``:Q.value=Z.value}let $e=f(()=>K.value.filter(e=>e.is_active).length),et=f(()=>K.value.filter(e=>!e.is_active).length),tt=f(()=>K.value.reduce((e,t)=>e+(t.models?.length??0),0)),$=f(()=>{let e=K.value,t=X.value.toLowerCase().trim();return t&&(e=e.filter(e=>e.name.toLowerCase().includes(t)||e.base_url.toLowerCase().includes(t))),Z.value===`enabled`?e=e.filter(e=>e.is_active):Z.value===`disabled`&&(e=e.filter(e=>!e.is_active)),e}),nt={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 rt(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(nt))if(t.includes(e))return n;return t}function it(e){return(e.models??[]).some(e=>e.capabilities?.includes(`image`))}let at={anthropic:`/v1/messages`,openai:`/v1/chat/completions`,"openai-responses":`/v1/responses`};function ot(e){return at[e.api_type]}function st(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 ct(e){let t=ot(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 lt(){if(se())try{let e=A();e.name=c.value.name.trim();let t=E.value;E.value?await y.updateProvider(E.value,e):(e.api_key=c.value.api_key,t=(await y.createProvider(e)).id),await j(t),v.value=!1,await Ve()}catch(e){console.error(`Failed to save provider:`,e),P.error(t(e,o(`providers.toast.saveFailed`)))}}return x(async()=>{await Promise.allSettled([Me(),Ve()])}),(t,r)=>(_(),g(`div`,Mn,[h(`div`,Nn,[h(`div`,Pn,[h(`h2`,Fn,p(n(o)(`providers.title`)),1),h(`div`,In,[T(n(S),{variant:`outline`,size:`sm`,onClick:n(Ke),disabled:n(q)},{default:b(()=>[T(n(Ne),{class:w([`w-4 h-4 mr-1`,{"animate-spin":n(q)}])},null,8,[`class`]),C(` `+p(n(o)(`providers.reloadPlugin`)),1)]),_:1},8,[`onClick`,`disabled`])])]),n(K).length>0?(_(),g(`div`,Ln,[h(`div`,Rn,[h(`span`,zn,p(n(o)(`providers.anchor.total`)),1),h(`span`,Bn,p(n(K).length),1)]),h(`div`,{class:w([`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)]":Q.value===`enabled`}]),onClick:r[0]||=e=>Ze(`enabled`)},[h(`span`,Vn,p(n(o)(`providers.anchor.enabled`)),1),h(`span`,Hn,p($e.value),1)],2),h(`div`,{class:w([`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":Q.value===`disabled`}]),onClick:r[1]||=e=>Ze(`disabled`)},[h(`span`,Un,p(n(o)(`providers.anchor.disabled`)),1),h(`span`,Wn,p(et.value),1)],2),h(`div`,Gn,[h(`span`,Kn,p(n(o)(`providers.anchor.models`)),1),h(`span`,qn,p(tt.value),1)])])):e(``,!0)]),h(`div`,Jn,[h(`div`,Yn,[T(n(ie),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground`}),T(n(V),{modelValue:X.value,"onUpdate:modelValue":r[2]||=e=>X.value=e,placeholder:n(o)(`providers.filter.searchPlaceholder`),class:`pl-8 h-8 text-[13px]`},null,8,[`modelValue`,`placeholder`])]),T(n(z),{modelValue:Z.value,"onUpdate:modelValue":[r[3]||=e=>Z.value=e,Qe]},{default:b(()=>[T(n(I),{class:`w-28 h-8 text-[13px]`},{default:b(()=>[T(n(L),{placeholder:n(o)(`providers.filter.status`)},null,8,[`placeholder`])]),_:1}),T(n(N),null,{default:b(()=>[T(n(F),{value:`all`},{default:b(()=>[C(p(n(o)(`providers.filter.all`)),1)]),_:1}),T(n(F),{value:`enabled`},{default:b(()=>[C(p(n(o)(`providers.filter.enabled`)),1)]),_:1}),T(n(F),{value:`disabled`},{default:b(()=>[C(p(n(o)(`providers.filter.disabled`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`]),h(`span`,Xn,p($.value.length)+` `+p(n(o)(`providers.filter.count`)),1),r[14]||=h(`div`,{class:`flex-1`},null,-1),T(n(S),{onClick:n(ce),class:`flex items-center gap-1.5 h-8`},{default:b(()=>[r[13]||=h(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[h(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),C(` `+p(n(o)(`providers.addProvider`)),1)]),_:1},8,[`onClick`])]),n(K).length>0?(_(),d(n(Te),{key:0,flush:``,class:`border-input`},{default:b(()=>[T(n(De),{class:`[&_td]:px-4 [&_th]:px-4`},{default:b(()=>[T(n(ke),null,{default:b(()=>[T(n(Oe),{class:`bg-muted/50 border-b border-input hover:bg-muted/50`},{default:b(()=>[T(n(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[C(p(n(o)(`providers.tableHeaders.name`)),1)]),_:1}),T(n(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[C(p(n(o)(`providers.tableHeaders.apiKey`)),1)]),_:1}),T(n(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[C(p(n(o)(`providers.tableHeaders.models`)),1)]),_:1}),T(n(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[C(p(n(o)(`providers.tableHeaders.concurrency`)),1)]),_:1}),T(n(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[C(p(n(o)(`providers.tableHeaders.status`)),1)]),_:1}),T(n(U),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[C(p(n(o)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),T(n(Ee),null,{default:b(()=>[(_(!0),g(i,null,D($.value,t=>(_(),d(n(Oe),{key:t.id,class:w([`border-b border-input`,{"opacity-55 hover:opacity-75":!t.is_active}])},{default:b(()=>[T(n(H),null,{default:b(()=>[h(`div`,Zn,[T(Gt,{name:rt(t.name),size:20},null,8,[`name`]),h(`div`,Qn,[h(`div`,$n,[h(`span`,er,p(t.name),1),(_(!0),g(i,null,D(st(t),e=>(_(),d(n(B),{key:e.api_type,variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:b(()=>[C(p(n(on)[e.api_type]??e.api_type),1)]),_:2},1024))),128)),t.proxy_type?(_(),d(n(Pe),{key:0,class:`w-3 h-3 text-muted-foreground`,title:`Proxy: ${t.proxy_type.toUpperCase()}`},null,8,[`title`])):e(``,!0)]),h(`div`,null,[(_(!0),g(i,null,D(st(t),(t,n)=>(_(),g(i,{key:t.api_type},[n>0?(_(),g(`div`,tr)):e(``,!0),h(`span`,nr,p(ct(t)),1)],64))),128))])])])]),_:2},1024),T(n(H),null,{default:b(()=>[h(`div`,rr,[(_(!0),g(i,null,D(st(t),(r,a)=>(_(),g(i,{key:r.api_type},[a>0?(_(),g(`div`,ir)):e(``,!0),h(`div`,ar,[r.api_key?(_(),g(`span`,or,p(n(ze)(r.api_key)),1)):(_(),g(`span`,sr,`shared`)),T(n(S),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:e=>n(Be)(r.api_key||t.api_key,`${t.id}-${r.api_type}`)},{default:b(()=>[(_(),d(te(n(Le)===`${t.id}-${r.api_type}`?n(ye):n(O)),{class:w([`w-3 h-3`,{"text-success":n(Le)===`${t.id}-${r.api_type}`}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])],64))),128))])]),_:2},1024),T(n(H),null,{default:b(()=>[h(`div`,cr,[h(`span`,lr,p(t.models?.length??0),1),r[15]||=h(`span`,{class:`text-xs text-muted-foreground`},`models`,-1),it(t)?(_(),d(n(B),{key:0,variant:`outline`,class:`text-[10px] px-1 py-0 gap-0.5 text-primary/70 border-primary/20 h-4`},{default:b(()=>[T(n(re),{class:`w-2.5 h-2.5`})]),_:1})):e(``,!0)])]),_:2},1024),T(n(H),null,{default:b(()=>[h(`div`,ur,[t.adaptive_enabled?(_(),d(n(B),{key:0,variant:`outline`,class:`text-[11px] h-5`},{default:b(()=>[C(p(n(o)(`common.adaptive`)),1)]),_:1})):t.max_concurrency>0?(_(),d(n(B),{key:1,variant:`secondary`,class:`text-[11px] h-5 font-mono`},{default:b(()=>[C(p(t.max_concurrency),1)]),_:2},1024)):(_(),g(`span`,dr,`-`))])]),_:2},1024),T(n(H),null,{default:b(()=>[h(`div`,fr,[T(n(he),{"model-value":!!t.is_active,"onUpdate:modelValue":e=>n(Ue)(t)},null,8,[`model-value`,`onUpdate:modelValue`]),h(`span`,{class:w([`text-xs`,t.is_active?`text-foreground`:`text-muted-foreground`])},p(t.is_active?n(o)(`common.enabled`):n(o)(`common.disabled`)),3)])]),_:2},1024),T(n(H),null,{default:b(()=>[h(`div`,pr,[T(n(S),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-primary`,onClick:e=>n(le)(t)},{default:b(()=>[C(p(n(o)(`common.edit`)),1)]),_:1},8,[`onClick`]),T(n(S),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-destructive`,onClick:e=>n(He)(t)},{default:b(()=>[C(p(n(o)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1})):e(``,!0),n(K).length===0&&!n(q)?(_(),g(`div`,mr,[r[17]||=h(`div`,{class:`w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4`},[h(`svg`,{class:`w-6 h-6 text-primary`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[h(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),h(`path`,{d:`M12 8v8M8 12h8`})])],-1),h(`h3`,hr,p(n(o)(`providers.empty.title`)),1),h(`p`,gr,p(n(o)(`providers.empty.description`)),1),T(n(S),{onClick:n(ce),class:`flex items-center gap-1.5`},{default:b(()=>[r[16]||=h(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[h(`path`,{d:`M12 4v16m8-8H4`})],-1),C(` `+p(n(o)(`providers.empty.addFirst`)),1)]),_:1},8,[`onClick`])])):e(``,!0),n(K).length>0&&$.value.length===0?(_(),g(`div`,_r,[h(`p`,vr,p(n(o)(`providers.filter.noResults`)),1)])):e(``,!0),T(n(fe),{open:n(v),"onUpdate:open":r[10]||=e=>u(v)?v.value=e:null},{default:b(()=>[T(n(ue),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:b(()=>[T(n(de),null,{default:b(()=>[T(n(me),null,{default:b(()=>[C(p(n(E)?n(o)(`providers.editProvider`):n(o)(`providers.addProvider`)),1)]),_:1})]),_:1}),h(`form`,{onSubmit:ee(lt,[`prevent`])},[n(E)?e(``,!0):(_(),g(`div`,yr,[h(`div`,br,p(n(o)(`providers.template.title`)),1),h(`div`,xr,[T(n(z),{modelValue:n(R),"onUpdate:modelValue":[r[4]||=e=>u(R)?R.value=e:null,n(je)]},{default:b(()=>[T(n(I),{class:`flex-1 h-8 text-[13px]`},{default:b(()=>[T(n(L),{placeholder:n(o)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),T(n(N),null,{default:b(()=>[T(n(F),{value:`__custom__`},{default:b(()=>[C(p(n(o)(`providers.template.custom`)),1)]),_:1}),(_(!0),g(i,null,D(n(M),e=>(_(),d(n(F),{key:e.group,value:e.group},{default:b(()=>[C(p(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),n(R)===`__custom__`?e(``,!0):(_(),d(n(z),{key:0,modelValue:n(W),"onUpdate:modelValue":[r[5]||=e=>u(W)?W.value=e:null,n(G)],disabled:!n(R)||n(R)===`__custom__`},{default:b(()=>[T(n(I),{class:`flex-1 h-8 text-[13px]`},{default:b(()=>[T(n(L),{placeholder:n(o)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),T(n(N),null,{default:b(()=>[(_(!0),g(i,null,D(n(Ae),e=>(_(),d(n(F),{key:e.plan,value:e.plan},{default:b(()=>[C(p(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`disabled`]))])])),n(R)||n(E)?(_(),d(En,{key:1,modelValue:Xe.value,"onUpdate:modelValue":r[6]||=e=>Xe.value=e,"editing-id":n(E),errors:n(l),"fetching-models":n(qe),"has-models-endpoint":!!n(Fe)(),"preset-group":n(R),"has-api-key":!!n(c).api_key,endpoints:n(c).endpoints,"shared-key":n(c).api_key,onClearErrors:r[7]||=e=>delete n(l)[e],onFetchUpstreamModels:n(Je),"onUpdate:endpoints":r[8]||=e=>n(c).endpoints=e},null,8,[`modelValue`,`editing-id`,`errors`,`fetching-models`,`has-models-endpoint`,`preset-group`,`has-api-key`,`endpoints`,`shared-key`,`onFetchUpstreamModels`])):e(``,!0),T(n(pe),null,{default:b(()=>[T(n(S),{type:`button`,variant:`outline`,onClick:r[9]||=e=>v.value=!1},{default:b(()=>[C(p(n(o)(`common.cancel`)),1)]),_:1}),T(n(S),{type:`submit`},{default:b(()=>[C(p(n(o)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),T(n(Se),{open:!!n(J),"onUpdate:open":r[11]||=e=>{e||(J.value=null)}},{default:b(()=>[T(n(we),null,{default:b(()=>[T(n(Ce),null,{default:b(()=>[T(n(xe),null,{default:b(()=>[C(p(n(o)(`providers.confirmDelete.title`)),1)]),_:1}),T(n(be),null,{default:b(()=>[C(p(n(o)(`providers.confirmDelete.message`,{name:n(J)?.name})),1)]),_:1})]),_:1}),T(n(ge),null,{default:b(()=>[T(n(_e),null,{default:b(()=>[C(p(n(o)(`common.cancel`)),1)]),_:1}),T(n(S),{variant:`destructive`,onClick:n(Ge)},{default:b(()=>[C(p(n(o)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),T(n(Se),{open:!!n(Y),"onUpdate:open":r[12]||=e=>{e||(Y.value=null)}},{default:b(()=>[T(n(we),null,{default:b(()=>[T(n(Ce),null,{default:b(()=>[T(n(xe),null,{default:b(()=>[C(p(n(Y)?.is_active?n(o)(`providers.confirmToggle.titleDisable`):n(o)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),T(n(be),null,{default:b(()=>[C(p(n(Y)?.is_active?n(o)(`providers.confirmToggle.messageDisable`,{name:n(Y)?.name}):n(o)(`providers.confirmToggle.messageEnable`,{name:n(Y)?.name}))+` `,1),n(Re).length?(_(),g(`div`,Sr,[h(`div`,Cr,p(n(o)(`providers.confirmToggle.dependencyWarning`)),1),(_(!0),g(i,null,D(n(Re),e=>(_(),g(`div`,{key:e,class:`text-destructive text-sm`},p(e),1))),128))])):e(``,!0)]),_:1})]),_:1}),T(n(ge),null,{default:b(()=>[T(n(_e),null,{default:b(()=>[C(p(n(o)(`common.cancel`)),1)]),_:1}),T(n(ve),{onClick:n(We)},{default:b(()=>[C(p(n(o)(`common.confirm`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{wr as default};