llm-simple-router 1.1.2 → 1.1.3

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 (127) hide show
  1. package/dist/admin/providers.js +6 -4
  2. package/dist/admin/quick-setup.js +3 -1
  3. package/dist/app/register-routes.js +2 -0
  4. package/dist/config/model-context.d.ts +2 -0
  5. package/dist/config/model-context.js +4 -0
  6. package/dist/core/concurrency/semaphore.d.ts +15 -2
  7. package/dist/core/concurrency/semaphore.js +36 -4
  8. package/dist/core/constants.d.ts +1 -0
  9. package/dist/core/constants.js +3 -0
  10. package/dist/core/monitor/request-tracker.d.ts +6 -0
  11. package/dist/core/monitor/request-tracker.js +15 -0
  12. package/dist/core/types.d.ts +1 -1
  13. package/dist/db/providers.d.ts +16 -3
  14. package/dist/db/providers.js +27 -12
  15. package/dist/index.js +2 -0
  16. package/dist/proxy/handler/iteration-setup.js +7 -3
  17. package/dist/proxy/orchestration/orchestrator.d.ts +1 -1
  18. package/dist/proxy/orchestration/orchestrator.js +37 -12
  19. package/dist/proxy/orchestration/resilience.d.ts +3 -1
  20. package/dist/proxy/orchestration/resilience.js +17 -2
  21. package/dist/proxy/orchestration/scope.d.ts +1 -1
  22. package/dist/proxy/orchestration/scope.js +2 -2
  23. package/dist/proxy/proxy-core.d.ts +0 -11
  24. package/dist/proxy/proxy-core.js +2 -63
  25. package/dist/proxy/transport/http.d.ts +11 -13
  26. package/dist/proxy/transport/http.js +40 -30
  27. package/dist/proxy/transport/shared.d.ts +23 -0
  28. package/dist/proxy/transport/shared.js +58 -0
  29. package/dist/proxy/transport/stream.d.ts +56 -3
  30. package/dist/proxy/transport/stream.js +128 -49
  31. package/dist/proxy/transport/transport-fn.d.ts +2 -1
  32. package/dist/proxy/transport/transport-fn.js +3 -3
  33. package/frontend-dist/assets/AuthLayout-DgrURhUg.js +1 -0
  34. package/frontend-dist/assets/Card-C_9nHSrd.js +1 -0
  35. package/frontend-dist/assets/CardContent-i69eqvwn.js +1 -0
  36. package/frontend-dist/assets/CardTitle-BG8tDKg7.js +1 -0
  37. package/frontend-dist/assets/CascadingModelSelect-DSBog9EX.js +1 -0
  38. package/frontend-dist/assets/Checkbox-DIo_zvR8.js +1 -0
  39. package/frontend-dist/assets/CollapsibleContent-vZSsPw6t.js +1 -0
  40. package/frontend-dist/assets/CollapsibleTrigger-BBdH_cCm.js +1 -0
  41. package/frontend-dist/assets/ConcurrencyControl-hsDQfbVn.js +1 -0
  42. package/frontend-dist/assets/Dashboard-BndYfuJw.js +3 -0
  43. package/frontend-dist/assets/{Input-DMDfXTXB.js → Input-CCoAeW8B.js} +1 -1
  44. package/frontend-dist/assets/Label-C7Hesw43.js +1 -0
  45. package/frontend-dist/assets/Login-C8ZPAsdy.js +1 -0
  46. package/frontend-dist/assets/Logs-BS0OalCQ.js +1 -0
  47. package/frontend-dist/assets/ModelMappings-Ck6Oddbz.js +1 -0
  48. package/frontend-dist/assets/Monitor-D-yoFX7E.js +1 -0
  49. package/frontend-dist/assets/Providers-CXFMJpnM.js +1 -0
  50. package/frontend-dist/assets/ProxyEnhancement-BY66st8t.js +1 -0
  51. package/frontend-dist/assets/QuickSetup-GgmYoihs.js +1 -0
  52. package/frontend-dist/assets/RetryRules-C_dY-UdI.js +1 -0
  53. package/frontend-dist/assets/RouterKeys-l9RxPss_.js +1 -0
  54. package/frontend-dist/assets/{RovingFocusItem-5H5eE6G2.js → RovingFocusItem-8-Pjjqen.js} +1 -1
  55. package/frontend-dist/assets/Schedules-B0TVDH59.js +1 -0
  56. package/frontend-dist/assets/Separator-D6RzArbH.js +1 -0
  57. package/frontend-dist/assets/Settings-BkSAw8ff.js +6 -0
  58. package/frontend-dist/assets/Setup-38qAFwc9.js +1 -0
  59. package/frontend-dist/assets/Skeleton-BpwFXs9Z.js +1 -0
  60. package/frontend-dist/assets/Switch-BVug67mH.js +1 -0
  61. package/frontend-dist/assets/TableHeader-CARoN-zc.js +1 -0
  62. package/frontend-dist/assets/TabsTrigger-t8wD-SZ9.js +1 -0
  63. package/frontend-dist/assets/UnifiedRequestDialog-h4e7P7Id.js +3 -0
  64. package/frontend-dist/assets/{VisuallyHiddenInput-DrNFhnVL.js → VisuallyHiddenInput-CzjlCU82.js} +1 -1
  65. package/frontend-dist/assets/arrow-down-P_02O0zN.js +1 -0
  66. package/frontend-dist/assets/badge-CxTrJsDs.js +1 -0
  67. package/frontend-dist/assets/{button-BBiWml8B.js → button-CEjoKdKq.js} +2 -2
  68. package/frontend-dist/assets/chevron-right-Bvw4z2Yf.js +1 -0
  69. package/frontend-dist/assets/dialog-DPvcfIzg.js +1 -0
  70. package/frontend-dist/assets/{image-zYdpUIEA.js → image-DOH8COxk.js} +1 -1
  71. package/frontend-dist/assets/index-DE_N-dT0.js +58 -0
  72. package/frontend-dist/assets/{index-DyQ39g4W.css → index-DGJSS9jI.css} +1 -1
  73. package/frontend-dist/assets/model-patches-BVZz8hmE.js +1 -0
  74. package/frontend-dist/assets/{pencil-C3-MFg-d.js → pencil-BERHubJ1.js} +1 -1
  75. package/frontend-dist/assets/plus-B9mBymA8.js +1 -0
  76. package/frontend-dist/assets/quickSetup-jgJgPUcH.js +1 -0
  77. package/frontend-dist/assets/quickSetup-qTjp3Z6J.js +1 -0
  78. package/frontend-dist/assets/search-uTHGe-LF.js +1 -0
  79. package/frontend-dist/assets/{sparkles-B5RWZZuf.js → sparkles-gPb_SItQ.js} +1 -1
  80. package/frontend-dist/assets/transform-domain-C42QlTbk.js +1 -0
  81. package/frontend-dist/assets/{trash-2-Dn3T5-Z1.js → trash-2-m7vH2ViZ.js} +1 -1
  82. package/frontend-dist/assets/{useClipboard-Bx3CrPal.js → useClipboard-Bzk0ItE3.js} +1 -1
  83. package/frontend-dist/assets/useLogRetention-I_TUncV5.js +1 -0
  84. package/frontend-dist/assets/{useProviderGroups-Og5FpCPe.js → useProviderGroups-bpCq-vsG.js} +1 -1
  85. package/frontend-dist/index.html +3 -3
  86. package/package.json +1 -1
  87. package/frontend-dist/assets/AuthLayout-jELzICkx.js +0 -1
  88. package/frontend-dist/assets/Card-uC_v0CEa.js +0 -1
  89. package/frontend-dist/assets/CardContent-CP3OiCj4.js +0 -1
  90. package/frontend-dist/assets/CardTitle-DGxuW5DZ.js +0 -1
  91. package/frontend-dist/assets/CascadingModelSelect-Dzk7rxIN.js +0 -1
  92. package/frontend-dist/assets/Checkbox-C1aVqGdC.js +0 -1
  93. package/frontend-dist/assets/CollapsibleContent-pBG4UkLo.js +0 -1
  94. package/frontend-dist/assets/CollapsibleTrigger-D5TkgXmz.js +0 -1
  95. package/frontend-dist/assets/ConcurrencyControl-5GweS-rY.js +0 -1
  96. package/frontend-dist/assets/Dashboard-wjd3d3qk.js +0 -3
  97. package/frontend-dist/assets/Label-BQXea0mo.js +0 -1
  98. package/frontend-dist/assets/Login-DNpCjxrY.js +0 -1
  99. package/frontend-dist/assets/Logs-BuL2Z0sF.js +0 -1
  100. package/frontend-dist/assets/ModelMappings-DeRhu-2N.js +0 -1
  101. package/frontend-dist/assets/Monitor-V30dnACo.js +0 -1
  102. package/frontend-dist/assets/Providers-BkkQhSTb.js +0 -1
  103. package/frontend-dist/assets/ProxyEnhancement-DjgebwfU.js +0 -1
  104. package/frontend-dist/assets/QuickSetup-BTVjEiU7.js +0 -1
  105. package/frontend-dist/assets/RetryRules-DFBHBG-B.js +0 -1
  106. package/frontend-dist/assets/RouterKeys-DZADvMfh.js +0 -1
  107. package/frontend-dist/assets/Schedules-DUubZ2uN.js +0 -1
  108. package/frontend-dist/assets/Separator-BqIs_Dy3.js +0 -1
  109. package/frontend-dist/assets/Settings-CO59WLOZ.js +0 -6
  110. package/frontend-dist/assets/Setup-Br7JZKNp.js +0 -1
  111. package/frontend-dist/assets/Skeleton-gVyjaP-y.js +0 -1
  112. package/frontend-dist/assets/Switch-D1ER0j6H.js +0 -1
  113. package/frontend-dist/assets/TableHeader-MqyrNSsx.js +0 -1
  114. package/frontend-dist/assets/TabsTrigger-DdjWJbUq.js +0 -1
  115. package/frontend-dist/assets/UnifiedRequestDialog-DRthlI6j.js +0 -3
  116. package/frontend-dist/assets/arrow-down-BFgGYafs.js +0 -1
  117. package/frontend-dist/assets/badge-Db4OYMEf.js +0 -1
  118. package/frontend-dist/assets/chevron-right-DYwStkJr.js +0 -1
  119. package/frontend-dist/assets/dialog-DRYeWncC.js +0 -1
  120. package/frontend-dist/assets/index-DTujoAWx.js +0 -58
  121. package/frontend-dist/assets/model-patches-DIy-rFuq.js +0 -1
  122. package/frontend-dist/assets/plus-xmIDnujf.js +0 -1
  123. package/frontend-dist/assets/quickSetup-CqxQRMCR.js +0 -1
  124. package/frontend-dist/assets/quickSetup-DplqYrvf.js +0 -1
  125. package/frontend-dist/assets/search-BxNrTsG8.js +0 -1
  126. package/frontend-dist/assets/transform-domain-KBixlLXR.js +0 -1
  127. package/frontend-dist/assets/useLogRetention-CdccNhYN.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-BBiWml8B.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{It as e,J as t,Jt as n,Nt as r,Xt as i,h as a,r as o,rt as s,st as c,yt as l}from"./button-CEjoKdKq.js";var u=c({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(c,{emit:u}){let d=c,f=a(d,`modelValue`,u,{passive:!0,defaultValue:d.defaultValue});return(a,c)=>r((l(),s(`input`,{"onUpdate:modelValue":c[0]||=t=>e(f)?f.value=t:null,"data-slot":`input`,class:i(n(o)(`dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 h-8 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors file:h-6 file:text-sm file:font-medium focus-visible:ring-3 aria-invalid:ring-3 md:text-sm w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,d.class))},null,2)),[[t,n(f)]])}});export{u as t};
@@ -0,0 +1 @@
1
+ import{Jt as e,Mt as t,S as n,St as r,i,mt as a,o,r as s,st as c,tt as l,yt as u}from"./button-CEjoKdKq.js";var d=c({__name:`Label`,props:{for:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`label`}},setup(n){let s=n;return o(),(n,o)=>(u(),l(e(i),a(s,{onMousedown:o[0]||=e=>{!e.defaultPrevented&&e.detail>1&&e.preventDefault()}}),{default:t(()=>[r(n.$slots,`default`)]),_:3},16))}}),f=c({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(i){let o=i,c=n(o,`class`);return(n,i)=>(u(),l(e(d),a({"data-slot":`label`},e(c),{class:e(s)(`gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed`,o.class)}),{default:t(()=>[r(n.$slots,`default`)]),_:3},16,[`class`]))}});export{f as t};
@@ -0,0 +1 @@
1
+ import{$t as e,A as t,Bt as n,Jt as r,Mt as i,V as a,W as o,X as s,at as c,et as l,j as u,n as d,nt as f,ot as p,rt as m,st as h,tt as g,yt as _}from"./button-CEjoKdKq.js";import{t as v}from"./Label-C7Hesw43.js";import{t as y}from"./Input-CCoAeW8B.js";import{t as b}from"./AuthLayout-DgrURhUg.js";var x={key:0,class:`text-destructive text-sm`},S=h({__name:`Login`,setup(h){let{t:S}=o(),C=a(),w=n(``),T=n(``),E=n(!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=u(e,S(`login.loginFailed`))}finally{E.value=!1}}}return(t,n)=>(_(),g(b,{subtitle:r(S)(`login.subtitle`)},{default:i(()=>[l(`form`,{onSubmit:s(D,[`prevent`]),class:`space-y-4`},[l(`div`,null,[p(r(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[c(e(r(S)(`login.password`)),1)]),_:1}),p(r(y),{modelValue:w.value,"onUpdate:modelValue":n[0]||=e=>w.value=e,type:`password`,placeholder:r(S)(`login.passwordPlaceholder`),disabled:E.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),T.value?(_(),m(`p`,x,e(T.value),1)):f(``,!0),p(r(d),{type:`submit`,class:`w-full`,disabled:E.value},{default:i(()=>[c(e(E.value?r(S)(`login.loggingIn`):r(S)(`login.loginButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{S as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,It as i,Jt as a,Mt as o,W as s,X as c,Xt as l,Z as u,_t as d,at as f,et as p,j as m,kt as h,n as g,nt as _,ot as v,rt as y,st as b,tt as x,xt as S,yt as C}from"./button-CEjoKdKq.js";import{r as w,t as ee}from"./UnifiedRequestDialog-h4e7P7Id.js";import{a as T,i as E,o as D}from"./TabsTrigger-t8wD-SZ9.js";import{a as te,n as ne,o as re,r as ie,t as ae}from"./dialog-DPvcfIzg.js";import{t as oe}from"./Label-C7Hesw43.js";import{At as O,St as k,Tt as se,_ as A,a as j,c as ce,f as le,g as M,gt as ue,h as N,kt as de,l as fe,m as P,o as pe,p as me,s as he,t as ge,u as _e,v as F,vt as ve,yt as I}from"./index-DE_N-dT0.js";import{t as L}from"./Skeleton-BpwFXs9Z.js";import{t as R}from"./badge-CxTrJsDs.js";import{t as z}from"./Input-CCoAeW8B.js";import{t as ye}from"./Card-C_9nHSrd.js";import{a as be,i as B,n as V,o as xe,r as H,t as Se}from"./TableHeader-CARoN-zc.js";import{t as Ce}from"./useClipboard-Bzk0ItE3.js";import{t as we}from"./useLogRetention-I_TUncV5.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=b({__name:`LogTableRow`,props:{log:{},isChild:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},copiedId:{default:null}},emits:[`toggleExpand`,`openDetail`,`copy`],setup(n,{emit:r}){let i=n,d=r,{t:m}=s(),h=e(()=>i.log.thinking_level??`off`);function b(e){if(!e)return m(`logs.row.unknown`);try{let t=JSON.parse(e);return t.action?t.detail?`${t.action}: ${t.detail}`:t.action:e}catch(e){return console.error(`LogTableRow.formatLog:`,e),m(`logs.row.unknown`)}}return(e,r)=>(C(),x(a(H),{class:l([`group`,{"bg-destructive/10":!n.isChild&&(n.log.status_code??0)>=400,"bg-muted/20":n.isChild}])},{default:o(()=>[v(a(B),{class:`w-10`},{default:o(()=>[!n.isChild&&n.log.child_count?(C(),x(a(g),{key:0,variant:`ghost`,size:`xs`,onClick:r[0]||=e=>d(`toggleExpand`,n.log)},{default:o(()=>[v(a(ve),{class:l([`size-3 transition-transform`,n.expanded?``:`-rotate-90`])},null,8,[`class`])]),_:1})):_(``,!0),n.isChild?(C(),y(`span`,Te,`└`)):_(``,!0)]),_:1}),v(a(B),{class:`font-mono text-xs text-muted-foreground`,title:n.log.id},{default:o(()=>[p(`span`,U,[f(t(n.log.id.slice(0,8))+` `,1),v(a(D),{"delay-duration":300},{default:o(()=>[v(a(E),{"as-child":``},{default:o(()=>[v(a(g),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:r[1]||=c(e=>d(`copy`,n.log.id),[`stop`])},{default:o(()=>[n.copiedId===n.log.id?(C(),x(a(I),{key:0,class:`size-3 text-success`})):(C(),x(a(ue),{key:1,class:`size-3`}))]),_:1})]),_:1}),v(a(T),null,{default:o(()=>[f(t(a(m)(`logs.row.copyFullId`)),1)]),_:1})]),_:1})])]),_:1},8,[`title`]),v(a(B),{class:`font-mono text-xs text-muted-foreground whitespace-nowrap`},{default:o(()=>[f(t(a(se)(n.log.created_at)),1)]),_:1}),v(a(B),{class:`font-mono text-xs whitespace-nowrap`},{default:o(()=>[f(t(n.log.model||`-`)+` `,1),v(a(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:o(()=>[f(t(n.log.api_type),1)]),_:1})]),_:1}),v(a(B),{class:`text-xs whitespace-nowrap`},{default:o(()=>[!n.isChild&&n.log.provider_id===a(`router`)?(C(),x(a(R),{key:0,variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:o(()=>[f(t(a(m)(`logs.row.proxyEnhancement`,{label:b(n.log.upstream_request)})),1)]),_:1})):n.log.backend_model||n.log.provider_name?(C(),y(u,{key:1},[p(`span`,W,t(n.log.backend_model||`-`),1),r[3]||=p(`span`,{class:`text-muted-foreground`},` @ `,-1),p(`span`,G,t(n.log.provider_name||n.log.provider_id||`-`),1),v(a(R),{variant:`secondary`,class:`ml-1 text-[10px] px-1 py-0`},{default:o(()=>[f(t(n.log.api_type),1)]),_:1})],64)):(C(),y(`span`,K,`-`))]),_:1}),v(a(B),null,{default:o(()=>[p(`div`,Ee,[n.log.upstream_api_type&&n.log.upstream_api_type!==n.log.api_type?(C(),x(a(R),{key:0,variant:n.log.api_type===`openai`?`default`:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:o(()=>[f(t(n.log.api_type)+` → `+t(n.log.upstream_api_type),1)]),_:1},8,[`variant`])):_(``,!0),v(a(R),{variant:(n.log.status_code??0)<400?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:o(()=>[f(t(n.log.status_code||`-`),1)]),_:1},8,[`variant`]),h.value?(C(),x(a(R),{key:1,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:o(()=>[f(t(h.value),1)]),_:1})):_(``,!0),n.log.is_stream?(C(),x(a(R),{key:2,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:o(()=>[...r[4]||=[f(` SSE `,-1)]]),_:1})):_(``,!0),n.log.is_retry?(C(),x(a(R),{key:3,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-warning-dark border-warning`},{default:o(()=>[f(t(a(m)(`logs.table.retry`)),1)]),_:1})):_(``,!0),n.log.is_failover?(C(),x(a(R),{key:4,variant:`outline`,class:`text-[10px] px-1.5 py-0 text-danger-dark border-danger`},{default:o(()=>[f(t(a(m)(`logs.table.failover`)),1)]),_:1})):_(``,!0)])]),_:1}),v(a(B),{class:`text-xs text-muted-foreground font-mono`},{default:o(()=>[f(t(a(k)(n.log.latency_ms)),1)]),_:1}),v(a(B),{class:`text-destructive text-xs min-w-0 max-w-60 lg:max-w-xs`},{default:o(()=>[n.log.error_message?(C(),x(a(D),{key:0,"delay-duration":300},{default:o(()=>[v(a(E),{"as-child":``},{default:o(()=>[p(`span`,q,t(n.log.error_message),1)]),_:1}),v(a(T),{class:`max-w-sm whitespace-pre-wrap`},{default:o(()=>[f(t(n.log.error_message),1)]),_:1})]),_:1})):(C(),y(`span`,J,`-`))]),_:1}),v(a(B),null,{default:o(()=>[v(a(g),{variant:`ghost`,size:`sm`,onClick:r[2]||=e=>d(`openDetail`,n.log.id)},{default:o(()=>[f(t(a(m)(`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}=s(),i=r(`5h`),a=r({start:``,end:``}),o=r(`all`),c=r(`all`),l=r(`all`),u=r(`all`),f=r(`all`),p=r(`all`),h=r([]),g=r([]),_=r([]),v=r([]),y=e(()=>a.value.start&&a.value.end&&a.value.start<a.value.end),b=e(()=>{let{start:e,end:n}=a.value;return!e||!n?``:e>=n?t(`logs.validation.endTimeAfterStart`):``}),x={"1h":36e5,"5h":18e6,"24h":864e5,"7d":6048e5,"30d":2592e6};function S(){let e={};if(y.value)e.start_time=O(a.value.start),e.end_time=de(a.value.end);else{let t=x[i.value];t&&(e.start_time=new Date(Date.now()-t).toISOString())}return f.value!==`all`&&(e.api_type=f.value),o.value!==`all`&&(e.provider_id=o.value),c.value!==`all`&&(e.client_model=c.value),l.value!==`all`&&(e.backend_model=l.value),u.value!==`all`&&(e.router_key_id=u.value),p.value!==`all`&&(e.status_code=p.value),e}function C(){a.value={start:``,end:``}}async function w(){try{h.value=await n.getProviders()}catch(e){console.error(`Failed to load providers:`,e),j.error(m(e,t(`logs.messages.loadProvidersFailed`)))}}async function ee(){try{g.value=await n.getRouterKeys()}catch(e){console.error(`Failed to load router keys:`,e),j.error(m(e,t(`logs.messages.loadKeysFailed`)))}}async function T(){try{let e=await n.getMappingGroups(),t=new Set,r=new Set;for(let n of e){n.client_model&&t.add(n.client_model);let e=Oe(n.rule);if(e)for(let t of e.targets??[])t.backend_model&&r.add(t.backend_model)}_.value=[...t].sort(),v.value=[...r].sort()}catch(e){console.error(`useLogFilters.loadModelOptions:`,e),_.value=[],v.value=[]}}return d(async()=>{try{let e=await n.getLogsInit();e.providers&&(h.value=e.providers),e.router_keys&&(g.value=e.router_keys),e.client_models&&(_.value=e.client_models),e.backend_models&&(v.value=e.backend_models)}catch(e){console.error(`useLogFilters.init:`,e),await Promise.allSettled([w(),ee(),T()])}}),{PERIODS:ke,period:i,dateRange:a,dateRangeError:b,providerFilter:o,clientModelFilter:c,backendModelFilter:l,keyFilter:u,apiTypeFilter:f,statusFilter:p,providers:h,routerKeys:g,clientModelOptions:_,backendModelOptions:v,hasDateRange:y,clearDateRange:C,buildFilterParams:S}}var Y=20,je=864e5;function Me(){let{t}=s(),i=r([]),a=r(0),o=r(1),c=r({}),l=r(30),u=r(!1),d=r(!1),f=r(new Set),p=r({}),h=r({}),g=r(!1),_=r(null),v=e(()=>Math.ceil(a.value/Y));async function y(e){e&&(c.value=e),u.value=!0;try{let e=await n.getLogs({page:o.value,limit:Y,view:`grouped`,...c.value});i.value=e.data,a.value=e.total,f.value.clear(),p.value={},h.value={}}catch(e){console.error(`Failed to load logs:`,e),j.error(m(e,t(`logs.messages.loadFailed`)))}finally{u.value=!1}}function b(e){e>=1&&e<=v.value&&e!==o.value&&(o.value=e,y())}let x=r(null),S=r(!1);async function C(){try{let e=new Date(Date.now()-l.value*je).toISOString(),t=await n.deleteLogsBefore(e);d.value=!1,o.value=1,await y(),x.value=t.deleted,S.value=!0}catch(e){console.error(`Failed to cleanup logs:`,e),j.error(m(e,t(`logs.messages.cleanupFailed`)))}}async function ee(e){let r=e.id;if(f.value.has(r)){f.value.delete(r);return}if(f.value.add(r),!p.value[r]){h.value[r]=!0;try{p.value[r]=await n.getLogChildren(r)}catch(e){console.error(`Failed to load child logs:`,e),j.error(m(e,t(`logs.messages.loadSubRequestsFailed`)))}finally{h.value[r]=!1}}}async function T(e){try{let t=await n.getLogDetail(e);_.value=w(t,t.child_count?await n.getLogChildren(e):[]),g.value=!0}catch(e){console.error(`Failed to load log detail:`,e),j.error(m(e,t(`logs.messages.loadDetailFailed`)))}}return{PAGE_SIZE:Y,loading:u,logs:i,total:a,page:o,totalPages:v,cleanupDays:l,showCleanup:d,expandedRows:f,childLogs:p,childLoading:h,logDetailOpen:g,selectedLogEntry:_,cleanupResult:x,showCleanupResult:S,loadLogs:y,goToPage:b,handleCleanup:C,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=b({__name:`Logs`,setup(n){let{t:c}=s(),{PERIODS:l,period:m,dateRange:b,dateRangeError:w,providerFilter:T,clientModelFilter:E,backendModelFilter:D,keyFilter:O,statusFilter:k,providers:se,routerKeys:j,clientModelOptions:ue,backendModelOptions:de,clearDateRange:ve,buildFilterParams:I}=Ae(),{logs:R,total:Te,page:U,totalPages:W,cleanupDays:G,showCleanup:K,cleanupResult:Ee,showCleanupResult:q,expandedRows:J,childLogs:Oe,childLoading:ke,logDetailOpen:Y,selectedLogEntry:je,loadLogs:it,goToPage:Q,handleCleanup:at,toggleExpand:ot,openLogDetail:st,loading:ct}=Me(),lt=e(()=>{let e=W.value,t=U.value;if(e<=nt)return Array.from({length:e},(e,t)=>t+1);let n=[Z],r=Math.max(Z+1,t-X),i=Math.min(e-Z,t+X);r>Z+X&&n.push(`...`);for(let e=r;e<=i;e++)n.push(e);return i<e-X&&n.push(`...`),n.push(e),n}),{retentionDays:ut,retentionSaving:dt,saveRetention:ft,loadRetention:pt}=we(),{copy:mt}=Ce(),$=r(null);function ht(e){mt(e),$.value=e,setTimeout(()=>{$.value===e&&($.value=null)},rt)}let gt=e(()=>T.value!==`all`||E.value!==`all`||D.value!==`all`||O.value!==`all`||k.value!==`all`||!!b.value.start||!!b.value.end);function _t(){m.value=`5h`,b.value={start:``,end:``},T.value=`all`,E.value=`all`,D.value=`all`,O.value=`all`,k.value=`all`}let vt=null;return h([m,b,T,E,D,O,k],()=>{U.value=1,vt&&clearTimeout(vt),vt=setTimeout(()=>it(I()),tt)},{deep:!0}),d(()=>{it(I()),pt()}),(e,n)=>(C(),y(`div`,Ne,[p(`div`,Pe,[p(`h2`,Fe,t(a(c)(`logs.title`)),1),v(a(g),{variant:`ghost`,size:`sm`,onClick:n[0]||=e=>K.value=!0},{default:o(()=>[f(t(a(c)(`logs.cleanupLogs`)),1)]),_:1})]),p(`div`,Ie,[p(`div`,Le,[(C(!0),y(u,null,S(a(l),e=>(C(),x(a(g),{key:e.value,variant:a(m)===e.value?`default`:`outline`,size:`sm`,class:`rounded-none first:rounded-l-md last:rounded-r-md -ml-px first:ml-0`,onClick:t=>m.value=e.value},{default:o(()=>[f(t(e.label),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),p(`div`,Re,[v(a(z),{type:`datetime-local`,modelValue:a(b).start,"onUpdate:modelValue":n[1]||=e=>a(b).start=e,class:`w-44`},null,8,[`modelValue`]),n[19]||=p(`span`,{class:`text-muted-foreground text-sm`},`-`,-1),v(a(z),{type:`datetime-local`,modelValue:a(b).end,"onUpdate:modelValue":n[2]||=e=>a(b).end=e,class:`w-44`},null,8,[`modelValue`]),a(b).start||a(b).end?(C(),x(a(g),{key:0,variant:`ghost`,size:`sm`,onClick:a(ve)},{default:o(()=>[f(t(a(c)(`logs.clear`)),1)]),_:1},8,[`onClick`])):_(``,!0),a(w)?(C(),y(`span`,ze,t(a(w)),1)):_(``,!0)]),v(a(F),{modelValue:a(T),"onUpdate:modelValue":n[3]||=e=>i(T)?T.value=e:null},{default:o(()=>[v(a(N),{class:`w-28 truncate h-8 text-xs`},{default:o(()=>[v(a(P),{placeholder:a(c)(`logs.allProviders`)},null,8,[`placeholder`])]),_:1}),v(a(A),null,{default:o(()=>[v(a(M),{value:`all`},{default:o(()=>[f(t(a(c)(`logs.allProviders`)),1)]),_:1}),(C(!0),y(u,null,S(a(se),e=>(C(),x(a(M),{key:e.id,value:e.id},{default:o(()=>[f(t(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),v(a(F),{modelValue:a(E),"onUpdate:modelValue":n[4]||=e=>i(E)?E.value=e:null},{default:o(()=>[v(a(N),{class:`w-32 truncate h-8 text-xs`},{default:o(()=>[v(a(P),{placeholder:a(c)(`logs.filters.allClientModels`)},null,8,[`placeholder`])]),_:1}),v(a(A),null,{default:o(()=>[v(a(M),{value:`all`},{default:o(()=>[f(t(a(c)(`logs.filters.allClientModels`)),1)]),_:1}),(C(!0),y(u,null,S(a(ue),e=>(C(),x(a(M),{key:e,value:e},{default:o(()=>[f(t(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),v(a(F),{modelValue:a(D),"onUpdate:modelValue":n[5]||=e=>i(D)?D.value=e:null},{default:o(()=>[v(a(N),{class:`w-32 truncate`},{default:o(()=>[v(a(P),{placeholder:a(c)(`logs.filters.allBackendModels`)},null,8,[`placeholder`])]),_:1}),v(a(A),null,{default:o(()=>[v(a(M),{value:`all`},{default:o(()=>[f(t(a(c)(`logs.filters.allBackendModels`)),1)]),_:1}),(C(!0),y(u,null,S(a(de),e=>(C(),x(a(M),{key:e,value:e},{default:o(()=>[f(t(e),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),v(a(F),{modelValue:a(O),"onUpdate:modelValue":n[6]||=e=>i(O)?O.value=e:null},{default:o(()=>[v(a(N),{class:`w-32 truncate h-8 text-xs`},{default:o(()=>[v(a(P),{placeholder:a(c)(`logs.allKeys`)},null,8,[`placeholder`])]),_:1}),v(a(A),null,{default:o(()=>[v(a(M),{value:`all`},{default:o(()=>[f(t(a(c)(`logs.allKeys`)),1)]),_:1}),(C(!0),y(u,null,S(a(j),e=>(C(),x(a(M),{key:e.id,value:e.id},{default:o(()=>[f(t(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),v(a(F),{modelValue:a(k),"onUpdate:modelValue":n[7]||=e=>i(k)?k.value=e:null},{default:o(()=>[v(a(N),{class:`w-28 truncate h-8 text-xs`},{default:o(()=>[v(a(P),{placeholder:a(c)(`logs.allStatus`)},null,8,[`placeholder`])]),_:1}),v(a(A),null,{default:o(()=>[v(a(M),{value:`all`},{default:o(()=>[f(t(a(c)(`logs.allStatus`)),1)]),_:1}),v(a(M),{value:`200`},{default:o(()=>[...n[20]||=[f(`200`,-1)]]),_:1}),v(a(M),{value:`non200`},{default:o(()=>[f(t(a(c)(`logs.non200`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),v(a(ye),{flush:``,class:`relative`},{default:o(()=>[a(ct)?(C(),y(`div`,Be,[p(`div`,Ve,[v(a(L),{class:`h-8 w-full`}),v(a(L),{class:`h-8 w-full`}),v(a(L),{class:`h-8 w-5/6`})])])):_(``,!0),v(a(ge),{"delay-duration":300},{default:o(()=>[v(a(xe),{class:`[&_td]:px-3 [&_th]:px-3`},{default:o(()=>[v(a(Se),null,{default:o(()=>[v(a(H),{class:`bg-muted`},{default:o(()=>[v(a(V),{class:`w-10`}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.id`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.time`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.clientModel`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.targetModel`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.latency`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.tags`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.latency`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.error`)),1)]),_:1}),v(a(V),{class:`text-muted-foreground`},{default:o(()=>[f(t(a(c)(`logs.table.actions`)),1)]),_:1})]),_:1})]),_:1}),v(a(be),null,{default:o(()=>[(C(!0),y(u,null,S(a(R),e=>(C(),y(u,{key:e.id},[v(De,{log:e,expanded:a(J).has(e.id),"copied-id":$.value,onToggleExpand:a(ot),onOpenDetail:a(st),onCopy:ht},null,8,[`log`,`expanded`,`copied-id`,`onToggleExpand`,`onOpenDetail`]),a(J).has(e.id)?(C(),y(u,{key:0},[a(ke)[e.id]?(C(),x(a(H),{key:0},{default:o(()=>[v(a(B),{colspan:et,class:`text-center py-2 pl-10`},{default:o(()=>[v(a(L),{class:`h-4 w-32 mx-auto`})]),_:1})]),_:1})):a(Oe)[e.id]?.length?(C(!0),y(u,{key:1},S(a(Oe)[e.id],e=>(C(),x(De,{key:e.id,log:e,"is-child":!0,"copied-id":$.value,onOpenDetail:a(st),onCopy:ht},null,8,[`log`,`copied-id`,`onOpenDetail`]))),128)):_(``,!0)],64)):_(``,!0)],64))),128)),a(R).length===0&&!a(ct)?(C(),x(a(H),{key:0},{default:o(()=>[v(a(B),{colspan:et,class:`py-12 text-center`},{default:o(()=>[p(`div`,He,[p(`p`,Ue,t(a(c)(`logs.noLogs`)),1),gt.value?(C(),y(`p`,We,t(a(c)(`logs.noLogsFilterHint`)),1)):_(``,!0),gt.value?(C(),x(a(g),{key:1,variant:`ghost`,size:`sm`,onClick:_t},{default:o(()=>[f(t(a(c)(`logs.clearAllFilters`)),1)]),_:1})):_(``,!0)])]),_:1})]),_:1})):_(``,!0)]),_:1})]),_:1})]),_:1})]),_:1}),p(`div`,Ge,[p(`p`,Ke,t(a(c)(`logs.pagination`,{total:a(Te),page:a(U),totalPages:a(W)})),1),p(`div`,qe,[v(a(g),{variant:`outline`,size:`sm`,onClick:n[8]||=e=>a(Q)(1),disabled:a(U)<=1},{default:o(()=>[f(t(a(c)(`logs.firstPage`)),1)]),_:1},8,[`disabled`]),v(a(g),{variant:`outline`,size:`sm`,onClick:n[9]||=e=>a(Q)(a(U)-1),disabled:a(U)<=1},{default:o(()=>[f(t(a(c)(`logs.prevPage`)),1)]),_:1},8,[`disabled`]),(C(!0),y(u,null,S(lt.value,e=>(C(),y(u,{key:e},[e===`...`?(C(),y(`span`,Je,`...`)):(C(),x(a(g),{key:1,variant:e===a(U)?`default`:`outline`,size:`sm`,class:`min-w-8`,onClick:t=>a(Q)(e)},{default:o(()=>[f(t(e),1)]),_:2},1032,[`variant`,`onClick`]))],64))),128)),v(a(g),{variant:`outline`,size:`sm`,onClick:n[10]||=e=>a(Q)(a(U)+1),disabled:a(U)>=a(W)},{default:o(()=>[f(t(a(c)(`logs.nextPage`)),1)]),_:1},8,[`disabled`]),v(a(g),{variant:`outline`,size:`sm`,onClick:n[11]||=e=>a(Q)(a(W)),disabled:a(U)>=a(W)},{default:o(()=>[f(t(a(c)(`logs.lastPage`)),1)]),_:1},8,[`disabled`])])]),p(`div`,Ye,[p(`span`,Xe,t(a(c)(`logs.cleanup.autoCleanup`)),1),v(a(z),{type:`number`,modelValue:a(ut),"onUpdate:modelValue":n[12]||=e=>i(ut)?ut.value=e:null,modelModifiers:{number:!0},min:0,max:90,class:`w-16 h-6 text-xs`},null,8,[`modelValue`]),p(`span`,Ze,t(a(c)(`logs.cleanup.days`)),1),v(a(g),{size:`sm`,onClick:a(ft),disabled:a(dt)},{default:o(()=>[f(t(a(c)(`logs.cleanup.saveSettings`)),1)]),_:1},8,[`onClick`,`disabled`])]),v(ee,{open:a(Y),"onUpdate:open":n[13]||=e=>i(Y)?Y.value=e:null,source:`history`,"log-entry":a(je)},null,8,[`open`,`log-entry`]),v(a(re),{open:a(K),"onUpdate:open":n[16]||=e=>i(K)?K.value=e:null},{default:o(()=>[v(a(te),null,{default:o(()=>[v(a(ne),null,{default:o(()=>[v(a(ae),null,{default:o(()=>[f(t(a(c)(`logs.cleanup.title`)),1)]),_:1})]),_:1}),p(`p`,Qe,t(a(c)(`logs.cleanup.description`)),1),p(`div`,$e,[v(a(oe),{class:`block text-sm font-medium text-foreground mb-1`},{default:o(()=>[f(t(a(c)(`logs.cleanup.keepRecentDays`)),1)]),_:1}),v(a(z),{modelValue:a(G),"onUpdate:modelValue":n[14]||=e=>i(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,min:1},null,8,[`modelValue`])]),v(a(ie),null,{default:o(()=>[v(a(g),{variant:`outline`,onClick:n[15]||=e=>K.value=!1},{default:o(()=>[f(t(a(c)(`common.cancel`)),1)]),_:1}),v(a(g),{variant:`destructive`,onClick:a(at)},{default:o(()=>[f(t(a(c)(`logs.cleanup.confirmCleanup`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),v(a(me),{open:a(q),"onUpdate:open":n[18]||=e=>i(q)?q.value=e:null},{default:o(()=>[v(a(_e),null,{default:o(()=>[v(a(he),null,{default:o(()=>[v(a(pe),null,{default:o(()=>[f(t(a(c)(`logs.cleanupResult.title`)),1)]),_:1}),v(a(fe),null,{default:o(()=>[f(t(a(c)(`logs.cleanupResult.description`,{count:a(Ee)})),1)]),_:1})]),_:1}),v(a(ce),null,{default:o(()=>[v(a(le),{onClick:n[17]||=e=>q.value=!1},{default:o(()=>[f(t(a(c)(`logs.cleanupResult.ok`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{it as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,Jt as i,Mt as a,Qt as o,W as s,X as c,Xt as l,Z as u,_t as ee,at as d,et as f,j as p,kt as te,n as m,nt as h,ot as g,rt as _,st as ne,tt as re,xt as v,yt as y,z as b}from"./button-CEjoKdKq.js";import{t as ie}from"./arrow-down-P_02O0zN.js";import{t as ae}from"./image-DOH8COxk.js";import{t as x}from"./plus-B9mBymA8.js";import{a as oe,n as se,o as ce,r as le,t as ue}from"./dialog-DPvcfIzg.js";import{t as S}from"./Label-C7Hesw43.js";import{t as C}from"./Switch-BVug67mH.js";import{a as w,ct as de,lt as fe,ut as pe}from"./index-DE_N-dT0.js";import{t as T}from"./Input-CCoAeW8B.js";import{t as E}from"./CascadingModelSelect-DSBog9EX.js";import{t as me}from"./useProviderGroups-bpCq-vsG.js";var he=b(`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 ge(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(` → `)}function _e(e,t,n){if(t===n)return[...e];let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}var ve={class:`page`},ye={class:`flex items-center gap-4 mb-4`},be={class:`text-base font-semibold text-foreground shrink-0`},xe={class:`flex gap-4`,style:{"min-height":`calc(100vh - 120px)`}},Se={class:`w-[340px] shrink-0 flex flex-col gap-2`},Ce={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`],we={class:`flex-1 min-w-0`},Te={key:0,class:`py-8 text-center text-xs text-muted-foreground/50`},Ee={class:`flex-1 bg-card rounded-lg border border-border flex flex-col overflow-hidden`},De={key:0,class:`flex-1 flex items-center justify-center text-muted-foreground/50 text-sm flex-col gap-2`},Oe={class:`flex items-center gap-3 px-4 py-3 border-b border-border bg-background/30`},ke={class:`font-mono text-sm font-bold flex-1 truncate`},Ae={class:`flex-1 overflow-y-auto px-4 py-4 space-y-5`},je={class:`flex items-center gap-2 mb-2`},Me={class:`text-xs font-semibold text-muted-foreground`},Ne={class:`font-mono text-[10px] text-muted-foreground/40 bg-muted/30 px-1.5 py-px rounded`},Pe={class:`flex flex-col gap-1.5`},Fe={key:0,class:`h-0.5 bg-primary rounded-full`},Ie=[`draggable`,`onDragstart`,`onDragover`],Le={key:0,class:`h-0.5 bg-primary rounded-full`},Re={class:`flex items-center gap-2 mb-2`},ze={class:`text-xs font-semibold text-primary/60`},Be={key:0,class:`font-mono text-[10px] text-primary/40 bg-primary/8 px-1.5 py-px rounded`},Ve={class:`bg-background border border-border rounded-md px-3 py-2.5`},He={class:`flex items-center gap-2.5 mb-2`},Ue={class:`text-xs text-foreground`},We={key:0,class:`flex gap-2`},Ge={class:`flex-1`},Ke={key:1,class:`text-xs text-muted-foreground/40`},qe={class:`flex items-center gap-2 mb-2`},Je={class:`text-xs font-semibold text-blue-500/60`},Ye={key:0,class:`font-mono text-[10px] text-blue-500/40 bg-blue-500/8 px-1.5 py-px rounded`},Xe={class:`bg-background border border-border rounded-md px-3 py-2.5`},Ze={class:`flex items-center gap-2.5 mb-2`},Qe={class:`text-xs text-foreground`},$e={key:0,class:`flex gap-2`},et={class:`flex-1`},tt={key:1,class:`text-xs text-muted-foreground/40`},nt={key:2,class:`flex items-center gap-2 mt-2 px-2 py-1.5 bg-warning/8 rounded`},rt={class:`text-[10px] text-warning leading-relaxed`},it={class:`flex items-center justify-between px-4 py-2.5 border-t border-border bg-background/30`},at={key:0,class:`flex items-center gap-2 text-xs text-danger`},ot={class:`font-mono text-[10px] text-muted-foreground/40`},st={class:`flex gap-2`},ct={class:`space-y-3 py-2`},lt={class:`space-y-1.5`},ut={class:`space-y-1.5`},j=ne({__name:`ModelMappings`,setup(ne){let{t:b}=s(),j=r([]),M=r([]),N=r(null),P=r(``),F=r(!1),I=r(!1),L=r(!1),R=r(``),z=r(void 0),B=r([]),V=r(null),H=r(null),U=e(()=>me(M.value)),W=e(()=>{let e=P.value.toLowerCase().trim();return e?j.value.filter(t=>t.client_model.toLowerCase().includes(e)):j.value}),G=e(()=>j.value.find(e=>e.id===N.value)??null),K=e(()=>!!V.value),q=e(()=>!!H.value),dt=e(()=>R.value.trim().length>0&&!!z.value?.model),J=e(()=>M.value[0]?.id??``);function ft(e){let t=D(e.rule,J.value);return t.parseError&&w.error(b(`mappings.messages.parseRuleFailed`)),t.data}function pt(e){return ge(e.rule,M.value,J.value)}function mt(e){N.value=e,I.value=!1}te(G,e=>{if(!e)return;let t=ft(e);B.value=t.targets.map(e=>({...e})),V.value=t.overflow?{...t.overflow}:null,H.value=t.multimodal?{...t.multimodal}:null,I.value=!1});function ht(){let e=U.value[0];B.value.push({backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``})}function gt(e){B.value.length<=1||B.value.splice(e,1)}function _t(e,t){B.value[e]={...B.value[e],provider_id:t.provider_id,backend_model:t.model}}let Y=r(null),X=r(null),Z=r(!0);function vt(e,t){Y.value=e,t.dataTransfer&&(t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e.toString()))}function yt(e,t){if(Y.value===null)return;if(Y.value===e){X.value=null;return}let n=t.currentTarget.getBoundingClientRect(),r=n.top+n.height/2,i=t.clientY<r,a=i?e:e+1;Y.value<a&&a--,a===Y.value?X.value=null:(X.value=a,Z.value=i)}function bt(){Y.value===null||X.value===null||(B.value=_e(B.value,Y.value,X.value))}function Q(){Y.value=null,X.value=null}function xt(e){if(e){let e=U.value[0];V.value={provider_id:e?.provider.id??``,model:e?.models[0]?.name??``}}else V.value=null}function St(e){V.value={provider_id:e.provider_id,model:e.model}}function Ct(e){if(e){let e=U.value[0];H.value={provider_id:e?.provider.id??``,backend_model:e?.models[0]?.name??``}}else H.value=null}function wt(e){H.value={provider_id:e.provider_id,backend_model:e.model}}async function $(){try{let e=await n.getMappingGroupsInit();j.value=e.groups,M.value=e.providers}catch(e){console.error(`ModelMappings.init:`,e),w.error(p(e,b(`mappings.messages.saveFailed`)))}!N.value&&j.value.length>0&&(N.value=j.value[0].id)}async function Tt(){if(!G.value)return;let e=G.value.client_model.trim();if(e){F.value=!0;try{await n.updateMappingGroup(G.value.id,{client_model:e,rule:O(B.value,V.value,H.value)}),await $(),w.success(b(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.save:`,e),w.error(p(e,b(`mappings.messages.saveFailed`)))}finally{F.value=!1}}}async function Et(){if(G.value)try{await n.toggleMappingGroup(G.value.id),await $()}catch(e){console.error(`ModelMappings.toggle:`,e),w.error(p(e,b(`mappings.messages.toggleFailed`)))}}async function Dt(){if(G.value)try{await n.deleteMappingGroup(G.value.id),I.value=!1;let e=j.value.filter(e=>e.id!==G.value.id);N.value=e.length>0?e[0].id:null,await $(),w.success(b(`common.deleteSuccess`))}catch(e){console.error(`ModelMappings.delete:`,e),w.error(p(e,b(`mappings.messages.deleteFailed`,{model:G.value.client_model})))}}function Ot(){R.value=``;let e=U.value[0];z.value=e?{provider_id:e.provider.id,model:e.models[0]?.name??``}:void 0,L.value=!0}async function kt(){let e=R.value.trim();if(!(!e||!z.value?.model))try{let t=O([{provider_id:z.value.provider_id,backend_model:z.value.model}],null,null),r=await n.createMappingGroup({client_model:e,rule:t});L.value=!1,await $(),N.value=r.id,w.success(b(`common.saveSuccess`))}catch(e){console.error(`ModelMappings.add:`,e),w.error(p(e,b(`mappings.messages.saveFailed`)))}}return ee($),(e,n)=>(y(),_(`div`,ve,[f(`div`,ye,[f(`h2`,be,t(i(b)(`mappings.title`)),1),n[13]||=f(`div`,{class:`flex-1`},null,-1),g(i(m),{size:`sm`,class:`h-[30px] gap-1.5`,onClick:Ot},{default:a(()=>[g(i(x),{class:`w-3.5 h-3.5`}),d(` `+t(i(b)(`mappings.addGroup`)),1)]),_:1})]),f(`div`,xe,[f(`aside`,Se,[f(`div`,null,[g(i(T),{modelValue:P.value,"onUpdate:modelValue":n[0]||=e=>P.value=e,placeholder:i(b)(`common.search`)+`...`,class:`h-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])]),f(`span`,Ce,t(W.value.length)+` / `+t(j.value.length)+` `+t(i(b)(`mappings.totalMappings`,{count:0}).replace(/\d+.*/,``)),1),f(`div`,k,[(y(!0),_(u,null,v(W.value,e=>(y(),_(`div`,{key:e.id,class:l([`flex items-center gap-2.5 px-3 py-2 bg-card rounded-lg border cursor-pointer transition-colors`,N.value===e.id?`border-primary bg-primary/10`:`border-border hover:bg-muted/30`]),onClick:t=>mt(e.id)},[f(`div`,we,[f(`div`,{class:l([`font-mono text-xs font-semibold truncate`,e.is_active?`text-foreground`:`text-muted-foreground`])},t(e.client_model),3),f(`div`,{class:l([`text-[10px] truncate mt-0.5`,e.is_active?`text-muted-foreground/60`:`text-muted-foreground/30`])},t(pt(e)),3)]),f(`span`,{class:l([`inline-flex items-center gap-1 px-1.5 py-px rounded-full text-[9px] font-mono font-semibold shrink-0`,e.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[f(`span`,{class:l([`w-1 h-1 rounded-full`,e.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+t(e.is_active?`ON`:`OFF`),1)],2)],10,A))),128)),W.value.length===0?(y(),_(`div`,Te,t(i(b)(`mappings.noGroups`)),1)):h(``,!0)])]),f(`main`,Ee,[G.value?(y(),_(u,{key:1},[f(`div`,Oe,[f(`span`,ke,t(G.value.client_model),1),f(`span`,{class:l([`inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full text-[10px] font-mono font-semibold h-5`,G.value.is_active?`bg-success/12 text-success`:`bg-muted/40 text-muted-foreground/50`])},[f(`span`,{class:l([`w-1 h-1 rounded-full`,G.value.is_active?`bg-success`:`bg-muted-foreground/40`])},null,2),d(` `+t(G.value.is_active?`Active`:`Inactive`),1)],2),g(i(C),{"model-value":!!G.value.is_active,"onUpdate:modelValue":Et},null,8,[`model-value`])]),f(`div`,Ae,[f(`section`,null,[f(`div`,je,[g(i(de),{class:`w-3.5 h-3.5 text-primary/60`}),f(`span`,Me,t(i(b)(`mappings.editor.failoverChain`)),1),f(`span`,Ne,t(B.value.length)+` target`+t(B.value.length>1?`s`:``),1)]),f(`div`,Pe,[(y(!0),_(u,null,v(B.value,(e,r)=>(y(),_(u,{key:r},[X.value===r&&Z.value?(y(),_(`div`,Fe)):h(``,!0),f(`div`,{draggable:B.value.length>1,class:l([`flex items-center gap-2 px-3 py-2 bg-background border border-border rounded-md transition-opacity`,Y.value===r?`opacity-50`:``]),style:o({cursor:B.value.length>1?Y.value===null?`grab`:`grabbing`:`default`}),onDragstart:e=>vt(r,e),onDragover:c(e=>yt(r,e),[`prevent`]),onDrop:n[3]||=c(e=>bt(),[`prevent`]),onDragend:n[4]||=e=>Q()},[f(`span`,{class:l([`w-[22px] h-[22px] flex items-center justify-center rounded-full text-[10px] font-mono font-bold shrink-0`,r===0?`bg-primary/15 text-primary`:`bg-muted/40 text-muted-foreground`])},t(r+1),3),f(`div`,{class:`flex-1`,onDragstart:n[1]||=c(()=>{},[`stop`,`prevent`])},[g(E,{providers:U.value,"model-value":{provider_id:e.provider_id,model:e.backend_model},compact:``,placeholder:i(b)(`mappings.selectProviderModel`),"onUpdate:modelValue":e=>_t(r,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])],32),f(`div`,{onDragstart:n[2]||=c(()=>{},[`stop`,`prevent`])},[B.value.length>1?(y(),re(i(m),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>gt(r)},{default:a(()=>[g(i(fe),{class:`w-3 h-3`})]),_:1},8,[`onClick`])):h(``,!0)],32)],46,Ie)],64))),128)),X.value===B.value.length?(y(),_(`div`,Le)):h(``,!0)]),g(i(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:ht},{default:a(()=>[g(i(x),{class:`w-3 h-3 mr-1`}),d(` `+t(i(b)(`mappings.addBackup`)),1)]),_:1})]),n[14]||=f(`div`,{class:`border-t border-dashed border-primary/10`},null,-1),f(`section`,null,[f(`div`,Re,[g(i(ie),{class:`w-3.5 h-3.5 text-primary/50`}),f(`span`,ze,t(i(b)(`mappings.editor.contextOverflow`)),1),K.value?(y(),_(`span`,Be,t(i(b)(`mappings.enabled`)),1)):h(``,!0)]),f(`div`,Ve,[f(`div`,He,[g(i(C),{"model-value":K.value,"onUpdate:modelValue":xt},null,8,[`model-value`]),f(`span`,Ue,t(i(b)(`mappings.overflowTooltip`)),1)]),K.value?(y(),_(`div`,We,[f(`div`,Ge,[g(E,{providers:U.value,"model-value":V.value?{provider_id:V.value.provider_id,model:V.value.model}:void 0,compact:``,dashed:``,placeholder:i(b)(`mappings.selectModel`),"onUpdate:modelValue":n[5]||=e=>St(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),_(`span`,Ke,t(i(b)(`mappings.overflowTooltip`)),1))])]),f(`section`,null,[f(`div`,qe,[g(i(ae),{class:`w-3.5 h-3.5 text-blue-500/50`}),f(`span`,Je,t(i(b)(`mappings.editor.multimodalFallback`)),1),q.value?(y(),_(`span`,Ye,t(i(b)(`mappings.enabled`)),1)):h(``,!0)]),f(`div`,Xe,[f(`div`,Ze,[g(i(C),{"model-value":q.value,"onUpdate:modelValue":Ct},null,8,[`model-value`]),f(`span`,Qe,t(i(b)(`mappings.multimodalFallback.add`)),1)]),q.value?(y(),_(`div`,$e,[f(`div`,et,[g(E,{providers:U.value,"model-value":H.value?{provider_id:H.value.provider_id,model:H.value.backend_model}:void 0,compact:``,dashed:``,placeholder:i(b)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":n[6]||=e=>wt(e)},null,8,[`providers`,`model-value`,`placeholder`])])])):(y(),_(`span`,tt,t(i(b)(`mappings.multimodalFallback.add`)),1)),q.value?(y(),_(`div`,nt,[g(i(pe),{class:`w-3 h-3 text-warning shrink-0`}),f(`span`,rt,t(i(b)(`mappings.multimodalFallback.sessionLockWarning`)),1)])):h(``,!0)])])]),f(`div`,it,[I.value?(y(),_(`div`,at,[d(t(i(b)(`mappings.confirmDeleteDesc`,{model:G.value.client_model}))+` `,1),g(i(m),{variant:`destructive`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:Dt},{default:a(()=>[d(t(i(b)(`common.yes`)),1)]),_:1}),g(i(m),{variant:`ghost`,size:`sm`,class:`h-6 text-[11px] px-2`,onClick:n[7]||=e=>I.value=!1},{default:a(()=>[d(t(i(b)(`common.no`)),1)]),_:1})])):(y(),_(u,{key:1},[f(`span`,ot,` ID: `+t(G.value.id),1),f(`div`,st,[g(i(m),{variant:`ghost`,size:`sm`,class:`text-xs text-danger hover:text-danger`,onClick:n[8]||=e=>I.value=!0},{default:a(()=>[d(t(i(b)(`common.delete`)),1)]),_:1}),g(i(m),{size:`sm`,class:`text-xs`,disabled:F.value,onClick:Tt},{default:a(()=>[d(t(F.value?i(b)(`common.saving`):i(b)(`common.save`)),1)]),_:1},8,[`disabled`])])],64))])],64)):(y(),_(`div`,De,[g(i(he),{class:`w-6 h-6 opacity-40`}),d(` `+t(i(b)(`mappings.selectProviderOrModel`)),1)]))])]),g(i(ce),{open:L.value,"onUpdate:open":n[12]||=e=>L.value=!1},{default:a(()=>[g(i(oe),{class:`max-w-md`},{default:a(()=>[g(i(se),null,{default:a(()=>[g(i(ue),null,{default:a(()=>[d(t(i(b)(`mappings.addGroup`)),1)]),_:1})]),_:1}),f(`div`,ct,[f(`div`,lt,[g(i(S),{class:`text-xs text-muted-foreground`},{default:a(()=>[d(t(i(b)(`mappings.clientModel`)),1)]),_:1}),g(i(T),{modelValue:R.value,"onUpdate:modelValue":n[9]||=e=>R.value=e,placeholder:i(b)(`mappings.editor.clientInputPlaceholder`),class:`h-8 font-mono text-xs`},null,8,[`modelValue`,`placeholder`])]),f(`div`,ut,[g(i(S),{class:`text-xs text-muted-foreground`},{default:a(()=>[d(t(i(b)(`mappings.selectProviderModel`)),1)]),_:1}),g(E,{providers:U.value,"model-value":z.value,compact:``,placeholder:i(b)(`mappings.selectProviderModel`),"onUpdate:modelValue":n[10]||=e=>z.value=e},null,8,[`providers`,`model-value`,`placeholder`])])]),g(i(le),null,{default:a(()=>[g(i(m),{variant:`ghost`,size:`sm`,onClick:n[11]||=e=>L.value=!1},{default:a(()=>[d(t(i(b)(`common.cancel`)),1)]),_:1}),g(i(m),{size:`sm`,disabled:!dt.value,onClick:kt},{default:a(()=>[d(t(i(b)(`mappings.addGroup`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{j as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,Ht as i,It as a,Jt as o,Mt as s,Qt as c,W as l,X as u,Xt as d,Z as f,_t as ee,at as p,et as m,j as te,kt as h,n as g,nt as _,ot as v,qt as y,rt as b,st as x,tt as S,vt as C,xt as w,yt as T}from"./button-CEjoKdKq.js";import{n as E,t as D}from"./UnifiedRequestDialog-h4e7P7Id.js";import{a as O,i as k,o as ne}from"./TabsTrigger-t8wD-SZ9.js";import{n as re,t as A}from"./CollapsibleContent-vZSsPw6t.js";import{t as ie}from"./CollapsibleTrigger-BBdH_cCm.js";import{a as ae,bt as j,c as oe,d as se,f as ce,gt as le,l as ue,lt as de,o as fe,p as pe,s as me,u as he,vt as ge,yt as _e}from"./index-DE_N-dT0.js";import{t as ve}from"./badge-CxTrJsDs.js";import{a as ye,i as M,n as N,o as be,r as P,t as xe}from"./TableHeader-CARoN-zc.js";import{t as Se}from"./useClipboard-Bzk0ItE3.js";function F(e){return e.adaptiveLimit??e.maxConcurrency}function I(e,t){let n=t>0?e/t:0;return n>=.8?`bg-danger`:n>=.5?`bg-warning`:`bg-primary`}function L(e,t){return(t>0?e/t:0)>=.8?`text-danger`:``}var Ce={class:`flex items-stretch bg-card border border-border rounded-lg overflow-hidden mb-3`},R={class:`flex items-center gap-3.5 px-5 py-3 border-r border-border min-w-[180px]`,style:{background:`oklch(0.68 0.13 175 / 8%)`}},z={class:`text-[32px] font-bold text-primary font-mono leading-none`},we={class:`flex flex-col gap-0.5`},Te={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},B={class:`font-mono text-[11px] text-muted-foreground`},Ee={key:0,class:`inline-flex items-center gap-1 ml-3 px-2 py-0.5 rounded-full font-mono text-[11px] font-semibold bg-warning/10 text-warning`},De={class:`flex-1 px-4 py-2.5 flex flex-col gap-1 justify-center`},Oe={class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider mb-0.5`},ke={key:0,class:`text-[11px] text-muted-foreground py-1`},Ae=[`title`],V={class:`flex-1 h-1 bg-foreground/[0.06] rounded-sm overflow-hidden`},je=x({__name:`MonitorHeader`,props:{stats:{},activeCount:{},streamCount:{},queuedCount:{},concurrency:{}},setup(e){let{t:n}=l();return(r,i)=>(T(),b(`div`,Ce,[m(`div`,R,[m(`span`,z,t(e.activeCount),1),m(`div`,we,[m(`span`,Te,t(o(n)(`monitor.header.activeRequests`)),1),m(`span`,B,t(o(n)(`monitor.header.streamNonStream`,{stream:e.streamCount,nonStream:e.activeCount-e.streamCount})),1)]),e.queuedCount>0?(T(),b(`span`,Ee,t(e.queuedCount)+` `+t(o(n)(`monitor.queued`)),1)):_(``,!0)]),m(`div`,De,[m(`span`,Oe,t(o(n)(`monitor.concurrency`)),1),e.concurrency.length===0?(T(),b(`div`,ke,t(o(n)(`monitor.concurrencyPanel.noData`)),1)):_(``,!0),(T(!0),b(f,null,w(e.concurrency,e=>(T(),b(`div`,{key:e.providerId,class:`flex items-center gap-1.5`},[m(`span`,{class:`text-[11px] font-medium text-muted-foreground w-[130px] shrink-0 truncate`,title:e.providerName},t(e.providerName),9,Ae),m(`div`,V,[o(F)(e)>0?(T(),b(`div`,{key:0,class:d([`h-full rounded-sm transition-all duration-300`,o(I)(e.active,o(F)(e))]),style:c({width:`${Math.min(100,e.active/o(F)(e)*100)}%`})},null,6)):_(``,!0)]),m(`span`,{class:d([`font-mono text-[11px] text-muted-foreground w-10 text-right shrink-0`,o(L)(e.active,o(F)(e))])},[e.adaptiveEnabled?(T(),b(f,{key:0},[p(t(e.active)+`/`+t(e.adaptiveLimit??e.maxConcurrency),1)],64)):e.maxConcurrency===0?(T(),b(f,{key:1},[p(t(o(n)(`monitor.concurrencyPanel.unlimited`)),1)],64)):(T(),b(f,{key:2},[p(t(e.active)+`/`+t(e.maxConcurrency),1)],64))],2)]))),128))])]))}}),Me={key:0,class:`text-[13px] text-muted-foreground py-2`},Ne={key:1},Pe={class:`flex items-center justify-between py-[3px]`},Fe={class:`text-[11px] text-muted-foreground`},Ie={class:`font-mono text-[11px] text-foreground`},H={class:`flex items-center justify-between py-[3px] border-t border-foreground/[0.04]`},Le={class:`text-[11px] text-muted-foreground`},Re={class:`font-mono text-[11px] text-success`},U={class:`flex items-center justify-between py-[3px] border-t border-foreground/[0.04]`},ze={class:`text-[11px] text-muted-foreground`},W={class:`font-mono text-[11px] text-foreground`},G={class:`mt-1 pt-1 border-t border-foreground/[0.04]`},K={class:`flex justify-between mb-[3px]`},Be={class:`text-[11px] text-muted-foreground`},Ve={class:`font-mono text-[10px] text-muted-foreground`},q={class:`h-1 bg-foreground/[0.06] rounded-sm overflow-hidden`},J=100,He=x({__name:`RuntimePanel`,props:{runtime:{}},setup(n){let{t:r}=l(),i=n,a=e(()=>!i.runtime||i.runtime.memoryUsage.heapTotal===0?0:Math.min(J,i.runtime.memoryUsage.heapUsed/i.runtime.memoryUsage.heapTotal*J));return(e,i)=>n.runtime?(T(),b(`div`,Ne,[m(`div`,Pe,[m(`span`,Fe,t(o(r)(`monitor.runtimePanel.memoryRss`)),1),m(`span`,Ie,t(o(j)(n.runtime.memoryUsage.rss)),1)]),m(`div`,H,[m(`span`,Le,t(o(r)(`monitor.runtimePanel.eventLoopDelay`)),1),m(`span`,Re,t(n.runtime.eventLoopDelayMs.toFixed(1))+`ms`,1)]),m(`div`,U,[m(`span`,ze,t(o(r)(`monitor.runtimePanel.activeHandles`)),1),m(`span`,W,t(n.runtime.activeHandles),1)]),m(`div`,G,[m(`div`,K,[m(`span`,Be,t(o(r)(`monitor.runtimePanel.heapUsage`)),1),m(`span`,Ve,t(o(j)(n.runtime.memoryUsage.heapUsed))+` / `+t(o(j)(n.runtime.memoryUsage.heapTotal)),1)]),m(`div`,q,[m(`div`,{class:`h-full bg-primary rounded-sm transition-all duration-300`,style:c({width:`${a.value}%`})},null,4)])])])):(T(),b(`div`,Me,t(o(r)(`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(n){let{t:r}=l(),i=n,a=e(()=>Object.values(i.byStatusCode).reduce((e,t)=>e+t,0)),s=e(()=>{let e=i.byStatusCode,t=a.value||1,n=c(e,200,299),r=c(e,400,499)-(e[429]||0),o=e[429]||0,s=c(e,500,599);return[{label:`2xx`,count:n,percent:(n/t*100).toFixed(1),textClass:`text-success`,dotClass:`bg-success`},{label:`4xx`,count:r,percent:(r/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 c(e,t,n){let r=0;for(let[i,a]of Object.entries(e)){let e=Number(i);e>=t&&e<=n&&(r+=a)}return r}return(e,n)=>a.value===0?(T(),b(`div`,Ue,t(o(r)(`monitor.statusCodes.noData`)),1)):(T(),b(`div`,We,[(T(!0),b(f,null,w(s.value,e=>(T(),b(`div`,{key:e.label,class:`flex items-center gap-1.5 py-[3px] border-t border-foreground/[0.04] first:border-t-0`},[m(`span`,{class:d([`size-[5px] rounded-full shrink-0`,e.dotClass])},null,2),m(`span`,Ge,t(e.label),1),m(`span`,{class:d([`font-mono text-[11px]`,e.textClass])},t(e.count),3),m(`span`,Ke,t(e.percent)+`%`,1)]))),128))]))}}),Je={key:0,class:`text-sm text-muted-foreground py-4 text-center`},Y={key:1,class:`text-sm text-muted-foreground py-4 text-center`},Ye={class:`flex flex-wrap gap-1`},Xe={key:0,class:`text-xs text-muted-foreground`},Ze=100,Qe=x({__name:`ProviderStatsTable`,props:{stats:{}},setup(n){let{t:r}=l(),i=n,a=e(()=>i.stats?Object.entries(i.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(e,i)=>n.stats?a.value.length===0?(T(),b(`div`,Y,t(o(r)(`monitor.providerTable.noProviders`)),1)):(T(),S(o(be),{key:2},{default:s(()=>[v(o(xe),null,{default:s(()=>[v(o(P),{class:`border-b-0`},{default:s(()=>[v(o(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:s(()=>[p(t(o(r)(`monitor.providerTable.provider`)),1)]),_:1}),v(o(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:s(()=>[p(t(o(r)(`monitor.providerTable.requests`)),1)]),_:1}),v(o(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:s(()=>[p(t(o(r)(`monitor.providerTable.successRate`)),1)]),_:1}),v(o(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:s(()=>[p(t(o(r)(`monitor.providerTable.avgLatency`)),1)]),_:1}),v(o(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 text-right`},{default:s(()=>[p(t(o(r)(`monitor.providerTable.retryRate`)),1)]),_:1}),v(o(N),{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5`},{default:s(()=>[p(t(o(r)(`monitor.providerTable.topErrors`)),1)]),_:1})]),_:1})]),_:1}),v(o(ye),null,{default:s(()=>[(T(!0),b(f,null,w(a.value,e=>(T(),S(o(P),{key:e.id,class:`border-b-0 hover:bg-muted/50`},{default:s(()=>[v(o(M),{class:`font-medium text-[13px] py-1`},{default:s(()=>[p(t(e.name),1)]),_:2},1024),v(o(M),{class:`text-right font-mono text-xs py-1`},{default:s(()=>[p(t(e.stats.totalRequests),1)]),_:2},1024),v(o(M),{class:`text-right font-mono text-xs py-1`},{default:s(()=>[m(`span`,{class:d(e.successRate>=95?`text-success`:e.successRate>=80?`text-warning`:`text-danger`)},t(e.successRate.toFixed(1))+`% `,3)]),_:2},1024),v(o(M),{class:`text-right font-mono text-xs py-1`},{default:s(()=>[p(t(e.stats.avgLatencyMs.toFixed(0))+`ms`,1)]),_:2},1024),v(o(M),{class:`text-right font-mono text-xs py-1`},{default:s(()=>[m(`span`,{class:d(e.retryRate>10?`text-warning`:``)},t(e.retryRate.toFixed(1))+`% `,3)]),_:2},1024),v(o(M),{class:`py-1`},{default:s(()=>[m(`div`,Ye,[(T(!0),b(f,null,w(e.stats.topErrors.slice(0,3),e=>(T(),S(o(ve),{key:e.code,variant:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:s(()=>[p(t(e.code)+` (`+t(e.count)+`) `,1)]),_:2},1024))),128)),e.stats.topErrors.length===0?(T(),b(`span`,Xe,`--`)):_(``,!0)])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):(T(),b(`div`,Je,t(o(r)(`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 C(()=>{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),y(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))}y(t.activeRequests);break}case`runtime_update`:t.runtime.value=n;break}}async function rt(e,t,r,i,a){try{let o=await n.getMonitorInit();o.active&&(e.value=o.active),o.recent&&(t.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 t=i([]),a=r([]),o=r(null),s=r([]),c=r(null),l=r(!1),u=!1,d=e(()=>t.value.filter(e=>e.isStream).length),f=e(()=>t.value.filter(e=>!e.queued)),ee=e(()=>t.value.filter(e=>e.queued===!0)),p=e=>nt(e,{recentCompleted:a,activeRequests:t,concurrency:s,stats:o,runtime:c});async function m(){if(l.value=!0,!u){u=!0;return}await et(t,()=>n.getMonitorActive())}function te(){l.value=!1}let g=()=>rt(t,a,o,s,c),{connect:_,disconnect:v}=X(`/admin/api/monitor/stream`,{request_start:p,request_update:p,request_complete:p,concurrency_update:p,stats_update:p,runtime_update:p,stream_content_update:p},{onOpen:m,onClose:te}),y=r(null),b=r(!1),x=r(0);async function S(e){let r=++x.value,i=t.value.find(t=>t.id===e)??a.value.find(t=>t.id===e);if(!i){y.value=null;return}y.value=null,b.value=!0;try{if(i.status===`pending`){try{let t=await n.getMonitorRequest(e);if(r!==x.value)return;y.value={clientRequest:t.clientRequest??void 0,upstreamRequest:t.upstreamRequest??void 0}}catch(t){if(t?.response?.status!==Q)throw t;if(r!==x.value)return;let i=await n.getLogDetail(e);if(r!==x.value)return;y.value=i.client_request?{clientRequest:i.client_request}:null}return}let t=await n.getLogDetail(e);if(r!==x.value)return;let a;if(!i.isStream){let e=t.upstream_response;if(e)try{let t=JSON.parse(e);a=(typeof t.body==`string`?t.body:e)??void 0}catch{a=e}}y.value={responseBody:a,clientRequest:t.client_request??void 0,upstreamRequest:t.upstream_request??void 0}}catch(e){if(r!==x.value)return;console.warn(`Failed to load log detail:`,e),y.value=null}finally{r===x.value&&(b.value=!1)}}let w=r(null),T=r(!1),E=r(null),D=null;function O(e){if(k(),!e)return;let r=async()=>{let r=t.value.find(t=>t.id===e);if(!r||r.status===`completed`||r.status===`failed`){k();return}try{let t=await n.getMonitorRequest(e);if(w.value!==e)return;t.streamContent&&(E.value=t.streamContent)}catch(e){e?.response?.status===Q&&k()}};r(),D=setInterval(r,$)}function k(){D&&=(clearInterval(D),null)}function ne(e){w.value=e,T.value=!0,E.value=null;let t=a.value.find(t=>t.id===e);t&&(t.status===`completed`||t.status===`failed`)&&(t.streamContent?E.value=t.streamContent:re(e)),O(e),S(e)}async function re(e){try{let t=await n.getMonitorRequest(e);if(w.value!==e)return;t.streamContent&&(E.value=t.streamContent)}catch(e){console.error(`loadCompletedStreamContent:`,e)}}let A=e(()=>w.value?t.value.find(e=>e.id===w.value)??a.value.find(e=>e.id===w.value)??null:null);return h(()=>A.value?.status,(e,t)=>{t===`pending`&&(e===`completed`||e===`failed`)&&(k(),S(w.value))}),C(()=>{k()}),{activeRequests:t,recentCompleted:a,stats:o,concurrency:s,runtime:c,connected:l,streamCount:d,streamingRequests:f,queuedRequests:ee,selectedRequestId:w,selectedRequest:A,requestDetailOpen:T,selectRequest:ne,selectedStreamContent:E,logDetailData:y,nonStreamBodyLoading:b,connect:_,disconnect:v,loadInitialData:g}}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(i){let{t:h}=l(),{activeRequests:y,recentCompleted:x,stats:j,concurrency:F,runtime:I,connected:L,streamCount:Ce,streamingRequests:R,queuedRequests:z,selectedRequestId:we,selectedRequest:Te,requestDetailOpen:B,selectRequest:Ee,selectedStreamContent:De,logDetailData:Oe,loadInitialData:ke,connect:Ae}=it(),V=r(`active`),Me=e(()=>[{key:`active`,label:h(`monitor.activeRequests`),count:R.value.length},{key:`queued`,label:h(`monitor.queuedRequests`),count:z.value.length},{key:`recent`,label:h(`monitor.completed`),count:x.value.length}]),Ne={active:()=>R.value,queued:()=>z.value,recent:()=>x.value},Pe={active:h(`monitor.noActiveRequests`),queued:h(`monitor.noQueuedRequests`),recent:h(`monitor.noCompletedRequests`)},Fe=e(()=>Ne[V.value]()),Ie=e(()=>Pe[V.value]),H=r(null);function Le(e){H.value=H.value===e?null:e}let{copy:Re}=Se(),U=r(null);function ze(e){Re(e),U.value=e,setTimeout(()=>{U.value===e&&(U.value=null)},ln)}let W=r(!1),G=r(null),K=e(()=>G.value?y.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 n.killMonitorRequest(G.value),y.value=y.value.filter(e=>e.id!==G.value),ae.success(h(`monitor.killSuccess`))}catch(e){console.error(`Monitor.killRequest:`,e),ae.error(te(e,h(`monitor.killFailed`)))}W.value=!1}}let q=r(!0),J=e(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.errorCount/j.value.totalRequests*dn).toFixed(1)),Ue=e(()=>{let e=Number.parseFloat(J.value);return e>=pn?`text-danger`:e>=fn?`text-warning`:`text-foreground`}),We=e(()=>!j.value||j.value.totalRequests===0?`0.0`:(j.value.retryCount/j.value.totalRequests*dn).toFixed(1)),Ge=e(()=>j.value?j.value.p50LatencyMs.toFixed(0):`--`),Ke=e(()=>j.value?j.value.p99LatencyMs.toFixed(0):`--`),Je=e(()=>{if(!j.value||!I.value||I.value.uptimeMs===0)return`--`;let e=I.value.uptimeMs/un;return(j.value.totalRequests/e).toFixed(1)}),Y=e(()=>{let e=F.value.reduce((e,t)=>e+t.active,0),t=F.value.reduce((e,t)=>e+(t.adaptiveLimit??t.maxConcurrency),0);return{active:e,total:t,pct:t>0?Math.round(e/t*mn):0}}),Ye=e(()=>{let e=Y.value.pct;return e>=hn?`bg-danger`:e>=gn?`bg-warning`:`bg-primary`}),Xe=e(()=>I.value?$e(I.value.uptimeMs):`--`),Ze=e(()=>!I.value||!j.value?`--`:`${j.value.totalRequests} req`);function $e(e){let t=Math.floor(e/yn),n=Math.floor(e%yn/_n),r=Math.floor(e%_n/vn);return t>0?`${t}d ${n}h`:n>0?`${n}h ${r}m`:`${r}m`}let X=r(Date.now()),Z=null;function Q(){$(),Z=setInterval(()=>{X.value=Date.now()},bn)}function $(){Z&&=(clearInterval(Z),null)}function et(){document.hidden?$():(X.value=Date.now(),Q())}function tt(e){return`${(((e.completedAt??X.value)-e.startTime)/un).toFixed(1)}s`}function nt(e){let t=e.streamMetrics?.tokensPerSecond;return t==null?`--`:`${t.toFixed(0)} t/s`}function rt(e){let t=e.streamMetrics?.outputTokens;return t==null?`--`:`${t}`}function xn(e){return e.status===`failed`?`bg-danger`:e.queued?`bg-warning`:e.status===`completed`?`bg-success`:`bg-primary`}function Sn(e){return e.status===`pending`}return ee(async()=>{await ke(),Ae(),Q(),document.addEventListener(`visibilitychange`,et)}),C(()=>{$(),document.removeEventListener(`visibilitychange`,et)}),(e,n)=>(T(),b(`div`,at,[m(`div`,ot,[m(`h2`,st,t(o(h)(`monitor.title`)),1),v(o(ve),{variant:o(L)?`default`:`destructive`},{default:s(()=>[p(t(o(L)?o(h)(`monitor.connected`):o(h)(`monitor.disconnected`)),1)]),_:1},8,[`variant`])]),v(je,{stats:o(j),"active-count":o(y).length,"stream-count":o(Ce),"queued-count":o(z).length,concurrency:o(F)},null,8,[`stats`,`active-count`,`stream-count`,`queued-count`,`concurrency`]),m(`div`,ct,[m(`div`,lt,[(T(!0),b(f,null,w(Me.value,e=>(T(),S(o(g),{key:e.key,variant:`ghost`,class:d([`relative px-3.5 py-2 text-[13px] font-medium transition-colors flex items-center gap-2 h-auto rounded-none`,V.value===e.key?`text-primary`:`text-muted-foreground hover:text-foreground`]),onClick:t=>V.value=e.key},{default:s(()=>[p(t(e.label)+` `,1),m(`span`,{class:d([`font-mono text-[11px] font-semibold px-1.5 py-px rounded-full`,V.value===e.key?`bg-primary/15 text-primary`:`bg-foreground/5 text-muted-foreground`])},t(e.count),3),V.value===e.key?(T(),b(`span`,ut)):_(``,!0)]),_:2},1032,[`class`,`onClick`]))),128))]),v(o(E),{class:`h-[252px]`},{default:s(()=>[v(o(be),null,{default:s(()=>[v(o(xe),null,{default:s(()=>[v(o(P),{class:`border-b-0 hover:bg-transparent`},{default:s(()=>[v(o(N),{class:`w-9 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:s(()=>[...n[4]||=[p(`Model`,-1)]]),_:1}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3`},{default:s(()=>[...n[5]||=[p(`Provider`,-1)]]),_:1}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-16`},{default:s(()=>[...n[6]||=[p(`Type`,-1)]]),_:1}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:s(()=>[...n[7]||=[p(`Elapsed`,-1)]]),_:1}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:s(()=>[...n[8]||=[p(`Speed`,-1)]]),_:1}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 text-right w-20`},{default:s(()=>[...n[9]||=[p(`Output`,-1)]]),_:1}),v(o(N),{class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider py-1.5 px-3 w-14`})]),_:1})]),_:1}),v(o(ye),null,{default:s(()=>[Fe.value.length===0?(T(),S(o(P),{key:0,class:`border-b-0 h-[220px]`},{default:s(()=>[v(o(M),{colspan:`8`,class:`text-center text-[13px] text-muted-foreground align-middle`},{default:s(()=>[p(t(Ie.value),1)]),_:1})]),_:1})):_(``,!0),(T(!0),b(f,null,w(Fe.value,e=>(T(),b(f,{key:e.id},[v(o(P),{class:d([`cursor-pointer transition-colors border-b border-foreground/[0.04] hover:bg-muted/40`,[o(we)===e.id?`bg-primary/10`:``,V.value===`recent`?`opacity-60 hover:opacity-80`:``]]),onClick:t=>o(Ee)(e.id)},{default:s(()=>[v(o(M),{class:`px-3 py-1`},{default:s(()=>[m(`span`,{class:d([`inline-block size-2 rounded-full shrink-0`,xn(e)])},null,2)]),_:2},1024),v(o(M),{class:`px-3 py-1 text-[13px] font-medium truncate max-w-[200px]`},{default:s(()=>[p(t(e.model),1)]),_:2},1024),v(o(M),{class:`px-3 py-1 font-mono text-[11px] text-muted-foreground`},{default:s(()=>[p(t(e.providerName),1)]),_:2},1024),v(o(M),{class:`px-3 py-1`},{default:s(()=>[e.isStream?(T(),b(`span`,dt,` SSE `)):(T(),b(`span`,ft,` Sync `))]),_:2},1024),v(o(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:s(()=>[p(t(tt(e)),1)]),_:2},1024),v(o(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:s(()=>[p(t(nt(e)),1)]),_:2},1024),v(o(M),{class:`px-3 py-1 text-right font-mono text-[12px] text-muted-foreground`},{default:s(()=>[p(t(rt(e)),1)]),_:2},1024),v(o(M),{class:`px-3 py-1`},{default:s(()=>[m(`div`,{class:`flex items-center gap-0.5 justify-end`,onClick:n[0]||=u(()=>{},[`stop`])},[v(o(ne),null,{default:s(()=>[v(o(k),{"as-child":``},{default:s(()=>[v(o(g),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:u(t=>ze(e.id),[`stop`])},{default:s(()=>[U.value===e.id?(T(),S(o(_e),{key:0,class:`size-3 text-success`})):(T(),S(o(le),{key:1,class:`size-3`}))]),_:2},1032,[`onClick`])]),_:2},1024),v(o(O),null,{default:s(()=>[p(t(o(h)(`monitor.copyId`)),1)]),_:1})]),_:2},1024),Sn(e)?(T(),S(o(ne),{key:0},{default:s(()=>[v(o(k),{"as-child":``},{default:s(()=>[v(o(g),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6 text-destructive hover:text-destructive`,onClick:u(t=>Be(e.id),[`stop`])},{default:s(()=>[v(o(de),{class:`size-3`})]),_:1},8,[`onClick`])]),_:2},1024),v(o(O),null,{default:s(()=>[p(t(o(h)(`monitor.kill`)),1)]),_:1})]),_:2},1024)):_(``,!0),v(o(g),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 h-6 w-6`,onClick:u(t=>Le(e.id),[`stop`])},{default:s(()=>[v(o(ge),{class:d([`size-3 transition-transform`,{"rotate-180":H.value===e.id}])},null,8,[`class`])]),_:2},1032,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`,`onClick`]),H.value===e.id?(T(),S(o(P),{key:0,class:`border-b border-foreground/[0.04] bg-foreground/[0.02]`},{default:s(()=>[v(o(M),{colspan:`8`,class:`px-3 py-2`},{default:s(()=>[m(`div`,pt,[m(`div`,null,[n[10]||=m(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Request ID `,-1),m(`div`,mt,t(e.id),1)]),m(`div`,null,[n[11]||=m(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Input Tokens `,-1),m(`div`,ht,t(e.streamMetrics?.inputTokens?.toLocaleString()??`--`),1)]),m(`div`,null,[n[12]||=m(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Output Tokens `,-1),m(`div`,gt,t(e.streamMetrics?.outputTokens?.toLocaleString()??`--`),1)]),m(`div`,null,[n[13]||=m(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` Cache Tokens `,-1),m(`div`,_t,t(e.streamMetrics?.cacheReadTokens?.toLocaleString()??`--`),1)])])]),_:2},1024)]),_:2},1024)):_(``,!0)],64))),128))]),_:1})]),_:1})]),_:1})]),m(`div`,vt,[m(`div`,yt,[m(`div`,bt,t(o(h)(`monitor.completed`)),1),m(`div`,xt,t(o(j)?.successCount??0),1),n[14]||=m(`div`,{class:`text-[10px] font-mono text-muted-foreground`},`last 5h`,-1)]),m(`div`,St,[m(`div`,Ct,t(o(h)(`monitor.header.errorRate`)),1),m(`div`,{class:d([`text-[13px] font-mono font-semibold`,Ue.value])},t(J.value)+`% `,3),m(`div`,wt,t(o(j)?.errorCount??0)+` / `+t(o(j)?.totalRequests??0),1)]),m(`div`,Tt,[m(`div`,Et,t(o(h)(`monitor.header.p50Latency`)),1),m(`div`,Dt,t(Ge.value)+`ms `,1),m(`div`,Ot,` avg `+t(o(j)?.avgLatencyMs?.toFixed(1)??`--`)+`s `,1)]),m(`div`,kt,[m(`div`,At,t(o(h)(`monitor.header.retryRate`)),1),m(`div`,jt,t(We.value)+`% `,1),m(`div`,Mt,t(o(j)?.retryCount??0)+` / `+t(o(j)?.totalRequests??0),1)]),m(`div`,Nt,[m(`div`,Pt,t(o(h)(`monitor.runtimePanel.uptime`)),1),m(`div`,Ft,t(Xe.value),1),m(`div`,It,t(Ze.value),1)])]),m(`div`,Lt,[v(o(re),{open:q.value,"onUpdate:open":n[1]||=e=>q.value=e},{default:s(()=>[m(`div`,Rt,[m(`span`,zt,t(o(h)(`monitor.providerStats`)),1),v(o(ie),{"as-child":``},{default:s(()=>[v(o(g),{variant:`ghost`,size:`xs`,class:`text-[11px] text-muted-foreground hover:text-foreground h-6 px-1.5`},{default:s(()=>[p(t(q.value?o(h)(`monitor.providerStatsHide`):o(h)(`monitor.providerStatsShow`)),1)]),_:1})]),_:1})]),v(o(A),null,{default:s(()=>[m(`div`,Bt,[v(Qe,{stats:o(j)},null,8,[`stats`])])]),_:1})]),_:1},8,[`open`])]),m(`div`,Vt,[m(`div`,Ht,[m(`div`,Ut,[m(`span`,Wt,t(o(h)(`monitor.statusCodeDistribution`)),1)]),m(`div`,Gt,[v(qe,{"by-status-code":o(j)?.byStatusCode??{}},null,8,[`by-status-code`])])]),m(`div`,Kt,[m(`div`,qt,[m(`span`,Jt,t(o(h)(`monitor.runtime`)),1)]),m(`div`,Yt,[v(He,{runtime:o(I)},null,8,[`runtime`])])]),m(`div`,Xt,[m(`div`,Zt,[m(`span`,Qt,t(o(h)(`monitor.concurrency`)),1)]),m(`div`,$t,[m(`div`,en,[m(`span`,tn,t(Y.value.active),1),m(`span`,nn,`/ `+t(Y.value.total),1),m(`span`,rn,t(Y.value.pct)+`%`,1)]),m(`div`,an,[m(`div`,{class:d([`h-full rounded-full transition-all duration-300`,Ye.value]),style:c({width:`${Math.min(100,Y.value.pct)}%`})},null,6)]),m(`div`,on,[m(`div`,null,[n[15]||=m(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` P99 `,-1),m(`div`,sn,t(Ke.value)+`ms `,1)]),m(`div`,null,[n[16]||=m(`div`,{class:`text-[10px] font-semibold text-muted-foreground uppercase tracking-wider`},` QPS `,-1),m(`div`,cn,t(Je.value),1)])])])])]),v(D,{open:o(B),"onUpdate:open":n[2]||=e=>a(B)?B.value=e:null,source:`realtime`,request:o(Te),"stream-content":o(De),"log-detail-data":o(Oe)},null,8,[`open`,`request`,`stream-content`,`log-detail-data`]),v(o(pe),{open:W.value,"onUpdate:open":n[3]||=e=>W.value=e},{default:s(()=>[v(o(he),null,{default:s(()=>[v(o(me),null,{default:s(()=>[v(o(fe),null,{default:s(()=>[p(t(o(h)(`monitor.killConfirmTitle`)),1)]),_:1}),K.value?(T(),S(o(ue),{key:0},{default:s(()=>[p(t(o(h)(`monitor.killConfirm`,{model:K.value.model,provider:K.value.providerName})),1)]),_:1})):_(``,!0)]),_:1}),v(o(oe),null,{default:s(()=>[v(o(se),null,{default:s(()=>[p(t(o(h)(`monitor.killCancel`)),1)]),_:1}),v(o(ce),{class:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,onClick:Ve},{default:s(()=>[p(t(o(h)(`monitor.kill`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{xn as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,F as i,It as a,Jt as o,Mt as s,N as c,P as l,Qt as u,W as d,X as f,Xt as p,Y as m,Z as h,_t as g,at as _,et as v,it as y,j as b,n as x,nt as S,ot as C,rt as w,st as T,tt as E,wt as D,xt as O,yt as k,z as A}from"./button-CEjoKdKq.js";import{t as ee}from"./chevron-right-Bvw4z2Yf.js";import{a as te,c as ne,l as re,n as ie,r as ae,s as j,t as M,u as oe}from"./model-patches-BVZz8hmE.js";import{t as se}from"./image-DOH8COxk.js";import{t as ce}from"./search-uTHGe-LF.js";import{a as le,n as ue,o as de,r as fe,t as pe}from"./dialog-DPvcfIzg.js";import{t as N}from"./Label-C7Hesw43.js";import{t as me}from"./Switch-BVug67mH.js";import{_ as P,a as F,c as he,d as ge,f as _e,g as I,gt as ve,h as L,l as ye,m as R,n as z,o as be,p as xe,s as Se,u as Ce,v as B,yt as we}from"./index-DE_N-dT0.js";import{t as V}from"./badge-CxTrJsDs.js";import{t as H}from"./Input-CCoAeW8B.js";import{t as Te}from"./Card-C_9nHSrd.js";import{a as Ee,i as U,n as W,o as De,r as Oe,t as ke}from"./TableHeader-CARoN-zc.js";import{t as Ae}from"./useClipboard-Bzk0ItE3.js";import{a as G,i as je,n as Me,r as K,t as q}from"./transform-domain-C42QlTbk.js";var Ne=A(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Pe=A(`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`}]]),J={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Fe(e,t){return k(),w(`svg`,J,[...t[0]||=[v(`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 Y={render:Fe},X={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ie(e,t){return k(),w(`svg`,X,[...t[0]||=[v(`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 Le={render:Ie},Re={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function ze(e,t){return k(),w(`svg`,Re,[...t[0]||=[v(`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),v(`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 Be={render:ze},Ve={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function He(e,t){return k(),w(`svg`,Ve,[...t[0]||=[v(`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),v(`defs`,null,[v(`linearGradient`,{id:`a`,x1:`0%`,x2:`100%`,y1:`0%`,y2:`0%`},[v(`stop`,{offset:`0%`,"stop-color":`#6336E7`,"stop-opacity":`.84`}),v(`stop`,{offset:`100%`,"stop-color":`#6F69F7`,"stop-opacity":`.84`})])],-1)]])}var Ue={render:He},We={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Ge(e,t){return k(),w(`svg`,We,[...t[0]||=[v(`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 Ke={render:Ge},qe={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Je(e,t){return k(),w(`svg`,qe,[...t[0]||=[v(`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 Ye={render:Je},Z={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Q(e,t){return k(),w(`svg`,Z,[...t[0]||=[v(`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 Xe={render:Q},Ze={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function Qe(e,t){return k(),w(`svg`,Ze,[...t[0]||=[v(`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),v(`defs`,null,[v(`linearGradient`,{id:`a`,x1:`1.646`,x2:`18.342`,y1:`1.916`,y2:`22.091`,gradientUnits:`userSpaceOnUse`},[v(`stop`,{"stop-color":`#01A9FF`}),v(`stop`,{offset:`1`,"stop-color":`#0160FF`})])],-1)]])}var $e={render:Qe},et={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function tt(e,t){return k(),w(`svg`,et,[...t[0]||=[v(`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 nt={render:tt},rt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function it(e,t){return k(),w(`svg`,rt,[...t[0]||=[v(`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),v(`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),v(`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),v(`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 at={render:it},ot={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function $(e,t){return k(),w(`svg`,ot,[...t[0]||=[v(`defs`,null,[v(`linearGradient`,{id:`a`,x1:`0%`,x2:`100.182%`,y1:`50.057%`,y2:`50.057%`},[v(`stop`,{offset:`0%`,"stop-color":`#E2167E`}),v(`stop`,{offset:`100%`,"stop-color":`#FE603C`})])],-1),v(`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 st={render:$},ct={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function lt(e,t){return k(),w(`svg`,ct,[...t[0]||=[v(`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 ut={render:lt},dt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function ft(e,t){return k(),w(`svg`,dt,[...t[0]||=[v(`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 pt={render:ft},mt={xmlns:`http://www.w3.org/2000/svg`,width:`1em`,height:`1em`,style:{flex:`none`,"line-height":`1`},viewBox:`0 0 24 24`};function ht(e,t){return k(),w(`svg`,mt,[...t[0]||=[y(`<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 gt={render:ht},_t={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 vt(e,t){return k(),w(`svg`,_t,[...t[0]||=[v(`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 yt={render:vt},bt={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 xt(e,t){return k(),w(`svg`,bt,[...t[0]||=[v(`path`,{d:`M16 6H8v12h8zm4 16H4V2h16z`},null,-1)]])}var St={render:xt},Ct={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 wt(e,t){return k(),w(`svg`,Ct,[...t[0]||=[v(`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 Tt={render:wt},Et={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 Dt(e,t){return k(),w(`svg`,Et,[...t[0]||=[v(`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 Ot={render:Dt},kt={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 800 800`};function At(e,t){return k(),w(`svg`,kt,[...t[0]||=[v(`path`,{fill:`#09090b`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),v(`path`,{fill:`#09090b`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var jt={render:At},Mt={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 Nt(e,t){return k(),w(`svg`,Mt,[...t[0]||=[v(`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 Pt={render:Nt},Ft={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 It(e,t){return k(),w(`svg`,Ft,[...t[0]||=[v(`path`,{d:`M16 6H8v12h8zm4 16H4V2h16z`},null,-1)]])}var Lt={render:It},Rt={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 zt(e,t){return k(),w(`svg`,Rt,[...t[0]||=[v(`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 Bt={render:zt},Vt={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 Ht(e,t){return k(),w(`svg`,Vt,[...t[0]||=[v(`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 Ut={render:Ht},Wt={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 800 800`};function Gt(e,t){return k(),w(`svg`,Wt,[...t[0]||=[v(`path`,{fill:`#fff`,"fill-rule":`evenodd`,d:`M165.29 165.29h352.07V400H400v117.36H282.65v117.36H165.29Zm117.36 117.36V400H400V282.65Z`},null,-1),v(`path`,{fill:`#fff`,d:`M517.36 400h117.36v234.72H517.36Z`},null,-1)]])}var Kt={render:Gt},qt=T({__name:`ProviderIcon`,props:{name:{},size:{default:20}},setup(n){let r={deepseek:Y,zhipu:Le,kimi:Be,qwen:Ue,baidu:Ke,iflytek:Ye,siliconcloud:Xe,stepfun:$e,tencentcloud:nt,volcengine:at,minimax:st,alibaba:ut,claude:pt,codex:gt},i={moonshot:yt,opencode:St,openai:Tt,anthropic:Ot,pi:jt},a={moonshot:Pt,opencode:Lt,openai:Bt,anthropic:Ut,pi:Kt},o=n,s=e(()=>{let e=o.name.toLowerCase();if(r[e])return r[e];if(z.value&&a[e])return a[e];if(i[e])return i[e]}),c=e(()=>o.name.charAt(0).toUpperCase());return(e,r)=>s.value?(k(),E(D(s.value),{key:0,class:`shrink-0`,style:u({width:`${n.size}px`,height:`${n.size}px`})},null,8,[`style`])):(k(),w(`span`,{key:1,class:`inline-flex items-center justify-center shrink-0 font-bold text-muted-foreground`,style:u({width:`${n.size}px`,height:`${n.size}px`,fontSize:`${n.size*.5}px`})},t(c.value),5))}}),Jt={class:`border border-input rounded-lg p-4 space-y-3`},Yt={class:`flex items-center gap-3`},Xt={class:`text-xs font-medium text-muted-foreground whitespace-nowrap`},Zt={key:0,class:`grid grid-cols-4 gap-3`},Qt={class:`col-span-2`},$t=T({__name:`ProxyConfigForm`,props:{modelValue:{}},emits:[`update:modelValue`],setup(n,{emit:r}){let i=n,a=r,{t:c}=d();function l(e){a(`update:modelValue`,{...i.modelValue,...e})}let u=e(()=>i.modelValue.proxyType??G.proxyType),f=e(()=>i.modelValue.proxyUrl??G.proxyUrl),p=e(()=>i.modelValue.proxyUsername??G.proxyUsername),m=e(()=>i.modelValue.proxyPassword??G.proxyPassword);function h(e){let t=typeof e==`string`?e:e==null?``:JSON.stringify(e),n=t===`none`?``:t;n?l({proxyType:n}):a(`update:modelValue`,{...G})}return(e,n)=>(k(),w(`div`,Jt,[v(`div`,Yt,[v(`span`,Xt,t(o(c)(`providers.fields.proxyTitle`)),1),C(o(B),{"model-value":u.value||`none`,class:`w-32`,"onUpdate:modelValue":h},{default:s(()=>[C(o(L),null,{default:s(()=>[C(o(R))]),_:1}),C(o(P),null,{default:s(()=>[C(o(I),{value:`none`},{default:s(()=>[_(t(o(c)(`providers.fields.proxyNoProxy`)),1)]),_:1}),C(o(I),{value:`http`},{default:s(()=>[_(t(o(c)(`providers.fields.proxyHttp`)),1)]),_:1}),C(o(I),{value:`socks5`},{default:s(()=>[_(t(o(c)(`providers.fields.proxySocks5`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),u.value?(k(),w(`div`,Zt,[v(`div`,Qt,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(c)(`providers.fields.proxyUrl`)),1)]),_:1}),C(o(H),{"model-value":f.value,type:`text`,class:`mt-1 font-mono text-xs`,placeholder:u.value===`socks5`?o(c)(`providers.fields.proxyUrlPlaceholderSocks5`):o(c)(`providers.fields.proxyUrlPlaceholderHttp`),"onUpdate:modelValue":n[0]||=e=>l({proxyUrl:e})},null,8,[`model-value`,`placeholder`])]),v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(c)(`providers.fields.proxyUsername`)),1)]),_:1}),C(o(H),{"model-value":p.value,type:`text`,class:`mt-1`,placeholder:o(c)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":n[1]||=e=>l({proxyUsername:e})},null,8,[`model-value`,`placeholder`])]),v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(c)(`providers.fields.proxyPassword`)),1)]),_:1}),C(o(H),{"model-value":m.value,type:`password`,autocomplete:`new-password`,class:`mt-1`,placeholder:o(c)(`providers.fields.proxyAuthOptional`),"onUpdate:modelValue":n[2]||=e=>l({proxyPassword:e})},null,8,[`model-value`,`placeholder`])])])):S(``,!0)]))}});function en(){let{t:e}=d(),t=r({injectHeaders:``,dropFields:``,requestDefaults:``}),i=r(!1);async function a(r){try{let e=await n.getTransformRules(r);e?(t.value.dropFields=(e.drop_fields||[]).join(`, `),t.value.requestDefaults=e.request_defaults?JSON.stringify(e.request_defaults):``,t.value.injectHeaders=e.inject_headers?JSON.stringify(e.inject_headers):``,i.value=!0):(t.value={injectHeaders:``,dropFields:``,requestDefaults:``},i.value=!1)}catch(n){console.error(`transformRules.load:`,n),F.error(b(n,e(`providers.transform.loadFailed`))),t.value={injectHeaders:``,dropFields:``,requestDefaults:``},i.value=!1}}function o(r){if(!r)return Promise.resolve();let a=q({injectHeaders:t.value.injectHeaders,dropFields:t.value.dropFields,requestDefaults:t.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 n.upsertTransformRules(r,{...o,is_active:1}).then(()=>{i.value=!0,F.success(e(`providers.transform.saved`))}).catch(t=>{console.error(`transformRules.save:`,t),F.error(b(t,e(`common.saveFailed`)))})}function s(r){return r?n.deleteTransformRules(r).then(()=>{t.value={injectHeaders:``,dropFields:``,requestDefaults:``},i.value=!1,F.success(e(`providers.transform.deleted`))}).catch(t=>{console.error(`transformRules.delete:`,t),F.error(b(t,e(`providers.transform.deleteFailed`)))}):Promise.resolve()}return{transformConfig:t,transformExists:i,loadTransformRules:a,saveTransformRules:o,handleDeleteTransformRules:s}}function tn(t){let i=r([]),a=r(``),o=r(``),s=e(()=>a.value?i.value.find(e=>e.group===a.value)?.presets??[]:[]);function c(){if(a.value===`__custom__`){o.value=``,t.value.name=``,t.value.api_type=`openai`,t.value.base_url=``,t.value.models=[],t.value.endpoints=[];return}let e=i.value.find(e=>e.group===a.value)?.presets[0];e?(o.value=e.plan,l(),e.endpoints&&e.endpoints.length>0?t.value.endpoints=e.endpoints.map(e=>({api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||null,api_key:null})):t.value.endpoints=[{api_type:e.apiType,base_url:e.baseUrl,upstream_path:e.upstreamPath||null,api_key:null}]):o.value=``}function l(){let e=s.value.find(e=>e.plan===o.value);e&&(t.value.name=e.presetName,t.value.api_type=e.apiType,t.value.base_url=e.baseUrl,t.value.upstream_path=e.upstreamPath??``,t.value.models=e.models.map(t=>({name:t,context_window:j(t),patches:M(t,e.apiType,!1),capabilities:e.modelCapabilities?.[t]})))}function u(){return s.value.find(e=>e.plan===o.value)?.modelsEndpoint}function d(){return s.value.find(e=>e.plan===o.value)?.models??[]}async function f(){try{i.value=await n.recommended.getProviders()}catch(e){console.error(`useProviderPresets.loadPresets:`,e),i.value=[]}}function p(){a.value=``,o.value=``}return{providerPresets:i,presetGroup:a,presetPlan:o,availablePlans:s,onGroupChange:c,onPresetChange:l,getCurrentModelsEndpoint:u,getCurrentPresetModels:d,loadPresets:f,resetPreset:p}}var nn=100,rn=1e3,an={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:``},on={openai:`OpenAI Chat Completions`,"openai-responses":`OpenAI Responses`,anthropic:`Anthropic Messages`};function sn(){let{t}=d(),{transformConfig:n,loadTransformRules:a,saveTransformRules:o}=en(),s=r({...an}),u=r({}),f=r(`auto`),p=r(!1),m=r(null),h=r(``),g=r(c),_=e({get:()=>`${g.value}`,set:e=>{g.value=Number(e)}}),v=tn(s);function y(){let e={};s.value.name.trim()?/^[a-zA-Z0-9_-]+$/.test(s.value.name.trim())||(e.name=t(`providers.validation.namePattern`)):e.name=t(`providers.validation.nameRequired`);let n=s.value.endpoints.length>0;if(!n)if(!s.value.base_url.trim())e.base_url=t(`providers.validation.baseUrlRequired`);else try{new URL(s.value.base_url.trim())}catch{e.base_url=t(`providers.validation.baseUrlInvalid`)}if(!m.value&&!s.value.api_key.trim()&&(e.api_key=t(`providers.validation.apiKeyRequired`)),n){let n=s.value.endpoints;for(let r=0;r<n.length;r++)n[r].base_url.trim()||(e[`endpoint_${r}_base_url`]=t(`providers.validation.baseUrlRequired`));let r=n.map(e=>e.api_type);new Set(r).size!==r.length&&(e.endpoints=t(`providers.validation.duplicateApiType`))}if(f.value!==`none`){let n=s.value.max_concurrency;(!n||n<1||n>nn)&&(e.max_concurrency=t(`providers.validation.concurrencyRange`,{min:1,max:nn})),s.value.queue_timeout_ms<0&&(e.queue_timeout_ms=t(`providers.validation.negativeNotAllowed`));let r=s.value.max_queue_size;(!r||r<1||r>rn)&&(e.max_queue_size=t(`providers.validation.queueSizeRange`,{min:1,max:rn}))}return u.value=e,Object.keys(e).length===0}function b(){let e={name:s.value.name,api_type:s.value.api_type,base_url:s.value.endpoints.length>0&&!s.value.base_url?s.value.endpoints[0].base_url:s.value.base_url,upstream_path:s.value.upstream_path||void 0,endpoints:s.value.endpoints.length>0?s.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:s.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,non_stream_timeout_ms:e.non_stream_timeout_ms??void 0,capabilities:e.capabilities??void 0})),is_active:+!!s.value.is_active,max_concurrency:f.value===`none`?0:s.value.max_concurrency,queue_timeout_ms:f.value===`none`?0:s.value.queue_timeout_ms,max_queue_size:f.value===`none`?je.max_queue_size:s.value.max_queue_size,adaptive_enabled:+(f.value===`auto`),proxy_type:s.value.proxy_type||null,proxy_url:s.value.proxy_url?.trim()||null,proxy_username:s.value.proxy_username?.trim()||null,proxy_password:s.value.proxy_password||null};return s.value.api_key&&(e.api_key=s.value.api_key),e}function x(e,t){let n=h.value.trim();if(!n)return;let r=n.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let n of r)s.value.models.some(e=>e.name===n)||s.value.models.push({name:n,context_window:g.value||2e5,patches:t??[],stream_timeout_ms:i,non_stream_timeout_ms:l,capabilities:e??[`text`]});h.value=``,g.value=c}function S(e){s.value.models.splice(e,1)}function C(e,t){s.value.models[e].context_window=t.contextWindow,s.value.models[e].patches=t.patches}function w(e,t){if(t===`text`)return;let n=s.value.models[e],r=n.capabilities??[`text`];n.capabilities=r.includes(t)?r.filter(e=>e!==t):[...r,t]}function T(e){f.value=e,e===`auto`?((!s.value.max_concurrency||s.value.max_concurrency<1)&&(s.value.max_concurrency=K.max_concurrency),s.value.adaptive_enabled=!0):e===`manual`&&((!s.value.max_concurrency||s.value.max_concurrency<1)&&(s.value.max_concurrency=je.max_concurrency),s.value.adaptive_enabled=!1)}function E(e){return e.includes(`api.openai.com`)}function D(){m.value=null,s.value={...an,models:[],endpoints:[]},f.value=`auto`,h.value=``,g.value=c,v.presetGroup.value=``,v.presetPlan.value=``,u.value={},p.value=!0}function O(e){m.value=e.id;let t=e.max_concurrency??0;t===0?f.value=`none`:e.adaptive_enabled?f.value=`auto`:f.value=`manual`,s.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,non_stream_timeout_ms:e.non_stream_timeout_ms??null,capabilities:e.capabilities??[`text`]})),is_active:!!e.is_active,max_concurrency:f.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:f.value===`auto`,proxy_type:e.proxy_type||``,proxy_url:e.proxy_url||``,proxy_username:e.proxy_username||``,proxy_password:``},v.presetGroup.value=``,v.presetPlan.value=``,h.value=``,g.value=c,u.value={},p.value=!0,a(e.id)}return{form:s,errors:u,concurrencyMode:f,dialogOpen:p,editingId:m,modelInput:h,modelContextWindow:g,contextWindowSelect:_,transformConfig:n,presetHook:v,validate:y,buildPayload:b,addModel:x,removeModel:S,updateModel:C,toggleModelCapability:w,onConcurrencyModeChange:T,isOfficialOpenai:E,openCreate:D,openEdit:O,saveTransformRules:o}}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=T({__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(e,{emit:n}){let{t:a}=d(),u=r(!1),g=r([`text`]),y=[{key:`text`,icon:oe,label:`text`},{key:`image`,icon:se,label:`image`},{key:`audio`,icon:ne,label:`audio`},{key:`video`,icon:re,label:`video`}];function b(e){if(e===`text`)return;let t=g.value;g.value=t.includes(e)?t.filter(t=>t!==e):[...t,e]}let T=e,A=n;function j(e){A(`update:modelValue`,{...T.modelValue,...e})}function M(){let e=T.modelValue.modelInput.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean),n=[...T.modelValue.models];for(let e of t)n.some(t=>t.name===e)||n.push({name:e,context_window:Number(T.modelValue.contextWindowSelect)||2e5,patches:[],stream_timeout_ms:i,non_stream_timeout_ms:l,capabilities:[...g.value]});j({models:n,modelInput:``,contextWindowSelect:`${c}`}),g.value=[`text`]}function ce(e){let t=[...T.modelValue.models];t.splice(e,1),j({models:t})}function le(e,t){let n=[...T.modelValue.models];n[e]={...n[e],context_window:t.contextWindow,patches:t.patches},j({models:n})}function ue(e,t){let n=[...T.modelValue.models];n[e]={...n[e],stream_timeout_ms:t===void 0?null:t},j({models:n})}function de(e,t){let n=[...T.modelValue.models];n[e]={...n[e],non_stream_timeout_ms:t===void 0?null:t},j({models:n})}function fe(e,t){if(t===`text`)return;let n=[...T.modelValue.models],r=n[e],i=r.capabilities??[`text`];n[e]={...r,capabilities:i.includes(t)?i.filter(e=>e!==t):[...i,t]},j({models:n})}function pe(e){let t={concurrencyMode:e};e===`auto`?(!T.modelValue.maxConcurrency||T.modelValue.maxConcurrency<1)&&(t.maxConcurrency=10):e===`manual`&&(!T.modelValue.maxConcurrency||T.modelValue.maxConcurrency<1)&&(t.maxConcurrency=3),j(t)}function me(e){return e.capabilities??[`text`]}function F(e){return e.includes(`api.openai.com`)}return(e,n)=>(k(),w(h,null,[v(`div`,cn,[v(`div`,ln,t(o(a)(`providers.fields.connectionSection`)),1),v(`div`,un,[v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.fields.name`)),1)]),_:1}),C(o(H),{"model-value":T.modelValue.name,type:`text`,required:``,class:`mt-1`,"onUpdate:modelValue":n[0]||=e=>j({name:String(e)}),onInput:n[1]||=e=>A(`clear-errors`,`name`)},null,8,[`model-value`]),T.errors.name?(k(),w(`p`,dn,t(T.errors.name),1)):S(``,!0)]),v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.fields.apiKey`)),1)]),_:1}),C(o(H),{"model-value":T.modelValue.apiKey,type:`password`,autocomplete:`new-password`,required:!T.editingId,placeholder:T.editingId?o(a)(`providers.fields.apiKeyPlaceholder`):``,class:`mt-1 font-mono text-xs`,"onUpdate:modelValue":n[2]||=e=>j({apiKey:String(e)}),onInput:n[3]||=e=>A(`clear-errors`,`api_key`)},null,8,[`model-value`,`required`,`placeholder`]),T.errors.api_key?(k(),w(`p`,fn,t(T.errors.api_key),1)):S(``,!0),v(`p`,pn,t(o(a)(`providers.fields.sharedKeyHint`)),1)])]),C(ie,{"model-value":T.endpoints,"shared-key":T.sharedKey,"onUpdate:modelValue":n[4]||=e=>A(`update:endpoints`,e)},null,8,[`model-value`,`shared-key`])]),v(`div`,mn,[v(`div`,hn,t(o(a)(`providers.fields.modelsSection`)),1),v(`div`,null,[v(`div`,gn,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.fields.availableModels`)),1)]),_:1}),!T.editingId&&T.presetGroup&&T.presetGroup!==`__custom__`&&(T.hasApiKey||!T.hasModelsEndpoint)?(k(),E(o(x),{key:0,type:`button`,variant:`outline`,size:`sm`,class:`text-xs`,disabled:T.fetchingModels,onClick:n[5]||=e=>A(`fetch-upstream-models`)},{default:s(()=>[C(o(Ne),{class:p([`w-3 h-3 mr-1`,{"animate-spin":T.fetchingModels}])},null,8,[`class`]),_(` `+t(T.fetchingModels?o(a)(`providers.fetchModels.loading`):T.hasModelsEndpoint?o(a)(`providers.fetchModels.button`):o(a)(`providers.fetchModels.buttonPreset`)),1)]),_:1},8,[`disabled`])):S(``,!0)]),v(`div`,_n,[(k(!0),w(h,null,O(T.modelValue.models,(e,t)=>(k(),w(`div`,{key:t},[C(ae,{model:{name:e.name,contextWindow:e.context_window??2e5,enabled:!0,patches:e.patches??[]},"api-type":T.modelValue.apiType,"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":!F(T.modelValue.baseUrl),"stream-timeout-ms":e.stream_timeout_ms??void 0,"non-stream-timeout-ms":e.non_stream_timeout_ms??void 0,capabilities:me(e),"onUpdate:model":e=>le(t,e),onRemove:e=>ce(t),"onUpdate:streamTimeoutMs":e=>ue(t,e),"onUpdate:nonStreamTimeoutMs":e=>de(t,e),onToggleCapability:e=>fe(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`stream-timeout-ms`,`non-stream-timeout-ms`,`capabilities`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onUpdate:nonStreamTimeoutMs`,`onToggleCapability`])]))),128))]),v(`div`,vn,[C(o(H),{"model-value":T.modelValue.modelInput,"onUpdate:modelValue":n[6]||=e=>j({modelInput:String(e)}),placeholder:o(a)(`providers.fields.modelInputPlaceholder`),onKeydown:m(f(M,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`model-value`,`placeholder`,`onKeydown`]),C(o(B),{"model-value":T.modelValue.contextWindowSelect,"onUpdate:modelValue":n[7]||=e=>j({contextWindowSelect:String(e)})},{default:s(()=>[C(o(L),{class:`w-28`},{default:s(()=>[C(o(R),{placeholder:o(a)(`providers.fields.context`)},null,8,[`placeholder`])]),_:1}),C(o(P),null,{default:s(()=>[(k(!0),w(h,null,O(o(te),e=>(k(),E(o(I),{key:e.value,value:String(e.value)},{default:s(()=>[_(t(e.label),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`]),v(`div`,yn,[(k(),w(h,null,O(y,e=>C(o(x),{key:e.key,type:`button`,variant:`outline`,size:`icon`,class:p([`w-6 h-6 text-[11px] font-medium`,g.value.includes(e.key)?`border-primary/30 text-primary bg-primary/10`:`text-muted-foreground/40 hover:text-muted-foreground border-input`]),title:e.label,onClick:t=>b(e.key)},{default:s(()=>[(k(),E(D(e.icon),{class:`size-[11px]`}))]),_:2},1032,[`class`,`title`,`onClick`])),64))]),C(o(x),{type:`button`,variant:`outline`,size:`sm`,onClick:M,disabled:!T.modelValue.modelInput.trim()},{default:s(()=>[_(t(o(a)(`providers.fields.addModel`)),1)]),_:1},8,[`disabled`])])])]),v(`div`,bn,[C(o(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:n[8]||=e=>u.value=!u.value},{default:s(()=>[C(o(ee),{class:p([`w-3 h-3 transition-transform duration-150`,u.value?`rotate-90`:``])},null,8,[`class`]),_(` `+t(o(a)(`providers.fields.advancedSection`)),1)]),_:1}),u.value?(k(),w(`div`,xn,[v(`div`,Sn,[v(`div`,Cn,[v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.concurrency.mode`)),1)]),_:1}),C(o(B),{"model-value":T.modelValue.concurrencyMode,"onUpdate:modelValue":n[9]||=e=>pe(e),class:`mt-1`},{default:s(()=>[C(o(L),{class:`h-8 text-[13px]`},{default:s(()=>[C(o(R),{placeholder:o(a)(`providers.concurrency.selectMode`)},null,8,[`placeholder`])]),_:1}),C(o(P),null,{default:s(()=>[C(o(I),{value:`auto`},{default:s(()=>[_(t(o(a)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),C(o(I),{value:`manual`},{default:s(()=>[_(t(o(a)(`providers.concurrency.manual`)),1)]),_:1}),C(o(I),{value:`none`},{default:s(()=>[_(t(o(a)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])]),T.modelValue.concurrencyMode===`none`?S(``,!0):(k(),w(h,{key:0},[v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),C(o(H),{"model-value":String(T.modelValue.maxConcurrency),type:`number`,class:`mt-1`,"onUpdate:modelValue":n[10]||=e=>j({maxConcurrency:Number(e)})},null,8,[`model-value`])]),v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.concurrency.queueTimeout`)),1)]),_:1}),C(o(H),{"model-value":String(T.modelValue.queueTimeoutMs),type:`number`,class:`mt-1`,"onUpdate:modelValue":n[11]||=e=>j({queueTimeoutMs:Number(e)})},null,8,[`model-value`])]),v(`div`,null,[C(o(N),{class:`text-xs text-muted-foreground`},{default:s(()=>[_(t(o(a)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),C(o(H),{"model-value":String(T.modelValue.maxQueueSize),type:`number`,class:`mt-1`,"onUpdate:modelValue":n[12]||=e=>j({maxQueueSize:Number(e)})},null,8,[`model-value`])])],64))]),C($t,{"model-value":T.modelValue.proxyConfig,"onUpdate:modelValue":n[13]||=e=>j({proxyConfig:e})},null,8,[`model-value`]),v(`div`,wn,[v(`div`,Tn,t(o(a)(`providers.transform.title`)),1),C(Me,{"model-value":T.modelValue.transformConfig,"onUpdate:modelValue":n[14]||=e=>j({transformConfig:e})},null,8,[`model-value`])])])])):S(``,!0)])],64))}}),Dn=7,On=7,kn=2e3;function An(){let{t:e}=d(),t=r([]),i=r(!1),a=r(null),o=r(null),s=r(null),c=r(null),l=r(!1),u=r([]);async function f(){try{t.value=await n.getProviders()}catch(t){console.error(`Failed to load providers:`,t),F.error(b(t,e(`providers.toast.loadFailed`)))}}function p(e){return e?e.slice(0,Dn)+`*`.repeat(On):``}let{copy:m}=Ae();async function h(e,t){await m(e)&&(a.value=t,setTimeout(()=>{a.value=null},kn))}function g(e){o.value=e}async function _(e){if(s.value=e,c.value=e.id,l.value=!!e.is_active,u.value=[],e.is_active)try{u.value=(await n.getProviderDependencies(e.id)).references}catch(e){console.error(`useProviderActions.doSave:`,e),u.value=[]}}async function v(){let t=c.value;if(!t)return;let r=l.value;s.value=null,c.value=null;try{let i=await n.updateProvider(t,{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 f()}catch(t){console.error(`Failed to toggle provider:`,t),F.error(b(t,e(`providers.toast.toggleFailed`)))}}async function y(){let t=o.value;if(t){o.value=null;try{await n.deleteProvider(t.id),await f()}catch(t){console.error(`providerActions.delete:`,t),F.error(b(t,e(`providers.toast.deleteFailed`)))}}}async function x(){i.value=!0;try{let t=await n.reloadTransformRules();F.success(e(`providers.toast.reloadSuccess`,{pluginCount:t.loadedPlugins.length,rulesCount:t.rulesCount}))}catch(t){console.error(`providerActions.reload:`,t),F.error(b(t,e(`providers.toast.reloadFailed`)))}finally{i.value=!1}}return{providers:t,reloading:i,copiedId:a,deleteTarget:o,toggleTarget:s,pendingToggleId:c,pendingToggleActive:l,toggleDependencies:u,maskKey:p,copyKey:h,loadProviders:f,confirmDelete:g,confirmToggle:_,handleToggle:v,handleDelete:y,handleReload:x}}function jn(e,t,i){let{t:a}=d(),o=r(!1);function s(t,n){if(t.length===0){F.info(a(`providers.fetchModels.empty`));return}let r=new Set(e.value.models.map(e=>e.name)),i=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)}),i++);i>0?F.success(a(`providers.fetchModels.success`,{source:n,total:t.length,added:i})):F.info(a(`providers.fetchModels.allExist`,{total:t.length}))}function c(){s(i(),a(`providers.fetchModels.sourcePreset`))}async function l(){let r=t();if(!r){c();return}if(!e.value.api_key?.trim()){F.error(a(`providers.fetchModels.noApiKey`));return}o.value=!0;try{let t=await n.fetchUpstreamModels({base_url:e.value.base_url,models_endpoint:r,api_key:e.value.api_key,api_type:e.value.api_type});if(t.length===0){c();return}s(t,a(`providers.fetchModels.sourceUpstream`))}catch(e){console.error(`useFetchUpstreamModels.fetch:`,e),c()}finally{o.value=!1}}return{fetchingModels:o,fetchUpstreamModels:l}}var Mn={class:`page`},Nn={class:`mb-4`},Pn={class:`flex items-center justify-between mb-3`},Fn={class:`text-base font-semibold text-foreground`},In={class:`flex items-center gap-2`},Ln={key:0,class:`grid grid-cols-4 bg-card border-input border rounded-lg overflow-hidden`},Rn={class:`flex flex-col gap-1 px-5 py-3.5 border-r border-input last:border-r-0`},zn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Bn={class:`font-mono text-[28px] font-bold leading-none mt-0.5`},Vn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Hn={class:`font-mono text-[28px] font-bold leading-none mt-0.5 text-success`},Un={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},Wn={class:`font-mono text-[28px] font-bold leading-none mt-0.5 text-muted-foreground`},Gn={class:`flex flex-col gap-1 px-5 py-3.5`},Kn={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider`},qn={class:`font-mono text-[28px] font-bold leading-none mt-0.5`},Jn={class:`flex items-center gap-2 mb-4`},Yn={class:`relative flex-1 max-w-sm`},Xn={class:`font-mono text-xs text-muted-foreground shrink-0`},Zn={class:`flex items-center gap-2.5`},Qn={class:`flex flex-col gap-0.5 min-w-0`},$n={class:`flex items-center gap-1.5`},er={class:`font-medium text-[13px] truncate`},tr={key:0,class:`border-t border-dashed border-border my-0.5`},nr={class:`font-mono text-[11px] text-muted-foreground truncate max-w-[260px] block`},rr={class:`space-y-0.5`},ir={key:0,class:`border-t border-dashed border-border my-0.5`},ar={class:`flex items-center gap-1`},or={key:0,class:`font-mono text-xs text-muted-foreground`},sr={key:1,class:`text-[10px] text-emerald-600 dark:text-emerald-400`},cr={class:`flex items-center gap-1.5`},lr={class:`font-mono text-[13px] font-medium`},ur={class:`flex items-center gap-1.5`},dr={key:2,class:`text-muted-foreground text-xs`},fr={class:`flex items-center gap-2`},pr={class:`flex items-center gap-1`},mr={key:1,class:`flex flex-col items-center justify-center py-16 text-center bg-card border-input border rounded-lg`},hr={class:`text-[15px] font-semibold mb-1.5`},gr={class:`text-sm text-muted-foreground mb-5 max-w-sm`},_r={key:2,class:`flex flex-col items-center justify-center py-12 text-center bg-card border-input border rounded-lg`},vr={class:`text-sm text-muted-foreground`},yr={key:0,class:`bg-card border-input border rounded-lg p-4 mb-4`},br={class:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wider mb-3 pb-2 border-b border-input`},xr={class:`flex items-center gap-2`},Sr={key:0,class:`mt-2 space-y-1`},Cr={class:`text-sm font-medium`},wr=T({__name:`Providers`,setup(i){let{t:c}=d(),{form:l,errors:u,concurrencyMode:m,dialogOpen:y,editingId:T,modelInput:A,contextWindowSelect:ee,transformConfig:te,presetHook:ne,validate:re,buildPayload:ie,openCreate:ae,openEdit:j,saveTransformRules:M}=sn(),{providerPresets:oe,presetGroup:N,presetPlan:z,availablePlans:Ae,onGroupChange:G,onPresetChange:je,getCurrentModelsEndpoint:Me,getCurrentPresetModels:K}=ne,{providers:q,reloading:J,copiedId:Fe,deleteTarget:Y,toggleTarget:X,toggleDependencies:Ie,maskKey:Le,copyKey:Re,loadProviders:ze,confirmDelete:Be,confirmToggle:Ve,handleToggle:He,handleDelete:Ue,handleReload:We}=An(),{fetchingModels:Ge,fetchUpstreamModels:Ke}=jn(l,Me,K),qe=e({get:()=>({proxyType:l.value.proxy_type,proxyUrl:l.value.proxy_url,proxyUsername:l.value.proxy_username,proxyPassword:l.value.proxy_password}),set:e=>{l.value.proxy_type=e.proxyType,l.value.proxy_url=e.proxyUrl,l.value.proxy_username=e.proxyUsername,l.value.proxy_password=e.proxyPassword}}),Je=e({get:()=>({name:l.value.name,apiType:l.value.api_type,baseUrl:l.value.base_url,apiKey:l.value.api_key,upstreamPath:l.value.upstream_path,models:l.value.models,modelInput:A.value,contextWindowSelect:ee.value,concurrencyMode:m.value,maxConcurrency:l.value.max_concurrency,queueTimeoutMs:l.value.queue_timeout_ms,maxQueueSize:l.value.max_queue_size,transformConfig:te.value,proxyConfig:qe.value}),set:e=>{l.value.name=e.name,l.value.api_type=e.apiType,l.value.base_url=e.baseUrl,l.value.api_key=e.apiKey,l.value.upstream_path=e.upstreamPath,l.value.models=e.models,A.value=e.modelInput,ee.value=e.contextWindowSelect,m.value=e.concurrencyMode,l.value.max_concurrency=e.maxConcurrency,l.value.queue_timeout_ms=e.queueTimeoutMs,l.value.max_queue_size=e.maxQueueSize,qe.value=e.proxyConfig,te.value=e.transformConfig}}),Ye=r(``),Z=r(`all`),Q=r(``);function Xe(e){Q.value===e?(Q.value=``,Z.value=`all`):(Q.value=e,Z.value=e)}function Ze(){Z.value===`all`?Q.value=``:Q.value=Z.value}let Qe=e(()=>q.value.filter(e=>e.is_active).length),$e=e(()=>q.value.filter(e=>!e.is_active).length),et=e(()=>q.value.reduce((e,t)=>e+(t.models?.length??0),0)),tt=e(()=>{let e=q.value,t=Ye.value.toLowerCase().trim();return t&&(e=e.filter(e=>e.name.toLowerCase().includes(t)||e.base_url.toLowerCase().includes(t))),Z.value===`enabled`?e=e.filter(e=>e.is_active):Z.value===`disabled`&&(e=e.filter(e=>!e.is_active)),e}),nt={deepseek:`deepseek`,qianfan:`baidu`,百度千帆:`baidu`,iflytek:`iflytek`,科大讯飞:`iflytek`,siliconflow:`siliconcloud`,硅基流动:`siliconcloud`,zhipu:`zhipu`,智谱:`zhipu`,kimi:`moonshot`,moonshot:`moonshot`,月之暗面:`moonshot`,minimax:`minimax`,volcengine:`volcengine`,火山引擎:`volcengine`,aliyun:`alibaba`,alibaba:`alibaba`,阿里云:`alibaba`,tencent:`tencentcloud`,腾讯云:`tencentcloud`,opencode:`opencode`,stepfun:`stepfun`,阶跃星辰:`stepfun`};function rt(e){let t=e.toLowerCase();for(let[e,n]of Object.entries(nt))if(t.includes(e))return n;return t}function it(e){return(e.models??[]).some(e=>e.capabilities?.includes(`image`))}let at={anthropic:`/v1/messages`,openai:`/v1/chat/completions`,"openai-responses":`/v1/responses`};function ot(e){return at[e.api_type]}function $(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(re())try{let e=ie();e.name=l.value.name.trim();let t=T.value;T.value?await n.updateProvider(T.value,e):(e.api_key=l.value.api_key,t=(await n.createProvider(e)).id),await M(t),y.value=!1,await ze()}catch(e){console.error(`Failed to save provider:`,e),F.error(b(e,c(`providers.toast.saveFailed`)))}}return g(async()=>{try{let e=await n.getProvidersInit();q.value=e.providers,oe.value=e.recommended}catch(e){console.error(`Providers.init:`,e),F.error(b(e,c(`providers.toast.loadFailed`)))}}),(e,n)=>(k(),w(`div`,Mn,[v(`div`,Nn,[v(`div`,Pn,[v(`h2`,Fn,t(o(c)(`providers.title`)),1),v(`div`,In,[C(o(x),{variant:`outline`,size:`sm`,onClick:o(We),disabled:o(J)},{default:s(()=>[C(o(Ne),{class:p([`w-4 h-4 mr-1`,{"animate-spin":o(J)}])},null,8,[`class`]),_(` `+t(o(c)(`providers.reloadPlugin`)),1)]),_:1},8,[`onClick`,`disabled`])])]),o(q).length>0?(k(),w(`div`,Ln,[v(`div`,Rn,[v(`span`,zn,t(o(c)(`providers.anchor.total`)),1),v(`span`,Bn,t(o(q).length),1)]),v(`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)]":Q.value===`enabled`}]),onClick:n[0]||=e=>Xe(`enabled`)},[v(`span`,Vn,t(o(c)(`providers.anchor.enabled`)),1),v(`span`,Hn,t(Qe.value),1)],2),v(`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":Q.value===`disabled`}]),onClick:n[1]||=e=>Xe(`disabled`)},[v(`span`,Un,t(o(c)(`providers.anchor.disabled`)),1),v(`span`,Wn,t($e.value),1)],2),v(`div`,Gn,[v(`span`,Kn,t(o(c)(`providers.anchor.models`)),1),v(`span`,qn,t(et.value),1)])])):S(``,!0)]),v(`div`,Jn,[v(`div`,Yn,[C(o(ce),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground`}),C(o(H),{modelValue:Ye.value,"onUpdate:modelValue":n[2]||=e=>Ye.value=e,placeholder:o(c)(`providers.filter.searchPlaceholder`),class:`pl-8 h-8 text-[13px]`},null,8,[`modelValue`,`placeholder`])]),C(o(B),{modelValue:Z.value,"onUpdate:modelValue":[n[3]||=e=>Z.value=e,Ze]},{default:s(()=>[C(o(L),{class:`w-28 h-8 text-[13px]`},{default:s(()=>[C(o(R),{placeholder:o(c)(`providers.filter.status`)},null,8,[`placeholder`])]),_:1}),C(o(P),null,{default:s(()=>[C(o(I),{value:`all`},{default:s(()=>[_(t(o(c)(`providers.filter.all`)),1)]),_:1}),C(o(I),{value:`enabled`},{default:s(()=>[_(t(o(c)(`providers.filter.enabled`)),1)]),_:1}),C(o(I),{value:`disabled`},{default:s(()=>[_(t(o(c)(`providers.filter.disabled`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`]),v(`span`,Xn,t(tt.value.length)+` `+t(o(c)(`providers.filter.count`)),1),n[14]||=v(`div`,{class:`flex-1`},null,-1),C(o(x),{onClick:o(ae),class:`flex items-center gap-1.5 h-8`},{default:s(()=>[n[13]||=v(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[v(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),_(` `+t(o(c)(`providers.addProvider`)),1)]),_:1},8,[`onClick`])]),o(q).length>0?(k(),E(o(Te),{key:0,flush:``,class:`border-input`},{default:s(()=>[C(o(De),{class:`[&_td]:px-4 [&_th]:px-4`},{default:s(()=>[C(o(ke),null,{default:s(()=>[C(o(Oe),{class:`bg-muted/50 border-b border-input hover:bg-muted/50`},{default:s(()=>[C(o(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:s(()=>[_(t(o(c)(`providers.tableHeaders.name`)),1)]),_:1}),C(o(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:s(()=>[_(t(o(c)(`providers.tableHeaders.apiKey`)),1)]),_:1}),C(o(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:s(()=>[_(t(o(c)(`providers.tableHeaders.models`)),1)]),_:1}),C(o(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:s(()=>[_(t(o(c)(`providers.tableHeaders.concurrency`)),1)]),_:1}),C(o(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:s(()=>[_(t(o(c)(`providers.tableHeaders.status`)),1)]),_:1}),C(o(W),{class:`text-muted-foreground text-[11px] font-semibold uppercase tracking-wider`},{default:s(()=>[_(t(o(c)(`providers.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),C(o(Ee),null,{default:s(()=>[(k(!0),w(h,null,O(tt.value,e=>(k(),E(o(Oe),{key:e.id,class:p([`border-b border-input`,{"opacity-55 hover:opacity-75":!e.is_active}])},{default:s(()=>[C(o(U),null,{default:s(()=>[v(`div`,Zn,[C(qt,{name:rt(e.name),size:20},null,8,[`name`]),v(`div`,Qn,[v(`div`,$n,[v(`span`,er,t(e.name),1),(k(!0),w(h,null,O($(e),e=>(k(),E(o(V),{key:e.api_type,variant:`secondary`,class:`text-[11px] px-1.5 py-0 shrink-0`},{default:s(()=>[_(t(o(on)[e.api_type]??e.api_type),1)]),_:2},1024))),128)),e.proxy_type?(k(),E(o(Pe),{key:0,class:`w-3 h-3 text-muted-foreground`,title:`Proxy: ${e.proxy_type.toUpperCase()}`},null,8,[`title`])):S(``,!0)]),v(`div`,null,[(k(!0),w(h,null,O($(e),(e,n)=>(k(),w(h,{key:e.api_type},[n>0?(k(),w(`div`,tr)):S(``,!0),v(`span`,nr,t(st(e)),1)],64))),128))])])])]),_:2},1024),C(o(U),null,{default:s(()=>[v(`div`,rr,[(k(!0),w(h,null,O($(e),(n,r)=>(k(),w(h,{key:n.api_type},[r>0?(k(),w(`div`,ir)):S(``,!0),v(`div`,ar,[n.api_key?(k(),w(`span`,or,t(o(Le)(n.api_key)),1)):(k(),w(`span`,sr,`shared`)),C(o(x),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:t=>o(Re)(n.api_key||e.api_key,`${e.id}-${n.api_type}`)},{default:s(()=>[(k(),E(D(o(Fe)===`${e.id}-${n.api_type}`?o(we):o(ve)),{class:p([`w-3 h-3`,{"text-success":o(Fe)===`${e.id}-${n.api_type}`}])},null,8,[`class`]))]),_:2},1032,[`onClick`])])],64))),128))])]),_:2},1024),C(o(U),null,{default:s(()=>[v(`div`,cr,[v(`span`,lr,t(e.models?.length??0),1),n[15]||=v(`span`,{class:`text-xs text-muted-foreground`},`models`,-1),it(e)?(k(),E(o(V),{key:0,variant:`outline`,class:`text-[10px] px-1 py-0 gap-0.5 text-primary/70 border-primary/20 h-4`},{default:s(()=>[C(o(se),{class:`w-2.5 h-2.5`})]),_:1})):S(``,!0)])]),_:2},1024),C(o(U),null,{default:s(()=>[v(`div`,ur,[e.adaptive_enabled?(k(),E(o(V),{key:0,variant:`outline`,class:`text-[11px] h-5`},{default:s(()=>[_(t(o(c)(`common.adaptive`)),1)]),_:1})):e.max_concurrency>0?(k(),E(o(V),{key:1,variant:`secondary`,class:`text-[11px] h-5 font-mono`},{default:s(()=>[_(t(e.max_concurrency),1)]),_:2},1024)):(k(),w(`span`,dr,`-`))])]),_:2},1024),C(o(U),null,{default:s(()=>[v(`div`,fr,[C(o(me),{"model-value":!!e.is_active,"onUpdate:modelValue":t=>o(Ve)(e)},null,8,[`model-value`,`onUpdate:modelValue`]),v(`span`,{class:p([`text-xs`,e.is_active?`text-foreground`:`text-muted-foreground`])},t(e.is_active?o(c)(`common.enabled`):o(c)(`common.disabled`)),3)])]),_:2},1024),C(o(U),null,{default:s(()=>[v(`div`,pr,[C(o(x),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-primary`,onClick:t=>o(j)(e)},{default:s(()=>[_(t(o(c)(`common.edit`)),1)]),_:1},8,[`onClick`]),C(o(x),{variant:`ghost`,size:`sm`,class:`h-7 text-xs px-2 text-muted-foreground hover:text-destructive`,onClick:t=>o(Be)(e)},{default:s(()=>[_(t(o(c)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1})):S(``,!0),o(q).length===0&&!o(J)?(k(),w(`div`,mr,[n[17]||=v(`div`,{class:`w-12 h-12 rounded-lg bg-primary/10 flex items-center justify-center mb-4`},[v(`svg`,{class:`w-6 h-6 text-primary`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[v(`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`}),v(`path`,{d:`M12 8v8M8 12h8`})])],-1),v(`h3`,hr,t(o(c)(`providers.empty.title`)),1),v(`p`,gr,t(o(c)(`providers.empty.description`)),1),C(o(x),{onClick:o(ae),class:`flex items-center gap-1.5`},{default:s(()=>[n[16]||=v(`svg`,{class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`,"stroke-width":`2`},[v(`path`,{d:`M12 4v16m8-8H4`})],-1),_(` `+t(o(c)(`providers.empty.addFirst`)),1)]),_:1},8,[`onClick`])])):S(``,!0),o(q).length>0&&tt.value.length===0?(k(),w(`div`,_r,[v(`p`,vr,t(o(c)(`providers.filter.noResults`)),1)])):S(``,!0),C(o(de),{open:o(y),"onUpdate:open":n[10]||=e=>a(y)?y.value=e:null},{default:s(()=>[C(o(le),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:s(()=>[C(o(ue),null,{default:s(()=>[C(o(pe),null,{default:s(()=>[_(t(o(T)?o(c)(`providers.editProvider`):o(c)(`providers.addProvider`)),1)]),_:1})]),_:1}),v(`form`,{onSubmit:f(ct,[`prevent`])},[o(T)?S(``,!0):(k(),w(`div`,yr,[v(`div`,br,t(o(c)(`providers.template.title`)),1),v(`div`,xr,[C(o(B),{modelValue:o(N),"onUpdate:modelValue":[n[4]||=e=>a(N)?N.value=e:null,o(G)]},{default:s(()=>[C(o(L),{class:`flex-1 h-8 text-[13px]`},{default:s(()=>[C(o(R),{placeholder:o(c)(`providers.template.selectProvider`)},null,8,[`placeholder`])]),_:1}),C(o(P),null,{default:s(()=>[C(o(I),{value:`__custom__`},{default:s(()=>[_(t(o(c)(`providers.template.custom`)),1)]),_:1}),(k(!0),w(h,null,O(o(oe),e=>(k(),E(o(I),{key:e.group,value:e.group},{default:s(()=>[_(t(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),o(N)===`__custom__`?S(``,!0):(k(),E(o(B),{key:0,modelValue:o(z),"onUpdate:modelValue":[n[5]||=e=>a(z)?z.value=e:null,o(je)],disabled:!o(N)||o(N)===`__custom__`},{default:s(()=>[C(o(L),{class:`flex-1 h-8 text-[13px]`},{default:s(()=>[C(o(R),{placeholder:o(c)(`providers.template.selectPlan`)},null,8,[`placeholder`])]),_:1}),C(o(P),null,{default:s(()=>[(k(!0),w(h,null,O(o(Ae),e=>(k(),E(o(I),{key:e.plan,value:e.plan},{default:s(()=>[_(t(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`,`disabled`]))])])),o(N)||o(T)?(k(),E(En,{key:1,modelValue:Je.value,"onUpdate:modelValue":n[6]||=e=>Je.value=e,"editing-id":o(T),errors:o(u),"fetching-models":o(Ge),"has-models-endpoint":!!o(Me)(),"preset-group":o(N),"has-api-key":!!o(l).api_key,endpoints:o(l).endpoints,"shared-key":o(l).api_key,onClearErrors:n[7]||=e=>delete o(u)[e],onFetchUpstreamModels:o(Ke),"onUpdate:endpoints":n[8]||=e=>o(l).endpoints=e},null,8,[`modelValue`,`editing-id`,`errors`,`fetching-models`,`has-models-endpoint`,`preset-group`,`has-api-key`,`endpoints`,`shared-key`,`onFetchUpstreamModels`])):S(``,!0),C(o(fe),null,{default:s(()=>[C(o(x),{type:`button`,variant:`outline`,onClick:n[9]||=e=>y.value=!1},{default:s(()=>[_(t(o(c)(`common.cancel`)),1)]),_:1}),C(o(x),{type:`submit`},{default:s(()=>[_(t(o(c)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),C(o(xe),{open:!!o(Y),"onUpdate:open":n[11]||=e=>{e||(Y.value=null)}},{default:s(()=>[C(o(Ce),null,{default:s(()=>[C(o(Se),null,{default:s(()=>[C(o(be),null,{default:s(()=>[_(t(o(c)(`providers.confirmDelete.title`)),1)]),_:1}),C(o(ye),null,{default:s(()=>[_(t(o(c)(`providers.confirmDelete.message`,{name:o(Y)?.name})),1)]),_:1})]),_:1}),C(o(he),null,{default:s(()=>[C(o(ge),null,{default:s(()=>[_(t(o(c)(`common.cancel`)),1)]),_:1}),C(o(x),{variant:`destructive`,onClick:o(Ue)},{default:s(()=>[_(t(o(c)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`]),C(o(xe),{open:!!o(X),"onUpdate:open":n[12]||=e=>{e||(X.value=null)}},{default:s(()=>[C(o(Ce),null,{default:s(()=>[C(o(Se),null,{default:s(()=>[C(o(be),null,{default:s(()=>[_(t(o(X)?.is_active?o(c)(`providers.confirmToggle.titleDisable`):o(c)(`providers.confirmToggle.titleEnable`)),1)]),_:1}),C(o(ye),null,{default:s(()=>[_(t(o(X)?.is_active?o(c)(`providers.confirmToggle.messageDisable`,{name:o(X)?.name}):o(c)(`providers.confirmToggle.messageEnable`,{name:o(X)?.name}))+` `,1),o(Ie).length?(k(),w(`div`,Sr,[v(`div`,Cr,t(o(c)(`providers.confirmToggle.dependencyWarning`)),1),(k(!0),w(h,null,O(o(Ie),e=>(k(),w(`div`,{key:e,class:`text-destructive text-sm`},t(e),1))),128))])):S(``,!0)]),_:1})]),_:1}),C(o(he),null,{default:s(()=>[C(o(ge),null,{default:s(()=>[_(t(o(c)(`common.cancel`)),1)]),_:1}),C(o(_e),{onClick:o(He)},{default:s(()=>[_(t(o(c)(`common.confirm`)),1)]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{wr as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,Jt as i,Mt as a,W as ee,Xt as te,Z as o,_t as ne,at as s,et as c,j as l,n as u,nt as d,ot as f,rt as p,st as m,tt as h,xt as re,yt as g,z as _}from"./button-CEjoKdKq.js";import{t as ie}from"./chevron-right-Bvw4z2Yf.js";import{t as ae}from"./plus-B9mBymA8.js";import{t as oe}from"./trash-2-m7vH2ViZ.js";import{n as se,t as ce}from"./CollapsibleContent-vZSsPw6t.js";import{t as le}from"./CollapsibleTrigger-BBdH_cCm.js";import{t as v}from"./Switch-BVug67mH.js";import{a as y,et as b,nt as x,ot as S,pt as C,st as ue}from"./index-DE_N-dT0.js";import{t as w}from"./Skeleton-BpwFXs9Z.js";import{t as T}from"./badge-CxTrJsDs.js";import{t as E}from"./Input-CCoAeW8B.js";import{t as D}from"./Card-C_9nHSrd.js";import{t as O}from"./CardContent-i69eqvwn.js";import{t as de}from"./CascadingModelSelect-DSBog9EX.js";import{t as fe}from"./useProviderGroups-bpCq-vsG.js";var k=_(`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=m({__name:`ToggleRow`,props:{title:{},description:{},modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(e){return(n,r)=>(g(),p(`div`,A,[c(`div`,j,[c(`div`,M,t(e.title),1),c(`div`,N,t(e.description),1)]),f(i(v),{"model-value":e.modelValue,"onUpdate:modelValue":r[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`},H={class:`flex-1 mr-4`},Ce={class:`text-sm font-medium`},we={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=m({__name:`ProxyEnhancement`,setup(m){let{t:_}=ee(),A=r(!0),j=r(``),M=r(!1),N=r(!1),U=r(!1),W=r(!1),G=r(!1),K=r(!1),q=r(!1),J=r([]),Y=r(void 0),X=r([]),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 $=e(()=>Z?!He(Z,Q()):!1);async function Ue(){try{let e=await n.getProxyEnhancementInit(),t=e.config;N.value=t.tool_round_limit_enabled,U.value=t.tool_call_loop_enabled,W.value=t.stream_loop_enabled,G.value=t.tool_error_logging_enabled,Y.value=t.ai_retry_config??void 0,X.value=fe(e.providers,{activeOnly:!0,defaultContextWindow:128e3});let[r,i]=await Promise.allSettled([x(),b()]);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=l(e,_(`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()})),t=(await Promise.allSettled([n.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}),ue(K.value),S(e)])).filter(e=>e.status===`rejected`);if(t.length>0){let e=t.map(e=>e.status===`rejected`?e.reason instanceof Error?e.reason.message:typeof e.reason==`string`?e.reason:JSON.stringify(e.reason):``).filter(Boolean).join(`; `);y.error(_(`proxyEnhancement.saveFailed`)+`: `+e);return}for(let e of J.value)e.client_type.trim()&&e.session_header_key.trim()&&(e.persisted=!0);y.success(_(`common.saveSuccess`)),Z=Q()}catch(e){console.error(`proxyEnhancement.handleSave:`,e),y.error(l(e,_(`proxyEnhancement.saveFailed`)))}finally{M.value=!1}}return ne(Ue),(e,n)=>(g(),p(`div`,F,[c(`div`,I,[c(`h2`,L,t(i(_)(`proxyEnhancement.title`)),1),c(`p`,R,t(i(_)(`proxyEnhancement.subtitle`)),1)]),A.value?(g(),p(`div`,z,[c(`div`,B,[f(i(w),{class:`h-4 w-24`}),f(i(w),{class:`h-28 w-full rounded-lg`})]),f(i(w),{class:`h-20 w-full rounded-lg`}),c(`div`,V,[f(i(w),{class:`h-4 w-20`}),f(i(w),{class:`h-28 w-full rounded-lg`})]),c(`div`,pe,[f(i(w),{class:`h-4 w-20`}),f(i(w),{class:`h-36 w-full rounded-lg`})])])):j.value?(g(),h(i(D),{key:1},{default:a(()=>[f(i(O),{class:`py-8 text-center text-sm text-muted-foreground`},{default:a(()=>[s(t(j.value),1)]),_:1})]),_:1})):(g(),p(`div`,me,[c(`section`,null,[c(`h3`,he,t(i(_)(`proxyEnhancement.sections.loopDetection`)),1),f(i(D),null,{default:a(()=>[f(i(O),{class:`divide-y divide-border`},{default:a(()=>[f(P,{title:i(_)(`proxyEnhancement.loopDetection.toolRoundLimit.title`),description:i(_)(`proxyEnhancement.loopDetection.toolRoundLimit.description`),modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e},null,8,[`title`,`description`,`modelValue`]),f(P,{title:i(_)(`proxyEnhancement.loopDetection.toolCallLoop.title`),description:i(_)(`proxyEnhancement.loopDetection.toolCallLoop.description`),modelValue:U.value,"onUpdate:modelValue":n[1]||=e=>U.value=e},null,8,[`title`,`description`,`modelValue`]),f(P,{title:i(_)(`proxyEnhancement.loopDetection.streamLoop.title`),description:i(_)(`proxyEnhancement.loopDetection.streamLoop.description`),modelValue:W.value,"onUpdate:modelValue":n[2]||=e=>W.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),c(`section`,null,[c(`h3`,ge,t(i(_)(`proxyEnhancement.sections.errorHandling`)),1),f(i(D),null,{default:a(()=>[f(i(O),null,{default:a(()=>[f(P,{title:i(_)(`proxyEnhancement.toolErrorLogging.title`),description:i(_)(`proxyEnhancement.toolErrorLogging.description`),modelValue:G.value,"onUpdate:modelValue":n[3]||=e=>G.value=e},null,8,[`title`,`description`,`modelValue`])]),_:1})]),_:1})]),c(`section`,null,[c(`h3`,_e,t(i(_)(`proxyEnhancement.sections.clientIdentification`)),1),f(i(D),null,{default:a(()=>[f(i(O),{class:`divide-y divide-border`},{default:a(()=>[(g(!0),p(o,null,re(J.value,(e,t)=>(g(),p(`div`,{key:t,class:`flex items-center gap-3 py-3 first:pt-0 last:pb-0`},[c(`div`,ve,[e.persisted?(g(),h(i(E),{key:0,"model-value":e.client_type,disabled:``,class:`h-8 text-xs font-mono`},null,8,[`model-value`])):(g(),h(i(E),{key:1,modelValue:e.client_type,"onUpdate:modelValue":t=>e.client_type=t,placeholder:i(_)(`proxyEnhancement.clientIdentification.placeholder.type`),class:`h-8 text-xs`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]))]),f(i(E),{modelValue:e.session_header_key,"onUpdate:modelValue":t=>e.session_header_key=t,placeholder:i(_)(`proxyEnhancement.clientIdentification.placeholder.header`),class:`h-8 text-xs flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),f(i(u),{variant:`ghost`,size:`icon`,class:`h-8 w-8 shrink-0`,disabled:J.value.length<=1,onClick:e=>Ke(t)},{default:a(()=>[f(i(oe),{class:`w-4 h-4`})]),_:1},8,[`disabled`,`onClick`])]))),128)),c(`div`,ye,[f(i(u),{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:a(()=>[f(i(ae),{class:`w-3.5 h-3.5 mr-1.5`}),s(` `+t(i(_)(`proxyEnhancement.clientIdentification.addEntry`)),1)]),_:1})])]),_:1})]),_:1})]),c(`section`,null,[c(`h3`,be,t(i(_)(`proxyEnhancement.sections.tokenManagement`)),1),c(`div`,xe,[f(i(D),null,{default:a(()=>[f(i(O),null,{default:a(()=>[c(`div`,Se,[c(`div`,H,[c(`div`,Ce,t(i(_)(`proxyEnhancement.tokenEstimation.title`)),1),c(`div`,we,t(i(_)(`proxyEnhancement.tokenEstimation.shortDescription`)),1)]),f(i(v),{modelValue:K.value,"onUpdate:modelValue":n[4]||=e=>K.value=e},null,8,[`modelValue`])]),c(`div`,Te,[f(i(se),{open:q.value,"onUpdate:open":n[5]||=e=>q.value=e},{default:a(()=>[f(i(le),{class:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors`},{default:a(()=>[f(i(ie),{class:te([`w-3 h-3 transition-transform`,q.value?`rotate-90`:``])},null,8,[`class`]),s(` `+t(i(_)(`proxyEnhancement.tokenEstimation.setupTitle`)),1)]),_:1}),f(i(ce),null,{default:a(()=>[c(`div`,Ee,[c(`p`,null,t(i(_)(`proxyEnhancement.tokenEstimation.claudeCode`)),1),c(`p`,De,t(i(_)(`proxyEnhancement.tokenEstimation.piExtension`)),1),c(`p`,Oe,t(i(_)(`proxyEnhancement.tokenEstimation.piModelsJson`)),1)])]),_:1})]),_:1},8,[`open`])])]),_:1})]),_:1}),f(i(D),null,{default:a(()=>[f(i(O),{class:`flex items-start gap-3 py-4`},{default:a(()=>[f(i(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:a(()=>[s(t(i(_)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),c(`div`,null,[c(`div`,ke,t(i(_)(`proxyEnhancement.contextOverflow.title`)),1),c(`div`,Ae,t(i(_)(`proxyEnhancement.contextOverflow.description`)),1)])]),_:1})]),_:1})])]),c(`section`,null,[c(`h3`,je,t(i(_)(`proxyEnhancement.sections.aiFeatures`)),1),c(`div`,Me,[f(i(D),null,{default:a(()=>[f(i(O),{class:`py-4`},{default:a(()=>[c(`div`,Ne,[f(i(k),{class:`w-4 h-4 mt-0.5 shrink-0 text-muted-foreground`}),c(`div`,null,[c(`div`,Pe,t(i(_)(`proxyEnhancement.aiRetryRuleGen`)),1),c(`div`,Fe,t(i(_)(`proxyEnhancement.aiRetryRuleGenDesc`)),1)])]),f(de,{providers:X.value,"model-value":Y.value,"onUpdate:modelValue":We},null,8,[`providers`,`model-value`])]),_:1})]),_:1}),f(i(D),null,{default:a(()=>[f(i(O),{class:`flex items-start gap-3 py-4`},{default:a(()=>[f(i(T),{variant:`secondary`,class:`shrink-0 mt-0.5`},{default:a(()=>[s(t(i(_)(`proxyEnhancement.alwaysOn`)),1)]),_:1}),c(`div`,null,[c(`div`,Ie,t(i(_)(`proxyEnhancement.sessionState.title`)),1),c(`div`,Le,t(i(_)(`proxyEnhancement.sessionState.description`)),1)])]),_:1})]),_:1})])])])),!A.value&&!j.value?(g(),p(`div`,Re,[$.value?(g(),p(`span`,ze,t(i(_)(`proxyEnhancement.unsavedChanges`)),1)):(g(),p(`span`,Be)),c(`div`,Ve,[$.value?(g(),h(i(u),{key:0,variant:`outline`,onClick:qe},{default:a(()=>[s(t(i(_)(`common.cancel`)),1)]),_:1})):d(``,!0),f(i(u),{disabled:M.value||!$.value,onClick:Je},{default:a(()=>[M.value?(g(),h(i(C),{key:0,class:`w-4 h-4 animate-spin mr-1`})):d(``,!0),s(` `+t(M.value?i(_)(`common.saving`):i(_)(`common.save`)),1)]),_:1},8,[`disabled`])])])):d(``,!0)]))}});export{U as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,F as i,It as a,Jt as o,Mt as s,N as c,P as l,R as u,W as ee,X as d,Xt as f,Y as p,Z as m,_t as h,at as g,et as _,j as v,kt as y,n as b,nt as x,ot as S,rt as C,st as w,tt as T,xt as E,yt as D,z as O}from"./button-CEjoKdKq.js";import{i as k,n as A,r as j,t as M}from"./ConcurrencyControl-hsDQfbVn.js";import{t as te}from"./chevron-right-Bvw4z2Yf.js";import{i as ne,n as re,o as ie,r as N,s as P,t as F}from"./model-patches-BVZz8hmE.js";import{t as I}from"./plus-B9mBymA8.js";import{t as ae}from"./sparkles-gPb_SItQ.js";import{t as oe}from"./Checkbox-DIo_zvR8.js";import{t as L}from"./Label-C7Hesw43.js";import{_ as se,_t as ce,a as R,g as z,h as le,m as ue,mt as de,v as fe,yt as pe}from"./index-DE_N-dT0.js";import{t as B}from"./badge-CxTrJsDs.js";import{t as me}from"./Input-CCoAeW8B.js";import{t as V}from"./Card-C_9nHSrd.js";import{t as H}from"./CardContent-i69eqvwn.js";import{n as U,t as W}from"./CardTitle-BG8tDKg7.js";import{t as he}from"./CascadingModelSelect-DSBog9EX.js";import{i as ge,n as _e,o as G,r as ve,t as ye}from"./transform-domain-C42QlTbk.js";var be=O(`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`}]]),K={DeepSeek:`deepseek`,百度千帆:`qianfan`,科大讯飞:`iflytek`,硅基流动:`siliconflow`,智谱:`zhipu`,月之暗面:`moonshot`,Minimax:`minimax`,火山引擎:`volcengine`,阿里云:`aliyun`,腾讯云:`tencent`,OpenCode:`opencode`,阶跃星辰:`stepfun`};function q(e){return K[e]??e.toLowerCase().replace(/[^a-z0-9]/gi,`-`).replace(/-+/g,`-`)}function J(e,t){let{injectHeaders:n,dropFields:r,requestDefaults:i}=e;if(!n.trim()&&!r.trim()&&!i.trim())return;let{rule:a,errorKey:o}=ye({injectHeaders:n,dropFields:r,requestDefaults:i});if(o)return t(o),!1;if(a)return JSON.parse(a)}async function xe(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 Se(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 Ce(e){return{name:e.isCustom?`custom-${Date.now()}`:`${q(e.selectedGroup)}-${q(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,non_stream_timeout_ms:e.non_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 we(e,t,n){let r;return r=e===`pi`?t.map(e=>e.name):ie[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 Te(e){return{provider:Ce({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:Se(e.recommendedRules,e.selectedRetryRules,e.retryProviderMap),transform_rules:e.transformRules}}function Ee(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 X(e,t,n){t.value=e.models.map(t=>({name:t,contextWindow:P(t),enabled:!0,patches:F(t,e.apiType,n.value),stream_timeout_ms:i,non_stream_timeout_ms:l,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),X(i,t.modelConfigs,t.isNonOpenaiEndpoint),Ae(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),X(u,i,a),Ae(s,u),c())}function Ae(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 je=1500;function Me(e,t,n,r){let i=[...e.value],a={[n]:r};i[t]={...i[t],...a},e.value=i}function Ne(e){let t=()=>{e.data.mappingEntries.value=we(e.selection.clientType.value,e.data.modelConfigs.value.filter(e=>e.enabled),e.data.existingMappings.value)},r=n=>{let{selection:r,data:i}=e;r.clientType.value=n;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,X(e.preset,i.modelConfigs,i.isNonOpenaiEndpoint),Ae(i.endpoints,e.preset))}t(),Pe(e)},a={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:t,syncRetryRules:()=>Pe(e)};return{updateMappings:t,selectClient:r,onProviderChange:e=>Oe(e,a),onPlanChange:n=>{let{selection:r,data:i}=e;r.selectedPlan.value=n,ke(n,r.selectedGroup,r.apiType,r.currentClient,i.modelConfigs,i.isNonOpenaiEndpoint,r.providerGroups,i.endpoints,t)},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){R.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=ve.max_concurrency:t===`manual`&&(e.submit.concurrencyConfig.value.max_concurrency=ge.max_concurrency)},testConnection:async()=>{if(!e.data.apiKey.value.trim()){e.submit.connectionStatus.value=`error`,R.error(e.t(`quickSetup.messages.fillApiKeyFirst`));return}let t=e.data.endpoints.value[0],r=e.data.modelConfigs.value.find(e=>e.enabled)?.name;if(!t&&!e.selection.currentPreset.value){R.error(e.t(`quickSetup.messages.selectProviderAndPlan`));return}e.submit.connectionStatus.value=`testing`;try{await n.testConnection({api_type:t?.api_type??e.selection.apiType.value,base_url:t?.base_url??e.data.baseUrl.value,upstream_path:t?.upstream_path??e.data.upstreamPath.value??null,api_key:e.data.apiKey.value.trim(),model:r}),e.submit.connectionStatus.value=`ok`,R.success(e.t(`quickSetup.messages.connectionOk`))}catch(t){e.submit.connectionStatus.value=`error`,console.error(`quickSetup.testConnection:`,t),R.error(v(t,e.t(`quickSetup.messages.connectionFailed`)))}},addCustomModel:(t,n=c)=>{e.data.modelConfigs.value.push({name:t,contextWindow:n,enabled:!0,patches:F(t,e.selection.apiType.value,e.data.isNonOpenaiEndpoint.value),stream_timeout_ms:i,non_stream_timeout_ms:l,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)=>Me(e.data.modelConfigs,t,`stream_timeout_ms`,n),updateModelNonStreamTimeout:(t,n)=>Me(e.data.modelConfigs,t,`non_stream_timeout_ms`,n),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:t,data:r,submit:i}=e;if(!t.currentPreset.value){R.error(e.t(`quickSetup.messages.selectProviderAndPlan`));return}if(!r.apiKey.value.trim()){R.error(e.t(`quickSetup.messages.fillApiKey`));return}i.saving.value=!0;try{let a=J(i.transformConfig.value,t=>R.error(e.t(`quickSetup.messages.${t}`)));if(a===!1)return;await n.quickSetup(Te({isCustomProvider:t.isCustomProvider.value,selectedGroup:t.selectedGroup.value,retryProviderMap:r.retryProviderMap.value,selectedPlan:t.selectedPlan.value,apiType:t.apiType.value,baseUrl:r.baseUrl.value,upstreamPath:r.upstreamPath.value,apiKey:r.apiKey.value.trim(),models:r.modelConfigs.value.filter(e=>e.enabled),concurrency:i.concurrencyConfig.value,mappingEntries:r.mappingEntries.value,recommendedRules:r.recommendedRules.value,selectedRetryRules:r.selectedRetryRules.value,transformRules:a,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 o=await xe(n,r.mappingEntries.value);R.success(o.length>0?e.t(`quickSetup.messages.setupCompleteWithErrors`,{count:o.length}):e.t(`quickSetup.messages.setupComplete`)),await new Promise(e=>setTimeout(e,je)),u.push(`/`)}catch(t){console.error(`quickSetup.save:`,t),R.error(v(t,e.t(`quickSetup.messages.setupFailed`)))}finally{i.saving.value=!1}}}}function Pe(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=Ee(n.recommendedRules.value,r)}function Fe(t,n,r,i,a,o){let s=e(()=>n.value?{provider:{id:t.value?`__new_custom__`:`__new_${q(n.value)}_${q(r.value)}__`,name:t.value?o(`quickSetup.provider.customProvider`):`${n.value} - ${r.value}`},models:i.value.filter(e=>e.enabled).map(e=>({name:e.name,contextWindow:e.contextWindow})),isNew:!0}:null);return{allProviderGroups:e(()=>{let e=a.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))}));return s.value&&s.value.models.length>0?[...e,s.value]:e})}}function Ie(){let{t}=ee(),i=r(`claude-code`),a=r([]),o=r(``),s=r(``),c=r(`anthropic`),l=r(``),u=l,d=r([]),f=r([]),p=r([]),m=r([]),g=r(new Set),_=r(new Map),b=r(!1),x=r(`idle`),S=r({...ve}),C=r({...G}),w=r([]),T=r([]),E=e(()=>o.value===`__custom__`),D=e(()=>ne.find(e=>e.id===i.value)),O=e(()=>{if(!(!o.value||!s.value))return a.value.find(e=>e.group===o.value)?.presets.find(e=>e.plan===s.value)}),k=r(``),A=r(``),j=r(``),M=r(``);y(O,e=>{if(e&&!E.value){j.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 te=e(()=>E.value?k.value:j.value),re=e(()=>E.value?A.value:M.value),ie=e(()=>a.value.find(e=>e.group===o.value)?.presets??[]),N=e(()=>!te.value.includes(`openai.com`)),P=e(()=>{let e=a.value.find(e=>e.group===o.value)?.shortname??o.value;return m.value.filter(t=>!t.providers||t.providers.length===0||t.providers.includes(e))}),I=Fe(E,o,s,f,T,t).allProviderGroups,ae=Ne({t,selection:{clientType:i,selectedGroup:o,selectedPlan:s,apiType:c,providerGroups:a,currentClient:D,currentPreset:O,isCustomProvider:E,customBaseUrl:k,customUpstreamPath:A},data:{modelConfigs:f,mappingEntries:p,apiKey:l,baseUrl:te,upstreamPath:re,existingMappings:w,allProviders:T,allRecommendedRules:m,recommendedRules:P,selectedRetryRules:g,retryProviderMap:_,isNonOpenaiEndpoint:N,endpoints:d},submit:{saving:b,connectionStatus:x,concurrencyConfig:S,transformConfig:C}});return y(c,()=>{for(let e of f.value)e.patches=F(e.name,c.value,N.value)}),h(async()=>{try{let e=await n.getQuickSetupInit();a.value=e.provider_groups,m.value=e.recommended_rules,w.value=e.existing_mappings,T.value=e.existing_providers,ae.selectClient(`claude-code`)}catch(e){console.error(`quickSetup.load:`,e),R.error(v(e,``))}}),{clientType:i,providerGroups:a,selectedGroup:o,selectedPlan:s,apiType:c,apiKey:l,sharedKey:u,endpoints:d,modelConfigs:f,mappingEntries:p,allRecommendedRules:m,recommendedRules:P,selectedRetryRules:g,retryProviderMap:_,saving:b,connectionStatus:x,currentClient:D,currentPreset:O,baseUrl:te,customBaseUrl:k,presetBaseUrl:j,upstreamPath:re,customUpstreamPath:A,presetUpstreamPath:M,isCustomProvider:E,availablePlans:ie,isNonOpenaiEndpoint:N,concurrencyConfig:S,transformConfig:C,existingMappings:w,allProviders:T,allProviderGroups:I,...ae,setRetryProvider:(e,t)=>void _.value.set(e,t)}}var Le={class:`space-y-1.5`},Re={class:`px-3 py-1.5`},ze={key:0,class:`py-3 text-center text-xs text-muted-foreground`},Be={class:`rounded-md border border-dashed border-border px-3 py-2 space-y-1.5`},Z={class:`flex items-center gap-2`},Q={class:`flex-[2] min-w-0`},$={class:`flex items-center gap-2`},Ve={key:0,class:`flex items-center gap-2 flex-1 min-w-0`},He={class:`text-[10px] text-blue-500/50 shrink-0`},Ue={class:`flex-1 min-w-0`},We=w({__name:`QuickSetupMappingList`,props:{entries:{},providerGroups:{}},emits:[`update:targets`,`update:multimodal-fallback`,`update:client-model`,`toggle-active`,`add`,`remove`],setup(e,{emit:n}){let{t:i}=ee(),a=n,c=r(null);function l(e){c.value=c.value===e?null:e}let u=r(``),d=r(),f=r(),p=r(!1);function h(){return u.value.trim().length>0&&!!d.value?.model}function v(){if(!(!p.value||!f.value?.model))return{provider_id:f.value.provider_id,backend_model:f.value.model}}function y(){let e=u.value.trim(),t=d.value;e&&t&&(a(`add`,e,t.model,v()),u.value=``,d.value=void 0,f.value=void 0,p.value=!1)}function w(e){e.key===`Enter`&&h()&&(e.preventDefault(),y())}return(n,r)=>(D(),C(`div`,Le,[(D(!0),C(m,null,E(e.entries,(t,n)=>(D(),C(`div`,{key:n,class:`rounded-md border border-border overflow-hidden`},[_(`div`,Re,[S(A,{entry:t,"provider-groups":e.providerGroups,expanded:c.value===t.clientModel,"editable-client-model":c.value===t.clientModel,onExpand:e=>l(t.clientModel),"onUpdate:targets":e=>a(`update:targets`,n,e),"onUpdate:clientModel":e=>a(`update:client-model`,n,e),"onUpdate:multimodalFallback":e=>a(`update:multimodal-fallback`,n,e),onToggleActive:e=>a(`toggle-active`,n),onRemove:e=>a(`remove`,t.clientModel)},null,8,[`entry`,`provider-groups`,`expanded`,`editable-client-model`,`onExpand`,`onUpdate:targets`,`onUpdate:clientModel`,`onUpdate:multimodalFallback`,`onToggleActive`,`onRemove`])])]))),128)),e.entries.length===0?(D(),C(`p`,ze,t(o(i)(`providers.shared.noMappings`)),1)):x(``,!0),_(`div`,Be,[_(`div`,Z,[S(o(me),{modelValue:u.value,"onUpdate:modelValue":r[0]||=e=>u.value=e,placeholder:o(i)(`providers.shared.clientModel`),class:`h-7 flex-1 min-w-0 text-xs font-mono border-border`,onKeydown:w},null,8,[`modelValue`,`placeholder`]),S(o(k),{class:`size-3.5 shrink-0 text-muted-foreground/30`}),_(`div`,Q,[S(he,{providers:e.providerGroups,"model-value":d.value,compact:``,placeholder:o(i)(`providers.shared.selectModel`),"onUpdate:modelValue":r[1]||=e=>d.value=e},null,8,[`providers`,`model-value`,`placeholder`])]),S(o(B),{variant:`outline`,class:`text-[10px] shrink-0 text-muted-foreground/50`},{default:s(()=>[g(t(o(i)(`providers.shared.tagCustom`)),1)]),_:1}),S(o(b),{variant:`outline`,size:`icon-xs`,class:`shrink-0`,disabled:!h(),onClick:y},{default:s(()=>[S(o(I),{class:`size-3`})]),_:1},8,[`disabled`])]),_(`div`,$,[S(o(b),{type:`button`,variant:`ghost`,size:`xs`,class:`text-[10px] text-blue-500/60 hover:text-blue-500`,onClick:r[2]||=e=>p.value=!p.value},{default:s(()=>[S(o(j),{class:`size-3 mr-1`}),g(` `+t(p.value?o(i)(`mappings.multimodalFallback.collapse`):o(i)(`mappings.multimodalFallback.add`)),1)]),_:1}),p.value?(D(),C(`div`,Ve,[_(`span`,He,[S(o(j),{class:`size-2.5`})]),_(`div`,Ue,[S(he,{providers:e.providerGroups,"model-value":f.value,compact:``,dashed:``,placeholder:o(i)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":r[3]||=e=>f.value=e},null,8,[`providers`,`model-value`,`placeholder`])])])):x(``,!0)])])]))}}),Ge={class:`page space-y-4 pb-20`},Ke={class:`flex items-center justify-between`},qe={class:`flex gap-2 flex-wrap`},Je={class:`text-left`},Ye={class:`font-medium text-sm leading-tight flex items-center gap-1.5`},Xe={class:`text-[10px] opacity-60 leading-tight`},Ze={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`},Qe={class:`flex items-center justify-between`},$e={key:0,class:`text-[10px] text-muted-foreground/50 flex items-center gap-1`},et={class:`text-[10px] font-medium uppercase tracking-wider text-muted-foreground/60 mb-1.5`},tt={class:`flex items-end gap-2`},nt={class:`w-40 space-y-1`},rt={key:0,class:`w-28 space-y-1`},it={class:`w-64 space-y-1`},at={class:`shrink-0 space-y-1`},ot={key:0,class:`border-t border-border pt-3`},st={class:`border-t border-border pt-3`},ct={class:`flex items-center justify-between mb-2`},lt={class:`text-xs font-medium text-muted-foreground`},ut={class:`flex items-center justify-between`},dt={key:0,class:`py-4 text-center text-xs text-muted-foreground`},ft={key:1,class:`flex flex-col gap-px bg-border rounded-lg overflow-hidden`},pt={key:2,class:`flex gap-2 mt-2`},mt={class:`border-t border-border pt-3 mt-3`},ht={key:0,class:`mt-2`},gt={class:`grid grid-cols-5 gap-4`},_t={class:`flex items-center justify-between`},vt={class:`col-span-2 space-y-4`},yt={class:`flex items-center justify-between`},bt={key:0,class:`py-6 text-center text-xs text-muted-foreground`},xt={key:1,class:`space-y-1.5 max-h-[320px] overflow-y-auto`},St={class:`flex items-center gap-2.5 pb-2 border-b border-border`},Ct=[`onClick`],wt={class:`flex-1 min-w-0`},Tt={class:`flex items-center gap-1.5`},Et={class:`text-xs font-medium`},Dt={class:`text-[10px] text-muted-foreground mt-0.5`},Ot={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`},kt={class:`text-xs text-muted-foreground flex items-center gap-1.5 font-mono`},At={key:0,class:`text-foreground/80`},jt={class:`text-[11px] px-2 py-0.5 rounded bg-primary/8 text-primary font-medium`},Mt={class:`text-foreground/80`},Nt={class:`flex items-center gap-2`},Pt={key:0,class:`flex items-center gap-1 text-[11px] text-primary`},Ft={class:`font-medium`},It={key:1,class:`flex items-center gap-1 text-[11px] text-destructive/70`},Lt=w({__name:`QuickSetup`,setup(n){let{t:i}=ee(),{clientType:c,currentClient:l,providerGroups:u,selectedGroup:h,selectedPlan:v,apiType:y,apiKey:w,sharedKey:O,endpoints:k,modelConfigs:A,mappingEntries:j,allRecommendedRules:P,recommendedRules:F,selectedRetryRules:I,retryProviderMap:he,saving:ge,connectionStatus:G,availablePlans:ve,isNonOpenaiEndpoint:ye,isCustomProvider:K,concurrencyConfig:q,transformConfig:J,allProviderGroups:xe,selectClient:Se,onProviderChange:Ce,onPlanChange:we,updateMappingTargets:Y,updateMappingMultimodalFallback:Te,updateMappingClientModel:Ee,toggleMappingActive:X,addMappingEntry:De,removeMappingEntry:Oe,toggleRetryRule:ke,setAllRetryRules:Ae,setRetryProvider:je,testConnection:Me,submit:Ne,addCustomModel:Pe,updateModel:Fe,removeModel:Le,updateModelTimeout:Re,updateModelNonStreamTimeout:ze,toggleModelCapability:Be}=Ie(),Z=r(``),Q=r(!1),$=r(`idle`);function Ve(){Z.value.trim()&&(Pe(Z.value.trim()),Z.value=``)}let He=e(()=>A.value.filter(e=>e.enabled).length),Ue=e(()=>ne.find(e=>e.id===c.value)?.name??c.value),Lt=e(()=>{let e=c.value?ie[c.value]:void 0;return e?e.join(`, `):``});function Rt(){if(!h.value){$.value=`invalid`,R.error(i(`quickSetup.messages.selectProvider`));return}if(!O.value.trim()&&!w.value.trim()){$.value=`invalid`,R.error(i(`quickSetup.messages.fillApiKey`));return}if(He.value===0){$.value=`invalid`,R.error(i(`quickSetup.messages.enableOneModel`));return}$.value=`valid`,R.success(i(`quickSetup.messages.validationPassed`))}return(e,n)=>(D(),C(m,null,[_(`div`,Ge,[S(o(V),{class:`ring-0`},{default:s(()=>[S(o(U),{class:`pb-3`},{default:s(()=>[_(`div`,Ke,[S(o(W),{class:`text-sm font-medium`},{default:s(()=>[g(t(o(i)(`quickSetup.client.selectClient`)),1)]),_:1}),o(c)?(D(),T(o(B),{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:s(()=>[S(o(pe),{class:`size-2.5 mr-0.5 stroke-[3]`}),g(` `+t(o(i)(`common.selected`)),1)]),_:1})):x(``,!0)])]),_:1}),S(o(H),null,{default:s(()=>[_(`div`,qe,[(D(!0),C(m,null,E(o(ne),e=>(D(),T(o(b),{key:e.id,variant:`outline`,class:f([`flex h-auto items-center gap-2.5 px-4 py-2.5 text-sm transition-all cursor-pointer`,o(c)===e.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:t=>o(Se)(e.id)},{default:s(()=>[_(`div`,{class:f([`shrink-0 w-6 h-6 rounded-md flex items-center justify-center text-[11px] font-bold text-white`,e.brandBg])},t(e.icon),3),_(`div`,Je,[_(`div`,Ye,[g(t(e.name)+` `,1),e.popular?(D(),T(o(B),{key:0,class:`text-[9px] px-1 py-0 leading-none bg-primary/15 text-primary font-medium`},{default:s(()=>[g(t(o(i)(`quickSetup.client.popular`)),1)]),_:1})):x(``,!0)]),_(`div`,Xe,t(e.format)+` · `+t(o(i)(e.descriptionKey)),1)])]),_:2},1032,[`class`,`onClick`]))),128))]),o(c)?(D(),C(`div`,Ze,[S(o(de),{class:`size-3.5 shrink-0 text-primary mt-px`}),_(`span`,null,t(o(i)(`quickSetup.client.infoBar`,{client:o(l)?.name??o(c),format:o(l)?.format===`anthropic`?`Anthropic Messages API`:o(l)?.format===`openai-responses`?`OpenAI Responses API`:`OpenAI Chat API`,models:Lt.value})),1)])):x(``,!0)]),_:1})]),_:1}),S(o(V),{class:`ring-0`},{default:s(()=>[S(o(U),{class:`pb-3`},{default:s(()=>[_(`div`,Qe,[S(o(W),{class:`text-sm font-medium`},{default:s(()=>[g(t(o(i)(`quickSetup.provider.connection`)),1)]),_:1}),o(h)?(D(),C(`span`,$e,[S(o(ae),{class:`size-3 text-muted-foreground/50`}),g(` `+t(o(i)(`quickSetup.provider.autoConfigured`)),1)])):x(``,!0)])]),_:1}),S(o(H),{class:`space-y-3`},{default:s(()=>[_(`div`,et,t(o(i)(`quickSetup.provider.groupLabel`)),1),_(`div`,tt,[_(`div`,nt,[S(o(L),{class:`text-xs text-muted-foreground`},{default:s(()=>[g(t(o(i)(`quickSetup.provider.label`)),1)]),_:1}),S(o(fe),{"model-value":o(h),"onUpdate:modelValue":n[0]||=e=>o(Ce)(e)},{default:s(()=>[S(o(le),{class:`w-full text-xs data-[size=default]:h-7`},{default:s(()=>[S(o(ue),{placeholder:o(i)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),S(o(se),null,{default:s(()=>[S(o(z),{value:`__custom__`},{default:s(()=>[g(t(o(i)(`quickSetup.provider.custom`)),1)]),_:1}),(D(!0),C(m,null,E(o(u),e=>(D(),T(o(z),{key:e.group,value:e.group},{default:s(()=>[g(t(e.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),o(K)?x(``,!0):(D(),C(`div`,rt,[S(o(L),{class:`text-xs text-muted-foreground`},{default:s(()=>[g(t(o(i)(`quickSetup.provider.plan`)),1)]),_:1}),S(o(fe),{"model-value":o(v),"onUpdate:modelValue":n[1]||=e=>o(we)(e)},{default:s(()=>[S(o(le),{class:`w-full text-xs data-[size=default]:h-7`},{default:s(()=>[S(o(ue),{placeholder:o(i)(`quickSetup.provider.select`)},null,8,[`placeholder`])]),_:1}),S(o(se),null,{default:s(()=>[(D(!0),C(m,null,E(o(ve),e=>(D(),T(o(z),{key:e.plan,value:e.plan},{default:s(()=>[g(t(e.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])])),_(`div`,it,[S(o(L),{class:`text-xs text-muted-foreground`},{default:s(()=>[g(t(o(i)(`quickSetup.provider.apiKey`)),1)]),_:1}),S(o(me),{modelValue:o(O),"onUpdate:modelValue":n[2]||=e=>a(O)?O.value=e:null,type:`password`,autocomplete:`new-password`,placeholder:o(i)(`quickSetup.provider.apiKeyPlaceholder`),class:`md:text-xs h-7`},null,8,[`modelValue`,`placeholder`])]),_(`div`,at,[S(o(L),{class:`text-xs text-muted-foreground invisible`},{default:s(()=>[g(t(o(i)(`quickSetup.provider.connect`)),1)]),_:1}),S(o(b),{variant:`outline`,size:`sm`,disabled:o(G)===`testing`,class:f(o(G)===`ok`?`border-green-500/50 text-green-500`:``),onClick:o(Me)},{default:s(()=>[o(G)===`testing`?(D(),C(m,{key:0},[n[11]||=_(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[_(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),_(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),g(` `+t(o(i)(`quickSetup.provider.testing`)),1)],64)):o(G)===`ok`?(D(),C(m,{key:1},[S(o(ce),{class:`size-3.5 mr-1`}),g(` `+t(o(i)(`quickSetup.provider.connected`)),1)],64)):(D(),C(m,{key:2},[g(t(o(i)(`quickSetup.provider.test`)),1)],64))]),_:1},8,[`disabled`,`class`,`onClick`])])]),o(k).length>0?(D(),C(`div`,ot,[S(re,{"model-value":o(k),"shared-key":o(O),readonly:!1,"onUpdate:modelValue":n[3]||=e=>k.value=e},null,8,[`model-value`,`shared-key`])])):x(``,!0),_(`div`,st,[_(`div`,ct,[_(`span`,lt,t(o(i)(`quickSetup.concurrency.control`)),1),S(o(B),{variant:`outline`,class:`text-[9px] px-1 py-0 leading-none text-muted-foreground/50`},{default:s(()=>[g(t(o(i)(`quickSetup.concurrency.optional`)),1)]),_:1})]),S(M,{modelValue:o(q),"onUpdate:modelValue":n[4]||=e=>a(q)?q.value=e:null},null,8,[`modelValue`])])]),_:1})]),_:1}),S(o(V),{class:`ring-0`},{default:s(()=>[S(o(U),{class:`pb-3`},{default:s(()=>[_(`div`,ut,[S(o(W),{class:`text-sm font-medium`},{default:s(()=>[g(t(o(i)(`quickSetup.model.config`)),1)]),_:1}),S(o(B),{variant:`secondary`,class:`text-[10px]`},{default:s(()=>[g(t(He.value)+`/`+t(o(A).length),1)]),_:1})])]),_:1}),S(o(H),null,{default:s(()=>[o(A).length===0?(D(),C(`p`,dt,t(o(i)(`quickSetup.model.selectProviderFirst`)),1)):(D(),C(`div`,ft,[(D(!0),C(m,null,E(o(A),(e,t)=>(D(),T(N,{key:e.name,model:e,"api-type":o(y),"is-deep-seek":e.name.toLowerCase().includes(`deepseek`),"is-non-openai-endpoint":o(ye),capabilities:e.capabilities??[`text`],"stream-timeout-ms":e.stream_timeout_ms??void 0,"non-stream-timeout-ms":e.non_stream_timeout_ms??void 0,"onUpdate:model":e=>o(Fe)(t,e),onRemove:e=>o(Le)(t),"onUpdate:streamTimeoutMs":e=>o(Re)(t,e),"onUpdate:nonStreamTimeoutMs":e=>o(ze)(t,e),onToggleCapability:e=>o(Be)(t,e)},null,8,[`model`,`api-type`,`is-deep-seek`,`is-non-openai-endpoint`,`capabilities`,`stream-timeout-ms`,`non-stream-timeout-ms`,`onUpdate:model`,`onRemove`,`onUpdate:streamTimeoutMs`,`onUpdate:nonStreamTimeoutMs`,`onToggleCapability`]))),128))])),o(K)?(D(),C(`div`,pt,[S(o(me),{modelValue:Z.value,"onUpdate:modelValue":n[5]||=e=>Z.value=e,placeholder:o(i)(`quickSetup.model.namePlaceholder`),onKeydown:p(d(Ve,[`prevent`]),[`enter`]),class:`flex-1 md:text-xs h-7`},null,8,[`modelValue`,`placeholder`,`onKeydown`]),S(o(b),{type:`button`,variant:`outline`,size:`sm`,onClick:Ve,disabled:!Z.value.trim()},{default:s(()=>[g(t(o(i)(`common.add`)),1)]),_:1},8,[`disabled`])])):x(``,!0),_(`div`,mt,[S(o(b),{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:n[6]||=e=>Q.value=!Q.value},{default:s(()=>[S(o(te),{class:f([`size-3 transition-transform`,Q.value?`rotate-90`:``])},null,8,[`class`]),g(` `+t(o(i)(`quickSetup.transform.title`))+` `,1),S(o(B),{variant:`outline`,class:`text-[9px] px-1 py-0 leading-none text-muted-foreground/50`},{default:s(()=>[g(t(o(i)(`quickSetup.transform.optional`)),1)]),_:1})]),_:1}),Q.value?(D(),C(`div`,ht,[S(_e,{modelValue:o(J),"onUpdate:modelValue":n[7]||=e=>a(J)?J.value=e:null},null,8,[`modelValue`])])):x(``,!0)])]),_:1})]),_:1}),_(`div`,gt,[S(o(V),{class:`col-span-3 ring-0`},{default:s(()=>[S(o(U),{class:`pb-3`},{default:s(()=>[_(`div`,_t,[S(o(W),{class:`text-sm font-medium`},{default:s(()=>[g(t(o(i)(`quickSetup.mapping.title`)),1)]),_:1}),S(o(B),{variant:`secondary`,class:`text-[10px]`},{default:s(()=>[g(t(o(i)(`quickSetup.mapping.count`,{count:o(j).length})),1)]),_:1})])]),_:1}),S(o(H),null,{default:s(()=>[S(We,{entries:o(j),"provider-groups":o(xe),"onUpdate:targets":o(Y),"onUpdate:multimodalFallback":o(Te),"onUpdate:clientModel":o(Ee),onToggleActive:o(X),onAdd:o(De),onRemove:o(Oe)},null,8,[`entries`,`provider-groups`,`onUpdate:targets`,`onUpdate:multimodalFallback`,`onUpdate:clientModel`,`onToggleActive`,`onAdd`,`onRemove`])]),_:1})]),_:1}),_(`div`,vt,[S(o(V),{class:`ring-0`},{default:s(()=>[S(o(U),{class:`pb-3`},{default:s(()=>[_(`div`,yt,[S(o(W),{class:`text-sm font-medium`},{default:s(()=>[g(t(o(i)(`quickSetup.retry.title`)),1)]),_:1}),S(o(B),{variant:`secondary`,class:`text-[10px]`},{default:s(()=>[g(t(o(i)(`quickSetup.retry.selectedCount`,{count:o(F).filter(e=>e.exists).length+o(I).size})),1)]),_:1})])]),_:1}),S(o(H),null,{default:s(()=>[o(F).length===0?(D(),C(`div`,bt,[o(P).length===0?(D(),C(m,{key:0},[g(t(o(i)(`quickSetup.retry.allCreated`)),1)],64)):(D(),C(m,{key:1},[g(t(o(i)(`quickSetup.retry.selectProviderFirst`)),1)],64))])):(D(),C(`div`,xt,[_(`div`,St,[S(o(oe),{disabled:o(F).every(e=>e.exists),"model-value":o(F).filter(e=>!e.exists).every(e=>o(I).has(e.name))?!0:o(F).some(e=>!e.exists&&o(I).has(e.name))?`indeterminate`:!1,class:`mt-0.5`,"onUpdate:modelValue":n[8]||=e=>{let t=e===!0;o(Ae)(o(F).filter(e=>!e.exists).map(e=>e.name),t)}},null,8,[`disabled`,`model-value`]),_(`span`,{class:f([`text-xs font-medium`,o(F).every(e=>e.exists)?`text-muted-foreground/40`:`text-muted-foreground`])},t(o(i)(`common.selectAll`)),3)]),(D(!0),C(m,null,E(o(F),e=>(D(),C(`div`,{key:e.name,class:f([`flex items-start gap-2.5 rounded-md transition-colors`,e.exists?`opacity-60 cursor-default p-2`:`hover:bg-muted/50 cursor-pointer p-2`]),onClick:t=>!e.exists&&o(ke)(e.name,!o(I).has(e.name))},[S(o(oe),{"model-value":e.exists?!0:o(I).has(e.name),disabled:e.exists,class:`mt-0.5`,"onUpdate:modelValue":t=>o(ke)(e.name,t===!0),onClick:n[9]||=d(()=>{},[`stop`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`]),_(`div`,wt,[_(`div`,Tt,[_(`span`,Et,t(e.name),1),e.exists?(D(),T(o(B),{key:0,variant:`secondary`,class:`text-[9px] px-1.5 py-0 leading-none bg-muted text-muted-foreground`},{default:s(()=>[g(t(o(i)(`quickSetup.retry.configured`)),1)]),_:1})):x(``,!0)]),_(`div`,Dt,t(e.status_code)+` · `+t(e.retry_strategy===`fixed`?o(i)(`quickSetup.retry.fixed`):o(i)(`quickSetup.retry.exponential`))+` · `+t(e.retry_delay_ms/1e3)+`s · `+t(e.max_retries)+t(o(i)(`quickSetup.retry.times`)),1)]),!e.exists&&e.providers&&e.providers.length>0?(D(),C(`div`,{key:0,class:`shrink-0`,onClick:n[10]||=d(()=>{},[`stop`])},[S(o(fe),{"model-value":o(he).get(e.name)??`general`,"onUpdate:modelValue":t=>o(je)(e.name,t)},{default:s(()=>[S(o(le),{class:`h-6 text-[10px] px-2 py-0 gap-1`},{default:s(()=>[S(o(ue))]),_:1}),S(o(se),null,{default:s(()=>[S(o(z),{value:`general`},{default:s(()=>[g(t(o(i)(`quickSetup.retry.general`)),1)]),_:1}),(D(!0),C(m,null,E(e.providers,e=>(D(),T(o(z),{key:e,value:e},{default:s(()=>[g(t(e),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`model-value`,`onUpdate:modelValue`])])):e.exists?x(``,!0):(D(),T(o(B),{key:1,variant:`secondary`,class:`text-[9px] px-1 py-0 leading-none shrink-0 mt-0.5`},{default:s(()=>[g(t(o(i)(`quickSetup.retry.general`)),1)]),_:1}))],10,Ct))),128))]))]),_:1})]),_:1})])])]),_(`div`,Ot,[_(`div`,kt,[o(c)?(D(),C(`span`,At,t(Ue.value),1)):x(``,!0),o(h)?(D(),C(m,{key:1},[n[13]||=_(`span`,{class:`text-muted-foreground/40`},`→`,-1),_(`span`,jt,t(o(K)?o(i)(`quickSetup.provider.custom`):o(h)),1),o(v)?(D(),C(m,{key:0},[n[12]||=_(`span`,{class:`text-muted-foreground/40`},`/`,-1),_(`span`,Mt,t(o(v)),1)],64)):x(``,!0)],64)):x(``,!0),n[14]||=_(`span`,{class:`text-muted-foreground/40`},`·`,-1),_(`span`,null,t(o(i)(`quickSetup.footer.models`,{count:He.value})),1),n[15]||=_(`span`,{class:`text-muted-foreground/40`},`·`,-1),_(`span`,null,t(o(i)(`quickSetup.footer.mappings`,{count:o(j).length})),1),n[16]||=_(`span`,{class:`text-muted-foreground/40`},`·`,-1),_(`span`,null,t(o(i)(`quickSetup.footer.rules`,{count:o(I).size+o(F).filter(e=>e.exists).length})),1)]),_(`div`,Nt,[$.value===`valid`?(D(),C(`div`,Pt,[S(o(ce),{class:`size-3.5`}),_(`span`,Ft,t(o(i)(`quickSetup.footer.validated`)),1)])):$.value===`invalid`?(D(),C(`div`,It,[S(o(be),{class:`size-3.5`}),_(`span`,null,t(o(i)(`quickSetup.footer.invalid`)),1)])):x(``,!0),S(o(b),{size:`sm`,variant:`outline`,onClick:Rt},{default:s(()=>[g(t(o(i)(`quickSetup.footer.validate`)),1)]),_:1}),S(o(b),{size:`sm`,disabled:o(ge),onClick:o(Ne)},{default:s(()=>[o(ge)?(D(),C(m,{key:0},[n[17]||=_(`svg`,{class:`w-3.5 h-3.5 mr-1 animate-spin`,fill:`none`,viewBox:`0 0 24 24`},[_(`circle`,{class:`opacity-25`,cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,"stroke-width":`4`}),_(`path`,{class:`opacity-75`,fill:`currentColor`,d:`M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z`})],-1),g(` `+t(o(i)(`quickSetup.footer.saving`)),1)],64)):(D(),C(m,{key:1},[g(t(o(i)(`quickSetup.footer.saveConfig`)),1)],64))]),_:1},8,[`disabled`,`onClick`])])])],64))}});export{Lt as default};
@@ -0,0 +1 @@
1
+ import{$ as e,$t as t,A as n,Bt as r,Jt as i,Mt as a,Qt as o,S as s,St as c,W as l,X as u,Xt as d,Z as f,_t as p,at as m,et as h,gt as g,i as _,j as v,mt as y,n as b,nt as x,o as S,ot as C,r as w,rt as T,st as E,tt as D,xt as O,yt as k}from"./button-CEjoKdKq.js";import{t as A}from"./plus-B9mBymA8.js";import{t as j}from"./Checkbox-DIo_zvR8.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-t8wD-SZ9.js";import{n as ce,t as le}from"./CollapsibleContent-vZSsPw6t.js";import{t as N}from"./CollapsibleTrigger-BBdH_cCm.js";import{a as ue,n as de,o as fe,r as pe,t as me}from"./dialog-DPvcfIzg.js";import{t as P}from"./Label-C7Hesw43.js";import{_ as F,a as I,c as he,d as ge,g as L,h as R,l as _e,lt as ve,m as z,o as ye,p as be,pt as xe,s as Se,t as Ce,u as we,v as B,vt as V,z as H}from"./index-DE_N-dT0.js";import{t as U}from"./badge-CxTrJsDs.js";import{t as W}from"./Input-CCoAeW8B.js";import{t as G}from"./Card-C_9nHSrd.js";import{t as K}from"./CardContent-i69eqvwn.js";import{n as q,t as J}from"./CardTitle-BG8tDKg7.js";import{a as Y,i as X,n as Z,o as Te,r as Q,t as Ee}from"./TableHeader-CARoN-zc.js";var De=E({__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(t){let n=t,{forwardRef:s}=S(),l=ne(),u=e(()=>M(l.baseId,n.value)),d=e(()=>oe(l.baseId,n.value)),f=e(()=>n.value===l.modelValue.value),m=r(f.value);return p(()=>{l.registerContent(n.value),requestAnimationFrame(()=>{m.value=!1})}),g(()=>{l.unregisterContent(n.value)}),(e,t)=>(k(),D(i(H),{present:e.forceMount||f.value,"force-mount":``},{default:a(({present:t})=>[C(i(_),{id:d.value,ref:i(s),"as-child":e.asChild,as:e.as,role:`tabpanel`,"data-state":f.value?`active`:`inactive`,"data-orientation":i(l).orientation.value,"aria-labelledby":u.value,hidden:!t,tabindex:`0`,style:o({animationDuration:m.value?`0s`:void 0})},{default:a(()=>[!i(l).unmountOnHide.value||t?c(e.$slots,`default`,{key:0}):x(`v-if`,!0)]),_:2},1032,[`id`,`as-child`,`as`,`data-state`,`data-orientation`,`aria-labelledby`,`hidden`,`style`])]),_:3},8,[`present`]))}}),$=E({__name:`TabsContent`,props:{value:{},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=s(t,`class`);return(e,r)=>(k(),D(i(De),y({"data-slot":`tabs-content`,class:i(w)(`text-sm flex-1 outline-none`,t.class)},i(n)),{default:a(()=>[c(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=E({__name:`RecommendedRules`,props:{rules:{}},emits:[`added`],setup(o,{emit:s}){let{t:c}=l(),u=o,p=s,g=r(!1),_=r(new Set),v=e(()=>u.rules.length>0&&_.value.size===u.rules.length);function y(e){let t=new Set(_.value);t.has(e)?t.delete(e):t.add(e),_.value=t}function S(e){_.value=e===!0?new Set(u.rules.map(e=>e.name)):new Set}async function w(){let e=u.rules.filter(e=>_.value.has(e.name));for(let t of e)await n.createRetryRule({name:t.name,status_code:t.status_code,body_pattern:t.body_pattern,is_active:1,retry_strategy:t.retry_strategy,retry_delay_ms:t.retry_delay_ms,max_retries:t.max_retries,max_delay_ms:t.max_delay_ms});I.success(c(`retryRules.messages.addedCount`,{count:e.length})),_.value=new Set,p(`added`)}return(e,n)=>o.rules.length>0?(k(),D(i(G),{key:0,class:`mt-6`},{default:a(()=>[C(i(ce),{open:g.value,"onUpdate:open":n[0]||=e=>g.value=e},{default:a(()=>[C(i(N),{"as-child":``},{default:a(()=>[C(i(q),{class:`cursor-pointer hover:bg-muted/50 transition-colors`},{default:a(()=>[h(`div`,Fe,[C(i(J),{class:`text-sm font-medium`},{default:a(()=>[m(t(i(c)(`retryRules.recommended.title`,{count:o.rules.length})),1)]),_:1}),C(i(V),{class:d([`h-4 w-4 text-muted-foreground transition-transform`,{"rotate-180":g.value}])},null,8,[`class`])])]),_:1})]),_:1}),C(i(le),null,{default:a(()=>[C(i(K),null,{default:a(()=>[h(`div`,Ie,[h(`div`,Le,[C(i(j),{"model-value":v.value,"onUpdate:modelValue":S},null,8,[`model-value`]),h(`span`,Re,t(i(c)(`retryRules.recommended.selectAll`)),1)]),C(i(b),{size:`sm`,disabled:_.value.size===0,onClick:w},{default:a(()=>[m(t(i(c)(`retryRules.recommended.addSelected`,{count:_.value.size})),1)]),_:1},8,[`disabled`])]),C(i(Te),null,{default:a(()=>[C(i(Ee),null,{default:a(()=>[C(i(Q),null,{default:a(()=>[C(i(Z),{class:`w-10`}),C(i(Z),null,{default:a(()=>[m(t(i(c)(`retryRules.recommended.headers.name`)),1)]),_:1}),C(i(Z),null,{default:a(()=>[m(t(i(c)(`retryRules.recommended.headers.statusCode`)),1)]),_:1}),C(i(Z),null,{default:a(()=>[m(t(i(c)(`retryRules.recommended.headers.pattern`)),1)]),_:1}),C(i(Z),null,{default:a(()=>[m(t(i(c)(`retryRules.recommended.headers.strategy`)),1)]),_:1})]),_:1})]),_:1}),C(i(Y),null,{default:a(()=>[(k(!0),T(f,null,O(o.rules,e=>(k(),D(i(Q),{key:e.name},{default:a(()=>[C(i(X),null,{default:a(()=>[C(i(j),{"model-value":_.value.has(e.name),"onUpdate:modelValue":()=>y(e.name)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),C(i(X),null,{default:a(()=>[m(t(e.name),1)]),_:2},1024),C(i(X),null,{default:a(()=>[m(t(e.status_code),1)]),_:2},1024),C(i(X),{class:`font-mono text-xs max-w-[200px] truncate`},{default:a(()=>[m(t(e.body_pattern),1)]),_:2},1024),C(i(X),null,{default:a(()=>[m(t(e.retry_strategy===`fixed`?i(c)(`retryRules.strategy.fixed`):i(c)(`retryRules.strategy.exponential`)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})):x(``,!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=E({__name:`RetryRules`,setup(e){let{t:o}=l(),s=r(!1),c=r([]),d=r([]),g=r(!1),_=r(null),y=r(null),S=r(Ne()),w=r({}),E=r([]),M={equals:o(`retryRules.operatorEquals`),contains:o(`retryRules.operatorContains`),exists:o(`retryRules.operatorExists`)};function ne(e){let t=d.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(){S.value.bodyMatchers.push({path:``,operator:`contains`,value:``})}function le(e){S.value.bodyMatchers.splice(e,1)}function N(){let e=Me(S.value,o);return w.value=e,Object.keys(e).length===0}async function V(){try{c.value=await n.getRetryRules()}catch(e){console.error(`RetryRules.loadData:`,e),I.error(v(e,o(`retryRules.messages.loadFailed`)))}}async function H(){try{E.value=await n.recommended.getRetryRules()}catch(e){console.error(`RetryRules.loadRecommended:`,e),E.value=[]}}function K(){_.value=null,S.value=Ne(),w.value={},g.value=!0}function q(e){_.value=e.id,S.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)},w.value={},g.value=!0}async function J(){if(N())try{let e=S.value.matchMode===`json`?Ae(S.value.bodyMatchers):null,t={name:S.value.name,status_code:Number(S.value.status_code),body_pattern:S.value.body_pattern,provider_id:S.value.provider_id===`__all__`?null:S.value.provider_id,body_matchers:e,is_active:+!!S.value.is_active,retry_strategy:S.value.retry_strategy,retry_delay_ms:Number(S.value.retry_delay_ms),max_retries:Number(S.value.max_retries),max_delay_ms:Number(S.value.max_delay_ms)};_.value?await n.updateRetryRule(_.value,t):await n.createRetryRule(t),g.value=!1,await V()}catch(e){console.error(`RetryRules.handleSave:`,e),I.error(v(e,o(`retryRules.messages.saveFailed`)))}}function De(e){y.value=e}async function Oe(){let e=y.value;if(e){y.value=null;try{await n.deleteRetryRule(e.id),await V()}catch(e){console.error(`RetryRules.handleDelete:`,e),I.error(v(e,o(`retryRules.messages.deleteFailed`)))}}}async function Fe(){await Promise.allSettled([H(),V()])}return p(async()=>{s.value=!0;try{let e=await n.getRetryRulesInit();c.value=e.rules,d.value=e.providers,E.value=e.recommended_rules}catch(e){console.error(`RetryRules.init:`,e),I.error(v(e,o(`retryRules.messages.loadFailed`)))}finally{s.value=!1}}),(e,n)=>(k(),T(`div`,Be,[s.value?(k(),T(`div`,Ve,[C(i(xe),{class:`w-5 h-5 animate-spin mr-2`}),m(` `+t(i(o)(`common.loading`)),1)])):x(``,!0),s.value?x(``,!0):(k(),T(f,{key:1},[h(`div`,He,[h(`h2`,Ue,t(i(o)(`retryRules.title`)),1),C(i(b),{onClick:K,class:`flex items-center gap-1`},{default:a(()=>[C(i(A),{class:`w-4 h-4`}),m(` `+t(i(o)(`retryRules.addRule`)),1)]),_:1})]),C(i(G),{flush:``},{default:a(()=>[C(i(Te),{class:`[&_td]:px-4 [&_th]:px-4`},{default:a(()=>[C(i(Ee),null,{default:a(()=>[C(i(Q),{class:`bg-muted`},{default:a(()=>[C(i(Z),{class:`text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.name`)),1)]),_:1}),C(i(Z),{class:`text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.statusCode`)),1)]),_:1}),C(i(Z),{class:`text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.bodyPattern`)),1)]),_:1}),C(i(Z),{class:`text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.provider`)),1)]),_:1}),C(i(Z),{class:`text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.retryStrategy`)),1)]),_:1}),C(i(Z),{class:`text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.status`)),1)]),_:1}),C(i(Z),{class:`text-right text-muted-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),C(i(Y),null,{default:a(()=>[(k(!0),T(f,null,O(c.value,e=>(k(),D(i(Q),{key:e.id},{default:a(()=>[C(i(X),{class:`font-mono text-sm`},{default:a(()=>[m(t(e.name),1)]),_:2},1024),C(i(X),null,{default:a(()=>[m(t(e.status_code),1)]),_:2},1024),C(i(X),{class:`font-mono text-xs text-muted-foreground max-w-[200px]`},{default:a(()=>[h(`span`,We,t(oe(e)),1)]),_:2},1024),C(i(X),null,{default:a(()=>[e.provider_id?(k(),T(`span`,Ge,t(ne(e.provider_id)),1)):(k(),D(i(U),{key:0,variant:`secondary`},{default:a(()=>[m(t(i(o)(`retryRules.globalBadge`)),1)]),_:1}))]),_:2},1024),C(i(X),null,{default:a(()=>[h(`div`,Ke,[C(i(U),{variant:`outline`},{default:a(()=>[m(t(e.retry_strategy===`fixed`?i(o)(`retryRules.strategy.fixed`):i(o)(`retryRules.strategy.exponential`)),1)]),_:2},1024),h(`span`,qe,[m(t(e.retry_delay_ms/1e3)+`s · `+t(i(o)(`retryRules.times`,{count:e.max_retries}))+` `,1),e.retry_strategy===`exponential`?(k(),T(f,{key:0},[m(` · `+t(i(o)(`retryRules.upperLimit`,{value:e.max_delay_ms/1e3})),1)],64)):x(``,!0)])])]),_:2},1024),C(i(X),null,{default:a(()=>[C(i(U),{variant:e.is_active?`default`:`secondary`},{default:a(()=>[m(t(e.is_active?i(o)(`common.enabled`):i(o)(`common.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),C(i(X),{class:`text-right`},{default:a(()=>[C(i(b),{variant:`ghost`,size:`sm`,onClick:t=>q(e),class:`mr-2`},{default:a(()=>[m(t(i(o)(`common.edit`)),1)]),_:1},8,[`onClick`]),C(i(b),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>De(e)},{default:a(()=>[m(t(i(o)(`common.delete`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),c.value.length===0?(k(),D(i(Q),{key:0},{default:a(()=>[C(i(X),{colspan:`7`,class:`text-center text-muted-foreground py-8`},{default:a(()=>[m(t(i(o)(`retryRules.noRules`)),1)]),_:1})]),_:1})):x(``,!0)]),_:1})]),_:1})]),_:1}),C(i(fe),{open:g.value,"onUpdate:open":n[17]||=e=>g.value=e},{default:a(()=>[C(i(ue),{class:`max-w-lg`},{default:a(()=>[C(i(de),null,{default:a(()=>[C(i(me),null,{default:a(()=>[m(t(_.value?i(o)(`retryRules.dialog.editRule`):i(o)(`retryRules.dialog.addRule`)),1)]),_:1})]),_:1}),h(`form`,{onSubmit:u(J,[`prevent`]),class:`space-y-3`},[h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.name`)),1)]),_:1}),C(i(W),{modelValue:S.value.name,"onUpdate:modelValue":n[0]||=e=>S.value.name=e,type:`text`,required:``,onInput:n[1]||=e=>delete w.value.name},null,8,[`modelValue`]),w.value.name?(k(),T(`p`,Je,t(w.value.name),1)):x(``,!0)]),h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(i(o)(`retryRules.provider`)),1)]),_:1}),C(i(B),{modelValue:S.value.provider_id,"onUpdate:modelValue":n[2]||=e=>S.value.provider_id=e},{default:a(()=>[C(i(R),{class:`w-full`},{default:a(()=>[C(i(z),{placeholder:i(o)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),C(i(F),null,{default:a(()=>[C(i(L),{value:`__all__`},{default:a(()=>[m(t(i(o)(`retryRules.providerAll`)),1)]),_:1}),(k(!0),T(f,null,O(d.value,e=>(k(),D(i(L),{key:e.id,value:e.id},{default:a(()=>[m(t(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.statusCode`)),1)]),_:1}),C(i(W),{modelValue:S.value.status_code,"onUpdate:modelValue":n[3]||=e=>S.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``,onInput:n[4]||=e=>delete w.value.status_code},null,8,[`modelValue`]),w.value.status_code?(k(),T(`p`,Ye,t(w.value.status_code),1)):x(``,!0)]),h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1 flex items-center gap-1`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.bodyPattern`))+` `,1),C(i(Ce),null,{default:a(()=>[C(i(ie),null,{default:a(()=>[C(i(te),{"as-child":``},{default:a(()=>[...n[19]||=[h(`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}),C(i(ee),{side:`right`,class:`max-w-xs text-xs leading-relaxed`},{default:a(()=>[h(`p`,Xe,t(i(o)(`retryRules.dialog.bodyPattern`)),1),h(`p`,null,t(i(o)(`retryRules.dialog.bodyPatternTooltip`)),1)]),_:1})]),_:1})]),_:1})]),_:1}),C(i(ae),{modelValue:S.value.matchMode,"onUpdate:modelValue":n[7]||=e=>S.value.matchMode=e},{default:a(()=>[C(i(re),{class:`mb-2`},{default:a(()=>[C(i(se),{value:`regex`},{default:a(()=>[m(t(i(o)(`retryRules.regexMatch`)),1)]),_:1}),C(i(se),{value:`json`},{default:a(()=>[m(t(i(o)(`retryRules.jsonMatch`)),1)]),_:1})]),_:1}),C(i($),{value:`regex`},{default:a(()=>[C(i(W),{modelValue:S.value.body_pattern,"onUpdate:modelValue":n[5]||=e=>S.value.body_pattern=e,type:`text`,placeholder:i(o)(`retryRules.dialog.bodyPatternPlaceholder`),onInput:n[6]||=e=>delete w.value.body_pattern},null,8,[`modelValue`,`placeholder`]),w.value.body_pattern?(k(),T(`p`,Ze,t(w.value.body_pattern),1)):x(``,!0)]),_:1}),C(i($),{value:`json`},{default:a(()=>[h(`div`,Qe,[(k(!0),T(f,null,O(S.value.bodyMatchers,(e,n)=>(k(),T(`div`,{key:n,class:`flex items-start gap-2`},[C(i(W),{modelValue:e.path,"onUpdate:modelValue":t=>e.path=t,placeholder:i(o)(`retryRules.fieldPath`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),C(i(B),{modelValue:e.operator,"onUpdate:modelValue":t=>e.operator=t},{default:a(()=>[C(i(R),{class:`w-28 shrink-0`},{default:a(()=>[C(i(z))]),_:1}),C(i(F),null,{default:a(()=>[C(i(L),{value:`equals`},{default:a(()=>[m(t(i(o)(`retryRules.operatorEquals`)),1)]),_:1}),C(i(L),{value:`contains`},{default:a(()=>[m(t(i(o)(`retryRules.operatorContains`)),1)]),_:1}),C(i(L),{value:`exists`},{default:a(()=>[m(t(i(o)(`retryRules.operatorExists`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`onUpdate:modelValue`]),e.operator===`exists`?x(``,!0):(k(),D(i(W),{key:0,modelValue:e.value,"onUpdate:modelValue":t=>e.value=t,placeholder:i(o)(`retryRules.matchValue`),class:`flex-1`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`])),C(i(b),{type:`button`,variant:`ghost`,size:`icon`,class:`shrink-0 text-muted-foreground`,onClick:e=>le(n)},{default:a(()=>[C(i(ve),{class:`w-4 h-4`})]),_:1},8,[`onClick`])]))),128)),C(i(b),{type:`button`,variant:`outline`,size:`sm`,onClick:ce},{default:a(()=>[C(i(A),{class:`w-3 h-3 mr-1`}),m(` `+t(i(o)(`retryRules.addCondition`)),1)]),_:1}),w.value.body_matchers?(k(),T(`p`,$e,t(w.value.body_matchers),1)):x(``,!0)])]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),C(i(B),{modelValue:S.value.retry_strategy,"onUpdate:modelValue":n[8]||=e=>S.value.retry_strategy=e},{default:a(()=>[C(i(R),{class:`w-full`},{default:a(()=>[C(i(z),{placeholder:i(o)(`retryRules.dialog.selectStrategy`)},null,8,[`placeholder`])]),_:1}),C(i(F),null,{default:a(()=>[C(i(L),{value:`exponential`},{default:a(()=>[m(t(i(o)(`retryRules.strategy.exponential`)),1)]),_:1}),C(i(L),{value:`fixed`},{default:a(()=>[m(t(i(o)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,et,[h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(S.value.retry_strategy===`fixed`?i(o)(`retryRules.dialog.intervalMs`):i(o)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),C(i(W),{modelValue:S.value.retry_delay_ms,"onUpdate:modelValue":n[9]||=e=>S.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:n[10]||=e=>delete w.value.retry_delay_ms},null,8,[`modelValue`]),w.value.retry_delay_ms?(k(),T(`p`,tt,t(w.value.retry_delay_ms),1)):x(``,!0)]),h(`div`,null,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.maxRetries`)),1)]),_:1}),C(i(W),{modelValue:S.value.max_retries,"onUpdate:modelValue":n[11]||=e=>S.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``,onInput:n[12]||=e=>delete w.value.max_retries},null,8,[`modelValue`]),w.value.max_retries?(k(),T(`p`,nt,t(w.value.max_retries),1)):x(``,!0)])]),S.value.retry_strategy===`exponential`?(k(),T(`div`,rt,[C(i(P),{class:`block text-sm font-medium text-foreground mb-1`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),C(i(W),{modelValue:S.value.max_delay_ms,"onUpdate:modelValue":n[13]||=e=>S.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``,onInput:n[14]||=e=>delete w.value.max_delay_ms},null,8,[`modelValue`]),w.value.max_delay_ms?(k(),T(`p`,it,t(w.value.max_delay_ms),1)):x(``,!0)])):x(``,!0),h(`div`,at,[C(i(j),{modelValue:S.value.is_active,"onUpdate:modelValue":n[15]||=e=>S.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),C(i(P),{for:`rule-active`,class:`text-sm text-foreground`},{default:a(()=>[m(t(i(o)(`retryRules.dialog.enable`)),1)]),_:1})]),C(i(pe),null,{default:a(()=>[C(i(b),{type:`button`,variant:`outline`,onClick:n[16]||=e=>g.value=!1},{default:a(()=>[m(t(i(o)(`common.cancel`)),1)]),_:1}),C(i(b),{type:`submit`},{default:a(()=>[m(t(i(o)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),C(i(be),{open:!!y.value,"onUpdate:open":n[18]||=e=>{e||(y.value=null)}},{default:a(()=>[C(i(we),null,{default:a(()=>[C(i(Se),null,{default:a(()=>[C(i(ye),null,{default:a(()=>[m(t(i(o)(`retryRules.deleteConfirm.title`)),1)]),_:1}),C(i(_e),null,{default:a(()=>[m(t(i(o)(`retryRules.deleteConfirm.description`,{name:y.value?.name})),1)]),_:1})]),_:1}),C(i(he),null,{default:a(()=>[C(i(ge),null,{default:a(()=>[m(t(i(o)(`common.cancel`)),1)]),_:1}),C(i(b),{variant:`destructive`,onClick:Oe},{default:a(()=>[m(t(i(o)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),C(ze,{rules:E.value,onAdded:Fe},null,8,[`rules`])],64))]))}});export{ot as default};