llm-simple-router 1.0.3 → 1.0.5

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 (57) hide show
  1. package/dist/admin/settings-import-export.js +37 -0
  2. package/frontend-dist/assets/{AuthLayout-DJpHK4zg.js → AuthLayout-CDHX6rDT.js} +1 -1
  3. package/frontend-dist/assets/{Card-UQRcFVIJ.js → Card-WJ4Fw2s4.js} +1 -1
  4. package/frontend-dist/assets/{CardContent-BAoEyF8W.js → CardContent-CFAeRblH.js} +1 -1
  5. package/frontend-dist/assets/{CardTitle-C17xy1UE.js → CardTitle-BSrWbV7d.js} +1 -1
  6. package/frontend-dist/assets/{CascadingModelSelect-B7DWy49d.js → CascadingModelSelect-DuZpHPPa.js} +1 -1
  7. package/frontend-dist/assets/{Checkbox-CA9kxtM4.js → Checkbox-BGEv-j23.js} +1 -1
  8. package/frontend-dist/assets/{CollapsibleContent-DZ_tKZag.js → CollapsibleContent-BbBeIu0t.js} +1 -1
  9. package/frontend-dist/assets/{CollapsibleTrigger-D0vBT2Sj.js → CollapsibleTrigger-sN3KFxLv.js} +1 -1
  10. package/frontend-dist/assets/{ConcurrencyControl-CDE26lBY.js → ConcurrencyControl-ClWtOhqD.js} +1 -1
  11. package/frontend-dist/assets/{Dashboard-C76VbHuV.js → Dashboard-3BqnmBAu.js} +1 -1
  12. package/frontend-dist/assets/{Input-DVGxkxMa.js → Input-BPtlK0vf.js} +1 -1
  13. package/frontend-dist/assets/{Label-DmDoAc6v.js → Label-D_Tm4OWq.js} +1 -1
  14. package/frontend-dist/assets/{Login-BVzfnnaV.js → Login-DykE1Bhg.js} +1 -1
  15. package/frontend-dist/assets/{Logs-BgqV0EzH.js → Logs-ChpLfJMt.js} +1 -1
  16. package/frontend-dist/assets/{ModelMappings-SzL2HgTF.js → ModelMappings-DaOTzUPh.js} +1 -1
  17. package/frontend-dist/assets/{Monitor-DvbHOUCu.js → Monitor-B1lf6EzL.js} +1 -1
  18. package/frontend-dist/assets/Providers-Dc3nymPu.js +1 -0
  19. package/frontend-dist/assets/{ProxyEnhancement-CqHCE0Z9.js → ProxyEnhancement-DMt63aZI.js} +1 -1
  20. package/frontend-dist/assets/{QuickSetup-BRpaaWd_.js → QuickSetup-BH6i13iu.js} +1 -1
  21. package/frontend-dist/assets/{RetryRules-CuaT6dGn.js → RetryRules-vk3nAH7P.js} +1 -1
  22. package/frontend-dist/assets/{RouterKeys-q-Rpw38m.js → RouterKeys-7XNQA1aR.js} +1 -1
  23. package/frontend-dist/assets/{RovingFocusItem-DGbuxMV2.js → RovingFocusItem-DE8acMvp.js} +1 -1
  24. package/frontend-dist/assets/{Schedules-DZNqzhCO.js → Schedules-Dc21xBRj.js} +1 -1
  25. package/frontend-dist/assets/{Settings-kDdudQD_.js → Settings-BbOPi74a.js} +1 -1
  26. package/frontend-dist/assets/{Setup-D5q2knV8.js → Setup-eLytA58H.js} +1 -1
  27. package/frontend-dist/assets/{Skeleton-D38oyO3p.js → Skeleton-DvssbKoP.js} +1 -1
  28. package/frontend-dist/assets/{Switch-DKdPLHJ3.js → Switch-DMf4g_LS.js} +1 -1
  29. package/frontend-dist/assets/{TableHeader-DZah46vy.js → TableHeader-DhFC0uvL.js} +1 -1
  30. package/frontend-dist/assets/{TabsTrigger-DuyzIvA6.js → TabsTrigger-BhcJIYCj.js} +1 -1
  31. package/frontend-dist/assets/{TooltipTrigger-CjwFSriE.js → TooltipTrigger-CszNNG6u.js} +1 -1
  32. package/frontend-dist/assets/{UnifiedRequestDialog-BHd4hC0i.js → UnifiedRequestDialog-DkPJzoMQ.js} +1 -1
  33. package/frontend-dist/assets/{VisuallyHiddenInput-eqIyaU1n.js → VisuallyHiddenInput-B9GnoS8-.js} +1 -1
  34. package/frontend-dist/assets/arrow-down-R4Yvmgbd.js +1 -0
  35. package/frontend-dist/assets/{badge-BscUNLaG.js → badge-Dwp_XJAX.js} +1 -1
  36. package/frontend-dist/assets/{button-DG6Kd0iG.js → button-B6HPBfut.js} +2 -2
  37. package/frontend-dist/assets/chevron-right-DLjnDBDZ.js +1 -0
  38. package/frontend-dist/assets/{dialog-CQOpjImC.js → dialog-BEp5w0-U.js} +1 -1
  39. package/frontend-dist/assets/{image-CiUgkUyN.js → image-OxzlQmm-.js} +1 -1
  40. package/frontend-dist/assets/{index-D_n3EVk6.js → index-BojD3qeA.js} +2 -2
  41. package/frontend-dist/assets/{model-patches-DG8EiClH.js → model-patches-CNbvLFxU.js} +1 -1
  42. package/frontend-dist/assets/{pencil-xKWF4Xe-.js → pencil-Xp9gmyYU.js} +1 -1
  43. package/frontend-dist/assets/plus-1l2yGLui.js +1 -0
  44. package/frontend-dist/assets/search-BKRPCtm1.js +1 -0
  45. package/frontend-dist/assets/{sparkles-6sEkagjq.js → sparkles-DauCgsaB.js} +1 -1
  46. package/frontend-dist/assets/{transform-domain-8xyILR30.js → transform-domain-BmRXGTiS.js} +1 -1
  47. package/frontend-dist/assets/{trash-2-DubWJ15J.js → trash-2-BxrrjFlJ.js} +1 -1
  48. package/frontend-dist/assets/{useClipboard-oDSOvLPT.js → useClipboard-CmvyZd6G.js} +1 -1
  49. package/frontend-dist/assets/{useLogRetention-CShJ13iZ.js → useLogRetention-CNz3ps3x.js} +1 -1
  50. package/frontend-dist/assets/{useProviderGroups-HZUTsWS6.js → useProviderGroups-BGH6cZHK.js} +1 -1
  51. package/frontend-dist/index.html +2 -2
  52. package/package.json +1 -1
  53. package/frontend-dist/assets/Providers-BlRumKs2.js +0 -1
  54. package/frontend-dist/assets/arrow-down-B5aMJXij.js +0 -1
  55. package/frontend-dist/assets/chevron-right-DoewhoT5.js +0 -1
  56. package/frontend-dist/assets/plus-CtcJ9YdO.js +0 -1
  57. package/frontend-dist/assets/search-VSaI9nBp.js +0 -1
@@ -36,6 +36,26 @@ export const adminImportExportRoutes = (app, options, done) => {
36
36
  }
37
37
  catch { /* eslint-disable-line taste/no-silent-catch -- 无法解密则保留原值 */ }
38
38
  }
39
+ // 解密 endpoints JSON 内嵌套的 api_key
40
+ if (typeof row.endpoints === "string" && row.endpoints) {
41
+ try {
42
+ const eps = JSON.parse(row.endpoints);
43
+ for (const ep of eps) {
44
+ if (typeof ep.api_key === "string" && ep.api_key) {
45
+ ep.api_key = decrypt(ep.api_key, encryptionKey);
46
+ }
47
+ }
48
+ row.endpoints = JSON.stringify(eps);
49
+ }
50
+ catch { /* eslint-disable-line taste/no-silent-catch -- 无法解密则保留原值 */ }
51
+ }
52
+ // 解密 proxy_password
53
+ if (typeof row.proxy_password === "string" && row.proxy_password) {
54
+ try {
55
+ row.proxy_password = decrypt(row.proxy_password, encryptionKey);
56
+ }
57
+ catch { /* eslint-disable-line taste/no-silent-catch -- 无法解密则保留原值 */ }
58
+ }
39
59
  }
40
60
  for (const row of (data.router_keys || [])) {
41
61
  if (typeof row.key_encrypted === "string") {
@@ -74,6 +94,23 @@ export const adminImportExportRoutes = (app, options, done) => {
74
94
  if (typeof row.api_key === "string" && row.api_key) {
75
95
  row.api_key = encrypt(row.api_key, encryptionKey);
76
96
  }
97
+ // 重加密 endpoints JSON 内嵌套的 api_key
98
+ if (typeof row.endpoints === "string" && row.endpoints) {
99
+ try {
100
+ const eps = JSON.parse(row.endpoints);
101
+ for (const ep of eps) {
102
+ if (typeof ep.api_key === "string" && ep.api_key) {
103
+ ep.api_key = encrypt(ep.api_key, encryptionKey);
104
+ }
105
+ }
106
+ row.endpoints = JSON.stringify(eps);
107
+ }
108
+ catch { /* eslint-disable-line taste/no-silent-catch -- 无法解析则保留原值 */ }
109
+ }
110
+ // 重加密 proxy_password
111
+ if (typeof row.proxy_password === "string" && row.proxy_password) {
112
+ row.proxy_password = encrypt(row.proxy_password, encryptionKey);
113
+ }
77
114
  }
78
115
  for (const row of (importData.router_keys || [])) {
79
116
  if (typeof row.key === "string") {
@@ -1 +1 @@
1
- import{Gt as e,Q as t,Xt as n,Z as r,et as i,gt as a,it as o,kt as s,n as c,rt as l,yt as u}from"./button-DG6Kd0iG.js";import{lt as d,r as f,ut as p}from"./index-D_n3EVk6.js";import{t as m}from"./Card-UQRcFVIJ.js";import{t as h}from"./CardContent-BAoEyF8W.js";var g={class:`min-h-screen flex items-center justify-center bg-background relative`},_={class:`text-center mb-6`},v={class:`text-sm text-muted-foreground mt-1`},y=o({__name:`AuthLayout`,props:{subtitle:{}},setup(o){let{isDark:y,toggleTheme:b}=f();return(f,x)=>(a(),i(`div`,g,[l(e(c),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:e(b)},{default:s(()=>[e(y)?(a(),t(e(d),{key:1,class:`w-4 h-4`})):(a(),t(e(p),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),l(e(m),{class:`w-full max-w-sm shadow-lg`},{default:s(()=>[l(e(h),{class:`pt-6`},{default:s(()=>[r(`div`,_,[x[0]||=r(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[r(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[r(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])],-1),x[1]||=r(`h1`,{class:`text-xl font-semibold text-foreground`},` LLM Simple Router `,-1),r(`p`,v,n(o.subtitle),1)]),u(f.$slots,`default`)]),_:3})]),_:3})]))}});export{y as t};
1
+ import{Gt as e,Q as t,Xt as n,Z as r,et as i,gt as a,it as o,kt as s,n as c,rt as l,yt as u}from"./button-B6HPBfut.js";import{lt as d,r as f,ut as p}from"./index-BojD3qeA.js";import{t as m}from"./Card-WJ4Fw2s4.js";import{t as h}from"./CardContent-CFAeRblH.js";var g={class:`min-h-screen flex items-center justify-center bg-background relative`},_={class:`text-center mb-6`},v={class:`text-sm text-muted-foreground mt-1`},y=o({__name:`AuthLayout`,props:{subtitle:{}},setup(o){let{isDark:y,toggleTheme:b}=f();return(f,x)=>(a(),i(`div`,g,[l(e(c),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:e(b)},{default:s(()=>[e(y)?(a(),t(e(d),{key:1,class:`w-4 h-4`})):(a(),t(e(p),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),l(e(m),{class:`w-full max-w-sm shadow-lg`},{default:s(()=>[l(e(h),{class:`pt-6`},{default:s(()=>[r(`div`,_,[x[0]||=r(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[r(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[r(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 9l3 3-3 3m5 0h3M5 20h14a2 2 0 002-2V6a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z`})])],-1),x[1]||=r(`h1`,{class:`text-xl font-semibold text-foreground`},` LLM Simple Router `,-1),r(`p`,v,n(o.subtitle),1)]),u(f.$slots,`default`)]),_:3})]),_:3})]))}});export{y as t};
@@ -1 +1 @@
1
- import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-DG6Kd0iG.js";var s=[`data-size`,`data-flush`],c=r({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`},flush:{type:Boolean,default:!1}},setup(r){let c=r;return(l,u)=>(n(),t(`div`,{"data-slot":`card`,"data-size":r.size,"data-flush":r.flush||void 0,class:i(e(a)(`border-border bg-card text-card-foreground rounded-lg border text-sm group/card flex flex-col`,r.flush?`overflow-hidden`:`overflow-hidden gap-4 py-4 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg`,`data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0`,c.class))},[o(l.$slots,`default`)],10,s))}});export{c as t};
1
+ import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-B6HPBfut.js";var s=[`data-size`,`data-flush`],c=r({__name:`Card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`},flush:{type:Boolean,default:!1}},setup(r){let c=r;return(l,u)=>(n(),t(`div`,{"data-slot":`card`,"data-size":r.size,"data-flush":r.flush||void 0,class:i(e(a)(`border-border bg-card text-card-foreground rounded-lg border text-sm group/card flex flex-col`,r.flush?`overflow-hidden`:`overflow-hidden gap-4 py-4 has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 *:[img:first-child]:rounded-t-lg *:[img:last-child]:rounded-b-lg`,`data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:has-data-[slot=card-footer]:pb-0`,c.class))},[o(l.$slots,`default`)],10,s))}});export{c as t};
@@ -1 +1 @@
1
- import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-DG6Kd0iG.js";var s=r({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-content`,class:i(e(a)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[o(r.$slots,`default`)],2))}});export{s as t};
1
+ import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-B6HPBfut.js";var s=r({__name:`CardContent`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-content`,class:i(e(a)(`px-4 group-data-[size=sm]/card:px-3`,s.class))},[o(r.$slots,`default`)],2))}});export{s as t};
@@ -1 +1 @@
1
- import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-DG6Kd0iG.js";var s=r({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-header`,class:i(e(a)(`gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,s.class))},[o(r.$slots,`default`)],2))}}),c=r({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-title`,class:i(e(a)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[o(r.$slots,`default`)],2))}});export{s as n,c as t};
1
+ import{Gt as e,et as t,gt as n,it as r,qt as i,r as a,yt as o}from"./button-B6HPBfut.js";var s=r({__name:`CardHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-header`,class:i(e(a)(`gap-1 rounded-t-xl px-4 group-data-[size=sm]/card:px-3 [.border-b]:pb-4 group-data-[size=sm]/card:[.border-b]:pb-3 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]`,s.class))},[o(r.$slots,`default`)],2))}}),c=r({__name:`CardTitle`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let s=r;return(r,c)=>(n(),t(`div`,{"data-slot":`card-title`,class:i(e(a)(`text-base leading-snug font-medium group-data-[size=sm]/card:text-sm cn-font-heading`,s.class))},[o(r.$slots,`default`)],2))}});export{s as n,c as t};
@@ -1 +1 @@
1
- import{$ as e,Gt as t,H as n,J as r,Lt as i,Q as a,X as o,Xt as s,Z as c,et as l,gt as u,it as d,kt as f,qt as p,rt as m,vt as h}from"./button-DG6Kd0iG.js";import{t as g}from"./chevron-right-DoewhoT5.js";import{b as _,ht as v,vt as y,x as b,y as x}from"./index-D_n3EVk6.js";var S=[`onMouseenter`],C={class:`truncate max-w-40`},w={key:0,class:`ml-1 text-[10px] px-1 py-px rounded bg-emerald-500/15 text-emerald-400 shrink-0`},T=[`onMouseenter`],E=[`onClick`],D={class:`truncate`},O={key:0,class:`shrink-0 text-xs text-muted-foreground`},k={key:0,class:`px-2 py-1.5 text-sm text-muted-foreground`},A=d({__name:`CascadingSelect`,props:{groups:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(d,{emit:y}){let{t:A}=n(),j=d,M=o(()=>j.placeholder||A(`common.selectPlaceholder`)),N=y,P=i(!1),F=i(null),I=o(()=>{if(!j.modelValue)return``;let e=j.groups.find(e=>e.key===j.modelValue.groupKey);if(!e)return``;let t=e.options.find(e=>e.value===j.modelValue.value);return t?`${e.label} / ${t.label}`:``});function L(e,t){N(`update:modelValue`,{groupKey:e,value:t}),P.value=!1}function R(e){P.value=e,e||(F.value=null)}return(n,i)=>(u(),a(t(b),{open:P.value,"onUpdate:open":R},{default:f(()=>[m(t(x),{"as-child":``},{default:f(()=>[c(`div`,{class:p([`flex w-full items-center justify-between rounded-md bg-background ring-offset-background cursor-pointer hover:bg-accent hover:text-accent-foreground`,[d.compact?`h-7 text-xs px-2 py-1 rounded-md`:`h-10 text-sm px-3 py-2 border border-border rounded-md`,!d.compact&&d.dashed?`border-dashed border-primary/20`:``,{"ring-2 ring-ring ring-offset-2":P.value}]])},[c(`span`,{class:p([`truncate`,d.modelValue?`text-foreground`:`text-muted-foreground`])},s(I.value||M.value),3),m(t(v),{class:`h-4 w-4 shrink-0 opacity-50`})],2)]),_:1}),m(t(_),{align:`start`,"side-offset":4,class:`z-[200] w-auto min-w-56 overflow-visible p-1`},{default:f(()=>[(u(!0),l(r,null,h(d.groups,n=>(u(),l(`div`,{key:n.key,class:p([`relative flex cursor-pointer items-center justify-between rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground z-10":F.value===n.key}]),onMouseenter:e=>F.value=n.key},[c(`span`,C,s(n.label),1),n.badge?(u(),l(`span`,w,s(n.badge),1)):e(``,!0),m(t(g),{class:`ml-1 h-4 w-4 shrink-0 opacity-50`}),F.value===n.key&&n.options.length>0?(u(),l(`div`,{key:1,class:`absolute left-full top-0 ml-0.5 min-w-48 rounded-md bg-popover p-1 text-popover-foreground shadow-md`,onMouseenter:e=>F.value=n.key},[(u(!0),l(r,null,h(n.options,t=>(u(),l(`div`,{key:t.value,class:p([`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground":d.modelValue?.groupKey===n.key&&d.modelValue?.value===t.value}]),onClick:e=>L(n.key,t.value)},[c(`span`,D,s(t.label),1),t.tag?(u(),l(`span`,O,s(t.tag),1)):e(``,!0)],10,E))),128))],40,T)):e(``,!0)],42,S))),128)),d.groups.length===0?(u(),l(`div`,k,s(t(A)(`common.noOptions`)),1)):e(``,!0)]),_:1})]),_:1},8,[`open`]))}}),j=d({__name:`CascadingModelSelect`,props:{providers:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let{t:r}=n(),i=e,s=o(()=>i.placeholder||r(`mappings.selectProviderModel`)),c=t,l=o(()=>i.providers.map(e=>({key:e.provider.id,label:e.provider.name,badge:e.isNew?r(`common.new`):void 0,options:e.models.map(e=>({value:e.name,label:e.name,tag:y(e.contextWindow)}))}))),d=o(()=>i.modelValue?{groupKey:i.modelValue.provider_id,value:i.modelValue.model}:void 0);function f(e){c(`update:modelValue`,{provider_id:e.groupKey,model:e.value})}return(t,n)=>(u(),a(A,{groups:l.value,"model-value":d.value,placeholder:s.value,compact:e.compact,dashed:e.dashed,"onUpdate:modelValue":f},null,8,[`groups`,`model-value`,`placeholder`,`compact`,`dashed`]))}});export{j as t};
1
+ import{$ as e,Gt as t,H as n,J as r,Lt as i,Q as a,X as o,Xt as s,Z as c,et as l,gt as u,it as d,kt as f,qt as p,rt as m,vt as h}from"./button-B6HPBfut.js";import{t as g}from"./chevron-right-DLjnDBDZ.js";import{b as _,ht as v,vt as y,x as b,y as x}from"./index-BojD3qeA.js";var S=[`onMouseenter`],C={class:`truncate max-w-40`},w={key:0,class:`ml-1 text-[10px] px-1 py-px rounded bg-emerald-500/15 text-emerald-400 shrink-0`},T=[`onMouseenter`],E=[`onClick`],D={class:`truncate`},O={key:0,class:`shrink-0 text-xs text-muted-foreground`},k={key:0,class:`px-2 py-1.5 text-sm text-muted-foreground`},A=d({__name:`CascadingSelect`,props:{groups:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(d,{emit:y}){let{t:A}=n(),j=d,M=o(()=>j.placeholder||A(`common.selectPlaceholder`)),N=y,P=i(!1),F=i(null),I=o(()=>{if(!j.modelValue)return``;let e=j.groups.find(e=>e.key===j.modelValue.groupKey);if(!e)return``;let t=e.options.find(e=>e.value===j.modelValue.value);return t?`${e.label} / ${t.label}`:``});function L(e,t){N(`update:modelValue`,{groupKey:e,value:t}),P.value=!1}function R(e){P.value=e,e||(F.value=null)}return(n,i)=>(u(),a(t(b),{open:P.value,"onUpdate:open":R},{default:f(()=>[m(t(x),{"as-child":``},{default:f(()=>[c(`div`,{class:p([`flex w-full items-center justify-between rounded-md bg-background ring-offset-background cursor-pointer hover:bg-accent hover:text-accent-foreground`,[d.compact?`h-7 text-xs px-2 py-1 rounded-md`:`h-10 text-sm px-3 py-2 border border-border rounded-md`,!d.compact&&d.dashed?`border-dashed border-primary/20`:``,{"ring-2 ring-ring ring-offset-2":P.value}]])},[c(`span`,{class:p([`truncate`,d.modelValue?`text-foreground`:`text-muted-foreground`])},s(I.value||M.value),3),m(t(v),{class:`h-4 w-4 shrink-0 opacity-50`})],2)]),_:1}),m(t(_),{align:`start`,"side-offset":4,class:`z-[200] w-auto min-w-56 overflow-visible p-1`},{default:f(()=>[(u(!0),l(r,null,h(d.groups,n=>(u(),l(`div`,{key:n.key,class:p([`relative flex cursor-pointer items-center justify-between rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground z-10":F.value===n.key}]),onMouseenter:e=>F.value=n.key},[c(`span`,C,s(n.label),1),n.badge?(u(),l(`span`,w,s(n.badge),1)):e(``,!0),m(t(g),{class:`ml-1 h-4 w-4 shrink-0 opacity-50`}),F.value===n.key&&n.options.length>0?(u(),l(`div`,{key:1,class:`absolute left-full top-0 ml-0.5 min-w-48 rounded-md bg-popover p-1 text-popover-foreground shadow-md`,onMouseenter:e=>F.value=n.key},[(u(!0),l(r,null,h(n.options,t=>(u(),l(`div`,{key:t.value,class:p([`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground`,{"bg-accent text-accent-foreground":d.modelValue?.groupKey===n.key&&d.modelValue?.value===t.value}]),onClick:e=>L(n.key,t.value)},[c(`span`,D,s(t.label),1),t.tag?(u(),l(`span`,O,s(t.tag),1)):e(``,!0)],10,E))),128))],40,T)):e(``,!0)],42,S))),128)),d.groups.length===0?(u(),l(`div`,k,s(t(A)(`common.noOptions`)),1)):e(``,!0)]),_:1})]),_:1},8,[`open`]))}}),j=d({__name:`CascadingModelSelect`,props:{providers:{},modelValue:{},placeholder:{default:``},compact:{type:Boolean,default:!1},dashed:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let{t:r}=n(),i=e,s=o(()=>i.placeholder||r(`mappings.selectProviderModel`)),c=t,l=o(()=>i.providers.map(e=>({key:e.provider.id,label:e.provider.name,badge:e.isNew?r(`common.new`):void 0,options:e.models.map(e=>({value:e.name,label:e.name,tag:y(e.contextWindow)}))}))),d=o(()=>i.modelValue?{groupKey:i.modelValue.provider_id,value:i.modelValue.model}:void 0);function f(e){c(`update:modelValue`,{provider_id:e.groupKey,model:e.value})}return(t,n)=>(u(),a(A,{groups:l.value,"model-value":d.value,placeholder:s.value,compact:e.compact,dashed:e.dashed,"onUpdate:modelValue":f},null,8,[`groups`,`model-value`,`placeholder`,`compact`,`dashed`]))}});export{j as t};
@@ -1 +1 @@
1
- import{$ as e,Gt as t,Jt as n,K as r,Q as i,X as a,dt as o,gt as s,i as c,it as l,kt as u,m as d,o as f,ot as p,q as m,r as h,rt as g,x as _,xt as v,yt as y}from"./button-DG6Kd0iG.js";import{t as b}from"./VisuallyHiddenInput-eqIyaU1n.js";import{t as x}from"./RovingFocusItem-DGbuxMV2.js";import{H as S,W as C,Y as w,Z as T,gt as E,q as D,z as O}from"./index-D_n3EVk6.js";function k(e,t){return D(e)?!1:Array.isArray(e)?e.some(e=>T(e,t)):T(e,t)}var[A,j]=w(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=w(`CheckboxRoot`),I=l({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(n,{emit:l}){let p=n,h=l,{forwardRef:g,currentElement:_}=f(),S=A(null),w=d(p,`modelValue`,h,{defaultValue:p.defaultValue??p.falseValue,passive:p.modelValue===void 0}),E=a(()=>S?.disabled.value||p.disabled),O=a(()=>T(w.value,p.trueValue)),j=a(()=>D(S?.modelValue.value)?w.value===`indeterminate`?`indeterminate`:O.value:k(S.modelValue.value,p.value));function P(){if(D(S?.modelValue.value))w.value===`indeterminate`?w.value=p.trueValue:w.value=O.value?p.falseValue:p.trueValue;else{let e=[...S.modelValue.value||[]];if(k(e,p.value)){let t=e.findIndex(e=>T(e,p.value));e.splice(t,1)}else e.push(p.value);S.modelValue.value=e}}let I=C(_),L=a(()=>p.id&&_.value?document.querySelector(`[for="${p.id}"]`)?.innerText:void 0);return F({disabled:E,state:j}),(n,a)=>(s(),i(v(t(S)?.rovingFocus.value?t(x):t(c)),o(n.$attrs,{id:n.id,ref:t(g),role:`checkbox`,"as-child":n.asChild,as:n.as,type:n.as===`button`?`button`:void 0,"aria-checked":t(M)(j.value)?`mixed`:j.value,"aria-required":n.required,"aria-label":n.$attrs[`aria-label`]||L.value,"data-state":t(N)(j.value),"data-disabled":E.value?``:void 0,disabled:E.value,focusable:t(S)?.rovingFocus.value?!E.value:void 0,onKeydown:r(m(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:u(()=>[y(n.$slots,`default`,{modelValue:t(w),state:j.value}),t(I)&&n.name&&!t(S)?(s(),i(t(b),{key:0,type:`checkbox`,checked:!!j.value,name:n.name,value:n.value,disabled:E.value,required:n.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):e(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=l({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:n}=f(),r=P();return(e,a)=>(s(),i(t(O),{present:e.forceMount||t(M)(t(r).state.value)||t(r).state.value===!0},{default:u(()=>[g(t(c),o({ref:t(n),"data-state":t(N)(t(r).state.value),"data-disabled":t(r).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:u(()=>[y(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=l({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:r}){let a=e,c=r,l=S(_(a,`class`),c);return(e,r)=>(s(),i(t(I),o({"data-slot":`checkbox`},t(l),{class:t(h)(`border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-md border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50`,a.class)}),{default:u(r=>[g(t(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:u(()=>[y(e.$slots,`default`,n(p(r)),()=>[g(t(E))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
1
+ import{$ as e,Gt as t,Jt as n,K as r,Q as i,X as a,dt as o,gt as s,i as c,it as l,kt as u,m as d,o as f,ot as p,q as m,r as h,rt as g,x as _,xt as v,yt as y}from"./button-B6HPBfut.js";import{t as b}from"./VisuallyHiddenInput-B9GnoS8-.js";import{t as x}from"./RovingFocusItem-DE8acMvp.js";import{H as S,W as C,Y as w,Z as T,gt as E,q as D,z as O}from"./index-BojD3qeA.js";function k(e,t){return D(e)?!1:Array.isArray(e)?e.some(e=>T(e,t)):T(e,t)}var[A,j]=w(`CheckboxGroupRoot`);function M(e){return e===`indeterminate`}function N(e){return M(e)?`indeterminate`:e?`checked`:`unchecked`}var[P,F]=w(`CheckboxRoot`),I=l({inheritAttrs:!1,__name:`CheckboxRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},value:{type:null,required:!1,default:`on`},id:{type:String,required:!1},trueValue:{type:null,required:!1,default:()=>!0},falseValue:{type:null,required:!1,default:()=>!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`],setup(n,{emit:l}){let p=n,h=l,{forwardRef:g,currentElement:_}=f(),S=A(null),w=d(p,`modelValue`,h,{defaultValue:p.defaultValue??p.falseValue,passive:p.modelValue===void 0}),E=a(()=>S?.disabled.value||p.disabled),O=a(()=>T(w.value,p.trueValue)),j=a(()=>D(S?.modelValue.value)?w.value===`indeterminate`?`indeterminate`:O.value:k(S.modelValue.value,p.value));function P(){if(D(S?.modelValue.value))w.value===`indeterminate`?w.value=p.trueValue:w.value=O.value?p.falseValue:p.trueValue;else{let e=[...S.modelValue.value||[]];if(k(e,p.value)){let t=e.findIndex(e=>T(e,p.value));e.splice(t,1)}else e.push(p.value);S.modelValue.value=e}}let I=C(_),L=a(()=>p.id&&_.value?document.querySelector(`[for="${p.id}"]`)?.innerText:void 0);return F({disabled:E,state:j}),(n,a)=>(s(),i(v(t(S)?.rovingFocus.value?t(x):t(c)),o(n.$attrs,{id:n.id,ref:t(g),role:`checkbox`,"as-child":n.asChild,as:n.as,type:n.as===`button`?`button`:void 0,"aria-checked":t(M)(j.value)?`mixed`:j.value,"aria-required":n.required,"aria-label":n.$attrs[`aria-label`]||L.value,"data-state":t(N)(j.value),"data-disabled":E.value?``:void 0,disabled:E.value,focusable:t(S)?.rovingFocus.value?!E.value:void 0,onKeydown:r(m(()=>{},[`prevent`]),[`enter`]),onClick:P}),{default:u(()=>[y(n.$slots,`default`,{modelValue:t(w),state:j.value}),t(I)&&n.name&&!t(S)?(s(),i(t(b),{key:0,type:`checkbox`,checked:!!j.value,name:n.name,value:n.value,disabled:E.value,required:n.required},null,8,[`checked`,`name`,`value`,`disabled`,`required`])):e(`v-if`,!0)]),_:3},16,[`id`,`as-child`,`as`,`type`,`aria-checked`,`aria-required`,`aria-label`,`data-state`,`data-disabled`,`disabled`,`focusable`,`onKeydown`]))}}),L=l({__name:`CheckboxIndicator`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let{forwardRef:n}=f(),r=P();return(e,a)=>(s(),i(t(O),{present:e.forceMount||t(M)(t(r).state.value)||t(r).state.value===!0},{default:u(()=>[g(t(c),o({ref:t(n),"data-state":t(N)(t(r).state.value),"data-disabled":t(r).disabled.value?``:void 0,style:{pointerEvents:`none`},"as-child":e.asChild,as:e.as},e.$attrs),{default:u(()=>[y(e.$slots,`default`)]),_:3},16,[`data-state`,`data-disabled`,`as-child`,`as`])]),_:3},8,[`present`]))}}),R=l({__name:`Checkbox`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},value:{},id:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:r}){let a=e,c=r,l=S(_(a,`class`),c);return(e,r)=>(s(),i(t(I),o({"data-slot":`checkbox`},t(l),{class:t(h)(`border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4 items-center justify-center rounded-md border transition-colors group-has-disabled/field:opacity-50 focus-visible:ring-3 aria-invalid:ring-3 peer relative shrink-0 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 disabled:cursor-not-allowed disabled:opacity-50`,a.class)}),{default:u(r=>[g(t(L),{"data-slot":`checkbox-indicator`,class:`[&>svg]:size-3.5 grid place-content-center text-current transition-none`},{default:u(()=>[y(e.$slots,`default`,n(p(r)),()=>[g(t(E))])]),_:2},1024)]),_:3},16,[`class`]))}});export{R as t};
@@ -1 +1 @@
1
- import{$ as e,Et as t,Gt as n,Ht as r,Jt as i,Lt as a,Q as o,X as s,d as c,dt as l,ft as u,gt as d,i as f,it as p,kt as m,m as h,mt as g,o as _,ot as v,rt as y,yt as b}from"./button-DG6Kd0iG.js";import{H as x,V as S,Y as C,z as w}from"./index-D_n3EVk6.js";var[T,E]=C(`CollapsibleRoot`),D=p({__name:`CollapsibleRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:open`],setup(e,{expose:t,emit:i}){let a=e,s=h(a,`open`,i,{defaultValue:a.defaultOpen,passive:a.open===void 0}),{disabled:c,unmountOnHide:l}=r(a);return E({contentId:``,disabled:c,open:s,unmountOnHide:l,onOpenToggle:()=>{c.value||(s.value=!s.value)}}),t({open:s}),_(),(e,t)=>(d(),o(n(f),{as:e.as,"as-child":a.asChild,"data-state":n(s)?`open`:`closed`,"data-disabled":n(c)?``:void 0},{default:m(()=>[b(e.$slots,`default`,{open:n(s)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=p({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(r,{emit:i}){let p=r,h=i,v=T();v.contentId||=S(void 0,`reka-collapsible-content`);let x=a(),{forwardRef:C,currentElement:E}=_(),D=a(0),O=a(0),k=s(()=>v.open.value),A=a(k.value),j=a();t(()=>[k.value,x.value?.present],async()=>{await u();let e=E.value;if(!e)return;j.value=j.value||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();O.value=t.height,D.value=t.width,A.value||(e.style.transitionDuration=j.value.transitionDuration,e.style.animationName=j.value.animationName)},{immediate:!0});let M=s(()=>A.value&&v.open.value);return g(()=>{requestAnimationFrame(()=>{A.value=!1})}),c(E,`beforematch`,e=>{requestAnimationFrame(()=>{v.onOpenToggle(),h(`contentFound`)})}),(t,r)=>(d(),o(n(w),{ref_key:`presentRef`,ref:x,present:t.forceMount||n(v).open.value,"force-mount":!0},{default:m(({present:r})=>[y(n(f),l(t.$attrs,{id:n(v).contentId,ref:n(C),"as-child":p.asChild,as:t.as,hidden:r?void 0:n(v).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:n(v).open.value?`open`:`closed`,"data-disabled":n(v).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:m(()=>[!n(v).unmountOnHide.value||r?b(t.$slots,`default`,{key:0}):e(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=p({__name:`Collapsible`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(e,{emit:t}){let r=x(e,t);return(e,t)=>(d(),o(n(D),l({"data-slot":`collapsible`},n(r)),{default:m(t=>[b(e.$slots,`default`,i(v(t)))]),_:3},16))}}),A=p({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,r)=>(d(),o(n(O),l({"data-slot":`collapsible-content`},t),{default:m(()=>[b(e.$slots,`default`)]),_:3},16))}});export{k as n,T as r,A as t};
1
+ import{$ as e,Et as t,Gt as n,Ht as r,Jt as i,Lt as a,Q as o,X as s,d as c,dt as l,ft as u,gt as d,i as f,it as p,kt as m,m as h,mt as g,o as _,ot as v,rt as y,yt as b}from"./button-B6HPBfut.js";import{H as x,V as S,Y as C,z as w}from"./index-BojD3qeA.js";var[T,E]=C(`CollapsibleRoot`),D=p({__name:`CollapsibleRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:open`],setup(e,{expose:t,emit:i}){let a=e,s=h(a,`open`,i,{defaultValue:a.defaultOpen,passive:a.open===void 0}),{disabled:c,unmountOnHide:l}=r(a);return E({contentId:``,disabled:c,open:s,unmountOnHide:l,onOpenToggle:()=>{c.value||(s.value=!s.value)}}),t({open:s}),_(),(e,t)=>(d(),o(n(f),{as:e.as,"as-child":a.asChild,"data-state":n(s)?`open`:`closed`,"data-disabled":n(c)?``:void 0},{default:m(()=>[b(e.$slots,`default`,{open:n(s)})]),_:3},8,[`as`,`as-child`,`data-state`,`data-disabled`]))}}),O=p({inheritAttrs:!1,__name:`CollapsibleContent`,props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`contentFound`],setup(r,{emit:i}){let p=r,h=i,v=T();v.contentId||=S(void 0,`reka-collapsible-content`);let x=a(),{forwardRef:C,currentElement:E}=_(),D=a(0),O=a(0),k=s(()=>v.open.value),A=a(k.value),j=a();t(()=>[k.value,x.value?.present],async()=>{await u();let e=E.value;if(!e)return;j.value=j.value||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();O.value=t.height,D.value=t.width,A.value||(e.style.transitionDuration=j.value.transitionDuration,e.style.animationName=j.value.animationName)},{immediate:!0});let M=s(()=>A.value&&v.open.value);return g(()=>{requestAnimationFrame(()=>{A.value=!1})}),c(E,`beforematch`,e=>{requestAnimationFrame(()=>{v.onOpenToggle(),h(`contentFound`)})}),(t,r)=>(d(),o(n(w),{ref_key:`presentRef`,ref:x,present:t.forceMount||n(v).open.value,"force-mount":!0},{default:m(({present:r})=>[y(n(f),l(t.$attrs,{id:n(v).contentId,ref:n(C),"as-child":p.asChild,as:t.as,hidden:r?void 0:n(v).unmountOnHide.value?``:`until-found`,"data-state":M.value?void 0:n(v).open.value?`open`:`closed`,"data-disabled":n(v).disabled?.value?``:void 0,style:{"--reka-collapsible-content-height":`${O.value}px`,"--reka-collapsible-content-width":`${D.value}px`}}),{default:m(()=>[!n(v).unmountOnHide.value||r?b(t.$slots,`default`,{key:0}):e(`v-if`,!0)]),_:2},1040,[`id`,`as-child`,`as`,`hidden`,`data-state`,`data-disabled`,`style`])]),_:3},8,[`present`]))}}),k=p({__name:`Collapsible`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(e,{emit:t}){let r=x(e,t);return(e,t)=>(d(),o(n(D),l({"data-slot":`collapsible`},n(r)),{default:m(t=>[b(e.$slots,`default`,i(v(t)))]),_:3},16))}}),A=p({__name:`CollapsibleContent`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,r)=>(d(),o(n(O),l({"data-slot":`collapsible-content`},t),{default:m(()=>[b(e.$slots,`default`)]),_:3},16))}});export{k as n,T as r,A as t};
@@ -1 +1 @@
1
- import{Gt as e,Q as t,dt as n,gt as r,i,it as a,kt as o,o as s,yt as c}from"./button-DG6Kd0iG.js";import{r as l}from"./CollapsibleContent-DZ_tKZag.js";var u=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(n){let a=n;s();let u=l();return(n,s)=>(r(),t(e(i),{type:n.as===`button`?`button`:void 0,as:n.as,"as-child":a.asChild,"aria-controls":e(u).contentId,"aria-expanded":e(u).open.value,"data-state":e(u).open.value?`open`:`closed`,"data-disabled":e(u).disabled?.value?``:void 0,disabled:e(u).disabled?.value,onClick:e(u).onOpenToggle},{default:o(()=>[c(n.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),d=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(i){let a=i;return(i,s)=>(r(),t(e(u),n({"data-slot":`collapsible-trigger`},a),{default:o(()=>[c(i.$slots,`default`)]),_:3},16))}});export{d as t};
1
+ import{Gt as e,Q as t,dt as n,gt as r,i,it as a,kt as o,o as s,yt as c}from"./button-B6HPBfut.js";import{r as l}from"./CollapsibleContent-BbBeIu0t.js";var u=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(n){let a=n;s();let u=l();return(n,s)=>(r(),t(e(i),{type:n.as===`button`?`button`:void 0,as:n.as,"as-child":a.asChild,"aria-controls":e(u).contentId,"aria-expanded":e(u).open.value,"data-state":e(u).open.value?`open`:`closed`,"data-disabled":e(u).disabled?.value?``:void 0,disabled:e(u).disabled?.value,onClick:e(u).onOpenToggle},{default:o(()=>[c(n.$slots,`default`)]),_:3},8,[`type`,`as`,`as-child`,`aria-controls`,`aria-expanded`,`data-state`,`data-disabled`,`disabled`,`onClick`]))}}),d=a({__name:`CollapsibleTrigger`,props:{asChild:{type:Boolean},as:{}},setup(i){let a=i;return(i,s)=>(r(),t(e(u),n({"data-slot":`collapsible-trigger`},a),{default:o(()=>[c(i.$slots,`default`)]),_:3},16))}});export{d as t};
@@ -1 +1 @@
1
- import{$ as e,Gt as t,H as n,J as r,K as i,L as a,Lt as o,Q as s,X as c,Xt as l,Z as u,et as d,gt as f,it as p,kt as m,n as h,nt as g,q as _,qt as v,rt as y,vt as b}from"./button-DG6Kd0iG.js";import{t as x}from"./plus-CtcJ9YdO.js";import{t as S}from"./trash-2-DubWJ15J.js";import{t as C}from"./Label-DmDoAc6v.js";import{t as ee}from"./Switch-DKdPLHJ3.js";import{_ as w,ct as te,g as T,h as E,ht as ne,m as D,ot as re,v as O}from"./index-D_n3EVk6.js";import{t as ie}from"./badge-BscUNLaG.js";import{t as k}from"./Input-DVGxkxMa.js";import{t as A}from"./CascadingModelSelect-B7DWy49d.js";import{r as j}from"./transform-domain-8xyILR30.js";var M=a(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),N=a(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),ae=[`title`],oe={class:`flex items-center gap-1 min-w-0 flex-1 flex-wrap`},se={key:0,class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-primary/10 border border-border text-primary whitespace-nowrap`},P={key:0,class:`text-[10px] opacity-60`},F={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-muted/30 border border-border text-muted-foreground whitespace-nowrap`},I={class:`text-[10px] font-semibold`},L={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono border border-dashed border-border text-primary/60 whitespace-nowrap`},R={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono border border-dashed border-border text-blue-500/60 whitespace-nowrap`},z={class:`text-[10px] text-muted-foreground/30 hidden sm:inline shrink-0 whitespace-nowrap`},B={key:1,class:`space-y-2`},V={class:`flex items-center gap-2`},H={class:`text-[10px] text-muted-foreground/60 shrink-0 w-10 uppercase tracking-wider font-medium`},U={key:1,class:`flex-1 flex items-center gap-1.5`},W={class:`pt-0.5`},G={class:`flex items-center gap-1 mb-1`},K={class:`text-[10px] font-medium text-muted-foreground/70 uppercase tracking-wider`},ce={class:`flex items-center gap-2`},le={class:`flex-1`},ue={key:0,class:`flex items-center gap-1 pl-7 py-0.5`},de={class:`text-[9px] text-orange-400/50`},fe={class:`pt-2 mt-1 border-t border-dashed border-primary/15`},pe={class:`flex items-center gap-1.5 mb-1`},me={class:`text-[10px] font-medium text-primary/60 uppercase tracking-wider`},he={class:`text-[9px] text-primary/40 hidden sm:inline`},ge={key:0,class:`flex items-center gap-2`},_e={class:`flex-1`},ve={class:`pt-2 mt-1 border-t border-dashed border-blue-500/15`},ye={class:`flex items-center gap-1.5 mb-1`},be={class:`text-[10px] font-medium text-blue-500/60 uppercase tracking-wider`},xe={key:0,class:`flex items-center gap-2`},Se={class:`text-xs shrink-0 w-5 text-center px-0.5 py-0.5 rounded bg-blue-500/6 text-blue-500/60`},Ce={class:`flex-1`},we={key:2,class:`mt-2 px-2.5 py-2 rounded border-[1px] border-orange-400/25 bg-orange-400/5 flex gap-2`},Te={class:`text-[10px] leading-relaxed space-y-0.5`},Ee={class:`text-orange-400 font-medium`},De={class:`text-muted-foreground/60`},Oe={class:`text-muted-foreground/40`},ke=6,q=p({__name:`MappingEntryEditor`,props:{entry:{},providerGroups:{},expanded:{type:Boolean},editableClientModel:{type:Boolean,default:!1}},emits:[`update:targets`,`update:clientModel`,`update:multimodalFallback`,`toggle-active`,`remove`,`expand`],setup(a,{emit:p}){let{t:C}=n(),w=a,T=p,E=o(!1),D=o(``);function O(){w.editableClientModel&&(D.value=w.entry.clientModel,E.value=!0)}function j(){let e=D.value.trim();e&&e!==w.entry.clientModel&&T(`update:clientModel`,e),E.value=!1}function q(){E.value=!1}function J(e){return e===`__new__`?null:w.providerGroups.find(t=>t.provider.id===e)?.provider.name??e.slice(0,ke)}function Y(){let e=w.providerGroups[0];T(`update:targets`,[...w.entry.targets,{backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``}])}function Ae(e){w.entry.targets.length<=1||T(`update:targets`,w.entry.targets.filter((t,n)=>n!==e))}function je(e,t){let n=[...w.entry.targets];n[e]={...n[e],provider_id:t.provider_id,backend_model:t.model},T(`update:targets`,n)}function Me(){let e=w.providerGroups[0];T(`update:targets`,w.entry.targets.map((t,n)=>n===0?{...t,overflow_provider_id:e?.provider.id??``,overflow_model:e?.models[0]?.name??``}:t))}function X(e){T(`update:targets`,w.entry.targets.map((t,n)=>{if(n===0){if(e)return{...t,overflow_provider_id:e.provider_id,overflow_model:e.model};let{overflow_provider_id:n,overflow_model:r,...i}=t;return i}return t}))}function Z(){let e=w.providerGroups[0];T(`update:multimodalFallback`,{provider_id:e?.provider.id??``,backend_model:``})}function Ne(e){T(`update:multimodalFallback`,{provider_id:e.provider_id,backend_model:e.model})}function Pe(){T(`update:multimodalFallback`,void 0)}let Fe=c(()=>{switch(w.entry.tag){case`def`:return`bg-primary/15 text-primary`;case`auto`:return`bg-green-500/15 text-green-500`;case`cust`:return`bg-blue-500/15 text-blue-500`;case`existing`:return`bg-muted/40 text-muted-foreground`;default:return`bg-muted/40 text-muted-foreground`}}),Ie=c(()=>{switch(w.entry.tag){case`def`:return C(`providers.shared.tagDefault`);case`auto`:return C(`providers.shared.tagAuto`);case`cust`:return C(`providers.shared.tagCustom`);case`existing`:return C(`providers.shared.tagExisting`);default:return``}}),Q=c(()=>!!w.entry.targets[0]?.overflow_model),$=c(()=>!!w.entry.multimodalFallback?.backend_model);return(n,o)=>(f(),d(`div`,null,[a.expanded?(f(),d(`div`,B,[u(`div`,V,[u(`span`,H,l(t(C)(`mappings.editor.clientLabel`)),1),E.value?(f(),d(`div`,{key:0,class:`flex-1 flex items-center gap-1`,onClick:o[5]||=_(()=>{},[`stop`])},[y(t(k),{modelValue:D.value,"onUpdate:modelValue":o[4]||=e=>D.value=e,class:`h-7 flex-1 text-xs font-mono border-[1px] border-border`,placeholder:t(C)(`mappings.editor.clientInputPlaceholder`),onKeydown:[i(_(j,[`prevent`]),[`enter`]),i(_(q,[`prevent`]),[`escape`])],onBlur:j,autofocus:``},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):(f(),d(`div`,U,[u(`span`,{class:v([`font-mono text-xs font-semibold text-foreground`,{"cursor-pointer hover:text-primary transition-colors":a.editableClientModel}]),onClick:O},l(a.entry.clientModel),3),a.editableClientModel?(f(),s(t(h),{key:0,variant:`ghost`,size:`xs`,class:`text-[10px] text-muted-foreground/40`,onClick:_(O,[`stop`])},{default:m(()=>[g(l(t(C)(`mappings.editor.edit`)),1)]),_:1})):e(``,!0)]))]),u(`div`,W,[u(`div`,G,[y(t(re),{class:`size-3 text-muted-foreground/50`}),u(`span`,K,l(t(C)(`mappings.editor.failoverChain`)),1)]),(f(!0),d(r,null,b(a.entry.targets,(n,r)=>(f(),d(`div`,{key:r,class:`space-y-0`},[u(`div`,ce,[u(`span`,{class:v([`text-xs font-medium shrink-0 w-5 text-center px-0.5 py-0.5 rounded`,r===0?`bg-primary/10 text-primary`:`bg-muted/40 text-muted-foreground`])},l(r===0?`①`:r===1?`②`:r===2?`③`:`${r+1}`),3),u(`div`,le,[y(A,{providers:a.providerGroups,"model-value":{provider_id:n.provider_id,model:n.backend_model},compact:``,placeholder:t(C)(`providers.shared.selectModel`),"onUpdate:modelValue":e=>je(r,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),r>0&&a.entry.targets.length>1?(f(),s(t(h),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>Ae(r)},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1},8,[`onClick`])):e(``,!0)]),r<a.entry.targets.length-1?(f(),d(`div`,ue,[o[13]||=u(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),u(`span`,de,l(t(C)(`mappings.editor.failoverOnError`)),1)])):e(``,!0)]))),128)),y(t(h),{variant:`ghost`,class:`flex items-center justify-center gap-1 w-full py-1 mt-0.5 text-xs text-muted-foreground/40 border-[1px] border-dashed border-border rounded hover:text-primary hover:border-primary/40`,onClick:Y},{default:m(()=>[y(t(x),{class:`size-3`}),g(` `+l(t(C)(`mappings.addBackup`)),1)]),_:1})]),u(`div`,fe,[u(`div`,pe,[y(t(ne),{class:`size-3 text-primary/50`}),u(`span`,me,l(t(C)(`mappings.editor.contextOverflow`)),1),u(`span`,he,l(t(C)(`mappings.editor.contextOverflowHint`)),1)]),Q.value?(f(),d(`div`,ge,[o[14]||=u(`span`,{class:`text-xs shrink-0 w-5 text-center px-0.5 py-0.5 rounded bg-primary/6 text-primary/60`},`↓`,-1),u(`div`,_e,[y(A,{providers:a.providerGroups,"model-value":a.entry.targets[0]?.overflow_provider_id&&a.entry.targets[0]?.overflow_model?{provider_id:a.entry.targets[0].overflow_provider_id,model:a.entry.targets[0].overflow_model}:void 0,compact:``,dashed:``,placeholder:t(C)(`providers.shared.overflowPlaceholder`),"onUpdate:modelValue":o[6]||=e=>X(e)},null,8,[`providers`,`model-value`,`placeholder`])]),y(t(h),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:o[7]||=e=>X(void 0)},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1})])):(f(),s(t(h),{key:1,variant:`ghost`,size:`xs`,class:`text-xs text-muted-foreground/50 hover:text-primary/60`,onClick:Me},{default:m(()=>[y(t(x),{class:`size-3`}),g(` `+l(t(C)(`providers.shared.addOverflow`)),1)]),_:1}))]),u(`div`,ve,[u(`div`,ye,[y(t(N),{class:`size-3 text-blue-500/50`}),u(`span`,be,l(t(C)(`mappings.editor.multimodalFallback`)),1),$.value?(f(),s(t(ie),{key:0,variant:`outline`,class:`text-[9px] px-1.5 py-0 leading-none text-primary/60 border-[1px] border-primary/20`},{default:m(()=>[g(l(t(C)(`mappings.multimodalFallback.configured`)),1)]),_:1})):e(``,!0)]),$.value?(f(),d(`div`,xe,[u(`span`,Se,[y(t(N),{class:`size-2.5`})]),u(`div`,Ce,[y(A,{providers:a.providerGroups,"model-value":{provider_id:a.entry.multimodalFallback.provider_id,model:a.entry.multimodalFallback.backend_model},compact:``,dashed:``,placeholder:t(C)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":o[8]||=e=>Ne(e)},null,8,[`providers`,`model-value`,`placeholder`])]),y(t(h),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:Pe},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1})])):(f(),s(t(h),{key:1,variant:`ghost`,size:`xs`,class:`text-xs text-muted-foreground/50 hover:text-primary/60`,onClick:Z},{default:m(()=>[y(t(x),{class:`size-3`}),g(` `+l(t(C)(`mappings.multimodalFallback.add`)),1)]),_:1})),$.value?(f(),d(`div`,we,[y(t(te),{class:`size-3.5 text-orange-400 shrink-0 mt-0.5`}),u(`div`,Te,[u(`div`,Ee,l(t(C)(`mappings.multimodalFallback.sessionLockWarning`)),1),u(`div`,De,l(t(C)(`mappings.multimodalFallback.sessionLockReason`)),1),u(`div`,Oe,l(t(C)(`mappings.multimodalFallback.costSuggestion`)),1)])])):e(``,!0)])])):(f(),d(`div`,{key:0,class:`flex items-center gap-2 cursor-pointer select-none min-h-[28px]`,onClick:o[3]||=e=>T(`expand`)},[u(`span`,{class:`font-mono text-xs font-semibold text-foreground min-w-[90px] truncate shrink-0`,title:a.entry.clientModel},l(a.entry.clientModel),9,ae),y(t(M),{class:`size-3 text-muted-foreground/30 shrink-0`}),u(`div`,oe,[a.entry.targets.length>0?(f(),d(`span`,se,[o[9]||=u(`span`,{class:`text-[10px] font-semibold`},`①`,-1),g(` `+l(a.entry.targets[0].backend_model)+` `,1),J(a.entry.targets[0].provider_id)?(f(),d(`span`,P,l(J(a.entry.targets[0].provider_id)),1)):e(``,!0)])):e(``,!0),(f(!0),d(r,null,b(a.entry.targets.slice(1),(e,t)=>(f(),d(r,{key:`fo-`+t},[o[10]||=u(`span`,{class:`text-orange-400/40 text-xs shrink-0`},`|`,-1),u(`span`,F,[u(`span`,I,l(t===0?`②`:t===1?`③`:`${t+2}`),1),g(` `+l(e.backend_model),1)])],64))),128)),Q.value?(f(),d(r,{key:1},[o[11]||=u(`span`,{class:`text-muted-foreground/30 text-xs shrink-0`},`|`,-1),u(`span`,L,` ↓ `+l(a.entry.targets[0].overflow_model),1)],64)):e(``,!0),$.value?(f(),d(r,{key:2},[o[12]||=u(`span`,{class:`text-muted-foreground/30 text-xs shrink-0`},`|`,-1),u(`span`,R,[y(t(N),{class:`size-2.5`}),g(` `+l(a.entry.multimodalFallback.backend_model),1)])],64)):e(``,!0)]),u(`span`,{class:v([`text-[10px] px-1.5 py-px rounded font-medium leading-none shrink-0`,Fe.value])},l(Ie.value),3),u(`div`,{class:`shrink-0 flex items-center`,onClick:o[1]||=_(()=>{},[`stop`])},[y(t(ee),{"model-value":a.entry.active,"onUpdate:modelValue":o[0]||=e=>T(`toggle-active`),class:`scale-75`},null,8,[`model-value`])]),y(t(h),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/20 hover:text-destructive`,onClick:o[2]||=_(e=>T(`remove`),[`stop`])},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1}),u(`span`,z,l(t(C)(`mappings.editor.clickToEdit`)),1)]))]))}}),J={key:1,class:`text-[10px] text-muted-foreground leading-snug`},Y=p({__name:`ConcurrencyControl`,props:{modelValue:{},compact:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(i,{emit:a}){let{t:o}=n(),s=i,p=a;function h(e){p(`update:modelValue`,{...s.modelValue,...e})}let _=c(()=>s.modelValue.mode??j.mode),b=c(()=>s.modelValue.max_concurrency??j.max_concurrency),x=c(()=>s.modelValue.queue_timeout_ms??j.queue_timeout_ms),S=c(()=>s.modelValue.max_queue_size??j.max_queue_size);return(n,a)=>(f(),d(`div`,{class:v(i.compact?`space-y-2`:`flex items-end gap-2 flex-wrap`)},[u(`div`,{class:v([i.compact?``:`w-36`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.mode`)),1)]),_:1}),y(t(O),{"model-value":_.value,"onUpdate:modelValue":a[0]||=e=>h({mode:e})},{default:m(()=>[y(t(E),{class:`w-full text-xs data-[size=default]:h-7`},{default:m(()=>[y(t(D))]),_:1}),y(t(w),null,{default:m(()=>[y(t(T),{value:`auto`},{default:m(()=>[g(l(t(o)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),y(t(T),{value:`manual`},{default:m(()=>[g(l(t(o)(`providers.concurrency.manual`)),1)]),_:1}),y(t(T),{value:`none`},{default:m(()=>[g(l(t(o)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])],2),_.value===`none`?e(``,!0):(f(),d(r,{key:0},[u(`div`,{class:v([i.compact?``:`w-24`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),y(t(k),{"model-value":b.value,type:`number`,min:`1`,max:`100`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[1]||=e=>h({max_concurrency:Number(e)})},null,8,[`model-value`])],2),u(`div`,{class:v([i.compact?``:`w-30`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.queueTimeout`)),1)]),_:1}),y(t(k),{"model-value":x.value,type:`number`,min:`0`,placeholder:t(o)(`providers.shared.queueTimeoutPlaceholder`),class:`font-mono text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[2]||=e=>h({queue_timeout_ms:Number(e)})},null,8,[`model-value`,`placeholder`])],2),u(`div`,{class:v([i.compact?``:`w-30`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),y(t(k),{"model-value":S.value,type:`number`,min:`1`,max:`1000`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[3]||=e=>h({max_queue_size:Number(e)})},null,8,[`model-value`])],2)],64)),_.value===`auto`&&!i.compact?(f(),d(`div`,J,l(t(o)(`providers.shared.autoHint`)),1)):e(``,!0)],2))}});export{q as n,M as r,Y as t};
1
+ import{$ as e,Gt as t,H as n,J as r,K as i,L as a,Lt as o,Q as s,X as c,Xt as l,Z as u,et as d,gt as f,it as p,kt as m,n as h,nt as g,q as _,qt as v,rt as y,vt as b}from"./button-B6HPBfut.js";import{t as x}from"./plus-1l2yGLui.js";import{t as S}from"./trash-2-BxrrjFlJ.js";import{t as C}from"./Label-D_Tm4OWq.js";import{t as ee}from"./Switch-DMf4g_LS.js";import{_ as w,ct as te,g as T,h as E,ht as ne,m as D,ot as re,v as O}from"./index-BojD3qeA.js";import{t as ie}from"./badge-Dwp_XJAX.js";import{t as k}from"./Input-BPtlK0vf.js";import{t as A}from"./CascadingModelSelect-DuZpHPPa.js";import{r as j}from"./transform-domain-BmRXGTiS.js";var M=a(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),N=a(`grid-3x3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M3 15h18`,key:`5xshup`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),ae=[`title`],oe={class:`flex items-center gap-1 min-w-0 flex-1 flex-wrap`},se={key:0,class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-primary/10 border border-border text-primary whitespace-nowrap`},P={key:0,class:`text-[10px] opacity-60`},F={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono bg-muted/30 border border-border text-muted-foreground whitespace-nowrap`},I={class:`text-[10px] font-semibold`},L={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono border border-dashed border-border text-primary/60 whitespace-nowrap`},R={class:`inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-xs font-mono border border-dashed border-border text-blue-500/60 whitespace-nowrap`},z={class:`text-[10px] text-muted-foreground/30 hidden sm:inline shrink-0 whitespace-nowrap`},B={key:1,class:`space-y-2`},V={class:`flex items-center gap-2`},H={class:`text-[10px] text-muted-foreground/60 shrink-0 w-10 uppercase tracking-wider font-medium`},U={key:1,class:`flex-1 flex items-center gap-1.5`},W={class:`pt-0.5`},G={class:`flex items-center gap-1 mb-1`},K={class:`text-[10px] font-medium text-muted-foreground/70 uppercase tracking-wider`},ce={class:`flex items-center gap-2`},le={class:`flex-1`},ue={key:0,class:`flex items-center gap-1 pl-7 py-0.5`},de={class:`text-[9px] text-orange-400/50`},fe={class:`pt-2 mt-1 border-t border-dashed border-primary/15`},pe={class:`flex items-center gap-1.5 mb-1`},me={class:`text-[10px] font-medium text-primary/60 uppercase tracking-wider`},he={class:`text-[9px] text-primary/40 hidden sm:inline`},ge={key:0,class:`flex items-center gap-2`},_e={class:`flex-1`},ve={class:`pt-2 mt-1 border-t border-dashed border-blue-500/15`},ye={class:`flex items-center gap-1.5 mb-1`},be={class:`text-[10px] font-medium text-blue-500/60 uppercase tracking-wider`},xe={key:0,class:`flex items-center gap-2`},Se={class:`text-xs shrink-0 w-5 text-center px-0.5 py-0.5 rounded bg-blue-500/6 text-blue-500/60`},Ce={class:`flex-1`},we={key:2,class:`mt-2 px-2.5 py-2 rounded border-[1px] border-orange-400/25 bg-orange-400/5 flex gap-2`},Te={class:`text-[10px] leading-relaxed space-y-0.5`},Ee={class:`text-orange-400 font-medium`},De={class:`text-muted-foreground/60`},Oe={class:`text-muted-foreground/40`},ke=6,q=p({__name:`MappingEntryEditor`,props:{entry:{},providerGroups:{},expanded:{type:Boolean},editableClientModel:{type:Boolean,default:!1}},emits:[`update:targets`,`update:clientModel`,`update:multimodalFallback`,`toggle-active`,`remove`,`expand`],setup(a,{emit:p}){let{t:C}=n(),w=a,T=p,E=o(!1),D=o(``);function O(){w.editableClientModel&&(D.value=w.entry.clientModel,E.value=!0)}function j(){let e=D.value.trim();e&&e!==w.entry.clientModel&&T(`update:clientModel`,e),E.value=!1}function q(){E.value=!1}function J(e){return e===`__new__`?null:w.providerGroups.find(t=>t.provider.id===e)?.provider.name??e.slice(0,ke)}function Y(){let e=w.providerGroups[0];T(`update:targets`,[...w.entry.targets,{backend_model:e?.models[0]?.name??``,provider_id:e?.provider.id??``}])}function Ae(e){w.entry.targets.length<=1||T(`update:targets`,w.entry.targets.filter((t,n)=>n!==e))}function je(e,t){let n=[...w.entry.targets];n[e]={...n[e],provider_id:t.provider_id,backend_model:t.model},T(`update:targets`,n)}function Me(){let e=w.providerGroups[0];T(`update:targets`,w.entry.targets.map((t,n)=>n===0?{...t,overflow_provider_id:e?.provider.id??``,overflow_model:e?.models[0]?.name??``}:t))}function X(e){T(`update:targets`,w.entry.targets.map((t,n)=>{if(n===0){if(e)return{...t,overflow_provider_id:e.provider_id,overflow_model:e.model};let{overflow_provider_id:n,overflow_model:r,...i}=t;return i}return t}))}function Z(){let e=w.providerGroups[0];T(`update:multimodalFallback`,{provider_id:e?.provider.id??``,backend_model:``})}function Ne(e){T(`update:multimodalFallback`,{provider_id:e.provider_id,backend_model:e.model})}function Pe(){T(`update:multimodalFallback`,void 0)}let Fe=c(()=>{switch(w.entry.tag){case`def`:return`bg-primary/15 text-primary`;case`auto`:return`bg-green-500/15 text-green-500`;case`cust`:return`bg-blue-500/15 text-blue-500`;case`existing`:return`bg-muted/40 text-muted-foreground`;default:return`bg-muted/40 text-muted-foreground`}}),Ie=c(()=>{switch(w.entry.tag){case`def`:return C(`providers.shared.tagDefault`);case`auto`:return C(`providers.shared.tagAuto`);case`cust`:return C(`providers.shared.tagCustom`);case`existing`:return C(`providers.shared.tagExisting`);default:return``}}),Q=c(()=>!!w.entry.targets[0]?.overflow_model),$=c(()=>!!w.entry.multimodalFallback?.backend_model);return(n,o)=>(f(),d(`div`,null,[a.expanded?(f(),d(`div`,B,[u(`div`,V,[u(`span`,H,l(t(C)(`mappings.editor.clientLabel`)),1),E.value?(f(),d(`div`,{key:0,class:`flex-1 flex items-center gap-1`,onClick:o[5]||=_(()=>{},[`stop`])},[y(t(k),{modelValue:D.value,"onUpdate:modelValue":o[4]||=e=>D.value=e,class:`h-7 flex-1 text-xs font-mono border-[1px] border-border`,placeholder:t(C)(`mappings.editor.clientInputPlaceholder`),onKeydown:[i(_(j,[`prevent`]),[`enter`]),i(_(q,[`prevent`]),[`escape`])],onBlur:j,autofocus:``},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):(f(),d(`div`,U,[u(`span`,{class:v([`font-mono text-xs font-semibold text-foreground`,{"cursor-pointer hover:text-primary transition-colors":a.editableClientModel}]),onClick:O},l(a.entry.clientModel),3),a.editableClientModel?(f(),s(t(h),{key:0,variant:`ghost`,size:`xs`,class:`text-[10px] text-muted-foreground/40`,onClick:_(O,[`stop`])},{default:m(()=>[g(l(t(C)(`mappings.editor.edit`)),1)]),_:1})):e(``,!0)]))]),u(`div`,W,[u(`div`,G,[y(t(re),{class:`size-3 text-muted-foreground/50`}),u(`span`,K,l(t(C)(`mappings.editor.failoverChain`)),1)]),(f(!0),d(r,null,b(a.entry.targets,(n,r)=>(f(),d(`div`,{key:r,class:`space-y-0`},[u(`div`,ce,[u(`span`,{class:v([`text-xs font-medium shrink-0 w-5 text-center px-0.5 py-0.5 rounded`,r===0?`bg-primary/10 text-primary`:`bg-muted/40 text-muted-foreground`])},l(r===0?`①`:r===1?`②`:r===2?`③`:`${r+1}`),3),u(`div`,le,[y(A,{providers:a.providerGroups,"model-value":{provider_id:n.provider_id,model:n.backend_model},compact:``,placeholder:t(C)(`providers.shared.selectModel`),"onUpdate:modelValue":e=>je(r,e)},null,8,[`providers`,`model-value`,`placeholder`,`onUpdate:modelValue`])]),r>0&&a.entry.targets.length>1?(f(),s(t(h),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:e=>Ae(r)},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1},8,[`onClick`])):e(``,!0)]),r<a.entry.targets.length-1?(f(),d(`div`,ue,[o[13]||=u(`div`,{class:`w-px h-1.5 bg-orange-400/30`},null,-1),u(`span`,de,l(t(C)(`mappings.editor.failoverOnError`)),1)])):e(``,!0)]))),128)),y(t(h),{variant:`ghost`,class:`flex items-center justify-center gap-1 w-full py-1 mt-0.5 text-xs text-muted-foreground/40 border-[1px] border-dashed border-border rounded hover:text-primary hover:border-primary/40`,onClick:Y},{default:m(()=>[y(t(x),{class:`size-3`}),g(` `+l(t(C)(`mappings.addBackup`)),1)]),_:1})]),u(`div`,fe,[u(`div`,pe,[y(t(ne),{class:`size-3 text-primary/50`}),u(`span`,me,l(t(C)(`mappings.editor.contextOverflow`)),1),u(`span`,he,l(t(C)(`mappings.editor.contextOverflowHint`)),1)]),Q.value?(f(),d(`div`,ge,[o[14]||=u(`span`,{class:`text-xs shrink-0 w-5 text-center px-0.5 py-0.5 rounded bg-primary/6 text-primary/60`},`↓`,-1),u(`div`,_e,[y(A,{providers:a.providerGroups,"model-value":a.entry.targets[0]?.overflow_provider_id&&a.entry.targets[0]?.overflow_model?{provider_id:a.entry.targets[0].overflow_provider_id,model:a.entry.targets[0].overflow_model}:void 0,compact:``,dashed:``,placeholder:t(C)(`providers.shared.overflowPlaceholder`),"onUpdate:modelValue":o[6]||=e=>X(e)},null,8,[`providers`,`model-value`,`placeholder`])]),y(t(h),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:o[7]||=e=>X(void 0)},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1})])):(f(),s(t(h),{key:1,variant:`ghost`,size:`xs`,class:`text-xs text-muted-foreground/50 hover:text-primary/60`,onClick:Me},{default:m(()=>[y(t(x),{class:`size-3`}),g(` `+l(t(C)(`providers.shared.addOverflow`)),1)]),_:1}))]),u(`div`,ve,[u(`div`,ye,[y(t(N),{class:`size-3 text-blue-500/50`}),u(`span`,be,l(t(C)(`mappings.editor.multimodalFallback`)),1),$.value?(f(),s(t(ie),{key:0,variant:`outline`,class:`text-[9px] px-1.5 py-0 leading-none text-primary/60 border-[1px] border-primary/20`},{default:m(()=>[g(l(t(C)(`mappings.multimodalFallback.configured`)),1)]),_:1})):e(``,!0)]),$.value?(f(),d(`div`,xe,[u(`span`,Se,[y(t(N),{class:`size-2.5`})]),u(`div`,Ce,[y(A,{providers:a.providerGroups,"model-value":{provider_id:a.entry.multimodalFallback.provider_id,model:a.entry.multimodalFallback.backend_model},compact:``,dashed:``,placeholder:t(C)(`mappings.multimodalFallback.selectProviderModel`),"onUpdate:modelValue":o[8]||=e=>Ne(e)},null,8,[`providers`,`model-value`,`placeholder`])]),y(t(h),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/30 hover:text-destructive`,onClick:Pe},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1})])):(f(),s(t(h),{key:1,variant:`ghost`,size:`xs`,class:`text-xs text-muted-foreground/50 hover:text-primary/60`,onClick:Z},{default:m(()=>[y(t(x),{class:`size-3`}),g(` `+l(t(C)(`mappings.multimodalFallback.add`)),1)]),_:1})),$.value?(f(),d(`div`,we,[y(t(te),{class:`size-3.5 text-orange-400 shrink-0 mt-0.5`}),u(`div`,Te,[u(`div`,Ee,l(t(C)(`mappings.multimodalFallback.sessionLockWarning`)),1),u(`div`,De,l(t(C)(`mappings.multimodalFallback.sessionLockReason`)),1),u(`div`,Oe,l(t(C)(`mappings.multimodalFallback.costSuggestion`)),1)])])):e(``,!0)])])):(f(),d(`div`,{key:0,class:`flex items-center gap-2 cursor-pointer select-none min-h-[28px]`,onClick:o[3]||=e=>T(`expand`)},[u(`span`,{class:`font-mono text-xs font-semibold text-foreground min-w-[90px] truncate shrink-0`,title:a.entry.clientModel},l(a.entry.clientModel),9,ae),y(t(M),{class:`size-3 text-muted-foreground/30 shrink-0`}),u(`div`,oe,[a.entry.targets.length>0?(f(),d(`span`,se,[o[9]||=u(`span`,{class:`text-[10px] font-semibold`},`①`,-1),g(` `+l(a.entry.targets[0].backend_model)+` `,1),J(a.entry.targets[0].provider_id)?(f(),d(`span`,P,l(J(a.entry.targets[0].provider_id)),1)):e(``,!0)])):e(``,!0),(f(!0),d(r,null,b(a.entry.targets.slice(1),(e,t)=>(f(),d(r,{key:`fo-`+t},[o[10]||=u(`span`,{class:`text-orange-400/40 text-xs shrink-0`},`|`,-1),u(`span`,F,[u(`span`,I,l(t===0?`②`:t===1?`③`:`${t+2}`),1),g(` `+l(e.backend_model),1)])],64))),128)),Q.value?(f(),d(r,{key:1},[o[11]||=u(`span`,{class:`text-muted-foreground/30 text-xs shrink-0`},`|`,-1),u(`span`,L,` ↓ `+l(a.entry.targets[0].overflow_model),1)],64)):e(``,!0),$.value?(f(),d(r,{key:2},[o[12]||=u(`span`,{class:`text-muted-foreground/30 text-xs shrink-0`},`|`,-1),u(`span`,R,[y(t(N),{class:`size-2.5`}),g(` `+l(a.entry.multimodalFallback.backend_model),1)])],64)):e(``,!0)]),u(`span`,{class:v([`text-[10px] px-1.5 py-px rounded font-medium leading-none shrink-0`,Fe.value])},l(Ie.value),3),u(`div`,{class:`shrink-0 flex items-center`,onClick:o[1]||=_(()=>{},[`stop`])},[y(t(ee),{"model-value":a.entry.active,"onUpdate:modelValue":o[0]||=e=>T(`toggle-active`),class:`scale-75`},null,8,[`model-value`])]),y(t(h),{variant:`ghost`,size:`icon-xs`,class:`shrink-0 text-muted-foreground/20 hover:text-destructive`,onClick:o[2]||=_(e=>T(`remove`),[`stop`])},{default:m(()=>[y(t(S),{class:`size-3`})]),_:1}),u(`span`,z,l(t(C)(`mappings.editor.clickToEdit`)),1)]))]))}}),J={key:1,class:`text-[10px] text-muted-foreground leading-snug`},Y=p({__name:`ConcurrencyControl`,props:{modelValue:{},compact:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(i,{emit:a}){let{t:o}=n(),s=i,p=a;function h(e){p(`update:modelValue`,{...s.modelValue,...e})}let _=c(()=>s.modelValue.mode??j.mode),b=c(()=>s.modelValue.max_concurrency??j.max_concurrency),x=c(()=>s.modelValue.queue_timeout_ms??j.queue_timeout_ms),S=c(()=>s.modelValue.max_queue_size??j.max_queue_size);return(n,a)=>(f(),d(`div`,{class:v(i.compact?`space-y-2`:`flex items-end gap-2 flex-wrap`)},[u(`div`,{class:v([i.compact?``:`w-36`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.mode`)),1)]),_:1}),y(t(O),{"model-value":_.value,"onUpdate:modelValue":a[0]||=e=>h({mode:e})},{default:m(()=>[y(t(E),{class:`w-full text-xs data-[size=default]:h-7`},{default:m(()=>[y(t(D))]),_:1}),y(t(w),null,{default:m(()=>[y(t(T),{value:`auto`},{default:m(()=>[g(l(t(o)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),y(t(T),{value:`manual`},{default:m(()=>[g(l(t(o)(`providers.concurrency.manual`)),1)]),_:1}),y(t(T),{value:`none`},{default:m(()=>[g(l(t(o)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])],2),_.value===`none`?e(``,!0):(f(),d(r,{key:0},[u(`div`,{class:v([i.compact?``:`w-24`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),y(t(k),{"model-value":b.value,type:`number`,min:`1`,max:`100`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[1]||=e=>h({max_concurrency:Number(e)})},null,8,[`model-value`])],2),u(`div`,{class:v([i.compact?``:`w-30`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.queueTimeout`)),1)]),_:1}),y(t(k),{"model-value":x.value,type:`number`,min:`0`,placeholder:t(o)(`providers.shared.queueTimeoutPlaceholder`),class:`font-mono text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[2]||=e=>h({queue_timeout_ms:Number(e)})},null,8,[`model-value`,`placeholder`])],2),u(`div`,{class:v([i.compact?``:`w-30`,`space-y-1`])},[y(t(C),{class:`text-xs text-muted-foreground`},{default:m(()=>[g(l(t(o)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),y(t(k),{"model-value":S.value,type:`number`,min:`1`,max:`1000`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":a[3]||=e=>h({max_queue_size:Number(e)})},null,8,[`model-value`])],2)],64)),_.value===`auto`&&!i.compact?(f(),d(`div`,J,l(t(o)(`providers.shared.autoHint`)),1)):e(``,!0)],2))}});export{q as n,M as r,Y as t};