llm-simple-router 1.0.11 → 1.0.13

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 (84) hide show
  1. package/dist/admin/dashboard.d.ts +2 -0
  2. package/dist/admin/dashboard.js +112 -70
  3. package/dist/admin/groups.js +10 -1
  4. package/dist/admin/logs.js +30 -1
  5. package/dist/admin/monitor.js +16 -0
  6. package/dist/admin/providers.d.ts +35 -0
  7. package/dist/admin/providers.js +53 -32
  8. package/dist/admin/proxy-enhancement.js +37 -0
  9. package/dist/admin/quick-setup.js +33 -0
  10. package/dist/admin/retry-rules.js +13 -1
  11. package/dist/admin/router-keys.js +6 -0
  12. package/dist/admin/routes.js +1 -1
  13. package/dist/admin/schedules.js +11 -1
  14. package/dist/admin/settings.js +33 -0
  15. package/dist/db/index.d.ts +1 -1
  16. package/dist/db/index.js +1 -1
  17. package/dist/db/stats.d.ts +6 -0
  18. package/dist/db/stats.js +1 -1
  19. package/frontend-dist/assets/{AuthLayout-BNvGjJv3.js → AuthLayout-C7E43a6p.js} +1 -1
  20. package/frontend-dist/assets/{Card-BNz2IkLE.js → Card-L1MI4nan.js} +1 -1
  21. package/frontend-dist/assets/{CardContent-DszVPJgx.js → CardContent-DUzyQmbU.js} +1 -1
  22. package/frontend-dist/assets/{CardTitle-BeBkx0ns.js → CardTitle-oL3GJ7xA.js} +1 -1
  23. package/frontend-dist/assets/{CascadingModelSelect-Z7-ur9_p.js → CascadingModelSelect-C_Ydm0fg.js} +1 -1
  24. package/frontend-dist/assets/{Checkbox-CAQnc0qV.js → Checkbox-OkYUPlFe.js} +1 -1
  25. package/frontend-dist/assets/{CollapsibleContent-CHlSINCS.js → CollapsibleContent-4ZwwyZPz.js} +1 -1
  26. package/frontend-dist/assets/{CollapsibleTrigger-CJMUoPRa.js → CollapsibleTrigger-Cg651F6-.js} +1 -1
  27. package/frontend-dist/assets/{ConcurrencyControl-BcUA816m.js → ConcurrencyControl-LFw4H_oP.js} +1 -1
  28. package/frontend-dist/assets/{Dashboard-DXvcAfAx.js → Dashboard-Bqups5aa.js} +2 -2
  29. package/frontend-dist/assets/{Input-Dr2XqfSh.js → Input-CLu4bS6g.js} +1 -1
  30. package/frontend-dist/assets/{Label-Ct_DR7Ui.js → Label-DVu1uVI7.js} +1 -1
  31. package/frontend-dist/assets/{Login-C8_p8684.js → Login--CFSqs7j.js} +1 -1
  32. package/frontend-dist/assets/Logs-CJPid8DO.js +1 -0
  33. package/frontend-dist/assets/ModelMappings-BTM9yiL6.js +1 -0
  34. package/frontend-dist/assets/Monitor-CBLKclHj.js +1 -0
  35. package/frontend-dist/assets/Providers-5RjiOHfn.js +1 -0
  36. package/frontend-dist/assets/ProxyEnhancement-XKgw6IoB.js +1 -0
  37. package/frontend-dist/assets/QuickSetup-CISVMd51.js +1 -0
  38. package/frontend-dist/assets/RetryRules-DVSEfmo2.js +1 -0
  39. package/frontend-dist/assets/RouterKeys-Cx2n1D0b.js +1 -0
  40. package/frontend-dist/assets/{RouterKeys-B0enpkQK.css → RouterKeys-D8tI3eHr.css} +1 -1
  41. package/frontend-dist/assets/{RovingFocusItem-DlOsi-lb.js → RovingFocusItem-CB_XB24W.js} +1 -1
  42. package/frontend-dist/assets/Schedules-BMD8vrVd.js +1 -0
  43. package/frontend-dist/assets/{Separator-BO94Jk9p.js → Separator-DHTeoMaB.js} +1 -1
  44. package/frontend-dist/assets/Settings-C3yzrB1_.js +6 -0
  45. package/frontend-dist/assets/{Setup-mAyd7FhD.js → Setup-Cgf37mQl.js} +1 -1
  46. package/frontend-dist/assets/{Skeleton-Di0WMQf-.js → Skeleton-DcA4Afm_.js} +1 -1
  47. package/frontend-dist/assets/{Switch-BS1G55M2.js → Switch-BDu-VJJd.js} +1 -1
  48. package/frontend-dist/assets/{TableHeader-jCTjghgy.js → TableHeader-ncK52pod.js} +1 -1
  49. package/frontend-dist/assets/{TabsTrigger-B5HyH2xO.js → TabsTrigger-DeTfRTma.js} +1 -1
  50. package/frontend-dist/assets/{UnifiedRequestDialog-CQ5Rzs11.js → UnifiedRequestDialog-CLHb7t0f.js} +3 -3
  51. package/frontend-dist/assets/{VisuallyHiddenInput-DiW4Si0N.js → VisuallyHiddenInput-DcH9Mxb9.js} +1 -1
  52. package/frontend-dist/assets/arrow-down-CuC5m7VK.js +1 -0
  53. package/frontend-dist/assets/{badge-FksLt30f.js → badge-DhXKxnV5.js} +1 -1
  54. package/frontend-dist/assets/{button-BCxYWEaM.js → button-BuzJlj9X.js} +2 -2
  55. package/frontend-dist/assets/chevron-right-LdKvgE7W.js +1 -0
  56. package/frontend-dist/assets/{dialog-B0wgNzud.js → dialog-CtPySx34.js} +1 -1
  57. package/frontend-dist/assets/{image-DlPnda0z.js → image-BkW18kNK.js} +1 -1
  58. package/frontend-dist/assets/{index-CwjudU09.js → index-BjnFvPid.js} +2 -2
  59. package/frontend-dist/assets/{model-patches-Dv2jfKSp.js → model-patches-DQFF0Cuh.js} +1 -1
  60. package/frontend-dist/assets/{pencil-Y6MJERvc.js → pencil-i0P0IRz5.js} +1 -1
  61. package/frontend-dist/assets/plus-fHe1ysx9.js +1 -0
  62. package/frontend-dist/assets/search-Dast7lfE.js +1 -0
  63. package/frontend-dist/assets/{sparkles-C44_iMrx.js → sparkles-BGb3coPL.js} +1 -1
  64. package/frontend-dist/assets/{transform-domain-FnCfUKrh.js → transform-domain-pYyIPtkg.js} +1 -1
  65. package/frontend-dist/assets/{trash-2-BEOdZk69.js → trash-2-DhD7GboJ.js} +1 -1
  66. package/frontend-dist/assets/{useClipboard-Bw6GLR6I.js → useClipboard-tJg52v7m.js} +1 -1
  67. package/frontend-dist/assets/{useLogRetention-CQHD99Fy.js → useLogRetention-D7ZaYfCW.js} +1 -1
  68. package/frontend-dist/assets/{useProviderGroups-Bz7Yz1b7.js → useProviderGroups-DMuF_-28.js} +1 -1
  69. package/frontend-dist/index.html +2 -2
  70. package/package.json +1 -1
  71. package/frontend-dist/assets/Logs-BDrXnYb1.js +0 -1
  72. package/frontend-dist/assets/ModelMappings-CeLps4LM.js +0 -1
  73. package/frontend-dist/assets/Monitor-By1ywNWD.js +0 -1
  74. package/frontend-dist/assets/Providers-Cp-gomQY.js +0 -1
  75. package/frontend-dist/assets/ProxyEnhancement-D5jsMnL3.js +0 -1
  76. package/frontend-dist/assets/QuickSetup-1ADLBexY.js +0 -1
  77. package/frontend-dist/assets/RetryRules-Dk0OxVLs.js +0 -1
  78. package/frontend-dist/assets/RouterKeys-BvD4POUA.js +0 -1
  79. package/frontend-dist/assets/Schedules-CVJcpHlE.js +0 -1
  80. package/frontend-dist/assets/Settings-MYcQoEZw.js +0 -6
  81. package/frontend-dist/assets/arrow-down-BsHwq97B.js +0 -1
  82. package/frontend-dist/assets/chevron-right-C3U2yjrf.js +0 -1
  83. package/frontend-dist/assets/plus-FNO9X5JG.js +0 -1
  84. package/frontend-dist/assets/search-DpWQ2wvO.js +0 -1
@@ -1 +1 @@
1
- import{Ft as e,Mt as t,Yt as n,h as r,nt as i,ot as a,q as o,qt as s,r as c,vt as l}from"./button-BCxYWEaM.js";var u=a({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(a,{emit:u}){let d=a,f=r(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(r,a)=>t((l(),i(`input`,{"onUpdate:modelValue":a[0]||=t=>e(f)?f.value=t:null,"data-slot":`input`,class:n(s(c)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[o,s(f)]])}});export{u as t};
1
+ import{Ft as e,Mt as t,Yt as n,h as r,nt as i,ot as a,q as o,qt as s,r as c,vt as l}from"./button-BuzJlj9X.js";var u=a({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(a,{emit:u}){let d=a,f=r(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(r,a)=>t((l(),i(`input`,{"onUpdate:modelValue":a[0]||=t=>e(f)?f.value=t:null,"data-slot":`input`,class:n(s(c)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[o,s(f)]])}});export{u as t};
@@ -1 +1 @@
1
- import{S as e,et as t,i as n,jt as r,o as i,ot as a,pt as o,qt as s,r as c,vt as l,xt as u}from"./button-BCxYWEaM.js";var d=a({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let a=e;return i(),(e,i)=>(l(),t(s(n),o(a,{onMousedown:i[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:r(()=>[u(e.$slots,`default`)]),_:3},16))}}),f=a({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(n){let i=n,a=e(i,`class`);return(e,n)=>(l(),t(s(d),o({"data-slot":`label`},s(a),{class:s(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,i.class)}),{default:r(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
1
+ import{S as e,et as t,i as n,jt as r,o as i,ot as a,pt as o,qt as s,r as c,vt as l,xt as u}from"./button-BuzJlj9X.js";var d=a({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(e){let a=e;return i(),(e,i)=>(l(),t(s(n),o(a,{onMousedown:i[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:r(()=>[u(e.$slots,`default`)]),_:3},16))}}),f=a({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(n){let i=n,a=e(i,`class`);return(e,n)=>(l(),t(s(d),o({"data-slot":`label`},s(a),{class:s(c)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,i.class)}),{default:r(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
@@ -1 +1 @@
1
- import{$ as e,A as t,B as n,Qt as r,U as i,Y as a,at as o,et as s,it as c,j as l,jt as u,n as d,nt as f,ot as p,qt as m,tt as h,vt as g,zt as _}from"./button-BCxYWEaM.js";import{t as v}from"./Label-Ct_DR7Ui.js";import{t as y}from"./Input-Dr2XqfSh.js";import{t as b}from"./AuthLayout-BNvGjJv3.js";var x={key:0,class:`text-destructive text-sm`},S=p({__name:`Login`,setup(p){let{t:S}=i(),C=n(),w=_(``),T=_(``),E=_(!1);async function D(){if(w.value){T.value=``,E.value=!0;try{await t.login(w.value),C.push(`/`)}catch(e){console.error(`login:`,e),T.value=l(e,S(`login.loginFailed`))}finally{E.value=!1}}}return(t,n)=>(g(),s(b,{subtitle:m(S)(`login.subtitle`)},{default:u(()=>[e(`form`,{onSubmit:a(D,[`prevent`]),class:`space-y-4`},[e(`div`,null,[o(m(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:u(()=>[c(r(m(S)(`login.password`)),1)]),_:1}),o(m(y),{modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,type:`password`,placeholder:m(S)(`login.passwordPlaceholder`),disabled:E.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),T.value?(g(),f(`p`,x,r(T.value),1)):h(``,!0),o(m(d),{type:`submit`,class:`w-full`,disabled:E.value},{default:u(()=>[c(r(E.value?m(S)(`login.loggingIn`):m(S)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{S as default};
1
+ import{$ as e,A as t,B as n,Qt as r,U as i,Y as a,at as o,et as s,it as c,j as l,jt as u,n as d,nt as f,ot as p,qt as m,tt as h,vt as g,zt as _}from"./button-BuzJlj9X.js";import{t as v}from"./Label-DVu1uVI7.js";import{t as y}from"./Input-CLu4bS6g.js";import{t as b}from"./AuthLayout-C7E43a6p.js";var x={key:0,class:`text-destructive text-sm`},S=p({__name:`Login`,setup(p){let{t:S}=i(),C=n(),w=_(``),T=_(``),E=_(!1);async function D(){if(w.value){T.value=``,E.value=!0;try{await t.login(w.value),C.push(`/`)}catch(e){console.error(`login:`,e),T.value=l(e,S(`login.loginFailed`))}finally{E.value=!1}}}return(t,n)=>(g(),s(b,{subtitle:m(S)(`login.subtitle`)},{default:u(()=>[e(`form`,{onSubmit:a(D,[`prevent`]),class:`space-y-4`},[e(`div`,null,[o(m(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:u(()=>[c(r(m(S)(`login.password`)),1)]),_:1}),o(m(y),{modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,type:`password`,placeholder:m(S)(`login.passwordPlaceholder`),disabled:E.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),T.value?(g(),f(`p`,x,r(T.value),1)):h(``,!0),o(m(d),{type:`submit`,class:`w-full`,disabled:E.value},{default:u(()=>[c(r(E.value?m(S)(`login.loggingIn`):m(S)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{S as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Ft as n,Ot as r,Q as i,Qt as a,U as o,X as s,Y as c,Yt as l,at as u,bt as d,et as f,gt as p,it as m,j as h,jt as g,n as _,nt as v,ot as y,qt as b,tt as x,vt as S,zt as C}from"./button-BuzJlj9X.js";import{r as w,t as ee}from"./UnifiedRequestDialog-CLHb7t0f.js";import{n as T,t as te}from"./useClipboard-tJg52v7m.js";import{a as E,i as D,o as O}from"./TabsTrigger-DeTfRTma.js";import{a as ne,n as re,o as ie,r as ae,t as oe}from"./dialog-CtPySx34.js";import{t as se}from"./Label-DVu1uVI7.js";import{Ot as k,_ as A,_t as ce,a as j,c as le,f as ue,g as M,h as N,kt as de,l as fe,m as P,o as pe,p as me,s as he,t as ge,u as _e,v as F,vt as ve,wt as ye,xt as I}from"./index-BjnFvPid.js";import{t as L}from"./Skeleton-DcA4Afm_.js";import{t as R}from"./badge-DhXKxnV5.js";import{t as z}from"./Input-CLu4bS6g.js";import{t as be}from"./Card-L1MI4nan.js";import{a as xe,i as B,n as V,o as Se,r as H,t as Ce}from"./TableHeader-ncK52pod.js";import{t as we}from"./useLogRetention-D7ZaYfCW.js";var Te={key:1,class:`ml-4 text-muted-foreground text-xs`},U={class:`inline-flex items-center gap-1`},W={class:`font-mono`},G={class:`text-muted-foreground`},K={key:2,class:`text-muted-foreground`},Ee={class:`flex flex-wrap gap-1`},q={class:`block truncate`},J={key:1,class:`text-muted-foreground`},De=y({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},copiedId:{default:null}},emits:[`toggleExpand`,`openDetail`,`copy`],setup(t,{emit:n}){let r=t,d=n,{t:p}=o(),h=i(()=>r.log.thinking_level??`off`);function y(e){if(!e)return p(`logs.row.unknown`);try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch(e){return console.error(`LogTableRow.formatLog:`,e),p(`logs.row.unknown`)}}return(n,r)=>(S(),f(b(H),{class:l([`group`,{"bg-destructive/10":!t.isChild&&(t.log.status_code??0)>=400,"bg-muted/20":t.isChild}])},{default:g(()=>[u(b(B),{class:`w-10`},{default:g(()=>[!t.isChild&&t.log.child_count?(S(),f(b(_),{key:0,variant:`ghost`,size:`xs`,onClick:r[0]||=e=>d(`toggleExpand`,t.log)},{default:g(()=>[u(b(ce),{class:l([`size-3 transition-transform`,t.expanded?``:`-rotate-90`])},null,8,[`class`])]),_:1})):x(``,!0),t.isChild?(S(),v(`span`,Te,`└`)):x(``,!0)]),_:1}),u(b(B),{class:`font-mono text-xs text-muted-foreground`,title:t.log.id},{default:g(()=>[e(`span`,U,[m(a(t.log.id.slice(0,8))+` `,1),u(b(O),{"delay-duration":300},{default:g(()=>[u(b(D),{"as-child":``},{default:g(()=>[u(b(_),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:r[1]||=c(e=>d(`copy`,t.log.id),[`stop`])},{default:g(()=>[t.copiedId===t.log.id?(S(),f(b(ve),{key:0,class:`size-3 text-success`})):(S(),f(b(T),{key:1,class:`size-3`}))]),_:1})]),_:1}),u(b(E),null,{default:g(()=>[m(a(b(p)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})])]),_:1},8,[`title`]),u(b(B),{class:`font-mono text-xs text-muted-foreground whitespace-nowrap`},{default:g(()=>[m(a(b(ye)(t.log.created_at)),1)]),_:1}),u(b(B),{class:`font-mono text-xs whitespace-nowrap`},{default:g(()=>[m(a(t.log.model||`-`)+` `,1),u(b(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[m(a(t.log.api_type),1)]),_:1})]),_:1}),u(b(B),{class:`text-xs whitespace-nowrap`},{default:g(()=>[!t.isChild&&t.log.provider_id===b(`router`)?(S(),f(b(R),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:g(()=>[m(a(b(p)(`logs.row.proxyEnhancement`,{label:y(t.log.upstream_request)})),1)]),_:1})):t.log.backend_model||t.log.provider_name?(S(),v(s,{key:1},[e(`span`,W,a(t.log.backend_model||`-`),1),r[3]||=e(`span`,{class:`text-muted-foreground`},` @ `,-1),e(`span`,G,a(t.log.provider_name||t.log.provider_id||`-`),1),u(b(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:g(()=>[m(a(t.log.api_type),1)]),_:1})],64)):(S(),v(`span`,K,`-`))]),_:1}),u(b(B),null,{default:g(()=>[e(`div`,Ee,[t.log.upstream_api_type&&t.log.upstream_api_type!==t.log.api_type?(S(),f(b(R),{key:0,variant:t.log.api_type===`openai`?`default`:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[m(a(t.log.api_type)+` → `+a(t.log.upstream_api_type),1)]),_:1},8,[`variant`])):x(``,!0),u(b(R),{variant:(t.log.status_code??0)<400?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[m(a(t.log.status_code||`-`),1)]),_:1},8,[`variant`]),h.value?(S(),f(b(R),{key:1,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[m(a(h.value),1)]),_:1})):x(``,!0),t.log.is_stream?(S(),f(b(R),{key:2,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:g(()=>[...r[4]||=[m(` SSE `,-1)]]),_:1})):x(``,!0),t.log.is_retry?(S(),f(b(R),{key:3,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-warning-dark border-warning`},{default:g(()=>[m(a(b(p)(`logs.table.retry`)),1)]),_:1})):x(``,!0),t.log.is_failover?(S(),f(b(R),{key:4,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-danger-dark border-danger`},{default:g(()=>[m(a(b(p)(`logs.table.failover`)),1)]),_:1})):x(``,!0)])]),_:1}),u(b(B),{class:`text-xs text-muted-foreground font-mono`},{default:g(()=>[m(a(b(I)(t.log.latency_ms)),1)]),_:1}),u(b(B),{class:`text-destructive text-xs min-w-0 max-w-60 lg:max-w-xs`},{default:g(()=>[t.log.error_message?(S(),f(b(O),{key:0,"delay-duration":300},{default:g(()=>[u(b(D),{"as-child":``},{default:g(()=>[e(`span`,q,a(t.log.error_message),1)]),_:1}),u(b(E),{class:`max-w-sm whitespace-pre-wrap`},{default:g(()=>[m(a(t.log.error_message),1)]),_:1})]),_:1})):(S(),v(`span`,J,`-`))]),_:1}),u(b(B),null,{default:g(()=>[u(b(_),{variant:`ghost`,size:`sm`,onClick:r[2]||=e=>d(`openDetail`,t.log.id)},{default:g(()=>[m(a(b(p)(`logs.row.detail`)),1)]),_:1})]),_:1})]),_:1},8,[`class`]))}});function Oe(e){try{return JSON.parse(e)}catch{return null}}var ke=[{label:`1h`,value:`1h`},{label:`5h`,value:`5h`},{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`}];function Ae(){let{t:e}=o(),n=C(`5h`),r=C({start:``,end:``}),a=C(`all`),s=C(`all`),c=C(`all`),l=C(`all`),u=C(`all`),d=C(`all`),f=C([]),m=C([]),g=C([]),_=C([]),v=i(()=>r.value.start&&r.value.end&&r.value.start<r.value.end),y=i(()=>{let{start:t,end:n}=r.value;return!t||!n?``:t>=n?e(`logs.validation.endTimeAfterStart`):``}),b={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function x(){let e={};if(v.value)e.start_time=de(r.value.start),e.end_time=k(r.value.end);else{let t=b[n.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return u.value!==`all`&&(e.api_type=u.value),a.value!==`all`&&(e.provider_id=a.value),s.value!==`all`&&(e.client_model=s.value),c.value!==`all`&&(e.backend_model=c.value),l.value!==`all`&&(e.router_key_id=l.value),d.value!==`all`&&(e.status_code=d.value),e}function S(){r.value={start:``,end:``}}async function w(){try{f.value=await t.getProviders()}catch(t){console.error(`Failed to load providers:`,t),j.error(h(t,e(`logs.messages.loadProvidersFailed`)))}}async function ee(){try{m.value=await t.getRouterKeys()}catch(t){console.error(`Failed to load router keys:`,t),j.error(h(t,e(`logs.messages.loadKeysFailed`)))}}async function T(){try{let e=await t.getMappingGroups(),n=new Set,r=new Set;for(let t of e){t.client_model&&n.add(t.client_model);let e=Oe(t.rule);if(e)for(let t of e.targets??[])t.backend_model&&r.add(t.backend_model)}g.value=[...n].sort(),_.value=[...r].sort()}catch(e){console.error(`useLogFilters.loadModelOptions:`,e),g.value=[],_.value=[]}}return p(async()=>{try{let e=await t.getLogsInit();e.providers&&(f.value=e.providers),e.router_keys&&(m.value=e.router_keys),e.client_models&&(g.value=e.client_models),e.backend_models&&(_.value=e.backend_models)}catch(e){console.error(`useLogFilters.init:`,e),await Promise.allSettled([w(),ee(),T()])}}),{PERIODS:ke,period:n,dateRange:r,dateRangeError:y,providerFilter:a,clientModelFilter:s,backendModelFilter:c,keyFilter:l,apiTypeFilter:u,statusFilter:d,providers:f,routerKeys:m,clientModelOptions:g,backendModelOptions:_,hasDateRange:v,clearDateRange:S,buildFilterParams:x}}var Y=20,je=864e5;function Me(){let{t:e}=o(),n=C([]),r=C(0),a=C(1),s=C({}),c=C(30),l=C(!1),u=C(!1),d=C(new Set),f=C({}),p=C({}),m=C(!1),g=C(null),_=i(()=>Math.ceil(r.value/Y));async function v(i){i&&(s.value=i),l.value=!0;try{let e=await t.getLogs({page:a.value,limit:Y,view:`grouped`,...s.value});n.value=e.data,r.value=e.total,d.value.clear(),f.value={},p.value={}}catch(t){console.error(`Failed to load logs:`,t),j.error(h(t,e(`logs.messages.loadFailed`)))}finally{l.value=!1}}function y(e){e>=1&&e<=_.value&&e!==a.value&&(a.value=e,v())}let b=C(null),x=C(!1);async function S(){try{let e=new Date(Date.now()-c.value*je).toISOString(),n=await t.deleteLogsBefore(e);u.value=!1,a.value=1,await v(),b.value=n.deleted,x.value=!0}catch(t){console.error(`Failed to cleanup logs:`,t),j.error(h(t,e(`logs.messages.cleanupFailed`)))}}async function ee(n){let r=n.id;if(d.value.has(r)){d.value.delete(r);return}if(d.value.add(r),!f.value[r]){p.value[r]=!0;try{f.value[r]=await t.getLogChildren(r)}catch(t){console.error(`Failed to load child logs:`,t),j.error(h(t,e(`logs.messages.loadSubRequestsFailed`)))}finally{p.value[r]=!1}}}async function T(n){try{let e=await t.getLogDetail(n);g.value=w(e,e.child_count?await t.getLogChildren(n):[]),m.value=!0}catch(t){console.error(`Failed to load log detail:`,t),j.error(h(t,e(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:Y,loading:l,logs:n,total:r,page:a,totalPages:_,cleanupDays:c,showCleanup:u,expandedRows:d,childLogs:f,childLoading:p,logDetailOpen:m,selectedLogEntry:g,cleanupResult:b,showCleanupResult:x,loadLogs:v,goToPage:y,handleCleanup:S,toggleExpand:ee,openLogDetail:T}}var Ne={class:`page`},Pe={class:`flex items-center justify-between mb-4`},Fe={class:`text-lg font-semibold text-foreground`},Ie={class:`flex flex-wrap items-center gap-2 mb-4`},Le={class:`flex`},Re={class:`flex items-center gap-1`},ze={key:1,class:`text-xs text-destructive whitespace-nowrap`},Be={key:0,class:`absolute inset-0 bg-background/50 flex items-center justify-center z-10`},Ve={class:`space-y-3 w-3/4`},He={class:`flex flex-col items-center gap-2`},Ue={class:`text-sm text-muted-foreground`},We={key:0,class:`text-xs text-muted-foreground`},Ge={class:`flex items-center justify-between mt-4`},Ke={class:`text-sm text-muted-foreground`},qe={class:`flex items-center gap-1`},Je={key:0,class:`px-2 text-sm text-muted-foreground`},Ye={class:`flex items-center justify-end mt-2 gap-2`},Xe={class:`text-xs text-muted-foreground`},Ze={class:`text-xs text-muted-foreground`},Qe={class:`text-sm text-muted-foreground`},$e={class:`mb-4`},et=9,tt=300,nt=7,X=2,Z=1,rt=2e3,it=y({__name:`Logs`,setup(t){let{t:c}=o(),{PERIODS:l,period:h,dateRange:y,dateRangeError:w,providerFilter:T,clientModelFilter:E,backendModelFilter:D,keyFilter:O,statusFilter:k,providers:ce,routerKeys:j,clientModelOptions:de,backendModelOptions:ve,clearDateRange:ye,buildFilterParams:I}=Ae(),{logs:R,total:Te,page:U,totalPages:W,cleanupDays:G,showCleanup:K,cleanupResult:Ee,showCleanupResult:q,expandedRows:J,childLogs:Oe,childLoading:ke,logDetailOpen:Y,selectedLogEntry:je,loadLogs:it,goToPage:Q,handleCleanup:at,toggleExpand:ot,openLogDetail:st,loading:ct}=Me(),lt=i(()=>{let e=W.value,t=U.value;if(e<=nt)return Array.from({length:e},(e,t)=>t+1);let n=[Z],r=Math.max(Z+1,t-X),i=Math.min(e-Z,t+X);r>Z+X&&n.push(`...`);for(let e=r;e<=i;e++)n.push(e);return i<e-X&&n.push(`...`),n.push(e),n}),{retentionDays:ut,retentionSaving:dt,saveRetention:ft,loadRetention:pt}=we(),{copy:mt}=te(),$=C(null);function ht(e){mt(e),$.value=e,setTimeout(()=>{$.value===e&&($.value=null)},rt)}let gt=i(()=>T.value!==`all`||E.value!==`all`||D.value!==`all`||O.value!==`all`||k.value!==`all`||!!y.value.start||!!y.value.end);function _t(){h.value=`5h`,y.value={start:``,end:``},T.value=`all`,E.value=`all`,D.value=`all`,O.value=`all`,k.value=`all`}let vt=null;return r([h,y,T,E,D,O,k],()=>{U.value=1,vt&&clearTimeout(vt),vt=setTimeout(()=>it(I()),tt)},{deep:!0}),p(()=>{it(I()),pt()}),(t,r)=>(S(),v(`div`,Ne,[e(`div`,Pe,[e(`h2`,Fe,a(b(c)(`logs.title`)),1),u(b(_),{variant:`ghost`,size:`sm`,onClick:r[0]||=e=>K.value=!0},{default:g(()=>[m(a(b(c)(`logs.cleanupLogs`)),1)]),_:1})]),e(`div`,Ie,[e(`div`,Le,[(S(!0),v(s,null,d(b(l),e=>(S(),f(b(_),{key:e.value,variant:b(h)===e.value?`default`:`outline`,size:`sm`,class:`rounded-none first:rounded-l-md last:rounded-r-md -ml-px first:ml-0`,onClick:t=>h.value=e.value},{default:g(()=>[m(a(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),e(`div`,Re,[u(b(z),{type:`datetime-local`,modelValue:b(y).start,"onUpdate:modelValue":r[1]||=e=>b(y).start=e,class:`w-44`},null,8,[`modelValue`]),r[19]||=e(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),u(b(z),{type:`datetime-local`,modelValue:b(y).end,"onUpdate:modelValue":r[2]||=e=>b(y).end=e,class:`w-44`},null,8,[`modelValue`]),b(y).start||b(y).end?(S(),f(b(_),{key:0,variant:`ghost`,size:`sm`,onClick:b(ye)},{default:g(()=>[m(a(b(c)(`logs.clear`)),1)]),_:1},8,[`onClick`])):x(``,!0),b(w)?(S(),v(`span`,ze,a(b(w)),1)):x(``,!0)]),u(b(F),{modelValue:b(T),"onUpdate:modelValue":r[3]||=e=>n(T)?T.value=e:null},{default:g(()=>[u(b(N),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.allProviders`)),1)]),_:1}),(S(!0),v(s,null,d(b(ce),e=>(S(),f(b(M),{key:e.id,value:e.id},{default:g(()=>[m(a(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(E),"onUpdate:modelValue":r[4]||=e=>n(E)?E.value=e:null},{default:g(()=>[u(b(N),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.filters.allClientModels`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.filters.allClientModels`)),1)]),_:1}),(S(!0),v(s,null,d(b(de),e=>(S(),f(b(M),{key:e,value:e},{default:g(()=>[m(a(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(D),"onUpdate:modelValue":r[5]||=e=>n(D)?D.value=e:null},{default:g(()=>[u(b(N),{class:`w-32 truncate`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.filters.allBackendModels`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.filters.allBackendModels`)),1)]),_:1}),(S(!0),v(s,null,d(b(ve),e=>(S(),f(b(M),{key:e,value:e},{default:g(()=>[m(a(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(O),"onUpdate:modelValue":r[6]||=e=>n(O)?O.value=e:null},{default:g(()=>[u(b(N),{class:`w-32 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.allKeys`)),1)]),_:1}),(S(!0),v(s,null,d(b(j),e=>(S(),f(b(M),{key:e.id,value:e.id},{default:g(()=>[m(a(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),u(b(F),{modelValue:b(k),"onUpdate:modelValue":r[7]||=e=>n(k)?k.value=e:null},{default:g(()=>[u(b(N),{class:`w-28 truncate h-8 text-xs`},{default:g(()=>[u(b(P),{placeholder:b(c)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),u(b(A),null,{default:g(()=>[u(b(M),{value:`all`},{default:g(()=>[m(a(b(c)(`logs.allStatus`)),1)]),_:1}),u(b(M),{value:`200`},{default:g(()=>[...r[20]||=[m(`200`,-1)]]),_:1}),u(b(M),{value:`non200`},{default:g(()=>[m(a(b(c)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),u(b(be),{flush:``,class:`relative`},{default:g(()=>[b(ct)?(S(),v(`div`,Be,[e(`div`,Ve,[u(b(L),{class:`h-8 w-full`}),u(b(L),{class:`h-8 w-full`}),u(b(L),{class:`h-8 w-5/6`})])])):x(``,!0),u(b(ge),{"delay-duration":300},{default:g(()=>[u(b(Se),{class:`[&_td]:px-3 [&_th]:px-3`},{default:g(()=>[u(b(Ce),null,{default:g(()=>[u(b(H),{class:`bg-muted`},{default:g(()=>[u(b(V),{class:`w-10`}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.id`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.time`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.clientModel`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.targetModel`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.latency`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.tags`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.latency`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.error`)),1)]),_:1}),u(b(V),{class:`text-muted-foreground`},{default:g(()=>[m(a(b(c)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),u(b(xe),null,{default:g(()=>[(S(!0),v(s,null,d(b(R),e=>(S(),v(s,{key:e.id},[u(De,{log:e,expanded:b(J).has(e.id),"copied-id":$.value,onToggleExpand:b(ot),onOpenDetail:b(st),onCopy:ht},null,8,[`log`,`expanded`,`copied-id`,`onToggleExpand`,`onOpenDetail`]),b(J).has(e.id)?(S(),v(s,{key:0},[b(ke)[e.id]?(S(),f(b(H),{key:0},{default:g(()=>[u(b(B),{colspan:et,class:`text-center py-2 pl-10`},{default:g(()=>[u(b(L),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):b(Oe)[e.id]?.length?(S(!0),v(s,{key:1},d(b(Oe)[e.id],e=>(S(),f(De,{key:e.id,log:e,"is-child":!0,"copied-id":$.value,onOpenDetail:b(st),onCopy:ht},null,8,[`log`,`copied-id`,`onOpenDetail`]))),128)):x(``,!0)],64)):x(``,!0)],64))),128)),b(R).length===0&&!b(ct)?(S(),f(b(H),{key:0},{default:g(()=>[u(b(B),{colspan:et,class:`py-12 text-center`},{default:g(()=>[e(`div`,He,[e(`p`,Ue,a(b(c)(`logs.noLogs`)),1),gt.value?(S(),v(`p`,We,a(b(c)(`logs.noLogsFilterHint`)),1)):x(``,!0),gt.value?(S(),f(b(_),{key:1,variant:`ghost`,size:`sm`,onClick:_t},{default:g(()=>[m(a(b(c)(`logs.clearAllFilters`)),1)]),_:1})):x(``,!0)])]),_:1})]),_:1})):x(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),e(`div`,Ge,[e(`p`,Ke,a(b(c)(`logs.pagination`,{total:b(Te),page:b(U),totalPages:b(W)})),1),e(`div`,qe,[u(b(_),{variant:`outline`,size:`sm`,onClick:r[8]||=e=>b(Q)(1),disabled:b(U)<=1},{default:g(()=>[m(a(b(c)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),u(b(_),{variant:`outline`,size:`sm`,onClick:r[9]||=e=>b(Q)(b(U)-1),disabled:b(U)<=1},{default:g(()=>[m(a(b(c)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(S(!0),v(s,null,d(lt.value,e=>(S(),v(s,{key:e},[e===`...`?(S(),v(`span`,Je,`...`)):(S(),f(b(_),{key:1,variant:e===b(U)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>b(Q)(e)},{default:g(()=>[m(a(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),u(b(_),{variant:`outline`,size:`sm`,onClick:r[10]||=e=>b(Q)(b(U)+1),disabled:b(U)>=b(W)},{default:g(()=>[m(a(b(c)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),u(b(_),{variant:`outline`,size:`sm`,onClick:r[11]||=e=>b(Q)(b(W)),disabled:b(U)>=b(W)},{default:g(()=>[m(a(b(c)(`logs.lastPage`)),1)]),_:1},8,[`disabled`])])]),e(`div`,Ye,[e(`span`,Xe,a(b(c)(`logs.cleanup.autoCleanup`)),1),u(b(z),{type:`number`,modelValue:b(ut),"onUpdate:modelValue":r[12]||=e=>n(ut)?ut.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-16 h-6 text-xs`},null,8,[`modelValue`]),e(`span`,Ze,a(b(c)(`logs.cleanup.days`)),1),u(b(_),{size:`sm`,onClick:b(ft),disabled:b(dt)},{default:g(()=>[m(a(b(c)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])]),u(ee,{open:b(Y),"onUpdate:open":r[13]||=e=>n(Y)?Y.value=e:null,source:`history`,"log-entry":b(je)},null,8,[`open`,`log-entry`]),u(b(ie),{open:b(K),"onUpdate:open":r[16]||=e=>n(K)?K.value=e:null},{default:g(()=>[u(b(ne),null,{default:g(()=>[u(b(re),null,{default:g(()=>[u(b(oe),null,{default:g(()=>[m(a(b(c)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),e(`p`,Qe,a(b(c)(`logs.cleanup.description`)),1),e(`div`,$e,[u(b(se),{class:`block text-sm font-medium text-foreground mb-1`},{default:g(()=>[m(a(b(c)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),u(b(z),{modelValue:b(G),"onUpdate:modelValue":r[14]||=e=>n(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),u(b(ae),null,{default:g(()=>[u(b(_),{variant:`outline`,onClick:r[15]||=e=>K.value=!1},{default:g(()=>[m(a(b(c)(`common.cancel`)),1)]),_:1}),u(b(_),{variant:`destructive`,onClick:b(at)},{default:g(()=>[m(a(b(c)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),u(b(me),{open:b(q),"onUpdate:open":r[18]||=e=>n(q)?q.value=e:null},{default:g(()=>[u(b(_e),null,{default:g(()=>[u(b(he),null,{default:g(()=>[u(b(pe),null,{default:g(()=>[m(a(b(c)(`logs.cleanupResult.title`)),1)]),_:1}),u(b(fe),null,{default:g(()=>[m(a(b(c)(`logs.cleanupResult.description`,{count:b(Ee)})),1)]),_:1})]),_:1}),u(b(le),null,{default:g(()=>[u(b(ue),{onClick:r[17]||=e=>q.value=!1},{default:g(()=>[m(a(b(c)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{it as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Ot as n,Q as r,Qt as i,R as a,U as o,X as s,Yt as c,at as l,bt as u,et as ee,gt as te,it as d,j as f,jt as p,n as m,nt as h,ot as g,qt as _,tt as v,vt as y,zt as b}from"./button-BuzJlj9X.js";import{t as ne}from"./arrow-down-CuC5m7VK.js";import{t as re}from"./image-BkW18kNK.js";import{t as x}from"./plus-fHe1ysx9.js";import{a as ie,n as ae,o as oe,r as se,t as ce}from"./dialog-CtPySx34.js";import{t as S}from"./Label-DVu1uVI7.js";import{t as C}from"./Switch-BDu-VJJd.js";import{a as w,ct as le,lt as ue,ut as de}from"./index-BjnFvPid.js";import{t as T}from"./Input-CLu4bS6g.js";import{t as E}from"./CascadingModelSelect-C_Ydm0fg.js";import{t as fe}from"./useProviderGroups-DMuF_-28.js";var pe=a(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]);function D(e,t){let n={},r=!1;try{let t=JSON.parse(e);n=t.default&&!t.targets?{targets:[t.default]}:t}catch{r=!0}let i=(n.targets??[]).map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||``,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})),a=i[0],o=a?.overflow_provider_id&&a?.overflow_model?{provider_id:a.overflow_provider_id,model:a.overflow_model}:null,s=n.multimodal_fallback??null;return{data:{targets:i.length>0?i:[{backend_model:``,provider_id:t}],overflow:o,multimodal:s},parseError:r}}function O(e,t,n){let r=e.map((e,n)=>n===0&&t?{backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:t.provider_id,overflow_model:t.model}:{backend_model:e.backend_model,provider_id:e.provider_id});return JSON.stringify({targets:r,...n?{multimodal_fallback:n}:{}})}function me(e,t,n){let{data:r}=D(e,n),i=[];for(let e of r.targets){let n=t.find(t=>t.id===e.provider_id)?.name??e.provider_id.slice(0,6);i.push(n)}if(r.overflow){let e=t.find(e=>e.id===r.overflow.provider_id);i.push(`↓ `+(e?.name??`OF`))}return r.multimodal&&i.push(`MM`),i.join(` → `)}var he={class:`page`},ge={class:`flex items-center gap-4 mb-4`},_e={class:`text-base font-semibold text-foreground shrink-0`},ve={class:`flex gap-4`,style:{"min-height":`calc(100vh - 120px)`}},ye={class:`w-[340px] shrink-0 flex flex-col gap-2`},be={class:`font-mono text-[10px] text-muted-foreground/60 px-0.5`},k={class:`flex flex-col gap-0.5 flex-1 overflow-y-auto`},A=[`onClick`],j={class:`flex-1 min-w-0`},M={key:0,class:`py-8 text-center text-xs text-muted-foreground/50`},N={class:`flex-1 bg-card rounded-lg border border-border flex flex-col overflow-hidden`},xe={key:0,class:`flex-1 flex items-center justify-center text-muted-foreground/50 text-sm flex-col gap-2`},Se={class:`flex items-center gap-3 px-4 py-3 border-b border-border bg-background/30`},Ce={class:`font-mono text-sm font-bold flex-1 truncate`},we={class:`flex-1 overflow-y-auto px-4 py-4 space-y-5`},Te={class:`flex items-center gap-2 mb-2`},Ee={class:`text-xs font-semibold text-muted-foreground`},De={class:`font-mono text-[10px] text-muted-foreground/40 bg-muted/30 px-1.5 py-px rounded`},Oe={class:`flex flex-col gap-1.5`},ke={class:`flex-1`},Ae={class:`flex items-center gap-2 mb-2`},je={class:`text-xs font-semibold text-primary/60`},Me={key:0,class:`font-mono text-[10px] text-primary/40 bg-primary/8 px-1.5 py-px rounded`},Ne={class:`bg-background border border-border rounded-md px-3 py-2.5`},Pe={class:`flex items-center gap-2.5 mb-2`},Fe={class:`text-xs text-foreground`},Ie={key:0,class:`flex gap-2`},Le={class:`flex-1`},Re={key:1,class:`text-xs text-muted-foreground/40`},ze={class:`flex items-center gap-2 mb-2`},Be={class:`text-xs font-semibold text-blue-500/60`},Ve={key:0,class:`font-mono text-[10px] text-blue-500/40 bg-blue-500/8 px-1.5 py-px rounded`},He={class:`bg-background border border-border rounded-md px-3 py-2.5`},Ue={class:`flex items-center gap-2.5 mb-2`},We={class:`text-xs text-foreground`},Ge={key:0,class:`flex gap-2`},Ke={class:`flex-1`},qe={key:1,class:`text-xs text-muted-foreground/40`},Je={key:2,class:`flex items-center gap-2 mt-2 px-2 py-1.5 bg-warning/8 rounded`},Ye={class:`text-[10px] text-warning leading-relaxed`},Xe={class:`flex items-center justify-between px-4 py-2.5 border-t border-border bg-background/30`},P={key:0,class:`flex items-center gap-2 text-xs text-danger`},Ze={class:`font-mono text-[10px] text-muted-foreground/40`},Qe={class:`flex gap-2`},$e={class:`space-y-3 py-2`},et={class:`space-y-1.5`},tt={class:`space-y-1.5`},F=g({__name:`ModelMappings`,setup(a){let{t:g}=o(),F=b([]),I=b([]),L=b(null),R=b(``),z=b(!1),B=b(!1),V=b(!1),H=b(``),U=b(void 0),W=b([]),G=b(null),K=b(null),q=r(()=>fe(I.value)),J=r(()=>{let e=R.value.toLowerCase().trim();return e?F.value.filter(t=>t.client_model.toLowerCase().includes(e)):F.value}),Y=r(()=>F.value.find(e=>e.id===L.value)??null),X=r(()=>!!G.value),Z=r(()=>!!K.value),nt=r(()=>H.value.trim().length>0&&!!U.value?.model),Q=r(()=>I.value[0]?.id??``);function rt(e){let t=D(e.rule,Q.value);return t.parseError&&w.error(g(`mappings.messages.parseRuleFailed`)),t.data}function it(e){return me(e.rule,I.value,Q.value)}function at(e){L.value=e,B.value=!1}n(Y,e=>{if(!e)return;let t=rt(e);W.value=t.targets.map(e=>({...e})),G.value=t.overflow?{...t.overflow}:null,K.value=t.multimodal?{...t.multimodal}:null,B.value=!1});function ot(){let e=q.value[0];W.value.push({backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``})}function st(e){W.value.length<=1||W.value.splice(e,1)}function ct(e,t){W.value[e]={...W.value[e],provider_id:t.provider_id,backend_model:t.model}}function lt(e){if(e){let e=q.value[0];G.value={provider_id:e?.provider.id??``,model:e?.models[0]?.name??``}}else G.value=null}function ut(e){G.value={provider_id:e.provider_id,model:e.model}}function dt(e){if(e){let e=q.value[0];K.value={provider_id:e?.provider.id??``,backend_model:e?.models[0]?.name??``}}else K.value=null}function ft(e){K.value={provider_id:e.provider_id,backend_model:e.model}}async function $(){try{let e=await t.getMappingGroupsInit();F.value=e.groups,I.value=e.providers}catch(e){console.error(`ModelMappings.init:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}!L.value&&F.value.length>0&&(L.value=F.value[0].id)}async function pt(){if(!Y.value)return;let e=Y.value.client_model.trim();if(e){z.value=!0;try{await t.updateMappingGroup(Y.value.id,{client_model:e,rule:O(W.value,G.value,K.value)}),await $(),w.success(g(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.save:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}finally{z.value=!1}}}async function mt(){if(Y.value)try{await t.toggleMappingGroup(Y.value.id),await $()}catch(e){console.error(`ModelMappings.toggle:`,e),w.error(f(e,g(`mappings.messages.toggleFailed`)))}}async function ht(){if(Y.value)try{await t.deleteMappingGroup(Y.value.id),B.value=!1;let e=F.value.filter(e=>e.id!==Y.value.id);L.value=e.length>0?e[0].id:null,await $(),w.success(g(`common.deleteSuccess`))}catch(e){console.error(`ModelMappings.delete:`,e),w.error(f(e,g(`mappings.messages.deleteFailed`,{model:Y.value.client_model})))}}function gt(){H.value=``;let e=q.value[0];U.value=e?{provider_id:e.provider.id,model:e.models[0]?.name??``}:void 0,V.value=!0}async function _t(){let e=H.value.trim();if(!(!e||!U.value?.model))try{let n=O([{provider_id:U.value.provider_id,backend_model:U.value.model}],null,null),r=await t.createMappingGroup({client_model:e,rule:n});V.value=!1,await $(),L.value=r.id,w.success(g(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.add:`,e),w.error(f(e,g(`mappings.messages.saveFailed`)))}}return te($),(t,n)=>(y(),h(`div`,he,[e(`div`,ge,[e(`h2`,_e,i(_(g)(`mappings.title`)),1),n[9]||=e(`div`,{class:`flex-1`},null,-1),l(_(m),{size:`sm`,class:`h-[30px] gap-1.5`,onClick:gt},{default:p(()=>[l(_(x),{class:`w-3.5 h-3.5`}),d(` `+i(_(g)(`mappings.addGroup`)),1)]),_:1})]),e(`div`,ve,[e(`aside`,ye,[e(`div`,null,[l(_(T),{modelValue:R.value,"onUpdate:modelValue":n[0]||=e=>R.value=e,placeholder:_(g)(`common.search`)+`...`,class:`h-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])]),e(`span`,be,i(J.value.length)+` / `+i(F.value.length)+` `+i(_(g)(`mappings.totalMappings`,{count:0}).replace(/\d+.*/,``)),1),e(`div`,k,[(y(!0),h(s,null,u(J.value,t=>(y(),h(`div`,{key:t.id,class:c([`flex items-center gap-2.5 px-3 py-2 bg-card rounded-lg border cursor-pointer transition-colors`,L.value===t.id?`border-primary bg-primary/10`:`border-border hover:bg-muted/30`]),onClick:e=>at(t.id)},[e(`div`,j,[e(`div`,{class:c([`font-mono text-xs font-semibold truncate`,t.is_active?`text-foreground`:`text-muted-foreground`])},i(t.client_model),3),e(`div`,{class:c([`text-[10px] truncate mt-0.5`,t.is_active?`text-muted-foreground/60`:`text-muted-foreground/30`])},i(it(t)),3)]),e(`span`,{class:c([`inline-flex items-center gap-1 px-1.5 py-px rounded-full text-[9px] font-mono font-semibold shrink-0`,t.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[e(`span`,{class:c([`w-1 h-1 rounded-full`,t.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+i(t.is_active?`ON`:`OFF`),1)],2)],10,A))),128)),J.value.length===0?(y(),h(`div`,M,i(_(g)(`mappings.noGroups`)),1)):v(``,!0)])]),e(`main`,N,[Y.value?(y(),h(s,{key:1},[e(`div`,Se,[e(`span`,Ce,i(Y.value.client_model),1),e(`span`,{class:c([`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-[10px] font-mono font-semibold h-5`,Y.value.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[e(`span`,{class:c([`w-1 h-1 rounded-full`,Y.value.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+i(Y.value.is_active?`Active`:`Inactive`),1)],2),l(_(C),{"model-value":!!Y.value.is_active,"onUpdate:modelValue":mt},null,8,[`model-value`])]),e(`div`,we,[e(`section`,null,[e(`div`,Te,[l(_(le),{class:`w-3.5 h-3.5 text-primary/60`}),e(`span`,Ee,i(_(g)(`mappings.editor.failoverChain`)),1),e(`span`,De,i(W.value.length)+` target`+i(W.value.length>1?`s`:``),1)]),e(`div`,Oe,[(y(!0),h(s,null,u(W.value,(t,n)=>(y(),h(`div`,{key:n,class:`flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-md`},[e(`span`,{class:c([`w-[22px] h-[22px] flex items-center justify-center rounded-full text-[10px] font-mono font-bold shrink-0`,n===0?`bg-primary/15 text-primary`:`bg-muted/40 text-muted-foreground`])},i(n+1),3),e(`div`,ke,[l(E,{providers:q.value,"model-value":{provider_id:t.provider_id,model:t.backend_model},compact:``,placeholder:_(g)(`mappings.selectProviderModel`),"onUpdate:modelValue":e=>ct(n,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),W.value.length>1?(y(),ee(_(m),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>st(n)},{default:p(()=>[l(_(ue),{class:`w-3 h-3`})]),_:1},8,[`onClick`])):v(``,!0)]))),128))]),l(_(m),{variant:`ghost`,size:`sm`,class:`mt-1.5 text-xs text-muted-foreground/40 border border-dashed border-border hover:border-primary/40 hover:text-primary/60`,onClick:ot},{default:p(()=>[l(_(x),{class:`w-3 h-3 mr-1`}),d(` `+i(_(g)(`mappings.addBackup`)),1)]),_:1})]),n[10]||=e(`div`,{class:`border-t border-dashed border-primary/10`},null,-1),e(`section`,null,[e(`div`,Ae,[l(_(ne),{class:`w-3.5 h-3.5 text-primary/50`}),e(`span`,je,i(_(g)(`mappings.editor.contextOverflow`)),1),X.value?(y(),h(`span`,Me,i(_(g)(`mappings.enabled`)),1)):v(``,!0)]),e(`div`,Ne,[e(`div`,Pe,[l(_(C),{"model-value":X.value,"onUpdate:modelValue":lt},null,8,[`model-value`]),e(`span`,Fe,i(_(g)(`mappings.overflowTooltip`)),1)]),X.value?(y(),h(`div`,Ie,[e(`div`,Le,[l(E,{providers:q.value,"model-value":G.value?{provider_id:G.value.provider_id,model:G.value.model}:void 0,compact:``,dashed:``,placeholder:_(g)(`mappings.selectModel`),"onUpdate:modelValue":n[1]||=e=>ut(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),h(`span`,Re,i(_(g)(`mappings.overflowTooltip`)),1))])]),e(`section`,null,[e(`div`,ze,[l(_(re),{class:`w-3.5 h-3.5 text-blue-500/50`}),e(`span`,Be,i(_(g)(`mappings.editor.multimodalFallback`)),1),Z.value?(y(),h(`span`,Ve,i(_(g)(`mappings.enabled`)),1)):v(``,!0)]),e(`div`,He,[e(`div`,Ue,[l(_(C),{"model-value":Z.value,"onUpdate:modelValue":dt},null,8,[`model-value`]),e(`span`,We,i(_(g)(`mappings.multimodalFallback.add`)),1)]),Z.value?(y(),h(`div`,Ge,[e(`div`,Ke,[l(E,{providers:q.value,"model-value":K.value?{provider_id:K.value.provider_id,model:K.value.backend_model}:void 0,compact:``,dashed:``,placeholder:_(g)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[2]||=e=>ft(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),h(`span`,qe,i(_(g)(`mappings.multimodalFallback.add`)),1)),Z.value?(y(),h(`div`,Je,[l(_(de),{class:`w-3 h-3 text-warning shrink-0`}),e(`span`,Ye,i(_(g)(`mappings.multimodalFallback.sessionLockWarning`)),1)])):v(``,!0)])])]),e(`div`,Xe,[B.value?(y(),h(`div`,P,[d(i(_(g)(`mappings.confirmDeleteDesc`,{model:Y.value.client_model}))+` `,1),l(_(m),{variant:`destructive`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:ht},{default:p(()=>[d(i(_(g)(`common.yes`)),1)]),_:1}),l(_(m),{variant:`ghost`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:n[3]||=e=>B.value=!1},{default:p(()=>[d(i(_(g)(`common.no`)),1)]),_:1})])):(y(),h(s,{key:1},[e(`span`,Ze,` ID: `+i(Y.value.id),1),e(`div`,Qe,[l(_(m),{variant:`ghost`,size:`sm`,class:`text-xs text-danger hover:text-danger`,onClick:n[4]||=e=>B.value=!0},{default:p(()=>[d(i(_(g)(`common.delete`)),1)]),_:1}),l(_(m),{size:`sm`,class:`text-xs`,disabled:z.value,onClick:pt},{default:p(()=>[d(i(z.value?_(g)(`common.saving`):_(g)(`common.save`)),1)]),_:1},8,[`disabled`])])],64))])],64)):(y(),h(`div`,xe,[l(_(pe),{class:`w-6 h-6 opacity-40`}),d(` `+i(_(g)(`mappings.selectProviderOrModel`)),1)]))])]),l(_(oe),{open:V.value,"onUpdate:open":n[8]||=e=>V.value=!1},{default:p(()=>[l(_(ie),{class:`max-w-md`},{default:p(()=>[l(_(ae),null,{default:p(()=>[l(_(ce),null,{default:p(()=>[d(i(_(g)(`mappings.addGroup`)),1)]),_:1})]),_:1}),e(`div`,$e,[e(`div`,et,[l(_(S),{class:`text-xs text-muted-foreground`},{default:p(()=>[d(i(_(g)(`mappings.clientModel`)),1)]),_:1}),l(_(T),{modelValue:H.value,"onUpdate:modelValue":n[5]||=e=>H.value=e,placeholder:_(g)(`mappings.editor.clientInputPlaceholder`),class:`h-8 font-mono text-xs`},null,8,[`modelValue`,`placeholder`])]),e(`div`,tt,[l(_(S),{class:`text-xs text-muted-foreground`},{default:p(()=>[d(i(_(g)(`mappings.selectProviderModel`)),1)]),_:1}),l(E,{providers:q.value,"model-value":U.value,compact:``,placeholder:_(g)(`mappings.selectProviderModel`),"onUpdate:modelValue":n[6]||=e=>U.value=e},null,8,[`providers`,`model-value`,`placeholder`])])]),l(_(se),null,{default:p(()=>[l(_(m),{variant:`ghost`,size:`sm`,onClick:n[7]||=e=>V.value=!1},{default:p(()=>[d(i(_(g)(`common.cancel`)),1)]),_:1}),l(_(m),{size:`sm`,disabled:!nt.value,onClick:_t},{default:p(()=>[d(i(_(g)(`mappings.addGroup`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{F as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Ft as n,Kt as r,Ot as i,Q as a,Qt as o,U as s,Vt as c,X as l,Y as u,Yt as d,Zt as f,_t as p,at as m,bt as h,et as g,gt as ee,it as _,j as te,jt as v,n as y,nt as b,ot as x,qt as S,tt as C,vt as w,zt as T}from"./button-BuzJlj9X.js";import{n as E,t as D}from"./UnifiedRequestDialog-CLHb7t0f.js";import{n as ne,t as O}from"./useClipboard-tJg52v7m.js";import{a as k,i as A,o as j}from"./TabsTrigger-DeTfRTma.js";import{n as re,t as ie}from"./CollapsibleContent-4ZwwyZPz.js";import{t as ae}from"./CollapsibleTrigger-Cg651F6-.js";import{_t as oe,a as se,c as ce,d as le,f as ue,l as de,lt as fe,o as pe,p as me,s as he,u as ge,vt as _e,yt as M}from"./index-BjnFvPid.js";import{t as ve}from"./badge-DhXKxnV5.js";import{a as ye,i as N,n as P,o as be,r as F,t as xe}from"./TableHeader-ncK52pod.js";function I(e){return e.adaptiveLimit??e.maxConcurrency}function L(e,t){let n=t>0?e/t:0;return n>=.8?`bg-danger`:n>=.5?`bg-warning`:`bg-primary`}function Se(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`},we={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%)`}},R={class:`text-[32px] font-bold text-primary font-mono leading-none`},Te={class:`flex flex-col gap-0.5`},Ee={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},z={class:`font-mono text-[11px] text-muted-foreground`},De={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`},Oe={class:`flex-1 px-4 py-2.5 flex flex-col gap-1 justify-center`},ke={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-0.5`},Ae={key:0,class:`text-[11px] text-muted-foreground py-1`},je=[`title`],B={class:`flex-1 h-1 bg-foreground/[0.06] rounded-sm overflow-hidden`},Me=x({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{},queuedCount:{},concurrency:{}},setup(t){let{t:n}=s();return(r,i)=>(w(),b(`div`,Ce,[e(`div`,we,[e(`span`,R,o(t.activeCount),1),e(`div`,Te,[e(`span`,Ee,o(S(n)(`monitor.header.activeRequests`)),1),e(`span`,z,o(S(n)(`monitor.header.streamNonStream`,{stream:t.streamCount,nonStream:t.activeCount-t.streamCount})),1)]),t.queuedCount>0?(w(),b(`span`,De,o(t.queuedCount)+` `+o(S(n)(`monitor.queued`)),1)):C(``,!0)]),e(`div`,Oe,[e(`span`,ke,o(S(n)(`monitor.concurrency`)),1),t.concurrency.length===0?(w(),b(`div`,Ae,o(S(n)(`monitor.concurrencyPanel.noData`)),1)):C(``,!0),(w(!0),b(l,null,h(t.concurrency,t=>(w(),b(`div`,{key:t.providerId,class:`flex items-center gap-1.5`},[e(`span`,{class:`text-[11px] font-medium text-muted-foreground w-[130px] shrink-0 truncate`,title:t.providerName},o(t.providerName),9,je),e(`div`,B,[S(I)(t)>0?(w(),b(`div`,{key:0,class:d([`h-full rounded-sm transition-all duration-300`,S(L)(t.active,S(I)(t))]),style:f({width:`${Math.min(100,t.active/S(I)(t)*100)}%`})},null,6)):C(``,!0)]),e(`span`,{class:d([`font-mono text-[11px] text-muted-foreground w-10 text-right shrink-0`,S(Se)(t.active,S(I)(t))])},[t.adaptiveEnabled?(w(),b(l,{key:0},[_(o(t.active)+`/`+o(t.adaptiveLimit??t.maxConcurrency),1)],64)):t.maxConcurrency===0?(w(),b(l,{key:1},[_(o(S(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(w(),b(l,{key:2},[_(o(t.active)+`/`+o(t.maxConcurrency),1)],64))],2)]))),128))])]))}}),Ne={key:0,class:`text-[13px] text-muted-foreground py-2`},Pe={key:1},Fe={class:`flex items-center justify-between py-[3px]`},V={class:`text-[11px] text-muted-foreground`},Ie={class:`font-mono text-[11px] text-foreground`},H={class:`flex items-center justify-between py-[3px] border-t border-foreground/[0.04]`},Le={class:`text-[11px] text-muted-foreground`},Re={class:`font-mono text-[11px] text-success`},U={class:`flex items-center justify-between py-[3px] border-t border-foreground/[0.04]`},ze={class:`text-[11px] text-muted-foreground`},W={class:`font-mono text-[11px] text-foreground`},G={class:`mt-1 pt-1 border-t border-foreground/[0.04]`},K={class:`flex justify-between mb-[3px]`},Be={class:`text-[11px] text-muted-foreground`},Ve={class:`font-mono text-[10px] text-muted-foreground`},q={class:`h-1 bg-foreground/[0.06] rounded-sm overflow-hidden`},J=100,He=x({__name:`RuntimePanel`,props:{runtime:{}},setup(t){let{t:n}=s(),r=t,i=a(()=>!r.runtime||r.runtime.memoryUsage.heapTotal===0?0:Math.min(J,r.runtime.memoryUsage.heapUsed/r.runtime.memoryUsage.heapTotal*J));return(r,a)=>t.runtime?(w(),b(`div`,Pe,[e(`div`,Fe,[e(`span`,V,o(S(n)(`monitor.runtimePanel.memoryRss`)),1),e(`span`,Ie,o(S(M)(t.runtime.memoryUsage.rss)),1)]),e(`div`,H,[e(`span`,Le,o(S(n)(`monitor.runtimePanel.eventLoopDelay`)),1),e(`span`,Re,o(t.runtime.eventLoopDelayMs.toFixed(1))+`ms`,1)]),e(`div`,U,[e(`span`,ze,o(S(n)(`monitor.runtimePanel.activeHandles`)),1),e(`span`,W,o(t.runtime.activeHandles),1)]),e(`div`,G,[e(`div`,K,[e(`span`,Be,o(S(n)(`monitor.runtimePanel.heapUsage`)),1),e(`span`,Ve,o(S(M)(t.runtime.memoryUsage.heapUsed))+` / `+o(S(M)(t.runtime.memoryUsage.heapTotal)),1)]),e(`div`,q,[e(`div`,{class:`h-full bg-primary rounded-sm transition-all duration-300`,style:f({width:`${i.value}%`})},null,4)])])])):(w(),b(`div`,Ne,o(S(n)(`monitor.runtimePanel.noData`)),1))}}),Ue={key:0,class:`text-[13px] text-muted-foreground py-2`},We={key:1},Ge={class:`text-[11px] font-medium text-muted-foreground flex-1`},Ke={class:`font-mono text-[10px] text-muted-foreground w-9 text-right`},qe=x({__name:`StatusCodePanel`,props:{byStatusCode:{}},setup(t){let{t:n}=s(),r=t,i=a(()=>Object.values(r.byStatusCode).reduce((e,t)=>e+t,0)),c=a(()=>{let e=r.byStatusCode,t=i.value||1,n=u(e,200,299),a=u(e,400,499)-(e[429]||0),o=e[429]||0,s=u(e,500,599);return[{label:`2xx`,count:n,percent:(n/t*100).toFixed(1),textClass:`text-success`,dotClass:`bg-success`},{label:`4xx`,count:a,percent:(a/t*100).toFixed(1),textClass:`text-warning`,dotClass:`bg-warning`},{label:`429`,count:o,percent:(o/t*100).toFixed(1),textClass:`text-info`,dotClass:`bg-info`},{label:`5xx`,count:s,percent:(s/t*100).toFixed(1),textClass:`text-danger`,dotClass:`bg-danger`}].filter(e=>e.count>0)});function u(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(t,r)=>i.value===0?(w(),b(`div`,Ue,o(S(n)(`monitor.statusCodes.noData`)),1)):(w(),b(`div`,We,[(w(!0),b(l,null,h(c.value,t=>(w(),b(`div`,{key:t.label,class:`flex items-center gap-1.5 py-[3px] border-t border-foreground/[0.04] first:border-t-0`},[e(`span`,{class:d([`size-[5px] rounded-full shrink-0`,t.dotClass])},null,2),e(`span`,Ge,o(t.label),1),e(`span`,{class:d([`font-mono text-[11px]`,t.textClass])},o(t.count),3),e(`span`,Ke,o(t.percent)+`%`,1)]))),128))]))}}),Je={key:0,class:`text-sm text-muted-foreground py-4 text-center`},Y={key:1,class:`text-sm text-muted-foreground py-4 text-center`},Ye={class:`flex flex-wrap gap-1`},Xe={key:0,class:`text-xs text-muted-foreground`},Ze=100,Qe=x({__name:`ProviderStatsTable`,props:{stats:{}},setup(t){let{t:n}=s(),r=t,i=a(()=>r.stats?Object.entries(r.stats.byProvider).filter(([e])=>typeof e==`string`).map(([e,t])=>({id:e,name:t.providerName,stats:t,successRate:t.totalRequests>0?t.successCount/t.totalRequests*Ze:0,retryRate:t.totalRequests>0?t.retryCount/t.totalRequests*Ze:0})):[]);return(r,a)=>t.stats?i.value.length===0?(w(),b(`div`,Y,o(S(n)(`monitor.providerTable.noProviders`)),1)):(w(),g(S(be),{key:2},{default:v(()=>[m(S(xe),null,{default:v(()=>[m(S(F),{class:`border-b-0`},{default:v(()=>[m(S(P),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.provider`)),1)]),_:1}),m(S(P),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.requests`)),1)]),_:1}),m(S(P),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.successRate`)),1)]),_:1}),m(S(P),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.avgLatency`)),1)]),_:1}),m(S(P),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.retryRate`)),1)]),_:1}),m(S(P),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:v(()=>[_(o(S(n)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),m(S(ye),null,{default:v(()=>[(w(!0),b(l,null,h(i.value,t=>(w(),g(S(F),{key:t.id,class:`border-b-0 hover:bg-muted/50`},{default:v(()=>[m(S(N),{class:`font-medium text-[13px] py-1`},{default:v(()=>[_(o(t.name),1)]),_:2},1024),m(S(N),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[_(o(t.stats.totalRequests),1)]),_:2},1024),m(S(N),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[e(`span`,{class:d(t.successRate>=95?`text-success`:t.successRate>=80?`text-warning`:`text-danger`)},o(t.successRate.toFixed(1))+`% `,3)]),_:2},1024),m(S(N),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[_(o(t.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),m(S(N),{class:`text-right font-mono text-xs py-1`},{default:v(()=>[e(`span`,{class:d(t.retryRate>10?`text-warning`:``)},o(t.retryRate.toFixed(1))+`% `,3)]),_:2},1024),m(S(N),{class:`py-1`},{default:v(()=>[e(`div`,Ye,[(w(!0),b(l,null,h(t.stats.topErrors.slice(0,3),e=>(w(),g(S(ve),{key:e.code,variant:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:v(()=>[_(o(e.code)+` (`+o(e.count)+`) `,1)]),_:2},1024))),128)),t.stats.topErrors.length===0?(w(),b(`span`,Xe,`--`)):C(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(w(),b(`div`,Je,o(S(n)(`monitor.providerTable.noData`)),1))}}),$e=3e4;function X(e,t,n){let r=null,i=null,a=0,o=null,s=!1;function c(){document.hidden?o=setTimeout(()=>{u(),n?.onClose?.()},$e):(o&&=(clearTimeout(o),null),r||l())}function l(){if(!r){r=new EventSource(e),r.onopen=()=>{a=0,n?.onOpen?.(),!s&&typeof document<`u`&&(document.addEventListener(`visibilitychange`,c),s=!0)};for(let[e,n]of Object.entries(t))r.addEventListener(e,n);r.onerror=()=>{u(),n?.onClose?.();let e=Math.min(3e3*2**a,3e4);a++,i=setTimeout(l,e)}}}function u(){i&&=(clearTimeout(i),null),o&&=(clearTimeout(o),null),r&&=(r.close(),null)}return p(()=>{u(),s&&typeof document<`u`&&(document.removeEventListener(`visibilitychange`,c),s=!1),n?.onClose?.()}),{connect:l,disconnect:u}}var Z=200,Q=404,$=500;async function et(e,t){try{let n=tt(e.value,await t());n!==e.value&&(e.value=n)}catch(t){console.error(`useMonitorData.syncActiveOnSSEReconnect failed:`,t),e.value=[...e.value]}}function tt(e,t){let n=new Set(t.map(e=>e.id)),r=new Set(e.map(e=>e.id)),i=e.filter(e=>!n.has(e.id)),a=t.filter(e=>!r.has(e.id));if(i.length===0&&a.length===0)return e;let o=e.filter(e=>n.has(e.id));return[...a,...o]}function nt(e,t){let n;try{n=JSON.parse(e.data)}catch{return}switch(e.type){case`request_start`:{let e=n;t.recentCompleted.value.some(t=>t.id===e.id)||(t.activeRequests.value.unshift(e),r(t.activeRequests));break}case`request_update`:t.activeRequests.value=n;break;case`request_complete`:{let e=n;t.activeRequests.value=t.activeRequests.value.filter(t=>t.id!==e.id),t.recentCompleted.value.unshift(e),t.recentCompleted.value.length>Z&&(t.recentCompleted.value.length=Z);break}case`concurrency_update`:t.concurrency.value=n;break;case`stats_update`:t.stats.value=n;break;case`stream_content_update`:{let e=n;for(let n of e){let e=t.activeRequests.value.find(e=>e.id===n.id);e&&(e.streamTotalChars=n.totalChars,n.streamMetrics&&(e.streamMetrics=n.streamMetrics))}r(t.activeRequests);break}case`runtime_update`:t.runtime.value=n;break}}async function rt(e,n,r,i,a){try{let o=await t.getMonitorInit();o.active&&(e.value=o.active),o.recent&&(n.value=o.recent),o.stats&&(r.value=o.stats),o.concurrency&&(i.value=o.concurrency),o.runtime&&(a.value=o.runtime)}catch(e){console.error(`Failed to load initial monitor data:`,e),r.value=null,i.value=[],a.value=null}}function it(){let e=c([]),n=T([]),r=T(null),o=T([]),s=T(null),l=T(!1),u=!1,d=a(()=>e.value.filter(e=>e.isStream).length),f=a(()=>e.value.filter(e=>!e.queued)),m=a(()=>e.value.filter(e=>e.queued===!0)),h=t=>nt(t,{recentCompleted:n,activeRequests:e,concurrency:o,stats:r,runtime:s});async function g(){if(l.value=!0,!u){u=!0;return}await et(e,()=>t.getMonitorActive())}function ee(){l.value=!1}let _=()=>rt(e,n,r,o,s),{connect:te,disconnect:v}=X(`/admin/api/monitor/stream`,{request_start:h,request_update:h,request_complete:h,concurrency_update:h,stats_update:h,runtime_update:h,stream_content_update:h},{onOpen:g,onClose:ee}),y=T(null),b=T(!1),x=T(0);async function S(r){let i=++x.value,a=e.value.find(e=>e.id===r)??n.value.find(e=>e.id===r);if(!a){y.value=null;return}y.value=null,b.value=!0;try{if(a.status===`pending`){try{let e=await t.getMonitorRequest(r);if(i!==x.value)return;y.value={clientRequest:e.clientRequest??void 0,upstreamRequest:e.upstreamRequest??void 0}}catch(e){if(e?.response?.status!==Q)throw e;if(i!==x.value)return;let n=await t.getLogDetail(r);if(i!==x.value)return;y.value=n.client_request?{clientRequest:n.client_request}:null}return}let e=await t.getLogDetail(r);if(i!==x.value)return;let n;if(!a.isStream){let t=e.upstream_response;if(t)try{let e=JSON.parse(t);n=(typeof e.body==`string`?e.body:t)??void 0}catch{n=t}}y.value={responseBody:n,clientRequest:e.client_request??void 0,upstreamRequest:e.upstream_request??void 0}}catch(e){if(i!==x.value)return;console.warn(`Failed to load log detail:`,e),y.value=null}finally{i===x.value&&(b.value=!1)}}let C=T(null),w=T(!1),E=T(null),D=null;function ne(n){if(O(),!n)return;let r=async()=>{let r=e.value.find(e=>e.id===n);if(!r||r.status===`completed`||r.status===`failed`){O();return}try{let e=await t.getMonitorRequest(n);if(C.value!==n)return;e.streamContent&&(E.value=e.streamContent)}catch(e){e?.response?.status===Q&&O()}};r(),D=setInterval(r,$)}function O(){D&&=(clearInterval(D),null)}function k(e){C.value=e,w.value=!0,E.value=null;let t=n.value.find(t=>t.id===e);t&&(t.status===`completed`||t.status===`failed`)&&(t.streamContent?E.value=t.streamContent:A(e)),ne(e),S(e)}async function A(e){try{let n=await t.getMonitorRequest(e);if(C.value!==e)return;n.streamContent&&(E.value=n.streamContent)}catch(e){console.error(`loadCompletedStreamContent:`,e)}}let j=a(()=>C.value?e.value.find(e=>e.id===C.value)??n.value.find(e=>e.id===C.value)??null:null);return i(()=>j.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&(O(),S(C.value))}),p(()=>{O()}),{activeRequests:e,recentCompleted:n,stats:r,concurrency:o,runtime:s,connected:l,streamCount:d,streamingRequests:f,queuedRequests:m,selectedRequestId:C,selectedRequest:j,requestDetailOpen:w,selectRequest:k,selectedStreamContent:E,logDetailData:y,nonStreamBodyLoading:b,connect:te,disconnect:v,loadInitialData:_}}var at={class:`page`},ot={class:`flex items-center justify-between mb-3`},st={class:`text-base font-semibold text-foreground`},ct={class:`bg-card border border-border rounded-lg overflow-hidden mb-3`},lt={class:`flex items-center border-b border-border px-3 bg-muted/30 dark:bg-muted/50`},ut={key:0,class:`absolute bottom-0 left-0 right-0 h-0.5 bg-primary rounded-t-sm`},dt={key:0,class:`inline-flex items-center px-1.5 py-px rounded-full font-mono text-[10px] font-semibold bg-primary/15 text-primary`},ft={key:1,class:`inline-flex items-center px-1.5 py-px rounded-full font-mono text-[10px] font-semibold bg-foreground/5 text-muted-foreground`},pt={class:`bg-foreground/[0.03] rounded-md px-4 py-2 grid grid-cols-4 gap-x-6 gap-y-1.5`},mt={class:`font-mono text-[12px] text-foreground`},ht={class:`font-mono text-[12px] text-foreground`},gt={class:`font-mono text-[12px] text-foreground`},_t={class:`font-mono text-[12px] text-foreground`},vt={class:`flex bg-card border border-border rounded-lg overflow-hidden mb-3 divide-x divide-border`},yt={class:`flex-1 px-3 py-2`},bt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},xt={class:`text-[13px] font-mono font-semibold text-success`},St={class:`flex-1 px-3 py-2`},Ct={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},wt={class:`text-[10px] font-mono text-muted-foreground`},Tt={class:`flex-1 px-3 py-2`},Et={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Dt={class:`text-[13px] font-mono font-semibold text-foreground`},Ot={class:`text-[10px] font-mono text-muted-foreground`},kt={class:`flex-1 px-3 py-2`},At={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},jt={class:`text-[13px] font-mono font-semibold text-foreground`},Mt={class:`text-[10px] font-mono text-muted-foreground`},Nt={class:`flex-1 px-3 py-2`},Pt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Ft={class:`text-[13px] font-mono font-semibold text-foreground`},It={class:`text-[10px] font-mono text-muted-foreground`},Lt={class:`mb-3`},Rt={class:`flex items-center justify-between bg-card border border-border rounded-t-lg px-4 py-1.5`},zt={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Bt={class:`bg-card border border-border border-t-0 rounded-b-lg px-4 py-3`},Vt={class:`grid grid-cols-3 gap-px bg-border rounded-lg overflow-hidden border border-border`},Ht={class:`bg-card`},Ut={class:`flex items-center px-3 py-1.5 border-b border-border bg-muted/30 dark:bg-muted/50`},Wt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Gt={class:`p-3`},Kt={class:`bg-card`},qt={class:`flex items-center px-3 py-1.5 border-b border-border bg-muted/30 dark:bg-muted/50`},Jt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},Yt={class:`p-3`},Xt={class:`bg-card`},Zt={class:`flex items-center px-3 py-1.5 border-b border-border bg-muted/30 dark:bg-muted/50`},Qt={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},$t={class:`p-3`},en={class:`flex items-baseline gap-1.5 mb-2`},tn={class:`text-xl font-mono font-bold text-primary`},nn={class:`text-xs font-mono text-muted-foreground`},rn={class:`text-xs font-mono text-muted-foreground ml-auto`},an={class:`h-1 bg-foreground/10 rounded-full overflow-hidden mb-3`},on={class:`grid grid-cols-2 gap-2`},sn={class:`text-xs font-mono text-warning`},cn={class:`text-xs font-mono text-primary`},ln=2e3,un=1e3,dn=100,fn=5,pn=10,mn=100,hn=80,gn=50,_n=36e5,vn=6e4,yn=864e5,bn=3e3,xn=x({__name:`Monitor`,setup(r){let{t:i}=s(),{activeRequests:c,recentCompleted:x,stats:M,concurrency:I,runtime:L,connected:Se,streamCount:Ce,streamingRequests:we,queuedRequests:R,selectedRequestId:Te,selectedRequest:Ee,requestDetailOpen:z,selectRequest:De,selectedStreamContent:Oe,logDetailData:ke,loadInitialData:Ae,connect:je}=it(),B=T(`active`),Ne=a(()=>[{key:`active`,label:i(`monitor.activeRequests`),count:we.value.length},{key:`queued`,label:i(`monitor.queuedRequests`),count:R.value.length},{key:`recent`,label:i(`monitor.completed`),count:x.value.length}]),Pe={active:()=>we.value,queued:()=>R.value,recent:()=>x.value},Fe={active:i(`monitor.noActiveRequests`),queued:i(`monitor.noQueuedRequests`),recent:i(`monitor.noCompletedRequests`)},V=a(()=>Pe[B.value]()),Ie=a(()=>Fe[B.value]),H=T(null);function Le(e){H.value=H.value===e?null:e}let{copy:Re}=O(),U=T(null);function ze(e){Re(e),U.value=e,setTimeout(()=>{U.value===e&&(U.value=null)},ln)}let W=T(!1),G=T(null),K=a(()=>G.value?c.value.find(e=>e.id===G.value)??null:null);function Be(e){G.value=e,W.value=!0}async function Ve(){if(G.value){try{await t.killMonitorRequest(G.value),c.value=c.value.filter(e=>e.id!==G.value),se.success(i(`monitor.killSuccess`))}catch(e){console.error(`Monitor.killRequest:`,e),se.error(te(e,i(`monitor.killFailed`)))}W.value=!1}}let q=T(!0),J=a(()=>!M.value||M.value.totalRequests===0?`0.0`:(M.value.errorCount/M.value.totalRequests*dn).toFixed(1)),Ue=a(()=>{let e=Number.parseFloat(J.value);return e>=pn?`text-danger`:e>=fn?`text-warning`:`text-foreground`}),We=a(()=>!M.value||M.value.totalRequests===0?`0.0`:(M.value.retryCount/M.value.totalRequests*dn).toFixed(1)),Ge=a(()=>M.value?M.value.p50LatencyMs.toFixed(0):`--`),Ke=a(()=>M.value?M.value.p99LatencyMs.toFixed(0):`--`),Je=a(()=>{if(!M.value||!L.value||L.value.uptimeMs===0)return`--`;let e=L.value.uptimeMs/un;return(M.value.totalRequests/e).toFixed(1)}),Y=a(()=>{let e=I.value.reduce((e,t)=>e+t.active,0),t=I.value.reduce((e,t)=>e+(t.adaptiveLimit??t.maxConcurrency),0);return{active:e,total:t,pct:t>0?Math.round(e/t*mn):0}}),Ye=a(()=>{let e=Y.value.pct;return e>=hn?`bg-danger`:e>=gn?`bg-warning`:`bg-primary`}),Xe=a(()=>L.value?$e(L.value.uptimeMs):`--`),Ze=a(()=>!L.value||!M.value?`--`:`${M.value.totalRequests} req`);function $e(e){let t=Math.floor(e/yn),n=Math.floor(e%yn/_n),r=Math.floor(e%_n/vn);return t>0?`${t}d ${n}h`:n>0?`${n}h ${r}m`:`${r}m`}let X=T(Date.now()),Z=null;function Q(){$(),Z=setInterval(()=>{X.value=Date.now()},bn)}function $(){Z&&=(clearInterval(Z),null)}function et(){document.hidden?$():(X.value=Date.now(),Q())}function tt(e){return`${(((e.completedAt??X.value)-e.startTime)/un).toFixed(1)}s`}function nt(e){let t=e.streamMetrics?.tokensPerSecond;return t==null?`--`:`${t.toFixed(0)} t/s`}function rt(e){let t=e.streamMetrics?.outputTokens;return t==null?`--`:`${t}`}function xn(e){return e.status===`failed`?`bg-danger`:e.queued?`bg-warning`:e.status===`completed`?`bg-success`:`bg-primary`}function Sn(e){return e.status===`pending`}return ee(async()=>{await Ae(),je(),Q(),document.addEventListener(`visibilitychange`,et)}),p(()=>{$(),document.removeEventListener(`visibilitychange`,et)}),(t,r)=>(w(),b(`div`,at,[e(`div`,ot,[e(`h2`,st,o(S(i)(`monitor.title`)),1),m(S(ve),{variant:S(Se)?`default`:`destructive`},{default:v(()=>[_(o(S(Se)?S(i)(`monitor.connected`):S(i)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])]),m(Me,{stats:S(M),"active-count":S(c).length,"stream-count":S(Ce),"queued-count":S(R).length,concurrency:S(I)},null,8,[`stats`,`active-count`,`stream-count`,`queued-count`,`concurrency`]),e(`div`,ct,[e(`div`,lt,[(w(!0),b(l,null,h(Ne.value,t=>(w(),g(S(y),{key:t.key,variant:`ghost`,class:d([`relative px-3.5 py-2 text-[13px] font-medium transition-colors flex items-center gap-2 h-auto rounded-none`,B.value===t.key?`text-primary`:`text-muted-foreground hover:text-foreground`]),onClick:e=>B.value=t.key},{default:v(()=>[_(o(t.label)+` `,1),e(`span`,{class:d([`font-mono text-[11px] font-semibold px-1.5 py-px rounded-full`,B.value===t.key?`bg-primary/15 text-primary`:`bg-foreground/5 text-muted-foreground`])},o(t.count),3),B.value===t.key?(w(),b(`span`,ut)):C(``,!0)]),_:2},1032,[`class`,`onClick`]))),128))]),m(S(E),{class:`h-[252px]`},{default:v(()=>[m(S(be),null,{default:v(()=>[m(S(xe),null,{default:v(()=>[m(S(F),{class:`border-b-0 hover:bg-transparent`},{default:v(()=>[m(S(P),{class:`w-9 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:v(()=>[...r[4]||=[_(`Model`,-1)]]),_:1}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:v(()=>[...r[5]||=[_(`Provider`,-1)]]),_:1}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-16`},{default:v(()=>[...r[6]||=[_(`Type`,-1)]]),_:1}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:v(()=>[...r[7]||=[_(`Elapsed`,-1)]]),_:1}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:v(()=>[...r[8]||=[_(`Speed`,-1)]]),_:1}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:v(()=>[...r[9]||=[_(`Output`,-1)]]),_:1}),m(S(P),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-14`})]),_:1})]),_:1}),m(S(ye),null,{default:v(()=>[V.value.length===0?(w(),g(S(F),{key:0,class:`border-b-0 h-[220px]`},{default:v(()=>[m(S(N),{colspan:`8`,class:`text-center text-[13px] text-muted-foreground align-middle`},{default:v(()=>[_(o(Ie.value),1)]),_:1})]),_:1})):C(``,!0),(w(!0),b(l,null,h(V.value,t=>(w(),b(l,{key:t.id},[m(S(F),{class:d([`cursor-pointer transition-colors border-b border-foreground/[0.04] hover:bg-muted/40`,[S(Te)===t.id?`bg-primary/10`:``,B.value===`recent`?`opacity-60 hover:opacity-80`:``]]),onClick:e=>S(De)(t.id)},{default:v(()=>[m(S(N),{class:`px-3 py-1`},{default:v(()=>[e(`span`,{class:d([`inline-block size-2 rounded-full shrink-0`,xn(t)])},null,2)]),_:2},1024),m(S(N),{class:`px-3 py-1 text-[13px] font-medium truncate max-w-[200px]`},{default:v(()=>[_(o(t.model),1)]),_:2},1024),m(S(N),{class:`px-3 py-1 font-mono text-[11px] text-muted-foreground`},{default:v(()=>[_(o(t.providerName),1)]),_:2},1024),m(S(N),{class:`px-3 py-1`},{default:v(()=>[t.isStream?(w(),b(`span`,dt,` SSE `)):(w(),b(`span`,ft,` Sync `))]),_:2},1024),m(S(N),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:v(()=>[_(o(tt(t)),1)]),_:2},1024),m(S(N),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:v(()=>[_(o(nt(t)),1)]),_:2},1024),m(S(N),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:v(()=>[_(o(rt(t)),1)]),_:2},1024),m(S(N),{class:`px-3 py-1`},{default:v(()=>[e(`div`,{class:`flex items-center gap-0.5 justify-end`,onClick:r[0]||=u(()=>{},[`stop`])},[m(S(j),null,{default:v(()=>[m(S(A),{"as-child":``},{default:v(()=>[m(S(y),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:u(e=>ze(t.id),[`stop`])},{default:v(()=>[U.value===t.id?(w(),g(S(_e),{key:0,class:`size-3 text-success`})):(w(),g(S(ne),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),m(S(k),null,{default:v(()=>[_(o(S(i)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),Sn(t)?(w(),g(S(j),{key:0},{default:v(()=>[m(S(A),{"as-child":``},{default:v(()=>[m(S(y),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6 text-destructive hover:text-destructive`,onClick:u(e=>Be(t.id),[`stop`])},{default:v(()=>[m(S(fe),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),m(S(k),null,{default:v(()=>[_(o(S(i)(`monitor.kill`)),1)]),_:1})]),_:2},1024)):C(``,!0),m(S(y),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:u(e=>Le(t.id),[`stop`])},{default:v(()=>[m(S(oe),{class:d([`size-3 transition-transform`,{"rotate-180":H.value===t.id}])},null,8,[`class`])]),_:2},1032,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`,`onClick`]),H.value===t.id?(w(),g(S(F),{key:0,class:`border-b border-foreground/[0.04] bg-foreground/[0.02]`},{default:v(()=>[m(S(N),{colspan:`8`,class:`px-3 py-2`},{default:v(()=>[e(`div`,pt,[e(`div`,null,[r[10]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Request ID `,-1),e(`div`,mt,o(t.id),1)]),e(`div`,null,[r[11]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Input Tokens `,-1),e(`div`,ht,o(t.streamMetrics?.inputTokens?.toLocaleString()??`--`),1)]),e(`div`,null,[r[12]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Output Tokens `,-1),e(`div`,gt,o(t.streamMetrics?.outputTokens?.toLocaleString()??`--`),1)]),e(`div`,null,[r[13]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Cache Tokens `,-1),e(`div`,_t,o(t.streamMetrics?.cacheReadTokens?.toLocaleString()??`--`),1)])])]),_:2},1024)]),_:2},1024)):C(``,!0)],64))),128))]),_:1})]),_:1})]),_:1})]),e(`div`,vt,[e(`div`,yt,[e(`div`,bt,o(S(i)(`monitor.completed`)),1),e(`div`,xt,o(S(M)?.successCount??0),1),r[14]||=e(`div`,{class:`text-[10px] font-mono text-muted-foreground`},`last 5h`,-1)]),e(`div`,St,[e(`div`,Ct,o(S(i)(`monitor.header.errorRate`)),1),e(`div`,{class:d([`text-[13px] font-mono font-semibold`,Ue.value])},o(J.value)+`% `,3),e(`div`,wt,o(S(M)?.errorCount??0)+` / `+o(S(M)?.totalRequests??0),1)]),e(`div`,Tt,[e(`div`,Et,o(S(i)(`monitor.header.p50Latency`)),1),e(`div`,Dt,o(Ge.value)+`ms `,1),e(`div`,Ot,` avg `+o(S(M)?.avgLatencyMs?.toFixed(1)??`--`)+`s `,1)]),e(`div`,kt,[e(`div`,At,o(S(i)(`monitor.header.retryRate`)),1),e(`div`,jt,o(We.value)+`% `,1),e(`div`,Mt,o(S(M)?.retryCount??0)+` / `+o(S(M)?.totalRequests??0),1)]),e(`div`,Nt,[e(`div`,Pt,o(S(i)(`monitor.runtimePanel.uptime`)),1),e(`div`,Ft,o(Xe.value),1),e(`div`,It,o(Ze.value),1)])]),e(`div`,Lt,[m(S(re),{open:q.value,"onUpdate:open":r[1]||=e=>q.value=e},{default:v(()=>[e(`div`,Rt,[e(`span`,zt,o(S(i)(`monitor.providerStats`)),1),m(S(ae),{"as-child":``},{default:v(()=>[m(S(y),{variant:`ghost`,size:`xs`,class:`text-[11px] text-muted-foreground hover:text-foreground h-6 px-1.5`},{default:v(()=>[_(o(q.value?S(i)(`monitor.providerStatsHide`):S(i)(`monitor.providerStatsShow`)),1)]),_:1})]),_:1})]),m(S(ie),null,{default:v(()=>[e(`div`,Bt,[m(Qe,{stats:S(M)},null,8,[`stats`])])]),_:1})]),_:1},8,[`open`])]),e(`div`,Vt,[e(`div`,Ht,[e(`div`,Ut,[e(`span`,Wt,o(S(i)(`monitor.statusCodeDistribution`)),1)]),e(`div`,Gt,[m(qe,{"by-status-code":S(M)?.byStatusCode??{}},null,8,[`by-status-code`])])]),e(`div`,Kt,[e(`div`,qt,[e(`span`,Jt,o(S(i)(`monitor.runtime`)),1)]),e(`div`,Yt,[m(He,{runtime:S(L)},null,8,[`runtime`])])]),e(`div`,Xt,[e(`div`,Zt,[e(`span`,Qt,o(S(i)(`monitor.concurrency`)),1)]),e(`div`,$t,[e(`div`,en,[e(`span`,tn,o(Y.value.active),1),e(`span`,nn,`/ `+o(Y.value.total),1),e(`span`,rn,o(Y.value.pct)+`%`,1)]),e(`div`,an,[e(`div`,{class:d([`h-full rounded-full transition-all duration-300`,Ye.value]),style:f({width:`${Math.min(100,Y.value.pct)}%`})},null,6)]),e(`div`,on,[e(`div`,null,[r[15]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` P99 `,-1),e(`div`,sn,o(Ke.value)+`ms `,1)]),e(`div`,null,[r[16]||=e(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` QPS `,-1),e(`div`,cn,o(Je.value),1)])])])])]),m(D,{open:S(z),"onUpdate:open":r[2]||=e=>n(z)?z.value=e:null,source:`realtime`,request:S(Ee),"stream-content":S(Oe),"log-detail-data":S(ke)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`]),m(S(me),{open:W.value,"onUpdate:open":r[3]||=e=>W.value=e},{default:v(()=>[m(S(ge),null,{default:v(()=>[m(S(he),null,{default:v(()=>[m(S(pe),null,{default:v(()=>[_(o(S(i)(`monitor.killConfirmTitle`)),1)]),_:1}),K.value?(w(),g(S(de),{key:0},{default:v(()=>[_(o(S(i)(`monitor.killConfirm`,{model:K.value.model,provider:K.value.providerName})),1)]),_:1})):C(``,!0)]),_:1}),m(S(ce),null,{default:v(()=>[m(S(le),null,{default:v(()=>[_(o(S(i)(`monitor.killCancel`)),1)]),_:1}),m(S(ue),{class:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,onClick:Ve},{default:v(()=>[_(o(S(i)(`monitor.kill`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{xn as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Ct as n,Ft as r,J as i,N as a,P as o,Q as s,Qt as c,R as l,U as u,X as d,Y as f,Yt as p,Zt as m,at as h,bt as g,et as _,gt as ee,it as v,j as y,jt as b,n as x,nt as S,ot as C,qt as w,rt as T,tt as E,vt as D,zt as O}from"./button-BuzJlj9X.js";import{t as te}from"./chevron-right-LdKvgE7W.js";import{n as k,t as A}from"./useClipboard-tJg52v7m.js";import{t as ne}from"./image-BkW18kNK.js";import{t as re}from"./search-Dast7lfE.js";import{c as ie,l as ae,n as oe,o as j,r as se,s as ce,t as M}from"./model-patches-DQFF0Cuh.js";import{a as le,n as ue,o as de,r as fe,t as pe}from"./dialog-CtPySx34.js";import{t as N}from"./Label-DVu1uVI7.js";import{t as me}from"./Switch-BDu-VJJd.js";import{_ as P,a as F,c as he,d as ge,f as _e,g as I,h as L,l as ve,m as R,n as z,o as ye,p as be,s as xe,u as Se,v as B,vt as Ce}from"./index-BjnFvPid.js";import{t as V}from"./badge-DhXKxnV5.js";import{t as H}from"./Input-CLu4bS6g.js";import{t as we}from"./Card-L1MI4nan.js";import{a as Te,i as U,n as W,o as Ee,r as De,t as Oe}from"./TableHeader-ncK52pod.js";import{a as G,i as ke,n as Ae,r as K,t as je}from"./transform-domain-pYyIPtkg.js";var Me=l(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Ne=l(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Pe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function q(t,n){return D(),S(`svg`,Pe,[...n[0]||=[e(`path`,{fill:`#4D6BFE`,d:`M23.748 4.482c-.254-.124-.364.113-.512.234-.051.039-.094.09-.137.136-.372.397-.806.657-1.373.626-.829-.046-1.537.214-2.163.848-.133-.782-.575-1.248-1.247-1.548-.352-.156-.708-.311-.955-.65-.172-.241-.219-.51-.305-.774-.055-.16-.11-.323-.293-.35-.2-.031-.278.136-.356.276-.313.572-.434 1.202-.422 1.84.027 1.436.633 2.58 1.838 3.393.137.093.172.187.129.323-.082.28-.18.552-.266.833-.055.179-.137.217-.329.14a5.5 5.5 0 0 1-1.736-1.18c-.857-.828-1.631-1.742-2.597-2.458a11 11 0 0 0-.689-.471c-.985-.957.13-1.743.388-1.836.27-.098.093-.432-.779-.428s-1.67.295-2.687.684a3 3 0 0 1-.465.137 9.6 9.6 0 0 0-2.883-.102c-1.885.21-3.39 1.102-4.497 2.623C.082 8.606-.231 10.684.152 12.85c.403 2.284 1.569 4.175 3.36 5.653 1.858 1.533 3.997 2.284 6.438 2.14 1.482-.085 3.133-.284 4.994-1.86.47.234.962.327 1.78.397.63.059 1.236-.03 1.705-.128.735-.156.684-.837.419-.961-2.155-1.004-1.682-.595-2.113-.926 1.096-1.296 2.746-2.642 3.392-7.003.05-.347.007-.565 0-.845-.004-.17.035-.237.23-.256a4.2 4.2 0 0 0 1.545-.475c1.396-.763 1.96-2.015 2.093-3.517.02-.23-.004-.467-.247-.588zM11.581 18c-2.089-1.642-3.102-2.183-3.52-2.16-.392.024-.321.471-.235.763.09.288.207.486.371.739.114.167.192.416-.113.603-.673.416-1.842-.14-1.897-.167-1.361-.802-2.5-1.86-3.301-3.307-.774-1.393-1.224-2.887-1.298-4.482-.02-.386.093-.522.477-.592a4.7 4.7 0 0 1 1.529-.039c2.132.312 3.946 1.265 5.468 2.774.868.86 1.525 1.887 2.202 2.891.72 1.066 1.494 2.082 2.48 2.914.348.292.625.514.891.677-.802.09-2.14.11-3.054-.614m1-6.44a.306.306 0 0 1 .415-.287.3.3 0 0 1 .2.288.306.306 0 0 1-.31.307.303.303 0 0 1-.304-.308zm3.11 1.596c-.2.081-.399.151-.59.16a1.25 1.25 0 0 1-.798-.254c-.274-.23-.47-.358-.552-.758a1.7 1.7 0 0 1 .016-.588c.07-.327-.008-.537-.239-.727-.187-.156-.426-.199-.688-.199a.56.56 0 0 1-.254-.078.253.253 0 0 1-.114-.358c.028-.054.16-.186.192-.21.356-.202.767-.136 1.146.016.352.144.618.408 1.001.782.391.451.462.576.685.914.176.265.336.537.445.848.067.195-.019.354-.25.452`},null,-1)]])}var J={render:q},Fe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ie(t,n){return D(),S(`svg`,Fe,[...n[0]||=[e(`path`,{fill:`#3859FF`,d:`M11.991 23.503a.24.24 0 0 0-.244.248.24.24 0 0 0 .244.249.24.24 0 0 0 .245-.249.24.24 0 0 0-.22-.247zM9.671 5.365a1.697 1.697 0 0 1 1.099 2.132l-.071.172-.016.04-.018.054c-.07.16-.104.32-.104.498-.035.71.47 1.279 1.186 1.314h.366c1.309.053 2.338 1.173 2.286 2.523-.052 1.332-1.152 2.38-2.478 2.327h-.174c-.715.018-1.274.64-1.239 1.368 0 .124.018.23.053.337.209.373.54.658.96.8.75.23 1.517-.125 1.9-.782l.018-.035c.402-.64 1.17-.96 1.92-.711.854.284 1.378 1.226 1.099 2.167a1.66 1.66 0 0 1-2.077 1.102 1.7 1.7 0 0 1-.907-.711l-.017-.035c-.2-.323-.463-.58-.851-.711l-.056-.018a1.646 1.646 0 0 0-1.954.746 1.66 1.66 0 0 1-1.065.764 1.677 1.677 0 0 1-1.989-1.279c-.209-.906.332-1.83 1.257-2.043a1.5 1.5 0 0 1 .296-.035h.018c.68-.071 1.151-.622 1.116-1.333a1.3 1.3 0 0 0-.227-.693 2.5 2.5 0 0 1-.366-1.403 2.4 2.4 0 0 1 .366-1.208c.14-.195.21-.444.227-.693.018-.71-.506-1.261-1.186-1.332l-.07-.018a1.4 1.4 0 0 1-.299-.07l-.05-.019a1.7 1.7 0 0 1-1.047-2.114 1.68 1.68 0 0 1 2.094-1.101m-5.575 10.11c.26-.264.639-.367.994-.27s.633.379.728.74c.095.362-.007.748-.267 1.013-.402.41-1.053.41-1.455 0a1.06 1.06 0 0 1 0-1.482zm14.845-.294c.359-.09.738.024.992.297.254.274.344.665.237 1.025s-.396.634-.756.718c-.551.128-1.1-.22-1.23-.781a1.05 1.05 0 0 1 .757-1.26zm-.064-4.39c.314.32.49.753.49 1.206s-.176.886-.49 1.206c-.315.32-.74.5-1.185.5-.444 0-.87-.18-1.184-.5a1.727 1.727 0 0 1 0-2.412 1.654 1.654 0 0 1 2.369 0m-11.243.163c.364.484.447 1.128.218 1.691a1.665 1.665 0 0 1-2.188.923c-.855-.36-1.26-1.358-.907-2.228a1.68 1.68 0 0 1 1.33-1.038 1.66 1.66 0 0 1 1.547.652m11.545-4.221c.368 0 .708.2.892.524s.184.724 0 1.048a1.03 1.03 0 0 1-.892.524 1.04 1.04 0 0 1-1.03-1.048 1.04 1.04 0 0 1 1.03-1.048m-14.358 0c.368 0 .707.2.891.524s.184.724 0 1.048a1.03 1.03 0 0 1-.891.524 1.04 1.04 0 0 1-1.03-1.048c0-.579.461-1.048 1.03-1.048m10.031-1.475c.925 0 1.675.764 1.675 1.706s-.75 1.705-1.675 1.705-1.674-.763-1.674-1.705.75-1.706 1.674-1.706m-2.626-.684c.362-.082.653-.356.761-.718a1.06 1.06 0 0 0-.238-1.028 1.02 1.02 0 0 0-.996-.294c-.547.14-.881.7-.752 1.257.13.558.675.907 1.225.783m0 16.876c.359-.087.644-.36.75-.72a1.06 1.06 0 0 0-.237-1.019 1.02 1.02 0 0 0-.985-.301 1.04 1.04 0 0 0-.762.717c-.108.361-.017.754.239 1.028.245.263.606.377.953.305zM17.19 3.5a.63.63 0 0 0 .628-.64.63.63 0 0 0-.628-.64.63.63 0 0 0-.628.64c0 .355.28.64.628.64m-10.38 0a.63.63 0 0 0 .628-.64c0-.355-.28-.64-.628-.64a.63.63 0 0 0-.628.64c0 .355.279.64.628.64m-5.182 7.852a.63.63 0 0 0-.628.64c0 .354.28.639.628.639a.63.63 0 0 0 .627-.606l.001-.034a.62.62 0 0 0-.628-.64zm5.182 9.13a.63.63 0 0 0-.628.64c0 .355.279.64.628.64a.63.63 0 0 0 .628-.64c0-.355-.28-.64-.628-.64m10.38.018a.63.63 0 0 0-.628.64c0 .355.28.64.628.64a.63.63 0 0 0 .628-.64.63.63 0 0 0-.628-.64m5.182-9.148a.63.63 0 0 0-.628.64c0 .354.279.639.628.639a.63.63 0 0 0 .628-.64c0-.355-.28-.64-.628-.64zm-.384-4.992a.24.24 0 0 0 .244-.249.24.24 0 0 0-.244-.249.24.24 0 0 0-.244.249c0 .142.122.249.244.249M11.991.497a.24.24 0 0 0 .245-.248A.24.24 0 0 0 11.99 0a.24.24 0 0 0-.244.249c0 .133.108.236.223.247zM2.011 6.36a.24.24 0 0 0 .245-.249.24.24 0 0 0-.244-.249.24.24 0 0 0-.244.249.24.24 0 0 0 .244.249zm0 11.263a.24.24 0 0 0-.243.248.24.24 0 0 0 .244.249.24.24 0 0 0 .244-.249.25.25 0 0 0-.244-.248zm19.995-.018a.24.24 0 0 0-.245.248.24.24 0 0 0 .245.25.24.24 0 0 0 .244-.25.25.25 0 0 0-.244-.248`},null,-1)]])}var Y={render:Ie},Le={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Re(t,n){return D(),S(`svg`,Le,[...n[0]||=[e(`path`,{fill:`#1783FF`,d:`M21.846 0a1.923 1.923 0 1 1 0 3.846H20.15a.226.226 0 0 1-.227-.226V1.923C19.923.861 20.784 0 21.846 0`},null,-1),e(`path`,{fill:`#fff`,d:`m11.065 11.199 7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.16.16 0 0 0-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23h-2.69c-.103 0-.186.103-.186.23v15.95c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25a.25.25 0 0 1 .069-.178l2.424-2.406a.16.16 0 0 1 .205-.023l6.484 4.772a7.7 7.7 0 0 0 3.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5 5 0 0 1-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381`},null,-1)]])}var 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(t,n){return D(),S(`svg`,Be,[...n[0]||=[e(`path`,{fill:`url(#a)`,d:`M12.604 1.34q.59 1.035 1.174 2.075a.18.18 0 0 0 .157.091h5.552q.26 0 .446.327l1.454 2.57c.19.337.24.478.024.837q-.39.646-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77q-.656 1.177-1.335 2.34c-.159.272-.352.375-.68.37a43 43 0 0 0-2.327.016.1.1 0 0 0-.081.05 575 575 0 0 1-2.705 4.74c-.169.293-.38.363-.725.364q-1.495.005-3.017.002a.54.54 0 0 1-.465-.271l-1.335-2.323a.09.09 0 0 0-.083-.049H4.982a1.8 1.8 0 0 1-.805-.092l-1.603-2.77a.54.54 0 0 1-.002-.54l1.207-2.12a.2.2 0 0 0 0-.197 551 551 0 0 1-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965q.697-1.22 1.387-2.436c.132-.234.304-.334.584-.335a338 338 0 0 1 2.589-.001.12.12 0 0 0 .107-.063l2.806-4.895a.49.49 0 0 1 .422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34m-3.432.403a.06.06 0 0 0-.052.03L6.254 6.788a.16.16 0 0 1-.135.078H3.253q-.084 0-.041.074l5.81 10.156q.037.062-.034.063l-2.795.015a.22.22 0 0 0-.2.116l-1.32 2.31q-.066.117.068.118l5.716.008q.068 0 .104.061l1.403 2.454q.069.122.139 0l5.006-8.76.783-1.382a.055.055 0 0 1 .096 0l1.424 2.53a.12.12 0 0 0 .107.062l2.763-.02a.04.04 0 0 0 .035-.02.04.04 0 0 0 0-.04l-2.9-5.086a.11.11 0 0 1 0-.113l.293-.507 1.12-1.977q.036-.062-.035-.062H9.2q-.088 0-.043-.077l1.434-2.505a.11.11 0 0 0 0-.114L9.225 1.774a.06.06 0 0 0-.053-.031m6.29 8.02q.07 0 .034.06l-.832 1.465-2.613 4.585a.06.06 0 0 1-.05.029.06.06 0 0 1-.05-.029L8.498 9.841q-.03-.051.028-.054l.216-.012 6.722-.012z`},null,-1),e(`defs`,null,[e(`linearGradient`,{id:`a`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`},[e(`stop`,{offset:`0%`,"stop-color":`#6336E7`,"stop-opacity":`.84`}),e(`stop`,{offset:`100%`,"stop-color":`#6F69F7`,"stop-opacity":`.84`})])],-1)]])}var 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(t,n){return D(),S(`svg`,Ue,[...n[0]||=[e(`path`,{fill:`#2932E1`,d:`M8.859 11.735c1.017-1.71 4.059-3.083 6.202.286 1.579 2.284 4.284 4.397 4.284 4.397s2.027 1.601.73 4.684c-1.24 2.956-5.64 1.607-6.005 1.49l-.024-.009s-1.746-.568-3.776-.112c-2.026.458-3.773.286-3.773.286l-.045-.001c-.328-.01-2.38-.187-3.001-2.968-.675-3.028 2.365-4.687 2.592-4.968.226-.288 1.802-1.37 2.816-3.085m.986 1.738v2.032h-1.64s-1.64.138-2.213 2.014c-.2 1.252.177 1.99.242 2.148.067.157.596 1.073 1.927 1.342h3.078v-7.514zm3.588 2.191-1.44.024v3.956s.064.985 1.44 1.344h3.541v-5.3h-1.528v3.979h-1.46s-.466-.068-.553-.447zM9.82 16.715v3.06H8.58s-.863-.045-1.126-1.049c-.136-.445.02-.959.088-1.16.063-.203.353-.671.951-.85zm9.525-9.036c2.086 0 2.646 2.06 2.646 2.742 0 .688.284 3.597-2.309 3.655-2.595.057-2.704-1.77-2.704-3.08 0-1.374.277-3.317 2.367-3.317M4.24 6.08c1.523-.135 2.645 1.55 2.762 2.513.07.625.393 3.486-1.975 4-2.364.515-3.244-2.249-2.984-3.544 0 0 .28-2.797 2.197-2.969m8.847-1.483c.14-1.31 1.69-3.316 2.931-3.028 1.236.285 2.367 1.944 2.137 3.37-.224 1.428-1.345 3.313-3.095 3.082-1.748-.226-2.143-1.823-1.973-3.424M9.425 1c1.307 0 2.364 1.519 2.364 3.398s-1.057 3.4-2.364 3.4-2.367-1.521-2.367-3.4S8.118 1 9.425 1`},null,-1)]])}var 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(t,n){return D(),S(`svg`,Ke,[...n[0]||=[e(`path`,{fill:`#2A80E2`,d:`M20.713 6.655c-.414-1.426-1.748-2.472-3.357-2.472a3.6 3.6 0 0 0-1.7.423A5.9 5.9 0 0 0 10.735 2C7.77 2 5.31 4.16 4.943 6.944 2.138 7.39 0 9.728 0 12.58c0 3.14 2.62 5.68 5.862 5.68 1.61 0 3.08-.646 4.138-1.671.276-.267.529-.557.736-.89a5 5 0 0 1-.713.845 9 9 0 0 0-1.77 5.39V22a16.7 16.7 0 0 1 8.666-2.717h.046c3.035 0 5.633-1.871 6.621-4.499A6.6 6.6 0 0 0 24 12.445c0-2.427-1.31-4.565-3.287-5.79M6.966 12.869a.836.836 0 0 1-.851.824.81.81 0 0 1-.805-.824v-2.183a.81.81 0 0 1 .805-.824c.46 0 .85.379.85.824zm3.011 1.069a.86.86 0 0 1-.874.846.86.86 0 0 1-.873-.846v-4.9a.86.86 0 0 1 .873-.846.86.86 0 0 1 .874.846zm3.104-1.047c0 .445-.414.824-.874.824s-.85-.379-.85-.824v-2.227c0-.446.367-.824.85-.824.46 0 .873.378.873.824v2.227zm3.149 1.069a.86.86 0 0 1-.874.846.86.86 0 0 1-.873-.846v-4.9a.86.86 0 0 1 .873-.846.86.86 0 0 1 .874.846zm3.08-1.091a.836.836 0 0 1-.85.824.81.81 0 0 1-.805-.824v-2.183a.81.81 0 0 1 .805-.824c.46 0 .85.379.85.824z`},null,-1)]])}var 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(t,n){return D(),S(`svg`,Ye,[...n[0]||=[e(`path`,{fill:`#6E29F6`,"fill-rule":`evenodd`,d:`M22.956 6.521H12.522c-.577 0-1.044.468-1.044 1.044v3.13c0 .577-.466 1.044-1.043 1.044H1.044c-.577 0-1.044.467-1.044 1.044v4.174C0 17.533.467 18 1.044 18h10.434c.577 0 1.044-.467 1.044-1.043v-3.13c0-.578.466-1.044 1.043-1.044h9.391c.577 0 1.044-.467 1.044-1.044V7.565c0-.576-.467-1.044-1.044-1.044`,"clip-rule":`evenodd`},null,-1)]])}var 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 Ze(t,n){return D(),S(`svg`,Z,[...n[0]||=[e(`path`,{fill:`url(#a)`,"fill-rule":`evenodd`,d:`M22.012 0h1.032v.927H24v.968h-.956V3.78h-1.032V1.896h-1.878v-.97h1.878zM2.6 12.371V1.87h.969v10.502zm10.423.66h10.95v.918h-6.208v9.579h-4.742V13.03zM5.629 3.333v12.356H0v4.51h10.386V8h10.473l-.003-4.668z`},null,-1),e(`defs`,null,[e(`linearGradient`,{id:`a`,x1:`1.646`,x2:`18.342`,y1:`1.916`,y2:`22.091`,gradientUnits:`userSpaceOnUse`},[e(`stop`,{"stop-color":`#01A9FF`}),e(`stop`,{offset:`1`,"stop-color":`#0160FF`})])],-1)]])}var Qe={render:Ze},$e={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function et(t,n){return D(),S(`svg`,$e,[...n[0]||=[e(`path`,{fill:`#0052D9`,"fill-rule":`evenodd`,d:`M9.976 1 24 9.8l-10.587.015L10.723 23H5.489L8.18 9.8H3.244L1 5.4h8.077z`},null,-1)]])}var tt={render:et},Q={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function nt(t,n){return D(),S(`svg`,Q,[...n[0]||=[e(`path`,{fill:`#00E5E5`,d:`m19.44 10.153-2.936 11.586a.215.215 0 0 0 .214.261h5.87a.215.215 0 0 0 .214-.261l-2.95-11.586a.214.214 0 0 0-.412 0M3.28 12.778l-2.275 8.96A.214.214 0 0 0 1.22 22h4.532a.21.21 0 0 0 .214-.165.2.2 0 0 0 0-.097l-2.276-8.96a.214.214 0 0 0-.41 0`},null,-1),e(`path`,{fill:`#006EFF`,d:`M7.29 5.359 3.148 21.738a.215.215 0 0 0 .203.261h8.29a.214.214 0 0 0 .215-.261L7.7 5.358a.214.214 0 0 0-.41 0z`},null,-1),e(`path`,{fill:`#006EFF`,d:`M14.44.15a.214.214 0 0 0-.41 0L8.366 21.739A.214.214 0 0 0 8.58 22H19.9a.22.22 0 0 0 .171-.078.21.21 0 0 0 .044-.183z`},null,-1),e(`path`,{fill:`#00E5E5`,d:`M10.278 7.741 6.685 21.736a.214.214 0 0 0 .214.264h7.17a.215.215 0 0 0 .214-.264L10.688 7.741a.214.214 0 0 0-.41 0`},null,-1)]])}var rt={render:nt},it={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function at(t,n){return D(),S(`svg`,it,[...n[0]||=[e(`defs`,null,[e(`linearGradient`,{id:`a`,x1:`0%`,x2:`100.182%`,y1:`50.057%`,y2:`50.057%`},[e(`stop`,{offset:`0%`,"stop-color":`#E2167E`}),e(`stop`,{offset:`100%`,"stop-color":`#FE603C`})])],-1),e(`path`,{fill:`url(#a)`,d:`M16.278 2c1.156 0 2.093.927 2.093 2.07v12.501a.74.74 0 0 0 .744.709.74.74 0 0 0 .743-.709V9.099a2.06 2.06 0 0 1 2.071-2.049A2.06 2.06 0 0 1 24 9.1v6.561a.65.65 0 0 1-.652.645.65.65 0 0 1-.653-.645V9.1a.76.76 0 0 0-.766-.758.76.76 0 0 0-.766.758v7.472a2.037 2.037 0 0 1-2.048 2.026 2.037 2.037 0 0 1-2.048-2.026v-12.5a.785.785 0 0 0-.788-.753.785.785 0 0 0-.789.752l-.001 15.904A2.037 2.037 0 0 1 13.441 22a2.037 2.037 0 0 1-2.048-2.026V18.04c0-.356.292-.645.652-.645s.652.289.652.645v1.934c0 .263.142.506.372.638.23.131.514.131.744 0a.73.73 0 0 0 .372-.638V4.07c0-1.143.937-2.07 2.093-2.07m-5.674 0c1.156 0 2.093.927 2.093 2.07v11.523a.65.65 0 0 1-.652.645.65.65 0 0 1-.652-.645V4.07a.785.785 0 0 0-.789-.78.785.785 0 0 0-.789.78v14.013a2.06 2.06 0 0 1-2.07 2.048 2.06 2.06 0 0 1-2.071-2.048V9.1a.76.76 0 0 0-.766-.758.76.76 0 0 0-.766.758v3.8a2.06 2.06 0 0 1-2.071 2.049A2.06 2.06 0 0 1 0 12.9v-1.378c0-.357.292-.646.652-.646s.653.29.653.646V12.9c0 .418.343.757.766.757s.766-.339.766-.757V9.099a2.06 2.06 0 0 1 2.07-2.048 2.06 2.06 0 0 1 2.071 2.048v8.984c0 .419.343.758.767.758a.76.76 0 0 0 .766-.758V4.07c0-1.143.937-2.07 2.093-2.07`},null,-1)]])}var ot={render:at},$={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function st(t,n){return D(),S(`svg`,$,[...n[0]||=[e(`path`,{fill:`#FF6003`,"fill-rule":`evenodd`,d:`M24 14.014c-2.8 1.512-5.62 2.896-8.759 3.524-.7.139-1.476.139-2.187.043-.678-.085-1.017-.682-.776-1.31.23-.585.536-1.181.93-1.671.852-1.065 1.814-2.034 2.678-3.088a16 16 0 0 0 1.422-2.054c.306-.511.164-1.129-.372-1.384-.897-.437-1.859-.745-2.81-1.075-.11-.043-.274.074-.492.149.273.244.47.425.743.67-2.821.48-5.49 1.16-8.08 2.098-.012.053-.033.095-.023.117.383.585.208 1.032-.35 1.394a2.4 2.4 0 0 0-.568.522c1.706.5 3.226.213 4.68-.735-.087-.127-.175-.244-.262-.372.546.096.874.394.918.862.011.107-.054.213-.087.32-.077-.086-.175-.17-.24-.267-.045-.064-.056-.138-.088-.245-1.728 1.15-3.587 1.438-5.632.842 0 .404-.022.745.011 1.075.022.287-.098.415-.36.564-.591.362-1.204.735-1.696 1.214-.59.585-.371 1.299.427 1.597.907.34 1.859.35 2.81.234 1.126-.139 2.23-.32 3.456-.49-1.433.67-2.844 1.14-4.33 1.33-1.04.14-2.078.214-3.106-.084-1.476-.415-2.133-1.501-1.75-2.96.361-1.363 1.236-2.449 2.176-3.45 3.139-3.332 7.108-5.024 11.7-5.365 1.072-.074 2.155.064 3.16.511 1.411.639 2.002 1.99 1.313 3.354-.448.905-1.072 1.735-1.695 2.555-.612.809-1.301 1.554-1.946 2.331-.186.234-.361.48-.503.745-.274.5-.088.83.492.778 1.213-.118 2.45-.213 3.62-.511 1.716-.437 3.389-1.054 5.084-1.597.175-.043.339-.107.492-.17z`},null,-1)]])}var ct={render:st},lt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function ut(t,n){return D(),S(`svg`,lt,[...n[0]||=[e(`path`,{fill:`#D97757`,d:`m4.709 15.955 4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a3 3 0 0 1-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312z`},null,-1)]])}var dt={render:ut},ft={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function pt(e,t){return D(),S(`svg`,ft,[...t[0]||=[T(`<path fill="#fff" d="M19.503 0H4.496A4.496 4.496 0 0 0 0 4.496v15.007A4.496 4.496 0 0 0 4.496 24h15.007A4.496 4.496 0 0 0 24 19.503V4.496A4.496 4.496 0 0 0 19.503 0"></path><path fill="url(#a)" d="M9.064 3.344a4.6 4.6 0 0 1 2.285-.312q1.5.173 2.673 1.275.016.015.037.021a.1.1 0 0 0 .043 0 4.55 4.55 0 0 1 3.046.275l.047.022.116.057a4.58 4.58 0 0 1 2.188 2.399q.313.765.315 1.595a4.2 4.2 0 0 1-.134 1.223.12.12 0 0 0 .03.115q.89.91 1.183 2.17.433 2.138-.887 3.854l-.136.166a4.55 4.55 0 0 1-2.201 1.388.12.12 0 0 0-.081.076c-.191.551-.383 1.023-.74 1.494-.9 1.187-2.222 1.846-3.711 1.838q-1.78-.009-3.157-1.302a.11.11 0 0 0-.105-.024c-.388.125-.78.143-1.204.138a4.44 4.44 0 0 1-1.945-.466 4.54 4.54 0 0 1-1.61-1.335c-.152-.202-.303-.392-.414-.617a6 6 0 0 1-.37-.961 4.6 4.6 0 0 1-.014-2.298.1.1 0 0 0 .006-.056.1.1 0 0 0-.027-.048 4.5 4.5 0 0 1-1.034-1.651 3.9 3.9 0 0 1-.251-1.192 5.2 5.2 0 0 1 .141-1.6Q3.659 7.92 5.086 6.97q.318-.212.601-.33a6 6 0 0 1 .646-.227.1.1 0 0 0 .065-.066 4.5 4.5 0 0 1 .829-1.615 4.54 4.54 0 0 1 1.837-1.388m3.482 10.565a.637.637 0 0 0 0 1.272h3.636a.637.637 0 1 0 0-1.272zM8.462 9.23a.637.637 0 0 0-1.106.631l1.272 2.224-1.266 2.136a.636.636 0 1 0 1.095.649l1.454-2.455a.64.64 0 0 0 .005-.64z"></path><defs><linearGradient id="a" x1="12" x2="12" y1="3" y2="21" gradientUnits="userSpaceOnUse"><stop stop-color="#B1A7FF"></stop><stop offset=".5" stop-color="#7A9DFF"></stop><stop offset="1" stop-color="#3941FF"></stop></linearGradient></defs>`,3)]])}var mt={render:pt},ht={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`currentColor`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function gt(t,n){return D(),S(`svg`,ht,[...n[0]||=[e(`path`,{d:`m1.052 16.916 9.539 2.552a21 21 0 0 0 .06 2.033l5.956 1.593a12 12 0 0 1-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01-.157-.02-.107-.014-.11-.016a12 12 0 0 1-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024-.044-.015-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027-.041-.018-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032-.046-.026-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035-.054-.036-.044-.03-.044-.03-.04-.028-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039-.043-.037-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084-.099-.097-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a7 7 0 0 1-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056-.027-.033-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a12 12 0 0 1-1.44-2.402m-1.02-5.794 11.353 3.037a21 21 0 0 0-.469 2.011l10.817 2.894a12 12 0 0 1-1.845 2.005L.657 15.923l-.016-.046-.035-.104-.05-.153-.007-.023a12 12 0 0 1-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094q-.04-.212-.071-.426l-.017-.118-.011-.083-.013-.102-.019-.161-.005-.047a12 12 0 0 1-.034-2.145m1.593-5.15 11.948 3.196a21 21 0 0 0-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098q.04-.222.088-.442l.028-.124.02-.085.024-.097q.033-.135.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a12 12 0 0 1 1.01-2.232zm4.442-4.4L17.352 4.59a21 21 0 0 0-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12 12 0 0 1 2.272-1.677M12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017q.081.055.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035q.17-.068.341-.131l.096-.035.093-.033.084-.03.096-.031A8 8 0 0 1 8.49.525l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01q.14-.015.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z`},null,-1)]])}var _t={render:gt},vt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`currentColor`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function yt(t,n){return D(),S(`svg`,vt,[...n[0]||=[e(`path`,{d:`M16 6H8v12h8zm4 16H4V2h16z`},null,-1)]])}var bt={render:yt},xt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#09090b`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function St(t,n){return D(),S(`svg`,xt,[...n[0]||=[e(`path`,{d:`M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.8.8 0 0 0-.856 0zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.43.43 0 0 1 .476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142a.45.45 0 0 1-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.48 4.48 0 0 1 4.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.43.43 0 0 1-.476 0m-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71a.79.79 0 0 0 .856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523m5.899 2.83a5.95 5.95 0 0 0 5.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947a5.7 5.7 0 0 0-1.88.31A5.96 5.96 0 0 0 10.205 0a5.95 5.95 0 0 0-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 0 0 4.162 1.713z`},null,-1)]])}var Ct={render:St},wt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#09090b`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Tt(t,n){return D(),S(`svg`,wt,[...n[0]||=[e(`path`,{d:`M13.827 3.52h3.603L24 20h-3.603zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z`},null,-1)]])}var Et={render:Tt},Dt={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 800 800`};function Ot(t,n){return D(),S(`svg`,Dt,[...n[0]||=[e(`path`,{fill:`#09090b`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),e(`path`,{fill:`#09090b`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var kt={render:Ot},At={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function jt(t,n){return D(),S(`svg`,At,[...n[0]||=[e(`path`,{d:`m1.052 16.916 9.539 2.552a21 21 0 0 0 .06 2.033l5.956 1.593a12 12 0 0 1-5.586.865l-.18-.016-.044-.004-.084-.009-.094-.01-.157-.02-.107-.014-.11-.016a12 12 0 0 1-.32-.051l-.042-.008-.075-.013-.107-.02-.07-.015-.093-.019-.075-.016-.095-.02-.097-.023-.094-.022-.068-.017-.088-.022-.09-.024-.095-.025-.082-.023-.109-.03-.062-.02-.084-.025-.093-.028-.105-.034-.058-.019-.08-.026-.09-.031-.066-.024-.044-.015-.068-.025-.101-.037-.057-.022-.08-.03-.087-.035-.088-.035-.079-.032-.095-.04-.063-.028-.063-.027-.041-.018-.066-.03-.103-.047-.052-.024-.096-.046-.062-.03-.084-.04-.086-.044-.093-.047-.052-.027-.103-.055-.057-.03-.058-.032-.046-.026-.094-.053-.06-.034-.051-.03-.072-.041-.082-.05-.093-.056-.052-.032-.084-.053-.061-.039-.079-.05-.07-.047-.053-.035-.054-.036-.044-.03-.044-.03-.04-.028-.057-.04-.076-.054-.069-.05-.074-.054-.056-.042-.076-.057-.076-.059-.086-.067-.045-.035-.064-.052-.074-.06-.089-.073-.046-.039-.046-.039-.043-.037-.045-.04-.061-.053-.07-.062-.068-.06-.062-.058-.067-.062-.053-.05-.088-.084-.099-.097-.029-.028-.041-.042-.069-.07-.05-.051-.05-.053a7 7 0 0 1-.168-.179l-.08-.088-.062-.07-.071-.08-.042-.049-.053-.062-.058-.068-.046-.056-.027-.033-.045-.055-.066-.082-.041-.052-.05-.064-.02-.025a12 12 0 0 1-1.44-2.402m-1.02-5.794 11.353 3.037a21 21 0 0 0-.469 2.011l10.817 2.894a12 12 0 0 1-1.845 2.005L.657 15.923l-.016-.046-.035-.104-.05-.153-.007-.023a12 12 0 0 1-.207-.741l-.03-.126-.018-.08-.021-.097-.018-.081-.018-.09-.017-.084-.018-.094q-.04-.212-.071-.426l-.017-.118-.011-.083-.013-.102-.019-.161-.005-.047a12 12 0 0 1-.034-2.145m1.593-5.15 11.948 3.196a21 21 0 0 0-1.01 1.875l11.295 3.022c-.142.82-.368 1.612-.668 2.365l-11.55-3.09L.124 10.26l.015-.1.008-.049.01-.067.015-.087.018-.098q.04-.222.088-.442l.028-.124.02-.085.024-.097q.033-.135.07-.268l.028-.102.023-.083.03-.1.025-.082.03-.096.026-.082.031-.095a12 12 0 0 1 1.01-2.232zm4.442-4.4L17.352 4.59a21 21 0 0 0-1.688 1.721l7.823 2.093c.267.852.442 1.744.513 2.665L2.106 5.213l.045-.065.027-.04.04-.055.046-.065.055-.076.054-.072.064-.086.05-.065.057-.073.055-.07.06-.074.055-.069.065-.077.054-.066.066-.077.053-.06.072-.082.053-.06.067-.074.054-.058.073-.078.058-.06.063-.067.168-.17.1-.098.059-.056.076-.071a12 12 0 0 1 2.272-1.677M12.017 0h.097l.082.001.069.001.054.002.068.002.046.001.076.003.047.002.06.003.054.002.087.005.105.007.144.011.088.007.044.004.077.008.082.008.047.005.102.012.05.006.108.014.081.01.042.006.065.01.207.032.07.012.065.011.14.026.092.018.11.022.046.01.075.016.041.01L14.7.3l.042.01.065.015.049.012.071.017.096.024.112.03.113.03.113.032.05.015.07.02.078.024.073.023.05.016.05.016.076.025.099.033.102.036.048.017.064.023.093.034.11.041.116.045.1.04.047.02.06.024.041.018.063.026.04.018.057.025.11.048.1.046.074.035.075.036.06.028.092.046.091.045.102.052.053.028.049.026.046.024.06.033.041.022.052.029.088.05.106.06.087.051.057.034.053.032.096.059.088.055.098.062.036.024.064.041.084.056.04.027.062.042.062.043.023.017q.081.055.161.114l.083.06.065.048.056.043.086.065.082.064.04.03.05.041.086.069.079.065.085.071c.712.6 1.353 1.283 1.909 2.031L7.222.994l.062-.027.065-.028.081-.034.086-.035q.17-.068.341-.131l.096-.035.093-.033.084-.03.096-.031A8 8 0 0 1 8.49.525l.091-.027.086-.025.102-.03.085-.023.1-.026L9.04.37l.09-.023.091-.022.095-.022.09-.02.098-.021.091-.02.095-.018.092-.018.1-.018.091-.016.098-.017.092-.014.097-.015.092-.013.102-.013.091-.012.105-.012.09-.01.105-.01q.14-.015.28-.024l.106-.008.09-.005.11-.006.093-.004.1-.004.097-.002.099-.002.197-.002z`},null,-1)]])}var Mt={render:jt},Nt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Pt(t,n){return D(),S(`svg`,Nt,[...n[0]||=[e(`path`,{d:`M16 6H8v12h8zm4 16H4V2h16z`},null,-1)]])}var Ft={render:Pt},It={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Lt(t,n){return D(),S(`svg`,It,[...n[0]||=[e(`path`,{d:`M9.205 8.658v-2.26c0-.19.072-.333.238-.428l4.543-2.616c.619-.357 1.356-.523 2.117-.523 2.854 0 4.662 2.212 4.662 4.566 0 .167 0 .357-.024.547l-4.71-2.759a.8.8 0 0 0-.856 0zm10.609 8.8V12.06c0-.333-.143-.57-.429-.737l-5.97-3.473 1.95-1.118a.43.43 0 0 1 .476 0l4.543 2.617c1.309.76 2.189 2.378 2.189 3.948 0 1.808-1.07 3.473-2.76 4.163zM7.802 12.703l-1.95-1.142a.45.45 0 0 1-.239-.428V5.899c0-2.545 1.95-4.472 4.591-4.472 1 0 1.927.333 2.712.928L8.23 5.067c-.285.166-.428.404-.428.737zM12 15.128l-2.795-1.57v-3.33L12 8.658l2.795 1.57v3.33zm1.796 7.23c-1 0-1.927-.332-2.712-.927l4.686-2.712c.285-.166.428-.404.428-.737v-6.898l1.974 1.142c.167.095.238.238.238.428v5.233c0 2.545-1.974 4.472-4.614 4.472zm-5.637-5.303-4.544-2.617c-1.308-.761-2.188-2.378-2.188-3.948A4.48 4.48 0 0 1 4.21 6.327v5.423c0 .333.143.571.428.738l5.947 3.449-1.95 1.118a.43.43 0 0 1-.476 0m-.262 3.9c-2.688 0-4.662-2.021-4.662-4.519 0-.19.024-.38.047-.57l4.686 2.71a.79.79 0 0 0 .856 0l5.97-3.448v2.26c0 .19-.07.333-.237.428l-4.543 2.616c-.619.357-1.356.523-2.117.523m5.899 2.83a5.95 5.95 0 0 0 5.827-4.756C22.287 18.339 24 15.84 24 13.296c0-1.665-.713-3.282-1.998-4.448.119-.5.19-.999.19-1.498 0-3.401-2.759-5.947-5.946-5.947a5.7 5.7 0 0 0-1.88.31A5.96 5.96 0 0 0 10.205 0a5.95 5.95 0 0 0-5.827 4.757C1.713 5.447 0 7.945 0 10.49c0 1.666.713 3.283 1.998 4.448-.119.5-.19 1-.19 1.499 0 3.401 2.759 5.946 5.946 5.946.642 0 1.26-.095 1.88-.309a5.96 5.96 0 0 0 4.162 1.713z`},null,-1)]])}var Rt={render:Lt},zt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,fill:`#fff`,"fill-rule":`evenodd`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Bt(t,n){return D(),S(`svg`,zt,[...n[0]||=[e(`path`,{d:`M13.827 3.52h3.603L24 20h-3.603zm-7.258 0h3.767L16.906 20h-3.674l-1.343-3.461H5.017l-1.344 3.46H0L6.57 3.522zm4.132 9.959L8.453 7.687 6.205 13.48H10.7z`},null,-1)]])}var Vt={render:Bt},Ht={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 800 800`};function Ut(t,n){return D(),S(`svg`,Ht,[...n[0]||=[e(`path`,{fill:`#fff`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),e(`path`,{fill:`#fff`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var Wt={render:Ut},Gt=C({__name:`ProviderIcon`,props:{name:{},size:{default:20}},setup(e){let t={deepseek:J,zhipu:Y,kimi:ze,qwen:He,baidu:Ge,iflytek:Je,siliconcloud:X,stepfun:Qe,tencentcloud:tt,volcengine:rt,minimax:ot,alibaba:ct,claude:dt,codex:mt},r={moonshot:_t,opencode:bt,openai:Ct,anthropic:Et,pi:kt},i={moonshot:Mt,opencode:Ft,openai:Rt,anthropic:Vt,pi:Wt},a=e,o=s(()=>{let e=a.name.toLowerCase();if(t[e])return t[e];if(z.value&&i[e])return i[e];if(r[e])return r[e]}),l=s(()=>a.name.charAt(0).toUpperCase());return(t,r)=>o.value?(D(),_(n(o.value),{key:0,class:`shrink-0`,style:m({width:`${e.size}px`,height:`${e.size}px`})},null,8,[`style`])):(D(),S(`span`,{key:1,class:`inline-flex items-center justify-center shrink-0 font-bold text-muted-foreground`,style:m({width:`${e.size}px`,height:`${e.size}px`,fontSize:`${e.size*.5}px`})},c(l.value),5))}}),Kt={class:`border border-input rounded-lg p-4 space-y-3`},qt={class:`flex items-center gap-3`},Jt={class:`text-xs font-medium text-muted-foreground whitespace-nowrap`},Yt={key:0,class:`grid grid-cols-4 gap-3`},Xt={class:`col-span-2`},Zt=C({__name:`ProxyConfigForm`,props:{modelValue:{}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=t,i=n,{t:a}=u();function o(e){i(`update:modelValue`,{...r.modelValue,...e})}let l=s(()=>r.modelValue.proxyType??G.proxyType),d=s(()=>r.modelValue.proxyUrl??G.proxyUrl),f=s(()=>r.modelValue.proxyUsername??G.proxyUsername),p=s(()=>r.modelValue.proxyPassword??G.proxyPassword);function m(e){let t=typeof e==`string`?e:e==null?``:JSON.stringify(e),n=t===`none`?``:t;n?o({proxyType:n}):i(`update:modelValue`,{...G})}return(t,n)=>(D(),S(`div`,Kt,[e(`div`,qt,[e(`span`,Jt,c(w(a)(`providers.fields.proxyTitle`)),1),h(w(B),{"model-value":l.value||`none`,class:`w-32`,"onUpdate:modelValue":m},{default:b(()=>[h(w(L),null,{default:b(()=>[h(w(R))]),_:1}),h(w(P),null,{default:b(()=>[h(w(I),{value:`none`},{default:b(()=>[v(c(w(a)(`providers.fields.proxyNoProxy`)),1)]),_:1}),h(w(I),{value:`http`},{default:b(()=>[v(c(w(a)(`providers.fields.proxyHttp`)),1)]),_:1}),h(w(I),{value:`socks5`},{default:b(()=>[v(c(w(a)(`providers.fields.proxySocks5`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),l.value?(D(),S(`div`,Yt,[e(`div`,Xt,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(a)(`providers.fields.proxyUrl`)),1)]),_:1}),h(w(H),{"model-value":d.value,type:`text`,class:`mt-1 font-mono text-xs`,placeholder:l.value===`socks5`?w(a)(`providers.fields.proxyUrlPlaceholderSocks5`):w(a)(`providers.fields.proxyUrlPlaceholderHttp`),"onUpdate:modelValue":n[0]||=e=>o({proxyUrl:e})},null,8,[`model-value`,`placeholder`])]),e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(a)(`providers.fields.proxyUsername`)),1)]),_:1}),h(w(H),{"model-value":f.value,type:`text`,class:`mt-1`,placeholder:w(a)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":n[1]||=e=>o({proxyUsername:e})},null,8,[`model-value`,`placeholder`])]),e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(a)(`providers.fields.proxyPassword`)),1)]),_:1}),h(w(H),{"model-value":p.value,type:`password`,autocomplete:`new-password`,class:`mt-1`,placeholder:w(a)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":n[2]||=e=>o({proxyPassword:e})},null,8,[`model-value`,`placeholder`])])])):E(``,!0)]))}});function Qt(){let{t:e}=u(),n=O({injectHeaders:``,dropFields:``,requestDefaults:``}),r=O(!1);async function i(i){try{let e=await t.getTransformRules(i);e?(n.value.dropFields=(e.drop_fields||[]).join(`, `),n.value.requestDefaults=e.request_defaults?JSON.stringify(e.request_defaults):``,n.value.injectHeaders=e.inject_headers?JSON.stringify(e.inject_headers):``,r.value=!0):(n.value={injectHeaders:``,dropFields:``,requestDefaults:``},r.value=!1)}catch(t){console.error(`transformRules.load:`,t),F.error(y(t,e(`providers.transform.loadFailed`))),n.value={injectHeaders:``,dropFields:``,requestDefaults:``},r.value=!1}}function a(i){if(!i)return Promise.resolve();let a=je({injectHeaders:n.value.injectHeaders,dropFields:n.value.dropFields,requestDefaults:n.value.requestDefaults});if(a.errorKey)return F.error(e(`providers.transform.${a.errorKey}`)),Promise.resolve();let o=a.rule?JSON.parse(a.rule):{drop_fields:null,request_defaults:null,inject_headers:null};return t.upsertTransformRules(i,{...o,is_active:1}).then(()=>{r.value=!0,F.success(e(`providers.transform.saved`))}).catch(t=>{console.error(`transformRules.save:`,t),F.error(y(t,e(`common.saveFailed`)))})}function o(i){return i?t.deleteTransformRules(i).then(()=>{n.value={injectHeaders:``,dropFields:``,requestDefaults:``},r.value=!1,F.success(e(`providers.transform.deleted`))}).catch(t=>{console.error(`transformRules.delete:`,t),F.error(y(t,e(`providers.transform.deleteFailed`)))}):Promise.resolve()}return{transformConfig:n,transformExists:r,loadTransformRules:i,saveTransformRules:a,handleDeleteTransformRules:o}}function $t(e){let n=O([]),r=O(``),i=O(``),a=s(()=>r.value?n.value.find(e=>e.group===r.value)?.presets??[]:[]);function o(){if(r.value===`__custom__`){i.value=``,e.value.name=``,e.value.api_type=`openai`,e.value.base_url=``,e.value.models=[],e.value.endpoints=[];return}let t=n.value.find(e=>e.group===r.value)?.presets[0];t?(i.value=t.plan,c(),t.endpoints&&t.endpoints.length>0?e.value.endpoints=t.endpoints.map(e=>({api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||null,api_key:null})):e.value.endpoints=[{api_type:t.apiType,base_url:t.baseUrl,upstream_path:t.upstreamPath||null,api_key:null}]):i.value=``}function c(){let t=a.value.find(e=>e.plan===i.value);t&&(e.value.name=t.presetName,e.value.api_type=t.apiType,e.value.base_url=t.baseUrl,e.value.upstream_path=t.upstreamPath??``,e.value.models=t.models.map(e=>({name:e,context_window:j(e),patches:M(e,t.apiType,!1),capabilities:t.modelCapabilities?.[e]})))}function l(){return a.value.find(e=>e.plan===i.value)?.modelsEndpoint}function u(){return a.value.find(e=>e.plan===i.value)?.models??[]}async function d(){try{n.value=await t.recommended.getProviders()}catch(e){console.error(`useProviderPresets.loadPresets:`,e),n.value=[]}}function f(){r.value=``,i.value=``}return{providerPresets:n,presetGroup:r,presetPlan:i,availablePlans:a,onGroupChange:o,onPresetChange:c,getCurrentModelsEndpoint:l,getCurrentPresetModels:u,loadPresets:d,resetPreset:f}}var en=100,tn=1e3,nn=1e3,rn={name:``,api_type:`anthropic`,base_url:``,upstream_path:``,api_key:``,endpoints:[],models:[],is_active:!0,max_concurrency:K.max_concurrency,queue_timeout_ms:K.queue_timeout_ms,max_queue_size:K.max_queue_size,adaptive_enabled:!0,proxy_type:``,proxy_url:``,proxy_username:``,proxy_password:``},an=[{label:`8K`,value:`8000`},{label:`16K`,value:`16000`},{label:`32K`,value:`32000`},{label:`64K`,value:`64000`},{label:`128K`,value:`128000`},{label:`160K`,value:`160000`},{label:`200K`,value:`200000`},{label:`256K`,value:`256000`},{label:`1M`,value:`1000000`}],on={openai:`OpenAI Chat Completions`,"openai-responses":`OpenAI Responses`,anthropic:`Anthropic Messages`};function sn(){let{t:e}=u(),{transformConfig:t,loadTransformRules:n,saveTransformRules:r}=Qt(),i=O({...rn}),c=O({}),l=O(`auto`),d=O(!1),f=O(null),p=O(``),m=O(a),h=s({get:()=>`${m.value}`,set:e=>{m.value=Number(e)}}),g=$t(i);function _(){let t={};i.value.name.trim()?/^[a-zA-Z0-9_-]+$/.test(i.value.name.trim())||(t.name=e(`providers.validation.namePattern`)):t.name=e(`providers.validation.nameRequired`);let n=i.value.endpoints.length>0;if(!n)if(!i.value.base_url.trim())t.base_url=e(`providers.validation.baseUrlRequired`);else try{new URL(i.value.base_url.trim())}catch{t.base_url=e(`providers.validation.baseUrlInvalid`)}if(!f.value&&!i.value.api_key.trim()&&(t.api_key=e(`providers.validation.apiKeyRequired`)),n){let n=i.value.endpoints;for(let r=0;r<n.length;r++)n[r].base_url.trim()||(t[`endpoint_${r}_base_url`]=e(`providers.validation.baseUrlRequired`));let r=n.map(e=>e.api_type);new Set(r).size!==r.length&&(t.endpoints=e(`providers.validation.duplicateApiType`))}if(l.value!==`none`){let n=i.value.max_concurrency;(!n||n<1||n>en)&&(t.max_concurrency=e(`providers.validation.concurrencyRange`,{min:1,max:en})),i.value.queue_timeout_ms<0&&(t.queue_timeout_ms=e(`providers.validation.negativeNotAllowed`));let r=i.value.max_queue_size;(!r||r<1||r>tn)&&(t.max_queue_size=e(`providers.validation.queueSizeRange`,{min:1,max:tn}))}return c.value=t,Object.keys(t).length===0}function ee(){let e={name:i.value.name,api_type:i.value.api_type,base_url:i.value.endpoints.length>0&&!i.value.base_url?i.value.endpoints[0].base_url:i.value.base_url,upstream_path:i.value.upstream_path||void 0,endpoints:i.value.endpoints.length>0?i.value.endpoints.map(e=>({api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||void 0,api_key:e.api_key||void 0})):void 0,models:i.value.models.map(e=>({name:e.name,context_window:e.context_window??void 0,patches:e.patches??void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities??void 0})),is_active:+!!i.value.is_active,max_concurrency:l.value===`none`?0:i.value.max_concurrency,queue_timeout_ms:l.value===`none`?0:i.value.queue_timeout_ms,max_queue_size:l.value===`none`?ke.max_queue_size:i.value.max_queue_size,adaptive_enabled:+(l.value===`auto`),proxy_type:i.value.proxy_type||null,proxy_url:i.value.proxy_url?.trim()||null,proxy_username:i.value.proxy_username?.trim()||null,proxy_password:i.value.proxy_password||null};return i.value.api_key&&(e.api_key=i.value.api_key),e}function v(e,t){let n=p.value.trim();if(!n)return;let r=n.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let n of r)i.value.models.some(e=>e.name===n)||i.value.models.push({name:n,context_window:m.value||2e5,patches:t??[],stream_timeout_ms:o,capabilities:e??[`text`]});p.value=``,m.value=a}function y(e){i.value.models.splice(e,1)}function b(e,t){i.value.models[e].context_window=t.contextWindow,i.value.models[e].patches=t.patches}function x(e,t){if(t===`text`)return;let n=i.value.models[e],r=n.capabilities??[`text`];n.capabilities=r.includes(t)?r.filter(e=>e!==t):[...r,t]}function S(e,t){let n=Number(t);i.value.models[e].stream_timeout_ms=n>0?n*nn:null}function C(e){l.value=e,e===`auto`?((!i.value.max_concurrency||i.value.max_concurrency<1)&&(i.value.max_concurrency=K.max_concurrency),i.value.adaptive_enabled=!0):e===`manual`&&((!i.value.max_concurrency||i.value.max_concurrency<1)&&(i.value.max_concurrency=ke.max_concurrency),i.value.adaptive_enabled=!1)}function w(e){return e.includes(`api.openai.com`)}function T(){f.value=null,i.value={...rn,models:[],endpoints:[]},l.value=`auto`,p.value=``,m.value=a,g.presetGroup.value=``,g.presetPlan.value=``,c.value={},d.value=!0}function E(e){f.value=e.id;let t=e.max_concurrency??0;t===0?l.value=`none`:e.adaptive_enabled?l.value=`auto`:l.value=`manual`,i.value={name:e.name,api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path||``,api_key:``,endpoints:(e.endpoints??[]).map(e=>({api_type:e.api_type,base_url:e.base_url,upstream_path:e.upstream_path??null,api_key:e.api_key??null})),models:(e.models||[]).map(e=>({name:e.name,context_window:e.context_window??2e5,patches:e.patches??[],stream_timeout_ms:e.stream_timeout_ms??null,capabilities:e.capabilities??[`text`]})),is_active:!!e.is_active,max_concurrency:l.value===`none`?K.max_concurrency:t,queue_timeout_ms:e.queue_timeout_ms??K.queue_timeout_ms,max_queue_size:e.max_queue_size??K.max_queue_size,adaptive_enabled:l.value===`auto`,proxy_type:e.proxy_type||``,proxy_url:e.proxy_url||``,proxy_username:e.proxy_username||``,proxy_password:``},g.presetGroup.value=``,g.presetPlan.value=``,p.value=``,m.value=a,c.value={},d.value=!0,n(e.id)}return{form:i,errors:c,concurrencyMode:l,dialogOpen:d,editingId:f,modelInput:p,modelContextWindow:m,contextWindowSelect:h,transformConfig:t,presetHook:g,validate:_,buildPayload:ee,addModel:v,removeModel:y,updateModel:b,updateModelTimeout:S,toggleModelCapability:x,onConcurrencyModeChange:C,isOfficialOpenai:w,openCreate:T,openEdit:E,saveTransformRules:r}}var cn={class:`bg-card border-input border rounded-lg p-5 mb-4`},ln={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-4 pb-2.5 border-b border-input`},un={class:`grid grid-cols-2 gap-3`},dn={key:0,class:`text-xs text-destructive mt-0.5`},fn={key:0,class:`text-xs text-destructive mt-0.5`},pn={class:`text-xs text-muted-foreground mt-0.5`},mn={class:`bg-card border-input border rounded-lg p-5 mb-4`},hn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-4 pb-2.5 border-b border-input`},gn={class:`flex items-center justify-between mb-2`},_n={class:`grid grid-cols-1 gap-2 mb-3`},vn={class:`flex gap-2 items-center`},yn={class:`flex items-center gap-0.5 shrink-0`},bn={class:`bg-card border-input border rounded-lg overflow-hidden mb-4`},xn={key:0,class:`px-5 pb-5`},Sn={class:`border-t border-input pt-4 space-y-4`},Cn={class:`grid grid-cols-3 gap-3`},wn={class:`border border-input rounded-md p-3 space-y-3`},Tn={class:`text-xs font-medium text-muted-foreground`},En=C({__name:`ModelCapabilitiesEditor`,props:{modelValue:{},editingId:{},errors:{},fetchingModels:{type:Boolean},hasModelsEndpoint:{type:Boolean},presetGroup:{},hasApiKey:{type:Boolean},endpoints:{},sharedKey:{}},emits:[`update:modelValue`,`clear-errors`,`fetch-upstream-models`,`update:endpoints`],setup(t,{emit:r}){let{t:s}=u(),l=O(!1),m=O([`text`]),ee=[{key:`text`,icon:ae,label:`text`},{key:`image`,icon:ne,label:`image`},{key:`audio`,icon:ce,label:`audio`},{key:`video`,icon:ie,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 C=t,T=r;function k(e){T(`update:modelValue`,{...C.modelValue,...e})}function A(){let e=C.modelValue.modelInput.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean),n=[...C.modelValue.models];for(let e of t)n.some(t=>t.name===e)||n.push({name:e,context_window:Number(C.modelValue.contextWindowSelect)||2e5,patches:[],stream_timeout_ms:o,capabilities:[...m.value]});k({models:n,modelInput:``,contextWindowSelect:`${a}`}),m.value=[`text`]}function re(e){let t=[...C.modelValue.models];t.splice(e,1),k({models:t})}function j(e,t){let n=[...C.modelValue.models];n[e]={...n[e],context_window:t.contextWindow,patches:t.patches},k({models:n})}function M(e,t){let n=[...C.modelValue.models];n[e]={...n[e],stream_timeout_ms:t&&t>0?t:null},k({models:n})}function le(e,t){if(t===`text`)return;let n=[...C.modelValue.models],r=n[e],i=r.capabilities??[`text`];n[e]={...r,capabilities:i.includes(t)?i.filter(e=>e!==t):[...i,t]},k({models:n})}function ue(e){let t={concurrencyMode:e};e===`auto`?(!C.modelValue.maxConcurrency||C.modelValue.maxConcurrency<1)&&(t.maxConcurrency=10):e===`manual`&&(!C.modelValue.maxConcurrency||C.modelValue.maxConcurrency<1)&&(t.maxConcurrency=3),k(t)}function de(e){return e.capabilities??[`text`]}function fe(e){return e.includes(`api.openai.com`)}return(t,r)=>(D(),S(d,null,[e(`div`,cn,[e(`div`,ln,c(w(s)(`providers.fields.connectionSection`)),1),e(`div`,un,[e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.fields.name`)),1)]),_:1}),h(w(H),{"model-value":C.modelValue.name,type:`text`,required:``,class:`mt-1`,"onUpdate:modelValue":r[0]||=e=>k({name:String(e)}),onInput:r[1]||=e=>T(`clear-errors`,`name`)},null,8,[`model-value`]),C.errors.name?(D(),S(`p`,dn,c(C.errors.name),1)):E(``,!0)]),e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.fields.apiKey`)),1)]),_:1}),h(w(H),{"model-value":C.modelValue.apiKey,type:`password`,autocomplete:`new-password`,required:!C.editingId,placeholder:C.editingId?w(s)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1 font-mono text-xs`,"onUpdate:modelValue":r[2]||=e=>k({apiKey:String(e)}),onInput:r[3]||=e=>T(`clear-errors`,`api_key`)},null,8,[`model-value`,`required`,`placeholder`]),C.errors.api_key?(D(),S(`p`,fn,c(C.errors.api_key),1)):E(``,!0),e(`p`,pn,c(w(s)(`providers.fields.sharedKeyHint`)),1)])]),h(oe,{"model-value":C.endpoints,"shared-key":C.sharedKey,"onUpdate:modelValue":r[4]||=e=>T(`update:endpoints`,e)},null,8,[`model-value`,`shared-key`])]),e(`div`,mn,[e(`div`,hn,c(w(s)(`providers.fields.modelsSection`)),1),e(`div`,null,[e(`div`,gn,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.fields.availableModels`)),1)]),_:1}),!C.editingId&&C.presetGroup&&C.presetGroup!==`__custom__`&&(C.hasApiKey||!C.hasModelsEndpoint)?(D(),_(w(x),{key:0,type:`button`,variant:`outline`,size:`sm`,class:`text-xs`,disabled:C.fetchingModels,onClick:r[5]||=e=>T(`fetch-upstream-models`)},{default:b(()=>[h(w(Me),{class:p([`w-3 h-3 mr-1`,{"animate-spin":C.fetchingModels}])},null,8,[`class`]),v(` `+c(C.fetchingModels?w(s)(`providers.fetchModels.loading`):C.hasModelsEndpoint?w(s)(`providers.fetchModels.button`):w(s)(`providers.fetchModels.buttonPreset`)),1)]),_:1},8,[`disabled`])):E(``,!0)]),e(`div`,_n,[(D(!0),S(d,null,g(C.modelValue.models,(e,t)=>(D(),S(`div`,{key:t},[h(se,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":C.modelValue.apiType,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!fe(C.modelValue.baseUrl),"stream-timeout-ms":e.stream_timeout_ms??void 0,capabilities:de(e),"onUpdate:model":e=>j(t,e),onRemove:e=>re(t),"onUpdate:streamTimeoutMs":e=>M(t,e),onToggleCapability:e=>le(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`stream-timeout-ms`,`capabilities`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onToggleCapability`])]))),128))]),e(`div`,vn,[h(w(H),{"model-value":C.modelValue.modelInput,"onUpdate:modelValue":r[6]||=e=>k({modelInput:String(e)}),placeholder:w(s)(`providers.fields.modelInputPlaceholder`),onKeydown:i(f(A,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`model-value`,`placeholder`,`onKeydown`]),h(w(B),{"model-value":C.modelValue.contextWindowSelect,"onUpdate:modelValue":r[7]||=e=>k({contextWindowSelect:String(e)})},{default:b(()=>[h(w(L),{class:`w-28`},{default:b(()=>[h(w(R),{placeholder:w(s)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),h(w(P),null,{default:b(()=>[(D(!0),S(d,null,g(w(an),e=>(D(),_(w(I),{key:e.value,value:e.value},{default:b(()=>[v(c(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),e(`div`,yn,[(D(),S(d,null,g(ee,e=>h(w(x),{key:e.key,type:`button`,variant:`outline`,size:`icon`,class:p([`w-6 h-6 text-[11px] font-medium`,m.value.includes(e.key)?`border-primary/30 text-primary bg-primary/10`:`text-muted-foreground/40 hover:text-muted-foreground border-input`]),title:e.label,onClick:t=>y(e.key)},{default:b(()=>[(D(),_(n(e.icon),{class:`size-[11px]`}))]),_:2},1032,[`class`,`title`,`onClick`])),64))]),h(w(x),{type:`button`,variant:`outline`,size:`sm`,onClick:A,disabled:!C.modelValue.modelInput.trim()},{default:b(()=>[v(c(w(s)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])])]),e(`div`,bn,[h(w(x),{type:`button`,variant:`ghost`,class:`w-full flex items-center gap-2 px-5 py-3 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider hover:text-foreground`,onClick:r[8]||=e=>l.value=!l.value},{default:b(()=>[h(w(te),{class:p([`w-3 h-3 transition-transform duration-150`,l.value?`rotate-90`:``])},null,8,[`class`]),v(` `+c(w(s)(`providers.fields.advancedSection`)),1)]),_:1}),l.value?(D(),S(`div`,xn,[e(`div`,Sn,[e(`div`,Cn,[e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.concurrency.mode`)),1)]),_:1}),h(w(B),{"model-value":C.modelValue.concurrencyMode,"onUpdate:modelValue":r[9]||=e=>ue(e),class:`mt-1`},{default:b(()=>[h(w(L),{class:`h-8 text-[13px]`},{default:b(()=>[h(w(R),{placeholder:w(s)(`providers.concurrency.selectMode`)},null,8,[`placeholder`])]),_:1}),h(w(P),null,{default:b(()=>[h(w(I),{value:`auto`},{default:b(()=>[v(c(w(s)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),h(w(I),{value:`manual`},{default:b(()=>[v(c(w(s)(`providers.concurrency.manual`)),1)]),_:1}),h(w(I),{value:`none`},{default:b(()=>[v(c(w(s)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),C.modelValue.concurrencyMode===`none`?E(``,!0):(D(),S(d,{key:0},[e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),h(w(H),{"model-value":String(C.modelValue.maxConcurrency),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[10]||=e=>k({maxConcurrency:Number(e)})},null,8,[`model-value`])]),e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.concurrency.queueTimeout`)),1)]),_:1}),h(w(H),{"model-value":String(C.modelValue.queueTimeoutMs),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[11]||=e=>k({queueTimeoutMs:Number(e)})},null,8,[`model-value`])]),e(`div`,null,[h(w(N),{class:`text-xs text-muted-foreground`},{default:b(()=>[v(c(w(s)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),h(w(H),{"model-value":String(C.modelValue.maxQueueSize),type:`number`,class:`mt-1`,"onUpdate:modelValue":r[12]||=e=>k({maxQueueSize:Number(e)})},null,8,[`model-value`])])],64))]),h(Zt,{"model-value":C.modelValue.proxyConfig,"onUpdate:modelValue":r[13]||=e=>k({proxyConfig:e})},null,8,[`model-value`]),e(`div`,wn,[e(`div`,Tn,c(w(s)(`providers.transform.title`)),1),h(Ae,{"model-value":C.modelValue.transformConfig,"onUpdate:modelValue":r[14]||=e=>k({transformConfig:e})},null,8,[`model-value`])])])])):E(``,!0)])],64))}}),Dn=7,On=7,kn=2e3;function An(){let{t:e}=u(),n=O([]),r=O(!1),i=O(null),a=O(null),o=O(null),s=O(null),c=O(!1),l=O([]);async function d(){try{n.value=await t.getProviders()}catch(t){console.error(`Failed to load providers:`,t),F.error(y(t,e(`providers.toast.loadFailed`)))}}function f(e){return e?e.slice(0,Dn)+`*`.repeat(On):``}let{copy:p}=A();async function m(e,t){await p(e)&&(i.value=t,setTimeout(()=>{i.value=null},kn))}function h(e){a.value=e}async function g(e){if(o.value=e,s.value=e.id,c.value=!!e.is_active,l.value=[],e.is_active)try{l.value=(await t.getProviderDependencies(e.id)).references}catch(e){console.error(`useProviderActions.doSave:`,e),l.value=[]}}async function _(){let n=s.value;if(!n)return;let r=c.value;o.value=null,s.value=null;try{let i=await t.updateProvider(n,{is_active:+!r});if(i.cascadedGroups?.length){let t=i.cascadedGroups.filter(e=>e.disabled).length,n=i.cascadedGroups.length-t,r=[];n>0&&r.push(e(`providers.toast.cascadeClean`,{count:n})),t>0&&r.push(e(`providers.toast.cascadeDisable`,{count:t})),F.warning(e(`providers.toast.cascadeAuto`,{actions:r.join(`, `)}))}await d()}catch(t){console.error(`Failed to toggle provider:`,t),F.error(y(t,e(`providers.toast.toggleFailed`)))}}async function ee(){let n=a.value;if(n){a.value=null;try{await t.deleteProvider(n.id),await d()}catch(t){console.error(`providerActions.delete:`,t),F.error(y(t,e(`providers.toast.deleteFailed`)))}}}async function v(){r.value=!0;try{let n=await t.reloadTransformRules();F.success(e(`providers.toast.reloadSuccess`,{pluginCount:n.loadedPlugins.length,rulesCount:n.rulesCount}))}catch(t){console.error(`providerActions.reload:`,t),F.error(y(t,e(`providers.toast.reloadFailed`)))}finally{r.value=!1}}return{providers:n,reloading:r,copiedId:i,deleteTarget:a,toggleTarget:o,pendingToggleId:s,pendingToggleActive:c,toggleDependencies:l,maskKey:f,copyKey:m,loadProviders:d,confirmDelete:h,confirmToggle:g,handleToggle:_,handleDelete:ee,handleReload:v}}function jn(e,n,r){let{t:i}=u(),a=O(!1);function o(t,n){if(t.length===0){F.info(i(`providers.fetchModels.empty`));return}let r=new Set(e.value.models.map(e=>e.name)),a=0;for(let n of t)r.has(n)||(e.value.models.push({name:n,context_window:j(n),patches:M(n,e.value.api_type,!1)}),a++);a>0?F.success(i(`providers.fetchModels.success`,{source:n,total:t.length,added:a})):F.info(i(`providers.fetchModels.allExist`,{total:t.length}))}function s(){o(r(),i(`providers.fetchModels.sourcePreset`))}async function c(){let r=n();if(!r){s();return}if(!e.value.api_key?.trim()){F.error(i(`providers.fetchModels.noApiKey`));return}a.value=!0;try{let n=await t.fetchUpstreamModels({base_url:e.value.base_url,models_endpoint:r,api_key:e.value.api_key,api_type:e.value.api_type});if(n.length===0){s();return}o(n,i(`providers.fetchModels.sourceUpstream`))}catch(e){console.error(`useFetchUpstreamModels.fetch:`,e),s()}finally{a.value=!1}}return{fetchingModels:a,fetchUpstreamModels:c}}var Mn={class:`page`},Nn={class:`mb-4`},Pn={class:`flex items-center justify-between mb-3`},Fn={class:`text-base font-semibold text-foreground`},In={class:`flex items-center gap-2`},Ln={key:0,class:`grid grid-cols-4 bg-card border-input border rounded-lg overflow-hidden`},Rn={class:`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0`},zn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Bn={class:`font-mono text-[28px] font-bold leading-none mt-0.5`},Vn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Hn={class:`font-mono text-[28px] font-bold leading-none mt-0.5 text-success`},Un={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Wn={class:`font-mono text-[28px] font-bold leading-none mt-0.5 text-muted-foreground`},Gn={class:`flex flex-col gap-1 px-5 py-3.5`},Kn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},qn={class:`font-mono text-[28px] font-bold leading-none mt-0.5`},Jn={class:`flex items-center gap-2 mb-4`},Yn={class:`relative flex-1 max-w-sm`},Xn={class:`font-mono text-xs text-muted-foreground shrink-0`},Zn={class:`flex items-center gap-2.5`},Qn={class:`flex flex-col gap-0.5 min-w-0`},$n={class:`flex items-center gap-1.5`},er={class:`font-medium text-[13px] truncate`},tr={key:0,class:`border-t border-dashed border-border my-0.5`},nr={class:`font-mono text-[11px] text-muted-foreground truncate max-w-[260px] block`},rr={class:`space-y-0.5`},ir={key:0,class:`border-t border-dashed border-border my-0.5`},ar={class:`flex items-center gap-1`},or={key:0,class:`font-mono text-xs text-muted-foreground`},sr={key:1,class:`text-[10px] text-emerald-600 dark:text-emerald-400`},cr={class:`flex items-center gap-1.5`},lr={class:`font-mono text-[13px] font-medium`},ur={class:`flex items-center gap-1.5`},dr={key:2,class:`text-muted-foreground text-xs`},fr={class:`flex items-center gap-2`},pr={class:`flex items-center gap-1`},mr={key:1,class:`flex flex-col items-center justify-center py-16 text-center bg-card border-input border rounded-lg`},hr={class:`text-[15px] font-semibold mb-1.5`},gr={class:`text-sm text-muted-foreground mb-5 max-w-sm`},_r={key:2,class:`flex flex-col items-center justify-center py-12 text-center bg-card border-input border rounded-lg`},vr={class:`text-sm text-muted-foreground`},yr={key:0,class:`bg-card border-input border rounded-lg p-4 mb-4`},br={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-3 pb-2 border-b border-input`},xr={class:`flex items-center gap-2`},Sr={key:0,class:`mt-2 space-y-1`},Cr={class:`text-sm font-medium`},wr=C({__name:`Providers`,setup(i){let{t:a}=u(),{form:o,errors:l,concurrencyMode:m,dialogOpen:C,editingId:T,modelInput:te,contextWindowSelect:A,transformConfig:ie,presetHook:ae,validate:oe,buildPayload:j,openCreate:se,openEdit:ce,saveTransformRules:M}=sn(),{providerPresets:N,presetGroup:z,presetPlan:G,availablePlans:ke,onGroupChange:Ae,onPresetChange:K,getCurrentModelsEndpoint:je,getCurrentPresetModels:Pe}=ae,{providers:q,reloading:J,copiedId:Fe,deleteTarget:Ie,toggleTarget:Y,toggleDependencies:Le,maskKey:Re,copyKey:ze,loadProviders:Be,confirmDelete:Ve,confirmToggle:He,handleToggle:Ue,handleDelete:We,handleReload:Ge}=An(),{fetchingModels:Ke,fetchUpstreamModels:qe}=jn(o,je,Pe),Je=s({get:()=>({proxyType:o.value.proxy_type,proxyUrl:o.value.proxy_url,proxyUsername:o.value.proxy_username,proxyPassword:o.value.proxy_password}),set:e=>{o.value.proxy_type=e.proxyType,o.value.proxy_url=e.proxyUrl,o.value.proxy_username=e.proxyUsername,o.value.proxy_password=e.proxyPassword}}),Ye=s({get:()=>({name:o.value.name,apiType:o.value.api_type,baseUrl:o.value.base_url,apiKey:o.value.api_key,upstreamPath:o.value.upstream_path,models:o.value.models,modelInput:te.value,contextWindowSelect:A.value,concurrencyMode:m.value,maxConcurrency:o.value.max_concurrency,queueTimeoutMs:o.value.queue_timeout_ms,maxQueueSize:o.value.max_queue_size,transformConfig:ie.value,proxyConfig:Je.value}),set:e=>{o.value.name=e.name,o.value.api_type=e.apiType,o.value.base_url=e.baseUrl,o.value.api_key=e.apiKey,o.value.upstream_path=e.upstreamPath,o.value.models=e.models,te.value=e.modelInput,A.value=e.contextWindowSelect,m.value=e.concurrencyMode,o.value.max_concurrency=e.maxConcurrency,o.value.queue_timeout_ms=e.queueTimeoutMs,o.value.max_queue_size=e.maxQueueSize,Je.value=e.proxyConfig,ie.value=e.transformConfig}}),Xe=O(``),X=O(`all`),Z=O(``);function Ze(e){Z.value===e?(Z.value=``,X.value=`all`):(Z.value=e,X.value=e)}function Qe(){X.value===`all`?Z.value=``:Z.value=X.value}let $e=s(()=>q.value.filter(e=>e.is_active).length),et=s(()=>q.value.filter(e=>!e.is_active).length),tt=s(()=>q.value.reduce((e,t)=>e+(t.models?.length??0),0)),Q=s(()=>{let e=q.value,t=Xe.value.toLowerCase().trim();return t&&(e=e.filter(e=>e.name.toLowerCase().includes(t)||e.base_url.toLowerCase().includes(t))),X.value===`enabled`?e=e.filter(e=>e.is_active):X.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 $(e){return e.endpoints&&e.endpoints.length>0?e.endpoints.map(e=>({api_type:e.api_type,base_url:e.base_url,api_key:e.api_key})):[{api_type:e.api_type,base_url:e.base_url,api_key:e.api_key}]}function st(e){let t=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 ct(){if(oe())try{let e=j();e.name=o.value.name.trim();let n=T.value;T.value?await t.updateProvider(T.value,e):(e.api_key=o.value.api_key,n=(await t.createProvider(e)).id),await M(n),C.value=!1,await Be()}catch(e){console.error(`Failed to save provider:`,e),F.error(y(e,a(`providers.toast.saveFailed`)))}}return ee(async()=>{try{let e=await t.getProvidersInit();q.value=e.providers,N.value=e.recommended}catch(e){console.error(`Providers.init:`,e),F.error(y(e,a(`providers.toast.loadFailed`)))}}),(t,i)=>(D(),S(`div`,Mn,[e(`div`,Nn,[e(`div`,Pn,[e(`h2`,Fn,c(w(a)(`providers.title`)),1),e(`div`,In,[h(w(x),{variant:`outline`,size:`sm`,onClick:w(Ge),disabled:w(J)},{default:b(()=>[h(w(Me),{class:p([`w-4 h-4 mr-1`,{"animate-spin":w(J)}])},null,8,[`class`]),v(` `+c(w(a)(`providers.reloadPlugin`)),1)]),_:1},8,[`onClick`,`disabled`])])]),w(q).length>0?(D(),S(`div`,Ln,[e(`div`,Rn,[e(`span`,zn,c(w(a)(`providers.anchor.total`)),1),e(`span`,Bn,c(w(q).length),1)]),e(`div`,{class:p([`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0 cursor-pointer transition-colors hover:bg-foreground/[0.02]`,{"bg-primary/5 shadow-[inset_0_2px_0_var(--primary)]":Z.value===`enabled`}]),onClick:i[0]||=e=>Ze(`enabled`)},[e(`span`,Vn,c(w(a)(`providers.anchor.enabled`)),1),e(`span`,Hn,c($e.value),1)],2),e(`div`,{class:p([`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0 cursor-pointer transition-colors hover:bg-foreground/[0.02]`,{"bg-muted":Z.value===`disabled`}]),onClick:i[1]||=e=>Ze(`disabled`)},[e(`span`,Un,c(w(a)(`providers.anchor.disabled`)),1),e(`span`,Wn,c(et.value),1)],2),e(`div`,Gn,[e(`span`,Kn,c(w(a)(`providers.anchor.models`)),1),e(`span`,qn,c(tt.value),1)])])):E(``,!0)]),e(`div`,Jn,[e(`div`,Yn,[h(w(re),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground`}),h(w(H),{modelValue:Xe.value,"onUpdate:modelValue":i[2]||=e=>Xe.value=e,placeholder:w(a)(`providers.filter.searchPlaceholder`),class:`pl-8 h-8 text-[13px]`},null,8,[`modelValue`,`placeholder`])]),h(w(B),{modelValue:X.value,"onUpdate:modelValue":[i[3]||=e=>X.value=e,Qe]},{default:b(()=>[h(w(L),{class:`w-28 h-8 text-[13px]`},{default:b(()=>[h(w(R),{placeholder:w(a)(`providers.filter.status`)},null,8,[`placeholder`])]),_:1}),h(w(P),null,{default:b(()=>[h(w(I),{value:`all`},{default:b(()=>[v(c(w(a)(`providers.filter.all`)),1)]),_:1}),h(w(I),{value:`enabled`},{default:b(()=>[v(c(w(a)(`providers.filter.enabled`)),1)]),_:1}),h(w(I),{value:`disabled`},{default:b(()=>[v(c(w(a)(`providers.filter.disabled`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`]),e(`span`,Xn,c(Q.value.length)+` `+c(w(a)(`providers.filter.count`)),1),i[14]||=e(`div`,{class:`flex-1`},null,-1),h(w(x),{onClick:w(se),class:`flex items-center gap-1.5 h-8`},{default:b(()=>[i[13]||=e(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[e(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),v(` `+c(w(a)(`providers.addProvider`)),1)]),_:1},8,[`onClick`])]),w(q).length>0?(D(),_(w(we),{key:0,flush:``,class:`border-input`},{default:b(()=>[h(w(Ee),{class:`[&_td]:px-4 [&_th]:px-4`},{default:b(()=>[h(w(Oe),null,{default:b(()=>[h(w(De),{class:`bg-muted/50 border-b border-input hover:bg-muted/50`},{default:b(()=>[h(w(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[v(c(w(a)(`providers.tableHeaders.name`)),1)]),_:1}),h(w(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[v(c(w(a)(`providers.tableHeaders.apiKey`)),1)]),_:1}),h(w(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[v(c(w(a)(`providers.tableHeaders.models`)),1)]),_:1}),h(w(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[v(c(w(a)(`providers.tableHeaders.concurrency`)),1)]),_:1}),h(w(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[v(c(w(a)(`providers.tableHeaders.status`)),1)]),_:1}),h(w(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:b(()=>[v(c(w(a)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),h(w(Te),null,{default:b(()=>[(D(!0),S(d,null,g(Q.value,t=>(D(),_(w(De),{key:t.id,class:p([`border-b border-input`,{"opacity-55 hover:opacity-75":!t.is_active}])},{default:b(()=>[h(w(U),null,{default:b(()=>[e(`div`,Zn,[h(Gt,{name:rt(t.name),size:20},null,8,[`name`]),e(`div`,Qn,[e(`div`,$n,[e(`span`,er,c(t.name),1),(D(!0),S(d,null,g($(t),e=>(D(),_(w(V),{key:e.api_type,variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:b(()=>[v(c(w(on)[e.api_type]??e.api_type),1)]),_:2},1024))),128)),t.proxy_type?(D(),_(w(Ne),{key:0,class:`w-3 h-3 text-muted-foreground`,title:`Proxy: ${t.proxy_type.toUpperCase()}`},null,8,[`title`])):E(``,!0)]),e(`div`,null,[(D(!0),S(d,null,g($(t),(t,n)=>(D(),S(d,{key:t.api_type},[n>0?(D(),S(`div`,tr)):E(``,!0),e(`span`,nr,c(st(t)),1)],64))),128))])])])]),_:2},1024),h(w(U),null,{default:b(()=>[e(`div`,rr,[(D(!0),S(d,null,g($(t),(r,i)=>(D(),S(d,{key:r.api_type},[i>0?(D(),S(`div`,ir)):E(``,!0),e(`div`,ar,[r.api_key?(D(),S(`span`,or,c(w(Re)(r.api_key)),1)):(D(),S(`span`,sr,`shared`)),h(w(x),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:e=>w(ze)(r.api_key||t.api_key,`${t.id}-${r.api_type}`)},{default:b(()=>[(D(),_(n(w(Fe)===`${t.id}-${r.api_type}`?w(Ce):w(k)),{class:p([`w-3 h-3`,{"text-success":w(Fe)===`${t.id}-${r.api_type}`}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])],64))),128))])]),_:2},1024),h(w(U),null,{default:b(()=>[e(`div`,cr,[e(`span`,lr,c(t.models?.length??0),1),i[15]||=e(`span`,{class:`text-xs text-muted-foreground`},`models`,-1),it(t)?(D(),_(w(V),{key:0,variant:`outline`,class:`text-[10px] px-1 py-0 gap-0.5 text-primary/70 border-primary/20 h-4`},{default:b(()=>[h(w(ne),{class:`w-2.5 h-2.5`})]),_:1})):E(``,!0)])]),_:2},1024),h(w(U),null,{default:b(()=>[e(`div`,ur,[t.adaptive_enabled?(D(),_(w(V),{key:0,variant:`outline`,class:`text-[11px] h-5`},{default:b(()=>[v(c(w(a)(`common.adaptive`)),1)]),_:1})):t.max_concurrency>0?(D(),_(w(V),{key:1,variant:`secondary`,class:`text-[11px] h-5 font-mono`},{default:b(()=>[v(c(t.max_concurrency),1)]),_:2},1024)):(D(),S(`span`,dr,`-`))])]),_:2},1024),h(w(U),null,{default:b(()=>[e(`div`,fr,[h(w(me),{"model-value":!!t.is_active,"onUpdate:modelValue":e=>w(He)(t)},null,8,[`model-value`,`onUpdate:modelValue`]),e(`span`,{class:p([`text-xs`,t.is_active?`text-foreground`:`text-muted-foreground`])},c(t.is_active?w(a)(`common.enabled`):w(a)(`common.disabled`)),3)])]),_:2},1024),h(w(U),null,{default:b(()=>[e(`div`,pr,[h(w(x),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-primary`,onClick:e=>w(ce)(t)},{default:b(()=>[v(c(w(a)(`common.edit`)),1)]),_:1},8,[`onClick`]),h(w(x),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-destructive`,onClick:e=>w(Ve)(t)},{default:b(()=>[v(c(w(a)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1})):E(``,!0),w(q).length===0&&!w(J)?(D(),S(`div`,mr,[i[17]||=e(`div`,{class:`w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4`},[e(`svg`,{class:`w-6 h-6 text-primary`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[e(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),e(`path`,{d:`M12 8v8M8 12h8`})])],-1),e(`h3`,hr,c(w(a)(`providers.empty.title`)),1),e(`p`,gr,c(w(a)(`providers.empty.description`)),1),h(w(x),{onClick:w(se),class:`flex items-center gap-1.5`},{default:b(()=>[i[16]||=e(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[e(`path`,{d:`M12 4v16m8-8H4`})],-1),v(` `+c(w(a)(`providers.empty.addFirst`)),1)]),_:1},8,[`onClick`])])):E(``,!0),w(q).length>0&&Q.value.length===0?(D(),S(`div`,_r,[e(`p`,vr,c(w(a)(`providers.filter.noResults`)),1)])):E(``,!0),h(w(de),{open:w(C),"onUpdate:open":i[10]||=e=>r(C)?C.value=e:null},{default:b(()=>[h(w(le),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:b(()=>[h(w(ue),null,{default:b(()=>[h(w(pe),null,{default:b(()=>[v(c(w(T)?w(a)(`providers.editProvider`):w(a)(`providers.addProvider`)),1)]),_:1})]),_:1}),e(`form`,{onSubmit:f(ct,[`prevent`])},[w(T)?E(``,!0):(D(),S(`div`,yr,[e(`div`,br,c(w(a)(`providers.template.title`)),1),e(`div`,xr,[h(w(B),{modelValue:w(z),"onUpdate:modelValue":[i[4]||=e=>r(z)?z.value=e:null,w(Ae)]},{default:b(()=>[h(w(L),{class:`flex-1 h-8 text-[13px]`},{default:b(()=>[h(w(R),{placeholder:w(a)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),h(w(P),null,{default:b(()=>[h(w(I),{value:`__custom__`},{default:b(()=>[v(c(w(a)(`providers.template.custom`)),1)]),_:1}),(D(!0),S(d,null,g(w(N),e=>(D(),_(w(I),{key:e.group,value:e.group},{default:b(()=>[v(c(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),w(z)===`__custom__`?E(``,!0):(D(),_(w(B),{key:0,modelValue:w(G),"onUpdate:modelValue":[i[5]||=e=>r(G)?G.value=e:null,w(K)],disabled:!w(z)||w(z)===`__custom__`},{default:b(()=>[h(w(L),{class:`flex-1 h-8 text-[13px]`},{default:b(()=>[h(w(R),{placeholder:w(a)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),h(w(P),null,{default:b(()=>[(D(!0),S(d,null,g(w(ke),e=>(D(),_(w(I),{key:e.plan,value:e.plan},{default:b(()=>[v(c(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`disabled`]))])])),w(z)||w(T)?(D(),_(En,{key:1,modelValue:Ye.value,"onUpdate:modelValue":i[6]||=e=>Ye.value=e,"editing-id":w(T),errors:w(l),"fetching-models":w(Ke),"has-models-endpoint":!!w(je)(),"preset-group":w(z),"has-api-key":!!w(o).api_key,endpoints:w(o).endpoints,"shared-key":w(o).api_key,onClearErrors:i[7]||=e=>delete w(l)[e],onFetchUpstreamModels:w(qe),"onUpdate:endpoints":i[8]||=e=>w(o).endpoints=e},null,8,[`modelValue`,`editing-id`,`errors`,`fetching-models`,`has-models-endpoint`,`preset-group`,`has-api-key`,`endpoints`,`shared-key`,`onFetchUpstreamModels`])):E(``,!0),h(w(fe),null,{default:b(()=>[h(w(x),{type:`button`,variant:`outline`,onClick:i[9]||=e=>C.value=!1},{default:b(()=>[v(c(w(a)(`common.cancel`)),1)]),_:1}),h(w(x),{type:`submit`},{default:b(()=>[v(c(w(a)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),h(w(be),{open:!!w(Ie),"onUpdate:open":i[11]||=e=>{e||(Ie.value=null)}},{default:b(()=>[h(w(Se),null,{default:b(()=>[h(w(xe),null,{default:b(()=>[h(w(ye),null,{default:b(()=>[v(c(w(a)(`providers.confirmDelete.title`)),1)]),_:1}),h(w(ve),null,{default:b(()=>[v(c(w(a)(`providers.confirmDelete.message`,{name:w(Ie)?.name})),1)]),_:1})]),_:1}),h(w(he),null,{default:b(()=>[h(w(ge),null,{default:b(()=>[v(c(w(a)(`common.cancel`)),1)]),_:1}),h(w(x),{variant:`destructive`,onClick:w(We)},{default:b(()=>[v(c(w(a)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),h(w(be),{open:!!w(Y),"onUpdate:open":i[12]||=e=>{e||(Y.value=null)}},{default:b(()=>[h(w(Se),null,{default:b(()=>[h(w(xe),null,{default:b(()=>[h(w(ye),null,{default:b(()=>[v(c(w(Y)?.is_active?w(a)(`providers.confirmToggle.titleDisable`):w(a)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),h(w(ve),null,{default:b(()=>[v(c(w(Y)?.is_active?w(a)(`providers.confirmToggle.messageDisable`,{name:w(Y)?.name}):w(a)(`providers.confirmToggle.messageEnable`,{name:w(Y)?.name}))+` `,1),w(Le).length?(D(),S(`div`,Sr,[e(`div`,Cr,c(w(a)(`providers.confirmToggle.dependencyWarning`)),1),(D(!0),S(d,null,g(w(Le),e=>(D(),S(`div`,{key:e,class:`text-destructive text-sm`},c(e),1))),128))])):E(``,!0)]),_:1})]),_:1}),h(w(he),null,{default:b(()=>[h(w(ge),null,{default:b(()=>[v(c(w(a)(`common.cancel`)),1)]),_:1}),h(w(_e),{onClick:w(Ue)},{default:b(()=>[v(c(w(a)(`common.confirm`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{wr as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Q as n,Qt as r,R as i,U as a,X as o,Yt as ee,at as s,bt as te,et as c,gt as l,it as u,j as d,jt as f,n as p,nt as m,ot as h,qt as g,tt as _,vt as v,zt as y}from"./button-BuzJlj9X.js";import{t as ne}from"./chevron-right-LdKvgE7W.js";import{t as re}from"./plus-fHe1ysx9.js";import{t as ie}from"./trash-2-DhD7GboJ.js";import{n as ae,t as oe}from"./CollapsibleContent-4ZwwyZPz.js";import{t as se}from"./CollapsibleTrigger-Cg651F6-.js";import{t as b}from"./Switch-BDu-VJJd.js";import{a as x,et as ce,nt as le,ot as ue,pt as S,st as C}from"./index-BjnFvPid.js";import{t as w}from"./Skeleton-DcA4Afm_.js";import{t as T}from"./badge-DhXKxnV5.js";import{t as E}from"./Input-CLu4bS6g.js";import{t as D}from"./Card-L1MI4nan.js";import{t as O}from"./CardContent-DUzyQmbU.js";import{t as de}from"./CascadingModelSelect-C_Ydm0fg.js";import{t as fe}from"./useProviderGroups-DMuF_-28.js";var k=i(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),A={class:`flex items-center justify-between py-4 first:pt-0 last:pb-0`},j={class:`flex-1 mr-4`},M={class:`text-sm font-medium`},N={class:`text-xs text-muted-foreground mt-0.5`},P=h({__name:`ToggleRow`,props:{title:{},description:{},modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(t){return(n,i)=>(v(),m(`div`,A,[e(`div`,j,[e(`div`,M,r(t.title),1),e(`div`,N,r(t.description),1)]),s(g(b),{"model-value":t.modelValue,"onUpdate:modelValue":i[0]||=e=>n.$emit(`update:modelValue`,e)},null,8,[`model-value`])]))}}),F={class:`page pb-16 max-w-[1000px]`},I={class:`mb-6`},L={class:`text-base font-semibold text-foreground`},R={class:`text-sm text-muted-foreground mt-1`},z={key:0,class:`space-y-4`},B={class:`space-y-2`},V={class:`space-y-2`},pe={class:`space-y-2`},me={key:2,class:`space-y-6`},he={class:`text-sm font-medium text-muted-foreground mb-3`},ge={class:`text-sm font-medium text-muted-foreground mb-3`},_e={class:`text-sm font-medium text-muted-foreground mb-3`},ve={class:`w-40 shrink-0`},ye={class:`pt-3`},be={class:`text-sm font-medium text-muted-foreground mb-3`},xe={class:`space-y-4`},Se={class:`flex items-center justify-between py-1`},Ce={class:`flex-1 mr-4`},we={class:`text-sm font-medium`},H={class:`text-xs text-muted-foreground mt-0.5`},Te={class:`mt-2`},Ee={class:`mt-2 space-y-1 text-xs text-muted-foreground pl-4`},De={class:`whitespace-pre-line`},Oe={class:`whitespace-pre-line`},ke={class:`text-sm font-medium`},Ae={class:`text-xs text-muted-foreground mt-0.5`},je={class:`text-sm font-medium text-muted-foreground mb-3`},Me={class:`space-y-4`},Ne={class:`flex items-start gap-3 mb-3`},Pe={class:`text-sm font-medium`},Fe={class:`text-xs text-muted-foreground mt-0.5`},Ie={class:`text-sm font-medium`},Le={class:`text-xs text-muted-foreground mt-0.5`},Re={key:3,class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},ze={key:0,class:`text-sm text-warning`},Be={key:1},Ve={class:`flex gap-3`},U=h({__name:`ProxyEnhancement`,setup(i){let{t:h}=a(),A=y(!0),j=y(``),M=y(!1),N=y(!1),U=y(!1),W=y(!1),G=y(!1),K=y(!1),q=y(!1),J=y([]),Y=y(void 0),X=y([]),Z=null;function Q(){return{toolRoundLimit:N.value,toolCallLoop:U.value,streamLoop:W.value,toolErrorLogging:G.value,tokenEstimation:K.value,aiRetryConfig:Y.value?{...Y.value}:void 0,headers:J.value.map(e=>({client_type:e.client_type,session_header_key:e.session_header_key,persisted:e.persisted}))}}function He(e,t){return e.toolRoundLimit!==t.toolRoundLimit||e.toolCallLoop!==t.toolCallLoop||e.streamLoop!==t.streamLoop||e.toolErrorLogging!==t.toolErrorLogging||e.tokenEstimation!==t.tokenEstimation||(e.aiRetryConfig||t.aiRetryConfig)&&(!e.aiRetryConfig||!t.aiRetryConfig||e.aiRetryConfig.provider_id!==t.aiRetryConfig.provider_id||e.aiRetryConfig.model!==t.aiRetryConfig.model)||e.headers.length!==t.headers.length?!1:e.headers.every((e,n)=>e.client_type===t.headers[n].client_type&&e.session_header_key===t.headers[n].session_header_key)}let $=n(()=>Z?!He(Z,Q()):!1);async function Ue(){try{let e=await t.getProxyEnhancementInit(),n=e.config;N.value=n.tool_round_limit_enabled,U.value=n.tool_call_loop_enabled,W.value=n.stream_loop_enabled,G.value=n.tool_error_logging_enabled,Y.value=n.ai_retry_config??void 0,X.value=fe(e.providers,{activeOnly:!0,defaultContextWindow:128e3});let[r,i]=await Promise.allSettled([le(),ce()]);r.status===`fulfilled`&&(K.value=r.value.enabled),i.status===`fulfilled`&&(J.value=i.value.entries.map(e=>({...e,persisted:!0}))),Z=Q()}catch(e){console.error(`proxyEnhancement.loadInit:`,e),j.value=d(e,h(`proxyEnhancement.loadFailed`))}finally{A.value=!1}}function We(e){Y.value=e}function Ge(){J.value.push({client_type:``,session_header_key:``,persisted:!1})}function Ke(e){J.value.splice(e,1)}function qe(){Z&&(N.value=Z.toolRoundLimit,U.value=Z.toolCallLoop,W.value=Z.streamLoop,G.value=Z.toolErrorLogging,K.value=Z.tokenEstimation,Y.value=Z.aiRetryConfig?{...Z.aiRetryConfig}:void 0,J.value=Z.headers.map(e=>({...e})))}async function Je(){M.value=!0;try{let e=J.value.filter(e=>e.client_type.trim()&&e.session_header_key.trim()).map(e=>({client_type:e.client_type.trim(),session_header_key:e.session_header_key.trim()})),n=(await Promise.allSettled([t.updateProxyEnhancement({tool_call_loop_enabled:U.value,stream_loop_enabled:W.value,tool_round_limit_enabled:N.value,tool_error_logging_enabled:G.value,ai_retry_config:Y.value??null}),C(K.value),ue(e)])).filter(e=>e.status===`rejected`);if(n.length>0){let e=n.map(e=>e.status===`rejected`?e.reason instanceof Error?e.reason.message:typeof e.reason==`string`?e.reason:JSON.stringify(e.reason):``).filter(Boolean).join(`; `);x.error(h(`proxyEnhancement.saveFailed`)+`: `+e);return}for(let e of J.value)e.client_type.trim()&&e.session_header_key.trim()&&(e.persisted=!0);x.success(h(`common.saveSuccess`)),Z=Q()}catch(e){console.error(`proxyEnhancement.handleSave:`,e),x.error(d(e,h(`proxyEnhancement.saveFailed`)))}finally{M.value=!1}}return l(Ue),(t,n)=>(v(),m(`div`,F,[e(`div`,I,[e(`h2`,L,r(g(h)(`proxyEnhancement.title`)),1),e(`p`,R,r(g(h)(`proxyEnhancement.subtitle`)),1)]),A.value?(v(),m(`div`,z,[e(`div`,B,[s(g(w),{class:`h-4 w-24`}),s(g(w),{class:`h-28 w-full rounded-lg`})]),s(g(w),{class:`h-20 w-full rounded-lg`}),e(`div`,V,[s(g(w),{class:`h-4 w-20`}),s(g(w),{class:`h-28 w-full rounded-lg`})]),e(`div`,pe,[s(g(w),{class:`h-4 w-20`}),s(g(w),{class:`h-36 w-full rounded-lg`})])])):j.value?(v(),c(g(D),{key:1},{default:f(()=>[s(g(O),{class:`py-8 text-center text-sm text-muted-foreground`},{default:f(()=>[u(r(j.value),1)]),_:1})]),_:1})):(v(),m(`div`,me,[e(`section`,null,[e(`h3`,he,r(g(h)(`proxyEnhancement.sections.loopDetection`)),1),s(g(D),null,{default:f(()=>[s(g(O),{class:`divide-y divide-border`},{default:f(()=>[s(P,{title:g(h)(`proxyEnhancement.loopDetection.toolRoundLimit.title`),description:g(h)(`proxyEnhancement.loopDetection.toolRoundLimit.description`),modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e},null,8,[`title`,`description`,`modelValue`]),s(P,{title:g(h)(`proxyEnhancement.loopDetection.toolCallLoop.title`),description:g(h)(`proxyEnhancement.loopDetection.toolCallLoop.description`),modelValue:U.value,"onUpdate:modelValue":n[1]||=e=>U.value=e},null,8,[`title`,`description`,`modelValue`]),s(P,{title:g(h)(`proxyEnhancement.loopDetection.streamLoop.title`),description:g(h)(`proxyEnhancement.loopDetection.streamLoop.description`),modelValue:W.value,"onUpdate:modelValue":n[2]||=e=>W.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,ge,r(g(h)(`proxyEnhancement.sections.errorHandling`)),1),s(g(D),null,{default:f(()=>[s(g(O),null,{default:f(()=>[s(P,{title:g(h)(`proxyEnhancement.toolErrorLogging.title`),description:g(h)(`proxyEnhancement.toolErrorLogging.description`),modelValue:G.value,"onUpdate:modelValue":n[3]||=e=>G.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,_e,r(g(h)(`proxyEnhancement.sections.clientIdentification`)),1),s(g(D),null,{default:f(()=>[s(g(O),{class:`divide-y divide-border`},{default:f(()=>[(v(!0),m(o,null,te(J.value,(t,n)=>(v(),m(`div`,{key:n,class:`flex items-center gap-3 py-3 first:pt-0 last:pb-0`},[e(`div`,ve,[t.persisted?(v(),c(g(E),{key:0,"model-value":t.client_type,disabled:``,class:`h-8 text-xs font-mono`},null,8,[`model-value`])):(v(),c(g(E),{key:1,modelValue:t.client_type,"onUpdate:modelValue":e=>t.client_type=e,placeholder:g(h)(`proxyEnhancement.clientIdentification.placeholder.type`),class:`h-8 text-xs`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),s(g(E),{modelValue:t.session_header_key,"onUpdate:modelValue":e=>t.session_header_key=e,placeholder:g(h)(`proxyEnhancement.clientIdentification.placeholder.header`),class:`h-8 text-xs flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),s(g(p),{variant:`ghost`,size:`icon`,class:`h-8 w-8 shrink-0`,disabled:J.value.length<=1,onClick:e=>Ke(n)},{default:f(()=>[s(g(ie),{class:`w-4 h-4`})]),_:1},8,[`disabled`,`onClick`])]))),128)),e(`div`,ye,[s(g(p),{variant:`outline`,class:`w-full h-8 border-dashed border-muted-foreground/30 hover:border-primary/50 hover:bg-primary/5 text-xs`,onClick:Ge},{default:f(()=>[s(g(re),{class:`w-3.5 h-3.5 mr-1.5`}),u(` `+r(g(h)(`proxyEnhancement.clientIdentification.addEntry`)),1)]),_:1})])]),_:1})]),_:1})]),e(`section`,null,[e(`h3`,be,r(g(h)(`proxyEnhancement.sections.tokenManagement`)),1),e(`div`,xe,[s(g(D),null,{default:f(()=>[s(g(O),null,{default:f(()=>[e(`div`,Se,[e(`div`,Ce,[e(`div`,we,r(g(h)(`proxyEnhancement.tokenEstimation.title`)),1),e(`div`,H,r(g(h)(`proxyEnhancement.tokenEstimation.shortDescription`)),1)]),s(g(b),{modelValue:K.value,"onUpdate:modelValue":n[4]||=e=>K.value=e},null,8,[`modelValue`])]),e(`div`,Te,[s(g(ae),{open:q.value,"onUpdate:open":n[5]||=e=>q.value=e},{default:f(()=>[s(g(se),{class:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors`},{default:f(()=>[s(g(ne),{class:ee([`w-3 h-3 transition-transform`,q.value?`rotate-90`:``])},null,8,[`class`]),u(` `+r(g(h)(`proxyEnhancement.tokenEstimation.setupTitle`)),1)]),_:1}),s(g(oe),null,{default:f(()=>[e(`div`,Ee,[e(`p`,null,r(g(h)(`proxyEnhancement.tokenEstimation.claudeCode`)),1),e(`p`,De,r(g(h)(`proxyEnhancement.tokenEstimation.piExtension`)),1),e(`p`,Oe,r(g(h)(`proxyEnhancement.tokenEstimation.piModelsJson`)),1)])]),_:1})]),_:1},8,[`open`])])]),_:1})]),_:1}),s(g(D),null,{default:f(()=>[s(g(O),{class:`flex items-start gap-3 py-4`},{default:f(()=>[s(g(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:f(()=>[u(r(g(h)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),e(`div`,null,[e(`div`,ke,r(g(h)(`proxyEnhancement.contextOverflow.title`)),1),e(`div`,Ae,r(g(h)(`proxyEnhancement.contextOverflow.description`)),1)])]),_:1})]),_:1})])]),e(`section`,null,[e(`h3`,je,r(g(h)(`proxyEnhancement.sections.aiFeatures`)),1),e(`div`,Me,[s(g(D),null,{default:f(()=>[s(g(O),{class:`py-4`},{default:f(()=>[e(`div`,Ne,[s(g(k),{class:`w-4 h-4 mt-0.5 shrink-0 text-muted-foreground`}),e(`div`,null,[e(`div`,Pe,r(g(h)(`proxyEnhancement.aiRetryRuleGen`)),1),e(`div`,Fe,r(g(h)(`proxyEnhancement.aiRetryRuleGenDesc`)),1)])]),s(de,{providers:X.value,"model-value":Y.value,"onUpdate:modelValue":We},null,8,[`providers`,`model-value`])]),_:1})]),_:1}),s(g(D),null,{default:f(()=>[s(g(O),{class:`flex items-start gap-3 py-4`},{default:f(()=>[s(g(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:f(()=>[u(r(g(h)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),e(`div`,null,[e(`div`,Ie,r(g(h)(`proxyEnhancement.sessionState.title`)),1),e(`div`,Le,r(g(h)(`proxyEnhancement.sessionState.description`)),1)])]),_:1})]),_:1})])])])),!A.value&&!j.value?(v(),m(`div`,Re,[$.value?(v(),m(`span`,ze,r(g(h)(`proxyEnhancement.unsavedChanges`)),1)):(v(),m(`span`,Be)),e(`div`,Ve,[$.value?(v(),c(g(p),{key:0,variant:`outline`,onClick:qe},{default:f(()=>[u(r(g(h)(`common.cancel`)),1)]),_:1})):_(``,!0),s(g(p),{disabled:M.value||!$.value,onClick:Je},{default:f(()=>[M.value?(v(),c(g(S),{key:0,class:`w-4 h-4 animate-spin mr-1`})):_(``,!0),u(` `+r(M.value?g(h)(`common.saving`):g(h)(`common.save`)),1)]),_:1},8,[`disabled`])])])):_(``,!0)]))}});export{U as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Ft as n,J as r,L as i,N as a,Ot as o,P as s,Q as c,Qt as l,R as u,U as d,X as f,Y as p,Yt as m,at as h,bt as g,et as _,gt as v,it as y,j as b,jt as x,n as S,nt as C,ot as w,qt as T,tt as E,vt as D,zt as O}from"./button-BuzJlj9X.js";import{i as k,n as A,r as j,t as ee}from"./ConcurrencyControl-LFw4H_oP.js";import{t as M}from"./chevron-right-LdKvgE7W.js";import{t as N}from"./plus-fHe1ysx9.js";import{t as te}from"./sparkles-BGb3coPL.js";import{a as ne,i as re,n as P,o as F,r as ie,t as I}from"./model-patches-DQFF0Cuh.js";import{t as L}from"./Checkbox-OkYUPlFe.js";import{t as R}from"./Label-DVu1uVI7.js";import{_ as ae,a as z,g as B,gt as oe,h as se,m as ce,mt as le,v as ue,vt as de}from"./index-BjnFvPid.js";import{t as V}from"./badge-DhXKxnV5.js";import{t as fe}from"./Input-CLu4bS6g.js";import{t as H}from"./Card-L1MI4nan.js";import{t as U}from"./CardContent-DUzyQmbU.js";import{n as W,t as G}from"./CardTitle-oL3GJ7xA.js";import{t as K}from"./CascadingModelSelect-C_Ydm0fg.js";import{i as pe,n as me,o as he,r as q,t as ge}from"./transform-domain-pYyIPtkg.js";var _e=u(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),ve={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,OpenCode:`opencode`,阶跃星辰:`stepfun`};function J(e){return ve[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function ye(e,t){let{injectHeaders:n,dropFields:r,requestDefaults:i}=e;if(!n.trim()&&!r.trim()&&!i.trim())return;let{rule:a,errorKey:o}=ge({injectHeaders:n,dropFields:r,requestDefaults:i});if(o)return t(o),!1;if(a)return JSON.parse(a)}async function be(e,t){let n=[];for(let r of t)if(r.existing&&r.existingId&&r.originalActive!==void 0&&r.active!==r.originalActive)try{await e.toggleMappingGroup(r.existingId)}catch(e){console.error(`quick-setup-helpers.toggleChangedMappings:`,e),n.push(r.clientModel)}return n}function xe(e,t,n){return e.filter(e=>t.has(e.name)&&!e.exists).map(e=>{let t=n.get(e.name)??`general`;return{name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms,provider_shortname:t===`general`?null:t}})}function Se(e){return{name:e.isCustom?`custom-${Date.now()}`:`${J(e.selectedGroup)}-${J(e.selectedPlan)}`,api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||void 0,api_key:e.apiKey,models:e.models.map(e=>({name:e.name,context_window:e.contextWindow,patches:e.patches.length>0?e.patches:void 0,stream_timeout_ms:e.stream_timeout_ms??void 0,capabilities:e.capabilities&&e.capabilities.length>0?e.capabilities:void 0})),concurrency_mode:e.concurrency.mode,max_concurrency:e.concurrency.mode===`none`?void 0:e.concurrency.max_concurrency,queue_timeout_ms:e.concurrency.mode===`none`?void 0:e.concurrency.queue_timeout_ms,max_queue_size:e.concurrency.mode===`none`?void 0:e.concurrency.max_queue_size,...e.endpoints&&e.endpoints.length>0?{endpoints:e.endpoints}:{}}}function Ce(e,t,n){let r;return r=e===`pi`?t.map(e=>e.name):ne[e]??t.map(e=>e.name),r.map(i=>{let a=n.find(e=>e.client_model===i);if(a){let e={};try{e=JSON.parse(a.rule)}catch{e={}}let n=e.targets??[];return{clientModel:i,targets:n.length>0?n.map(e=>({backend_model:e.backend_model,provider_id:e.provider_id,overflow_provider_id:e.overflow_provider_id,overflow_model:e.overflow_model})):[{backend_model:t[0]?.name??``,provider_id:`__new__`}],existing:!0,existingId:a.id,tag:`existing`,active:!!a.is_active,originalActive:!!a.is_active}}return{clientModel:i,targets:[{backend_model:t[r.indexOf(i)]?.name??t[t.length-1]?.name??``,provider_id:`__new__`}],existing:!1,tag:e===`pi`?`auto`:`def`,active:!0}})}function Y(e,t){return e===`openai-responses`&&(t===`openai`||t===`openai-responses`)?`openai-responses`:t}function we(e){return{provider:Se({isCustom:e.isCustomProvider,selectedGroup:e.selectedGroup,selectedPlan:e.selectedPlan,apiType:e.apiType,baseUrl:e.baseUrl,upstreamPath:e.upstreamPath,apiKey:e.apiKey,models:e.models,concurrency:e.concurrency,endpoints:e.endpoints}),mappings:e.mappingEntries.filter(e=>e.targets[0]?.backend_model).map(e=>{if(e.targets.length>1||e.targets[0]?.overflow_model||e.multimodalFallback?.backend_model){let t={targets:e.targets.map(e=>{let t={backend_model:e.backend_model,provider_id:e.provider_id};return e.overflow_provider_id&&(t.overflow_provider_id=e.overflow_provider_id),e.overflow_model&&(t.overflow_model=e.overflow_model),t})};return e.multimodalFallback?.backend_model&&(t.multimodal_fallback={provider_id:e.multimodalFallback.provider_id,backend_model:e.multimodalFallback.backend_model}),{client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``,rule:JSON.stringify(t)}}return{client_model:e.clientModel,backend_model:e.targets[0]?.backend_model??``}}),retry_rules:xe(e.recommendedRules,e.selectedRetryRules,e.retryProviderMap),transform_rules:e.transformRules}}function Te(e,t){let n=new Map;for(let r of e){if(r.exists)continue;let e=r.providers??[];e.length>0&&t&&e.includes(t)?n.set(r.name,t):n.set(r.name,`general`)}return n}function Ee(e,t,n){t.value=e.models.map(t=>({name:t,contextWindow:F(t),enabled:!0,patches:I(t,e.apiType,n.value),stream_timeout_ms:s,capabilities:e.modelCapabilities?.[t]}))}function De(e,t){let n=t.find(t=>t.group===e.defaultProvider);if(!n||n.presets.length===0)return null;let r=e.format===`openai-responses`?[`openai-responses`,`openai`]:[e.format],i=n.presets.find(t=>r.includes(t.apiType)&&t.plan===e.defaultPlan)??n.presets.find(e=>r.includes(e.apiType))??n.presets[0];return{group:n.group,plan:i.plan,apiType:Y(e.format,i.apiType),preset:i}}function Oe(e,t){if(t.selectedGroup.value=e,t.selectedPlan.value=``,t.modelConfigs.value=[],t.endpoints.value=[],e===`__custom__`)t.apiType.value=`openai`,t.customBaseUrl.value=``,t.customUpstreamPath.value=``,t.endpoints.value=[{api_type:`openai`,base_url:``,upstream_path:null,api_key:null}];else{let n=t.providerGroups.value.find(t=>t.group===e);if(n&&n.presets.length>0){let e=t.currentClient.value,r=e?.format===`openai-responses`?[`openai-responses`,`openai`]:e?[e.format]:[],i=(e?n.presets.find(e=>r.includes(e.apiType)):null)??n.presets[0];t.selectedPlan.value=i.plan,t.apiType.value=Y(e?.format,i.apiType),Ee(i,t.modelConfigs,t.isNonOpenaiEndpoint),X(t.endpoints,i)}}t.updateMappings(),t.syncRetryRules()}function ke(e,t,n,r,i,a,o,s,c){let l=o.value.find(e=>e.group===t.value);if(!l)return;let u=l.presets.find(t=>t.plan===e);u&&(n.value=Y(r.value?.format,u.apiType),Ee(u,i,a),X(s,u),c())}function X(e,t){if(t.endpoints&&t.endpoints.length>0){e.value=t.endpoints.map(e=>({api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||null,api_key:null}));return}e.value=[{api_type:t.apiType,base_url:t.baseUrl,upstream_path:t.upstreamPath||null,api_key:null}]}var Ae=1500;function je(e){let n=()=>{e.data.mappingEntries.value=Ce(e.selection.clientType.value,e.data.modelConfigs.value.filter(e=>e.enabled),e.data.existingMappings.value)},r=t=>{let{selection:r,data:i}=e;r.clientType.value=t;let a=r.currentClient.value;if(a){let e=De({defaultProvider:a.defaultProvider,defaultPlan:a.defaultPlan,format:a.format},r.providerGroups.value);e&&(r.selectedGroup.value=e.group,r.selectedPlan.value=e.plan,r.apiType.value=e.apiType,Ee(e.preset,i.modelConfigs,i.isNonOpenaiEndpoint),X(i.endpoints,e.preset))}n(),Me(e)},o={selectedGroup:e.selection.selectedGroup,selectedPlan:e.selection.selectedPlan,apiType:e.selection.apiType,modelConfigs:e.data.modelConfigs,customBaseUrl:e.selection.customBaseUrl,customUpstreamPath:e.selection.customUpstreamPath,providerGroups:e.selection.providerGroups,currentClient:e.selection.currentClient,isNonOpenaiEndpoint:e.data.isNonOpenaiEndpoint,endpoints:e.data.endpoints,updateMappings:n,syncRetryRules:()=>Me(e)};return{updateMappings:n,selectClient:r,onProviderChange:e=>Oe(e,o),onPlanChange:t=>{let{selection:r,data:i}=e;r.selectedPlan.value=t,ke(t,r.selectedGroup,r.apiType,r.currentClient,i.modelConfigs,i.isNonOpenaiEndpoint,r.providerGroups,i.endpoints,n)},toggleRetryRule:(t,n)=>{let r=new Set(e.data.selectedRetryRules.value);n?r.add(t):r.delete(t),e.data.selectedRetryRules.value=r},setAllRetryRules:(t,n)=>{let r=new Set(e.data.selectedRetryRules.value);for(let e of t)n?r.add(e):r.delete(e);e.data.selectedRetryRules.value=r},updateMappingTargets:(t,n)=>{e.data.mappingEntries.value=e.data.mappingEntries.value.map((e,r)=>r===t?{...e,targets:n}:e)},updateMappingClientModel:(t,n)=>{e.data.mappingEntries.value=e.data.mappingEntries.value.map((e,r)=>r===t?{...e,clientModel:n}:e)},updateMappingMultimodalFallback:(t,n)=>{e.data.mappingEntries.value=e.data.mappingEntries.value.map((e,r)=>r===t?{...e,multimodalFallback:n}:e)},toggleMappingActive:t=>{e.data.mappingEntries.value=e.data.mappingEntries.value.map((e,n)=>n===t?{...e,active:!e.active}:e)},addMappingEntry:(t,n,r)=>{e.data.mappingEntries.value=[...e.data.mappingEntries.value.filter(e=>e.clientModel!==t),{clientModel:t,targets:[{backend_model:n,provider_id:`__new__`}],...r?{multimodalFallback:r}:{},existing:!1,tag:`cust`,active:!0}]},removeMappingEntry:t=>{if(e.data.mappingEntries.value.find(e=>e.clientModel===t)?.existing){z.error(e.t(`quickSetup.messages.existingMappingDelete`));return}e.data.mappingEntries.value=e.data.mappingEntries.value.filter(e=>e.clientModel!==t)},onConcurrencyModeChange:t=>{e.submit.concurrencyConfig.value={...e.submit.concurrencyConfig.value,mode:t},t===`auto`?e.submit.concurrencyConfig.value.max_concurrency=q.max_concurrency:t===`manual`&&(e.submit.concurrencyConfig.value.max_concurrency=pe.max_concurrency)},testConnection:async()=>{if(!e.data.apiKey.value.trim()){e.submit.connectionStatus.value=`error`,z.error(e.t(`quickSetup.messages.fillApiKeyFirst`));return}let n=e.data.endpoints.value[0],r=e.data.modelConfigs.value.find(e=>e.enabled)?.name;if(!n&&!e.selection.currentPreset.value){z.error(e.t(`quickSetup.messages.selectProviderAndPlan`));return}e.submit.connectionStatus.value=`testing`;try{await t.testConnection({api_type:n?.api_type??e.selection.apiType.value,base_url:n?.base_url??e.data.baseUrl.value,upstream_path:n?.upstream_path??e.data.upstreamPath.value??null,api_key:e.data.apiKey.value.trim(),model:r}),e.submit.connectionStatus.value=`ok`,z.success(e.t(`quickSetup.messages.connectionOk`))}catch(t){e.submit.connectionStatus.value=`error`,console.error(`quickSetup.testConnection:`,t),z.error(b(t,e.t(`quickSetup.messages.connectionFailed`)))}},addCustomModel:(t,n=a)=>{e.data.modelConfigs.value.push({name:t,contextWindow:n,enabled:!0,patches:I(t,e.selection.apiType.value,e.data.isNonOpenaiEndpoint.value),stream_timeout_ms:s,capabilities:[`text`]})},updateModel:(t,n)=>{let r=[...e.data.modelConfigs.value];r[t]=n,e.data.modelConfigs.value=r},removeModel:t=>{e.data.modelConfigs.value=e.data.modelConfigs.value.filter((e,n)=>n!==t)},updateModelTimeout:(t,n)=>{let r=[...e.data.modelConfigs.value];r[t]={...r[t],stream_timeout_ms:n||void 0},e.data.modelConfigs.value=r},toggleModelCapability:(t,n)=>{let r=[...e.data.modelConfigs.value],i={...r[t]},a=i.capabilities??[`text`];a.includes(n)?i.capabilities=a.filter(e=>e!==n):i.capabilities=[...a,n],r[t]=i,e.data.modelConfigs.value=r},submit:async()=>{let{selection:n,data:r,submit:a}=e;if(!n.currentPreset.value){z.error(e.t(`quickSetup.messages.selectProviderAndPlan`));return}if(!r.apiKey.value.trim()){z.error(e.t(`quickSetup.messages.fillApiKey`));return}a.saving.value=!0;try{let o=ye(a.transformConfig.value,t=>z.error(e.t(`quickSetup.messages.${t}`)));if(o===!1)return;await t.quickSetup(we({isCustomProvider:n.isCustomProvider.value,selectedGroup:n.selectedGroup.value,retryProviderMap:r.retryProviderMap.value,selectedPlan:n.selectedPlan.value,apiType:n.apiType.value,baseUrl:r.baseUrl.value,upstreamPath:r.upstreamPath.value,apiKey:r.apiKey.value.trim(),models:r.modelConfigs.value.filter(e=>e.enabled),concurrency:a.concurrencyConfig.value,mappingEntries:r.mappingEntries.value,recommendedRules:r.recommendedRules.value,selectedRetryRules:r.selectedRetryRules.value,transformRules:o,endpoints:r.endpoints.value.length>0?r.endpoints.value.map(e=>({...e,api_key:e.api_key||r.apiKey.value.trim()||null})):void 0}));let s=await be(t,r.mappingEntries.value);z.success(s.length>0?e.t(`quickSetup.messages.setupCompleteWithErrors`,{count:s.length}):e.t(`quickSetup.messages.setupComplete`)),await new Promise(e=>setTimeout(e,Ae)),i.push(`/`)}catch(t){console.error(`quickSetup.save:`,t),z.error(b(t,e.t(`quickSetup.messages.setupFailed`)))}finally{a.saving.value=!1}}}}function Me(e){let{selection:t,data:n}=e;n.selectedRetryRules.value=new Set(n.recommendedRules.value.filter(e=>!e.exists).map(e=>e.name));let r=t.providerGroups.value.find(e=>e.group===t.selectedGroup.value)?.shortname;n.retryProviderMap.value=Te(n.recommendedRules.value,r)}function Ne(e,t,n,r,i,a){let o=c(()=>t.value?{provider:{id:e.value?`__new_custom__`:`__new_${J(t.value)}_${J(n.value)}__`,name:e.value?a(`quickSetup.provider.customProvider`):`${t.value} - ${n.value}`},models:r.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null);return{allProviderGroups:c(()=>{let e=i.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))}));return o.value&&o.value.models.length>0?[...e,o.value]:e})}}function Pe(){let{t:e}=d(),n=O(`claude-code`),r=O([]),i=O(``),a=O(``),s=O(`anthropic`),l=O(``),u=l,f=O([]),p=O([]),m=O([]),h=O([]),g=O(new Set),_=O(new Map),y=O(!1),x=O(`idle`),S=O({...q}),C=O({...he}),w=O([]),T=O([]),E=c(()=>i.value===`__custom__`),D=c(()=>re.find(e=>e.id===n.value)),k=c(()=>{if(!(!i.value||!a.value))return r.value.find(e=>e.group===i.value)?.presets.find(e=>e.plan===a.value)}),A=O(``),j=O(``),ee=O(``),M=O(``);o(k,e=>{if(e&&!E.value){ee.value=e.baseUrl;let t=e.apiType===`anthropic`?`/v1/messages`:e.apiType===`openai-responses`?`/v1/responses`:`/v1/chat/completions`;M.value=e.upstreamPath&&e.upstreamPath!==t?e.upstreamPath:``}});let N=c(()=>E.value?A.value:ee.value),te=c(()=>E.value?j.value:M.value),ne=c(()=>r.value.find(e=>e.group===i.value)?.presets??[]),P=c(()=>!N.value.includes(`openai.com`)),F=c(()=>{let e=r.value.find(e=>e.group===i.value)?.shortname??i.value;return h.value.filter(t=>!t.providers||t.providers.length===0||t.providers.includes(e))}),ie=Ne(E,i,a,p,T,e).allProviderGroups,L=je({t:e,selection:{clientType:n,selectedGroup:i,selectedPlan:a,apiType:s,providerGroups:r,currentClient:D,currentPreset:k,isCustomProvider:E,customBaseUrl:A,customUpstreamPath:j},data:{modelConfigs:p,mappingEntries:m,apiKey:l,baseUrl:N,upstreamPath:te,existingMappings:w,allProviders:T,allRecommendedRules:h,recommendedRules:F,selectedRetryRules:g,retryProviderMap:_,isNonOpenaiEndpoint:P,endpoints:f},submit:{saving:y,connectionStatus:x,concurrencyConfig:S,transformConfig:C}});return o(s,()=>{for(let e of p.value)e.patches=I(e.name,s.value,P.value)}),v(async()=>{try{let e=await t.getQuickSetupInit();r.value=e.provider_groups,h.value=e.recommended_rules,w.value=e.existing_mappings,T.value=e.existing_providers,L.selectClient(`claude-code`)}catch(e){console.error(`quickSetup.load:`,e),z.error(b(e,``))}}),{clientType:n,providerGroups:r,selectedGroup:i,selectedPlan:a,apiType:s,apiKey:l,sharedKey:u,endpoints:f,modelConfigs:p,mappingEntries:m,allRecommendedRules:h,recommendedRules:F,selectedRetryRules:g,retryProviderMap:_,saving:y,connectionStatus:x,currentClient:D,currentPreset:k,baseUrl:N,customBaseUrl:A,presetBaseUrl:ee,upstreamPath:te,customUpstreamPath:j,presetUpstreamPath:M,isCustomProvider:E,availablePlans:ne,isNonOpenaiEndpoint:P,concurrencyConfig:S,transformConfig:C,existingMappings:w,allProviders:T,allProviderGroups:ie,...L,setRetryProvider:(e,t)=>void _.value.set(e,t)}}var Fe={class:`space-y-1.5`},Ie={class:`px-3 py-1.5`},Le={key:0,class:`py-3 text-center text-xs text-muted-foreground`},Re={class:`rounded-md border border-dashed border-border px-3 py-2 space-y-1.5`},ze={class:`flex items-center gap-2`},Z={class:`flex-[2] min-w-0`},Q={class:`flex items-center gap-2`},$={key:0,class:`flex items-center gap-2 flex-1 min-w-0`},Be={class:`text-[10px] text-blue-500/50 shrink-0`},Ve={class:`flex-1 min-w-0`},He=w({__name:`QuickSetupMappingList`,props:{entries:{},providerGroups:{}},emits:[`update:targets`,`update:multimodal-fallback`,`update:client-model`,`toggle-active`,`add`,`remove`],setup(t,{emit:n}){let{t:r}=d(),i=n,a=O(null);function o(e){a.value=a.value===e?null:e}let s=O(``),c=O(),u=O(),p=O(!1);function m(){return s.value.trim().length>0&&!!c.value?.model}function _(){if(!(!p.value||!u.value?.model))return{provider_id:u.value.provider_id,backend_model:u.value.model}}function v(){let e=s.value.trim(),t=c.value;e&&t&&(i(`add`,e,t.model,_()),s.value=``,c.value=void 0,u.value=void 0,p.value=!1)}function b(e){e.key===`Enter`&&m()&&(e.preventDefault(),v())}return(n,d)=>(D(),C(`div`,Fe,[(D(!0),C(f,null,g(t.entries,(n,r)=>(D(),C(`div`,{key:r,class:`rounded-md border border-border overflow-hidden`},[e(`div`,Ie,[h(A,{entry:n,"provider-groups":t.providerGroups,expanded:a.value===n.clientModel,"editable-client-model":a.value===n.clientModel,onExpand:e=>o(n.clientModel),"onUpdate:targets":e=>i(`update:targets`,r,e),"onUpdate:clientModel":e=>i(`update:client-model`,r,e),"onUpdate:multimodalFallback":e=>i(`update:multimodal-fallback`,r,e),onToggleActive:e=>i(`toggle-active`,r),onRemove:e=>i(`remove`,n.clientModel)},null,8,[`entry`,`provider-groups`,`expanded`,`editable-client-model`,`onExpand`,`onUpdate:targets`,`onUpdate:clientModel`,`onUpdate:multimodalFallback`,`onToggleActive`,`onRemove`])])]))),128)),t.entries.length===0?(D(),C(`p`,Le,l(T(r)(`providers.shared.noMappings`)),1)):E(``,!0),e(`div`,Re,[e(`div`,ze,[h(T(fe),{modelValue:s.value,"onUpdate:modelValue":d[0]||=e=>s.value=e,placeholder:T(r)(`providers.shared.clientModel`),class:`h-7 flex-1 min-w-0 text-xs font-mono border-border`,onKeydown:b},null,8,[`modelValue`,`placeholder`]),h(T(k),{class:`size-3.5 shrink-0 text-muted-foreground/30`}),e(`div`,Z,[h(K,{providers:t.providerGroups,"model-value":c.value,compact:``,placeholder:T(r)(`providers.shared.selectModel`),"onUpdate:modelValue":d[1]||=e=>c.value=e},null,8,[`providers`,`model-value`,`placeholder`])]),h(T(V),{variant:`outline`,class:`text-[10px] shrink-0 text-muted-foreground/50`},{default:x(()=>[y(l(T(r)(`providers.shared.tagCustom`)),1)]),_:1}),h(T(S),{variant:`outline`,size:`icon-xs`,class:`shrink-0`,disabled:!m(),onClick:v},{default:x(()=>[h(T(N),{class:`size-3`})]),_:1},8,[`disabled`])]),e(`div`,Q,[h(T(S),{type:`button`,variant:`ghost`,size:`xs`,class:`text-[10px] text-blue-500/60 hover:text-blue-500`,onClick:d[2]||=e=>p.value=!p.value},{default:x(()=>[h(T(j),{class:`size-3 mr-1`}),y(` `+l(p.value?T(r)(`mappings.multimodalFallback.collapse`):T(r)(`mappings.multimodalFallback.add`)),1)]),_:1}),p.value?(D(),C(`div`,$,[e(`span`,Be,[h(T(j),{class:`size-2.5`})]),e(`div`,Ve,[h(K,{providers:t.providerGroups,"model-value":u.value,compact:``,dashed:``,placeholder:T(r)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":d[3]||=e=>u.value=e},null,8,[`providers`,`model-value`,`placeholder`])])])):E(``,!0)])])]))}}),Ue={class:`page space-y-4 pb-20`},We={class:`flex items-center justify-between`},Ge={class:`flex gap-2 flex-wrap`},Ke={class:`text-left`},qe={class:`font-medium text-sm leading-tight flex items-center gap-1.5`},Je={class:`text-[10px] opacity-60 leading-tight`},Ye={key:0,class:`mt-2.5 px-3 py-2 rounded-r-md bg-primary/8 border-l-[3px] border-l-primary text-[11px] text-muted-foreground flex items-start gap-1.5`},Xe={class:`flex items-center justify-between`},Ze={key:0,class:`text-[10px] text-muted-foreground/50 flex items-center gap-1`},Qe={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground/60 mb-1.5`},$e={class:`flex items-end gap-2`},et={class:`w-40 space-y-1`},tt={key:0,class:`w-28 space-y-1`},nt={class:`w-64 space-y-1`},rt={class:`shrink-0 space-y-1`},it={key:0,class:`border-t border-border pt-3`},at={class:`border-t border-border pt-3`},ot={class:`flex items-center justify-between mb-2`},st={class:`text-xs font-medium text-muted-foreground`},ct={class:`flex items-center justify-between`},lt={key:0,class:`py-4 text-center text-xs text-muted-foreground`},ut={key:1,class:`flex flex-col gap-px bg-border rounded-lg overflow-hidden`},dt={key:2,class:`flex gap-2 mt-2`},ft={class:`border-t border-border pt-3 mt-3`},pt={key:0,class:`mt-2`},mt={class:`grid grid-cols-5 gap-4`},ht={class:`flex items-center justify-between`},gt={class:`col-span-2 space-y-4`},_t={class:`flex items-center justify-between`},vt={key:0,class:`py-6 text-center text-xs text-muted-foreground`},yt={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},bt={class:`flex items-center gap-2.5 pb-2 border-b border-border`},xt=[`onClick`],St={class:`flex-1 min-w-0`},Ct={class:`flex items-center gap-1.5`},wt={class:`text-xs font-medium`},Tt={class:`text-[10px] text-muted-foreground mt-0.5`},Et={class:`fixed bottom-0 right-0 left-56 border-t bg-card/95 backdrop-blur px-6 py-2.5 flex items-center justify-between z-10`},Dt={class:`text-xs text-muted-foreground flex items-center gap-1.5 font-mono`},Ot={key:0,class:`text-foreground/80`},kt={class:`text-[11px] px-2 py-0.5 rounded bg-primary/8 text-primary font-medium`},At={class:`text-foreground/80`},jt={class:`flex items-center gap-2`},Mt={key:0,class:`flex items-center gap-1 text-[11px] text-primary`},Nt={class:`font-medium`},Pt={key:1,class:`flex items-center gap-1 text-[11px] text-destructive/70`},Ft=w({__name:`QuickSetup`,setup(t){let{t:i}=d(),{clientType:a,currentClient:o,providerGroups:s,selectedGroup:u,selectedPlan:v,apiType:b,apiKey:w,sharedKey:k,endpoints:A,modelConfigs:j,mappingEntries:N,allRecommendedRules:F,recommendedRules:I,selectedRetryRules:K,retryProviderMap:pe,saving:he,connectionStatus:q,availablePlans:ge,isNonOpenaiEndpoint:ve,isCustomProvider:J,concurrencyConfig:ye,transformConfig:be,allProviderGroups:xe,selectClient:Se,onProviderChange:Ce,onPlanChange:Y,updateMappingTargets:we,updateMappingMultimodalFallback:Te,updateMappingClientModel:Ee,toggleMappingActive:De,addMappingEntry:Oe,removeMappingEntry:ke,toggleRetryRule:X,setAllRetryRules:Ae,setRetryProvider:je,testConnection:Me,submit:Ne,addCustomModel:Fe,updateModel:Ie,removeModel:Le,updateModelTimeout:Re,toggleModelCapability:ze}=Pe(),Z=O(``),Q=O(!1),$=O(`idle`);function Be(){Z.value.trim()&&(Fe(Z.value.trim()),Z.value=``)}let Ve=c(()=>j.value.filter(e=>e.enabled).length),Ft=c(()=>re.find(e=>e.id===a.value)?.name??a.value),It=c(()=>{let e=a.value?ne[a.value]:void 0;return e?e.join(`, `):``});function Lt(){if(!u.value){$.value=`invalid`,z.error(i(`quickSetup.messages.selectProvider`));return}if(!k.value.trim()&&!w.value.trim()){$.value=`invalid`,z.error(i(`quickSetup.messages.fillApiKey`));return}if(Ve.value===0){$.value=`invalid`,z.error(i(`quickSetup.messages.enableOneModel`));return}$.value=`valid`,z.success(i(`quickSetup.messages.validationPassed`))}return(t,c)=>(D(),C(f,null,[e(`div`,Ue,[h(T(H),{class:`ring-0`},{default:x(()=>[h(T(W),{class:`pb-3`},{default:x(()=>[e(`div`,We,[h(T(G),{class:`text-sm font-medium`},{default:x(()=>[y(l(T(i)(`quickSetup.client.selectClient`)),1)]),_:1}),T(a)?(D(),_(T(V),{key:0,variant:`outline`,class:`text-[10px] px-1.5 py-0 leading-none border-green-500/30 bg-green-500/10 text-green-500`},{default:x(()=>[h(T(de),{class:`size-2.5 mr-0.5 stroke-[3]`}),y(` `+l(T(i)(`common.selected`)),1)]),_:1})):E(``,!0)])]),_:1}),h(T(U),null,{default:x(()=>[e(`div`,Ge,[(D(!0),C(f,null,g(T(re),t=>(D(),_(T(S),{key:t.id,variant:`outline`,class:m([`flex h-auto items-center gap-2.5 px-4 py-2.5 text-sm transition-all cursor-pointer`,T(a)===t.id?`border-primary bg-primary/12 text-primary ring-1 ring-primary/30`:`border-border hover:border-muted-foreground/30 text-muted-foreground hover:text-foreground`]),onClick:e=>T(Se)(t.id)},{default:x(()=>[e(`div`,{class:m([`shrink-0 w-6 h-6 rounded-md flex items-center justify-center text-[11px] font-bold text-white`,t.brandBg])},l(t.icon),3),e(`div`,Ke,[e(`div`,qe,[y(l(t.name)+` `,1),t.popular?(D(),_(T(V),{key:0,class:`text-[9px] px-1 py-0 leading-none bg-primary/15 text-primary font-medium`},{default:x(()=>[y(l(T(i)(`quickSetup.client.popular`)),1)]),_:1})):E(``,!0)]),e(`div`,Je,l(t.format)+` · `+l(T(i)(t.descriptionKey)),1)])]),_:2},1032,[`class`,`onClick`]))),128))]),T(a)?(D(),C(`div`,Ye,[h(T(le),{class:`size-3.5 shrink-0 text-primary mt-px`}),e(`span`,null,l(T(i)(`quickSetup.client.infoBar`,{client:T(o)?.name??T(a),format:T(o)?.format===`anthropic`?`Anthropic Messages API`:T(o)?.format===`openai-responses`?`OpenAI Responses API`:`OpenAI Chat API`,models:It.value})),1)])):E(``,!0)]),_:1})]),_:1}),h(T(H),{class:`ring-0`},{default:x(()=>[h(T(W),{class:`pb-3`},{default:x(()=>[e(`div`,Xe,[h(T(G),{class:`text-sm font-medium`},{default:x(()=>[y(l(T(i)(`quickSetup.provider.connection`)),1)]),_:1}),T(u)?(D(),C(`span`,Ze,[h(T(te),{class:`size-3 text-muted-foreground/50`}),y(` `+l(T(i)(`quickSetup.provider.autoConfigured`)),1)])):E(``,!0)])]),_:1}),h(T(U),{class:`space-y-3`},{default:x(()=>[e(`div`,Qe,l(T(i)(`quickSetup.provider.groupLabel`)),1),e(`div`,$e,[e(`div`,et,[h(T(R),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(l(T(i)(`quickSetup.provider.label`)),1)]),_:1}),h(T(ue),{"model-value":T(u),"onUpdate:modelValue":c[0]||=e=>T(Ce)(e)},{default:x(()=>[h(T(se),{class:`w-full text-xs data-[size=default]:h-7`},{default:x(()=>[h(T(ce),{placeholder:T(i)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),h(T(ae),null,{default:x(()=>[h(T(B),{value:`__custom__`},{default:x(()=>[y(l(T(i)(`quickSetup.provider.custom`)),1)]),_:1}),(D(!0),C(f,null,g(T(s),e=>(D(),_(T(B),{key:e.group,value:e.group},{default:x(()=>[y(l(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),T(J)?E(``,!0):(D(),C(`div`,tt,[h(T(R),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(l(T(i)(`quickSetup.provider.plan`)),1)]),_:1}),h(T(ue),{"model-value":T(v),"onUpdate:modelValue":c[1]||=e=>T(Y)(e)},{default:x(()=>[h(T(se),{class:`w-full text-xs data-[size=default]:h-7`},{default:x(()=>[h(T(ce),{placeholder:T(i)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),h(T(ae),null,{default:x(()=>[(D(!0),C(f,null,g(T(ge),e=>(D(),_(T(B),{key:e.plan,value:e.plan},{default:x(()=>[y(l(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])])),e(`div`,nt,[h(T(R),{class:`text-xs text-muted-foreground`},{default:x(()=>[y(l(T(i)(`quickSetup.provider.apiKey`)),1)]),_:1}),h(T(fe),{modelValue:T(k),"onUpdate:modelValue":c[2]||=e=>n(k)?k.value=e:null,type:`password`,autocomplete:`new-password`,placeholder:T(i)(`quickSetup.provider.apiKeyPlaceholder`),class:`md:text-xs h-7`},null,8,[`modelValue`,`placeholder`])]),e(`div`,rt,[h(T(R),{class:`text-xs text-muted-foreground invisible`},{default:x(()=>[y(l(T(i)(`quickSetup.provider.connect`)),1)]),_:1}),h(T(S),{variant:`outline`,size:`sm`,disabled:T(q)===`testing`,class:m(T(q)===`ok`?`border-green-500/50 text-green-500`:``),onClick:T(Me)},{default:x(()=>[T(q)===`testing`?(D(),C(f,{key:0},[c[11]||=e(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[e(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),e(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),y(` `+l(T(i)(`quickSetup.provider.testing`)),1)],64)):T(q)===`ok`?(D(),C(f,{key:1},[h(T(oe),{class:`size-3.5 mr-1`}),y(` `+l(T(i)(`quickSetup.provider.connected`)),1)],64)):(D(),C(f,{key:2},[y(l(T(i)(`quickSetup.provider.test`)),1)],64))]),_:1},8,[`disabled`,`class`,`onClick`])])]),T(A).length>0?(D(),C(`div`,it,[h(P,{"model-value":T(A),"shared-key":T(k),readonly:!1,"onUpdate:modelValue":c[3]||=e=>A.value=e},null,8,[`model-value`,`shared-key`])])):E(``,!0),e(`div`,at,[e(`div`,ot,[e(`span`,st,l(T(i)(`quickSetup.concurrency.control`)),1),h(T(V),{variant:`outline`,class:`text-[9px] px-1 py-0 leading-none text-muted-foreground/50`},{default:x(()=>[y(l(T(i)(`quickSetup.concurrency.optional`)),1)]),_:1})]),h(ee,{modelValue:T(ye),"onUpdate:modelValue":c[4]||=e=>n(ye)?ye.value=e:null},null,8,[`modelValue`])])]),_:1})]),_:1}),h(T(H),{class:`ring-0`},{default:x(()=>[h(T(W),{class:`pb-3`},{default:x(()=>[e(`div`,ct,[h(T(G),{class:`text-sm font-medium`},{default:x(()=>[y(l(T(i)(`quickSetup.model.config`)),1)]),_:1}),h(T(V),{variant:`secondary`,class:`text-[10px]`},{default:x(()=>[y(l(Ve.value)+`/`+l(T(j).length),1)]),_:1})])]),_:1}),h(T(U),null,{default:x(()=>[T(j).length===0?(D(),C(`p`,lt,l(T(i)(`quickSetup.model.selectProviderFirst`)),1)):(D(),C(`div`,ut,[(D(!0),C(f,null,g(T(j),(e,t)=>(D(),_(ie,{key:e.name,model:e,"api-type":T(b),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":T(ve),capabilities:e.capabilities??[`text`],"stream-timeout-ms":e.stream_timeout_ms??void 0,"onUpdate:model":e=>T(Ie)(t,e),onRemove:e=>T(Le)(t),"onUpdate:streamTimeoutMs":e=>T(Re)(t,e),onToggleCapability:e=>T(ze)(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`capabilities`,`stream-timeout-ms`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onToggleCapability`]))),128))])),T(J)?(D(),C(`div`,dt,[h(T(fe),{modelValue:Z.value,"onUpdate:modelValue":c[5]||=e=>Z.value=e,placeholder:T(i)(`quickSetup.model.namePlaceholder`),onKeydown:r(p(Be,[`prevent`]),[`enter`]),class:`flex-1 md:text-xs h-7`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),h(T(S),{type:`button`,variant:`outline`,size:`sm`,onClick:Be,disabled:!Z.value.trim()},{default:x(()=>[y(l(T(i)(`common.add`)),1)]),_:1},8,[`disabled`])])):E(``,!0),e(`div`,ft,[h(T(S),{variant:`ghost`,class:`flex items-center gap-1.5 text-xs font-medium text-muted-foreground w-full justify-start h-auto px-0`,onClick:c[6]||=e=>Q.value=!Q.value},{default:x(()=>[h(T(M),{class:m([`size-3 transition-transform`,Q.value?`rotate-90`:``])},null,8,[`class`]),y(` `+l(T(i)(`quickSetup.transform.title`))+` `,1),h(T(V),{variant:`outline`,class:`text-[9px] px-1 py-0 leading-none text-muted-foreground/50`},{default:x(()=>[y(l(T(i)(`quickSetup.transform.optional`)),1)]),_:1})]),_:1}),Q.value?(D(),C(`div`,pt,[h(me,{modelValue:T(be),"onUpdate:modelValue":c[7]||=e=>n(be)?be.value=e:null},null,8,[`modelValue`])])):E(``,!0)])]),_:1})]),_:1}),e(`div`,mt,[h(T(H),{class:`col-span-3 ring-0`},{default:x(()=>[h(T(W),{class:`pb-3`},{default:x(()=>[e(`div`,ht,[h(T(G),{class:`text-sm font-medium`},{default:x(()=>[y(l(T(i)(`quickSetup.mapping.title`)),1)]),_:1}),h(T(V),{variant:`secondary`,class:`text-[10px]`},{default:x(()=>[y(l(T(i)(`quickSetup.mapping.count`,{count:T(N).length})),1)]),_:1})])]),_:1}),h(T(U),null,{default:x(()=>[h(He,{entries:T(N),"provider-groups":T(xe),"onUpdate:targets":T(we),"onUpdate:multimodalFallback":T(Te),"onUpdate:clientModel":T(Ee),onToggleActive:T(De),onAdd:T(Oe),onRemove:T(ke)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onUpdate:multimodalFallback`,`onUpdate:clientModel`,`onToggleActive`,`onAdd`,`onRemove`])]),_:1})]),_:1}),e(`div`,gt,[h(T(H),{class:`ring-0`},{default:x(()=>[h(T(W),{class:`pb-3`},{default:x(()=>[e(`div`,_t,[h(T(G),{class:`text-sm font-medium`},{default:x(()=>[y(l(T(i)(`quickSetup.retry.title`)),1)]),_:1}),h(T(V),{variant:`secondary`,class:`text-[10px]`},{default:x(()=>[y(l(T(i)(`quickSetup.retry.selectedCount`,{count:T(I).filter(e=>e.exists).length+T(K).size})),1)]),_:1})])]),_:1}),h(T(U),null,{default:x(()=>[T(I).length===0?(D(),C(`div`,vt,[T(F).length===0?(D(),C(f,{key:0},[y(l(T(i)(`quickSetup.retry.allCreated`)),1)],64)):(D(),C(f,{key:1},[y(l(T(i)(`quickSetup.retry.selectProviderFirst`)),1)],64))])):(D(),C(`div`,yt,[e(`div`,bt,[h(T(L),{disabled:T(I).every(e=>e.exists),"model-value":T(I).filter(e=>!e.exists).every(e=>T(K).has(e.name))?!0:T(I).some(e=>!e.exists&&T(K).has(e.name))?`indeterminate`:!1,class:`mt-0.5`,"onUpdate:modelValue":c[8]||=e=>{let t=e===!0;T(Ae)(T(I).filter(e=>!e.exists).map(e=>e.name),t)}},null,8,[`disabled`,`model-value`]),e(`span`,{class:m([`text-xs font-medium`,T(I).every(e=>e.exists)?`text-muted-foreground/40`:`text-muted-foreground`])},l(T(i)(`common.selectAll`)),3)]),(D(!0),C(f,null,g(T(I),t=>(D(),C(`div`,{key:t.name,class:m([`flex items-start gap-2.5 rounded-md transition-colors`,t.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:e=>!t.exists&&T(X)(t.name,!T(K).has(t.name))},[h(T(L),{"model-value":t.exists?!0:T(K).has(t.name),disabled:t.exists,class:`mt-0.5`,"onUpdate:modelValue":e=>T(X)(t.name,e===!0),onClick:c[9]||=p(()=>{},[`stop`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`]),e(`div`,St,[e(`div`,Ct,[e(`span`,wt,l(t.name),1),t.exists?(D(),_(T(V),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:x(()=>[y(l(T(i)(`quickSetup.retry.configured`)),1)]),_:1})):E(``,!0)]),e(`div`,Tt,l(t.status_code)+` · `+l(t.retry_strategy===`fixed`?T(i)(`quickSetup.retry.fixed`):T(i)(`quickSetup.retry.exponential`))+` · `+l(t.retry_delay_ms/1e3)+`s · `+l(t.max_retries)+l(T(i)(`quickSetup.retry.times`)),1)]),!t.exists&&t.providers&&t.providers.length>0?(D(),C(`div`,{key:0,class:`shrink-0`,onClick:c[10]||=p(()=>{},[`stop`])},[h(T(ue),{"model-value":T(pe).get(t.name)??`general`,"onUpdate:modelValue":e=>T(je)(t.name,e)},{default:x(()=>[h(T(se),{class:`h-6 text-[10px] px-2 py-0 gap-1`},{default:x(()=>[h(T(ce))]),_:1}),h(T(ae),null,{default:x(()=>[h(T(B),{value:`general`},{default:x(()=>[y(l(T(i)(`quickSetup.retry.general`)),1)]),_:1}),(D(!0),C(f,null,g(t.providers,e=>(D(),_(T(B),{key:e,value:e},{default:x(()=>[y(l(e),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`model-value`,`onUpdate:modelValue`])])):t.exists?E(``,!0):(D(),_(T(V),{key:1,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none shrink-0 mt-0.5`},{default:x(()=>[y(l(T(i)(`quickSetup.retry.general`)),1)]),_:1}))],10,xt))),128))]))]),_:1})]),_:1})])])]),e(`div`,Et,[e(`div`,Dt,[T(a)?(D(),C(`span`,Ot,l(Ft.value),1)):E(``,!0),T(u)?(D(),C(f,{key:1},[c[13]||=e(`span`,{class:`text-muted-foreground/40`},`→`,-1),e(`span`,kt,l(T(J)?T(i)(`quickSetup.provider.custom`):T(u)),1),T(v)?(D(),C(f,{key:0},[c[12]||=e(`span`,{class:`text-muted-foreground/40`},`/`,-1),e(`span`,At,l(T(v)),1)],64)):E(``,!0)],64)):E(``,!0),c[14]||=e(`span`,{class:`text-muted-foreground/40`},`·`,-1),e(`span`,null,l(T(i)(`quickSetup.footer.models`,{count:Ve.value})),1),c[15]||=e(`span`,{class:`text-muted-foreground/40`},`·`,-1),e(`span`,null,l(T(i)(`quickSetup.footer.mappings`,{count:T(N).length})),1),c[16]||=e(`span`,{class:`text-muted-foreground/40`},`·`,-1),e(`span`,null,l(T(i)(`quickSetup.footer.rules`,{count:T(K).size+T(I).filter(e=>e.exists).length})),1)]),e(`div`,jt,[$.value===`valid`?(D(),C(`div`,Mt,[h(T(oe),{class:`size-3.5`}),e(`span`,Nt,l(T(i)(`quickSetup.footer.validated`)),1)])):$.value===`invalid`?(D(),C(`div`,Pt,[h(T(_e),{class:`size-3.5`}),e(`span`,null,l(T(i)(`quickSetup.footer.invalid`)),1)])):E(``,!0),h(T(S),{size:`sm`,variant:`outline`,onClick:Lt},{default:x(()=>[y(l(T(i)(`quickSetup.footer.validate`)),1)]),_:1}),h(T(S),{size:`sm`,disabled:T(he),onClick:T(Ne)},{default:x(()=>[T(he)?(D(),C(f,{key:0},[c[17]||=e(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[e(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),e(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),y(` `+l(T(i)(`quickSetup.footer.saving`)),1)],64)):(D(),C(f,{key:1},[y(l(T(i)(`quickSetup.footer.saveConfig`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{Ft as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Q as n,Qt as r,S as i,U as a,X as o,Y as s,Yt as c,Zt as l,at as u,bt as d,et as f,gt as p,ht as m,i as h,it as g,j as _,jt as v,n as y,nt as b,o as x,ot as S,pt as C,qt as w,r as T,tt as E,vt as D,xt as O,zt as k}from"./button-BuzJlj9X.js";import{t as A}from"./plus-fHe1ysx9.js";import{t as j}from"./Checkbox-OkYUPlFe.js";import{a as ee,c as M,i as te,l as ne,n as re,o as ie,r as ae,s as oe,t as se}from"./TabsTrigger-DeTfRTma.js";import{n as ce,t as le}from"./CollapsibleContent-4ZwwyZPz.js";import{t as N}from"./CollapsibleTrigger-Cg651F6-.js";import{a as ue,n as de,o as fe,r as pe,t as me}from"./dialog-CtPySx34.js";import{t as P}from"./Label-DVu1uVI7.js";import{_ as F,_t as I,a as L,c as he,d as ge,g as R,h as z,l as _e,lt as ve,m as B,o as ye,p as be,pt as xe,s as Se,t as Ce,u as we,v as V,z as H}from"./index-BjnFvPid.js";import{t as U}from"./badge-DhXKxnV5.js";import{t as W}from"./Input-CLu4bS6g.js";import{t as G}from"./Card-L1MI4nan.js";import{t as K}from"./CardContent-DUzyQmbU.js";import{n as q,t as J}from"./CardTitle-oL3GJ7xA.js";import{a as Y,i as X,n as Z,o as Te,r as Q,t as Ee}from"./TableHeader-ncK52pod.js";var De=S({__name:`TabsContent`,props:{value:{type:[String,Number],required:!0},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:r}=x(),i=ne(),a=n(()=>M(i.baseId,t.value)),o=n(()=>oe(i.baseId,t.value)),s=n(()=>t.value===i.modelValue.value),c=k(s.value);return p(()=>{i.registerContent(t.value),requestAnimationFrame(()=>{c.value=!1})}),m(()=>{i.unregisterContent(t.value)}),(e,t)=>(D(),f(w(H),{present:e.forceMount||s.value,"force-mount":``},{default:v(({present:t})=>[u(w(h),{id:o.value,ref:w(r),"as-child":e.asChild,as:e.as,role:`tabpanel`,"data-state":s.value?`active`:`inactive`,"data-orientation":w(i).orientation.value,"aria-labelledby":a.value,hidden:!t,tabindex:`0`,style:l({animationDuration:c.value?`0s`:void 0})},{default:v(()=>[!w(i).unmountOnHide.value||t?O(e.$slots,`default`,{key:0}):E(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),$=S({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=i(t,`class`);return(e,r)=>(D(),f(w(De),C({"data-slot":`tabs-content`,class:w(T)(`text-sm flex-1 outline-none`,t.class)},w(n)),{default:v(()=>[O(e.$slots,`default`)]),_:3},16,[`class`]))}}),Oe={name:``,status_code:429,body_pattern:``,provider_id:`__all__`,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4,matchMode:`regex`,bodyMatchers:[]};function ke(e){if(!e)return[];try{return JSON.parse(e)}catch{return[]}}function Ae(e){let t=e.filter(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()));return t.length>0?JSON.stringify(t):null}function je(e){return e?`json`:`regex`}function Me(e,t){let n={};e.name.trim()||(n.name=t(`retryRules.validation.nameRequired`));let r=Number(e.status_code);if((!Number.isInteger(r)||r<100||r>599)&&(n.status_code=t(`retryRules.validation.statusCodeRange`,{min:100,max:599})),e.matchMode===`regex`)if(!e.body_pattern.trim())n.body_pattern=t(`retryRules.validation.bodyPatternRequired`);else try{new RegExp(e.body_pattern)}catch{n.body_pattern=t(`retryRules.validation.bodyPatternInvalid`)}else e.bodyMatchers.some(e=>e.path.trim()&&(e.operator===`exists`||e.value.trim()))||(n.body_matchers=t(`retryRules.validation.bodyPatternRequired`));let i=Number(e.retry_delay_ms);(!i||i<100)&&(n.retry_delay_ms=t(`retryRules.validation.delayMin`,{min:100}));let a=Number(e.max_retries);if((!Number.isInteger(a)||a<0||a>100)&&(n.max_retries=t(`retryRules.validation.retriesRange`,{max:100})),e.retry_strategy===`exponential`){let r=Number(e.max_delay_ms);(!r||r<100)&&(n.max_delay_ms=t(`retryRules.validation.delayMin`,{min:100}))}return n}function Ne(){return{...Oe,bodyMatchers:[]}}function Pe(e,t,n){if(e){let t=ke(e);return t.length>0?t.map(e=>{let t=n[e.operator]??e.operator;return e.operator===`exists`?`${e.path} ${t}`:`${e.path} ${t} "${e.value}"`}).join(`, `):e}return t??``}var Fe={class:`flex items-center justify-between`},Ie={class:`flex items-center justify-between mb-3`},Le={class:`flex items-center gap-2`},Re={class:`text-sm text-muted-foreground`},ze=S({__name:`RecommendedRules`,props:{rules:{}},emits:[`added`],setup(i,{emit:s}){let{t:l}=a(),p=i,m=s,h=k(!1),_=k(new Set),x=n(()=>p.rules.length>0&&_.value.size===p.rules.length);function S(e){let t=new Set(_.value);t.has(e)?t.delete(e):t.add(e),_.value=t}function C(e){_.value=e===!0?new Set(p.rules.map(e=>e.name)):new Set}async function T(){let e=p.rules.filter(e=>_.value.has(e.name));for(let n of e)await t.createRetryRule({name:n.name,status_code:n.status_code,body_pattern:n.body_pattern,is_active:1,retry_strategy:n.retry_strategy,retry_delay_ms:n.retry_delay_ms,max_retries:n.max_retries,max_delay_ms:n.max_delay_ms});L.success(l(`retryRules.messages.addedCount`,{count:e.length})),_.value=new Set,m(`added`)}return(t,n)=>i.rules.length>0?(D(),f(w(G),{key:0,class:`mt-6`},{default:v(()=>[u(w(ce),{open:h.value,"onUpdate:open":n[0]||=e=>h.value=e},{default:v(()=>[u(w(N),{"as-child":``},{default:v(()=>[u(w(q),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:v(()=>[e(`div`,Fe,[u(w(J),{class:`text-sm font-medium`},{default:v(()=>[g(r(w(l)(`retryRules.recommended.title`,{count:i.rules.length})),1)]),_:1}),u(w(I),{class:c([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":h.value}])},null,8,[`class`])])]),_:1})]),_:1}),u(w(le),null,{default:v(()=>[u(w(K),null,{default:v(()=>[e(`div`,Ie,[e(`div`,Le,[u(w(j),{"model-value":x.value,"onUpdate:modelValue":C},null,8,[`model-value`]),e(`span`,Re,r(w(l)(`retryRules.recommended.selectAll`)),1)]),u(w(y),{size:`sm`,disabled:_.value.size===0,onClick:T},{default:v(()=>[g(r(w(l)(`retryRules.recommended.addSelected`,{count:_.value.size})),1)]),_:1},8,[`disabled`])]),u(w(Te),null,{default:v(()=>[u(w(Ee),null,{default:v(()=>[u(w(Q),null,{default:v(()=>[u(w(Z),{class:`w-10`}),u(w(Z),null,{default:v(()=>[g(r(w(l)(`retryRules.recommended.headers.name`)),1)]),_:1}),u(w(Z),null,{default:v(()=>[g(r(w(l)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),u(w(Z),null,{default:v(()=>[g(r(w(l)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),u(w(Z),null,{default:v(()=>[g(r(w(l)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),u(w(Y),null,{default:v(()=>[(D(!0),b(o,null,d(i.rules,e=>(D(),f(w(Q),{key:e.name},{default:v(()=>[u(w(X),null,{default:v(()=>[u(w(j),{"model-value":_.value.has(e.name),"onUpdate:modelValue":()=>S(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),u(w(X),null,{default:v(()=>[g(r(e.name),1)]),_:2},1024),u(w(X),null,{default:v(()=>[g(r(e.status_code),1)]),_:2},1024),u(w(X),{class:`font-mono text-xs max-w-[200px] truncate`},{default:v(()=>[g(r(e.body_pattern),1)]),_:2},1024),u(w(X),null,{default:v(()=>[g(r(e.retry_strategy===`fixed`?w(l)(`retryRules.strategy.fixed`):w(l)(`retryRules.strategy.exponential`)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):E(``,!0)}}),Be={class:`page`},Ve={key:0,class:`flex items-center justify-center py-12 text-muted-foreground`},He={class:`flex items-center justify-between mb-4`},Ue={class:`text-lg font-semibold text-foreground`},We={class:`truncate block`},Ge={key:1},Ke={class:`flex items-center gap-2`},qe={class:`text-xs text-muted-foreground`},Je={key:0,class:`text-sm text-destructive mt-1`},Ye={key:0,class:`text-sm text-destructive mt-1`},Xe={class:`font-medium mb-1`},Ze={key:0,class:`text-sm text-destructive mt-1`},Qe={class:`space-y-2`},$e={key:0,class:`text-sm text-destructive mt-1`},et={class:`grid grid-cols-2 gap-3`},tt={key:0,class:`text-sm text-destructive mt-1`},nt={key:0,class:`text-sm text-destructive mt-1`},rt={key:0},it={key:0,class:`text-sm text-destructive mt-1`},at={class:`flex items-center gap-2`},ot=S({__name:`RetryRules`,setup(n){let{t:i}=a(),c=k(!1),l=k([]),m=k([]),h=k(!1),x=k(null),S=k(null),C=k(Ne()),T=k({}),O=k([]),M={equals:i(`retryRules.operatorEquals`),contains:i(`retryRules.operatorContains`),exists:i(`retryRules.operatorExists`)};function ne(e){let t=m.value.find(t=>t.id===e);return t?t.name:e}function oe(e){return Pe(e.body_matchers,e.body_pattern,M)}function ce(){C.value.bodyMatchers.push({path:``,operator:`contains`,value:``})}function le(e){C.value.bodyMatchers.splice(e,1)}function N(){let e=Me(C.value,i);return T.value=e,Object.keys(e).length===0}async function I(){try{l.value=await t.getRetryRules()}catch(e){console.error(`RetryRules.loadData:`,e),L.error(_(e,i(`retryRules.messages.loadFailed`)))}}async function H(){try{O.value=await t.recommended.getRetryRules()}catch(e){console.error(`RetryRules.loadRecommended:`,e),O.value=[]}}function K(){x.value=null,C.value=Ne(),T.value={},h.value=!0}function q(e){x.value=e.id,C.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,provider_id:e.provider_id??`__all__`,is_active:!!e.is_active,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms,matchMode:je(e.body_matchers),bodyMatchers:ke(e.body_matchers)},T.value={},h.value=!0}async function J(){if(N())try{let e=C.value.matchMode===`json`?Ae(C.value.bodyMatchers):null,n={name:C.value.name,status_code:Number(C.value.status_code),body_pattern:C.value.body_pattern,provider_id:C.value.provider_id===`__all__`?null:C.value.provider_id,body_matchers:e,is_active:+!!C.value.is_active,retry_strategy:C.value.retry_strategy,retry_delay_ms:Number(C.value.retry_delay_ms),max_retries:Number(C.value.max_retries),max_delay_ms:Number(C.value.max_delay_ms)};x.value?await t.updateRetryRule(x.value,n):await t.createRetryRule(n),h.value=!1,await I()}catch(e){console.error(`RetryRules.handleSave:`,e),L.error(_(e,i(`retryRules.messages.saveFailed`)))}}function De(e){S.value=e}async function Oe(){let e=S.value;if(e){S.value=null;try{await t.deleteRetryRule(e.id),await I()}catch(e){console.error(`RetryRules.handleDelete:`,e),L.error(_(e,i(`retryRules.messages.deleteFailed`)))}}}async function Fe(){await Promise.allSettled([H(),I()])}return p(async()=>{c.value=!0;try{let e=await t.getRetryRulesInit();l.value=e.rules,m.value=e.providers,O.value=e.recommended_rules}catch(e){console.error(`RetryRules.init:`,e),L.error(_(e,i(`retryRules.messages.loadFailed`)))}finally{c.value=!1}}),(t,n)=>(D(),b(`div`,Be,[c.value?(D(),b(`div`,Ve,[u(w(xe),{class:`w-5 h-5 animate-spin mr-2`}),g(` `+r(w(i)(`common.loading`)),1)])):E(``,!0),c.value?E(``,!0):(D(),b(o,{key:1},[e(`div`,He,[e(`h2`,Ue,r(w(i)(`retryRules.title`)),1),u(w(y),{onClick:K,class:`flex items-center gap-1`},{default:v(()=>[u(w(A),{class:`w-4 h-4`}),g(` `+r(w(i)(`retryRules.addRule`)),1)]),_:1})]),u(w(G),{flush:``},{default:v(()=>[u(w(Te),{class:`[&_td]:px-4 [&_th]:px-4`},{default:v(()=>[u(w(Ee),null,{default:v(()=>[u(w(Q),{class:`bg-muted`},{default:v(()=>[u(w(Z),{class:`text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.name`)),1)]),_:1}),u(w(Z),{class:`text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),u(w(Z),{class:`text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),u(w(Z),{class:`text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.provider`)),1)]),_:1}),u(w(Z),{class:`text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),u(w(Z),{class:`text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.status`)),1)]),_:1}),u(w(Z),{class:`text-right text-muted-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),u(w(Y),null,{default:v(()=>[(D(!0),b(o,null,d(l.value,t=>(D(),f(w(Q),{key:t.id},{default:v(()=>[u(w(X),{class:`font-mono text-sm`},{default:v(()=>[g(r(t.name),1)]),_:2},1024),u(w(X),null,{default:v(()=>[g(r(t.status_code),1)]),_:2},1024),u(w(X),{class:`font-mono text-xs text-muted-foreground max-w-[200px]`},{default:v(()=>[e(`span`,We,r(oe(t)),1)]),_:2},1024),u(w(X),null,{default:v(()=>[t.provider_id?(D(),b(`span`,Ge,r(ne(t.provider_id)),1)):(D(),f(w(U),{key:0,variant:`secondary`},{default:v(()=>[g(r(w(i)(`retryRules.globalBadge`)),1)]),_:1}))]),_:2},1024),u(w(X),null,{default:v(()=>[e(`div`,Ke,[u(w(U),{variant:`outline`},{default:v(()=>[g(r(t.retry_strategy===`fixed`?w(i)(`retryRules.strategy.fixed`):w(i)(`retryRules.strategy.exponential`)),1)]),_:2},1024),e(`span`,qe,[g(r(t.retry_delay_ms/1e3)+`s · `+r(w(i)(`retryRules.times`,{count:t.max_retries}))+` `,1),t.retry_strategy===`exponential`?(D(),b(o,{key:0},[g(` · `+r(w(i)(`retryRules.upperLimit`,{value:t.max_delay_ms/1e3})),1)],64)):E(``,!0)])])]),_:2},1024),u(w(X),null,{default:v(()=>[u(w(U),{variant:t.is_active?`default`:`secondary`},{default:v(()=>[g(r(t.is_active?w(i)(`common.enabled`):w(i)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),u(w(X),{class:`text-right`},{default:v(()=>[u(w(y),{variant:`ghost`,size:`sm`,onClick:e=>q(t),class:`mr-2`},{default:v(()=>[g(r(w(i)(`common.edit`)),1)]),_:1},8,[`onClick`]),u(w(y),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>De(t)},{default:v(()=>[g(r(w(i)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),l.value.length===0?(D(),f(w(Q),{key:0},{default:v(()=>[u(w(X),{colspan:`7`,class:`text-center text-muted-foreground py-8`},{default:v(()=>[g(r(w(i)(`retryRules.noRules`)),1)]),_:1})]),_:1})):E(``,!0)]),_:1})]),_:1})]),_:1}),u(w(fe),{open:h.value,"onUpdate:open":n[17]||=e=>h.value=e},{default:v(()=>[u(w(ue),{class:`max-w-lg`},{default:v(()=>[u(w(de),null,{default:v(()=>[u(w(me),null,{default:v(()=>[g(r(x.value?w(i)(`retryRules.dialog.editRule`):w(i)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),e(`form`,{onSubmit:s(J,[`prevent`]),class:`space-y-3`},[e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.name`)),1)]),_:1}),u(w(W),{modelValue:C.value.name,"onUpdate:modelValue":n[0]||=e=>C.value.name=e,type:`text`,required:``,onInput:n[1]||=e=>delete T.value.name},null,8,[`modelValue`]),T.value.name?(D(),b(`p`,Je,r(T.value.name),1)):E(``,!0)]),e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(w(i)(`retryRules.provider`)),1)]),_:1}),u(w(V),{modelValue:C.value.provider_id,"onUpdate:modelValue":n[2]||=e=>C.value.provider_id=e},{default:v(()=>[u(w(z),{class:`w-full`},{default:v(()=>[u(w(B),{placeholder:w(i)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),u(w(F),null,{default:v(()=>[u(w(R),{value:`__all__`},{default:v(()=>[g(r(w(i)(`retryRules.providerAll`)),1)]),_:1}),(D(!0),b(o,null,d(m.value,e=>(D(),f(w(R),{key:e.id,value:e.id},{default:v(()=>[g(r(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.statusCode`)),1)]),_:1}),u(w(W),{modelValue:C.value.status_code,"onUpdate:modelValue":n[3]||=e=>C.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:n[4]||=e=>delete T.value.status_code},null,8,[`modelValue`]),T.value.status_code?(D(),b(`p`,Ye,r(T.value.status_code),1)):E(``,!0)]),e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1 flex items-center gap-1`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.bodyPattern`))+` `,1),u(w(Ce),null,{default:v(()=>[u(w(ie),null,{default:v(()=>[u(w(te),{"as-child":``},{default:v(()=>[...n[19]||=[e(`span`,{class:`inline-flex items-center justify-center w-3.5 h-3.5 rounded-full bg-muted text-muted-foreground text-[10px] font-bold cursor-help`},`?`,-1)]]),_:1}),u(w(ee),{side:`right`,class:`max-w-xs text-xs leading-relaxed`},{default:v(()=>[e(`p`,Xe,r(w(i)(`retryRules.dialog.bodyPattern`)),1),e(`p`,null,r(w(i)(`retryRules.dialog.bodyPatternTooltip`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),u(w(ae),{modelValue:C.value.matchMode,"onUpdate:modelValue":n[7]||=e=>C.value.matchMode=e},{default:v(()=>[u(w(re),{class:`mb-2`},{default:v(()=>[u(w(se),{value:`regex`},{default:v(()=>[g(r(w(i)(`retryRules.regexMatch`)),1)]),_:1}),u(w(se),{value:`json`},{default:v(()=>[g(r(w(i)(`retryRules.jsonMatch`)),1)]),_:1})]),_:1}),u(w($),{value:`regex`},{default:v(()=>[u(w(W),{modelValue:C.value.body_pattern,"onUpdate:modelValue":n[5]||=e=>C.value.body_pattern=e,type:`text`,placeholder:w(i)(`retryRules.dialog.bodyPatternPlaceholder`),onInput:n[6]||=e=>delete T.value.body_pattern},null,8,[`modelValue`,`placeholder`]),T.value.body_pattern?(D(),b(`p`,Ze,r(T.value.body_pattern),1)):E(``,!0)]),_:1}),u(w($),{value:`json`},{default:v(()=>[e(`div`,Qe,[(D(!0),b(o,null,d(C.value.bodyMatchers,(e,t)=>(D(),b(`div`,{key:t,class:`flex items-start gap-2`},[u(w(W),{modelValue:e.path,"onUpdate:modelValue":t=>e.path=t,placeholder:w(i)(`retryRules.fieldPath`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),u(w(V),{modelValue:e.operator,"onUpdate:modelValue":t=>e.operator=t},{default:v(()=>[u(w(z),{class:`w-28 shrink-0`},{default:v(()=>[u(w(B))]),_:1}),u(w(F),null,{default:v(()=>[u(w(R),{value:`equals`},{default:v(()=>[g(r(w(i)(`retryRules.operatorEquals`)),1)]),_:1}),u(w(R),{value:`contains`},{default:v(()=>[g(r(w(i)(`retryRules.operatorContains`)),1)]),_:1}),u(w(R),{value:`exists`},{default:v(()=>[g(r(w(i)(`retryRules.operatorExists`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),e.operator===`exists`?E(``,!0):(D(),f(w(W),{key:0,modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:w(i)(`retryRules.matchValue`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])),u(w(y),{type:`button`,variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground`,onClick:e=>le(t)},{default:v(()=>[u(w(ve),{class:`w-4 h-4`})]),_:1},8,[`onClick`])]))),128)),u(w(y),{type:`button`,variant:`outline`,size:`sm`,onClick:ce},{default:v(()=>[u(w(A),{class:`w-3 h-3 mr-1`}),g(` `+r(w(i)(`retryRules.addCondition`)),1)]),_:1}),T.value.body_matchers?(D(),b(`p`,$e,r(T.value.body_matchers),1)):E(``,!0)])]),_:1})]),_:1},8,[`modelValue`])]),e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),u(w(V),{modelValue:C.value.retry_strategy,"onUpdate:modelValue":n[8]||=e=>C.value.retry_strategy=e},{default:v(()=>[u(w(z),{class:`w-full`},{default:v(()=>[u(w(B),{placeholder:w(i)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),u(w(F),null,{default:v(()=>[u(w(R),{value:`exponential`},{default:v(()=>[g(r(w(i)(`retryRules.strategy.exponential`)),1)]),_:1}),u(w(R),{value:`fixed`},{default:v(()=>[g(r(w(i)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),e(`div`,et,[e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(C.value.retry_strategy===`fixed`?w(i)(`retryRules.dialog.intervalMs`):w(i)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),u(w(W),{modelValue:C.value.retry_delay_ms,"onUpdate:modelValue":n[9]||=e=>C.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:n[10]||=e=>delete T.value.retry_delay_ms},null,8,[`modelValue`]),T.value.retry_delay_ms?(D(),b(`p`,tt,r(T.value.retry_delay_ms),1)):E(``,!0)]),e(`div`,null,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.maxRetries`)),1)]),_:1}),u(w(W),{modelValue:C.value.max_retries,"onUpdate:modelValue":n[11]||=e=>C.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:n[12]||=e=>delete T.value.max_retries},null,8,[`modelValue`]),T.value.max_retries?(D(),b(`p`,nt,r(T.value.max_retries),1)):E(``,!0)])]),C.value.retry_strategy===`exponential`?(D(),b(`div`,rt,[u(w(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),u(w(W),{modelValue:C.value.max_delay_ms,"onUpdate:modelValue":n[13]||=e=>C.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:n[14]||=e=>delete T.value.max_delay_ms},null,8,[`modelValue`]),T.value.max_delay_ms?(D(),b(`p`,it,r(T.value.max_delay_ms),1)):E(``,!0)])):E(``,!0),e(`div`,at,[u(w(j),{modelValue:C.value.is_active,"onUpdate:modelValue":n[15]||=e=>C.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),u(w(P),{for:`rule-active`,class:`text-sm text-foreground`},{default:v(()=>[g(r(w(i)(`retryRules.dialog.enable`)),1)]),_:1})]),u(w(pe),null,{default:v(()=>[u(w(y),{type:`button`,variant:`outline`,onClick:n[16]||=e=>h.value=!1},{default:v(()=>[g(r(w(i)(`common.cancel`)),1)]),_:1}),u(w(y),{type:`submit`},{default:v(()=>[g(r(w(i)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),u(w(be),{open:!!S.value,"onUpdate:open":n[18]||=e=>{e||(S.value=null)}},{default:v(()=>[u(w(we),null,{default:v(()=>[u(w(Se),null,{default:v(()=>[u(w(ye),null,{default:v(()=>[g(r(w(i)(`retryRules.deleteConfirm.title`)),1)]),_:1}),u(w(_e),null,{default:v(()=>[g(r(w(i)(`retryRules.deleteConfirm.description`,{name:S.value?.name})),1)]),_:1})]),_:1}),u(w(he),null,{default:v(()=>[u(w(ge),null,{default:v(()=>[g(r(w(i)(`common.cancel`)),1)]),_:1}),u(w(y),{variant:`destructive`,onClick:Oe},{default:v(()=>[g(r(w(i)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),u(ze,{rules:O.value,onAdded:Fe},null,8,[`rules`])],64))]))}});export{ot as default};