llm-simple-router 1.1.2-beta.2 → 1.1.2

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 (124) hide show
  1. package/dist/admin/providers.js +4 -6
  2. package/dist/admin/quick-setup.js +0 -2
  3. package/dist/app/register-routes.js +0 -2
  4. package/dist/config/model-context.d.ts +0 -2
  5. package/dist/config/model-context.js +0 -4
  6. package/dist/core/concurrency/semaphore.d.ts +2 -15
  7. package/dist/core/concurrency/semaphore.js +4 -36
  8. package/dist/core/constants.d.ts +0 -1
  9. package/dist/core/constants.js +0 -3
  10. package/dist/core/monitor/request-tracker.d.ts +0 -6
  11. package/dist/core/monitor/request-tracker.js +0 -15
  12. package/dist/core/types.d.ts +1 -1
  13. package/dist/db/providers.d.ts +3 -12
  14. package/dist/db/providers.js +12 -23
  15. package/dist/index.js +0 -2
  16. package/dist/proxy/handler/iteration-setup.js +2 -3
  17. package/dist/proxy/orchestration/orchestrator.d.ts +1 -1
  18. package/dist/proxy/orchestration/orchestrator.js +11 -28
  19. package/dist/proxy/orchestration/resilience.d.ts +1 -3
  20. package/dist/proxy/orchestration/resilience.js +2 -17
  21. package/dist/proxy/orchestration/scope.d.ts +1 -1
  22. package/dist/proxy/orchestration/scope.js +2 -2
  23. package/dist/proxy/transport/http.d.ts +2 -14
  24. package/dist/proxy/transport/http.js +2 -24
  25. package/dist/proxy/transport/stream.d.ts +3 -56
  26. package/dist/proxy/transport/stream.js +44 -97
  27. package/dist/proxy/transport/transport-fn.d.ts +1 -2
  28. package/dist/proxy/transport/transport-fn.js +3 -3
  29. package/frontend-dist/assets/AuthLayout-jELzICkx.js +1 -0
  30. package/frontend-dist/assets/Card-uC_v0CEa.js +1 -0
  31. package/frontend-dist/assets/CardContent-CP3OiCj4.js +1 -0
  32. package/frontend-dist/assets/CardTitle-DGxuW5DZ.js +1 -0
  33. package/frontend-dist/assets/CascadingModelSelect-Dzk7rxIN.js +1 -0
  34. package/frontend-dist/assets/Checkbox-C1aVqGdC.js +1 -0
  35. package/frontend-dist/assets/CollapsibleContent-pBG4UkLo.js +1 -0
  36. package/frontend-dist/assets/CollapsibleTrigger-D5TkgXmz.js +1 -0
  37. package/frontend-dist/assets/ConcurrencyControl-5GweS-rY.js +1 -0
  38. package/frontend-dist/assets/Dashboard-wjd3d3qk.js +3 -0
  39. package/frontend-dist/assets/{Input-DRF4ONbF.js → Input-DMDfXTXB.js} +1 -1
  40. package/frontend-dist/assets/Label-BQXea0mo.js +1 -0
  41. package/frontend-dist/assets/Login-DNpCjxrY.js +1 -0
  42. package/frontend-dist/assets/Logs-BuL2Z0sF.js +1 -0
  43. package/frontend-dist/assets/ModelMappings-DeRhu-2N.js +1 -0
  44. package/frontend-dist/assets/Monitor-V30dnACo.js +1 -0
  45. package/frontend-dist/assets/Providers-BkkQhSTb.js +1 -0
  46. package/frontend-dist/assets/ProxyEnhancement-DjgebwfU.js +1 -0
  47. package/frontend-dist/assets/QuickSetup-BTVjEiU7.js +1 -0
  48. package/frontend-dist/assets/RetryRules-DFBHBG-B.js +1 -0
  49. package/frontend-dist/assets/RouterKeys-DZADvMfh.js +1 -0
  50. package/frontend-dist/assets/{RovingFocusItem-BIoz-v9k.js → RovingFocusItem-5H5eE6G2.js} +1 -1
  51. package/frontend-dist/assets/Schedules-DUubZ2uN.js +1 -0
  52. package/frontend-dist/assets/Separator-BqIs_Dy3.js +1 -0
  53. package/frontend-dist/assets/Settings-CO59WLOZ.js +6 -0
  54. package/frontend-dist/assets/Setup-Br7JZKNp.js +1 -0
  55. package/frontend-dist/assets/Skeleton-gVyjaP-y.js +1 -0
  56. package/frontend-dist/assets/Switch-D1ER0j6H.js +1 -0
  57. package/frontend-dist/assets/TableHeader-MqyrNSsx.js +1 -0
  58. package/frontend-dist/assets/TabsTrigger-DdjWJbUq.js +1 -0
  59. package/frontend-dist/assets/UnifiedRequestDialog-DRthlI6j.js +3 -0
  60. package/frontend-dist/assets/{VisuallyHiddenInput-Dz0c537Q.js → VisuallyHiddenInput-DrNFhnVL.js} +1 -1
  61. package/frontend-dist/assets/arrow-down-BFgGYafs.js +1 -0
  62. package/frontend-dist/assets/badge-Db4OYMEf.js +1 -0
  63. package/frontend-dist/assets/{button-DhbTyZqO.js → button-BBiWml8B.js} +2 -2
  64. package/frontend-dist/assets/chevron-right-DYwStkJr.js +1 -0
  65. package/frontend-dist/assets/dialog-DRYeWncC.js +1 -0
  66. package/frontend-dist/assets/{image-BAKOQH7r.js → image-zYdpUIEA.js} +1 -1
  67. package/frontend-dist/assets/index-DTujoAWx.js +58 -0
  68. package/frontend-dist/assets/index-DyQ39g4W.css +1 -0
  69. package/frontend-dist/assets/model-patches-DIy-rFuq.js +1 -0
  70. package/frontend-dist/assets/{pencil-CQiZ13On.js → pencil-C3-MFg-d.js} +1 -1
  71. package/frontend-dist/assets/plus-xmIDnujf.js +1 -0
  72. package/frontend-dist/assets/quickSetup-CqxQRMCR.js +1 -0
  73. package/frontend-dist/assets/quickSetup-DplqYrvf.js +1 -0
  74. package/frontend-dist/assets/search-BxNrTsG8.js +1 -0
  75. package/frontend-dist/assets/{sparkles-o5rM_OIC.js → sparkles-B5RWZZuf.js} +1 -1
  76. package/frontend-dist/assets/transform-domain-KBixlLXR.js +1 -0
  77. package/frontend-dist/assets/{trash-2-DfV00PQC.js → trash-2-Dn3T5-Z1.js} +1 -1
  78. package/frontend-dist/assets/{useClipboard-BEGcEu2g.js → useClipboard-Bx3CrPal.js} +1 -1
  79. package/frontend-dist/assets/useLogRetention-CdccNhYN.js +1 -0
  80. package/frontend-dist/assets/{useProviderGroups-CpH380OR.js → useProviderGroups-Og5FpCPe.js} +1 -1
  81. package/frontend-dist/index.html +3 -3
  82. package/package.json +1 -1
  83. package/frontend-dist/assets/AuthLayout-CNJ18LiO.js +0 -1
  84. package/frontend-dist/assets/Card-DHdWC9Sr.js +0 -1
  85. package/frontend-dist/assets/CardContent-D3XiSLZZ.js +0 -1
  86. package/frontend-dist/assets/CardTitle-ouEnIzFR.js +0 -1
  87. package/frontend-dist/assets/CascadingModelSelect-uCR_78CB.js +0 -1
  88. package/frontend-dist/assets/Checkbox-D4B5Gy-L.js +0 -1
  89. package/frontend-dist/assets/CollapsibleContent-D5uuYzAy.js +0 -1
  90. package/frontend-dist/assets/CollapsibleTrigger-7lOShWej.js +0 -1
  91. package/frontend-dist/assets/ConcurrencyControl-DSpn8cI_.js +0 -1
  92. package/frontend-dist/assets/Dashboard-DaMz3m0K.js +0 -3
  93. package/frontend-dist/assets/Label-muHpCvRx.js +0 -1
  94. package/frontend-dist/assets/Login-CuQA8bbc.js +0 -1
  95. package/frontend-dist/assets/Logs-CKO3germ.js +0 -1
  96. package/frontend-dist/assets/ModelMappings-De98UugX.js +0 -1
  97. package/frontend-dist/assets/Monitor-BzeTXX7u.js +0 -1
  98. package/frontend-dist/assets/Providers-C7TMCyLZ.js +0 -1
  99. package/frontend-dist/assets/ProxyEnhancement-CaXVxlxk.js +0 -1
  100. package/frontend-dist/assets/QuickSetup-9OsD4eib.js +0 -1
  101. package/frontend-dist/assets/RetryRules-CZtQYpr0.js +0 -1
  102. package/frontend-dist/assets/RouterKeys-WAbHBrzu.js +0 -1
  103. package/frontend-dist/assets/Schedules-DgxMv_wm.js +0 -1
  104. package/frontend-dist/assets/Separator-_gcj_6Dd.js +0 -1
  105. package/frontend-dist/assets/Settings-w33AM_0F.js +0 -6
  106. package/frontend-dist/assets/Setup-D6c5svHh.js +0 -1
  107. package/frontend-dist/assets/Skeleton-wP01Qhzi.js +0 -1
  108. package/frontend-dist/assets/Switch-BnSoCbqK.js +0 -1
  109. package/frontend-dist/assets/TableHeader-oSu5tayf.js +0 -1
  110. package/frontend-dist/assets/TabsTrigger-CzLaOeN9.js +0 -1
  111. package/frontend-dist/assets/UnifiedRequestDialog-lCG2BxB4.js +0 -3
  112. package/frontend-dist/assets/arrow-down-DBlAmBEr.js +0 -1
  113. package/frontend-dist/assets/badge-qilWWy3M.js +0 -1
  114. package/frontend-dist/assets/chevron-right-B1eJ5usR.js +0 -1
  115. package/frontend-dist/assets/dialog-J16vWuXK.js +0 -1
  116. package/frontend-dist/assets/index-BoaXEmuZ.js +0 -58
  117. package/frontend-dist/assets/index-Db9D0WPf.css +0 -1
  118. package/frontend-dist/assets/model-patches-B47btKty.js +0 -1
  119. package/frontend-dist/assets/plus-BVJPX-4z.js +0 -1
  120. package/frontend-dist/assets/quickSetup-jgJgPUcH.js +0 -1
  121. package/frontend-dist/assets/quickSetup-qTjp3Z6J.js +0 -1
  122. package/frontend-dist/assets/search-DzYxIOWW.js +0 -1
  123. package/frontend-dist/assets/transform-domain-DczpyJVT.js +0 -1
  124. package/frontend-dist/assets/useLogRetention-BT7mqSLb.js +0 -1
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Q as n,Qt as r,R as i,U as ee,X as a,Y as te,Yt as o,at as s,bt as c,et as l,gt as ne,it as u,j as d,jt as f,n as p,nt as m,ot as h,qt as g,tt as _,vt as v,zt as y}from"./button-BBiWml8B.js";import{t as re}from"./pencil-C3-MFg-d.js";import{t as ie}from"./plus-xmIDnujf.js";import{t as ae}from"./search-BxNrTsG8.js";import{t as oe}from"./trash-2-Dn3T5-Z1.js";import{t as se}from"./Checkbox-C1aVqGdC.js";import{a as b,n as x,o as S,r as C,t as w}from"./dialog-DRYeWncC.js";import{t as T}from"./Label-BQXea0mo.js";import{t as ce}from"./Switch-D1ER0j6H.js";import{Ct as le,a as E,c as ue,d as de,gt as D,l as fe,lt as pe,o as me,p as he,s as ge,u as _e,ut as ve,yt as O}from"./index-DTujoAWx.js";import{t as k}from"./badge-Db4OYMEf.js";import{t as A}from"./Input-DMDfXTXB.js";import{t as ye}from"./Card-uC_v0CEa.js";import{a as be,i as j,n as M,o as xe,r as N,t as Se}from"./TableHeader-MqyrNSsx.js";import{t as Ce}from"./useClipboard-Bx3CrPal.js";import{t as P}from"./_plugin-vue_export-helper-BH2M0_bF.js";var we=i(`shield-check`,[[`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`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Te=i(`shield-x`,[[`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`}],[`path`,{d:`m14.5 9.5-5 5`,key:`17q4r4`}],[`path`,{d:`m9.5 9.5 5 5`,key:`18nt4w`}]]),Ee={class:`page`},De={class:`flex items-center justify-between mb-4`},Oe={class:`text-base font-semibold text-foreground`},ke={class:`flex gap-6 px-4 py-3 mb-3 rounded-lg bg-card border border-input`},Ae={class:`flex flex-col gap-0.5`},je={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Me={class:`text-xl font-semibold leading-none font-mono`},Ne={class:`flex flex-col gap-0.5`},Pe={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Fe={class:`text-xl font-semibold leading-none font-mono text-primary`},Ie={class:`flex flex-col gap-0.5`},Le={class:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground`},Re={class:`text-xl font-semibold leading-none font-mono`},ze={class:`mb-3`},Be={class:`relative max-w-[280px]`},Ve={class:`font-medium text-sm max-w-[200px] truncate block`},He={class:`flex items-center gap-1.5`},Ue={key:0,class:`font-mono text-xs font-medium break-all`},We={class:`font-mono text-xs font-medium`},Ge={class:`font-mono text-xs text-muted-foreground/40 tracking-wider`},Ke={class:`flex items-center gap-1 flex-wrap`},qe={class:`flex items-center gap-1.5`},Je={class:`text-xs text-muted-foreground`},Ye={class:`font-mono text-[11px] text-muted-foreground/50`},Xe={class:`flex items-center justify-end gap-0.5`},Ze={class:`text-muted-foreground text-sm`},Qe={key:0,class:`text-muted-foreground/50 text-xs mt-1`},$e={key:0,class:`text-xs text-destructive mt-1`},et={class:`text-[11px] text-muted-foreground/50 mb-2`},tt={class:`border rounded-md bg-muted/30 p-2`},nt={key:0,class:`flex flex-wrap gap-1 mb-2`},rt={class:`max-h-[200px] overflow-y-auto space-y-0.5`},it={class:`font-mono text-[11px]`},at={key:0,class:`text-muted-foreground text-xs text-center py-3`},ot={key:0,class:`flex items-center gap-2.5`},st={class:`space-y-3`},ct={class:`rounded-md border border-primary/25 bg-primary/10 p-3`},lt={class:`flex items-center gap-2`},ut={class:`font-mono text-xs font-medium break-all flex-1`},dt={class:`flex items-center gap-1.5 mt-2 text-warning text-[11px]`},F=2,ft=14,I=2e3,L=P(h({__name:`RouterKeys`,setup(i){let{t:h}=ee(),P=`•`.repeat(ft),L=y([]),R=y([]),z=y(``),B=y(new Set),V=y(null),H=y(!1),U=y(!1),W=y(null),G=y(null),K=y(``),q=y(!1),J=y(``),Y=y({name:``,allowed_models:[],is_active:!0}),X=y({}),pt=n(()=>L.value.filter(e=>e.is_active).length),mt=n(()=>L.value.filter(e=>e.allowed_models&&e.allowed_models.length>0).length),Z=n(()=>{let e=z.value.toLowerCase();return e?L.value.filter(t=>t.name.toLowerCase().includes(e)||t.key&&t.key.toLowerCase().includes(e)):L.value}),ht=n(()=>{let e=J.value.toLowerCase();return e?R.value.filter(t=>t.toLowerCase().includes(e)):R.value});function gt(e){let t=`w-1.5 h-1.5 rounded-full shrink-0`;return e?`${t} bg-success shadow-[0_0_6px_var(--color-success)/0.4]`:`${t} bg-muted-foreground/30`}async function _t(e){let t=e.key;t&&await Q(t)&&(V.value=e.id,setTimeout(()=>{V.value===e.id&&(V.value=null)},I))}async function vt(){await Q(K.value)&&(q.value=!0,setTimeout(()=>{q.value=!1},I))}let{copy:Q}=Ce();function yt(e){let t=B.value;t.has(e)?t.delete(e):t.add(e),B.value=new Set(t)}function bt(e,t){let n=Y.value.allowed_models;if(t===!0&&!n.includes(e))n.push(e);else if(!t){let t=n.indexOf(e);t>=0&&n.splice(t,1)}}function xt(e){let t=Y.value.allowed_models,n=t.indexOf(e);n>=0&&t.splice(n,1)}function St(){G.value=null,Y.value={name:``,allowed_models:[],is_active:!0},J.value=``,X.value={},H.value=!0}function Ct(e){G.value=e,Y.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},J.value=``,X.value={},H.value=!0}function wt(e){W.value=e}async function Tt(){let e={};if(Y.value.name.trim()||(e.name=h(`routerKeys.nameRequired`)),X.value=e,!(Object.keys(e).length>0))try{if(G.value)await t.updateRouterKey(G.value.id,{name:Y.value.name,allowed_models:Y.value.allowed_models.length>0?Y.value.allowed_models:null,is_active:+!!Y.value.is_active}),H.value=!1,await $();else{let e=await t.createRouterKey({name:Y.value.name,allowed_models:Y.value.allowed_models.length>0?Y.value.allowed_models:null});H.value=!1,K.value=e.key,q.value=!1,U.value=!0,await $()}}catch(e){console.error(`routerKeys.save:`,e),E.error(d(e,h(`routerKeys.saveFailed`)))}}async function Et(e){try{await t.updateRouterKey(e.id,{is_active:+!e.is_active}),await $()}catch(e){console.error(`routerKeys.toggleActive:`,e),E.error(d(e,h(`routerKeys.toggleActiveFailed`)))}}async function Dt(){let e=W.value;if(e){W.value=null;try{await t.deleteRouterKey(e.id),await $()}catch(e){console.error(`routerKeys.delete:`,e),E.error(d(e,h(`routerKeys.deleteFailed`)))}}}async function $(){try{let e=await t.getRouterKeysInit();L.value=e.keys,R.value=e.available_models}catch(e){console.error(`routerKeys.load:`,e),E.error(d(e,h(`routerKeys.loadFailed`)))}}return ne($),(t,n)=>(v(),m(`div`,Ee,[e(`div`,De,[e(`h2`,Oe,r(g(h)(`routerKeys.title`)),1),s(g(p),{size:`sm`,onClick:St,class:`flex items-center gap-1.5`},{default:f(()=>[s(g(ie),{class:`w-3.5 h-3.5`}),u(` `+r(g(h)(`routerKeys.createKey`)),1)]),_:1})]),e(`div`,ke,[e(`div`,Ae,[e(`span`,je,r(g(h)(`routerKeys.statTotal`)),1),e(`span`,Me,r(L.value.length),1)]),n[10]||=e(`div`,{class:`w-px self-stretch bg-border`},null,-1),e(`div`,Ne,[e(`span`,Pe,r(g(h)(`routerKeys.statActive`)),1),e(`span`,Fe,r(pt.value),1)]),n[11]||=e(`div`,{class:`w-px self-stretch bg-border`},null,-1),e(`div`,Ie,[e(`span`,Le,r(g(h)(`routerKeys.statWhitelist`)),1),e(`span`,Re,r(mt.value),1)])]),e(`div`,ze,[e(`div`,Be,[s(g(ae),{class:`absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-muted-foreground/50 pointer-events-none`}),s(g(A),{modelValue:z.value,"onUpdate:modelValue":n[0]||=e=>z.value=e,placeholder:g(h)(`routerKeys.searchPlaceholder`),class:`h-[30px] pl-[30px] text-[13px]`},null,8,[`modelValue`,`placeholder`])])]),s(g(ye),{flush:``},{default:f(()=>[s(g(xe),null,{default:f(()=>[s(g(Se),null,{default:f(()=>[s(g(N),null,{default:f(()=>[s(g(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.name`)),1)]),_:1}),s(g(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.key`)),1)]),_:1}),s(g(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.whitelist`)),1)]),_:1}),s(g(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.status`)),1)]),_:1}),s(g(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.createdAt`)),1)]),_:1}),s(g(M),{class:`text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60 text-right`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),s(g(be),null,{default:f(()=>[(v(!0),m(a,null,c(Z.value,t=>(v(),l(g(N),{key:t.id,class:o({"opacity-40":!t.is_active})},{default:f(()=>[s(g(j),null,{default:f(()=>[e(`span`,Ve,r(t.name),1)]),_:2},1024),s(g(j),null,{default:f(()=>[e(`div`,He,[B.value.has(t.id)?(v(),m(`span`,Ue,r(t.key),1)):(v(),m(a,{key:1},[e(`span`,We,r(t.key_prefix),1),e(`span`,Ge,r(g(P)),1)],64)),s(g(p),{variant:`ghost`,size:`icon`,class:`h-6 w-6 shrink-0`,onClick:e=>_t(t)},{default:f(()=>[V.value===t.id?(v(),l(g(O),{key:0,class:`w-3.5 h-3.5 text-success`})):(v(),l(g(D),{key:1,class:`w-3.5 h-3.5`}))]),_:2},1032,[`onClick`]),s(g(p),{variant:`ghost`,size:`sm`,class:`h-6 px-1.5 text-[11px] text-muted-foreground shrink-0`,onClick:e=>yt(t.id)},{default:f(()=>[u(r(B.value.has(t.id)?g(h)(`routerKeys.hideKey`):g(h)(`routerKeys.showKey`)),1)]),_:2},1032,[`onClick`])])]),_:2},1024),s(g(j),null,{default:f(()=>[e(`div`,Ke,[t.allowed_models&&t.allowed_models.length>0?(v(),m(a,{key:0},[(v(!0),m(a,null,c(t.allowed_models.slice(0,F),e=>(v(),l(g(k),{key:e,variant:`outline`,class:`font-mono text-[10px] font-medium px-1.5 py-0 h-5`},{default:f(()=>[u(r(e),1)]),_:2},1024))),128)),t.allowed_models.length>F?(v(),l(g(k),{key:0,class:`text-[10px] font-medium px-1.5 py-0 h-5`},{default:f(()=>[u(r(g(h)(`routerKeys.moreModels`,{count:t.allowed_models.length-F})),1)]),_:2},1024)):_(``,!0)],64)):(v(),l(g(k),{key:1,variant:`secondary`,class:`text-[10px] font-semibold px-1.5 py-0 h-5`},{default:f(()=>[u(r(g(h)(`common.allModels`)),1)]),_:1}))])]),_:2},1024),s(g(j),null,{default:f(()=>[e(`div`,qe,[e(`span`,{class:o(gt(t.is_active))},null,2),e(`span`,Je,r(t.is_active?g(h)(`common.active`):g(h)(`common.inactive`)),1)])]),_:2},1024),s(g(j),null,{default:f(()=>[e(`span`,Ye,r(g(le)(t.created_at)),1)]),_:2},1024),s(g(j),{class:`text-right`},{default:f(()=>[e(`div`,Xe,[s(g(p),{variant:`ghost`,size:`icon`,class:`h-7 w-7`,onClick:e=>Ct(t)},{default:f(()=>[s(g(re),{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`]),s(g(p),{variant:`ghost`,size:`icon`,class:`h-7 w-7`,onClick:e=>Et(t)},{default:f(()=>[t.is_active?(v(),l(g(we),{key:0,class:`w-3.5 h-3.5 text-success`})):(v(),l(g(Te),{key:1,class:`w-3.5 h-3.5 text-muted-foreground`}))]),_:2},1032,[`onClick`]),s(g(p),{variant:`ghost`,size:`icon`,class:`h-7 w-7 text-muted-foreground hover:text-destructive`,onClick:e=>wt(t)},{default:f(()=>[s(g(oe),{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1032,[`class`]))),128)),Z.value.length===0?(v(),l(g(N),{key:0},{default:f(()=>[s(g(j),{colspan:`6`,class:`text-center py-12`},{default:f(()=>[e(`p`,Ze,r(L.value.length===0?g(h)(`routerKeys.noKeys`):g(h)(`routerKeys.noMatch`)),1),L.value.length===0?(v(),m(`p`,Qe,r(g(h)(`routerKeys.noKeysHint`)),1)):_(``,!0)]),_:1})]),_:1})):_(``,!0)]),_:1})]),_:1})]),_:1}),s(g(S),{open:H.value,"onUpdate:open":n[6]||=e=>H.value=e},{default:f(()=>[s(g(b),{class:`sm:max-w-lg`},{default:f(()=>[s(g(x),null,{default:f(()=>[s(g(w),null,{default:f(()=>[u(r(G.value?g(h)(`routerKeys.editKey`):g(h)(`routerKeys.createKey`)),1)]),_:1})]),_:1}),e(`form`,{onSubmit:te(Tt,[`prevent`]),class:`space-y-4`},[e(`div`,null,[s(g(T),{class:`text-xs font-medium text-muted-foreground mb-1 block`},{default:f(()=>[u(r(g(h)(`routerKeys.tableHeaders.name`)),1)]),_:1}),s(g(A),{modelValue:Y.value.name,"onUpdate:modelValue":n[1]||=e=>Y.value.name=e,placeholder:g(h)(`routerKeys.placeholder.name`),onInput:n[2]||=e=>delete X.value.name},null,8,[`modelValue`,`placeholder`]),X.value.name?(v(),m(`p`,$e,r(X.value.name),1)):_(``,!0)]),e(`div`,null,[s(g(T),{class:`text-xs font-medium text-muted-foreground mb-1 block`},{default:f(()=>[u(r(g(h)(`routerKeys.whitelistLabel`)),1)]),_:1}),e(`p`,et,r(g(h)(`routerKeys.whitelistHint`)),1),e(`div`,tt,[s(g(A),{modelValue:J.value,"onUpdate:modelValue":n[3]||=e=>J.value=e,placeholder:g(h)(`routerKeys.modelFilterPlaceholder`),class:`h-7 text-xs border-0 border-b rounded-none mb-2 bg-transparent focus-visible:ring-0`},null,8,[`modelValue`,`placeholder`]),Y.value.allowed_models.length>0?(v(),m(`div`,nt,[(v(!0),m(a,null,c(Y.value.allowed_models,e=>(v(),l(g(k),{key:e,variant:`secondary`,class:`font-mono text-[10px] font-medium px-1.5 py-0 h-5 gap-1`},{default:f(()=>[u(r(e)+` `,1),s(g(pe),{class:`w-3 h-3 cursor-pointer hover:text-destructive shrink-0`,onClick:t=>xt(e)},null,8,[`onClick`])]),_:2},1024))),128))])):_(``,!0),e(`div`,rt,[(v(!0),m(a,null,c(ht.value,t=>(v(),l(g(T),{key:t,class:`flex items-center gap-2 cursor-pointer px-1.5 py-1 rounded hover:bg-muted text-xs font-normal`},{default:f(()=>[s(g(se),{"model-value":Y.value.allowed_models.includes(t),"onUpdate:modelValue":e=>bt(t,e)},null,8,[`model-value`,`onUpdate:modelValue`]),e(`span`,it,r(t),1)]),_:2},1024))),128)),R.value.length===0?(v(),m(`p`,at,r(g(h)(`routerKeys.noModels`)),1)):_(``,!0)])])]),G.value?(v(),m(`div`,ot,[s(g(ce),{"model-value":Y.value.is_active,"onUpdate:modelValue":n[4]||=e=>Y.value.is_active=e},null,8,[`model-value`]),s(g(T),{class:`text-sm`},{default:f(()=>[u(r(Y.value.is_active?g(h)(`common.active`):g(h)(`common.inactive`)),1)]),_:1})])):_(``,!0),s(g(C),null,{default:f(()=>[s(g(p),{type:`button`,variant:`outline`,onClick:n[5]||=e=>H.value=!1},{default:f(()=>[u(r(g(h)(`common.cancel`)),1)]),_:1}),s(g(p),{type:`submit`},{default:f(()=>[u(r(g(h)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),s(g(S),{open:U.value,"onUpdate:open":n[8]||=e=>U.value=e},{default:f(()=>[s(g(b),{class:`sm:max-w-lg`},{default:f(()=>[s(g(x),null,{default:f(()=>[s(g(w),null,{default:f(()=>[u(r(g(h)(`routerKeys.keyCreated`)),1)]),_:1})]),_:1}),e(`div`,st,[e(`div`,ct,[e(`div`,lt,[e(`span`,ut,r(K.value),1),s(g(p),{variant:`ghost`,size:`icon`,class:`h-7 w-7 shrink-0`,onClick:vt},{default:f(()=>[q.value?(v(),l(g(O),{key:0,class:`w-3.5 h-3.5 text-success`})):(v(),l(g(D),{key:1,class:`w-3.5 h-3.5`}))]),_:1})]),e(`div`,dt,[s(g(ve),{class:`w-3 h-3 shrink-0`}),u(` `+r(g(h)(`routerKeys.keyShownOnce`)),1)])])]),s(g(C),null,{default:f(()=>[s(g(p),{onClick:n[7]||=e=>U.value=!1},{default:f(()=>[u(r(g(h)(`common.close`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),s(g(he),{open:!!W.value,"onUpdate:open":n[9]||=e=>{e||(W.value=null)}},{default:f(()=>[s(g(_e),null,{default:f(()=>[s(g(ge),null,{default:f(()=>[s(g(me),null,{default:f(()=>[u(r(g(h)(`routerKeys.confirmDeleteTitle`)),1)]),_:1}),s(g(fe),null,{default:f(()=>[u(r(g(h)(`routerKeys.confirmDeleteDesc`,{name:W.value?.name})),1)]),_:1})]),_:1}),s(g(ue),null,{default:f(()=>[s(g(de),null,{default:f(()=>[u(r(g(h)(`common.cancel`)),1)]),_:1}),s(g(p),{variant:`destructive`,onClick:Dt},{default:f(()=>[u(r(g(h)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-32764687`]]);export{L as default};
@@ -1 +1 @@
1
- import{$ as e,Bt as t,Gt as n,Jt as r,Mt as i,St as a,_t as o,h as s,ht as c,i as l,ot as u,st as d,tt as f,vt as p,yt as m}from"./button-DhbTyZqO.js";import{G as h,V as g,X as _,Y as v,k as y}from"./index-BoaXEmuZ.js";var b=`rovingFocusGroup.onEntryFocus`,x={bubbles:!1,cancelable:!0},S={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function C(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function w(e,t,n){let r=C(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return S[r]}function T(e,t=!1){let n=v();for(let r of e)if(r===n||(r.focus({preventScroll:t}),v()!==n))return}function E(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[D,O]=_(`RovingFocusGroup`),k=d({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:o,emit:c}){let d=e,p=c,{loop:g,orientation:_,dir:v}=n(d),S=h(v),C=s(d,`currentTabStopId`,p,{defaultValue:d.defaultCurrentTabStopId,passive:d.currentTabStopId===void 0}),w=t(!1),E=t(!1),D=t(0),{getItems:k,CollectionSlot:A}=y({isProvider:!0});function j(e){let t=!E.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!w.value){let t=new CustomEvent(b,x);if(e.currentTarget.dispatchEvent(t),p(`entryFocus`,t),!t.defaultPrevented){let e=k().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);T([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===C.value),...e].filter(Boolean),d.preventScrollOnEntryFocus)}}E.value=!1}function M(){setTimeout(()=>{E.value=!1},1)}return o({getItems:k}),O({loop:g,dir:S,orientation:_,currentTabStopId:C,onItemFocus:e=>{C.value=e},onItemShiftTab:()=>{w.value=!0},onFocusableItemAdd:()=>{D.value++},onFocusableItemRemove:()=>{D.value--}}),(e,t)=>(m(),f(r(A),null,{default:i(()=>[u(r(l),{tabindex:w.value||D.value===0?-1:0,"data-orientation":r(_),as:e.as,"as-child":e.asChild,dir:r(S),style:{outline:`none`},onMousedown:t[0]||=e=>E.value=!0,onMouseup:M,onFocus:j,onBlur:t[1]||=e=>w.value=!1},{default:i(()=>[a(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),A=d({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=t,s=D(),d=g(),h=e(()=>n.tabStopId||d),_=e(()=>s.currentTabStopId.value===h.value),{getItems:v,CollectionItem:b}=y();o(()=>{n.focusable&&s.onFocusableItemAdd()}),p(()=>{n.focusable&&s.onFocusableItemRemove()});function x(e){if(e.key===`Tab`&&e.shiftKey){s.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=w(e,s.orientation.value,s.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!n.allowShiftKey&&e.shiftKey)return;e.preventDefault();let r=[...v().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)r.reverse();else if(t===`prev`||t===`next`){t===`prev`&&r.reverse();let n=r.indexOf(e.currentTarget);r=s.loop.value?E(r,n+1):r.slice(n+1)}c(()=>T(r))}}return(e,t)=>(m(),f(r(b),null,{default:i(()=>[u(r(l),{tabindex:_.value?0:-1,"data-orientation":r(s).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?r(s).onItemFocus(h.value):t.preventDefault()},onFocus:t[1]||=e=>r(s).onItemFocus(h.value),onKeydown:x},{default:i(()=>[a(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{k as n,A as t};
1
+ import{Q as e,Wt as t,_t as n,at as r,et as i,gt as a,h as o,i as s,jt as c,mt as l,ot as u,qt as d,vt as f,xt as p,zt as m}from"./button-BBiWml8B.js";import{G as h,V as g,X as _,Y as v,k as y}from"./index-DTujoAWx.js";var b=`rovingFocusGroup.onEntryFocus`,x={bubbles:!1,cancelable:!0},S={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function C(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function w(e,t,n){let r=C(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return S[r]}function T(e,t=!1){let n=v();for(let r of e)if(r===n||(r.focus({preventScroll:t}),v()!==n))return}function E(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var[D,O]=_(`RovingFocusGroup`),k=u({__name:`RovingFocusGroup`,props:{orientation:{type:String,required:!1,default:void 0},dir:{type:String,required:!1},loop:{type:Boolean,required:!1,default:!1},currentTabStopId:{type:[String,null],required:!1},defaultCurrentTabStopId:{type:String,required:!1},preventScrollOnEntryFocus:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`entryFocus`,`update:currentTabStopId`],setup(e,{expose:n,emit:a}){let l=e,u=a,{loop:g,orientation:_,dir:v}=t(l),S=h(v),C=o(l,`currentTabStopId`,u,{defaultValue:l.defaultCurrentTabStopId,passive:l.currentTabStopId===void 0}),w=m(!1),E=m(!1),D=m(0),{getItems:k,CollectionSlot:A}=y({isProvider:!0});function j(e){let t=!E.value;if(e.currentTarget&&e.target===e.currentTarget&&t&&!w.value){let t=new CustomEvent(b,x);if(e.currentTarget.dispatchEvent(t),u(`entryFocus`,t),!t.defaultPrevented){let e=k().map(e=>e.ref).filter(e=>e.dataset.disabled!==``);T([e.find(e=>e.getAttribute(`data-active`)===``),e.find(e=>e.getAttribute(`data-highlighted`)===``),e.find(e=>e.id===C.value),...e].filter(Boolean),l.preventScrollOnEntryFocus)}}E.value=!1}function M(){setTimeout(()=>{E.value=!1},1)}return n({getItems:k}),O({loop:g,dir:S,orientation:_,currentTabStopId:C,onItemFocus:e=>{C.value=e},onItemShiftTab:()=>{w.value=!0},onFocusableItemAdd:()=>{D.value++},onFocusableItemRemove:()=>{D.value--}}),(e,t)=>(f(),i(d(A),null,{default:c(()=>[r(d(s),{tabindex:w.value||D.value===0?-1:0,"data-orientation":d(_),as:e.as,"as-child":e.asChild,dir:d(S),style:{outline:`none`},onMousedown:t[0]||=e=>E.value=!0,onMouseup:M,onFocus:j,onBlur:t[1]||=e=>w.value=!1},{default:c(()=>[p(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`as`,`as-child`,`dir`])]),_:3}))}}),A=u({__name:`RovingFocusItem`,props:{tabStopId:{type:String,required:!1},focusable:{type:Boolean,required:!1,default:!0},active:{type:Boolean,required:!1},allowShiftKey:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let o=t,u=D(),m=g(),h=e(()=>o.tabStopId||m),_=e(()=>u.currentTabStopId.value===h.value),{getItems:v,CollectionItem:b}=y();a(()=>{o.focusable&&u.onFocusableItemAdd()}),n(()=>{o.focusable&&u.onFocusableItemRemove()});function x(e){if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=w(e,u.orientation.value,u.dir.value);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||!o.allowShiftKey&&e.shiftKey)return;e.preventDefault();let n=[...v().map(e=>e.ref).filter(e=>e.dataset.disabled!==``)];if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop.value?E(n,r+1):n.slice(r+1)}l(()=>T(n))}}return(e,t)=>(f(),i(d(b),null,{default:c(()=>[r(d(s),{tabindex:_.value?0:-1,"data-orientation":d(u).orientation.value,"data-active":e.active?``:void 0,"data-disabled":e.focusable?void 0:``,as:e.as,"as-child":e.asChild,onMousedown:t[0]||=t=>{e.focusable?d(u).onItemFocus(h.value):t.preventDefault()},onFocus:t[1]||=e=>d(u).onItemFocus(h.value),onKeydown:x},{default:c(()=>[p(e.$slots,`default`)]),_:3},8,[`tabindex`,`data-orientation`,`data-active`,`data-disabled`,`as`,`as-child`])]),_:3}))}});export{k as n,A as t};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,Q as n,Qt as r,U as i,X as a,Y as o,Yt as s,Zt as c,at as l,bt as u,et as d,gt as ee,it as f,j as p,jt as m,n as h,nt as g,ot as _,qt as v,tt as y,vt as b,zt as x}from"./button-BBiWml8B.js";import{n as S,t as te}from"./ConcurrencyControl-5GweS-rY.js";import{t as C}from"./chevron-right-DYwStkJr.js";import{t as w}from"./pencil-C3-MFg-d.js";import{t as ne}from"./plus-xmIDnujf.js";import{t as T}from"./trash-2-Dn3T5-Z1.js";import{a as E,n as re,o as ie,r as ae,t as oe}from"./dialog-DRYeWncC.js";import{t as D}from"./Label-BQXea0mo.js";import{t as se}from"./Switch-D1ER0j6H.js";import{_ as ce,a as O,c as le,d as ue,g as de,h as fe,l as pe,m as me,o as he,p as ge,s as _e,u as ve,v as k}from"./index-DTujoAWx.js";import{t as ye}from"./Input-DMDfXTXB.js";import{a as be,i as A,n as j,o as xe,r as M,t as Se}from"./TableHeader-MqyrNSsx.js";import{t as Ce}from"./useProviderGroups-Og5FpCPe.js";import{n as we,r as N,t as P}from"./transform-domain-KBixlLXR.js";var F=Array.from({length:5},(e,t)=>t+1);function Te(){return{name:``,week:[...F],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],concurrency_mode:`auto`,max_concurrency:N.max_concurrency,queue_timeout_ms:N.queue_timeout_ms,max_queue_size:N.max_queue_size}}function Ee(){return{injectHeaders:``,dropFields:``,requestDefaults:``}}function I(e){try{return JSON.parse(e)}catch{return[]}}function De(e,t){let n=I(e).sort((e,t)=>e-t);return n.length===7?t(`schedules.everyDay`):n.length===5&&n[0]===1&&n[4]===5?t(`schedules.weekdays`):n.length===2&&n[0]===0&&n[1]===6?t(`schedules.weekend`):null}function Oe(e,t){try{return(JSON.parse(e).targets??[]).map(e=>({provider:t.find(t=>t.id===e.provider_id)?.name??e.provider_id,model:e.backend_model??``}))}catch{return[]}}function ke(e){return`${e}`.padStart(2,`0`)+`:00`}function Ae(e,t){let n=[],r=[{backend_model:``,provider_id:``}];try{let t=JSON.parse(e.mapping_rule);t.targets?.length&&(r=t.targets)}catch{n.push(t(`schedules.parseRuleFailed`))}let i=[...F];try{i=JSON.parse(e.week)}catch{n.push(t(`schedules.parseWeekFailed`))}let a=`auto`,o=N.max_concurrency,s=N.queue_timeout_ms,c=N.max_queue_size;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);a=t.mode||`auto`,t.max_concurrency&&(o=t.max_concurrency),t.queue_timeout_ms&&(s=t.queue_timeout_ms),t.max_queue_size&&(c=t.max_queue_size)}catch{n.push(t(`schedules.parseConcurrencyFailed`))}let l=``,u=``,d=``;if(e.transform_rule)try{let t=JSON.parse(e.transform_rule);u=(t.drop_fields||[]).join(`, `),d=t.request_defaults?JSON.stringify(t.request_defaults):``,l=t.inject_headers?JSON.stringify(t.inject_headers):``}catch{n.push(t(`schedules.parseTransformFailed`))}return{data:{form:{name:e.name,week:i,start_hour:e.start_hour,end_hour:e.end_hour,targets:r,concurrency_mode:a,max_concurrency:o,queue_timeout_ms:s,max_queue_size:c},transform:{injectHeaders:l,dropFields:u,requestDefaults:d}},warnings:n}}function je(e,t,n){let{form:r}=e,i=JSON.stringify({targets:r.targets}),a=r.concurrency_mode===`none`?null:JSON.stringify({mode:r.concurrency_mode,max_concurrency:r.max_concurrency,queue_timeout_ms:r.queue_timeout_ms,max_queue_size:r.max_queue_size});return{mapping_group_id:t,name:r.name,week:JSON.stringify(r.week),start_hour:r.start_hour,end_hour:r.end_hour,mapping_rule:i,concurrency_rule:a,transform_rule:n}}function Me(e,t){let n={};e.name.trim()||(n.name=t(`schedules.form.nameRequired`)),e.week.length===0&&(n.week=t(`schedules.form.weekRequired`)),e.start_hour>=e.end_hour&&(n.time=t(`schedules.form.timeInvalid`));for(let r of e.targets)if(!r.provider_id||!r.backend_model){n.targets=t(`schedules.form.targetRequired`);break}return n}var L={injectHeadersJsonError:`providers.transform.injectHeadersJsonError`,requestDefaultsJsonError:`providers.transform.requestDefaultsJsonError`};function Ne(e){let{rule:t,errorKey:n}=P({injectHeaders:e.injectHeaders,dropFields:e.dropFields,requestDefaults:e.requestDefaults});return{rule:t,errorKey:n?L[n]??n:null}}var R={class:`flex flex-col`},z={class:`w-7 shrink-0 text-[11px] font-medium text-muted-foreground text-right select-none`},B={class:`absolute inset-0 grid`,style:{gridTemplateColumns:`repeat(24, 1fr)`}},V={key:0,class:`truncate`},H={key:1,class:`hidden group-hover:block absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 bg-popover text-popover-foreground border rounded-md shadow-lg px-2.5 py-1.5 z-30 whitespace-nowrap text-[11px]`},U={class:`font-semibold whitespace-nowrap`},W={class:`font-mono text-[11px] text-muted-foreground whitespace-nowrap`},G={class:`flex items-center gap-2 mt-0.5`},K={class:`flex-1 grid`,style:{gridTemplateColumns:`repeat(24, 1fr)`}},q=24,J=5,Y=3,X=100,Z=7,Pe=10,Fe=_({__name:`WeekTimeline`,props:{rules:{}},setup(t){let o=t,{t:l,te:d}=i(),ee=Z-1,f=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],p=[...F,6,0],m=[`oklch(0.68 0.13 175 / 70%)`,`oklch(0.68 0.13 175 / 50%)`,`oklch(0.68 0.13 175 / 35%)`,`oklch(0.68 0.13 175 / 25%)`],h=Array.from({length:Z},(e,t)=>t),_=Array.from({length:Math.ceil(q/Y)},(e,t)=>t*Y),x=Array.from({length:q},(e,t)=>t),S=n(()=>{let e=[[],[],[],[],[],[],[]];for(let t of o.rules)for(let n of t.days)n>=0&&n<=ee&&e[p.indexOf(n)].push(t);return e});function te(e){let t=`schedules.weekDays.${f[e]}`;return d(t)?l(t):{mon:`周一`,tue:`周二`,wed:`周三`,thu:`周四`,fri:`周五`,sat:`周六`,sun:`周日`}[f[e]]??``}function C(e){return S.value[e].length>0}function w(e){let t=e.startHour/q*X,n=(e.endHour-e.startHour)/q*X;return{left:`${t}%`,width:`${n}%`}}function ne(e){return m[o.rules.indexOf(e)%m.length]}function T(e){return e.endHour-e.startHour<J}function E(e){return e<Pe?`0${e}:00`:`${e}:00`}return(t,n)=>(b(),g(`div`,R,[(b(!0),g(a,null,u(v(h),t=>(b(),g(`div`,{key:t,class:s([`flex items-center gap-2 h-6`,{"opacity-35":!C(t)}])},[e(`div`,z,r(te(t)),1),e(`div`,{class:s([`flex-1 relative h-full rounded-sm overflow-visible`,C(t)?`bg-black/[0.06] dark:bg-white/[0.07]`:`bg-black/[0.03] dark:bg-white/[0.03]`])},[e(`div`,B,[(b(!0),g(a,null,u(v(x),e=>(b(),g(`div`,{key:e,class:`border-r border-border/30 dark:border-white/10 last:border-r-0`}))),128))]),(b(!0),g(a,null,u(S.value[t],n=>(b(),g(`div`,{key:n.name+t,class:s([`absolute top-0.5 bottom-0.5 rounded-sm flex items-center px-1 text-[10px] font-semibold overflow-hidden whitespace-nowrap cursor-default z-10 transition-[filter] duration-100 hover:z-20 hover:brightness-[1.15] group`,[n.enabled?``:`bg-transparent !border-dashed border-[1.5px] border-muted-foreground/50 text-muted-foreground/60`]]),style:c({...w(n),...n.enabled?{background:ne(n),color:`oklch(0.145 0 0)`}:{}})},[T(n)?y(``,!0):(b(),g(`span`,V,r(n.name),1)),T(n)?(b(),g(`div`,H,[e(`div`,U,r(n.name),1),e(`div`,W,r(E(n.startHour))+` - `+r(E(n.endHour)),1)])):y(``,!0)],6))),128))],2)],2))),128)),e(`div`,G,[n[0]||=e(`div`,{class:`w-7 shrink-0`},null,-1),e(`div`,K,[(b(!0),g(a,null,u(v(_),e=>(b(),g(`div`,{key:e,class:`font-mono text-[10px] text-muted-foreground text-left pl-0.5 leading-4`,style:c({gridColumn:`${e+1} / span 3`})},r(E(e)),5))),128))])])]))}}),Ie={class:`page space-y-3`},Le={class:`flex items-center justify-between`},Re={class:`flex flex-col gap-0.5`},ze={class:`text-base font-semibold text-foreground`},Be={class:`text-[11px] font-medium text-muted-foreground/60`},Ve={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},He={class:`flex bg-card border border-border rounded-lg overflow-hidden`},Ue={class:`flex-1 px-3.5 py-2 border-r border-border`},We={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Ge={class:`text-[13px] font-mono font-semibold text-foreground`},Ke={class:`flex-1 px-3.5 py-2 border-r border-border`},qe={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Je={class:`text-[13px] font-mono font-semibold text-success`},Ye={class:`flex-1 px-3.5 py-2 border-r border-border`},Xe={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},Ze={class:`text-[13px] font-mono font-semibold text-warning`},Qe={class:`flex-1 px-3.5 py-2`},$e={class:`text-[10px] font-semibold text-muted-foreground/70 uppercase tracking-wider`},et={class:`text-[13px] font-mono font-semibold text-foreground`},tt={class:`bg-card border border-border rounded-lg overflow-hidden`},nt=[`onClick`],rt={class:`font-mono text-[13px] font-semibold text-foreground shrink-0`},it={key:0,class:`font-mono text-[10px] px-[7px] py-px rounded-full bg-primary/15 text-primary`},at={key:1,class:`font-mono text-[10px] px-[7px] py-px rounded-full bg-foreground/5 text-muted-foreground`},ot={class:`flex-1 flex flex-wrap gap-1 min-w-0`},st={key:0,class:`text-[10px] text-muted-foreground/50 self-center`},ct={class:`px-4 py-3 border-t border-border`},lt={class:`text-[11px] font-semibold text-muted-foreground mb-2`},ut={class:`pl-11`},dt={key:0,class:`text-[11px] font-medium text-muted-foreground`},ft={key:1,class:`flex flex-wrap gap-1`},pt={class:`flex flex-wrap gap-1`},mt={class:`text-muted-foreground/60 font-mono text-[10px]`},ht={class:`text-muted-foreground`},gt={class:`flex items-center justify-end gap-1`},_t={key:0,class:`py-12 text-center text-xs text-muted-foreground`},vt={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},yt={class:`grid grid-cols-2 gap-3`},bt={key:0,class:`text-xs text-destructive mt-0.5`},xt={class:`flex flex-wrap gap-1.5`},St={key:0,class:`text-xs text-destructive mt-0.5`},Ct={class:`flex items-center gap-2 mb-2`},wt={class:`flex gap-1.5`},Tt={class:`grid grid-cols-2 gap-3`},Et={key:0,class:`text-xs text-destructive mt-0.5`},Dt={key:0,class:`text-xs text-destructive mt-0.5`},Ot={class:`grid grid-cols-2 gap-4`},kt={class:`border rounded-md p-3 space-y-3`},At={class:`text-xs font-medium text-muted-foreground`},jt={class:`border rounded-md p-3 space-y-3`},Mt={class:`text-xs font-medium text-muted-foreground`},Nt=_({__name:`Schedules`,setup(c){let{t:_}=i(),N=n(()=>[_(`schedules.weekDays.sun`),_(`schedules.weekDays.mon`),_(`schedules.weekDays.tue`),_(`schedules.weekDays.wed`),_(`schedules.weekDays.thu`),_(`schedules.weekDays.fri`),_(`schedules.weekDays.sat`)]),P=x(!1),F=x([]),L=x([]),R=x([]),z=x(null),B=x(!1),V=x(null),H=x(``),U=x(null),W=x(Te()),G=x({}),K=x(``),q=x(Ee()),J=n({get:()=>({mode:W.value.concurrency_mode,max_concurrency:W.value.max_concurrency,queue_timeout_ms:W.value.queue_timeout_ms,max_queue_size:W.value.max_queue_size}),set:e=>{W.value.concurrency_mode=e.mode,W.value.max_concurrency=e.max_concurrency,W.value.queue_timeout_ms=e.queue_timeout_ms,W.value.max_queue_size=e.max_queue_size}}),Y=n(()=>{let e={};for(let t of R.value)e[t.mapping_group_id]||(e[t.mapping_group_id]=[]),e[t.mapping_group_id].push(t);return e}),X=n(()=>R.value.filter(e=>e.enabled).length),Z=n(()=>R.value.filter(e=>!e.enabled).length),Pe=n(()=>{let e=new Set;for(let t of R.value)t.enabled&&I(t.week).forEach(t=>e.add(t));return e.size}),Nt=n(()=>({clientModel:F.value.find(e=>e.id===H.value)?.client_model??``,targets:W.value.targets,existing:!1,tag:`cust`,active:!0})),Pt=n(()=>Ce(L.value,{includeStreamTimeout:!1}));function Ft(e){return De(e,_)}function It(e){return Oe(e,L.value)}function Lt(e){return ke(e)}function Rt(e){let t=N.value;return I(e).map(e=>t[e]??`${e}`)}function zt(e){return(Y.value[e]??[]).map(e=>({name:e.name,days:I(e.week),startHour:e.start_hour,endHour:e.end_hour,enabled:!!e.enabled}))}function Bt(e){let t=Y.value[e]??[];return t.length>0&&t.every(e=>e.enabled)}function Vt(e){return(Y.value[e]?.length??0)>0}function Ht(e){W.value.targets=e}function Q(e,t){W.value.start_hour=e,W.value.end_hour=t,delete G.value.time}function Ut(e){z.value=z.value===e?null:e}function Wt(e){let t=W.value.week.indexOf(e);t>=0?W.value.week.splice(t,1):W.value.week.push(e),delete G.value.week}async function $(){try{R.value=await t.getSchedules()}catch(e){console.error(`schedules.loadAll:`,e),O.error(p(e,_(`schedules.loadSchedulesFailed`)))}}function Gt(e){V.value=null,H.value=e,W.value=Te(),q.value=Ee(),G.value={},K.value=``,B.value=!0}function Kt(e){V.value=e.id,H.value=e.mapping_group_id,G.value={},K.value=``;let{data:t,warnings:n}=Ae(e,_);for(let e of n)O.error(e);W.value=t.form,q.value=t.transform,B.value=!0}async function qt(){K.value=``;let e=Me(W.value,_);if(G.value=e,Object.keys(e).length>0)return;let{rule:n,errorKey:r}=Ne(q.value);if(r){O.error(_(r));return}try{let e=je({form:W.value,transform:q.value},H.value,n);V.value?await t.updateSchedule(V.value,e):await t.createSchedule(e),B.value=!1,await $()}catch(e){K.value=p(e,_(`schedules.saveFailed`))}}async function Jt(e){try{await t.toggleSchedule(e.id),await $()}catch(e){console.error(`schedules.toggle:`,e),O.error(p(e,_(`schedules.toggleFailed`)))}}async function Yt(){let e=U.value;if(e){U.value=null;try{await t.deleteSchedule(e.id),await $()}catch(e){console.error(`schedules.delete:`,e),O.error(p(e,_(`schedules.deleteFailed`)))}}}return ee(async()=>{P.value=!0;try{let e=await t.getSchedulesInit();R.value=e.schedules,F.value=e.mapping_groups,L.value=e.providers}catch(e){console.error(`schedules.loadInit:`,e),O.error(p(e,_(`schedules.loadGroupsFailed`)))}finally{P.value=!1}}),(t,n)=>(b(),g(`div`,Ie,[e(`div`,Le,[e(`div`,Re,[e(`h2`,ze,r(v(_)(`schedules.title`)),1),e(`p`,Be,r(v(_)(`schedules.description`)),1)])]),P.value?(b(),g(`div`,Ve,r(v(_)(`common.loading`)),1)):y(``,!0),P.value?y(``,!0):(b(),g(a,{key:1},[e(`div`,He,[e(`div`,Ue,[e(`div`,We,r(v(_)(`schedules.stats.groupCount`)),1),e(`div`,Ge,r(F.value.length),1)]),e(`div`,Ke,[e(`div`,qe,r(v(_)(`schedules.stats.activeRules`)),1),e(`div`,Je,r(X.value),1)]),e(`div`,Ye,[e(`div`,Xe,r(v(_)(`schedules.stats.disabledRules`)),1),e(`div`,Ze,r(Z.value),1)]),e(`div`,Qe,[e(`div`,$e,r(v(_)(`schedules.stats.coveredDays`)),1),e(`div`,et,r(Pe.value)+`/7 `,1)])]),e(`div`,tt,[(b(!0),g(a,null,u(F.value,(t,n)=>(b(),g(`div`,{key:t.id,class:s({"border-t border-border":n>0})},[e(`div`,{class:s([`flex items-center gap-2.5 h-10 px-4 cursor-pointer transition-colors hover:bg-muted/40`,{"bg-muted/40":z.value===t.id}]),onClick:e=>Ut(t.id)},[l(v(C),{class:s([`size-3.5 text-muted-foreground/40 shrink-0 transition-transform`,{"rotate-90":z.value===t.id}])},null,8,[`class`]),e(`span`,rt,r(t.client_model),1),Y.value[t.id]?.length?(b(),g(`span`,it,r(v(_)(`schedules.ruleCount`,{count:Y.value[t.id].length})),1)):(b(),g(`span`,at,r(v(_)(`schedules.noRules`)),1)),e(`div`,ot,[(b(!0),g(a,null,u((Y.value[t.id]??[]).slice(0,3),e=>(b(),g(`span`,{key:e.id,class:`text-[11px] font-medium px-1.5 py-px rounded bg-foreground/5 text-muted-foreground`},r(e.name),1))),128)),(Y.value[t.id]?.length??0)>3?(b(),g(`span`,st,`+`+r(Y.value[t.id].length-3),1)):y(``,!0)]),e(`span`,{class:s([`size-1.5 rounded-full shrink-0`,Bt(t.id)?`bg-success`:Vt(t.id)?`bg-warning`:``])},null,2)],10,nt),z.value===t.id?(b(),g(a,{key:0},[e(`div`,ct,[e(`div`,lt,r(v(_)(`schedules.timeline.weekView`)),1),l(Fe,{rules:zt(t.id)},null,8,[`rules`])]),e(`div`,ut,[l(v(xe),null,{default:m(()=>[l(v(Se),null,{default:m(()=>[l(v(M),{class:`bg-muted/30 dark:bg-muted/50`},{default:m(()=>[l(v(j),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`16%`}},{default:m(()=>[f(r(v(_)(`schedules.tableHeaders.name`)),1)]),_:1}),l(v(j),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`14%`}},{default:m(()=>[f(r(v(_)(`schedules.tableHeaders.week`)),1)]),_:1}),l(v(j),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`14%`}},{default:m(()=>[f(r(v(_)(`schedules.tableHeaders.timeRange`)),1)]),_:1}),l(v(j),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`10%`}},{default:m(()=>[f(r(v(_)(`schedules.tableHeaders.status`)),1)]),_:1}),l(v(j),{class:`text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`30%`}},{default:m(()=>[f(r(v(_)(`schedules.tableHeaders.targets`)),1)]),_:1}),l(v(j),{class:`text-right text-muted-foreground/70 text-[11px] h-8 uppercase tracking-wider font-semibold`,style:{width:`16%`}},{default:m(()=>[l(v(h),{size:`xs`,variant:`ghost`,class:`h-5 text-[11px]`,onClick:e=>Gt(t.id)},{default:m(()=>[l(v(ne),{class:`w-3 h-3 mr-1`}),f(r(v(_)(`schedules.createSchedule`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),l(v(be),null,{default:m(()=>[(b(!0),g(a,null,u(Y.value[t.id]??[],t=>(b(),d(v(M),{key:t.id,class:`hover:bg-muted/40`},{default:m(()=>[l(v(A),{class:`font-medium text-[13px] h-9`},{default:m(()=>[f(r(t.name),1)]),_:2},1024),l(v(A),{class:`h-9`},{default:m(()=>[Ft(t.week)?(b(),g(`span`,dt,r(Ft(t.week)),1)):(b(),g(`div`,ft,[(b(!0),g(a,null,u(Rt(t.week),e=>(b(),g(`span`,{key:e,class:`text-[11px] font-medium px-1.5 py-px rounded bg-foreground/5 text-muted-foreground`},r(e),1))),128))]))]),_:2},1024),l(v(A),{class:`font-mono text-[12px] font-medium h-9`},{default:m(()=>[f(r(Lt(t.start_hour))+`-`+r(Lt(t.end_hour)),1)]),_:2},1024),l(v(A),{class:`h-9`},{default:m(()=>[e(`span`,{class:s([`inline-flex items-center gap-1.5 text-[11px] font-semibold`,t.enabled?`text-success`:`text-muted-foreground/60`])},[e(`span`,{class:s([`size-1.5 rounded-full`,t.enabled?`bg-success`:`bg-muted-foreground/50`])},null,2),f(` `+r(t.enabled?v(_)(`schedules.enabled`):v(_)(`schedules.disabled`)),1)],2)]),_:2},1024),l(v(A),{class:`h-9`},{default:m(()=>[e(`div`,pt,[(b(!0),g(a,null,u(It(t.mapping_rule),(t,n)=>(b(),g(`span`,{key:n,class:`inline-flex items-center gap-0.5 px-1.5 py-px rounded text-[11px] font-medium bg-foreground/5`},[e(`span`,mt,r(t.provider)+`/`,1),e(`span`,ht,r(t.model),1)]))),128))])]),_:2},1024),l(v(A),{class:`h-9 text-right`},{default:m(()=>[e(`div`,gt,[l(v(se),{"model-value":!!t.enabled,class:`scale-75`,onClick:o(e=>Jt(t),[`stop`])},null,8,[`model-value`,`onClick`]),l(v(h),{variant:`ghost`,size:`icon`,class:`size-6`,onClick:e=>Kt(t)},{default:m(()=>[l(v(w),{class:`size-3.5`})]),_:1},8,[`onClick`]),l(v(h),{variant:`ghost`,size:`icon`,class:`size-6 hover:bg-destructive/10 text-destructive`,onClick:e=>U.value=t},{default:m(()=>[l(v(T),{class:`size-3.5`})]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),Y.value[t.id]?.length?y(``,!0):(b(),d(v(M),{key:0},{default:m(()=>[l(v(A),{colspan:`6`,class:`text-center text-muted-foreground py-6 text-xs`},{default:m(()=>[f(r(v(_)(`schedules.emptyRules`)),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)])],64)):y(``,!0)],2))),128)),F.value.length===0?(b(),g(`p`,_t,r(v(_)(`schedules.noGroups`)),1)):y(``,!0)])],64)),l(v(ie),{open:B.value,"onUpdate:open":n[12]||=e=>B.value=e},{default:m(()=>[l(v(E),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:m(()=>[l(v(re),null,{default:m(()=>[l(v(oe),null,{default:m(()=>[f(r(V.value?v(_)(`schedules.editSchedule`):v(_)(`schedules.createSchedule`)),1)]),_:1})]),_:1}),e(`form`,{onSubmit:o(qt,[`prevent`]),class:`space-y-4`},[K.value?(b(),g(`div`,vt,r(K.value),1)):y(``,!0),e(`div`,yt,[e(`div`,null,[l(v(D),{class:`text-xs text-muted-foreground`},{default:m(()=>[f(r(v(_)(`schedules.form.name`)),1)]),_:1}),l(v(ye),{modelValue:W.value.name,"onUpdate:modelValue":n[0]||=e=>W.value.name=e,class:`mt-1`,placeholder:v(_)(`schedules.form.namePlaceholder`),onInput:n[1]||=e=>delete G.value.name},null,8,[`modelValue`,`placeholder`]),G.value.name?(b(),g(`p`,bt,r(G.value.name),1)):y(``,!0)]),e(`div`,null,[l(v(D),{class:`text-xs text-muted-foreground mb-1.5 block`},{default:m(()=>[f(r(v(_)(`schedules.form.week`)),1)]),_:1}),e(`div`,xt,[(b(!0),g(a,null,u(N.value,(e,t)=>(b(),d(v(h),{key:t,type:`button`,variant:(W.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,class:`h-7 text-xs`,onClick:e=>Wt(t)},{default:m(()=>[f(r(e),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),G.value.week?(b(),g(`p`,St,r(G.value.week),1)):y(``,!0)])]),e(`div`,null,[e(`div`,Ct,[l(v(D),{class:`text-xs text-muted-foreground`},{default:m(()=>[f(r(v(_)(`schedules.timePresets.label`)),1)]),_:1}),e(`div`,wt,[l(v(h),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:n[2]||=e=>Q(9,12)},{default:m(()=>[f(r(v(_)(`schedules.timePresets.morning`)),1)]),_:1}),l(v(h),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:n[3]||=e=>Q(14,18)},{default:m(()=>[f(r(v(_)(`schedules.timePresets.afternoon`)),1)]),_:1}),l(v(h),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:n[4]||=e=>Q(19,21)},{default:m(()=>[f(r(v(_)(`schedules.timePresets.evening`)),1)]),_:1})])]),e(`div`,Tt,[e(`div`,null,[l(v(D),{class:`text-xs text-muted-foreground`},{default:m(()=>[f(r(v(_)(`schedules.form.startTime`)),1)]),_:1}),l(v(k),{modelValue:W.value.start_hour,"onUpdate:modelValue":[n[5]||=e=>W.value.start_hour=e,n[6]||=e=>{W.value.start_hour=Number(e),delete G.value.time}],class:`mt-1`},{default:m(()=>[l(v(fe),null,{default:m(()=>[l(v(me),{placeholder:v(_)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),l(v(ce),null,{default:m(()=>[(b(),g(a,null,u(24,e=>l(v(de),{key:e-1,value:e-1},{default:m(()=>[f(r(String(e-1).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),e(`div`,null,[l(v(D),{class:`text-xs text-muted-foreground`},{default:m(()=>[f(r(v(_)(`schedules.form.endTime`)),1)]),_:1}),l(v(k),{modelValue:W.value.end_hour,"onUpdate:modelValue":[n[7]||=e=>W.value.end_hour=e,n[8]||=e=>{W.value.end_hour=Number(e),delete G.value.time}],class:`mt-1`},{default:m(()=>[l(v(fe),null,{default:m(()=>[l(v(me),{placeholder:v(_)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),l(v(ce),null,{default:m(()=>[(b(),g(a,null,u(24,e=>l(v(de),{key:e,value:e},{default:m(()=>[f(r(String(e).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),G.value.time?(b(),g(`p`,Et,r(G.value.time),1)):y(``,!0)]),e(`div`,null,[l(v(D),{class:`text-xs text-muted-foreground mb-1 block`},{default:m(()=>[f(r(v(_)(`schedules.form.targets`)),1)]),_:1}),l(S,{entry:Nt.value,"provider-groups":Pt.value,expanded:!0,editable:!0,"onUpdate:targets":Ht},null,8,[`entry`,`provider-groups`]),G.value.targets?(b(),g(`p`,Dt,r(G.value.targets),1)):y(``,!0)]),e(`div`,Ot,[e(`div`,kt,[e(`div`,At,r(v(_)(`schedules.form.concurrencyTitle`)),1),l(te,{modelValue:J.value,"onUpdate:modelValue":n[9]||=e=>J.value=e,compact:``},null,8,[`modelValue`])]),e(`div`,jt,[e(`div`,Mt,r(v(_)(`providers.transform.title`)),1),l(we,{modelValue:q.value,"onUpdate:modelValue":n[10]||=e=>q.value=e,compact:``},null,8,[`modelValue`])])]),l(v(ae),null,{default:m(()=>[l(v(h),{type:`button`,variant:`outline`,onClick:n[11]||=e=>B.value=!1},{default:m(()=>[f(r(v(_)(`common.cancel`)),1)]),_:1}),l(v(h),{type:`submit`},{default:m(()=>[f(r(v(_)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),l(v(ge),{open:!!U.value,"onUpdate:open":n[13]||=e=>{e||(U.value=null)}},{default:m(()=>[l(v(ve),null,{default:m(()=>[l(v(_e),null,{default:m(()=>[l(v(he),null,{default:m(()=>[f(r(v(_)(`schedules.confirmDeleteTitle`)),1)]),_:1}),l(v(pe),null,{default:m(()=>[f(r(v(_)(`schedules.confirmDeleteMessage`,{name:U.value?.name??``})),1)]),_:1})]),_:1}),l(v(le),null,{default:m(()=>[l(v(ue),null,{default:m(()=>[f(r(v(_)(`common.cancel`)),1)]),_:1}),l(v(h),{variant:`destructive`,onClick:Yt},{default:m(()=>[f(r(v(_)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{Nt as default};
@@ -0,0 +1 @@
1
+ import{Q as e,S as t,Xt as n,ct as r,et as i,i as a,jt as o,ot as s,pt as c,qt as l,r as u,vt as d,xt as f}from"./button-BBiWml8B.js";var p=s({__name:`BaseSeparator`,props:{orientation:{type:String,required:!1,default:`horizontal`},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t){let n=t,r=[`horizontal`,`vertical`];function s(e){return r.includes(e)}let u=e(()=>s(n.orientation)?n.orientation:`horizontal`),p=e(()=>u.value===`vertical`?n.orientation:void 0),m=e(()=>n.decorative?{role:`none`}:{"aria-orientation":p.value,role:`separator`});return(e,t)=>(d(),i(l(a),c({as:e.as,"as-child":e.asChild,"data-orientation":u.value},m.value),{default:o(()=>[f(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-orientation`]))}}),m=s({__name:`Separator`,props:{orientation:{type:String,required:!1,default:`horizontal`},decorative:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e;return(e,a)=>(d(),i(p,n(r(t)),{default:o(()=>[f(e.$slots,`default`)]),_:3},16))}}),h=s({__name:`Separator`,props:{orientation:{default:`horizontal`},decorative:{type:Boolean,default:!0},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=t(n,`class`);return(e,t)=>(d(),i(l(m),c({"data-slot":`separator`},l(r),{class:l(u)(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch`,n.class)}),null,16,[`class`]))}});export{h as t};
@@ -0,0 +1,6 @@
1
+ import{$ as e,A as t,Ft as n,Ot as r,Q as i,Qt as a,R as o,S as s,U as c,X as l,Yt as u,Zt as d,at as f,bt as ee,et as p,gt as te,h as m,i as h,it as g,j as _,jt as v,mt as y,n as b,nt as x,o as S,ot as C,pt as w,qt as T,r as E,tt as D,vt as O,xt as k,zt as A}from"./button-BBiWml8B.js";import{t as j}from"./Label-BQXea0mo.js";import{t as ne}from"./Separator-BqIs_Dy3.js";import{$ as re,J as M,X as N,a as P,c as ie,d as ae,f as oe,it as se,l as ce,o as le,p as ue,rt as de,s as fe,u as pe}from"./index-DTujoAWx.js";import{t as F}from"./Input-DMDfXTXB.js";import{t as I}from"./Card-uC_v0CEa.js";import{t as L}from"./CardContent-CP3OiCj4.js";import{n as R,t as z}from"./CardTitle-DGxuW5DZ.js";import{t as me}from"./useLogRetention-CdccNhYN.js";var he=o(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),ge=o(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),_e=o(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),ve=o(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),B=100,[V,H]=N(`ProgressRoot`),U=e=>typeof e==`number`;function W(e,t){return M(e)||U(e)&&!Number.isNaN(e)&&e<=t&&e>=0?e:(console.error(`Invalid prop \`value\` of value \`${e}\` supplied to \`ProgressRoot\`. The \`value\` prop must be:
2
+ - a positive number
3
+ - less than the value passed to \`max\` (or ${B} if no \`max\` prop is set)
4
+ - \`null\` or \`undefined\` if the progress is indeterminate.
5
+
6
+ Defaulting to \`null\`.`),null)}function G(e){return U(e)&&!Number.isNaN(e)&&e>0?e:(console.error(`Invalid prop \`max\` of value \`${e}\` supplied to \`ProgressRoot\`. Only numbers greater than 0 are valid max values. Defaulting to \`${B}\`.`),B)}var K=C({__name:`ProgressRoot`,props:{modelValue:{type:[Number,null],required:!1},max:{type:Number,required:!1,default:B},getValueLabel:{type:Function,required:!1,default:(e,t)=>U(e)?`${Math.round(e/t*B)}%`:void 0},getValueText:{type:Function,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`,`update:max`],setup(e,{emit:t}){let n=e,a=t;S();let o=m(n,`modelValue`,a,{passive:n.modelValue===void 0}),s=m(n,`max`,a,{passive:n.max===void 0});r(()=>o.value,async e=>{let t=W(e,n.max);t!==e&&(await y(),o.value=t)},{immediate:!0}),r(()=>n.max,e=>{let t=G(n.max);t!==e&&(s.value=t)},{immediate:!0});let c=i(()=>M(o.value)?`indeterminate`:o.value===s.value?`complete`:`loading`);return H({modelValue:o,max:s,progressState:c}),(e,t)=>(O(),p(T(h),{"as-child":e.asChild,as:e.as,"aria-valuemax":T(s),"aria-valuemin":0,"aria-valuenow":U(T(o))?T(o):void 0,"aria-valuetext":e.getValueText?.(T(o),T(s)),"aria-label":e.getValueLabel(T(o),T(s)),role:`progressbar`,"data-state":c.value,"data-value":T(o)??void 0,"data-max":T(s)},{default:v(()=>[k(e.$slots,`default`,{modelValue:T(o)})]),_:3},8,[`as-child`,`as`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`,`aria-label`,`data-state`,`data-value`,`data-max`]))}}),q=C({__name:`ProgressIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=V();return S(),(e,r)=>(O(),p(T(h),w(t,{"data-state":T(n).progressState.value,"data-value":T(n).modelValue?.value??void 0,"data-max":T(n).max.value}),{default:v(()=>[k(e.$slots,`default`)]),_:3},16,[`data-state`,`data-value`,`data-max`]))}}),J=C({__name:`CardDescription`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e;return(e,n)=>(O(),x(`div`,{"data-slot":`card-description`,class:u(T(E)(`text-muted-foreground text-sm`,t.class))},[k(e.$slots,`default`)],2))}}),Y=C({__name:`Progress`,props:{modelValue:{default:0},max:{},getValueLabel:{},getValueText:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=s(t,`class`);return(e,r)=>(O(),p(T(K),w({"data-slot":`progress`},T(n),{class:T(E)(`bg-muted h-1 rounded-full relative flex w-full items-center overflow-x-hidden`,t.class)}),{default:v(()=>[f(T(q),{"data-slot":`progress-indicator`,class:`bg-primary size-full flex-1 transition-all`,style:d(`transform: translateX(-${100-(t.modelValue??0)}%);`)},null,8,[`style`])]),_:1},16,[`class`]))}}),ye={class:`page space-y-6`},be={class:`text-lg font-semibold text-foreground`},xe={class:`grid grid-cols-1 md:grid-cols-[1fr_auto_1fr] gap-4 items-start`},Se={class:`space-y-2`},Ce={class:`flex items-center gap-2`},we={class:`text-xs text-muted-foreground`},Te={class:`text-xs text-muted-foreground leading-relaxed min-h-[30px]`},Ee={class:`space-y-2`},De={class:`flex items-center gap-2`},Oe={class:`text-xs text-muted-foreground`},ke={class:`text-xs text-muted-foreground leading-relaxed min-h-[30px]`},Ae={class:`mt-4 space-y-1`},je={class:`flex h-1.5 w-full overflow-hidden rounded-full bg-muted`},Me={class:`flex justify-between text-[10px] font-mono text-muted-foreground`},Ne={class:`text-primary font-medium`},Pe={key:0,class:`text-sm text-destructive mt-2`},Fe={class:`flex justify-end gap-2 pt-3 mt-3 border-t`},Ie={class:`space-y-1`},Le={class:`flex justify-between text-sm`},Re={class:`text-muted-foreground`},ze={class:`space-y-1`},Be={class:`flex justify-between text-sm`},Ve={class:`text-muted-foreground`},He={class:`space-y-1`},Ue={class:`flex justify-between text-sm`},We={class:`text-muted-foreground`},Ge={key:0,class:`text-xs text-muted-foreground`},Ke={class:`grid grid-cols-2 gap-4 pt-3 border-t`},qe={class:`space-y-1`},Je={key:0,class:`text-sm text-destructive mt-1`},Ye={class:`space-y-1`},Xe={key:0,class:`text-sm text-destructive mt-1`},Ze={class:`flex gap-3`},Qe={key:0,class:`text-sm space-y-1 p-3 bg-muted rounded-md`},$e={class:`font-medium`},X=1048576,et=1024,Z=100,tt=2,nt=10,rt=0,it=90,at=1,ot=30,st=3,ct=7,Q=1,lt=1024,ut=800,$=C({__name:`Settings`,setup(r){let{t:o}=c(),{retentionDays:s,metricsDetailDays:u,validationError:p,saveBoth:m}=me(),h=A(null),y=A(lt),S=A(ut),C=A(!1),w=A(!1),E=A(null),k=A(!1),M=A(null),N=A(),B=A(``),V=A(``),H=i(()=>p.value),U=i(()=>{let e=Math.max(s.value,1);return Math.max(0,Math.min(Z,u.value/e*Z))}),W=i(()=>Z-U.value),G=i(()=>Math.max(rt,Math.min(it,s.value))),K=i(()=>Math.max(at,Math.min(ot,u.value)));function q(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.min(Math.floor(Math.log(e)/Math.log(et)),t.length-1);return`${(e/et**+n).toFixed(1)} ${t[n]}`}async function $(){C.value=!0;try{let e=await t.getSettingsInit();h.value=e.db_size,y.value=e.db_size.thresholds.dbMaxSizeMb,S.value=e.db_size.thresholds.logTableMaxSizeMb,s.value=e.log_retention_days,u.value=e.metrics_detail_days}finally{C.value=!1}}function dt(){s.value=st,u.value=ct}async function ft(){await m()}function pt(){B.value=``,V.value=``;let e=!0;return(!Number.isFinite(y.value)||y.value<Q)&&(B.value=o(`settings.storage.minValueError`,{min:Q}),e=!1),(!Number.isFinite(S.value)||S.value<Q)&&(V.value=o(`settings.storage.minValueError`,{min:Q}),e=!1),e&&S.value>y.value&&(V.value=o(`settings.storage.logExceedsDbError`),e=!1),e}async function mt(){if(pt())try{let e=await se({dbMaxSizeMb:y.value,logTableMaxSizeMb:S.value});y.value=e.dbMaxSizeMb,S.value=e.logTableMaxSizeMb,P.success(o(`settings.storage.thresholdsUpdated`)),await $()}catch(e){console.error(`settings.updateThresholds:`,e),P.error(_(e,o(`settings.storage.updateFailed`)))}}async function ht(){try{let e=await re(),t=new Blob([JSON.stringify(e,null,tt)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`router-config-${new Date().toISOString().slice(0,nt)}.json`,r.click(),URL.revokeObjectURL(n),P.success(o(`settings.importExport.exportSuccess`))}catch(e){console.error(`settings.export:`,e),P.error(_(e,o(`settings.importExport.exportFailed`)))}}function gt(e){let t=e.target,n=t.files?.[0];if(!n)return;let r=new FileReader;r.onload=()=>{try{let e=JSON.parse(r.result);if(!e.version||e.version!==1){P.error(o(`settings.importExport.unsupportedVersion`));return}M.value=e,k.value=!0}catch(e){console.error(`Settings.importJson:`,e),P.error(o(`settings.importExport.invalidJson`))}},r.readAsText(n),t.value=``}async function _t(){if(M.value){w.value=!0;try{E.value=await de(M.value),k.value=!1,P.success(o(`settings.importExport.importSuccess`)),await $()}catch(e){console.error(`settings.import:`,e),P.error(_(e,o(`settings.importExport.importFailed`)))}finally{w.value=!1,M.value=null}}}return te($),(t,r)=>(O(),x(`div`,ye,[e(`h2`,be,a(T(o)(`settings.title`)),1),f(T(I),null,{default:v(()=>[f(T(R),null,{default:v(()=>[f(T(z),{class:`text-sm`},{default:v(()=>[g(a(T(o)(`settings.retention.title`)),1)]),_:1}),f(T(J),null,{default:v(()=>[g(a(T(o)(`settings.retention.desc`)),1)]),_:1})]),_:1}),f(T(L),null,{default:v(()=>[e(`div`,xe,[e(`div`,Se,[f(T(j),{for:`retention-days`,class:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`},{default:v(()=>[g(a(T(o)(`settings.retention.requestLogsCol`)),1)]),_:1}),e(`div`,Ce,[f(T(F),{id:`retention-days`,modelValue:T(s),"onUpdate:modelValue":r[0]||=e=>n(s)?s.value=e:null,modelModifiers:{number:!0},type:`number`,min:rt,max:it,class:`w-24 font-mono text-center`},null,8,[`modelValue`]),e(`span`,we,a(T(o)(`settings.retention.daysUnit`)),1)]),e(`p`,Te,a(T(o)(`settings.retention.requestLogsHint`)),1)]),f(T(ne),{orientation:`vertical`,class:`hidden md:block h-full`}),e(`div`,Ee,[f(T(j),{for:`metrics-detail-days`,class:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`},{default:v(()=>[g(a(T(o)(`settings.retention.metricsDetailCol`)),1)]),_:1}),e(`div`,De,[f(T(F),{id:`metrics-detail-days`,modelValue:T(u),"onUpdate:modelValue":r[1]||=e=>n(u)?u.value=e:null,modelModifiers:{number:!0},type:`number`,min:at,max:ot,class:`w-24 font-mono text-center`},null,8,[`modelValue`]),e(`span`,Oe,a(T(o)(`settings.retention.metricsDetailUnit`)),1)]),e(`p`,ke,a(T(o)(`settings.retention.metricsDetailHint`)),1)])]),e(`div`,Ae,[e(`div`,je,[e(`div`,{class:`bg-primary transition-all`,style:d({width:U.value+`%`})},null,4),e(`div`,{class:`bg-primary/35 transition-all`,style:d({width:W.value+`%`})},null,4)]),e(`div`,Me,[e(`span`,Ne,a(T(o)(`settings.retention.lifecycle.now`)),1),e(`span`,null,a(T(o)(`settings.retention.lifecycle.detailEnd`,{days:K.value})),1),e(`span`,null,a(T(o)(`settings.retention.lifecycle.totalEnd`,{days:G.value})),1),e(`span`,null,a(T(o)(`settings.retention.lifecycle.expired`)),1)])]),H.value?(O(),x(`p`,Pe,a(H.value),1)):D(``,!0),e(`div`,Fe,[f(T(b),{variant:`ghost`,size:`sm`,disabled:C.value,onClick:dt},{default:v(()=>[f(T(_e),{class:`mr-1.5 h-3.5 w-3.5`}),g(` `+a(T(o)(`common.reset`)),1)]),_:1},8,[`disabled`]),f(T(b),{size:`sm`,disabled:C.value||!!H.value,onClick:ft},{default:v(()=>[g(a(T(o)(`common.save`)),1)]),_:1},8,[`disabled`])])]),_:1})]),_:1}),f(T(I),null,{default:v(()=>[f(T(R),null,{default:v(()=>[f(T(z),{class:`text-sm flex items-center gap-2`},{default:v(()=>[f(T(ge),{class:`h-4 w-4`}),g(` `+a(T(o)(`settings.storage.title`)),1)]),_:1}),f(T(J),null,{default:v(()=>[g(a(T(o)(`settings.storage.desc`)),1)]),_:1})]),_:1}),f(T(L),null,{default:v(()=>[h.value?(O(),x(l,{key:0},[e(`div`,Ie,[e(`div`,Le,[e(`span`,null,a(T(o)(`settings.storage.dbTotalSize`)),1),e(`span`,Re,a(q(h.value.totalBytes))+` / `+a(y.value)+` MB `,1)]),f(T(Y),{"model-value":Math.min(Z,h.value.totalBytes/(y.value*X)*Z)},null,8,[`model-value`])]),e(`div`,ze,[e(`div`,Be,[e(`span`,null,a(T(o)(`settings.storage.logSize`))+` (`+a(T(o)(`common.count`,{count:h.value.logCount}))+`)`,1),e(`span`,Ve,a(q(h.value.logTableBytes))+` / `+a(S.value)+` MB `,1)]),f(T(Y),{"model-value":Math.min(Z,h.value.logTableBytes/(S.value*X)*Z)},null,8,[`model-value`])]),e(`div`,He,[e(`div`,Ue,[e(`span`,null,a(T(o)(`settings.storage.logFileSize`)),1),e(`span`,We,a(q(h.value.logFileBytes??0)),1)])]),h.value.lastChecked?(O(),x(`p`,Ge,a(T(o)(`common.lastChecked`))+`:`+a(h.value.lastChecked),1)):D(``,!0)],64)):D(``,!0),e(`div`,Ke,[e(`div`,qe,[f(T(j),{for:`db-max-size`},{default:v(()=>[g(a(T(o)(`settings.storage.dbMaxSizeLabel`)),1)]),_:1}),f(T(F),{id:`db-max-size`,modelValue:y.value,"onUpdate:modelValue":r[2]||=e=>y.value=e,modelModifiers:{number:!0},type:`number`,min:Q,onInput:r[3]||=e=>B.value=``},null,8,[`modelValue`]),B.value?(O(),x(`p`,Je,a(B.value),1)):D(``,!0)]),e(`div`,Ye,[f(T(j),{for:`log-max-size`},{default:v(()=>[g(a(T(o)(`settings.storage.logMaxSizeLabel`)),1)]),_:1}),f(T(F),{id:`log-max-size`,modelValue:S.value,"onUpdate:modelValue":r[4]||=e=>S.value=e,modelModifiers:{number:!0},type:`number`,min:Q,onInput:r[5]||=e=>V.value=``},null,8,[`modelValue`]),V.value?(O(),x(`p`,Xe,a(V.value),1)):D(``,!0)])]),f(T(b),{size:`sm`,disabled:C.value,onClick:mt},{default:v(()=>[g(a(T(o)(`common.saveThresholds`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1}),f(T(I),null,{default:v(()=>[f(T(R),null,{default:v(()=>[f(T(z),{class:`text-sm`},{default:v(()=>[g(a(T(o)(`settings.importExport.title`)),1)]),_:1}),f(T(J),null,{default:v(()=>[g(a(T(o)(`settings.importExport.desc`)),1)]),_:1})]),_:1}),f(T(L),null,{default:v(()=>[e(`div`,Ze,[f(T(b),{variant:`outline`,size:`sm`,disabled:C.value,onClick:ht},{default:v(()=>[f(T(he),{class:`mr-2 h-4 w-4`}),g(` `+a(T(o)(`settings.importExport.export`)),1)]),_:1},8,[`disabled`]),f(T(b),{variant:`outline`,size:`sm`,disabled:C.value,onClick:r[6]||=e=>N.value?.click()},{default:v(()=>[f(T(ve),{class:`mr-2 h-4 w-4`}),g(` `+a(T(o)(`settings.importExport.import`)),1)]),_:1},8,[`disabled`]),e(`input`,{ref_key:`fileInput`,ref:N,type:`file`,accept:`.json`,class:`hidden`,onChange:gt},null,544)]),E.value?(O(),x(`div`,Qe,[e(`p`,$e,a(T(o)(`settings.importExport.importComplete`)),1),(O(!0),x(l,null,ee(E.value,(e,t)=>(O(),x(`p`,{key:t},a(t)+`: `+a(T(o)(`common.count`,{count:e})),1))),128))])):D(``,!0)]),_:1})]),_:1}),f(T(ue),{open:k.value,"onUpdate:open":r[7]||=e=>k.value=e},{default:v(()=>[f(T(pe),null,{default:v(()=>[f(T(fe),null,{default:v(()=>[f(T(le),null,{default:v(()=>[g(a(T(o)(`settings.importExport.confirmImport`)),1)]),_:1}),f(T(ce),null,{default:v(()=>[g(a(T(o)(`settings.importExport.importWarning`))+` `+a(T(o)(`common.irreversible`)),1)]),_:1})]),_:1}),f(T(ie),null,{default:v(()=>[f(T(ae),{disabled:w.value},{default:v(()=>[g(a(T(o)(`common.cancel`)),1)]),_:1},8,[`disabled`]),f(T(oe),{disabled:w.value,onClick:_t},{default:v(()=>[g(a(w.value?T(o)(`settings.importExport.importing`):T(o)(`settings.importExport.confirmButton`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{$ as default};
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,B as n,I as r,Qt as i,U as a,Y as o,at as s,et as c,it as l,j as u,jt as d,n as f,nt as p,ot as m,qt as h,tt as g,vt as _,zt as v}from"./button-BBiWml8B.js";import{t as y}from"./Label-BQXea0mo.js";import{t as b}from"./Input-DMDfXTXB.js";import{t as x}from"./AuthLayout-jELzICkx.js";var S={key:0,class:`text-destructive text-sm`},C=m({__name:`Setup`,setup(m){let{t:C}=a(),w=n(),T=v(``),E=v(``),D=v(``),O=v(!1);async function k(){if(!T.value||!E.value){D.value=C(`setup.pleaseInputPassword`);return}if(T.value!==E.value){D.value=C(`setup.passwordMismatch`);return}if(T.value.length<6){D.value=C(`setup.passwordTooShort`);return}D.value=``,O.value=!0;try{await t.initializeSetup(T.value),r(),w.push({name:`dashboard`})}catch(e){D.value=u(e,C(`setup.setupFailed`))}finally{O.value=!1}}return(t,n)=>(_(),c(x,{subtitle:h(C)(`setup.subtitle`)},{default:d(()=>[e(`form`,{onSubmit:o(k,[`prevent`]),class:`space-y-4`},[e(`div`,null,[s(h(y),{class:`block text-sm font-medium text-foreground mb-1`},{default:d(()=>[l(i(h(C)(`setup.password`)),1)]),_:1}),s(h(b),{modelValue:T.value,"onUpdate:modelValue":n[0]||=e=>T.value=e,type:`password`,placeholder:h(C)(`setup.passwordPlaceholder`),disabled:O.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),e(`div`,null,[s(h(y),{class:`block text-sm font-medium text-foreground mb-1`},{default:d(()=>[l(i(h(C)(`setup.confirmPassword`)),1)]),_:1}),s(h(b),{modelValue:E.value,"onUpdate:modelValue":n[1]||=e=>E.value=e,type:`password`,placeholder:h(C)(`setup.confirmPasswordPlaceholder`),disabled:O.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),D.value?(_(),p(`p`,S,i(D.value),1)):g(``,!0),s(h(f),{type:`submit`,class:`w-full`,disabled:O.value},{default:d(()=>[l(i(O.value?h(C)(`setup.settingUp`):h(C)(`setup.setupButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1},8,[`subtitle`]))}});export{C as default};
@@ -0,0 +1 @@
1
+ import{Yt as e,nt as t,ot as n,qt as r,r as i,vt as a}from"./button-BBiWml8B.js";var o=n({__name:`Skeleton`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){let o=n;return(n,s)=>(a(),t(`div`,{"data-slot":`skeleton`,class:e(r(i)(`bg-muted rounded-md animate-pulse`,o.class))},null,2))}});export{o as t};
@@ -0,0 +1 @@
1
+ import{J as e,Q as t,S as n,Wt as r,Xt as i,Y as a,at as o,ct as s,et as c,h as l,i as u,jt as d,o as f,ot as p,pt as m,qt as h,r as g,tt as _,vt as v,xt as y}from"./button-BBiWml8B.js";import{t as b}from"./VisuallyHiddenInput-DrNFhnVL.js";import{H as x,W as S,X as C}from"./index-DTujoAWx.js";var[w,T]=C(`SwitchRoot`),E=p({__name:`SwitchRoot`,props:{defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},disabled:{type:Boolean,required:!1},id:{type:String,required:!1},value:{type:String,required:!1,default:`on`},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:i}){let o=n,s=i,{disabled:p}=r(o),g=l(o,`modelValue`,s,{defaultValue:o.defaultValue??o.falseValue,passive:o.modelValue===void 0}),x=t(()=>g.value===o.trueValue);function C(){p.value||(g.value=x.value?o.falseValue:o.trueValue)}let{forwardRef:w,currentElement:E}=f(),D=S(E),O=t(()=>o.id&&E.value?document.querySelector(`[for="${o.id}"]`)?.innerText:void 0);return T({checked:x,toggleCheck:C,disabled:p}),(t,n)=>(v(),c(h(u),m(t.$attrs,{id:t.id,ref:h(w),role:`switch`,type:t.as===`button`?`button`:void 0,value:t.value,"aria-label":t.$attrs[`aria-label`]||O.value,"aria-checked":x.value,"aria-required":t.required,"data-state":x.value?`checked`:`unchecked`,"data-disabled":h(p)?``:void 0,"as-child":t.asChild,as:t.as,disabled:h(p),onClick:C,onKeydown:e(a(C,[`prevent`]),[`enter`])}),{default:d(()=>[y(t.$slots,`default`,{modelValue:h(g),checked:x.value}),h(D)&&t.name?(v(),c(h(b),{key:0,type:`checkbox`,name:t.name,disabled:h(p),required:t.required,value:t.value,checked:x.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):_(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),D=p({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=w();return f(),(e,n)=>(v(),c(h(u),{"data-state":h(t).checked.value?`checked`:`unchecked`,"data-disabled":h(t).disabled.value?``:void 0,"as-child":e.asChild,as:e.as},{default:d(()=>[y(e.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),O=p({__name:`Switch`,props:{defaultValue:{},modelValue:{},disabled:{type:Boolean},id:{},value:{},trueValue:{},falseValue:{},asChild:{type:Boolean},as:{},name:{},required:{type:Boolean},class:{type:[Boolean,null,String,Object,Array]},size:{default:`default`}},emits:[`update:modelValue`],setup(e,{emit:t}){let r=e,a=t,l=x(n(r,`class`,`size`),a);return(t,n)=>(v(),c(h(E),m({"data-slot":`switch`,"data-size":e.size},h(l),{class:h(g)(`data-[state=checked]:bg-primary data-[state=unchecked]:bg-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 dark:data-[state=unchecked]:bg-input/80 shrink-0 rounded-full border border-transparent focus-visible:ring-3 aria-invalid:ring-3 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] peer group/switch relative inline-flex items-center transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,r.class)}),{default:d(e=>[o(h(D),{"data-slot":`switch-thumb`,class:`bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground rounded-full group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-[state=checked]:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-[state=unchecked]:translate-x-0 group-data-[size=sm]/switch:data-[state=unchecked]:translate-x-0 pointer-events-none block ring-0 transition-transform`},{default:d(()=>[y(t.$slots,`thumb`,i(s(e)))]),_:2},1024)]),_:3},16,[`data-size`,`class`]))}});export{O as t};
@@ -0,0 +1 @@
1
+ import{$ as e,Yt as t,nt as n,ot as r,qt as i,r as a,vt as o,xt as s}from"./button-BBiWml8B.js";var c={"data-slot":`table-container`,class:`relative w-full overflow-x-auto`},l=r({__name:`Table`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(r){let l=r;return(r,u)=>(o(),n(`div`,c,[e(`table`,{"data-slot":`table`,class:t(i(a)(`w-full caption-bottom text-sm`,l.class))},[s(r.$slots,`default`)],2)]))}}),u=r({__name:`TableBody`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e;return(e,c)=>(o(),n(`tbody`,{"data-slot":`table-body`,class:t(i(a)(`[&_tr:last-child]:border-0`,r.class))},[s(e.$slots,`default`)],2))}}),d=r({__name:`TableCell`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e;return(e,c)=>(o(),n(`td`,{"data-slot":`table-cell`,class:t(i(a)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0`,r.class))},[s(e.$slots,`default`)],2))}}),f=r({__name:`TableRow`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e;return(e,c)=>(o(),n(`tr`,{"data-slot":`table-row`,class:t(i(a)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50`,r.class))},[s(e.$slots,`default`)],2))}}),p=r({__name:`TableHead`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e;return(e,c)=>(o(),n(`th`,{"data-slot":`table-head`,class:t(i(a)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0`,r.class))},[s(e.$slots,`default`)],2))}}),m=r({__name:`TableHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(e){let r=e;return(e,c)=>(o(),n(`thead`,{"data-slot":`table-header`,class:t(i(a)(`[&_tr]:border-b`,r.class))},[s(e.$slots,`default`)],2))}});export{u as a,d as i,p as n,l as o,f as r,m as t};
@@ -0,0 +1 @@
1
+ import{C as e,Ct as t,D as n,J as r,Ot as i,Q as a,Qt as o,S as s,T as c,Vt as l,Wt as u,Xt as d,Y as f,Zt as p,_ as m,at as h,ct as g,et as _,f as v,gt as y,h as b,i as x,it as S,jt as C,kt as w,nt as T,o as E,ot as D,pt as O,qt as k,r as A,vt as j,wt as ee,xt as M,zt as N}from"./button-BBiWml8B.js";import{n as P,t as te}from"./RovingFocusItem-5H5eE6G2.js";import{D as ne,E as re,F as ie,G as ae,H as F,K as I,O as oe,S as L,T as se,U as R,V as z,X as B,j as V,w as H,z as U}from"./index-DTujoAWx.js";function W(t,n){let r=e(!1,300);c(()=>{r.value=!1});let i=N(null),a=m();function o(){i.value=null,r.value=!1}function s(e,t){if(!t)return;let n=e.currentTarget,a={x:e.clientX,y:e.clientY},o=K(a,G(a,n.getBoundingClientRect()),1),s=ce(t.getBoundingClientRect());i.value=ue([...o,...s]),r.value=!0}return w(e=>{if(t.value&&n.value){let r=e=>s(e,n.value),i=e=>s(e,t.value);t.value.addEventListener(`pointerleave`,r),n.value.addEventListener(`pointerleave`,i),e(()=>{t.value?.removeEventListener(`pointerleave`,r),n.value?.removeEventListener(`pointerleave`,i)})}}),w(e=>{if(i.value){let r=e=>{if(!i.value||!(e.target instanceof Element))return;let r=e.target,s={x:e.clientX,y:e.clientY},c=t.value?.contains(r)||n.value?.contains(r),l=!le(s,i.value),u=!!r.closest(`[data-grace-area-trigger]`);c?o():(l||u)&&(o(),a.trigger())};t.value?.ownerDocument.addEventListener(`pointermove`,r),e(()=>t.value?.ownerDocument.removeEventListener(`pointermove`,r))}}),{isPointerInTransit:r,onPointerExit:a.on}}function G(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function K(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function ce(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function le(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e].x,s=t[e].y,c=t[a].x,l=t[a].y;s>r!=l>r&&n<(c-o)*(r-s)/(l-s)+o&&(i=!i)}return i}function ue(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),de(t)}function de(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t.at(-1),n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n.at(-1),t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var fe={key:0,d:`M0 0L6 6L12 0`},pe={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},me=D({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return E(),(e,n)=>(j(),_(k(x),O(t,{width:e.width,height:e.height,viewBox:e.asChild?void 0:`0 0 12 6`,preserveAspectRatio:e.asChild?void 0:`none`}),{default:C(()=>[M(e.$slots,`default`,{},()=>[e.rounded?(j(),T(`path`,pe)):(j(),T(`path`,fe))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),q={top:`bottom`,right:`left`,bottom:`top`,left:`right`},he=D({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let{forwardRef:t}=E(),n=se(),r=a(()=>q[n.placedSide.value]);return(e,i)=>(j(),T(`span`,{ref:e=>{k(n).onArrowChange(e??void 0)},style:p({position:`absolute`,left:k(n).arrowX?.value?`${k(n).arrowX?.value}px`:void 0,top:k(n).arrowY?.value?`${k(n).arrowY?.value}px`:void 0,[r.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[k(n).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[k(n).placedSide.value],visibility:k(n).shouldHideArrow.value?`hidden`:void 0})},[h(me,O(e.$attrs,{ref:k(t),style:{display:`block`},as:e.as,"as-child":e.asChild,rounded:e.rounded,width:e.width,height:e.height}),{default:C(()=>[M(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),[J,ge]=B(`TabsRoot`),_e=D({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,{orientation:i,unmountOnHide:a,dir:o}=u(n),s=ae(o);E();let c=b(n,`modelValue`,r,{defaultValue:n.defaultValue,passive:n.modelValue===void 0}),d=N(),f=l(new Set);return ge({modelValue:c,changeModelValue:e=>{c.value=e},orientation:i,dir:s,unmountOnHide:a,activationMode:n.activationMode,baseId:z(void 0,`reka-tabs`),tabsList:d,contentIds:f,registerContent:e=>{f.value=new Set([...f.value,e])},unregisterContent:e=>{let t=new Set(f.value);t.delete(e),f.value=t}}),(e,t)=>(j(),_(k(x),{dir:k(s),"data-orientation":k(i),"as-child":e.asChild,as:e.as},{default:C(()=>[M(e.$slots,`default`,{modelValue:k(c)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function Y(e,t){return`${e}-trigger-${t}`}function X(e,t){return`${e}-content-${t}`}var ve=D({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:t}=u(e),{forwardRef:n,currentElement:r}=E(),i=J();return i.tabsList=r,(e,r)=>(j(),_(k(P),{"as-child":``,orientation:k(i).orientation.value,dir:k(i).dir.value,loop:k(t)},{default:C(()=>[h(k(x),{ref:k(n),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":k(i).orientation.value},{default:C(()=>[M(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),ye=D({__name:`TabsTrigger`,props:{value:{type:[String,Number],required:!0},disabled:{type:Boolean,required:!1,default:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,{forwardRef:n}=E(),i=J(),o=a(()=>Y(i.baseId,t.value)),s=a(()=>i.contentIds.value.has(t.value)?X(i.baseId,t.value):void 0),c=a(()=>t.value===i.modelValue.value);return(e,t)=>(j(),_(k(te),{"as-child":``,focusable:!e.disabled,active:c.value},{default:C(()=>[h(k(x),{id:o.value,ref:k(n),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":c.value?`true`:`false`,"aria-controls":s.value,"data-state":c.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":k(i).orientation.value,onMousedown:t[0]||=f(t=>{!e.disabled&&t.ctrlKey===!1?k(i).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:t[1]||=r(t=>k(i).changeModelValue(e.value),[`enter`,`space`]),onFocus:t[2]||=()=>{let t=k(i).activationMode!==`manual`;!c.value&&!e.disabled&&t&&k(i).changeModelValue(e.value)}},{default:C(()=>[M(e.$slots,`default`)]),_:3},8,[`id`,`type`,`as`,`as-child`,`aria-selected`,`aria-controls`,`data-state`,`disabled`,`data-disabled`,`data-orientation`])]),_:3},8,[`focusable`,`active`]))}}),be=D({__name:`TooltipArrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(e){let t=e;return E(),(e,n)=>(j(),_(k(he),d(g(t)),{default:C(()=>[M(e.$slots,`default`)]),_:3},16))}}),Z=`tooltip.open`,[Q,xe]=B(`TooltipRoot`),Se=D({__name:`TooltipRoot`,props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},delayDuration:{type:Number,required:!1,default:void 0},disableHoverableContent:{type:Boolean,required:!1,default:void 0},disableClosingTrigger:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1,default:void 0},ignoreNonKeyboardFocus:{type:Boolean,required:!1,default:void 0}},emits:[`update:open`],setup(e,{emit:t}){let r=e,o=t;E();let s=L(),c=a(()=>r.disableHoverableContent??s.disableHoverableContent.value),l=a(()=>r.disableClosingTrigger??s.disableClosingTrigger.value),u=a(()=>r.disabled??s.disabled.value),d=a(()=>r.delayDuration??s.delayDuration.value),f=a(()=>r.ignoreNonKeyboardFocus??s.ignoreNonKeyboardFocus.value),p=b(r,`open`,o,{defaultValue:r.defaultOpen,passive:r.open===void 0});i(p,e=>{s.onClose&&(e?(s.onOpen(),document.dispatchEvent(new CustomEvent(Z))):s.onClose())});let m=N(!1),h=N(),g=a(()=>p.value?m.value?`delayed-open`:`instant-open`:`closed`),{start:v,stop:y}=n(()=>{m.value=!0,p.value=!0},d,{immediate:!1});function x(){y(),m.value=!1,p.value=!0}function S(){y(),p.value=!1}function w(){v()}return xe({contentId:``,open:p,stateAttribute:g,trigger:h,onTriggerChange(e){h.value=e},onTriggerEnter(){s.isOpenDelayed.value?w():x()},onTriggerLeave(){c.value?S():y()},onOpen:x,onClose:S,disableHoverableContent:c,disableClosingTrigger:l,disabled:u,ignoreNonKeyboardFocus:f}),(e,t)=>(j(),_(k(ne),null,{default:C(()=>[M(e.$slots,`default`,{open:k(p)})]),_:3}))}}),$=D({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=Q(),s=L(),{forwardRef:c,currentElement:l}=E(),u=a(()=>n.ariaLabel||l.value?.textContent),d=a(()=>{let{ariaLabel:e,...t}=n;return I(t,s.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return y(()=>{v(window,`scroll`,e=>{e.target?.contains(i.trigger.value)&&i.onClose()},{capture:!0}),v(window,Z,i.onClose)}),(e,t)=>(j(),_(k(ie),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:t[0]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[1]||=e=>{k(i).disableClosingTrigger.value&&k(i).trigger.value?.contains(e.target)&&e.preventDefault(),r(`pointerDownOutside`,e)},onFocusOutside:t[2]||=f(()=>{},[`prevent`]),onDismiss:t[3]||=e=>k(i).onClose()},{default:C(()=>[h(k(H),O({ref:k(c),"data-state":k(i).stateAttribute.value},{...e.$attrs,...d.value},{style:{"--reka-tooltip-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-tooltip-content-available-width":`var(--reka-popper-available-width)`,"--reka-tooltip-content-available-height":`var(--reka-popper-available-height)`,"--reka-tooltip-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-tooltip-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:C(()=>[M(e.$slots,`default`),h(k(oe),{id:k(i).contentId,role:`tooltip`},{default:C(()=>[S(o(u.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),Ce=D({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(e){let t=R(e),{forwardRef:n,currentElement:r}=E(),{trigger:i,onClose:a}=Q(),o=L(),{isPointerInTransit:s,onPointerExit:c}=W(i,r);return o.isPointerInTransitRef=s,c(()=>{a()}),(e,r)=>(j(),_($,O({ref:k(n)},k(t)),{default:C(()=>[M(e.$slots,`default`)]),_:3},16))}}),we=D({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:n}){let r=e,i=n,a=Q(),o=F(r,i),{forwardRef:s}=E();return(e,n)=>(j(),_(k(U),{present:e.forceMount||k(a).open.value},{default:C(()=>[(j(),_(t(k(a).disableHoverableContent.value?$:Ce),O({ref:k(s)},k(o)),{default:C(()=>[M(e.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),Te=D({__name:`TooltipPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(j(),_(k(V),d(g(t)),{default:C(()=>[M(e.$slots,`default`)]),_:3},16))}}),Ee=D({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Q(),r=L();n.contentId||=z(void 0,`reka-tooltip-content`);let{forwardRef:i,currentElement:o}=E(),s=N(!1),c=N(!1),l=a(()=>n.disabled.value?{}:{click:v,focus:m,pointermove:f,pointerleave:p,pointerdown:d,blur:g});y(()=>{n.onTriggerChange(o.value)});function u(){setTimeout(()=>{s.value=!1},1)}function d(){n.open&&!n.disableClosingTrigger.value&&n.onClose(),s.value=!0,document.addEventListener(`pointerup`,u,{once:!0})}function f(e){e.pointerType!==`touch`&&!c.value&&!r.isPointerInTransitRef.value&&(n.onTriggerEnter(),c.value=!0)}function p(){n.onTriggerLeave(),c.value=!1}function m(e){s.value||n.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||n.onOpen()}function g(){n.onClose()}function v(){n.disableClosingTrigger.value||n.onClose()}return(e,r)=>(j(),_(k(re),{"as-child":``,reference:e.reference},{default:C(()=>[h(k(x),O({ref:k(i),"aria-describedby":k(n).open.value?k(n).contentId:void 0,"data-state":k(n).stateAttribute.value,as:e.as,"as-child":t.asChild,"data-grace-area-trigger":``},ee(l.value)),{default:C(()=>[M(e.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),De=D({__name:`Tooltip`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},delayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=F(e,t);return(e,t)=>(j(),_(k(Se),O({"data-slot":`tooltip`},k(n)),{default:C(t=>[M(e.$slots,`default`,d(g(t)))]),_:3},16))}}),Oe=D({inheritAttrs:!1,__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:0},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=F(s(n,`class`),r);return(e,t)=>(j(),_(k(Te),null,{default:C(()=>[h(k(we),O({"data-slot":`tooltip-content`},{...k(i),...e.$attrs},{class:k(A)(`data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-dropdown **:data-[slot=kbd]:rounded-sm bg-foreground text-background z-dropdown w-fit max-w-xs origin-(--reka-tooltip-content-transform-origin)`,n.class)}),{default:C(()=>[M(e.$slots,`default`),h(k(be),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),ke=D({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(j(),_(k(Ee),O({"data-slot":`tooltip-trigger`},t),{default:C(()=>[M(e.$slots,`default`)]),_:3},16))}}),Ae=D({__name:`Tabs`,props:{defaultValue:{},orientation:{},dir:{},activationMode:{},modelValue:{},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=F(s(n,`class`),r);return(e,t)=>(j(),_(k(_e),O({"data-slot":`tabs`,"data-orientation":k(i).orientation||`horizontal`},k(i),{class:k(A)(`gap-2 group/tabs flex data-[orientation=horizontal]:flex-col`,n.class)}),{default:C(t=>[M(e.$slots,`default`,d(g(t)))]),_:3},16,[`data-orientation`,`class`]))}}),je=D({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(e){let t=e,n=s(t,`class`,`variant`);return(r,i)=>(j(),_(k(ve),O({"data-slot":`tabs-list`,"data-variant":e.variant},k(n),{class:k(A)(`rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col`,e.variant===`default`&&`bg-muted`,e.variant===`line`&&`gap-1 bg-transparent`,t.class)}),{default:C(()=>[M(r.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),Me=D({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=R(s(t,`class`));return(e,r)=>(j(),_(k(ye),O({"data-slot":`tabs-trigger`,class:k(A)(`gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg:not([class*=size-])]:size-4 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent`,`data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,t.class)},k(n)),{default:C(()=>[M(e.$slots,`default`)]),_:3},16,[`class`]))}});export{Oe as a,Y as c,ke as i,J as l,je as n,De as o,Ae as r,X as s,Me as t};
@@ -0,0 +1,3 @@
1
+ import{$ as e,A as t,B as n,Ct as r,E as i,Ft as a,Mt as o,O as s,Ot as c,Q as l,Qt as u,R as d,S as f,St as p,U as m,Wt as h,X as g,Yt as _,Zt as v,_t as y,at as b,bt as x,et as S,gt as C,h as w,i as T,it as E,j as D,jt as O,kt as k,m as A,mt as ee,n as j,nt as M,o as N,ot as P,pt as F,q as te,qt as I,r as ne,tt as L,vt as R,xt as z,zt as B}from"./button-BBiWml8B.js";import{t as re}from"./arrow-down-BFgGYafs.js";import{t as ie}from"./sparkles-B5RWZZuf.js";import{n as ae,r as oe,t as se}from"./TabsTrigger-DdjWJbUq.js";import{n as ce,t as le}from"./CollapsibleContent-pBG4UkLo.js";import{t as ue}from"./CollapsibleTrigger-D5TkgXmz.js";import{a as de,i as fe,n as pe,o as me,r as he,t as ge}from"./dialog-DRYeWncC.js";import{t as V}from"./Label-BQXea0mo.js";import{t as _e}from"./Separator-BqIs_Dy3.js";import{t as ve}from"./Switch-D1ER0j6H.js";import{B as ye,C as be,G as xe,X as Se,Z as Ce,_ as we,_t as Te,a as H,g as U,gt as Ee,h as De,ht as Oe,m as ke,v as Ae,vt as je,yt as Me,z as W}from"./index-DTujoAWx.js";import{t as G}from"./badge-Db4OYMEf.js";import{t as K}from"./Input-DMDfXTXB.js";import{t as Ne}from"./useClipboard-Bx3CrPal.js";import{t as Pe}from"./_plugin-vue_export-helper-BH2M0_bF.js";var Fe=d(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),Ie=d(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),Le=d(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),Re=d(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),ze=d(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),[q,Be]=Se(`ScrollAreaRoot`),Ve=P({__name:`ScrollAreaRoot`,props:{type:{type:String,required:!1,default:`hover`},dir:{type:String,required:!1},scrollHideDelay:{type:Number,required:!1,default:600},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:t}){let n=e,r=B(0),i=B(0),a=B(),o=B(),s=B(),c=B(),l=B(!1),u=B(!1),{type:d,dir:f,scrollHideDelay:p}=h(n),m=xe(f);function g(){a.value?.scrollTo({top:0})}function _(){a.value?.scrollTo({top:0,left:0})}t({viewport:a,scrollTop:g,scrollTopLeft:_});let{forwardRef:y,currentElement:b}=N();return Be({type:d,dir:m,scrollHideDelay:p,scrollArea:b,viewport:a,onViewportChange:e=>{a.value=e||void 0},content:o,onContentChange:e=>{o.value=e},scrollbarX:s,scrollbarXEnabled:l,scrollbarY:c,scrollbarYEnabled:u,onScrollbarXChange:e=>{s.value=e||void 0},onScrollbarYChange:e=>{c.value=e||void 0},onScrollbarXEnabledChange:e=>{l.value=e},onScrollbarYEnabledChange:e=>{u.value=e},onCornerWidthChange:e=>{r.value=e},onCornerHeightChange:e=>{i.value=e}}),(e,t)=>(R(),S(I(T),{ref:I(y),"as-child":n.asChild,as:e.as,dir:I(m),style:v({position:`relative`,"--reka-scroll-area-corner-width":`${r.value}px`,"--reka-scroll-area-corner-height":`${i.value}px`})},{default:O(()=>[z(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`dir`,`style`]))}}),He=P({__name:`ScrollAreaCornerImpl`,setup(e){let t=q(),n=B(0),r=B(0),i=l(()=>!!n.value&&!!r.value);function a(){let e=t.scrollbarX.value?.offsetHeight||0;t.onCornerHeightChange(e),r.value=e}function o(){let e=t.scrollbarY.value?.offsetWidth||0;t.onCornerWidthChange(e),n.value=e}return A(t.scrollbarX.value,a),A(t.scrollbarY.value,o),c(()=>t.scrollbarX.value,a),c(()=>t.scrollbarY.value,o),(e,a)=>i.value?(R(),S(I(T),F({key:0,style:{width:`${n.value}px`,height:`${r.value}px`,position:`absolute`,right:I(t).dir.value===`ltr`?0:void 0,left:I(t).dir.value===`rtl`?0:void 0,bottom:0}},e.$parent?.$props),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`style`])):L(`v-if`,!0)}}),Ue=P({__name:`ScrollAreaCorner`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{forwardRef:n}=N(),r=q(),i=l(()=>!!r.scrollbarX.value&&!!r.scrollbarY.value),a=l(()=>r.type.value!==`scroll`&&i.value);return(e,r)=>a.value?(R(),S(He,F({key:0},t,{ref:I(n)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16)):L(`v-if`,!0)}});function We(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function J(e){let t=Ge(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Ge(e,t){let n=e/t;return Number.isNaN(n)?0:n}function Ke(e,t=()=>{}){let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)}function qe(e,t,n=`ltr`){let r=J(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=n===`ltr`?[0,o]:[o*-1,0],l=Ce(e,c[0],c[1]);return We([0,o],[0,s])(l)}function Y(e){return e?Number.parseInt(e,10):0}function Je(e,t,n,r=`ltr`){let i=J(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return We([c,l],d)(e)}function Ye(e,t){return e>0&&e<t}var Xe=P({__name:`ScrollAreaScrollbarX`,setup(e){let t=q(),n=it(),{forwardRef:r,currentElement:i}=N();C(()=>{i.value&&t.onScrollbarXChange(i.value)}),y(()=>{t.onScrollbarXChange(null)});let a=l(()=>n.sizes.value);return(e,i)=>(R(),S(st,{ref:I(r),"is-horizontal":!0,"data-orientation":`horizontal`,style:v({bottom:0,left:I(t).dir.value===`rtl`?`var(--reka-scroll-area-corner-width)`:0,right:I(t).dir.value===`ltr`?`var(--reka-scroll-area-corner-width)`:0,"--reka-scroll-area-thumb-width":a.value?`${I(J)(a.value)}px`:void 0}),onOnDragScroll:i[0]||=e=>I(n).onDragScroll(e.x)},{default:O(()=>[z(e.$slots,`default`)]),_:3},8,[`style`]))}}),Ze=P({__name:`ScrollAreaScrollbarY`,setup(e){let t=q(),n=it(),{forwardRef:r,currentElement:i}=N();C(()=>{i.value&&t.onScrollbarYChange(i.value)}),y(()=>{t.onScrollbarYChange(null)});let a=l(()=>n.sizes.value);return(e,i)=>(R(),S(st,{ref:I(r),"is-horizontal":!1,"data-orientation":`vertical`,style:v({top:0,right:I(t).dir.value===`ltr`?0:void 0,left:I(t).dir.value===`rtl`?0:void 0,bottom:`var(--reka-scroll-area-corner-height)`,"--reka-scroll-area-thumb-height":a.value?`${I(J)(a.value)}px`:void 0}),onOnDragScroll:i[0]||=e=>I(n).onDragScroll(e.y)},{default:O(()=>[z(e.$slots,`default`)]),_:3},8,[`style`]))}}),Qe=P({__name:`ScrollAreaScrollbarAuto`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=q(),n=X(),{forwardRef:r}=N(),a=B(!1),o=i(()=>{if(t.viewport.value){let e=t.viewport.value.offsetWidth<t.viewport.value.scrollWidth,r=t.viewport.value.offsetHeight<t.viewport.value.scrollHeight;a.value=n.isHorizontal.value?e:r}},10);return C(()=>o()),A(t.viewport,o),A(t.content,o),(e,t)=>(R(),S(I(W),{present:e.forceMount||a.value},{default:O(()=>[b(ot,F(e.$attrs,{ref:I(r),"data-state":a.value?`visible`:`hidden`}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),$e=P({inheritAttrs:!1,__name:`ScrollAreaScrollbarGlimpse`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=q(),n=X(),{forwardRef:r}=N(),{state:a,dispatch:o}=ye(`hidden`,{hidden:{POINTER_ENTER:`glimpse`,SCROLL:`scrolling`},glimpse:{HIDE:`hidden`,POINTER_LEAVE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`glimpse`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),s=l(()=>a.value!==`hidden`);function c(){o(`POINTER_ENTER`)}function u(){o(`POINTER_LEAVE`)}let d=i(()=>o(`SCROLL_END`),100);return k(e=>{if(a.value===`glimpse`){let n=window.setTimeout(o,t.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(n)})}}),k(e=>{if(a.value===`idle`){let n=window.setTimeout(o,t.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(n)})}}),k(e=>{let r=t.viewport.value,i=n.isHorizontal.value?`scrollLeft`:`scrollTop`;if(r){let t=r[i],n=()=>{let e=r[i];t!==e&&(o(`SCROLL`),d()),t=e};r.addEventListener(`scroll`,n),e(()=>{r.removeEventListener(`scroll`,n)})}}),C(()=>{let e=t.scrollArea.value;e&&(e.addEventListener(`pointerenter`,c),e.addEventListener(`pointerleave`,u))}),y(()=>{let e=t.scrollArea.value;e&&(e.removeEventListener(`pointerenter`,c),e.removeEventListener(`pointerleave`,u))}),(e,t)=>(R(),S(I(W),{present:e.forceMount||s.value},{default:O(()=>[b(Qe,F(e.$attrs,{ref:I(r),"data-state":s.value?`visible`:`hidden`}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),et=P({inheritAttrs:!1,__name:`ScrollAreaScrollbarHover`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=q(),{forwardRef:n}=N(),r,i=B(!1);function a(){window.clearTimeout(r),i.value=!0}function o(){r=window.setTimeout(()=>{i.value=!1},t.scrollHideDelay.value)}return C(()=>{let e=t.scrollArea.value;e&&(e.addEventListener(`pointerenter`,a),e.addEventListener(`pointerleave`,o))}),y(()=>{let e=t.scrollArea.value;e&&(window.clearTimeout(r),e.removeEventListener(`pointerenter`,a),e.removeEventListener(`pointerleave`,o))}),(e,t)=>(R(),S(I(W),{present:e.forceMount||i.value},{default:O(()=>[b(Qe,F(e.$attrs,{ref:I(n),"data-state":i.value?`visible`:`hidden`}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),tt=P({__name:`ScrollAreaScrollbarScroll`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let t=q(),n=X(),{forwardRef:r}=N(),{state:a,dispatch:o}=ye(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),s=l(()=>a.value!==`hidden`);k(e=>{if(a.value===`idle`){let n=window.setTimeout(o,t.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(n)})}});let c=i(()=>o(`SCROLL_END`),100);return k(e=>{let r=t.viewport.value,i=n.isHorizontal.value?`scrollLeft`:`scrollTop`;if(r){let t=r[i],n=()=>{let e=r[i];t!==e&&(o(`SCROLL`),c()),t=e};r.addEventListener(`scroll`,n),e(()=>{r.removeEventListener(`scroll`,n)})}}),(e,t)=>(R(),S(I(W),{present:e.forceMount||s.value},{default:O(()=>[b(ot,F(e.$attrs,{ref:I(r),"data-state":s.value?`visible`:`hidden`}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),[X,nt]=Se(`ScrollAreaScrollbar`),rt=P({inheritAttrs:!1,__name:`ScrollAreaScrollbar`,props:{orientation:{type:String,required:!1,default:`vertical`},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`div`}},setup(e){let t=e,{forwardRef:n}=N(),r=q(),i=l(()=>t.orientation===`horizontal`);c(i,()=>{i.value?r.onScrollbarXEnabledChange(!0):r.onScrollbarYEnabledChange(!0)},{immediate:!0}),y(()=>{r.onScrollbarXEnabledChange(!1),r.onScrollbarYEnabledChange(!1)});let{orientation:a,forceMount:o,asChild:s,as:u}=h(t);return nt({orientation:a,forceMount:o,isHorizontal:i,as:u,asChild:s}),(e,t)=>I(r).type.value===`hover`?(R(),S(et,F({key:0},e.$attrs,{ref:I(n),"force-mount":I(o)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`force-mount`])):I(r).type.value===`scroll`?(R(),S(tt,F({key:1},e.$attrs,{ref:I(n),"force-mount":I(o)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`force-mount`])):I(r).type.value===`glimpse`?(R(),S($e,F({key:2},e.$attrs,{ref:I(n),"force-mount":I(o)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`force-mount`])):I(r).type.value===`auto`?(R(),S(Qe,F({key:3},e.$attrs,{ref:I(n),"force-mount":I(o)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16,[`force-mount`])):I(r).type.value===`always`?(R(),S(ot,F({key:4},e.$attrs,{ref:I(n),"data-state":`visible`}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16)):L(`v-if`,!0)}}),[it,at]=Se(`ScrollAreaScrollbarVisible`),ot=P({__name:`ScrollAreaScrollbarVisible`,setup(e){let t=q(),n=X(),{forwardRef:r}=N(),i=B({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),a=l(()=>{let e=Ge(i.value.viewport,i.value.content);return e>0&&e<1}),o=B(),s=B(0);function c(e,n){if(m.value){let r=t.viewport.value.scrollLeft+e.deltaY;t.viewport.value.scrollLeft=r,Ye(r,n)&&e.preventDefault()}else{let r=t.viewport.value.scrollTop+e.deltaY;t.viewport.value.scrollTop=r,Ye(r,n)&&e.preventDefault()}}function u(e,t){m.value?s.value=t.x:s.value=t.y}function d(e){s.value=0}function f(e){i.value=e}function p(e,t){return Je(e,s.value,i.value,t)}let m=l(()=>n.isHorizontal.value);function h(e){m.value?t.viewport.value.scrollLeft=p(e,t.dir.value):t.viewport.value.scrollTop=p(e)}function g(){if(m.value){if(t.viewport.value&&o.value){let e=t.viewport.value.scrollLeft,n=qe(e,i.value,t.dir.value);o.value.style.transform=`translate3d(${n}px, 0, 0)`}}else if(t.viewport.value&&o.value){let e=t.viewport.value.scrollTop,n=qe(e,i.value);o.value.style.transform=`translate3d(0, ${n}px, 0)`}}function _(e){o.value=e}return at({sizes:i,hasThumb:a,handleWheelScroll:c,handleThumbDown:u,handleThumbUp:d,handleSizeChange:f,onThumbPositionChange:g,onThumbChange:_,onDragScroll:h}),(e,t)=>m.value?(R(),S(Xe,F({key:0},e.$attrs,{ref:I(r)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16)):(R(),S(Ze,F({key:1},e.$attrs,{ref:I(r)}),{default:O(()=>[z(e.$slots,`default`)]),_:3},16))}}),st=P({__name:`ScrollAreaScrollbarImpl`,props:{isHorizontal:{type:Boolean,required:!0}},emits:[`onDragScroll`,`onWheelScroll`,`onThumbPointerDown`],setup(e,{emit:t}){let n=e,r=t,i=q(),a=it(),o=X(),{forwardRef:s,currentElement:c}=N(),l=B(``),u=B();function d(e){u.value&&r(`onDragScroll`,{x:e.clientX-u.value?.left,y:e.clientY-u.value?.top})}function f(e){e.button===0&&(e.target.setPointerCapture(e.pointerId),u.value=c.value.getBoundingClientRect(),l.value=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,i.viewport&&(i.viewport.value.style.scrollBehavior=`auto`),d(e))}function p(e){d(e)}function m(e){let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=l.value,i.viewport&&(i.viewport.value.style.scrollBehavior=``),u.value=void 0}function h(e){let t=e.target,n=c.value?.contains(t),r=a.sizes.value.content-a.sizes.value.viewport;n&&a.handleWheelScroll(e,r)}C(()=>{document.addEventListener(`wheel`,h,{passive:!1})}),y(()=>{document.removeEventListener(`wheel`,h)});function g(){c.value&&(n.isHorizontal?a.handleSizeChange({content:i.viewport.value?.scrollWidth??0,viewport:i.viewport.value?.offsetWidth??0,scrollbar:{size:c.value.clientWidth??0,paddingStart:Y(getComputedStyle(c.value).paddingLeft),paddingEnd:Y(getComputedStyle(c.value).paddingRight)}}):a.handleSizeChange({content:i.viewport.value?.scrollHeight??0,viewport:i.viewport.value?.offsetHeight??0,scrollbar:{size:c.value?.clientHeight??0,paddingStart:Y(getComputedStyle(c.value).paddingTop),paddingEnd:Y(getComputedStyle(c.value).paddingBottom)}}),a.onThumbPositionChange())}return A(c,g),A(i.content,g),(e,t)=>(R(),S(I(T),{ref:I(s),style:{position:`absolute`},"data-scrollbarimpl":``,as:I(o).as.value,"as-child":I(o).asChild.value,onPointerdown:f,onPointermove:p,onPointerup:m},{default:O(()=>[z(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),ct=P({__name:`ScrollAreaThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,n=q(),r=it();function i(e){let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top;r.handleThumbDown(e,{x:n,y:i})}function a(e){r.handleThumbUp(e)}let{forwardRef:o,currentElement:c}=N(),u=B(),d=l(()=>n.viewport.value);function f(){u.value||(u.value=Ke(d.value,r.onThumbPositionChange),r.onThumbPositionChange())}return s(l(()=>r.sizes.value),()=>{r.onThumbChange(c.value),d.value&&(r.onThumbPositionChange(),d.value.addEventListener(`scroll`,f))}),y(()=>{d.value.removeEventListener(`scroll`,f),n.viewport.value?.removeEventListener(`scroll`,f)}),(e,n)=>(R(),S(I(T),{ref:I(o),"data-state":I(r).hasThumb?`visible`:`hidden`,style:{width:`var(--reka-scroll-area-thumb-width)`,height:`var(--reka-scroll-area-thumb-height)`},"as-child":t.asChild,as:e.as,onPointerdown:i,onPointerup:a},{default:O(()=>[z(e.$slots,`default`)]),_:3},8,[`data-state`,`as-child`,`as`]))}}),lt=P({inheritAttrs:!1,__name:`ScrollAreaViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(t,{expose:n}){let r=t,{nonce:i}=h(r),a=be(i),o=q(),s=B();C(()=>{o.onViewportChange(s.value),o.onContentChange(l.value)}),n({viewportElement:s});let{forwardRef:c,currentElement:l}=N();return(t,n)=>(R(),M(g,null,[e(`div`,F({ref_key:`viewportElement`,ref:s,"data-reka-scroll-area-viewport":``,style:{overflowX:I(o).scrollbarXEnabled.value?`scroll`:`hidden`,overflowY:I(o).scrollbarYEnabled.value?`scroll`:`hidden`}},t.$attrs,{tabindex:0}),[b(I(T),{ref:I(c),style:v({minWidth:I(o).scrollbarXEnabled.value?`fit-content`:void 0}),"as-child":r.asChild,as:t.as},{default:O(()=>[z(t.$slots,`default`)]),_:3},8,[`style`,`as-child`,`as`])],16),b(I(T),{as:`style`,nonce:I(a)},{default:O(()=>n[0]||=[E(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-scroll-area-viewport] { scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; } [data-reka-scroll-area-viewport]::-webkit-scrollbar { display:none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),ut=P({__name:`Textarea`,props:{class:{type:[Boolean,null,String,Object,Array]},defaultValue:{},modelValue:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=w(n,`modelValue`,t,{passive:!0,defaultValue:n.defaultValue});return(e,t)=>o((R(),M(`textarea`,{"onUpdate:modelValue":t[0]||=e=>a(r)?r.value=e:null,"data-slot":`textarea`,class:_(I(ne)(`border-input dark:bg-input/30 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 rounded-lg border bg-transparent px-2.5 py-2 text-base transition-colors focus-visible:ring-3 aria-invalid:ring-3 md:text-sm flex field-sizing-content min-h-16 w-full outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,n.class))},null,2)),[[te,I(r)]])}}),dt={class:`flex items-center gap-2`},ft={key:0,class:`rounded-lg border border-success/20 bg-success/5 px-3 py-2.5 flex items-start gap-2.5`},pt={class:`flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-success/10 mt-0.5`},mt={class:`text-sm text-success-foreground leading-relaxed`},ht={class:`space-y-4`},gt={class:`space-y-3`},_t={class:`rounded-lg border bg-muted/30 p-3 space-y-3`},vt={class:`text-xs font-medium text-muted-foreground uppercase tracking-wide`},yt={class:`grid grid-cols-2 gap-3`},bt={class:`rounded-lg border bg-muted/30 p-3 space-y-3`},xt={class:`text-xs font-medium text-muted-foreground uppercase tracking-wide`},St={class:`grid grid-cols-2 gap-3`},Ct={key:0},wt={class:`flex items-center gap-2.5 pt-1`},Tt=100,Et=599,Dt=100,Ot=100,kt=P({__name:`AiRulePreviewDialog`,props:{open:{type:Boolean},rule:{},summary:{}},emits:[`update:open`,`saved`],setup(n,{emit:r}){let{t:i}=m(),a=n,o=r;function s(){return{name:``,status_code:429,body_pattern:``,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4,is_active:!0,provider_id:`__all__`}}let l=B(s());c([()=>a.open,()=>a.rule],([e,t])=>{e&&t&&(l.value={...t,is_active:!0,provider_id:`__all__`},p.value=!1,f())},{immediate:!0});let d=B([]);async function f(){try{d.value=await t.getProviders()}catch(e){console.error(`AiRulePreviewDialog.loadProviders:`,e),H.error(D(e,i(`logs.messages.loadProvidersFailed`)))}}let p=B(!1);async function h(){if(p.value)return;let e=[];l.value.name.trim()||e.push(i(`retryRules.messages.nameRequired`));let n=l.value.status_code;(typeof n!=`number`||isNaN(n)||n<Tt||n>Et)&&e.push(i(`retryRules.messages.statusCodeRange`));try{new RegExp(l.value.body_pattern)}catch(t){console.error(`AiRulePreviewDialog.validateRule:`,t),e.push(i(`retryRules.messages.bodyPatternInvalid`))}l.value.body_pattern.trim()||e.push(i(`retryRules.messages.bodyPatternInvalid`));let r=l.value.retry_delay_ms;(typeof r!=`number`||isNaN(r)||r<Dt)&&e.push(i(`retryRules.messages.delayMin`));let a=l.value.max_retries;(typeof a!=`number`||isNaN(a)||a<0||a>Ot)&&e.push(i(`retryRules.messages.retriesRange`));let s=l.value.max_delay_ms;if(l.value.retry_strategy===`exponential`&&(typeof s!=`number`||isNaN(s)||s<Dt)&&e.push(i(`retryRules.messages.delayMin`)),e.length>0){H.error(e.join(`; `));return}p.value=!0;try{await t.createRetryRule({name:l.value.name,status_code:Number(l.value.status_code),body_pattern:l.value.body_pattern,is_active:+!!l.value.is_active,retry_strategy:l.value.retry_strategy,retry_delay_ms:Number(l.value.retry_delay_ms),max_retries:Number(l.value.max_retries),max_delay_ms:l.value.retry_strategy===`exponential`?Number(l.value.max_delay_ms):void 0,provider_id:l.value.provider_id===`__all__`?null:l.value.provider_id||null}),H.success(i(`retryRules.messages.saveCompleted`)),o(`saved`),o(`update:open`,!1)}catch(e){console.error(`AiRulePreviewDialog.handleSave:`,e),H.error(D(e,i(`retryRules.messages.saveFailed`)))}finally{p.value=!1}}return(t,r)=>(R(),S(I(me),{open:n.open,"onUpdate:open":r[10]||=e=>o(`update:open`,e)},{default:O(()=>[b(I(de),{class:`sm:max-w-xl`},{default:O(()=>[b(I(pe),{class:`gap-1.5`},{default:O(()=>[e(`div`,dt,[b(I(ie),{class:`h-4 w-4 text-primary shrink-0`}),b(I(ge),null,{default:O(()=>[E(u(I(i)(`logs.aiGeneratedRule`)),1)]),_:1})]),b(I(G),{variant:`secondary`,class:`w-fit text-[10px]`},{default:O(()=>[E(u(I(i)(`logs.aiGenerated`)),1)]),_:1})]),_:1}),n.summary?(R(),M(`div`,ft,[e(`div`,pt,[b(I(Te),{class:`h-3 w-3 text-success`})]),e(`p`,mt,u(n.summary),1)])):L(``,!0),e(`div`,ht,[e(`div`,gt,[e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.name`)),1)]),_:1}),b(I(K),{modelValue:l.value.name,"onUpdate:modelValue":r[0]||=e=>l.value.name=e,type:`text`,class:`mt-1`},null,8,[`modelValue`])]),e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.provider`)),1)]),_:1}),b(I(Ae),{modelValue:l.value.provider_id,"onUpdate:modelValue":r[1]||=e=>l.value.provider_id=e},{default:O(()=>[b(I(De),{class:`mt-1`},{default:O(()=>[b(I(ke),{placeholder:I(i)(`retryRules.providerPlaceholder`)},null,8,[`placeholder`])]),_:1}),b(I(we),null,{default:O(()=>[b(I(U),{value:`__all__`},{default:O(()=>[E(u(I(i)(`retryRules.providerAll`)),1)]),_:1}),(R(!0),M(g,null,x(d.value,e=>(R(),S(I(U),{key:e.id,value:e.id},{default:O(()=>[E(u(e.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`])])]),e(`div`,_t,[e(`p`,vt,u(I(i)(`logs.matchConditions`)),1),e(`div`,yt,[e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.statusCode`)),1)]),_:1}),b(I(K),{modelValue:l.value.status_code,"onUpdate:modelValue":r[2]||=e=>l.value.status_code=e,modelModifiers:{number:!0},type:`number`,class:`mt-1`},null,8,[`modelValue`])]),e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.retryStrategy`)),1)]),_:1}),b(I(Ae),{modelValue:l.value.retry_strategy,"onUpdate:modelValue":r[3]||=e=>l.value.retry_strategy=e},{default:O(()=>[b(I(De),{class:`mt-1`},{default:O(()=>[b(I(ke))]),_:1}),b(I(we),null,{default:O(()=>[b(I(U),{value:`exponential`},{default:O(()=>[E(u(I(i)(`retryRules.strategy.exponential`)),1)]),_:1}),b(I(U),{value:`fixed`},{default:O(()=>[E(u(I(i)(`retryRules.strategy.fixed`)),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])])]),e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.bodyPattern`)),1)]),_:1}),b(I(ut),{modelValue:l.value.body_pattern,"onUpdate:modelValue":r[4]||=e=>l.value.body_pattern=e,class:`font-mono mt-1`,rows:2},null,8,[`modelValue`])])]),e(`div`,bt,[e(`p`,xt,u(I(i)(`logs.retryParams`)),1),e(`div`,St,[e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(l.value.retry_strategy===`fixed`?I(i)(`retryRules.dialog.intervalMs`):I(i)(`retryRules.dialog.initialDelayMs`)),1)]),_:1}),b(I(K),{modelValue:l.value.retry_delay_ms,"onUpdate:modelValue":r[5]||=e=>l.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,class:`mt-1`},null,8,[`modelValue`])]),e(`div`,null,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.maxRetries`)),1)]),_:1}),b(I(K),{modelValue:l.value.max_retries,"onUpdate:modelValue":r[6]||=e=>l.value.max_retries=e,modelModifiers:{number:!0},type:`number`,class:`mt-1`},null,8,[`modelValue`])])]),l.value.retry_strategy===`exponential`?(R(),M(`div`,Ct,[b(I(V),{class:`text-xs text-muted-foreground font-medium`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.maxDelayMs`)),1)]),_:1}),b(I(K),{modelValue:l.value.max_delay_ms,"onUpdate:modelValue":r[7]||=e=>l.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,class:`mt-1`},null,8,[`modelValue`])])):L(``,!0)]),e(`div`,wt,[b(I(ve),{checked:l.value.is_active,"onUpdate:checked":r[8]||=e=>l.value.is_active=e,id:`rule-active`},null,8,[`checked`]),b(I(V),{for:`rule-active`,class:`text-sm text-foreground cursor-pointer`},{default:O(()=>[E(u(I(i)(`retryRules.dialog.enable`)),1)]),_:1})])]),b(I(he),{class:`border-t pt-4 mt-2`},{default:O(()=>[b(I(j),{variant:`outline`,onClick:r[9]||=e=>o(`update:open`,!1)},{default:O(()=>[E(u(I(i)(`common.cancel`)),1)]),_:1}),b(I(j),{disabled:p.value,onClick:h},{default:O(()=>[E(u(I(i)(`logs.saveRule`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]))}});function At(e,t){if(!e)return`off`;try{let n=JSON.parse(e)?.body;return n?t===`anthropic`?n.thinking?.type??`off`:n.reasoning?.effort??n.reasoning_effort??`off`:`off`}catch{return`off`}}var Z=1e3;function jt(e,t){let n=e.attempts.length>0?e.attempts[e.attempts.length-1]:void 0,r=e.streamMetrics,i=r?.tokensPerSecond??null;if(!i&&r&&r.outputTokens&&r.ttftMs&&e.completedAt){let t=(e.completedAt-e.startTime-r.ttftMs)/Z;t>0&&(i=r.outputTokens/t)}return{id:e.id,model:e.model,backendModel:null,originalModel:null,statusCode:e.status===`completed`?n?.statusCode??null:null,isStream:e.isStream,apiType:e.apiType,providerName:e.providerName,clientIp:e.clientIp,sessionId:e.sessionId??null,latencyMs:e.completedAt?e.completedAt-e.startTime:null,ttftMs:r?.ttftMs??null,inputTokens:r?.inputTokens??null,outputTokens:r?.outputTokens??null,tokensPerSecond:i,cacheReadTokens:r?.cacheReadTokens??null,cacheWriteTokens:null,stopReason:r?.stopReason??null,isComplete:r?.isComplete??!1,attempts:e.attempts.map(e=>({statusCode:e.statusCode,error:e.error,latencyMs:e.latencyMs,providerId:e.providerId,model:e.model,apiType:e.apiType})),status:e.status,clientRequest:e.clientRequest??null,upstreamRequest:e.upstreamRequest??null,responseBody:t??null,upstreamResponse:null,errorMessage:null,createdAt:null,inputTokensEstimated:!1,clientType:null,cacheReadTokensEstimated:r?.cacheReadTokensEstimated??null,mappingReason:e.mappingReason,thinkingLevel:e.thinkingLevel??`off`,upstreamApiType:null,upstreamBaseUrl:null}}function Mt(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.statusCode==`number`&&t.headers&&!t.content&&!t.choices?typeof t.body==`string`?t.body:null:e}catch{return e}}var Nt=[`stream_error: upstream returned 200 but body contains error`],Pt=new Set([`direct_format`,`group_base_rule`,`group_schedule`,`fallback_provider`,`overflow_redirect`,`failover_retry`]);function Ft(e){if(e)try{let t=JSON.parse(e),n=Array.isArray(t)?t:[];if(n.length===0)return;for(let e of n)if(e.stage===`overflow`&&e.triggered===!0)return`overflow_redirect`;for(let e of n)if(e.stage===`routing`&&typeof e.mapping_reason==`string`)return Pt.has(e.mapping_reason)?e.mapping_reason:void 0;return}catch{return}}function It(e){return e?Nt.some(t=>e.startsWith(t)):!1}function Lt(e,t){let n=e.input_tokens??null,r=e.output_tokens??null,i=e.ttft_ms??null,a=e.tokens_per_second??null;if(!a&&r&&i&&e.latency_ms){let t=(e.latency_ms-i)/Z;t>0&&(a=r/t)}let o=Mt(e.upstream_response)??e.stream_text_content??null;return{id:e.id,model:e.original_model??e.model??`unknown`,backendModel:e.backend_model,originalModel:e.original_model,statusCode:e.status_code,isStream:!!e.is_stream,apiType:e.api_type===`openai`||e.api_type===`openai-responses`||e.api_type===`anthropic`?e.api_type:`openai`,providerName:e.provider_name,clientIp:void 0,sessionId:e.session_id??null,latencyMs:e.latency_ms,ttftMs:i,inputTokens:n,outputTokens:r,tokensPerSecond:a,cacheReadTokens:e.cache_read_tokens??null,cacheWriteTokens:null,stopReason:e.stop_reason??null,isComplete:!!e.metrics_complete,attempts:[...(t??[]).map(e=>({statusCode:e.status_code,error:e.error_message,latencyMs:e.latency_ms??0,providerId:e.provider_id??``,model:e.backend_model??e.model??void 0,apiType:e.api_type})),{statusCode:e.status_code,error:e.error_message,latencyMs:e.latency_ms??0,providerId:e.provider_id??``,model:e.backend_model??e.model??void 0,apiType:e.api_type}],status:(e.status_code??0)>=400?`failed`:`completed`,clientRequest:e.client_request,upstreamRequest:e.upstream_request,responseBody:o,upstreamResponse:e.upstream_response,errorMessage:It(e.error_message)?null:e.error_message,createdAt:e.created_at,inputTokensEstimated:e.input_tokens_estimated===1,clientType:e.client_type??null,cacheReadTokensEstimated:e.cache_read_tokens_estimated??null,mappingReason:Ft(e.pipeline_snapshot),thinkingLevel:e.thinking_level??At(e.client_request,e.api_type),upstreamApiType:e.upstream_api_type??null,upstreamBaseUrl:e.upstream_base_url??null}}var Rt=P({__name:`ScrollBar`,props:{orientation:{default:`vertical`},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=f(t,`class`);return(r,i)=>(R(),S(I(rt),F({"data-slot":`scroll-area-scrollbar`,"data-orientation":e.orientation},I(n),{class:I(ne)(`data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent flex touch-none p-px transition-colors select-none`,t.class)}),{default:O(()=>[b(I(ct),{"data-slot":`scroll-area-thumb`,class:`rounded-full relative flex-1 bg-border`})]),_:1},16,[`data-orientation`,`class`]))}}),Q=P({__name:`ScrollArea`,props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=f(t,`class`);return(e,r)=>(R(),S(I(Ve),F({"data-slot":`scroll-area`},I(n),{class:I(ne)(`relative`,t.class)}),{default:O(()=>[b(I(lt),{"data-slot":`scroll-area-viewport`,class:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`},{default:O(()=>[z(e.$slots,`default`)]),_:3}),b(Rt),b(I(Ue))]),_:3},16,[`class`]))}});function zt(e,t){if(!e)return t||``;try{let n=JSON.parse(e);return typeof n.statusCode==`number`&&(n.headers||n.body!==void 0)?n.body===null&&t?JSON.stringify({...n,body:t},null,Bt):JSON.stringify(n,null,Bt):e}catch{return e}}var Bt=2,Vt=new Set([`choices`,`content`]);function Ht(e,t){if(!e&&!t)return``;let n=Ut(e),r=n?.headers,i=n?.body??t;if(r){let e={headers:r};return i&&(e.body=Wt(i)),JSON.stringify(e,null,Bt)}if(i){let e=Wt(i);return JSON.stringify(e,null,Bt)}return``}function Ut(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t.statusCode==`number`&&(t.headers||t.body!==void 0)?{headers:t.headers??{},body:typeof t.body==`string`?t.body:t.body==null?null:JSON.stringify(t.body)}:null}catch{return null}}function Wt(e){try{let t=JSON.parse(e);if(typeof t==`object`&&t){let e={};for(let[n,r]of Object.entries(t))Vt.has(n)||(e[n]=r);return e}return e}catch{return e}}var Gt={class:`flex flex-col h-full`},Kt={key:0,class:`flex-1 overflow-y-auto`},qt={class:`rounded-md border overflow-hidden mb-3`},Jt={class:`flex items-center gap-2 px-2.5 py-2 border-b bg-muted/20`},Yt={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium`},Xt={class:`text-[13px] font-medium`},Zt={class:`px-2.5 py-1`},Qt={class:`flex items-center gap-0 text-[11px]`},$t={class:`text-muted-foreground/60 font-mono text-[10px] w-5 shrink-0`},en={class:`flex-1 min-w-0 overflow-x-auto whitespace-nowrap scrollbar-none`},tn={class:`font-mono`},nn={class:`text-muted-foreground`},rn={class:`flex items-center gap-1.5 pl-5 mt-0.5 flex-wrap`},an={class:`text-muted-foreground/60 font-mono text-[11px]`},on={class:`flex items-center gap-1.5 mb-3`},sn={key:1,class:`font-mono text-[10px] text-muted-foreground ml-1`},cn={key:0,class:`rounded-md border px-3 py-2 mb-3`,style:{background:`oklch(0.3 0.08 25 / 15%)`,"border-color":`oklch(0.58 0.22 25 / 30%)`}},ln={class:`font-mono text-xs font-semibold text-destructive break-all`},un={class:`text-[10px] text-muted-foreground mt-0.5`},dn={class:`grid grid-cols-2 gap-0 p-0 border rounded-md overflow-hidden mb-3`},fn={class:`px-2.5 py-1.5 min-w-0 border-b border-r`},pn={class:`text-[9px] uppercase tracking-wider text-muted-foreground`},mn={class:`text-sm font-semibold truncate`},hn={class:`px-2.5 py-1.5 min-w-0 border-b`},gn={class:`text-[9px] uppercase tracking-wider text-muted-foreground`},_n={class:`text-sm font-semibold truncate`},vn={class:`px-2.5 py-1.5 min-w-0 border-b border-r`},yn={class:`text-[9px] uppercase tracking-wider text-muted-foreground`},bn={class:`text-sm font-semibold truncate`},xn={class:`px-2.5 py-1.5 min-w-0 border-b`},Sn={class:`text-[9px] uppercase tracking-wider text-muted-foreground`},Cn={class:`px-2.5 py-1.5 min-w-0 border-r`},wn={class:`text-[9px] uppercase tracking-wider text-muted-foreground`},Tn={class:`text-sm font-semibold truncate`},En={class:`px-2.5 py-1.5 min-w-0`},Dn={class:`text-[9px] uppercase tracking-wider text-muted-foreground`},On={class:`text-sm font-semibold truncate`},kn={key:1,class:`rounded-md px-2 py-1.5 bg-muted/30 mb-3`},An={class:`text-[10px] text-muted-foreground`},jn={key:0,class:`text-[11px] font-semibold text-success-dark`},Mn={key:1,class:`text-[11px] font-semibold text-warning-dark`},Nn={class:`space-y-0.5 text-[11px] mb-3`},Pn={key:0,class:`flex justify-between`},Fn={class:`text-muted-foreground`},In={class:`font-mono`},Ln={key:1,class:`flex justify-between`},Rn={class:`text-muted-foreground`},zn={class:`font-mono`},Bn={key:2,class:`flex justify-between`},Vn={class:`text-muted-foreground`},Hn={class:`font-mono truncate max-w-[160px]`},Un={key:3,class:`flex items-center justify-between text-[11px]`},Wn={class:`text-muted-foreground`},Gn={class:`font-mono text-warning-dark`},Kn={key:4,class:`flex items-center justify-between text-[11px]`},qn={class:`text-muted-foreground`},Jn={class:`font-mono truncate max-w-[160px]`},Yn={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},Xn=2,Zn=P({__name:`RequestOverviewPanel`,props:{overview:{},showRaw:{type:Boolean}},setup(t){let{t:n}=m(),r={direct_format:`直连`,group_base_rule:`基础规则`,group_schedule:`定时调度`,fallback_provider:`回退`,overflow_redirect:`溢出重定向`,failover_retry:`故障转移`},i=t,a=l(()=>{let e=i.overview.clientType;return e===`claude-code`?`Claude Code`:e===`codex`?`Codex CLI`:e===`pi`?`Pi`:e===`openai-sdk`?`OpenAI SDK`:e===`anthropic-sdk`?`Anthropic SDK`:e??`Unknown`}),o=l(()=>Ht(i.overview.upstreamResponse,i.overview.responseBody)||JSON.stringify({latencyMs:i.overview.latencyMs,ttftMs:i.overview.ttftMs,inputTokens:i.overview.inputTokens,outputTokens:i.overview.outputTokens,tokensPerSecond:i.overview.tokensPerSecond,cacheReadTokens:i.overview.cacheReadTokens,cacheWriteTokens:i.overview.cacheWriteTokens,stopReason:i.overview.stopReason,statusCode:i.overview.statusCode},null,Xn)),s=l(()=>i.overview.status===`pending`&&i.overview.outputTokens!=null),c=l(()=>{let e=i.overview.outputTokens;return e==null?`--`:s.value?`+${e}`:`${e}`}),d=l(()=>i.overview.status===`pending`&&i.overview.latencyMs==null?`...`:i.overview.latencyMs==null?`--`:`${(i.overview.latencyMs/Z).toFixed(1)}s`),f=l(()=>{if(i.overview.tokensPerSecond!=null)return`${i.overview.tokensPerSecond.toFixed(1)}`;let{outputTokens:e,latencyMs:t}=i.overview;return e&&t?`${(e/t*Z).toFixed(1)}`:`--`});function p(e){let t=i.overview.attempts[i.overview.attempts.length-1];return t&&e===t.providerId&&i.overview.providerName||e}function h(e){return e<=0?`-`:(e/Z).toFixed(1)+`s`}return(i,l)=>(R(),M(`div`,Gt,[t.showRaw?(R(),S(I(Q),{key:1,class:`flex-1 rounded-md border`},{default:O(()=>[e(`pre`,Yn,u(o.value),1)]),_:1})):(R(),M(`div`,Kt,[e(`div`,qt,[e(`div`,Jt,[e(`span`,Yt,u(I(n)(`requestDetail.executionChain`)),1),l[0]||=e(`span`,{class:`flex-1`},null,-1),e(`span`,Xt,u(t.overview.model),1),b(I(G),{variant:`secondary`,class:`text-[10px] px-1 py-0`},{default:O(()=>[E(u(t.overview.apiType),1)]),_:1}),t.overview.mappingReason?(R(),S(I(G),{key:0,class:`text-[10px] px-2 py-0 rounded-full bg-primary/20 text-primary border-0`},{default:O(()=>[E(u(r[t.overview.mappingReason]||t.overview.mappingReason),1)]),_:1})):L(``,!0)]),e(`div`,Zt,[(R(!0),M(g,null,x(t.overview.attempts,(r,i)=>(R(),M(`div`,{key:i,class:_([`py-1.5`,{"border-t border-border/50":i>0}])},[e(`div`,Qt,[e(`span`,$t,`#`+u(i+1),1),e(`span`,en,[e(`span`,tn,u(r.model||t.overview.backendModel||`-`),1),e(`span`,nn,` @ `+u(p(r.providerId)),1)])]),e(`div`,rn,[b(I(G),{variant:(r.statusCode??0)<I(400)?`default`:`destructive`,class:`text-[9px] px-1 py-0`},{default:O(()=>[E(u(r.statusCode||`-`),1)]),_:2},1032,[`variant`]),e(`span`,an,u(h(r.latencyMs)),1),b(I(G),{variant:`secondary`,class:`text-[9px] px-1 py-0`},{default:O(()=>[E(u(r.apiType||t.overview.apiType),1)]),_:2},1024),i===0&&t.overview.attempts.length>1?(R(),S(I(G),{key:0,class:`text-[9px] px-1 py-0 rounded bg-warning/15 text-warning border-0`},{default:O(()=>[E(u(I(n)(`requestDetail.executionRetry`)),1)]),_:1})):L(``,!0),i===t.overview.attempts.length-1&&t.overview.attempts.length>1?(R(),S(I(G),{key:1,class:`text-[9px] px-1 py-0 rounded bg-success/15 text-success border-0`},{default:O(()=>[E(u(I(n)(`requestDetail.executionFinal`)),1)]),_:1})):L(``,!0)])],2))),128))])]),e(`div`,on,[b(I(G),{variant:t.overview.status===`completed`?`default`:`destructive`,class:`text-[10px] px-1.5 py-0`},{default:O(()=>[e(`span`,{class:_([`inline-block w-1.5 h-1.5 rounded-full mr-1`,t.overview.status===`completed`?`bg-success`:`bg-destructive`])},null,2),E(` `+u(t.overview.status===`completed`?I(n)(`requestDetail.completed`):I(n)(`requestDetail.failed`)),1)]),_:1},8,[`variant`]),t.overview.isStream?(R(),S(I(G),{key:0,variant:`outline`,class:`text-[10px] px-1.5 py-0`},{default:O(()=>[...l[1]||=[E(`SSE`,-1)]]),_:1})):L(``,!0),b(I(G),{variant:`secondary`,class:`text-[10px] px-1.5 py-0`},{default:O(()=>[E(u(t.overview.apiType),1)]),_:1}),t.overview.sessionId?(R(),M(`span`,sn,u(t.overview.sessionId.slice(0,8)),1)):L(``,!0),t.overview.thinkingLevel?(R(),S(I(G),{key:2,variant:`outline`,class:`text-[10px]`},{default:O(()=>[E(u(t.overview.thinkingLevel),1)]),_:1})):L(``,!0)]),t.overview.errorMessage?(R(),M(`div`,cn,[e(`p`,ln,u(t.overview.errorMessage),1),e(`p`,un,u(t.overview.statusCode)+` · upstream_error `,1)])):L(``,!0),e(`div`,dn,[e(`div`,fn,[e(`div`,pn,u(I(n)(`requestDetail.latency`)),1),e(`div`,mn,u(d.value),1)]),e(`div`,hn,[e(`div`,gn,u(I(n)(`requestDetail.ttft`)),1),e(`div`,_n,u(t.overview.ttftMs==null?`--`:`${t.overview.ttftMs}ms`),1)]),e(`div`,vn,[e(`div`,yn,u(t.overview.inputTokensEstimated?I(n)(`requestDetail.estInputTokens`):I(n)(`requestDetail.inputTokens`)),1),e(`div`,bn,u(t.overview.inputTokens==null?`--`:t.overview.inputTokens),1)]),e(`div`,xn,[e(`div`,Sn,u(I(n)(`requestDetail.outputTokens`)),1),e(`div`,{class:_([`text-sm font-semibold truncate`,s.value?`diff-added`:``])},u(c.value),3)]),e(`div`,Cn,[e(`div`,wn,u(I(n)(`requestDetail.speed`)),1),e(`div`,Tn,u(f.value),1)]),e(`div`,En,[e(`div`,Dn,u(I(n)(`requestDetail.cacheRead`)),1),e(`div`,On,u(t.overview.cacheReadTokens==null?`--`:t.overview.cacheReadTokens),1)])]),t.overview.cacheReadTokens!=null&&t.overview.cacheReadTokens>0?(R(),M(`div`,kn,[e(`div`,An,u(I(n)(`requestDetail.cacheSource`)),1),t.overview.cacheReadTokensEstimated===0?(R(),M(`div`,jn,u(I(n)(`requestDetail.cacheSourceApi`)),1)):(R(),M(`div`,Mn,u(I(n)(`requestDetail.cacheSourceEstimated`)),1))])):L(``,!0),e(`div`,Nn,[t.overview.clientType==null?L(``,!0):(R(),M(`div`,Pn,[e(`span`,Fn,u(I(n)(`requestDetail.clientType`)),1),e(`span`,In,u(a.value),1)])),t.overview.statusCode==null?L(``,!0):(R(),M(`div`,Ln,[e(`span`,Rn,u(I(n)(`requestDetail.statusCodeLabel`)),1),e(`span`,zn,u(t.overview.statusCode),1)])),t.overview.clientIp?(R(),M(`div`,Bn,[e(`span`,Vn,u(I(n)(`requestDetail.clientIp`)),1),e(`span`,Hn,u(t.overview.clientIp),1)])):L(``,!0),t.overview.upstreamApiType&&t.overview.upstreamApiType!==t.overview.apiType?(R(),M(`div`,Un,[e(`span`,Wn,u(I(n)(`requestDetail.upstreamApiType`)),1),e(`span`,Gn,u(t.overview.apiType)+` → `+u(t.overview.upstreamApiType),1)])):L(``,!0),t.overview.upstreamBaseUrl?(R(),M(`div`,Kn,[e(`span`,qn,u(I(n)(`requestDetail.upstreamBaseUrl`)),1),e(`span`,Jn,u(t.overview.upstreamBaseUrl),1)])):L(``,!0)])]))]))}}),Qn={key:0,class:`rounded-md border bg-card`},$n={class:`flex items-center gap-1.5 px-2.5 py-1.5 border-b`},er={class:`text-xs font-medium`},tr={class:`px-2.5 py-2`},nr={key:0,class:`inline-block w-1.5 h-3.5 dot-success animate-pulse ml-0.5 align-text-bottom`},rr={class:`flex items-center gap-1.5 px-2.5 py-1.5 cursor-pointer hover:brightness-95 rounded-t-md`},ir={class:`text-xs font-medium`},ar={key:0,class:`text-xs text-muted-foreground`},or={class:`px-2.5 pb-2`},sr=P({__name:`ContentBlockRenderer`,props:{type:{},content:{},name:{default:void 0},defaultOpen:{type:Boolean,default:!0},showCursor:{type:Boolean,default:!1},autoScroll:{type:Boolean,default:!1}},setup(t){let{t:n}=m(),i=t,a=B(i.type===`text`?!0:i.defaultOpen),o=B(null),s=l(()=>{switch(i.type){case`thinking`:return`block-thinking`;case`tool_use`:return`block-tool-use`;case`tool_result`:return`block-tool-result`;default:return`bg-card`}}),d=l(()=>{switch(i.type){case`thinking`:return`block-thinking-content italic`;case`tool_use`:return`block-tool-use-content`;case`tool_result`:return`block-tool-result-content`;default:return`bg-muted/50`}}),f=l(()=>{switch(i.type){case`thinking`:return Fe;case`tool_use`:return ze;case`tool_result`:return Ie;default:return Re}}),p=l(()=>{switch(i.type){case`thinking`:return`text-[var(--color-role-thinking)]`;case`tool_use`:return`text-[var(--color-role-tool)]`;case`tool_result`:return`text-[var(--color-role-user)]`;default:return`text-muted-foreground`}}),h=l(()=>{switch(i.type){case`thinking`:return n(`requestDetail.thinking`);case`tool_use`:return n(`requestDetail.toolUse`);case`tool_result`:return n(`requestDetail.toolResultLabel`);default:return``}}),g=l(()=>i.type===`tool_use`?n(`requestDetail.waitingData`):i.type===`tool_result`?n(`requestDetail.noReturnData`):``);return c(()=>i.content,()=>{i.autoScroll&&ee(()=>{let e=o.value;e&&(e.scrollTop=e.scrollHeight)})}),(i,c)=>t.type===`text`?(R(),M(`div`,Qn,[e(`div`,$n,[b(I(Re),{class:`h-3.5 w-3.5 diff-added`}),e(`span`,er,u(I(n)(`requestDetail.reply`)),1)]),e(`div`,tr,[e(`pre`,{ref_key:`contentRef`,ref:o,class:`text-xs overflow-y-auto whitespace-pre-wrap break-words`,style:{"max-height":`300px`}},[e(`code`,null,[E(u(t.content),1),t.showCursor?(R(),M(`span`,nr)):L(``,!0)])],512)])])):(R(),S(I(ce),{key:1,open:a.value,"onUpdate:open":c[0]||=e=>a.value=e,class:_([`rounded-md border`,s.value])},{default:O(()=>[b(I(ue),{"as-child":``},{default:O(()=>[e(`div`,rr,[b(I(je),{class:_([`h-3 w-3 transition-transform duration-200`,{"rotate-180":!a.value}])},null,8,[`class`]),(R(),S(r(f.value),{class:_([`h-3.5 w-3.5`,p.value])},null,8,[`class`])),e(`span`,ir,u(h.value),1),t.type===`thinking`?(R(),M(`span`,ar,`(`+u(I(n)(`requestDetail.charCount`,{count:t.content.length}))+`)`,1)):L(``,!0),t.type===`tool_use`&&t.name?(R(),S(I(G),{key:1,variant:`secondary`,class:`text-xs`},{default:O(()=>[E(u(t.name),1)]),_:1})):L(``,!0)])]),_:1}),b(I(le),null,{default:O(()=>[e(`div`,or,[e(`pre`,{ref_key:`contentRef`,ref:o,class:_([`text-xs rounded p-2 overflow-y-auto whitespace-pre-wrap break-words`,d.value]),style:{"max-height":`300px`}},[e(`code`,null,u(t.content||g.value),1)],2)])]),_:1})]),_:1},8,[`open`,`class`]))}}),$=2;function cr(e){return e.map(e=>{let t=e;return t.type===`thinking`?{type:`thinking`,content:typeof t.thinking==`string`?t.thinking:``}:t.type===`text`?{type:`text`,content:typeof t.text==`string`?t.text:``}:t.type===`tool_use`?{type:`tool_use`,content:JSON.stringify(t.input??{},null,$),name:typeof t.name==`string`?t.name:``}:t.type===`tool_result`?{type:`tool_result`,content:typeof t.content==`string`?t.content:JSON.stringify(t.content)}:{type:`text`,content:JSON.stringify(t)}})}function lr(e){let t=[];for(let n of e){let e=n.message;if(!e)continue;let r=e.reasoning_content;typeof r==`string`&&r&&t.push({type:`thinking`,content:r});let i=e.tool_calls;if(Array.isArray(i))for(let e of i){let n=e,r=n.function,i=``;if(r&&typeof r.arguments==`string`)try{i=JSON.stringify(JSON.parse(r.arguments),null,$)}catch{i=r.arguments}t.push({type:`tool_use`,content:i,name:typeof r?.name==`string`?r.name:typeof n.name==`string`?n.name:``})}let a=e.refusal;typeof a==`string`&&a&&t.push({type:`text`,content:a});let o=e.content;if(typeof o==`string`&&o)t.push({type:`text`,content:o});else if(Array.isArray(o))for(let e of o){let n=e;if(n.type===`text`||n.type===`output_text`)t.push({type:`text`,content:typeof n.text==`string`?n.text:``});else if(n.type===`tool_use`||n.type===`function`){let e=n.function??n.input??{};t.push({type:`tool_use`,content:JSON.stringify(e,null,$),name:typeof n.name==`string`?n.name:typeof e.name==`string`?e.name:``})}}}return t}function ur(e){let t=[];for(let n of e){let e=n;if(e.type===`reasoning`){let n=e.summary,r=n?n.map(e=>e.text??``).join(``):``,i=typeof e.encrypted_content==`string`?e.encrypted_content:``,a=r||(i?`[Encrypted reasoning]`:``);a&&t.push({type:`thinking`,content:a})}else if(e.type===`function_call`)t.push({type:`tool_use`,content:typeof e.arguments==`string`?e.arguments:JSON.stringify(e.arguments??{},null,$),name:typeof e.name==`string`?e.name:``});else if(e.type===`function_call_output`){let n=typeof e.output==`string`?e.output:JSON.stringify(e.output??``,null,$);t.push({type:`tool_result`,content:n})}else if(e.type===`message`){let n=e.content;if(Array.isArray(n))for(let e of n)e.type===`output_text`&&typeof e.text==`string`&&e.text?t.push({type:`text`,content:e.text}):e.type===`refusal`&&typeof e.refusal==`string`&&e.refusal&&t.push({type:`text`,content:e.refusal})}}return t}function dr(e,t,n){let r=fr(t,n);return r.length>0?r:fr(e,n)}function fr(e,t){if(!e)return[];let n;try{n=JSON.parse(e)}catch{return[]}let r=n;if(typeof r.body==`string`)try{n=JSON.parse(r.body)}catch{n=n}let i=n;return t===`anthropic`&&Array.isArray(i.content)?cr(i.content):t===`openai`&&Array.isArray(i.choices)?lr(i.choices):t===`openai-responses`&&Array.isArray(i.output)?ur(i.output):Array.isArray(i.content)?cr(i.content):Array.isArray(i.choices)?lr(i.choices):Array.isArray(i.output)?ur(i.output):[]}var pr=5,mr=2,hr=3;function gr(e){let t=[],n=null;for(let r of e){if(r.type!==`data`)continue;let e=r.data;if(e.type===`content_block_start`){let t=e.content_block;if(n={type:typeof t?.type==`string`?t.type:``,content:``,eventCount:0,toolName:typeof t?.name==`string`?t.name:void 0},n.type===`tool_use`&&t?.input){let e=t.input;Object.keys(e).length>0&&(n.content=JSON.stringify(e,null,mr))}continue}if(e.type===`content_block_delta`&&n){let t=e.delta;n.content+=t.thinking||t.text||t.partial_json||``,n.eventCount++;continue}e.type===`content_block_stop`&&n&&(t.push(n),n=null)}return n&&t.push(n),t}function _r(e){let t={type:`thinking`,content:``,eventCount:0},n={type:`text`,content:``,eventCount:0},r=new Map;for(let i of e){if(i.type!==`data`)continue;let e=(i.data.choices??[])[0]?.delta;if(!e)continue;for(let n of[`reasoning_content`,`reasoning`,`reasoning_text`]){let r=e[n];if(typeof r==`string`&&r){t.content+=r,t.eventCount++;break}}typeof e.content==`string`&&e.content&&(n.content+=e.content,n.eventCount++);let a=e.tool_calls;if(Array.isArray(a))for(let e of a){let t=typeof e.index==`number`?e.index:0,n=e.function;r.has(t)||r.set(t,{type:`tool_use`,content:``,eventCount:0,toolName:typeof n?.name==`string`?n.name:``});let i=r.get(t);typeof n?.arguments==`string`&&(i.content+=n.arguments),i.eventCount++}typeof e.refusal==`string`&&e.refusal&&(n.content+=e.refusal,n.eventCount++)}let i=[];t.content&&i.push(t);for(let e of r.values())(e.content||e.toolName)&&i.push(e);return n.content&&i.push(n),i}function vr(e,t,n){let r=l(()=>{if(!t||!e.value)return[];let n=e.value.split(`
2
+ `),r=[];for(let e of n){let t=e.trim();if(!t.startsWith(`data:`))continue;let n=t.slice(pr).trim();if(n===`[DONE]`){r.push({type:`done`,data:n});continue}try{let e=JSON.parse(n);r.push({type:`data`,data:e})}catch{r.push({type:`raw`,data:n})}}return r});return{sseEvents:r,assembledBlocks:l(()=>!t||!e.value?[]:n===`anthropic`?gr(r.value):_r(r.value)),sseMeta:l(()=>{let e=``,t=``,n=0,i=0,a=``;for(let o of r.value){if(o.type!==`data`)continue;let r=o.data;if(r.type===`message_start`){let i=r.message;e=typeof i?.id==`string`?i.id:``,t=typeof i?.model==`string`?i.model:``,n=Number(i?.usage?.input_tokens??0)}if(r.type===`message_delta`){let e=r.delta,t=r.usage;a=typeof e?.stop_reason==`string`?e.stop_reason:``,i=Number(t?.output_tokens??0)}}return{id:e,model:t,inputTokens:n,outputTokens:i,stopReason:a}}),openaiAssembled:l(()=>{if(n!==`openai`||!t)return null;let e=``,i=``,a=``,o=null,s=0;for(let t of r.value){if(t.type!==`data`)continue;let n=t.data,r=n.choices||[],c=r[0]?.delta;c?.role&&(e=c.role);let l=typeof c?.reasoning_content==`string`?c.reasoning_content:``;l&&(i+=l,s++),c?.content&&(i+=c.content,s++);let u=typeof c?.refusal==`string`?c.refusal:``;u&&(i+=u,s++),r[0]?.finish_reason&&(a=r[0].finish_reason),n.usage&&(o=n.usage)}return{role:e,content:i,contentEventCount:s,finishReason:a,usage:o}}),anthropicMessageStart:l(()=>{if(!t)return null;for(let e of r.value){if(e.type!==`data`)continue;let t=e.data;if(t.type===`message_start`){let e=t.message;return{id:typeof e?.id==`string`?e.id:``,model:typeof e?.model==`string`?e.model:``,input_tokens:Number(e?.usage?.input_tokens??0)}}}return null}),anthropicContentBlockStarts:l(()=>{if(!t)return[];let e=[];for(let t of r.value){if(t.type!==`data`)continue;let n=t.data;if(n.type===`content_block_start`){let t=n.content_block;e.push({index:Number(n.index??0),type:typeof t?.type==`string`?t.type:``})}}return e}),anthropicDeltaGroups:l(()=>{if(!t)return[];let e={};for(let t of r.value){if(t.type!==`data`)continue;let n=t.data;if(n.type!==`content_block_delta`)continue;let r=n.delta,i=typeof r?.type==`string`?r.type:`unknown`;e[i]||(e[i]={deltaType:i,kept:0,folded:0,foldedChars:0});let a=e[i];if(a.kept<hr)a.kept++;else{a.folded++;let e=r,t=e.thinking||e.text||e.partial_json||``;a.foldedChars+=t.length}}return Object.values(e).filter(e=>e.kept>0||e.folded>0)}),anthropicMessageDelta:l(()=>{if(!t)return null;for(let e of r.value){if(e.type!==`data`)continue;let t=e.data;if(t.type===`message_delta`){let e=t.delta,n=t.usage;return{output_tokens:Number(n?.output_tokens??0),stop_reason:typeof e?.stop_reason==`string`?e.stop_reason:``}}}return null}),anthropicMessageStop:l(()=>t?r.value.some(e=>e.type===`data`&&e.data.type===`message_stop`):!1),openaiSseRole:l(()=>{if(!t)return null;for(let e of r.value){if(e.type!==`data`)continue;let t=(e.data.choices||[])[0]?.delta;if(t?.role)return t.role}return null}),openaiSseFirstContent:l(()=>{if(!t)return null;for(let e of r.value){if(e.type!==`data`)continue;let t=(e.data.choices||[])[0]?.delta;if(t?.content)return t.content}return null}),openaiSseFinishReason:l(()=>{if(!t)return null;for(let e of r.value){if(e.type!==`data`)continue;let t=(e.data.choices||[])[0]?.finish_reason;if(t)return t}return null}),openaiSseCollapsedCount:l(()=>{if(!t)return 0;let e=0,n=!1;for(let t of r.value){if(t.type!==`data`)continue;let r=(t.data.choices||[])[0]?.delta;if(!n){r?.content&&(n=!0);continue}(r?.content||r?.role)&&e++}return e}),openaiSseUsage:l(()=>{if(!t)return null;for(let e=r.value.length-1;e>=0;e--){let t=r.value[e];if(t.type!==`data`)continue;let n=t.data.usage;if(n)return{prompt_tokens:n.prompt_tokens,completion_tokens:n.completion_tokens,total_tokens:n.total_tokens,cached_tokens:n.cached_tokens??n.prompt_tokens_details?.cached_tokens}}return null})}}var yr={class:`flex flex-col gap-2 min-h-0 flex-1`},br={class:`flex items-center justify-between flex-shrink-0`},xr={class:`text-xs font-medium text-muted-foreground`},Sr={key:0,class:`relative flex-1 min-h-0`},Cr={key:0,class:`flex flex-col gap-2`},wr={key:0,class:`rounded-md border mt-2`},Tr={class:`grid grid-cols-2 gap-0`},Er={key:0,class:`px-2.5 py-1.5 text-xs`},Dr={class:`text-muted-foreground`},Or={class:`font-mono font-semibold block`},kr={key:1,class:`flex items-center gap-1.5 mt-2 text-xs`},Ar={key:0,class:`text-xs text-muted-foreground`},jr={key:1,class:`text-xs text-muted-foreground`},Mr={key:2,class:`text-xs text-muted-foreground`},Nr={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},Pr=50,Fr=P({__name:`ResponseViewer`,props:{source:{},apiType:{},isStream:{type:Boolean},streamContent:{default:null},nonStreamBody:{default:null},responseBody:{default:null},upstreamResponse:{default:null},status:{}},setup(t){let{t:n}=m(),i=B(null),a=t,o=B(!1),s=l(()=>!!(a.responseBody||a.upstreamResponse)),{assembledBlocks:d}=vr(l(()=>{if(a.source!==`history`)return``;let e=a.responseBody||a.upstreamResponse||``;try{return JSON.parse(e).body||e}catch{return e}}),a.isStream,a.apiType),f=l(()=>{if(a.source===`realtime`){let e=a.streamContent?.blocks;if(e&&e.length>0)return e;if(a.responseBody){let e=dr(a.responseBody,null,a.apiType);if(e.length>0)return e}let t=a.streamContent?.rawChunks;return t&&t.trim().length>0?[{type:`text`,content:t}]:[]}let e=dr(a.responseBody??null,a.upstreamResponse??null,a.apiType);if(e.length>0)return e;if(a.responseBody&&a.responseBody.trim().length>0)return[{type:`text`,content:a.responseBody}];let t=[`thinking`,`text`,`tool_use`,`tool_result`];return d.value.map(e=>({type:t.includes(e.type)?e.type:`text`,content:e.content,...e.toolName?{name:e.toolName}:{}}))}),h=l(()=>{let e=a.responseBody||a.upstreamResponse||``;if(!e)return null;try{let t=JSON.parse(e),n=t.body?JSON.parse(t.body):t;return{usage:n.usage,stopReason:n.choices?.[0]?.finish_reason||n.stop_reason,model:n.model}}catch{return null}}),_=l(()=>a.source===`realtime`?a.streamContent?.rawChunks||a.responseBody||``:zt(a.upstreamResponse??null,a.responseBody??null)),v=B(!1);function y(){let e=i.value;e&&(v.value=e.scrollHeight-e.scrollTop-e.clientHeight>Pr)}function C(){let e=i.value;e&&(e.scrollTop=e.scrollHeight)}return c(f,()=>{v.value||ee(()=>C())},{deep:!0}),(t,c)=>{let l=p(`Badge`);return R(),M(`div`,yr,[e(`div`,br,[e(`span`,xr,u(I(n)(`requestDetail.responseTitle`)),1),b(I(j),{size:`sm`,variant:`outline`,class:`h-6 gap-1 text-xs`,onClick:c[0]||=e=>o.value=!o.value},{default:O(()=>[(R(),S(r(o.value?I(Oe):I(Le)),{class:`h-3 w-3`})),E(` `+u(o.value?I(n)(`requestDetail.structured`):a.isStream?I(n)(`requestDetail.rawSse`):I(n)(`requestDetail.rawJson`)),1)]),_:1})]),o.value?(R(),S(I(Q),{key:1,class:`flex-1 min-h-0 rounded-md border`},{default:O(()=>[e(`pre`,Nr,u(_.value),1)]),_:1})):(R(),M(`div`,Sr,[e(`div`,{ref_key:`structuredRef`,ref:i,class:`flex-1 min-h-0 overflow-y-auto`,onScroll:y},[f.value.length>0?(R(),M(`div`,Cr,[(R(!0),M(g,null,x(f.value,(e,t)=>(R(),S(sr,{key:t,type:e.type,content:e.content,name:e.name,"show-cursor":a.status===`pending`&&t===f.value.length-1,"auto-scroll":a.status===`pending`&&t===f.value.length-1},null,8,[`type`,`content`,`name`,`show-cursor`,`auto-scroll`]))),128)),h.value?.usage?(R(),M(`div`,wr,[c[1]||=e(`div`,{class:`flex items-center gap-1.5 px-2.5 py-1.5 border-b bg-muted/20`},[e(`span`,{class:`text-xs font-medium`},`Usage`)],-1),e(`div`,Tr,[(R(),M(g,null,x([`prompt_tokens`,`completion_tokens`,`total_tokens`,`input_tokens`,`output_tokens`],t=>(R(),M(g,{key:t},[h.value.usage[t]==null?L(``,!0):(R(),M(`div`,Er,[e(`span`,Dr,u(t),1),e(`span`,Or,u(Number(h.value.usage[t]).toLocaleString()),1)]))],64))),64))])])):L(``,!0),h.value?.stopReason?(R(),M(`div`,kr,[c[2]||=e(`span`,{class:`text-muted-foreground`},`Stop reason`,-1),b(l,{variant:`default`,class:`text-[10px] px-1.5 py-0`},{default:O(()=>[E(u(h.value.stopReason),1)]),_:1})])):L(``,!0)])):L(``,!0),f.value.length===0?(R(),M(g,{key:1},[a.status===`pending`&&!a.streamContent?.rawChunks?(R(),M(`p`,Ar,u(I(n)(`requestDetail.waitingResponse`)),1)):a.source===`history`&&a.isStream&&!s.value?(R(),M(`p`,jr,u(I(n)(`requestDetail.streamNotPersisted`)),1)):(R(),M(`p`,Mr,u(I(n)(`requestDetail.noResponseContent`)),1))],64)):L(``,!0)],544),v.value?(R(),S(I(j),{key:0,variant:`outline`,size:`icon`,class:`absolute bottom-2 right-2 h-7 w-7 rounded-full shadow-md opacity-80 hover:opacity-100`,onClick:C},{default:O(()=>[b(I(re),{class:`h-3.5 w-3.5`})]),_:1})):L(``,!0)]))])}}}),Ir={class:`relative`},Lr={class:`bg-background text-foreground rounded-md p-3 text-xs overflow-auto max-h-[40vh] whitespace-pre-wrap break-all border`},Rr=P({__name:`JsonCopyBlock`,props:{content:{},hideCopyButton:{type:Boolean}},setup(t){let{t:n}=m(),r=t,{copied:i,copy:a}=Ne();async function o(){await a(r.content)}return(r,a)=>(R(),M(`div`,Ir,[t.hideCopyButton?L(``,!0):(R(),S(I(j),{key:0,variant:`outline`,size:`sm`,class:`absolute top-2 right-2 h-7 text-xs`,onClick:o},{default:O(()=>[E(u(I(i)?I(n)(`logs.viewer.copied`):I(n)(`logs.viewer.copy`)),1)]),_:1})),e(`pre`,Lr,u(t.content),1)]))}}),zr={class:`flex flex-col min-h-0 h-full`},Br={class:`flex justify-end mb-1 flex-shrink-0`},Vr={key:0,class:`space-y-3`},Hr={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Ur={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Wr={key:0,class:`text-[11px] text-muted-foreground py-4 text-center`},Gr={key:1,class:`text-[11px] text-muted-foreground py-2 text-center`},Kr={key:2,class:`space-y-4`},qr={key:0},Jr={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Yr={class:`flex items-center gap-2 text-[11px]`},Xr={class:`font-mono text-muted-foreground`},Zr={class:`font-mono text-primary font-semibold`},Qr={key:1},$r={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},ei={class:`text-[11px] bg-muted/50 rounded-md border px-2.5 py-2 overflow-y-auto whitespace-pre-wrap break-words max-h-40`},ti={key:2},ni={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},ri={class:`space-y-1.5`},ii={class:`flex items-center gap-1.5 mb-1`},ai={key:1,class:`text-[9px] text-muted-foreground`},oi={key:0,class:`diff-removed line-through mb-0.5`},si={key:1,class:`text-foreground overflow-y-auto max-h-40`},ci={key:2,class:`text-muted-foreground text-[10px]`},li={key:3},ui={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},di={class:`space-y-1`},fi={class:`grid grid-cols-5 gap-1`},pi=[`title`,`onClick`],mi={key:0,class:`rounded-md border bg-background p-2.5`},hi={class:`flex items-center gap-2 mb-1`},gi={class:`text-[11px] font-semibold font-mono`},_i={key:0,class:`text-[11px] text-muted-foreground`},vi={key:1,class:`mt-1 flex flex-wrap gap-1`},yi={key:4},bi={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},xi={class:`flex items-center gap-2 text-[11px]`},Si={key:5},Ci={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},wi={class:`flex items-center gap-2 text-[11px]`},Ti={class:`font-mono diff-removed line-through`},Ei={class:`font-mono diff-added font-medium`},Di=4,Oi=5,ki=P({__name:`RequestDiffViewer`,props:{overview:{}},setup(t){let{t:n}=m(),r=t,i=B(!1);function a(e){if(!e)return null;try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return null;let n=typeof t.headers==`object`&&t.headers!==null?t.headers:{},r=t.body;if(typeof r==`string`)try{r=JSON.parse(r)}catch{}return{headers:n,body:r??{}}}catch{return null}}function o(e){let t=e.content;return typeof t==`string`?t:Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&`text`in e).map(e=>typeof e.text==`string`?e.text:``).join(``):typeof t==`string`?t:t==null?``:JSON.stringify(t)}function s(e){if(!e)return``;let t=e.replace(/^Bearer\s+/i,``);return t.length<=Di?`***`:`${t.slice(0,Di)}***`}function c(e,t){let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n)return r}let d=l(()=>a(r.overview.clientRequest)),f=l(()=>a(r.overview.upstreamRequest)),p=l(()=>{let e=d.value?.body?.model,t=f.value?.body?.model;return{hasDiff:!!e&&!!t&&e!==t,from:e??``,to:t??``}}),h=l(()=>{let e=f.value?.body;if(!e)return null;let t=e.system;if(typeof t==`string`)return t;if(Array.isArray(t))return t.filter(e=>typeof e==`object`&&!!e&&`text`in e).map(e=>e.text).join(`
3
+ `);let n=e.messages;if(Array.isArray(n)){let e=n.find(e=>e.role===`system`);if(e)return o(e)}return null}),v=l(()=>{let e=f.value?.body?.messages??[],t=d.value?.body?.messages??[];if(e.length===0)return[];let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=typeof i.role==`string`?i.role:`unknown`;if(a===`system`)continue;let s=o(i),c=t[r],l=c?o(c):null,u=l!==null&&s!==l,d=i.content,f=Array.isArray(d)?d:[],p=f.filter(e=>typeof e==`object`&&!!e&&e.type===`tool_use`).map(e=>e.name).filter(Boolean),m=f.filter(e=>typeof e==`object`&&!!e&&e.type===`tool_result`).length;n.push({role:a,text:s,removedText:u?l:null,modified:u,toolCalls:p,toolResultCount:m})}return n}),y=B(-1),C=l(()=>{let e=[];for(let t=0;t<w.value.length;t+=Oi)e.push({tools:w.value.slice(t,t+Oi),startIdx:t});return e}),w=l(()=>{let e=f.value?.body;if(!e)return[];let t=e.tools;return Array.isArray(t)?t.filter(e=>typeof e?.name==`string`).map(e=>{let t=typeof e.description==`string`?e.description:``,n=e.input_schema?.properties,r=n?Object.keys(n):[];return{name:e.name,description:t,params:r}}):[]}),T=l(()=>{let e=d.value?.body?.stream_options!=null,t=f.value?.body?.stream_options!=null;return!e&&t}),D=l(()=>{if(!d.value?.headers||!f.value?.headers)return{hasDiff:!1,old:``,new:``};let e=c(d.value.headers,`authorization`),t=c(f.value.headers,`authorization`);return{hasDiff:!!e&&!!t&&e!==t,old:s(e),new:s(t)}});return(r,a)=>(R(),M(`div`,zr,[e(`div`,Br,[b(I(j),{variant:`outline`,size:`xs`,class:`gap-1`,onClick:a[0]||=e=>i.value=!i.value},{default:O(()=>[i.value?(R(),S(I(Le),{key:0,class:`size-3`})):(R(),S(I(Oe),{key:1,class:`size-3`})),E(` `+u(i.value?I(n)(`requestDetail.structured`):I(n)(`requestDetail.rawJson`)),1)]),_:1})]),b(I(Q),{class:`flex-1 min-h-0`},{default:O(()=>[i.value?(R(),M(`div`,Vr,[e(`div`,null,[e(`div`,Hr,u(I(n)(`requestDetail.clientRequest`)),1),b(Rr,{content:t.overview.clientRequest??`{}`},null,8,[`content`])]),e(`div`,null,[e(`div`,Ur,u(I(n)(`requestDetail.upstreamRequest`)),1),b(Rr,{content:t.overview.upstreamRequest??`{}`},null,8,[`content`])])])):(R(),M(g,{key:1},[!f.value&&!d.value?(R(),M(`div`,Wr,u(I(n)(`requestDetail.noRequestData`)),1)):!f.value&&d.value?(R(),M(`div`,Gr,u(I(n)(`requestDetail.requestInProgress`)),1)):(R(),M(`div`,Kr,[p.value.hasDiff?(R(),M(`div`,qr,[e(`div`,Jr,u(I(n)(`requestDetail.modelMapping`)),1),e(`div`,Yr,[e(`span`,Xr,u(p.value.from),1),a[1]||=e(`span`,{class:`text-muted-foreground`},`→`,-1),e(`span`,Zr,u(p.value.to),1)])])):L(``,!0),h.value?(R(),M(`div`,Qr,[e(`div`,$r,u(I(n)(`requestDetail.system`)),1),e(`pre`,ei,u(h.value),1)])):L(``,!0),v.value.length>0?(R(),M(`div`,ti,[e(`div`,ni,u(I(n)(`requestDetail.messagesCount`,{count:v.value.length})),1),e(`div`,ri,[(R(!0),M(g,null,x(v.value,(t,r)=>(R(),M(`div`,{key:r,class:_([`rounded-md border px-2.5 py-1.5 text-[11px]`,t.modified?`diff-modified`:`bg-background`])},[e(`div`,ii,[b(I(G),{variant:`outline`,class:_([`text-[9px] px-1.5 py-0 border-transparent`,t.role===`user`?`bg-role-user-bg text-role-user`:t.role===`assistant`?`bg-role-assistant-bg text-role-assistant`:`bg-role-thinking-bg text-role-thinking`])},{default:O(()=>[E(u(t.role),1)]),_:2},1032,[`class`]),t.modified?(R(),S(I(G),{key:0,variant:`outline`,class:`bg-role-thinking-bg text-role-thinking text-[9px] px-1.5 py-0 border-transparent`},{default:O(()=>[E(u(I(n)(`requestDetail.modified`)),1)]),_:1})):L(``,!0),t.toolCalls.length>0?(R(),M(`span`,ai,` → `+u(t.toolCalls.join(`, `)),1)):L(``,!0)]),t.modified&&t.removedText?(R(),M(`div`,oi,u(t.removedText),1)):L(``,!0),t.text?(R(),M(`div`,si,u(t.text),1)):t.toolResultCount>0?(R(),M(`div`,ci,u(I(n)(`requestDetail.toolResultCount`,{count:t.toolResultCount})),1)):L(``,!0)],2))),128))])])):L(``,!0),w.value.length>0?(R(),M(`div`,li,[e(`div`,ui,u(I(n)(`requestDetail.toolsCount`,{count:w.value.length})),1),e(`div`,di,[(R(!0),M(g,null,x(C.value,(t,n)=>(R(),M(g,{key:n},[e(`div`,fi,[(R(!0),M(g,null,x(t.tools,(e,n)=>(R(),M(`div`,{key:n,class:_([`cursor-pointer rounded-md border px-1.5 py-1 text-[10px] truncate text-center transition-colors`,y.value===t.startIdx+n?`bg-role-tool-bg text-role-tool border-role-tool`:`bg-background hover:bg-muted`]),title:e.name,onClick:e=>y.value=y.value===t.startIdx+n?-1:t.startIdx+n},u(e.name),11,pi))),128))]),y.value>=t.startIdx&&y.value<t.startIdx+t.tools.length?(R(),M(`div`,mi,[e(`div`,hi,[e(`span`,gi,u(w.value[y.value].name),1)]),w.value[y.value].description?(R(),M(`p`,_i,u(w.value[y.value].description),1)):L(``,!0),w.value[y.value].params.length>0?(R(),M(`div`,vi,[(R(!0),M(g,null,x(w.value[y.value].params,e=>(R(),S(I(G),{key:e,variant:`outline`,class:`text-[9px] px-1 py-0`},{default:O(()=>[E(u(e),1)]),_:2},1024))),128))])):L(``,!0)])):L(``,!0)],64))),128))])])):L(``,!0),T.value?(R(),M(`div`,yi,[e(`div`,bi,u(I(n)(`requestDetail.streamOptions`)),1),e(`div`,xi,[b(I(G),{variant:`outline`,class:`bg-success-light text-success-dark text-[9px] px-1.5 py-0 border-transparent`},{default:O(()=>[E(u(I(n)(`requestDetail.injected`)),1)]),_:1}),a[2]||=e(`code`,{class:`font-mono diff-added`},`{ "include_usage": true }`,-1)])])):L(``,!0),D.value.hasDiff?(R(),M(`div`,Si,[e(`div`,Ci,u(I(n)(`requestDetail.authReplacement`)),1),e(`div`,wi,[e(`span`,Ti,u(D.value.old),1),b(I(_e),{orientation:`vertical`,class:`h-3`}),e(`span`,Ei,u(D.value.new),1)])])):L(``,!0)]))],64))]),_:1})]))}}),Ai={class:`h-1 w-full overflow-hidden`},ji={key:0,class:`h-full w-[40%] progress-active`,style:{animation:`shimmer 1.5s infinite`}},Mi={key:1,class:`h-full w-full progress-failed`},Ni={key:2,class:`h-full w-full progress-active`},Pi={class:`flex items-center gap-2 px-4 py-2 border-b shrink-0`},Fi={class:`text-sm font-semibold`},Ii={key:0,class:`font-mono text-[11px] text-muted-foreground`},Li={class:`ml-auto flex items-center gap-1`},Ri={key:0,class:`flex gap-0 px-4 pb-4 min-h-0 h-[calc(85vh-100px)]`},zi={class:`w-[280px] border-r pr-3 flex-shrink-0 min-h-0 flex flex-col`},Bi={class:`flex-1 overflow-y-auto min-h-0`},Vi={class:`border-t pt-3 space-y-2 shrink-0`},Hi={class:`flex-1 flex flex-col min-w-0 min-h-0 pl-3`},Ui={key:0,class:`rounded-md bg-destructive/10 px-3 py-1.5 text-xs text-destructive mb-2 flex-shrink-0`},Wi={key:0,class:`flex-1 min-h-0 overflow-y-auto mt-2`},Gi={key:1,class:`flex-1 min-h-0 mt-2`},Ki={key:1,class:`flex items-center justify-center h-[calc(85vh-100px)]`},qi={class:`text-sm text-muted-foreground`},Ji={class:`rounded-md bg-muted px-3 py-2 text-sm text-muted-foreground`},Yi=429,Xi=5e3,Zi=10,Qi=6e4,$i=Pe(P({__name:`UnifiedRequestDialog`,props:{open:{type:Boolean},source:{},request:{},streamContent:{},logDetailData:{},logEntry:{}},emits:[`update:open`],setup(i,{emit:a}){let{t:o}=m(),s=n(),{copied:d,copy:f}=Ne();function p(){return{name:``,status_code:Yi,body_pattern:``,retry_strategy:`exponential`,retry_delay_ms:Xi,max_retries:Zi,max_delay_ms:Qi,provider_id:null}}let h=B(!1),g=B(!1),_=B(!1),v=B(!1),y=B(null),x=B(``);function C(){F.value&&f(F.value.id)}async function w(){if(F.value?.id){h.value=!0;try{let e=await t.aiRetryGenerate(F.value.id);if(e.success&&e.rule){let t=e.rule,n=p();y.value={name:t.name??n.name,status_code:t.status_code??n.status_code,body_pattern:t.body_pattern??n.body_pattern,retry_strategy:t.retry_strategy??n.retry_strategy,retry_delay_ms:t.retry_delay_ms??n.retry_delay_ms,max_retries:t.max_retries??n.max_retries,max_delay_ms:t.max_delay_ms??n.max_delay_ms,provider_id:t.provider_id??null},x.value=e.summary??``,v.value=!0}else{let t=e.error??``;/config/i.test(t)||/未配置/.test(t)||/ai_retry_config/i.test(t)?_.value=!0:H.error(t||o(`logs.generateFailed`))}}catch(e){console.error(`UnifiedRequestDialog.handleGenerateRule:`,e);let t=D(e,o(`logs.generateFailed`));/config/i.test(t)||/未配置/.test(t)?_.value=!0:H.error(t)}finally{h.value=!1}}}function T(){}function k(){_.value=!1,ee(`update:open`,!1),s.push(`/proxy-enhancement`)}let A=i,ee=a,N=B(`response`),P=B(null),F=l(()=>{if(A.source===`realtime`){if(!A.request)return null;let e=jt(A.request,A.logDetailData?.responseBody);return A.logDetailData&&(A.logDetailData.clientRequest&&(e.clientRequest=A.logDetailData.clientRequest),A.logDetailData.upstreamRequest&&(e.upstreamRequest=A.logDetailData.upstreamRequest)),e}return P.value}),te=l(()=>F.value?F.value.status:`pending`);return c([()=>A.open,()=>A.logEntry],([e,t])=>{if(!e){h.value=!1,v.value=!1,y.value=null,x.value=``,_.value=!1;return}N.value=`response`,A.source===`history`&&t&&(P.value=`id`in t&&`status`in t&&`attempts`in t&&`clientRequest`in t?t:Lt(t,[]))}),(t,n)=>(R(),S(I(me),{open:A.open,"onUpdate:open":n[5]||=e=>ee(`update:open`,e)},{default:O(()=>[b(I(de),{class:`sm:max-w-6xl max-h-[85vh] p-0 overflow-hidden flex flex-col`},{default:O(()=>[b(I(ge),{class:`sr-only`},{default:O(()=>[E(u(I(o)(`requestDetail.dialogTitle`)),1)]),_:1}),e(`div`,Ai,[te.value===`pending`?(R(),M(`div`,ji)):te.value===`failed`?(R(),M(`div`,Mi)):(R(),M(`div`,Ni))]),e(`div`,Pi,[e(`span`,Fi,u(I(o)(`requestDetail.dialogTitle`)),1),F.value?(R(),M(`span`,Ii,u(F.value.id),1)):L(``,!0),e(`div`,Li,[F.value?(R(),S(I(j),{key:0,variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:C},{default:O(()=>[I(d)?(R(),S(I(Me),{key:0,class:`size-3 text-success`})):(R(),S(I(Ee),{key:1,class:`size-3`}))]),_:1})):L(``,!0)])]),F.value?(R(),M(`div`,Ri,[e(`div`,zi,[e(`div`,Bi,[b(Zn,{overview:F.value,"show-raw":g.value},null,8,[`overview`,`show-raw`])]),e(`div`,Vi,[b(I(j),{variant:`outline`,size:`sm`,class:`h-6 gap-1 text-xs w-full justify-center`,onClick:n[0]||=e=>g.value=!g.value},{default:O(()=>[(R(),S(r(g.value?I(Oe):I(Le)),{class:`h-3 w-3`})),E(` `+u(g.value?I(o)(`requestDetail.structured`):I(o)(`requestDetail.rawData`)),1)]),_:1}),b(I(j),{variant:`default`,size:`sm`,class:`w-full gap-1.5`,disabled:h.value,onClick:w},{default:O(()=>[b(I(ie),{class:`h-3.5 w-3.5`}),E(` `+u(h.value?I(o)(`logs.analyzing`):I(o)(`logs.generateRetryRule`)),1)]),_:1},8,[`disabled`])])]),e(`div`,Hi,[F.value.errorMessage?(R(),M(`div`,Ui,u(F.value.errorMessage),1)):L(``,!0),b(I(oe),{modelValue:N.value,"onUpdate:modelValue":n[1]||=e=>N.value=e,class:`flex-1 flex flex-col min-h-0`},{default:O(()=>[b(I(ae),{class:`flex-shrink-0`},{default:O(()=>[b(I(se),{value:`response`},{default:O(()=>[E(u(I(o)(`requestDetail.responseTab`)),1)]),_:1}),b(I(se),{value:`request`},{default:O(()=>[E(u(I(o)(`requestDetail.requestTab`)),1)]),_:1})]),_:1}),N.value===`response`?(R(),M(`div`,Wi,[b(Fr,{source:A.source,"api-type":F.value.apiType,"is-stream":F.value.isStream,"stream-content":A.streamContent,"non-stream-body":i.logDetailData?.responseBody,"response-body":F.value.responseBody,"upstream-response":F.value.upstreamResponse,status:F.value.status},null,8,[`source`,`api-type`,`is-stream`,`stream-content`,`non-stream-body`,`response-body`,`upstream-response`,`status`])])):L(``,!0),N.value===`request`?(R(),M(`div`,Gi,[b(ki,{overview:F.value},null,8,[`overview`])])):L(``,!0)]),_:1},8,[`modelValue`])])])):(R(),M(`div`,Ki,[e(`p`,qi,u(A.source===`realtime`?I(o)(`requestDetail.loading`):I(o)(`requestDetail.noSelectedRequest`)),1)])),b(kt,{open:v.value,rule:y.value,summary:x.value,"onUpdate:open":n[2]||=e=>v.value=e,onSaved:T},null,8,[`open`,`rule`,`summary`]),b(I(me),{open:_.value,"onUpdate:open":n[4]||=e=>_.value=e},{default:O(()=>[b(I(de),{class:`max-w-md`},{default:O(()=>[b(I(pe),null,{default:O(()=>[b(I(ge),{class:`flex items-center gap-2`},{default:O(()=>[b(I(ie),{class:`h-4 w-4 text-primary`}),E(` `+u(I(o)(`logs.needAiConfig`)),1)]),_:1}),b(I(fe),null,{default:O(()=>[E(u(I(o)(`logs.needAiConfigDesc`)),1)]),_:1})]),_:1}),e(`div`,Ji,u(I(o)(`logs.configPath`)),1),b(I(he),null,{default:O(()=>[b(I(j),{variant:`outline`,onClick:n[3]||=e=>_.value=!1},{default:O(()=>[E(u(I(o)(`common.cancel`)),1)]),_:1}),b(I(j),{onClick:k},{default:O(()=>[E(u(I(o)(`logs.goToConfig`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})]),_:1},8,[`open`]))}}),[[`__scopeId`,`data-v-7ef1f045`]]);export{Q as n,Lt as r,$i as t};
@@ -1 +1 @@
1
- import{$ as e,Z as t,kt as n,mt as r,nt as i,rt as a,st as o,tt as s,xt as c,yt as l}from"./button-DhbTyZqO.js";import{O as u,R as d}from"./index-BoaXEmuZ.js";var f=o({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(t){let i=t,{primitiveElement:a,currentElement:o}=d();return n(e(()=>i.checked??i.value),(e,t)=>{if(!o.value)return;let n=o.value,r=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(i&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});i.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,t)=>(l(),s(u,r({ref_key:`primitiveElement`,ref:a},{...i,...e.$attrs},{as:`input`}),null,16))}}),p=o({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(n){let o=n,u=e(()=>typeof o.value==`object`&&Array.isArray(o.value)&&o.value.length===0&&o.required),d=e(()=>typeof o.value==`string`||typeof o.value==`number`||typeof o.value==`boolean`||o.value===null||o.value===void 0?[{name:o.name,value:o.value}]:typeof o.value==`object`&&Array.isArray(o.value)?o.value.flatMap((e,t)=>typeof e==`object`?Object.entries(e).map(([e,n])=>({name:`${o.name}[${t}][${e}]`,value:n})):{name:`${o.name}[${t}]`,value:e}):o.value!==null&&typeof o.value==`object`&&!Array.isArray(o.value)?Object.entries(o.value).map(([e,t])=>({name:`${o.name}[${e}]`,value:t})):[]);return(e,n)=>(l(),a(t,null,[i(` We render single input if it's required `),u.value?(l(),s(f,r({key:e.name},{...o,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):(l(!0),a(t,{key:1},c(d.value,t=>(l(),s(f,r({key:t.name},{ref_for:!0},{...o,...e.$attrs},{name:t.name,value:t.value}),null,16,[`name`,`value`]))),128))],2112))}});export{p as t};
1
+ import{Ot as e,Q as t,X as n,bt as r,et as i,nt as a,ot as o,pt as s,tt as c,vt as l}from"./button-BBiWml8B.js";import{O as u,R as d}from"./index-DTujoAWx.js";var f=o({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(n){let r=n,{primitiveElement:a,currentElement:o}=d();return e(t(()=>r.checked??r.value),(e,t)=>{if(!o.value)return;let n=o.value,r=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(i&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});i.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,t)=>(l(),i(u,s({ref_key:`primitiveElement`,ref:a},{...r,...e.$attrs},{as:`input`}),null,16))}}),p=o({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(e){let o=e,u=t(()=>typeof o.value==`object`&&Array.isArray(o.value)&&o.value.length===0&&o.required),d=t(()=>typeof o.value==`string`||typeof o.value==`number`||typeof o.value==`boolean`||o.value===null||o.value===void 0?[{name:o.name,value:o.value}]:typeof o.value==`object`&&Array.isArray(o.value)?o.value.flatMap((e,t)=>typeof e==`object`?Object.entries(e).map(([e,n])=>({name:`${o.name}[${t}][${e}]`,value:n})):{name:`${o.name}[${t}]`,value:e}):o.value!==null&&typeof o.value==`object`&&!Array.isArray(o.value)?Object.entries(o.value).map(([e,t])=>({name:`${o.name}[${e}]`,value:t})):[]);return(e,t)=>(l(),a(n,null,[c(` We render single input if it's required `),u.value?(l(),i(f,s({key:e.name},{...o,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):(l(!0),a(n,{key:1},r(d.value,t=>(l(),i(f,s({key:t.name},{ref_for:!0},{...o,...e.$attrs},{name:t.name,value:t.value}),null,16,[`name`,`value`]))),128))],2112))}});export{p as t};
@@ -0,0 +1 @@
1
+ import{R as e}from"./button-BBiWml8B.js";var t=e(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{S as e,et as t,i as n,jt as r,k as i,ot as a,pt as o,qt as s,r as c,vt as l,xt as u}from"./button-BBiWml8B.js";var d=a({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{type:[Boolean,null,String,Object,Array]}},setup(i){let a=i,d=e(a,`class`);return(e,p)=>(l(),t(s(n),o({"data-slot":`badge`,"data-variant":i.variant,class:s(c)(s(f)({variant:i.variant}),a.class)},s(d)),{default:r(()=>[u(e.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),f=i(`h-5 gap-1 rounded-4xl px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20`,outline:`text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});export{d as t};