@qredence/fleet 0.5.10 → 0.5.11
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.
- package/CHANGELOG.md +15 -0
- package/dist/web/client/assets/agent-activity-CwMDU7aP.js +1 -0
- package/dist/web/client/assets/artifacts-panel-CQmFEF_H.js +1 -0
- package/dist/web/client/assets/{chat-command-palette-DfYSPPXI.js → chat-command-palette-CmHTS3rs.js} +1 -1
- package/dist/web/client/assets/{chat-C8XDWWXz.js → chat-yh02zgA7.js} +1 -1
- package/dist/web/client/assets/{citations-BQ_pr_9_.js → citations-C_tPOJE_.js} +1 -1
- package/dist/web/client/assets/{fleet-message-queue-zWM5-y18.js → fleet-message-queue-DUz6Hfrf.js} +1 -1
- package/dist/web/client/assets/{fleet-pi-tool-renderer-AJoMbXBa.js → fleet-pi-tool-renderer-BEDIO3al.js} +4 -4
- package/dist/web/client/assets/fleet-reasoning-panel-CbkO7u-v.js +1 -0
- package/dist/web/client/assets/{fleet-subagent-list-BnRnrWKS.js → fleet-subagent-list-iKUtLJKZ.js} +1 -1
- package/dist/web/client/assets/fleet-tool-timeline-C8heL7ae.js +1 -0
- package/dist/web/client/assets/{fork-picker-dialog-CkcSekBl.js → fork-picker-dialog-ByBOGVsa.js} +1 -1
- package/dist/web/client/assets/globals-B_I1Eq1u.css +2 -0
- package/dist/web/client/assets/horizontal-resize-qK6eRhIG.js +1 -0
- package/dist/web/client/assets/{index-DlnHLDpx.js → index-C1zOjrMK.js} +3 -3
- package/dist/web/client/assets/{ipython-tool-BrMePqD-.js → ipython-tool-ldJ9F1Cw.js} +1 -1
- package/dist/web/client/assets/model-selector-list-DsKTuAgS.js +1 -0
- package/dist/web/client/assets/{openui-renderer-DwYFJdbe.js → openui-renderer-J3dhPpL4.js} +5 -5
- package/dist/web/client/assets/prompt-input-qPIXZ-Rb.js +1 -0
- package/dist/web/client/assets/prompt-suggestions-Cc--lSNR.js +1 -0
- package/dist/web/client/assets/{provider-label-BCJh04J5.js → provider-label-Dpr7djG9.js} +1 -1
- package/dist/web/client/assets/repl-panel-DsPX04Xr.js +1 -0
- package/dist/web/client/assets/{resources-panel-Bo8dfUdm.js → resources-panel-D867-goy.js} +1 -1
- package/dist/web/client/assets/right-panel-registry-DewpBWHM.js +2 -0
- package/dist/web/client/assets/routes-vNkVToAF.js +16 -0
- package/dist/web/client/assets/safe-storage-s25GrfpH.js +1 -0
- package/dist/web/client/assets/session-insights-panel-YnaXvTpi.js +1 -0
- package/dist/web/client/assets/settings-dialog-B-v4me3Y.js +1 -0
- package/dist/web/client/assets/skeleton-loaders-C9vHwAYV.js +1 -0
- package/dist/web/client/assets/{subagent-chat-panel-DseoO31p.js → subagent-chat-panel-DkVUumrP.js} +1 -1
- package/dist/web/client/assets/subagent-transcript-D8wmQxXe.js +1 -0
- package/dist/web/client/assets/subagents-panel-BMp2Ego0.js +1 -0
- package/dist/web/client/assets/{surfaces-cW-gp56p.js → surfaces-DI-U-_2a.js} +1 -1
- package/dist/web/client/assets/tool-result-DfnPN0FQ.js +4 -0
- package/dist/web/client/assets/ui-preferences-CImQGZm_.js +1 -0
- package/dist/web/client/assets/virtualized-turn-list-DMJENRY0.js +6 -0
- package/dist/web/client/assets/{workspace-panel-DI1W3ce9.js → workspace-panel-G6yMpKJ8.js} +1 -1
- package/dist/web/client/bundle-budget.json +6 -6
- package/dist/web/server/{_tanstack-start-manifest_v-Cdx6hy2i-I7A5YJRU.js → _tanstack-start-manifest_v-po4woX6g-AUGCOEZ2.js} +14 -13
- package/dist/web/server/{agent-activity-B-JMvecd-SLE3GGY2.js → agent-activity-CS2rbF_C-A3R26CYH.js} +2 -2
- package/dist/web/server/{artifacts-panel-DLMK1O8P-42T45JMA.js → artifacts-panel-8GGUCtOd-X5TNKTY2.js} +12 -12
- package/dist/web/server/{chat-command-palette-CdYwoTMe-4LBAZF7K.js → chat-command-palette-Dgl5tqWn-72LLEWUD.js} +2 -2
- package/dist/web/server/{chunk-K5ESTT4A.js → chunk-7MDZVLIY.js} +11 -3
- package/dist/web/server/{chunk-EBCYJSBR.js → chunk-7SD2ZSEA.js} +3 -3
- package/dist/web/server/{chunk-M564UIEY.js → chunk-ABBWBBSS.js} +8 -8
- package/dist/web/server/{chunk-KNJUSMBT.js → chunk-BXWAUTTH.js} +2 -2
- package/dist/web/server/{chunk-54II5QXQ.js → chunk-ETTDO4UO.js} +6 -3
- package/dist/web/server/{chunk-EHNIN245.js → chunk-GETSIVNU.js} +5 -5
- package/dist/web/server/{chunk-NRDG2ISJ.js → chunk-GGT2ZKDB.js} +49 -49
- package/dist/web/server/{chunk-X2R5YPQZ.js → chunk-IJPCV6DH.js} +3 -2
- package/dist/web/server/{chunk-AJJ2S5FF.js → chunk-JQDLJ7KI.js} +20 -20
- package/dist/web/server/{chunk-VHBFU4TG.js → chunk-JUROEEWM.js} +43 -14
- package/dist/web/server/{chunk-TCH3U26B.js → chunk-MIW4LJTV.js} +2 -2
- package/dist/web/server/{chunk-2TRF62K5.js → chunk-N6NOTURM.js} +3 -3
- package/dist/web/server/{chunk-5XX7RKJ6.js → chunk-NXJ32VFR.js} +5 -5
- package/dist/web/server/{chunk-EOVMHQ2H.js → chunk-O4OTWWPF.js} +7 -7
- package/dist/web/server/{chunk-OB5OSYJK.js → chunk-RNOJACWQ.js} +53 -29
- package/dist/web/server/chunk-SZJUXVWG.js +40 -0
- package/dist/web/server/{chunk-6AW2XFTZ.js → chunk-WILCIZYU.js} +194 -10
- package/dist/web/server/{chunk-FED63ZHU.js → chunk-WKV2Z4KO.js} +10 -5
- package/dist/web/server/{chunk-ANL4B775.js → chunk-XLNCWZMZ.js} +2 -2
- package/dist/web/server/{chunk-GM32R7JW.js → chunk-YKVGQBZA.js} +10 -8
- package/dist/web/server/{chunk-3PIUR75R.js → chunk-YXXRP3NS.js} +9 -9
- package/dist/web/server/{fleet-message-queue-BxycG26e-2XLOTCLP.js → fleet-message-queue-j0DCU5Xy-5HKBHMPV.js} +2 -2
- package/dist/web/server/{fleet-pi-tool-renderer-RIeVlM9J-D6MISCQC.js → fleet-pi-tool-renderer-umKunT3K-O4GBH35V.js} +5 -5
- package/dist/web/server/{fleet-reasoning-panel-D_K48UOT-GN2PA6KT.js → fleet-reasoning-panel-BxC2COxi-GPLMQSTT.js} +9 -9
- package/dist/web/server/{fleet-subagent-list-5luKtpds-3OTVFHJQ.js → fleet-subagent-list-CpSYzCIq-JDH2LHSS.js} +1 -1
- package/dist/web/server/{fleet-tool-timeline-DwRqQgOj-HUFLGMDV.js → fleet-tool-timeline-IB36_PB2-XJENTO6I.js} +1 -1
- package/dist/web/server/{fork-picker-dialog-B9yGc8Au-IL63F2DN.js → fork-picker-dialog-DlINz9UQ-UWIXFDJX.js} +3 -3
- package/dist/web/server/{model-selector-list-cb2-ewoA-KIVU6LD3.js → model-selector-list-OYnzNbyu-HBGCNF2L.js} +5 -5
- package/dist/web/server/{openui-renderer-Czy5Vo2L-BLXPJD65.js → openui-renderer-Cj7kfqyL-EKJ6JTTQ.js} +4 -4
- package/dist/web/server/{prompt-suggestions-BOmHi4-J-C563CHFU.js → prompt-suggestions-D4AEEY7K-RZSP7PWV.js} +3 -3
- package/dist/web/server/{repl-panel-yyxhwe4c-7U6HXYPS.js → repl-panel-D5KsoJik-BQKO53JO.js} +9 -9
- package/dist/web/server/{resources-panel-j4fAIi9g-5C267IXV.js → resources-panel-CE5pD4vy-V5FXBTYC.js} +2 -2
- package/dist/web/server/{router-CgSWrAYc-5UBYSZTJ.js → router-Ci1wxI7I-E2AYMNON.js} +253 -76
- package/dist/web/server/{routes-CP_BBhD0-BAWQYGKY.js → routes-CRpm9-Sa-IYK6MUJO.js} +705 -537
- package/dist/web/server/server.js +2 -2
- package/dist/web/server/{session-insights-panel-BHZyKDTo-LRMAMA3O.js → session-insights-panel-CUhdgvRt-VB2HUCQP.js} +4 -4
- package/dist/web/server/{settings-dialog-CxHe8nym-KKXDPTIW.js → settings-dialog-BvkgNflv-GPJ6COQO.js} +14 -10
- package/dist/web/server/{subagent-chat-panel-DlSsM59d-DBW7DI3T.js → subagent-chat-panel-CMuvW9Sd-M5TEEGQW.js} +11 -11
- package/dist/web/server/{subagents-panel-Txzk8oDb-NRKLASYN.js → subagents-panel-DgfB6_Yy-4INEPE3Y.js} +13 -13
- package/dist/web/server/{workspace-panel-BOs-58Cv-SWQBMZSB.js → workspace-panel-bpwj-Veu-Q2CEJMN4.js} +4 -3
- package/package.json +1 -1
- package/dist/web/client/assets/agent-activity-CDcDNVC6.js +0 -1
- package/dist/web/client/assets/artifacts-panel-CObI-DMt.js +0 -1
- package/dist/web/client/assets/fleet-reasoning-panel-MtbSdoCv.js +0 -1
- package/dist/web/client/assets/fleet-tool-timeline-COzPrwr8.js +0 -1
- package/dist/web/client/assets/generative-text-renderer-CDKHv-v_.js +0 -6
- package/dist/web/client/assets/globals-DisQPFtV.css +0 -2
- package/dist/web/client/assets/horizontal-resize-Bl3AyBJg.js +0 -1
- package/dist/web/client/assets/model-selector-list-DQaPFUYt.js +0 -1
- package/dist/web/client/assets/prompt-input-DZ4cho_e.js +0 -1
- package/dist/web/client/assets/prompt-suggestions-CXM6knMK.js +0 -1
- package/dist/web/client/assets/repl-panel-BDQ5MEgV.js +0 -1
- package/dist/web/client/assets/right-panel-registry-VVRPktV3.js +0 -2
- package/dist/web/client/assets/routes-DAikUNzO.js +0 -16
- package/dist/web/client/assets/session-insights-panel-CQdT90Op.js +0 -1
- package/dist/web/client/assets/settings-dialog-DS64KmwC.js +0 -1
- package/dist/web/client/assets/skeleton-loaders-DjGv9LLA.js +0 -1
- package/dist/web/client/assets/subagent-transcript-cxVKYnh9.js +0 -1
- package/dist/web/client/assets/subagents-panel-CHC96I68.js +0 -1
- package/dist/web/client/assets/tool-result-Baj3CdL_.js +0 -4
- package/dist/web/client/assets/ui-preferences-DUEFuJFj.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){if(typeof window>`u`)return null;try{return e===`local`?window.localStorage:window.sessionStorage}catch{return null}}function t(t,n=`local`){let r=e(n);if(!r)return null;try{return r.getItem(t)}catch{return null}}function n(t,n,r=`local`){let i=e(r);if(i)try{i.setItem(t,n)}catch{}}function r(t,n=`local`){let r=e(n);if(r)try{r.removeItem(t)}catch{}}export{r as n,n as r,t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-NZYk81nU.js";var t=[`queued`,`running`,`done`,`error`,`cancelled`,`recovering`,`failed`];function n({activityLabel:e,artifactRuns:n,messages:r,planLabel:i,presentation:a,queue:o}){let s=Object.fromEntries(t.map(e=>[e,0]));for(let e of a.rlmChildren)s[e.status]+=1;let c=a.refinements.reduce((e,t)=>({failed:e.failed+Number(t.status===`error`),successful:e.successful+Number(t.status===`success`),total:e.total+1}),{failed:0,successful:0,total:0}),l=n.flatMap(e=>e.artifacts);return{activity:e||i||`Waiting for input`,artifactCount:l.length,assistantMessages:r.filter(e=>e.role===`assistant`).length,bashCommands:a.userBash.length,goal:a.goal,ipythonCells:l.filter(e=>e.kind===`ipython`).length,queuedFollowUps:o.followUp.length,queuedSteering:o.steering.length,refinements:c,rlmChildren:s,userMessages:r.filter(e=>e.role===`user`).length}}var r=e();function i(e){return e.replaceAll(`_`,` `)}function a(e){let t=Math.max(0,Math.round(e)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}function o({children:e,label:t}){return(0,r.jsxs)(`section`,{"aria-label":t,className:`rounded-md border border-border/60 bg-background px-3 py-2.5 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)]`,children:[(0,r.jsx)(`h3`,{className:`mb-2 text-[0.6875rem] font-medium uppercase tracking-wide text-foreground/45`,children:t}),(0,r.jsx)(`dl`,{className:`space-y-1.5 text-[0.75rem]`,children:e})]})}function s({label:e,value:t}){return(0,r.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,r.jsx)(`dt`,{className:`text-foreground/50`,children:e}),(0,r.jsx)(`dd`,{className:`min-w-0 text-right font-medium text-foreground/80`,children:t})]})}function c({goal:e}){return(0,r.jsxs)(o,{label:`Goal`,children:[(0,r.jsx)(s,{label:`Status`,value:i(e.status)}),e.objective?(0,r.jsx)(s,{label:`Objective`,value:(0,r.jsx)(`span`,{className:`block max-w-56 text-pretty`,children:e.objective})}):null,(0,r.jsx)(s,{label:`Elapsed`,value:a(e.timeUsedSeconds)}),(0,r.jsx)(s,{label:`Token usage`,value:e.tokensUsed}),e.tokenBudget===void 0?null:(0,r.jsx)(s,{label:`Token budget`,value:e.tokenBudget}),(0,r.jsx)(s,{label:`Continuations`,value:e.continuationsUsed})]})}function l({activityLabel:e,artifactRuns:i,chatMode:a,messages:l,planLabel:u,presentation:d,queue:f,selectedModelKey:p,sessionId:m,status:h,thinkingLevel:g}){if(!m)return(0,r.jsx)(`section`,{"aria-label":`Session insights`,className:`flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-[0.75rem] leading-5 text-foreground/45`,children:`Start or open a session to view its live insights.`});let _=n({activityLabel:e,artifactRuns:i,messages:l,planLabel:u,presentation:d,queue:f}),v=t.map(e=>`${_.rlmChildren[e]} ${e}`).join(` · `);return(0,r.jsxs)(`section`,{"aria-label":`Session insights`,className:`space-y-2.5 pb-1`,children:[(0,r.jsxs)(o,{label:`Current state`,children:[(0,r.jsx)(s,{label:`Run status`,value:h}),(0,r.jsx)(s,{label:`Activity`,value:(0,r.jsx)(`span`,{className:`block max-w-56 text-pretty`,children:_.activity})}),(0,r.jsx)(s,{label:`Queued steering`,value:_.queuedSteering}),(0,r.jsx)(s,{label:`Queued follow-ups`,value:_.queuedFollowUps})]}),_.goal?(0,r.jsx)(c,{goal:_.goal}):null,(0,r.jsxs)(o,{label:`Configuration`,children:[(0,r.jsx)(s,{label:`Model`,value:p??`Not selected`}),(0,r.jsx)(s,{label:`Mode`,value:a}),(0,r.jsx)(s,{label:`Reasoning`,value:g??d.thinkingLevel??`Not set`})]}),(0,r.jsxs)(o,{label:`Progress`,children:[(0,r.jsx)(s,{label:`User messages`,value:_.userMessages}),(0,r.jsx)(s,{label:`Assistant messages`,value:_.assistantMessages}),(0,r.jsx)(s,{label:`Artifacts`,value:_.artifactCount}),(0,r.jsx)(s,{label:`Bash commands`,value:_.bashCommands}),(0,r.jsx)(s,{label:`IPython cells`,value:_.ipythonCells}),(0,r.jsx)(s,{label:`RLM children`,value:v||`None`}),(0,r.jsx)(s,{label:`Refinements`,value:`${_.refinements.total} total · ${_.refinements.successful} successful · ${_.refinements.failed} failed`})]}),d.recap?(0,r.jsx)(o,{label:`Existing recap`,children:(0,r.jsx)(s,{label:`Summary`,value:(0,r.jsx)(`span`,{className:`block max-w-56 whitespace-pre-wrap text-left text-pretty`,children:d.recap})})}):null]})}export{l as SessionInsightsPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{$ as r,B as i,F as a,J as o,L as s,Q as c,R as l,V as u,Z as d,at as f,et as p,f as m,it as h,n as g,nt as _,o as v,t as y,tt as b,z as x}from"./button-BR2WWrFo.js";import{C as S,G as C,K as w,O as T,P as E,U as D,et as O,f as k,g as A,h as j,i as M,k as N,m as P,nt as F,rt as I,s as L,st as R,t as z}from"./createBaseUIEventDetails-DV0dQrBX.js";import{i as B,r as V}from"./toast-Bt9p2OL4.js";import{A as H,F as U,G as ee,I as W,J as te,K as ne,L as re,M as ie,N as G,P as ae,R as oe,U as se,W as ce,X as le,_ as ue,a as de,c as fe,d as pe,f as me,g as he,h as ge,it as _e,k as ve,m as ye,n as be,o as xe,p as Se,r as Ce,s as we,t as Te,u as Ee,z as De}from"./dialog-BEZuZhzk.js";import{M as Oe,a as ke,b as Ae,d as je,h as Me,i as Ne,l as Pe,o as Fe,r as Ie,s as K,v as Le,x as Re,y as ze}from"./provider-catalog-D8G66gwc.js";import{r as Be,t as Ve}from"./useBaseUiId-CHqXB2UQ.js";import{A as He,C as Ue,D as We,E as Ge,O as Ke,S as qe,T as Je,_ as Ye,a as Xe,b as Ze,c as Qe,d as q,g as $e,i as et,j as tt,k as nt,l as rt,n as it,o as at,r as ot,s as st,t as ct,u as lt,v as ut,w as dt,x as ft}from"./provider-label-Dpr7djG9.js";import{t as J}from"./utils-Eg7xtNmV.js";import{t as Y}from"./createLucideIcon-DwxZHm0M.js";import{t as pt}from"./check-JjHKAZas.js";import{t as mt}from"./chevron-right-DrJxToLs.js";import{t as ht}from"./loader-circle-DjfHXUPB.js";import{i as gt,n as _t}from"./shield-check-CkA2viVW.js";import{t as vt}from"./eye-B0DFz5hL.js";import{t as yt}from"./hard-drive-CHqgr7VQ.js";import{i as bt,n as xt,r as St,t as Ct}from"./sun-BWiZFty0.js";import{t as wt}from"./message-square-hbDao-A1.js";import{t as Tt}from"./plus-DXN1Bg_z.js";import{t as Et}from"./refresh-cw-IThTJ3j-.js";import{t as Dt}from"./rotate-ccw-WNFNkKQD.js";import{t as Ot}from"./search-eWVnAJsb.js";import{t as kt}from"./sparkles-DuclzqlE.js";import{t as At}from"./x-CsRC_tCI.js";import{r as jt}from"./safe-storage-s25GrfpH.js";import{n as Mt,r as Nt}from"./ui-preferences-CImQGZm_.js";import{t as X}from"./notify-DgMKgZZW.js";import{n as Pt,r as Ft}from"./right-panel-context-DHlNWJsF.js";import"./skeleton-CkR2VmWc.js";import{t as It}from"./input-0wwjWjKq.js";import{a as Lt,c as Rt,i as zt,n as Bt,r as Vt,s as Ht,t as Ut}from"./switch-9rTeg6J6.js";import{i as Wt,n as Gt,r as Kt,t as qt}from"./input-group-BFDsCVS9.js";var Z=e(t(),1),Q=n(),Jt=Z.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new c,currentIdRef:{current:null},currentContextRef:{current:null}});function Yt(e,t){e.current=t.current}function Xt(e,t={open:!1}){let{open:n}=t,r=`rootStore`in e?e.rootStore:e,i=r.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:d}=Z.useContext(Jt),[f,p]=Z.useState(!1),m=Z.useRef(n);return I(()=>{m.current=n},[n]),I(()=>{function e(){l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current,d.clear()}if(a.current&&!n&&a.current===i){if(p(!1),s){let t=i;return d.start(s,()=>{r.select(`open`)||a.current&&a.current!==t||e()}),()=>{(m.current||a.current!==t)&&d.clear()}}e()}},[n,i,a,o,s,c,l,d,r]),I(()=>{if(!n)return;let e=l.current,t=a.current;d.clear(),l.current={onOpenChange:r.setOpen,setIsInstantPhase:p},a.current=i,o.current={open:0,close:tt(c.current,`close`)},t!==null&&t!==i?(p(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,z(k))):(p(!1),e?.setIsInstantPhase(!1))},[n,i,r,a,o,c,l,d]),I(()=>()=>{if(a.current===i){if(l.current=null,!m.current)return;a.current=null,Yt(o,c),d.clear()}},[l,a,o,i,c,d]),Z.useMemo(()=>({hasProvider:u,delayRef:o,isInstantPhase:f}),[u,o,f])}function Zt(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function Qt(e){return e!=null&&e.clientX!=null}function $t(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),l=a.context.dataRef,d=Z.useRef(!1),f=Z.useRef(null),[p,m]=Z.useState(),[h,g]=Z.useState([]),_=O(e=>{a.set(`positionReference`,e)}),v=O((e,t,n)=>{d.current||l.current.openEvent&&!Qt(l.current.openEvent)||a.set(`positionReference`,Zt(n??c,{x:e,y:t,axis:r,dataRef:l,pointerType:p}))}),y=O(e=>{o?f.current||(v(e.clientX,e.clientY,e.currentTarget),g([])):v(e.clientX,e.clientY,e.currentTarget)}),b=_e(p)?s:o;Z.useEffect(()=>{if(!n){_(c);return}if(!b)return;function e(){f.current?.(),f.current=null}let t=D(s);function r(t){let n=u(t);i(s,n)?e():v(t.clientX,t.clientY)}return!l.current.openEvent||Qt(l.current.openEvent)?f.current=E(t,`mousemove`,r):_(c),e},[b,n,s,l,c,a,v,_,h]),Z.useEffect(()=>()=>{a.set(`positionReference`,null)},[a]),Z.useEffect(()=>{n&&!s&&(d.current=!1)},[n,s]),Z.useEffect(()=>{!n&&o&&(d.current=!0)},[n,o]);let x=Z.useMemo(()=>{function e(e){m(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:y,onMouseEnter:y}},[y]);return Z.useMemo(()=>n?{reference:x,trigger:x}:{},[n,x])}var en=d&&o;function tn(e,t={}){let{enabled:n=!0,delay:o}=t,c=`rootStore`in e?e.rootStore:e,{events:d,dataRef:f}=c.context,m=Z.useRef(!1),h=Z.useRef(null),g=Z.useRef(!0),_=r();Z.useEffect(()=>{let e=c.select(`domReferenceElement`);if(!n)return;let t=D(e);function r(){let e=c.select(`domReferenceElement`);!c.select(`open`)&&w(e)&&e===x(p(e))&&(m.current=!0)}function i(){g.current=!0}function a(){g.current=!1}return b(E(t,`blur`,r),en&&E(t,`keydown`,i,!0),en&&E(t,`pointerdown`,a,!0))},[c,n]),Z.useEffect(()=>{if(!n)return;function e(e){if(e.reason===`trigger-press`||e.reason===`escape-key`){let e=c.select(`domReferenceElement`);C(e)&&(h.current=e,m.current=!0)}}return d.on(`openchange`,e),()=>{d.off(`openchange`,e)}},[d,n,c]);let y=Z.useMemo(()=>{function e(){m.current=!1,h.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(m.current){if(h.current===n)return;e()}let r=u(t.nativeEvent);if(C(r)){if(en&&!t.relatedTarget){if(!g.current&&!s(r))return}else if(!l(r))return}let i=a(t.relatedTarget,c.context.triggerElements),{nativeEvent:d,currentTarget:f}=t,p=typeof o==`function`?o():o;if(c.select(`open`)&&i||p===0||p===void 0){c.setOpen(!0,z(P,d,f));return}_.start(p,()=>{m.current||c.setOpen(!0,z(P,d,f))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,o=C(n)&&n.hasAttribute(v(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;_.start(0,()=>{let e=c.select(`domReferenceElement`),t=x(p(e));!n&&t===e||i(f.current.floatingContext?.refs.floating.current,t)||i(e,t)||o||a(n??t,c.context.triggerElements)||c.setOpen(!1,z(P,r))})}}},[f,o,c,_]);return Z.useMemo(()=>n?{reference:y,trigger:y}:{},[n,y])}var nn=Y(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),rn=Y(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),an=Y(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),on=Y(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),sn=Y(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),cn=Y(`paintbrush`,[[`path`,{d:`m14.622 17.897-10.68-2.913`,key:`vj2p1u`}],[`path`,{d:`M18.376 2.622a1 1 0 1 1 3.002 3.002L17.36 9.643a.5.5 0 0 0 0 .707l.944.944a2.41 2.41 0 0 1 0 3.408l-.944.944a.5.5 0 0 1-.707 0L8.354 7.348a.5.5 0 0 1 0-.707l.944-.944a2.41 2.41 0 0 1 3.408 0l.944.944a.5.5 0 0 0 .707 0z`,key:`18tc5c`}],[`path`,{d:`M9 8c-1.804 2.71-3.97 3.46-6.583 3.948a.507.507 0 0 0-.302.819l7.32 8.883a1 1 0 0 0 1.185.204C12.735 20.405 16 16.792 16 15`,key:`ytzfxy`}]]),ln=Y(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),un=Y(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),dn=Y(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),fn=Y(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),pn=new Set([`off`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]),mn=new Map,hn=500;function gn(e){let t=mn.get(e);if(t)return t;let n=RegExp(`^${e.split(``).map(e=>e===`*`?`.*`:e===`?`?`.`:xn(e)).join(``)}$`);return mn.size>=hn&&mn.clear(),mn.set(e,n),n}function _n(e,t){return t===void 0||t.length!==0&&t.some(t=>vn(e,t))}function vn(e,t){let n=yn(t.trim()).toLowerCase(),r=[e.id,e.modelId,e.name,e.key,e.provider&&e.modelId?`${e.provider}/${e.modelId}`:void 0,e.provider&&e.id?`${e.provider}/${e.id}`:void 0].filter(e=>typeof e==`string`).map(e=>e.toLowerCase());if(!bn(n))return r.includes(n);let i=gn(n);return r.some(e=>i.test(e))}function yn(e){let t=e.lastIndexOf(`:`);if(t===-1)return e;let n=e.slice(t+1);return pn.has(n)?e.slice(0,t):e}function bn(e){return e.includes(`*`)||e.includes(`?`)}function xn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function Sn(e,t){return`${e}/${t}`}var Cn=Z.createContext(void 0);function wn(){let e=Z.useContext(Cn);if(e===void 0)throw Error(F(53));return e}function Tn(e,t,n){if(!e)return 0;let r=getComputedStyle(e),i=`${t}${n===`x`?`Inline`:`Block`}`,a=parseFloat(r[`${i}Start`]);return n===`x`&&t===`margin`?a*2:a+parseFloat(r[`${i}End`])}var En=e=>t=>t?{[e]:``}:null,Dn={hasOverflowX:En(`data-has-overflow-x`),hasOverflowY:En(`data-has-overflow-y`),overflowXStart:En(`data-overflow-x-start`),overflowXEnd:En(`data-overflow-x-end`),overflowYStart:En(`data-overflow-y-start`),overflowYEnd:En(`data-overflow-y-end`),cornerHidden:()=>null},On={x:0,y:0},kn={width:0,height:0},An={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},jn={x:!0,y:!0,corner:!0},Mn=Z.forwardRef(function(e,t){let{render:n,className:a,overflowEdgeThreshold:o,style:s,...c}=e,{xStart:l,xEnd:u,yStart:d,yEnd:f}=Nn(o),p=Ve(),m=r(),h=r(),{nonce:g,disableStyleElements:_}=Me(),[v,y]=Z.useState(!1),[b,x]=Z.useState(!1),[S,C]=Z.useState(!1),[w,E]=Z.useState(!1),[D,k]=Z.useState(!1),[A,j]=Z.useState(kn),[M,N]=Z.useState(kn),[P,F]=Z.useState(An),[I,L]=Z.useState(jn),R=Z.useRef(null),z=Z.useRef(null),B=Z.useRef(null),V=Z.useRef(null),H=Z.useRef(null),U=Z.useRef(null),ee=Z.useRef(null),W=Z.useRef(null),te=Z.useRef(0),ne=Z.useRef(0),re=Z.useRef(0),ie=Z.useRef(0),G=Z.useRef(`vertical`),ae=Z.useRef(On),oe=Z.useRef(null);function se(e){let t=e?C:x,n=e?m:h;t(!0),n.start(500,()=>{t(!1)})}let ce=O(e=>{let t=e.x-ae.current.x,n=e.y-ae.current.y;ae.current=e,n!==0&&se(!0),t!==0&&se(!1)}),le=O(()=>{let e=z.current;e&&oe.current===null&&(oe.current=e.style.scrollSnapType,e.style.scrollSnapType=`none`)}),ue=O(e=>{if(e.button!==0||W.current!==null&&(G.current===`vertical`?H.current:U.current)?.hasPointerCapture(W.current))return;W.current=e.pointerId,te.current=e.clientY,ne.current=e.clientX,G.current=e.currentTarget.getAttribute(`data-orientation`);let t=z.current;t&&(re.current=t.scrollTop,ie.current=t.scrollLeft,le()),(G.current===`vertical`?H.current:U.current)?.setPointerCapture(e.pointerId)}),de=O(e=>{if(e.pointerId!==W.current)return;W.current=null,(G.current===`vertical`?C:x)(!1),oe.current!==null&&(z.current&&(z.current.style.scrollSnapType=oe.current),oe.current=null);let t=G.current===`vertical`?H.current:U.current;t?.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId)}),fe=O(e=>{if(e.pointerId!==W.current)return;if(e.buttons%2==0){de(e);return}let t=z.current;if(!t)return;let n=G.current===`vertical`,r=n?H.current:U.current,i=n?B.current:V.current;if(!r||!i)return;let a=n?`y`:`x`,o=Tn(i,`padding`,a),s=Tn(r,`margin`,a),c=n?r.offsetHeight:r.offsetWidth,l=(n?i.offsetHeight:i.offsetWidth)-c-o-s,u=n?e.clientY-te.current:e.clientX-ne.current,d=l<=0?0:u/l,f=n?t.scrollHeight:t.scrollWidth,p=n?t.clientHeight:t.clientWidth,m=(n?re.current:ie.current)+d*(f-p);n?t.scrollTop=m:t.scrollLeft=m,e.preventDefault(),se(n)});function pe(e){E(e.pointerType===`touch`)}function me(e){if(pe(e),e.pointerType!==`touch`){let t=i(R.current,e.target);y(t)}}let he=Z.useMemo(()=>({scrolling:b||S,hasOverflowX:!I.x,hasOverflowY:!I.y,overflowXStart:P.xStart,overflowXEnd:P.xEnd,overflowYStart:P.yStart,overflowYEnd:P.yEnd,cornerHidden:I.corner}),[b,S,I.x,I.y,I.corner,P]),ge={role:`presentation`,onPointerEnter:me,onPointerMove:me,onPointerDown:pe,onPointerLeave(){y(!1)},style:{position:`relative`,"--scroll-area-corner-height":`${A.height}px`,"--scroll-area-corner-width":`${A.width}px`}},_e=T(`div`,e,{state:he,ref:[t,R],props:[ge,c],stateAttributesMapping:Dn}),ve=Z.useMemo(()=>({handlePointerDown:ue,handlePointerMove:fe,handlePointerUp:de,handleScroll:ce,disableViewportSnap:le,cornerSize:A,setCornerSize:j,thumbSize:M,setThumbSize:N,hasMeasuredScrollbar:D,setHasMeasuredScrollbar:k,touchModality:w,cornerRef:ee,scrollingX:b,scrollingY:S,hovering:v,setHovering:y,viewportRef:z,scrollbarYRef:B,scrollbarXRef:V,thumbYRef:H,thumbXRef:U,rootId:p,hiddenState:I,setHiddenState:L,overflowEdges:P,setOverflowEdges:F,viewportState:he,overflowEdgeThreshold:{xStart:l,xEnd:u,yStart:d,yEnd:f}}),[ue,fe,de,ce,le,A,M,D,w,b,S,v,p,I,P,he,l,u,d,f]);return(0,Q.jsxs)(Cn.Provider,{value:ve,children:[!_&&Pe.getElement(g),_e]})});function Nn(e){let t=typeof e==`number`?{xStart:e,xEnd:e,yStart:e,yEnd:e}:e;return{xStart:Math.max(0,t?.xStart||0),xEnd:Math.max(0,t?.xEnd||0),yStart:Math.max(0,t?.yStart||0),yEnd:Math.max(0,t?.yEnd||0)}}var Pn=Z.createContext(void 0),Fn=[`--scroll-area-overflow-x-start`,`--scroll-area-overflow-x-end`,`--scroll-area-overflow-y-start`,`--scroll-area-overflow-y-end`],In=!1;function Ln(){In||o||(typeof CSS<`u`&&`registerProperty`in CSS&&Fn.forEach(e=>{try{CSS.registerProperty({name:e,syntax:`<length>`,inherits:!1,initialValue:`0px`})}catch{}}),In=!0)}var Rn=Z.forwardRef(function(e,t){let{render:n,className:i,style:a,...o}=e,{viewportRef:s,scrollbarYRef:c,scrollbarXRef:l,thumbYRef:u,thumbXRef:d,cornerRef:f,cornerSize:p,setCornerSize:m,setThumbSize:h,rootId:g,setHiddenState:_,hiddenState:v,setHasMeasuredScrollbar:y,handleScroll:b,touchModality:x,setHovering:S,setOverflowEdges:C,overflowEdgeThreshold:w,viewportState:E}=wn(),D=Re(),k=Z.useRef(!0),A=Z.useRef([NaN,NaN,NaN,NaN]),j=r(),M=r(),N=O(()=>{let e=s.current,t=c.current,n=l.current,r=u.current,i=d.current,a=f.current;if(!e)return;let o=e.scrollHeight,g=e.scrollWidth,v=e.clientHeight,b=e.clientWidth,x=e.scrollTop,S=e.scrollLeft,T=A.current,E=Number.isNaN(T[0]);if(T[0]=v,T[1]=o,T[2]=b,T[3]=g,E&&y(!0),o===0||g===0)return;let O=zn(e),k=O.y,j=O.x,M=b/g,N=v/o,P=Math.max(0,g-b),F=Math.max(0,o-v),I=0,L=0;j||(I=je(D===`rtl`?-S:S,P),L=P-I);let R=k?0:je(x,F),z=k?0:F-R,B=j?0:b,V=k?0:v,H=0,U=0;!j&&!k&&(H=t?.offsetWidth||0,U=n?.offsetHeight||0);let ee=p.width===0&&p.height===0,W=ee?H:0,te=ee?U:0,ne=Tn(n,`padding`,`x`),re=Tn(t,`padding`,`y`),ie=Tn(i,`margin`,`x`),G=Tn(r,`margin`,`y`),ae=B-ne-ie,oe=V-re-G,se=n?Math.min(n.offsetWidth-W,ae):ae,ce=t?Math.min(t.offsetHeight-te,oe):oe,le=Math.max(16,se*M),ue=Math.max(16,ce*N);if(h(e=>Bn(e,{width:le,height:ue})),t&&r){let e=Vn(r,`--scroll-area-thumb-height`,x,F,o,ue,t.offsetHeight-ue-re-G);r.style.transform=`translate3d(0,${e}px,0)`}if(n&&i){let e=n.offsetWidth-le-ne-ie,t=Vn(i,`--scroll-area-thumb-width`,D===`rtl`?-S:S,P,g,le,e);i.style.transform=`translate3d(${D===`rtl`?-t:t}px,0,0)`}let de=[I,L,R,z];Fn.forEach((t,n)=>{e.style.setProperty(t,`${de[n]}px`)}),a&&m(e=>Bn(e,{width:H,height:U})),_(e=>Bn(e,O));let fe={xStart:!j&&I>w.xStart,xEnd:!j&&L>w.xEnd,yStart:!k&&R>w.yStart,yEnd:!k&&z>w.yEnd};C(e=>Bn(e,fe))});I(()=>{Ln()},[]),I(()=>{queueMicrotask(N)},[N,v,D,w.xStart,w.xEnd,w.yStart,w.yEnd]),I(()=>{s.current?.matches(`:hover`)&&S(!0)},[s,S]),I(()=>{let e=s.current;if(typeof ResizeObserver>`u`||!e)return;let t=!1,n=new ResizeObserver(()=>{if(!t){t=!0;let n=A.current;if(n[0]===e.clientHeight&&n[1]===e.scrollHeight&&n[2]===e.clientWidth&&n[3]===e.scrollWidth)return}N()});return n.observe(e),M.start(0,()=>{let t=e.getAnimations({subtree:!0});t.length!==0&&Promise.allSettled(t.map(e=>e.finished)).then(N).catch(()=>{})}),()=>{n.disconnect(),M.clear()}},[N,s,M]);function P(){k.current=!1}let F={role:`presentation`,...g&&{"data-id":`${g}-viewport`},tabIndex:v.x&&v.y?-1:0,className:Pe.className,style:{overflow:`scroll`},onScroll(){s.current&&(N(),(x||!k.current)&&b({x:s.current.scrollLeft,y:s.current.scrollTop}),j.start(100,()=>{k.current=!0}))},onWheel:P,onPointerMove:P,onPointerEnter:P,onKeyDown:P},L=T(`div`,e,{ref:[t,s],state:E,props:[F,o],stateAttributesMapping:Dn}),R=Z.useMemo(()=>({computeThumbPosition:N}),[N]);return(0,Q.jsx)(Pn.Provider,{value:R,children:L})});function zn(e){let t=e.clientHeight>=e.scrollHeight,n=e.clientWidth>=e.scrollWidth;return{y:t,x:n,corner:t||n}}function Bn(e,t){for(let n in t)if(e[n]!==t[n])return t;return e}function Vn(e,t,n,r,i,a,o){let s=Oe(n,0,r),c=n-s,l=Math.max(16,a*i/(i+Math.abs(c)));return e.style.setProperty(t,c?`${l}px`:``),(r?s/r*o:0)+(c>0?a-l:0)}var Hn=Z.createContext(void 0);function Un(){let e=Z.useContext(Hn);if(e===void 0)throw Error(F(54));return e}var Wn=Z.forwardRef(function(e,t){let{render:n,className:r,orientation:a=`vertical`,keepMounted:o=!1,style:s,...c}=e,{hovering:l,scrollingX:d,scrollingY:f,hiddenState:p,scrollbarYRef:m,scrollbarXRef:h,viewportRef:g,thumbYRef:_,thumbXRef:v,handlePointerDown:y,handlePointerUp:b,handleScroll:x,disableViewportSnap:S,rootId:C,thumbSize:w,hasMeasuredScrollbar:D,viewportState:O}=wn(),k=a===`vertical`,A={...O,hovering:l,scrolling:k?f:d,orientation:a},j=Re(),M=!D&&!o,N=k?p.y:p.x,P=o||!N;Z.useEffect(()=>{if(!P)return;let e=g.current,t=k?m.current:h.current;if(!t)return;function n(t){if(!e||t.ctrlKey)return;let n=!k,r=n?`scrollLeft`:`scrollTop`,i=n?t.deltaX:t.deltaY;if(i===0)return;let a=n?e.scrollWidth-e.clientWidth:e.scrollHeight-e.clientHeight,o=n&&j===`rtl`?-a:0,s=n&&j===`rtl`?0:a,c=e[r];c<=o&&i<0||c>=s&&i>0||(t.preventDefault(),e[r]=Math.min(s,Math.max(o,c+i)),x({x:e.scrollLeft,y:e.scrollTop}))}return E(t,`wheel`,n,{passive:!1})},[j,x,k,h,m,P,g]);let F={...C&&{"data-id":`${C}-scrollbar`},onPointerDown(e){if(e.button!==0)return;let t=u(e.nativeEvent),n=k?_.current:v.current;if(n&&i(n,t))return;let r=g.current;if(!r)return;let a=k?m.current:h.current;if(!n||!a)return;let o=k?`y`:`x`,s=Tn(n,`margin`,o),c=Tn(a,`padding`,o),l=k?n.offsetHeight:n.offsetWidth,d=a.getBoundingClientRect(),f=k?e.clientY-d.top-l/2-c+s/2:e.clientX-d.left-l/2-c+s/2,p=k?r.scrollHeight:r.scrollWidth,b=k?r.clientHeight:r.clientWidth,C=(k?a.offsetHeight:a.offsetWidth)-l-c-s;if(C<=0)return;let w=f/C,T=p-b;S(),k?r.scrollTop=w*T:r.scrollLeft=j===`rtl`?-(1-w)*T:w*T,x({x:r.scrollLeft,y:r.scrollTop}),y(e)},onPointerUp:b,onPointerCancel:b,style:{position:`absolute`,touchAction:`none`,WebkitUserSelect:`none`,userSelect:`none`,visibility:M?`hidden`:void 0,...k?{top:0,bottom:`var(--scroll-area-corner-height)`,insetInlineEnd:0,"--scroll-area-thumb-height":`${w.height}px`}:{insetInlineStart:0,insetInlineEnd:`var(--scroll-area-corner-width)`,bottom:0,"--scroll-area-thumb-width":`${w.width}px`}}},I=T(`div`,e,{ref:[t,k?m:h],state:A,props:[F,c],stateAttributesMapping:Dn});return P?(0,Q.jsx)(Hn.Provider,{value:a,children:I}):null}),Gn=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{thumbYRef:o,thumbXRef:s,handlePointerDown:c,handlePointerMove:l,handlePointerUp:u,scrollingX:d,scrollingY:f,hasMeasuredScrollbar:p}=wn(),m=Un(),h=m===`vertical`;return T(`div`,e,{ref:[t,h?o:s],state:{scrolling:h?f:d,orientation:m},props:[{onPointerDown:c,onPointerMove:l,onPointerUp:u,onPointerCancel:u,style:{visibility:p?void 0:`hidden`,...h?{height:`var(--scroll-area-thumb-height)`}:{width:`var(--scroll-area-thumb-width)`}}},a]})}),Kn=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,{cornerRef:o,cornerSize:s,hiddenState:c}=wn(),l=T(`div`,e,{ref:[t,o],props:[{style:{position:`absolute`,bottom:0,insetInlineEnd:0,width:s.width,height:s.height}},a]});return c.corner?null:l});function qn({className:e,children:t,...n}){return(0,Q.jsxs)(Mn,{"data-slot":`scroll-area`,className:J(`relative`,e),...n,children:[(0,Q.jsx)(Rn,{"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1`,children:t}),(0,Q.jsx)(Jn,{}),(0,Q.jsx)(Kn,{})]})}function Jn({className:e,orientation:t=`vertical`,...n}){return(0,Q.jsx)(Wn,{"data-slot":`scroll-area-scrollbar`,"data-orientation":t,orientation:t,className:J(`flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent`,e),...n,children:(0,Q.jsx)(Gn,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-border`})})}function Yn({className:e,...t}){return(0,Q.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,className:J(e),...t})}function Xn({className:e,...t}){return(0,Q.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:J(`flex flex-wrap items-center gap-1.5 text-sm wrap-break-word text-muted-foreground`,e),...t})}function Zn({className:e,...t}){return(0,Q.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:J(`inline-flex items-center gap-1`,e),...t})}function Qn({className:e,...t}){return(0,Q.jsx)(`span`,{"data-slot":`breadcrumb-page`,"aria-current":`page`,className:J(`font-normal text-foreground`,e),...t})}function $n({children:e,className:t,...n}){return(0,Q.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:J(`[&>svg]:size-3.5`,t),...n,children:e??(0,Q.jsx)(mt,{})})}var er=768;function tr(){let[e,t]=Z.useState(void 0);return Z.useEffect(()=>{let e=window.matchMedia(`(max-width: 767px)`),n=()=>{t(window.innerWidth<er)};return e.addEventListener(`change`,n),t(window.innerWidth<er),()=>e.removeEventListener(`change`,n)},[]),!!e}var nr=4;function rr({...e}){return(0,Q.jsx)(fe,{"data-slot":`sheet`,...e})}function ir({...e}){return(0,Q.jsx)(Ee,{"data-slot":`sheet-portal`,...e})}function ar({className:e,...t}){return(0,Q.jsx)(ye,{"data-slot":`sheet-overlay`,className:J(`fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs`,e),...t})}function or({className:e,children:t,side:n=`right`,showCloseButton:r=!0,...i}){let a=he(),o=Math.min(a+nr,8);return(0,Q.jsxs)(ir,{children:[(0,Q.jsx)(ar,{}),(0,Q.jsx)(pe,{"data-slot":`sheet-content`,"data-side":n,className:J(`fixed z-50 flex flex-col gap-4 bg-clip-padding text-sm text-popover-foreground transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm`,ue(o),e),...i,children:(0,Q.jsxs)(ge,{value:o,children:[t,r&&(0,Q.jsxs)(Se,{"data-slot":`sheet-close`,render:(0,Q.jsx)(y,{variant:`ghost`,className:`absolute top-3 right-3`,size:`icon-sm`}),children:[(0,Q.jsx)(At,{}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})})]})}function sr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sheet-header`,className:J(`flex flex-col gap-0.5 p-4`,e),...t})}function cr({className:e,...t}){return(0,Q.jsx)(we,{"data-slot":`sheet-title`,className:J(`font-heading text-base font-medium text-foreground`,e),...t})}function lr({className:e,...t}){return(0,Q.jsx)(me,{"data-slot":`sheet-description`,className:J(`text-sm text-muted-foreground`,e),...t})}var ur=Z.createContext(void 0);function dr(e){let t=Z.useContext(ur);if(t===void 0&&!e)throw Error(F(72));return t}var fr={...U,disabled:e=>e.disabled,instantType:e=>e.instantType,isInstantPhase:e=>e.isInstantPhase,trackCursorAxis:e=>e.trackCursorAxis,disableHoverablePopup:e=>e.disableHoverablePopup,lastOpenChangeReason:e=>e.openChangeReason,closeOnClick:e=>e.closeOnClick,closeDelay:e=>e.closeDelay,adaptiveOrigin:e=>e.adaptiveOrigin},pr=class extends _{constructor(e,t,n){let r=new W;super(mr(e,r,t,n),hr(r),fr)}setOpen=(e,t)=>{De(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,z(A,e))}};function mr(e,t,n,r=!1){let i={...G(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...e};return i.floatingRootContext=ae(t,n,r),i}function hr(e){return{popupRef:Z.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:e}}var gr=h(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:i=!1,trackCursorAxis:a=`none`,actionsRef:o,onOpenChange:s,onOpenChangeComplete:c,handle:l,triggerId:u,defaultTriggerId:d=null,children:f}=e,p=ne((e,t)=>new pr({open:n,openProp:r,activeTriggerId:d,triggerIdProp:u},e,t));p.useControlledProp(`openProp`,r),p.useControlledProp(`triggerIdProp`,u),p.useContextCallback(`onOpenChange`,s),p.useContextCallback(`onOpenChangeComplete`,c);let m=p.useState(`open`),h=!t&&m,g=p.useState(`activeTriggerId`),_=p.useState(`mounted`),v=p.useState(`payload`);p.useSyncedValues({trackCursorAxis:a,disableHoverablePopup:i,disabled:t}),se(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:y,transitionStatus:b}=ce(h,p),x=p.useState(`isInstantPhase`),S=p.useState(`instantType`),C=p.useState(`lastOpenChangeReason`),w=Z.useRef(null);I(()=>{m&&t&&p.setOpen(!1,z(M))},[m,t,p]),I(()=>{b===`ending`&&C===`none`||b!==`ending`&&x?(S!==`delay`&&(w.current=S),p.set(`instantType`,`delay`)):w.current!==null&&(p.set(`instantType`,w.current),w.current=null)},[b,x,C,S,p]),I(()=>{h&&(g??p.set(`payload`,void 0))},[p,g,h]),Z.useImperativeHandle(o,()=>({unmount:y,close:()=>p.setOpen(!1,z(L))}),[y,p]);let T=h||_||!t&&a!==`none`;return(0,Q.jsxs)(ur.Provider,{value:p,children:[l&&(0,Q.jsx)(oe,{handle:l,store:p}),T&&(0,Q.jsx)(_r,{store:p,disabled:t,trackCursorAxis:a}),typeof f==`function`?f({payload:v}):f]})});function _r({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=le(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=$t(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=Z.useMemo(()=>N(a.reference,i.reference),[a.reference,i.reference]);return ee(e,{activeTriggerProps:o,inactiveTriggerProps:o,popupProps:i.floating??R}),null}var vr=Z.createContext(void 0);function yr(){return Z.useContext(vr)}var br=`data-base-ui-tooltip-trigger`;function xr(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;e<t.length;e+=1){let n=t[e];if(C(n))return n}}let t=e.target;return C(t)?t:null}function Sr(e){let t=e;for(;t;){let e=t.closest(`[${br}]`);if(e)return e;let n=t.getRootNode();t=`host`in n&&C(n.host)?n.host:null}return null}var Cr=f(function(e,t){let{render:n,className:a,style:o,handle:s,payload:c,disabled:l,delay:u,closeOnClick:d=!0,closeDelay:f,id:p,...m}=e,h=dr(!0),g=He(s)??h;if(!g)throw Error(F(82));let _=Ve(p),v=g.useState(`isTriggerActive`,_),y=g.useState(`isOpenedByTrigger`,_),b=g.useState(`floatingRootContext`),x=Z.useRef(null),S=u??600,C=f??0,{registerTrigger:w,isMountedByThisTrigger:E}=te(_,x,g,{payload:c,closeOnClick:d,closeDelay:C}),D=yr(),{delayRef:O,isInstantPhase:k,hasProvider:A}=Xt(b,{open:y}),M=nt(b);g.useSyncedValue(`isInstantPhase`,k);let N=g.useState(`disabled`),P=l??N,I=Be(P),L=g.useState(`trackCursorAxis`),R=g.useState(`disableHoverablePopup`),B=Z.useRef(!1),V=r(),H=Z.useRef(void 0);function U(){return A?tt(O.current,`open`)===0?0:u??D??600:S}function ee(e){let t=x.current;if(!t||!e)return!1;let n=Sr(e);return n!==null&&n!==t&&i(t,n)}function W(e){let t=ee(e);return B.current=t,t&&(M.openChangeTimeout.clear(),M.restTimeout.clear(),M.restTimeoutPending=!1,V.clear()),t}let ne=We(b,{enabled:!P,mouseOnly:!0,move:!1,handleClose:!R&&L!==`both`?Ge():null,restMs:U,delay(){return f==null&&A?{close:tt(O.current,`close`)}:{close:C}},triggerElementRef:x,isActiveTrigger:v,isClosing:()=>g.select(`transitionStatus`)===`ending`,shouldOpen(){return!B.current}}),re=tn(b,{enabled:!P}).reference,G=e=>{let t=B.current,n=xr(e),r=W(n),a=x.current,o=a&&n&&i(a,n);if(r&&g.select(`open`)&&g.select(`lastOpenChangeReason`)===`trigger-hover`){g.setOpen(!1,z(j,e));return}if(t&&!r&&o&&!I.current&&!g.select(`open`)&&a&&_e(H.current)){let t=()=>{!B.current&&!I.current&&!g.select(`open`)&&g.setOpen(!0,z(j,e,a))},n=U();n===0?(V.clear(),t()):V.start(n,t)}},ae=g.useState(`triggerProps`,E);return T(`button`,e,{state:{open:y},ref:[t,w,x],props:[ne,re,E||L!==`none`?ae:void 0,{onMouseOver(e){G(e.nativeEvent)},onFocus(e){ee(xr(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){B.current=!1,V.clear(),H.current=void 0},onPointerEnter(e){H.current=e.pointerType},onPointerDown(e){H.current=e.pointerType,g.set(`closeOnClick`,d),d&&!g.select(`open`)&&g.cancelPendingOpen(e.nativeEvent)},onClick(e){d&&!g.select(`open`)&&g.cancelPendingOpen(e.nativeEvent)},id:_,"data-trigger-disabled":P?``:void 0,[br]:P?void 0:``},m],stateAttributesMapping:ie})}),wr=Z.createContext(void 0);function Tr(){let e=Z.useContext(wr);if(e===void 0)throw Error(F(70));return e}var Er=Z.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return dr().useState(`mounted`)||n?(0,Q.jsx)(wr.Provider,{value:n,children:(0,Q.jsx)(B,{ref:t,...r})}):null}),Dr=Z.createContext(void 0);function Or(){let e=Z.useContext(Dr);if(e===void 0)throw Error(F(71));return e}var kr=Z.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:h=!1,collisionAvoidance:g=m,style:_,...v}=e,y=dr(),b=Tr(),x=y.useState(`open`),S=y.useState(`mounted`),C=y.useState(`trackCursorAxis`),w=y.useState(`disableHoverablePopup`),T=y.useState(`floatingRootContext`),E=y.useState(`instantType`),D=y.useState(`transitionStatus`),O=y.useState(`adaptiveOrigin`),k=Ae({anchor:i,positionMethod:a,floatingRootContext:T,mounted:S,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:h,keepMounted:b,collisionAvoidance:g,adaptiveOrigin:O}),A=Z.useMemo(()=>({open:x,side:k.side,align:k.align,anchorHidden:k.anchorHidden,instant:C===`none`?E:`tracking-cursor`}),[x,k.side,k.align,k.anchorHidden,C,E]),j=Le(e,A,{styles:k.positionerStyles,transitionStatus:D,props:v,refs:[t,y.useStateSetter(`positionerElement`)],hidden:!S,inert:!x||C===`both`||w});return(0,Q.jsx)(Dr.Provider,{value:k,children:j})}),Ar=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=dr(),{side:s,align:c}=Or(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);S({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),Ke(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return T(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[re,f,ze(d),a],stateAttributesMapping:H})}),jr=Z.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=dr(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=Or(),f={open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)};return T(`div`,e,{state:f,ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:ve})});function Mr({...e}){return(0,Q.jsx)(gr,{"data-slot":`tooltip`,...e})}function Nr({...e}){return(0,Q.jsx)(Cr,{"data-slot":`tooltip-trigger`,...e})}function Pr({className:e,side:t=`top`,sideOffset:n=4,align:r=`center`,alignOffset:i=0,children:a,...o}){return(0,Q.jsx)(Er,{children:(0,Q.jsx)(kr,{align:r,alignOffset:i,side:t,sideOffset:n,className:`isolate z-50`,children:(0,Q.jsxs)(Ar,{"data-slot":`tooltip-content`,className:J(`z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...o,children:[a,(0,Q.jsx)(jr,{className:`z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5`})]})})})}var Fr=`sidebar_state`,Ir=604800,Lr=`16rem`,Rr=`18rem`,zr=`3rem`,Br=`b`,Vr=Z.createContext(null);function Hr(){let e=Z.useContext(Vr);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function Ur({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:i,children:a,enableKeyboardShortcut:o=!0,persistState:s=!0,...c}){let l=tr(),[u,d]=Z.useState(!1),[f,p]=Z.useState(e),m=t??f,h=Z.useCallback(e=>{let t=typeof e==`function`?e(m):e;n?n(t):p(t),s&&(document.cookie=`${Fr}=${t}; path=/; max-age=${Ir}`)},[n,m,s]),g=Z.useCallback(()=>l?d(e=>!e):h(e=>!e),[l,h,d]),_=Z.useEffectEvent(e=>{e.key===Br&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),g())});Z.useEffect(()=>{if(!o)return;let e=e=>_(e);return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[o]);let v=m?`expanded`:`collapsed`,y=Z.useMemo(()=>({state:v,open:m,setOpen:h,isMobile:l,openMobile:u,setOpenMobile:d,toggleSidebar:g}),[v,m,h,l,u,d,g]);return(0,Q.jsx)(Vr.Provider,{value:y,children:(0,Q.jsx)(`div`,{"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":Lr,"--sidebar-width-icon":zr,...i},className:J(`group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,r),...c,children:a})})}function Wr({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,dir:a,...o}){let{isMobile:s,state:c,openMobile:l,setOpenMobile:u}=Hr();return n===`none`?(0,Q.jsx)(`div`,{"data-slot":`sidebar`,className:J(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),...o,children:i}):s?(0,Q.jsx)(rr,{open:l,onOpenChange:u,...o,children:(0,Q.jsxs)(or,{dir:a,"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,style:{"--sidebar-width":Rr},side:e,children:[(0,Q.jsxs)(sr,{className:`sr-only`,children:[(0,Q.jsx)(cr,{children:`Sidebar`}),(0,Q.jsx)(lr,{children:`Displays the mobile sidebar.`})]}),(0,Q.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,Q.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-state":c,"data-collapsible":c===`collapsed`?n:``,"data-variant":t,"data-side":e,"data-slot":`sidebar`,children:[(0,Q.jsx)(`div`,{"data-slot":`sidebar-gap`,className:J(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,Q.jsx)(`div`,{"data-slot":`sidebar-container`,"data-side":e,className:J(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex`,t===`floating`||t===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...o,children:(0,Q.jsx)(`div`,{"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,className:`flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`,children:i})})]})}function Gr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,className:J(`flex flex-col gap-2 p-2`,e),...t})}function Kr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,className:J(`no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,e),...t})}function qr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,className:J(`relative flex w-full min-w-0 flex-col p-2`,e),...t})}function Jr({className:e,render:t,...n}){return Fe({defaultTagName:`div`,props:N({className:J(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,e)},n),render:t,state:{slot:`sidebar-group-label`,sidebar:`group-label`}})}function Yr({className:e,...t}){return(0,Q.jsx)(`div`,{"data-slot":`sidebar-group-content`,"data-sidebar":`group-content`,className:J(`w-full text-sm`,e),...t})}function Xr({className:e,...t}){return(0,Q.jsx)(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,className:J(`flex w-full min-w-0 flex-col gap-0`,e),...t})}function Zr({className:e,...t}){return(0,Q.jsx)(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,className:J(`group/menu-item relative`,e),...t})}var Qr=g(`peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function $r({render:e,isActive:t=!1,variant:n=`default`,size:r=`default`,tooltip:i,className:a,...o}){let{isMobile:s,state:c}=Hr(),l=Fe({defaultTagName:`button`,props:N({className:J(Qr({variant:n,size:r}),a)},o),render:i?(0,Q.jsx)(Nr,{render:e}):e,state:{slot:`sidebar-menu-button`,sidebar:`menu-button`,size:r,active:t}});return i?(typeof i==`string`&&(i={children:i}),(0,Q.jsxs)(Mr,{children:[l,(0,Q.jsx)(Pr,{side:`right`,align:`center`,hidden:c!==`collapsed`||s,...i})]})):l}var ei=[{value:`system`,label:`System`,icon:St},{value:`light`,label:`Light`,icon:Ct},{value:`dark`,label:`Dark`,icon:xt}];function ti({onThemePreferenceChange:e,themePreference:t}){return(0,Q.jsxs)(Bt,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(Lt,{children:`Theme`}),(0,Q.jsx)(Vt,{children:`Match the system theme or pick light or dark.`})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:(0,Q.jsx)(K,{"aria-label":`Theme`,className:`w-[160px]`,onValueChange:t=>e(t),options:[...ei],value:t})})]})}function ni({actions:e,children:t,description:n,title:r}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium text-balance`,children:r}),(0,Q.jsx)(`p`,{className:`mt-1 text-sm text-pretty text-muted-foreground`,children:n})]}),e?(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5 pt-0.5`,children:e}):null]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:t})]})}function ri({dirty:e,disabled:t,onRevert:n,onSave:r,saving:i}){return(0,Q.jsxs)(Q.Fragment,{children:[e?(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground transition-transform active:scale-[0.96]`,disabled:t||i,onClick:n,"aria-label":`Revert changes`,children:(0,Q.jsx)(Dt,{})}):null,(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,className:J($e,`transition-transform active:scale-[0.96]`,e&&`border-primary/30 text-primary`),disabled:!e||t||i,onClick:r,children:[i?(0,Q.jsx)(ht,{className:`animate-spin`,"data-icon":`inline-start`}):(0,Q.jsx)(ln,{"data-icon":`inline-start`}),`Commit`]})]})}function ii(e,t,n=!0){return t&&n&&e.trim().length===0}function ai({attemptedSave:e,label:t,onChange:n,onToggleVisibility:r,placeholder:i,required:a=!0,showPassword:o,value:s}){let c=(0,Z.useId)(),l=ii(s,e,a);return(0,Q.jsxs)(Bt,{"data-invalid":l||void 0,children:[(0,Q.jsx)(Lt,{htmlFor:c,children:t}),(0,Q.jsxs)(qt,{children:[(0,Q.jsx)(Gt,{align:`inline-start`,children:(0,Q.jsx)(sn,{})}),(0,Q.jsx)(Wt,{id:c,type:o?`text`:`password`,placeholder:i,value:s,onChange:e=>n(e.target.value),"aria-label":t,"aria-invalid":l||void 0}),(0,Q.jsx)(Gt,{align:`inline-end`,children:(0,Q.jsx)(Kt,{size:`icon-xs`,className:J(Ye,`transition-[background-color,transform] duration-150 active:scale-[0.96]`),"aria-label":o?`Hide value`:`Show value`,onClick:r,children:o?(0,Q.jsx)(rn,{}):(0,Q.jsx)(vt,{})})})]})]})}function oi({attemptedSave:e,icon:t,inputType:n=`text`,label:r,onChange:i,placeholder:a,required:o=!0,value:s}){let c=(0,Z.useId)(),l=ii(s,e,o);return(0,Q.jsxs)(Bt,{"data-invalid":l||void 0,children:[(0,Q.jsx)(Lt,{htmlFor:c,children:r}),(0,Q.jsxs)(qt,{children:[(0,Q.jsx)(Gt,{align:`inline-start`,children:(0,Q.jsx)(t,{})}),(0,Q.jsx)(Wt,{id:c,type:n,placeholder:a,value:s,onChange:e=>i(e.target.value),"aria-label":r,"aria-invalid":l||void 0})]})]})}var si=`https://opencode.ai/zen/v1`,ci=`qwen35-122b-a10b`,li=`e.g. OpenCode Zen, Nebius, Groq…`,ui=`model-a, model-b (comma-separated)`,di=[{value:`openai-completions`,label:`OpenAI Chat Completions`},{value:`openai-responses`,label:`OpenAI Responses`},{value:`anthropic-messages`,label:`Anthropic Messages`},{value:`google-genai`,label:`Google Generative AI`}];function fi({attemptedSave:e,apiKey:t,api:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:s,onApiKeyChange:c,onApiChange:l,onBaseUrlChange:u,onModelIdChange:d,onModelsChange:f,onDisplayNameChange:p,onTogglePassword:m,openAiChat:h,placeholder:g,showPassword:_}){let v=s&&l,y=s&&f;return(0,Q.jsxs)(zt,{className:`gap-2`,children:[(h||s)&&p?(0,Q.jsx)(oi,{attemptedSave:e,icon:dn,label:`Provider name`,placeholder:li,value:o??``,onChange:p}):null,v?(0,Q.jsx)(pi,{value:n??`openai-completions`,onChange:l}):null,(0,Q.jsx)(ai,{attemptedSave:e,label:`API key`,placeholder:g,value:t,showPassword:_,onChange:c,onToggleVisibility:m}),h||s?(0,Q.jsx)(oi,{attemptedSave:e,icon:_t,inputType:`url`,label:`Base URL`,placeholder:si,value:r,onChange:u}):null,y?(0,Q.jsx)(oi,{attemptedSave:e,icon:on,label:`Model ids`,placeholder:ui,value:a??``,onChange:f}):null,h&&!y?(0,Q.jsx)(oi,{attemptedSave:e,icon:nn,label:`Model name`,placeholder:ci,value:i,onChange:d}):null]})}function pi({value:e,onChange:t}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:`API family`}),(0,Q.jsx)(K,{"aria-label":`API family`,value:e,options:di,placeholder:`Select API family`,onValueChange:e=>t(e)})]})}function mi(e){return e.authType===`oauth`}function hi(e){return e.supportsOAuth===!0}var gi={id:`custom`,name:`Custom provider`,isConfigured:!1,envVarName:`CUSTOM_PROVIDER_API_KEY`,displayName:`Custom provider`};function _i(e){return e.split(`,`).map(e=>e.trim()).filter(e=>e.length>0)}function vi({onRemoveProvider:e,onUpdateProvider:t,providers:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(``),[p,m]=(0,Z.useState)(``),[h,g]=(0,Z.useState)(`openai-completions`),[_,v]=(0,Z.useState)(``),[y,b]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(!1),[C,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(!1),[D,O]=(0,Z.useState)(``),[k,A]=(0,Z.useState)(null),j=(0,Z.useMemo)(()=>[...n.filter(e=>e.id!==gi.id),gi],[n]),M=(0,Z.useMemo)(()=>j.filter(e=>e.isConfigured),[j]),N=(0,Z.useMemo)(()=>j.filter(e=>!e.isConfigured||e.id===`openai-chat-completions`&&e.providerFamily===void 0),[j]),P=(0,Z.useMemo)(()=>{let e=C.trim().toLowerCase();return e?M.filter(t=>yi(t,e)):M},[M,C]),F=(0,Z.useMemo)(()=>{let e=D.trim().toLowerCase();return N.filter(t=>yi(t,e))},[D,N]),I=(0,Z.useMemo)(()=>{let e=D.trim().toLowerCase();return M.filter(t=>yi(t,e))},[M,D]),L=F.length>0||I.length>0,R=r&&!M.some(e=>e.id===r)?j.find(e=>e.id===r)??null:null,z=()=>{c(``),u(``),f(``),m(``),g(`openai-completions`),v(``),b(!1),S(!1)},B=()=>{i(null),o(!1),z()},V=(e,t)=>{E(!1),O(``),i(e),o(t?.newOccInstance===!0),z();let r=n.find(t=>t.id===e);u(r?.baseUrl??``),v(r?.displayName??(Ie(e)?r?.name??``:``)),g(r?.api??`openai-completions`),m((r?.modelIds??[]).join(`, `)),f(r?.modelIds?.[0]??``)},H=()=>{B(),O(``),E(!0)},U=()=>{E(!1),O(``)};return{activeProviders:M,addPickerOpen:T,addPickerQuery:D,api:h,apiKey:s,attemptedSave:x,baseUrl:l,canSave:(0,Z.useMemo)(()=>s.trim().length===0?!1:r?r===`custom`||Ie(r)?l.trim().length===0||_i(p).length===0?!1:_.trim().length>0:ke(r)?l.trim().length===0||d.trim().length===0?!1:Ne(r)||a?_.trim().length>0:!0:!0:!0,[s,l,d,p,_,r,a]),closeAddPicker:U,closeEditor:B,confirmRemoveProvider:k,credentialProviders:j,displayName:_,editingIsNewOccInstance:a,editingProvider:r,editingUnconfiguredProvider:R,filteredActiveProviders:P,filteredPickerAvailable:F,filteredPickerConfigured:I,handleRemove:async t=>{if(e)try{await e({providerId:t.id}),r===t.id&&B(),X.success(`${t.name} removed from your configured providers.`),A(null)}catch(e){X.error(e instanceof Error?e.message:`Failed to remove provider`)}},handleSave:async e=>{if(!t)return;S(!0);let n=e===`custom`||Ie(e),r=ke(e);if(n){let n=_i(p);if(!s.trim()||!l.trim()||!_.trim()||n.length===0)return;try{await t({providerId:e,apiKey:s.trim(),baseUrl:l.trim(),displayName:_.trim(),api:h,models:n,...e===`custom`?{createOccInstance:!0}:{}}),X.success(`Provider credentials applied to your active sessions.`),B(),U()}catch(e){X.error(e instanceof Error?e.message:`Failed to update provider`)}return}let i=r&&Ne(e),o=r&&(i||a);if(s.trim()&&!(r&&(!l.trim()||!d.trim()))&&!(o&&!_.trim()))try{await t({providerId:e,apiKey:s.trim(),...r?{baseUrl:l.trim(),modelId:d.trim(),...o?{displayName:_.trim()}:{},...a?{createOccInstance:!0}:{}}:{}}),X.success(`Provider credentials applied to your active sessions.`),B(),U()}catch(e){X.error(e instanceof Error?e.message:`Failed to update provider`)}},modelId:d,models:p,openAddPicker:H,openEditor:V,pickerHasResults:L,resetEditor:z,searchQuery:C,selectProviderFromPicker:e=>{V(e,{newOccInstance:ke(e)})},setAddPickerOpen:E,setAddPickerQuery:O,setApi:g,setApiKey:c,setAttemptedSave:S,setBaseUrl:u,setConfirmRemoveProvider:A,setDisplayName:v,setEditingIsNewOccInstance:o,setEditingProvider:i,setModelId:f,setModels:m,setSearchQuery:w,setShowPassword:b,showPassword:y,unconfiguredProviders:N}}function yi(e,t){if(!t)return!0;let n=hi(e)?mi(e)?`oauth sign-in login`:`api key oauth sign-in login`:e.id===`custom`||Ie(e.id)?`custom provider endpoint openai anthropic google compatible`:ke(e.id)?`api key base url model name chat completions`:``;return[e.name,e.envVarName,e.id,n].join(` `).toLowerCase().includes(t)}var bi=1500,xi=`Unknown or expired OAuth login`;function Si(e){return new Promise(t=>{setTimeout(t,e)})}function Ci({onConfigured:e,onOAuthLogin:t,providerId:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(!1),[s,c]=(0,Z.useState)(``),l=(0,Z.useRef)(null),u=(0,Z.useRef)(0),d=(0,Z.useRef)(!1),f=(0,Z.useRef)(t),p=(0,Z.useRef)(e),m=(0,Z.useRef)(n);(0,Z.useEffect)(()=>{f.current=t,p.current=e,m.current=n},[e,t,n]);let h=(0,Z.useCallback)(async e=>{if(!(!e||!f.current))try{await f.current({providerId:m.current,loginId:e,cancel:!0})}catch{}},[]),g=(0,Z.useCallback)(()=>{l.current=null,d.current=!1,i(null),c(``),o(!1)},[]);(0,Z.useEffect)(()=>()=>{u.current+=1;let e=l.current;l.current=null,h(e)},[h]);let _=(0,Z.useCallback)((e,t)=>{if(t!==u.current){e.status===`waiting`&&e.loginId&&h(e.loginId);return}if(e.status===`success`){l.current=null,i(null),c(``),o(!1),X.success(`Provider credentials applied to your active sessions.`),p.current?.();return}if(e.status===`error`){if(e.error===xi&&l.current===null)return;let t=l.current;l.current=null,t&&e.error!==`Login cancelled`&&h(t),i(e),o(!1);return}e.loginId&&(l.current=e.loginId),i(e)},[h]),v=(0,Z.useCallback)(async()=>{if(!f.current||d.current)return;d.current=!0;let e=u.current;o(!0);let t=l.current;if(l.current=null,i(null),await h(t),e!==u.current){d.current=!1;return}try{let t=await f.current({providerId:m.current});_(t,e)}catch(t){if(e!==u.current)return;i({status:`error`,error:t instanceof Error?t.message:`Failed to start OAuth sign-in`})}finally{d.current=!1,e===u.current&&o(!1)}},[_,h]),y=(0,Z.useCallback)(async()=>{let e=l.current;if(!f.current||!e)return;let t=u.current;o(!0);try{let n=await f.current({providerId:m.current,loginId:e,promptAnswer:s});c(``),_(n,t)}catch(e){if(t!==u.current)return;X.error(e instanceof Error?e.message:`Failed to continue OAuth sign-in`)}finally{t===u.current&&o(!1)}},[_,s]),b=(0,Z.useCallback)(async()=>{u.current+=1;let e=l.current;g(),await h(e)},[h,g]);return(0,Z.useEffect)(()=>{if(!f.current||r?.status!==`waiting`||!r.loginId)return;let e=u.current,t=r.loginId,n=!1;return(async()=>{for(;!n;){try{let r=await f.current({providerId:m.current,loginId:t});if(n||e!==u.current||(_(r,e),r.status!==`waiting`))return}catch(r){if(n||e!==u.current||l.current!==t)return;l.current=null,h(t),i({status:`error`,error:r instanceof Error?r.message:`OAuth sign-in failed`});return}if(await Si(bi),n||e!==u.current||l.current!==t)return}})(),()=>{n=!0}},[_,h,r?.loginId,r?.status]),{busy:a,cancel:b,canStart:!!t,login:r,promptAnswer:s,setPromptAnswer:c,start:v,submitPrompt:y}}function wi({onConfigured:e,onOAuthLogin:t,provider:n}){let{busy:r,cancel:i,canStart:a,login:o,promptAnswer:s,setPromptAnswer:c,start:l,submitPrompt:u}=Ci({onConfigured:e,onOAuthLogin:t,providerId:n.id}),d=o?.status===`waiting`,f=o?.status===`error`?o.error:void 0,p=d?o?.authUrl:void 0,m=d?o?.userCode:void 0,h=d?o?.instructions:void 0,g=d?o?.prompt:void 0,_=n.authType===`oauth`;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.isConfigured&&_&&!d?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,Q.jsx)(pt,{className:`size-3.5 text-muted-foreground`}),(0,Q.jsx)(`span`,{children:`Connected`})]}):null,d?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`p`,{className:`text-sm`,children:[`Sign in with `,n.name,` to store OAuth credentials for this account.`]}),m?(0,Q.jsxs)(`p`,{className:`text-sm`,children:[`Enter this code:`,` `,(0,Q.jsx)(`span`,{className:`font-mono text-foreground`,children:m})]}):null,h&&!m?(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:h}):null,p?(0,Q.jsxs)(y,{type:`button`,size:`sm`,onClick:()=>{window.open(p,`_blank`,`noopener,noreferrer`)},children:[(0,Q.jsx)(gt,{"data-icon":`inline-start`}),`Open sign-in page`]}):g?null:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,Q.jsx)(q,{className:`size-3`}),`Waiting for sign-in…`]}),g?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:g.message}),(0,Q.jsx)(It,{value:s,placeholder:g.placeholder,onChange:e=>c(e.target.value),"aria-label":g.message}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:r||!g.allowEmpty&&!s.trim(),onClick:()=>{u()},children:[r?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Continue`]})})]}):null,(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,disabled:r,onClick:()=>{i()},children:`Cancel sign-in`})})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[f?(0,Q.jsx)(Ht,{className:`px-3 py-2`,children:(0,Q.jsx)(Rt,{className:`text-xs text-pretty`,children:f})}):(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:_&&n.isConfigured?`Sign in again with ${n.name} to refresh OAuth credentials.`:_?`Sign in with ${n.name}. No API key is stored; credentials are saved to auth.json.`:`Sign in with ${n.name} to use OAuth credentials; API-key editing remains available above.`}),(0,Q.jsx)(`div`,{className:`flex justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:r||!a,onClick:()=>{l()},children:[r?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Sign in with `,n.name]})})]})]})}function Ti({addPickerQuery:e,credentialProvidersLength:t,filteredPickerAvailable:n,filteredPickerConfigured:r,pickerHasResults:i,onClose:a,onQueryChange:o,onSelect:s}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to providers`,onClick:a,children:(0,Q.jsx)(Je,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`p`,{className:`text-sm font-medium`,children:`Add provider`}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`Choose a provider to store encrypted credentials for this account.`})]})]}),(0,Q.jsxs)(qt,{children:[(0,Q.jsx)(Gt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Wt,{type:`text`,placeholder:`Search providers…`,value:e,onChange:e=>o(e.target.value),"aria-label":`Search providers to add`})]}),(0,Q.jsx)(`div`,{className:`max-h-[min(24rem,50vh)] overflow-y-auto`,children:i?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[n.length>0?(0,Q.jsx)(`div`,{className:`flex flex-col gap-1`,children:n.map(e=>(0,Q.jsx)(ki,{provider:e,configured:!1,onSelect:()=>s(e.id)},e.id))}):null,r.length>0?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[n.length>0?(0,Q.jsx)(`p`,{className:`px-2 pt-1 text-[0.6875rem] font-medium tracking-wide text-muted-foreground uppercase`,children:`Already configured`}):null,r.map(e=>(0,Q.jsx)(ki,{provider:e,configured:!0,onSelect:()=>s(e.id)},e.id))]}):null]}):(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:t===0?`No providers available.`:`No matching providers found.`})})]})}function Ei({onBack:e,onConfigured:t,onOAuthLogin:n,provider:r}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to provider list`,onClick:e,children:(0,Q.jsx)(Je,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,r.name]}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:`OAuth sign-in. Credentials are stored in auth.json for this account.`})]})]}),(0,Q.jsx)(wi,{provider:r,onConfigured:t,onOAuthLogin:n},r.id)]})}function Di({provider:e,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,showPassword:s,attemptedSave:c,isPending:l,canSave:u,onApiKeyChange:d,onApiChange:f,onBaseUrlChange:p,onModelIdChange:m,onModelsChange:h,onDisplayNameChange:g,onTogglePassword:_,onBack:v,onCancel:b,onConfigured:x,onOAuthLogin:S,onSave:C}){let w=e.id===`custom`||Ie(e.id),T=ot[e.id]??(w?ot.custom:{placeholder:`Enter credentials…`,help:`Stored securely in your local environment overrides.`}),E=ke(e.id)&&!w,D=hi(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":`Back to provider list`,onClick:v,children:(0,Q.jsx)(Je,{})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsxs)(`p`,{className:`text-sm font-medium`,children:[`Configure `,e.name]}),(0,Q.jsx)(`p`,{className:`text-xs text-pretty text-muted-foreground`,children:w?`Name this custom provider, pick its API family, then enter its API key, https base URL, and model ids.`:E?`Name this OpenAI-compatible provider, then enter its API key, base URL, and model name.`:`Stored as ${e.envVarName} for this account.`})]})]}),(0,Q.jsx)(fi,{attemptedSave:c,api:t,apiKey:n,baseUrl:r,modelId:i,models:a,displayName:o,isCustom:w,openAiChat:E,placeholder:T.placeholder,showPassword:s,onApiKeyChange:d,onApiChange:f,onBaseUrlChange:p,onModelIdChange:m,onModelsChange:h,onDisplayNameChange:g,onTogglePassword:_}),(0,Q.jsxs)(Ht,{className:`px-3 py-2`,children:[(0,Q.jsx)(V,{}),(0,Q.jsx)(Rt,{className:`text-xs text-pretty`,children:T.help})]}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,onClick:b,children:`Cancel`}),(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:l||!u,onClick:C,children:[l?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Save`]})]}),D?(0,Q.jsx)(wi,{provider:e,onConfigured:x??b,onOAuthLogin:S},`${e.id}-oauth`):null]})}function Oi({confirmRemoveProvider:e,isPending:t,onClose:n,onConfirm:r}){return(0,Q.jsx)(et,{open:e!==null,onOpenChange:e=>{e||n()},children:(0,Q.jsxs)(st,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(lt,{children:[`Remove `,e?.name??`provider`,`?`]}),(0,Q.jsx)(Qe,{children:`This clears stored credentials for this provider from your workspace settings. Active sessions will stop using it immediately.`})]}),(0,Q.jsxs)(rt,{children:[(0,Q.jsx)(at,{disabled:t,children:`Cancel`}),(0,Q.jsxs)(Xe,{disabled:t||!e,onClick:()=>{e&&r(e)},children:[t?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Remove provider`]})]})]})})}function ki({configured:e,onSelect:t,provider:n}){let r=ke(n.id),i=n.id===`custom`||Ie(n.id),a=mi(n),o=hi(n);return(0,Q.jsxs)(`button`,{type:`button`,className:J(`flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left transition-[background-color,transform] duration-150`,`hover:bg-muted/60 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:scale-[0.96]`),onClick:t,children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,Q.jsx)(it,{provider:i?`custom`:n.id,api:n.api,className:`text-foreground/70`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:n.name}),(0,Q.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[a?`OAuth sign-in`:o?`API key or OAuth`:i?`API family + key + https base URL + models`:r?`API key + base URL + model name`:n.envVarName,e?` · Update`:``]})]})]})}function Ai({className:e,interactive:t,padding:n,tone:r,...i}){return(0,Q.jsx)(`div`,{className:J(Ze({interactive:t,padding:n,tone:r}),e),...i})}function $({icon:e,title:t,subtitle:n,trailing:r,className:i,interactive:a=!0,tone:o=`default`}){return(0,Q.jsxs)(Ai,{tone:o,padding:`md`,interactive:a,className:J(`items-center gap-3`,i),children:[e?(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-md border border-border/40 bg-background/60 text-foreground/70`,children:e}):null,(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium text-foreground`,children:t}),n?(0,Q.jsx)(`div`,{className:`mt-0.5 truncate text-xs text-muted-foreground`,children:n}):null]}),r?(0,Q.jsx)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:r}):null]})}function ji({providers:e,editingProvider:t,form:n,operation:r,actions:i,onEdit:a,onCancelEdit:o,onSave:s,onRemove:c,onOAuthLogin:l,onConfigured:u}){let{api:d,apiKey:f,baseUrl:p,modelId:m,models:h,displayName:g,showPassword:_,attemptedSave:v,canSave:b}=n,{isPending:x,canRemove:S}=r,{onApiKeyChange:C,onApiChange:w,onBaseUrlChange:T,onModelIdChange:E,onModelsChange:D,onDisplayNameChange:O,onTogglePassword:k}=i;return(0,Q.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map(e=>{let n=t===e.id,r=Ie(e.id),i=ot[e.id]??ot[r?`custom`:`openai-chat-completions`],A=ke(e.id),j=mi(e),M=hi(e);return(0,Q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Q.jsx)($,{interactive:!1,icon:(0,Q.jsx)(it,{provider:e.id,api:e.api,className:`text-foreground/80`}),title:e.name,subtitle:j?`OAuth sign-in`:M?`API key or OAuth`:r?`Custom provider · API key + base URL + models`:A?`OpenAI-compatible · API key + base URL + model name`:e.envVarName,trailing:(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:x||!S,"aria-label":`Remove ${e.name}`,onClick:()=>c(e),children:[(0,Q.jsx)(ft,{"data-icon":`inline-start`}),`Remove`]}),(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),disabled:x,onClick:()=>{if(n){o();return}a(e.id)},children:[n?null:(0,Q.jsx)(Ue,{"data-icon":`inline-start`}),n?`Cancel`:`Update`]})]})}),n?(0,Q.jsx)(Ai,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:j?(0,Q.jsx)(wi,{provider:e,onConfigured:u,onOAuthLogin:l},e.id):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(fi,{attemptedSave:v,api:e.api??d,apiKey:f,baseUrl:p,modelId:m,models:h,displayName:g,isCustom:r,openAiChat:A,placeholder:i.placeholder,showPassword:_,onApiKeyChange:C,onApiChange:w,onBaseUrlChange:T,onModelIdChange:E,onModelsChange:D,onDisplayNameChange:r||e.providerFamily!==void 0?O:void 0,onTogglePassword:k}),(0,Q.jsxs)(Ht,{className:`px-3 py-2`,children:[(0,Q.jsx)(V,{}),(0,Q.jsx)(Rt,{className:`text-xs text-pretty`,children:i.help})]}),(0,Q.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:x||!b,onClick:()=>s(e.id),children:[x?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Save`]})}),M?(0,Q.jsx)(wi,{provider:e,onConfigured:u,onOAuthLogin:l},`${e.id}-oauth`):null]})}):null]},e.id)})})}function Mi({isLoading:e,isPending:t,onOAuthLogin:n,onRemoveProvider:r,onUpdateProvider:i,providers:a}){let{activeProviders:o,addPickerOpen:s,addPickerQuery:c,api:l,apiKey:u,attemptedSave:d,baseUrl:f,canSave:p,closeAddPicker:m,closeEditor:h,confirmRemoveProvider:g,credentialProviders:_,displayName:v,editingProvider:b,editingUnconfiguredProvider:x,filteredActiveProviders:S,filteredPickerAvailable:C,filteredPickerConfigured:w,handleRemove:T,handleSave:E,modelId:D,models:O,openAddPicker:k,openEditor:A,pickerHasResults:j,searchQuery:M,selectProviderFromPicker:N,setAddPickerQuery:P,setApi:F,setApiKey:I,setBaseUrl:L,setConfirmRemoveProvider:R,setDisplayName:z,setModelId:B,setModels:V,setSearchQuery:H,setShowPassword:U,showPassword:ee}=vi({onRemoveProvider:r,onUpdateProvider:i,providers:a}),W={api:l,apiKey:u,baseUrl:f,modelId:D,models:O,displayName:v,showPassword:ee,attemptedSave:d,canSave:p},te={isPending:t,canRemove:!!r},ne={onApiKeyChange:I,onApiChange:F,onBaseUrlChange:L,onModelIdChange:B,onModelsChange:V,onDisplayNameChange:z,onTogglePassword:()=>U(e=>!e)};return(0,Q.jsxs)(ni,{title:`Providers`,description:"Locally, API keys are stored in `.env.local`. When deployed, they are stored encrypted in your account.",children:[s?(0,Q.jsx)(Ti,{addPickerQuery:c,credentialProvidersLength:_.length,filteredPickerAvailable:C,filteredPickerConfigured:w,pickerHasResults:j,onClose:m,onQueryChange:P,onSelect:N}):x&&mi(x)?(0,Q.jsx)(Ei,{provider:x,onBack:k,onConfigured:h,onOAuthLogin:n},x.id):x?(0,Q.jsx)(Di,{provider:x,api:l,apiKey:u,baseUrl:f,modelId:D,models:O,displayName:v,showPassword:ee,attemptedSave:d,isPending:t,canSave:p,onApiKeyChange:I,onApiChange:F,onBaseUrlChange:L,onModelIdChange:B,onModelsChange:V,onDisplayNameChange:z,onTogglePassword:()=>U(e=>!e),onBack:k,onCancel:h,onConfigured:h,onOAuthLogin:n,onSave:()=>{b&&E(b)}}):(0,Q.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(qt,{className:`flex-1`,children:[(0,Q.jsx)(Gt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Wt,{type:`text`,placeholder:`Search credentials…`,value:M,onChange:e=>H(e.target.value),"aria-label":`Search credentials`,disabled:e||o.length===0})]}),(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:e||_.length===0,onClick:k,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add provider`]})]}),e?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,Q.jsx)(q,{className:`size-3`}),(0,Q.jsx)(`span`,{children:`Loading…`})]}):o.length===0?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,Q.jsx)(`p`,{className:`text-center text-xs text-pretty text-muted-foreground`,children:`No providers configured`}),(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:_.length===0,onClick:k,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add provider`]})]}):S.length===0?(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:`No matching providers found.`}):(0,Q.jsx)(ji,{providers:S,editingProvider:b,form:W,operation:te,actions:ne,onEdit:A,onCancelEdit:h,onSave:e=>void E(e),onRemove:R,onOAuthLogin:n,onConfigured:h})]}),(0,Q.jsx)(Oi,{confirmRemoveProvider:g,isPending:t,onClose:()=>R(null),onConfirm:e=>{T(e)}})]})}function Ni(e,t){return`${e}/${t}`}function Pi(e,t){return _n({id:e.id,name:e.name,provider:e.provider,modelId:e.modelId},t)}function Fi({currentPatterns:e,enabled:t,model:n,models:r}){if(e===void 0&&t)return;let i=e??[],a=new Set(r.map(e=>Ii(e))),o=new Set;for(let t of r)Pi(t,e)&&o.add(Ii(t));return t?o.add(Ii(n)):o.delete(Ii(n)),[...i.filter(e=>a.has(e)?!1:t||!vn(n,e)),...o]}function Ii(e){return Sn(e.provider,e.modelId)}function Li(e){return[e.name,e.modelId,e.provider,e.id].join(` `).toLowerCase()}function Ri({configuredProviderIds:e,discoverableProviderIds:t,discoveringProviderId:n,enabledModels:r,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onOpenChange:s,open:c,providerLabel:l=ct}){let[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)(new Set),m=u.trim().toLowerCase(),h=(0,Z.useMemo)(()=>i.filter(t=>!e.has(t.provider)||Pi(t,r)?!1:!m||Li(t).includes(m)),[e,r,i,m]),g=(0,Z.useMemo)(()=>{let e=new Map;for(let t of h){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[h]),_=(0,Z.useMemo)(()=>{let n=t??e;return Array.from(n).filter(t=>e.has(t)).sort((e,t)=>l(e).localeCompare(l(t)))},[e,t,l]),v=(0,Z.useMemo)(()=>{let e=new Map;for(let t of i)Pi(t,r)&&e.set(t.provider,(e.get(t.provider)??0)+1);return e},[r,i]),b=e=>{p(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n})};return(0,Q.jsx)(Te,{open:c,onOpenChange:s,children:(0,Q.jsxs)(be,{className:`max-w-lg`,children:[(0,Q.jsxs)(de,{children:[(0,Q.jsx)(xe,{children:`Add models`}),(0,Q.jsxs)(Ce,{children:[`Pick models discovered from your configured providers. For OpenAI Chat Completions, refresh runs`,` `,(0,Q.jsxs)(`span`,{className:`font-medium`,children:[`GET `,`{baseUrl}/models`]}),`.`]})]}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:_.map(e=>{let t=n===e,r=v.get(e)??0;return(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:n!==null,onClick:()=>{o(e)},children:[t?(0,Q.jsx)(q,{"data-icon":`inline-start`}):(0,Q.jsx)(Et,{"data-icon":`inline-start`}),l(e),r>0?(0,Q.jsxs)(`span`,{className:`tabular-nums text-muted-foreground`,children:[`· `,r,` active`]}):null]},e)})}),(0,Q.jsxs)(qt,{children:[(0,Q.jsx)(Gt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Wt,{"aria-label":`Search discovered models`,value:u,onChange:e=>d(e.target.value),placeholder:`Search discovered models…`})]}),(0,Q.jsx)(`div`,{className:`max-h-72 overflow-y-auto`,children:g.length===0?(0,Q.jsx)(`p`,{className:`py-6 text-center text-xs text-pretty text-muted-foreground`,children:h.length===0&&!m?`All discovered models are already in your list, or none are available yet.`:`No models match your search.`}):(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,children:g.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsxs)(`div`,{className:`px-2 text-[0.6875rem] font-medium tracking-wide text-muted-foreground uppercase`,children:[l(e),(v.get(e)??0)>0?(0,Q.jsxs)(`span`,{className:`ml-1 font-normal normal-case tabular-nums`,children:[`· `,v.get(e),` active`]}):null]}),t.map(e=>{let t=f.has(e.id);return(0,Q.jsxs)(`button`,{type:`button`,className:J(`flex w-full items-center gap-3 rounded-lg px-2 py-2 text-left transition-[background-color,transform] duration-150`,`hover:bg-muted/60 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:scale-[0.96]`,t&&`bg-muted/70`),"aria-pressed":t,onClick:()=>b(e),children:[(0,Q.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-[4px] border border-border/40 bg-background/60`,children:(0,Q.jsx)(it,{provider:e.provider,className:`text-foreground/70`})}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Q.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,Q.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.modelId})]}),(0,Q.jsx)(`span`,{className:J(`size-4 rounded border border-border/60`,t&&`border-foreground bg-foreground`),"aria-hidden":!0})]},e.id)})]},e))})}),(0,Q.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>s(!1),children:`Cancel`}),(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:f.size===0,onClick:()=>{let e=h.filter(e=>f.has(e.id));e.length>0&&a(e),s(!1)},children:[`Add`,` `,f.size>0?(0,Q.jsxs)(`span`,{className:`tabular-nums`,children:[`(`,f.size,`)`]}):null]})]})]})})}function zi({draft:e,discoveringProviderId:t,modelDirty:n,modelFilter:r,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onModelFilterChange:s,onRemoveModel:c,onSetDefaultModel:l,onRevert:u,onSave:d,providers:f,saving:p,settingsLoading:m}){let[h,g]=(0,Z.useState)(!1),_=!e||m,v=r.trim().toLowerCase(),b=(0,Z.useMemo)(()=>{let t=new Set;for(let e of f)e.isConfigured&&t.add(e.id);for(let n of i)Pi(n,e?.enabledModels)&&t.add(n.provider);return t},[e?.enabledModels,i,f]),x=(0,Z.useMemo)(()=>{let e=new Set;for(let t of f)t.discoverable===!0&&b.has(t.id)&&e.add(t.id);return e},[b,f]),S=(0,Z.useMemo)(()=>t=>!!e?.defaultProvider&&!!e?.defaultModel&&t.provider===e.defaultProvider&&t.modelId===e.defaultModel,[e?.defaultModel,e?.defaultProvider]),C=(0,Z.useMemo)(()=>{let e=new Map;for(let t of f)(t.displayName||t.name)&&e.set(t.id,t.displayName??t.name??t.id);return t=>e.get(t)??ct(t)},[f]),w=(0,Z.useMemo)(()=>i.filter(t=>Pi(t,e?.enabledModels)?!v||[t.name,t.modelId,t.provider,t.id].join(` `).toLowerCase().includes(v):!1),[e?.enabledModels,i,v]),T=(0,Z.useMemo)(()=>{let e=new Map;for(let t of w){let n=e.get(t.provider);n?n.push(t):e.set(t.provider,[t])}return[...e.entries()]},[w]),E=i.length===0?`No models discovered yet. Configure a provider, then add models.`:w.length===0&&!v?`Add models from your configured providers to make them available in chat.`:w.length===0?`No models match your search.`:null,D=()=>{g(!0)};return(0,Q.jsxs)(ni,{title:`LLM Models`,description:(0,Q.jsxs)(Q.Fragment,{children:[`Models available in chat. Discover from configured providers, add the ones you want, and remove any you do not need — changes save automatically.`,` `,(0,Q.jsx)(`span`,{className:`tabular-nums`,children:w.length}),` in list`,i.length>0?(0,Q.jsxs)(Q.Fragment,{children:[` `,`· `,(0,Q.jsx)(`span`,{className:`tabular-nums`,children:i.length}),` `,`discovered`]}):null,`.`]}),actions:(0,Q.jsx)(ri,{dirty:n,disabled:_,onRevert:u,onSave:d,saving:p}),children:[(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(qt,{className:`flex-1`,children:[(0,Q.jsx)(Gt,{align:`inline-start`,children:(0,Q.jsx)(Ot,{})}),(0,Q.jsx)(Wt,{"aria-label":`Search listed models`,value:r,onChange:e=>s(e.target.value),placeholder:`Search listed models…`,disabled:_||w.length===0})]}),(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:_,onClick:D,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add models`]})]}),(0,Q.jsx)(`div`,{className:`flex flex-col gap-3`,"data-testid":`runtime-models-list`,children:E?(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-8`,children:[(0,Q.jsx)(`p`,{className:`px-1 text-center text-xs text-pretty text-muted-foreground`,children:E}),v?null:(0,Q.jsxs)(y,{type:`button`,variant:`outline`,size:`sm`,disabled:_,onClick:D,children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add models`]})]}):T.map(([e,t])=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsx)(`div`,{className:`px-1 text-xs font-medium text-muted-foreground`,children:C(e)}),t.map(e=>(0,Q.jsx)($,{icon:(0,Q.jsx)(it,{provider:e.provider}),title:e.name,subtitle:`${C(e.provider)} · ${e.modelId}`,trailing:(0,Q.jsxs)(`div`,{className:`flex items-center`,children:[S(e)?(0,Q.jsx)(`span`,{className:`px-2 text-xs font-medium text-muted-foreground`,children:`Default`}):l?(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 active:scale-[0.96]`),disabled:_,"aria-label":`Set ${e.name} as default`,onClick:()=>l(e),children:[(0,Q.jsx)(un,{"data-icon":`inline-start`}),`Set default`]}):null,(0,Q.jsxs)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs text-muted-foreground transition-[background-color,color,transform] duration-150 hover:text-destructive active:scale-[0.96]`),disabled:_,"aria-label":`Remove ${e.name}`,onClick:()=>c(e),children:[(0,Q.jsx)(ft,{"data-icon":`inline-start`}),`Remove`]})]})},e.id))]},e))}),(0,Q.jsx)(Ri,{open:h,configuredProviderIds:b,discoverableProviderIds:x,discoveringProviderId:t,enabledModels:e?.enabledModels,modelOptions:i,onAddModels:a,onDiscoverProvider:o,onOpenChange:g,providerLabel:C})]})}var Bi=[{value:`auto`,label:`Auto`},{value:`sse`,label:`SSE`},{value:`websocket`,label:`WebSocket`}],Vi=[{value:`all`,label:`All`},{value:`one-at-a-time`,label:`One at a time`}];function Hi({draft:e,updateDraft:t}){let n=!e;return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)($,{title:`Compaction`,subtitle:`Summarize old turns when context fills up`,trailing:(0,Q.jsx)(Ut,{"aria-label":`Compaction`,checked:e?.compaction.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,compaction:{...t.compaction,enabled:e}}))})}),(0,Q.jsx)($,{title:`Auto-retry`,subtitle:`Retry failed provider requests`,trailing:(0,Q.jsx)(Ut,{"aria-label":`Auto-retry`,checked:e?.retry.enabled??!1,disabled:n,onCheckedChange:e=>t(t=>({...t,retry:{...t.retry,enabled:e}}))})}),(0,Q.jsx)($,{title:`Transport`,trailing:(0,Q.jsx)(K,{"aria-label":`Transport`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,transport:e})),options:[...Bi],value:e?.transport??`auto`})}),(0,Q.jsx)($,{title:`Steering`,subtitle:`How queued steers are delivered mid-turn`,trailing:(0,Q.jsx)(K,{"aria-label":`Steering`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,steeringMode:e})),options:[...Vi],value:e?.steeringMode??`all`})}),(0,Q.jsx)($,{title:`Follow-up`,subtitle:`How queued follow-ups run after the turn`,trailing:(0,Q.jsx)(K,{"aria-label":`Follow-up`,className:`w-[160px]`,disabled:n,onValueChange:e=>t(t=>({...t,followUpMode:e})),options:[...Vi],value:e?.followUpMode??`all`})})]})}var Ui=new Set([`auto`,`global`,`local`,`project`,`workspace`]);function Wi(e){let t=e.source?.trim();if(t&&!Ui.has(t))return t;let n=(e.workspacePath??e.path??``).trim();return n?Gi(n):e.name.trim()}function Gi(e){let t=e.replace(/\\/g,`/`);if(/^\/Users\//.test(t)||/^\/home\//.test(t)||/^[A-Za-z]:\//.test(t))return``;if(!t.startsWith(`/`)&&!/^[A-Za-z]:\//.test(t))return t.startsWith(`agent-workspace/`)?Ki(`../${t}`):t.startsWith(`../agent-workspace/.pi/`)?Ki(t.replace(`../agent-workspace/.pi/`,`../agent-workspace/pi/`)):Ki(t);let n=t.match(/\/(agent-workspace\/.+)$/);if(n?.[1])return Ki(`../${n[1].replace(/^agent-workspace\/\.pi\//,`agent-workspace/pi/`)}`);let r=t.match(/\/\.pi\/(extensions\/.+|skills\/.+|prompts\/.+|themes\/.+)$/);return r?.[1]?Ki(r[1]):``}function Ki(e){return e.replace(/\/SKILL\.md$/i,``).replace(/\/index\.(ts|tsx|js|jsx|mjs|cjs)$/i,``)}function qi(e,t){let n=Gi(t);return e.some(e=>Gi(e)===n)}function Ji(e,t){let n=t.trim();if(!n)return e;let r=Gi(n);return!r||qi(e,r)?e:[...e,r]}function Yi({addLabel:e,catalog:t,onChange:n,placeholder:r,values:i}){let[a,o]=(0,Z.useState)(``),s=new Set,c=[];for(let e of t){let t=Wi(e);t.length===0||s.has(t)||(s.add(t),c.push({value:t,label:e.name||t}))}let l=new Map(c.map(e=>[e.value,e.label])),u=e=>l.get(e)??l.get(Gi(e)),d=c.filter(e=>!qi(i,e.value)),f=()=>{let e=a.trim();e&&(n(Ji(i,e)),o(``))};return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[i.length===0?(0,Q.jsx)(`p`,{className:`px-1 py-2 text-xs text-pretty text-muted-foreground`,children:`Nothing selected yet.`}):i.map(e=>{let t=u(e);return(0,Q.jsx)($,{interactive:!1,title:t??e,subtitle:t&&t!==e?e:void 0,trailing:(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":`Remove ${e}`,onClick:()=>n(i.filter(t=>t!==e)),children:(0,Q.jsx)(ft,{})})},e)}),d.length>0?(0,Q.jsx)(K,{"aria-label":e,value:null,placeholder:e,options:d,onValueChange:e=>{e&&n(Ji(i,e))}}):(0,Q.jsxs)(qt,{children:[(0,Q.jsx)(Wt,{"aria-label":e,value:a,onChange:e=>o(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),f())},placeholder:r}),(0,Q.jsx)(Gt,{align:`inline-end`,children:(0,Q.jsxs)(Kt,{onClick:f,disabled:!a.trim(),children:[(0,Q.jsx)(Tt,{"data-icon":`inline-start`}),`Add`]})})]})]})}function Xi({draft:e,onEnableSkillCommandsChange:t,onExtensionsChange:n,onPackageRowsChange:r,onPromptsChange:i,onRevert:a,onSave:o,onSkillsChange:s,onThemesChange:c,packageError:l,packageRows:u,resourceDirty:d,resources:f,resourceSummary:p,saving:m,scope:h=`harness`,settingsLoading:g,updateDraft:_}){let v=!e||g||!!l,y=p.total===0?`Empty`:p.reloadRequired>0?`${p.total} · ${p.reloadRequired} reload`:`${p.total}`;return(0,Q.jsx)(ni,{title:h===`skills`?`Skills`:`Pi Harness`,description:h===`skills`?`Pick detected workspace skills and slash-command discovery.`:`Runtime (compaction, retry, transport) plus packages, extensions, prompts, and themes.`,actions:(0,Q.jsx)(ri,{dirty:d,disabled:v,onRevert:a,onSave:o,saving:m}),children:h===`skills`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)($,{title:`Skill slash commands`,trailing:(0,Q.jsx)(Ut,{"aria-label":`Skill slash commands`,checked:e?.enableSkillCommands??!0,disabled:!e,onCheckedChange:t})}),(0,Q.jsx)(Zi,{label:`Skills`,count:e?.skills.length??0,children:(0,Q.jsx)(Yi,{addLabel:`Add skill`,catalog:f?.skills??[],placeholder:`../agent-workspace/pi/skills`,values:e?.skills??[],onChange:s})})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Hi,{draft:e,updateDraft:_}),(0,Q.jsx)($,{interactive:!1,title:`Catalog`,subtitle:(0,Q.jsx)(`span`,{className:`tabular-nums`,children:y})}),(0,Q.jsxs)(Zi,{label:`Packages`,count:u.length,children:[(0,Q.jsx)(Yi,{addLabel:`Add package`,catalog:f?.packages??[],placeholder:`npm:pi-skills or {"source":"npm:pkg"}`,values:u,onChange:r}),l?(0,Q.jsx)(`p`,{className:`px-1 text-xs text-destructive`,children:l}):null]}),(0,Q.jsx)(Zi,{label:`Extensions`,count:e?.extensions.length??0,children:(0,Q.jsx)(Yi,{addLabel:`Add extension`,catalog:f?.extensions??[],placeholder:`../agent-workspace/pi/extensions`,values:e?.extensions??[],onChange:n})}),(0,Q.jsx)(Zi,{label:`Prompts`,count:e?.prompts.length??0,children:(0,Q.jsx)(Yi,{addLabel:`Add prompt`,catalog:f?.prompts??[],placeholder:`../agent-workspace/pi/prompts`,values:e?.prompts??[],onChange:i})}),(0,Q.jsx)(Zi,{label:`Themes`,count:e?.themes.length??0,children:(0,Q.jsx)(Yi,{addLabel:`Add theme`,catalog:f?.themes??[],placeholder:`../agent-workspace/pi/themes`,values:e?.themes??[],onChange:c})})]})})}function Zi({children:e,count:t,label:n}){return(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Q.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 px-1`,children:[(0,Q.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground`,children:n}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground tabular-nums`,children:t===1?`1 item`:`${t} items`})]}),e]})}function Qi({isLoading:e,isPending:t,onUpdateProvider:n,providers:r}){let[i,a]=(0,Z.useState)(!1),[o,s]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(``),[u,d]=(0,Z.useState)(!1),[f,p]=(0,Z.useState)(!1),m=(0,Z.useMemo)(()=>r.find(e=>e.id===`daytona`),[r]),h=(0,Z.useMemo)(()=>r.find(e=>e.id===`daytona-target`),[r]),g=!!(m?.isConfigured&&h?.isConfigured),_=()=>{s(``),l(``),d(!1),p(!1)},v=()=>{a(!1),_()},b=async()=>{if(n&&(p(!0),!(!o.trim()&&!c.trim())))try{o.trim()&&await n({providerId:`daytona`,apiKey:o.trim()}),c.trim()&&await n({providerId:`daytona-target`,apiKey:c.trim()}),X.success(`Sandbox Provider updated successfully`),v()}catch(e){X.error(e instanceof Error?e.message:`Failed to update provider`)}},x=o.trim().length>0||c.trim().length>0;return(0,Q.jsx)(ni,{title:`Sandbox`,description:`Configure isolated execution environments.`,children:e?(0,Q.jsxs)(`div`,{className:`flex items-center justify-center gap-2 py-6 text-xs text-muted-foreground`,children:[(0,Q.jsx)(q,{}),(0,Q.jsx)(`span`,{children:`Loading…`})]}):(0,Q.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Q.jsx)($,{interactive:!1,icon:(0,Q.jsx)(yt,{className:`size-4 text-foreground/80`}),title:`Daytona`,subtitle:`DAYTONA_API_KEY · DAYTONA_TARGET`,trailing:(0,Q.jsx)(y,{type:`button`,variant:`ghost`,size:`sm`,className:J(ut,`h-7 px-2 text-xs transition-[background-color,transform] duration-150 active:scale-[0.96]`),onClick:()=>{if(i){v();return}a(!0),_()},children:i?`Cancel`:g?`Update`:`Configure`})}),i?(0,Q.jsxs)(Ai,{tone:`inset`,padding:`md`,className:`flex flex-col gap-2 border-t border-border/30`,children:[(0,Q.jsxs)(zt,{className:`gap-2`,children:[(0,Q.jsx)(ai,{attemptedSave:f,label:`Daytona API key`,placeholder:`Enter Daytona API Key…`,value:o,showPassword:u,required:!1,onChange:s,onToggleVisibility:()=>d(e=>!e)}),(0,Q.jsx)(oi,{attemptedSave:f,icon:_t,label:`Region / target`,placeholder:`e.g. us-east`,value:c,required:!1,onChange:l})]}),(0,Q.jsxs)(Ht,{className:`px-3 py-2`,children:[(0,Q.jsx)(V,{}),(0,Q.jsx)(Rt,{className:`text-xs text-pretty`,children:`Settings are stored securely in your local environment overrides. Provide at least one value to save.`})]}),(0,Q.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,Q.jsxs)(y,{type:`button`,size:`sm`,disabled:t||!x,onClick:()=>void b(),children:[t?(0,Q.jsx)(q,{"data-icon":`inline-start`}):null,`Save`]})})]}):null]})})}function $i(e){return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:e.enabledModels===void 0?null:sa(e.enabledModels)}}function ea(e){let t=e.enabledModels,n=t==null?null:sa(t).toSorted();return{defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,defaultThinkingLevel:e.defaultThinkingLevel,enabledModels:n}}function ta(e){return{packages:e.packages,extensions:sa(e.extensions),skills:sa(e.skills),prompts:sa(e.prompts),themes:sa(e.themes),enableSkillCommands:e.enableSkillCommands}}function na(e){return{compaction:{enabled:e.compaction.enabled,reserveTokens:e.compaction.reserveTokens,keepRecentTokens:e.compaction.keepRecentTokens},retry:{enabled:e.retry.enabled,maxRetries:e.retry.maxRetries,baseDelayMs:e.retry.baseDelayMs},transport:e.transport,steeringMode:e.steeringMode,followUpMode:e.followUpMode}}function ra(e,t){return JSON.stringify(e)===JSON.stringify(t)}function ia(e){let t=e?[...e.skills,...e.prompts,...e.extensions,...e.packages,...e.themes,...e.agentsFiles]:[];return{active:t.filter(e=>e.activationStatus===`active`).length,staged:t.filter(e=>e.activationStatus===`staged`).length,reloadRequired:t.filter(e=>e.activationStatus===`reload-required`).length,diagnostics:e?.diagnostics??[],total:t.length}}function aa(e){return e.map(e=>typeof e==`string`?e:JSON.stringify(e))}function oa(e){let t=[];for(let n of e){let e=n.trim();if(!e)continue;if(!e.startsWith(`{`)){t.push(e);continue}let r=JSON.parse(e);if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Package JSON entries must be objects.`);t.push(r)}return t}function sa(e){return e.flatMap(e=>{let t=e.trim();return t?[t]:[]})}function ca({draft:e,setDraft:t,updateDraft:n,settings:r,providers:i,models:a,modelCatalog:o,onDiscoverModels:s,saveSettings:c,setSavingSection:l}){let[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)([]),[m,h]=(0,Z.useState)(null),g=(0,Z.useRef)(null),_=(0,Z.useMemo)(()=>{let e=new Set;for(let t of i)t.isConfigured&&e.add(t.id);return e},[i]),v=o??a,y=(0,Z.useMemo)(()=>{let t=new Map;for(let e of v)_.has(e.provider)&&t.set(e.id,e);for(let e of f)_.has(e.provider)&&t.set(e.id,e);let n=[...t.values()];return!e?.defaultProvider||!e.defaultModel||n.some(t=>t.provider===e.defaultProvider&&t.modelId===e.defaultModel)||!_.has(e.defaultProvider)?n:[{id:Ni(e.defaultProvider,e.defaultModel),name:e.defaultModel,provider:e.defaultProvider,modelId:e.defaultModel,available:!1},...n]},[v,_,f,e]),b=g.current??(r?ea(r.effective):null),x=!!e&&!!b&&!ra(ea(e),b),S=(0,Z.useCallback)(()=>{g.current=null},[]),C=async(e,n)=>{t(e),l(`models`);try{let r=await c($i(e)),i={...r.effective,enabledModels:r.project.enabledModels??e.enabledModels??r.effective.enabledModels,defaultProvider:r.project.defaultProvider??e.defaultProvider??r.effective.defaultProvider,defaultModel:r.project.defaultModel??e.defaultModel??r.effective.defaultModel,defaultThinkingLevel:r.project.defaultThinkingLevel??e.defaultThinkingLevel??r.effective.defaultThinkingLevel};return g.current=ea(i),t(i),n?.silent||X.success(`Pi settings saved`),!0}catch(e){return X.error(e instanceof Error?e.message:`Settings save failed`),!1}finally{l(null)}},w=e=>{C(e)},T=(t,n)=>{if(!e)return;let r={...e,enabledModels:Fi({currentPatterns:e.enabledModels,enabled:n,model:t,models:y})};w(r)};return{modelFilter:u,setModelFilter:d,modelOptions:y,modelDirty:x,addModels:t=>{if(!e||t.length===0)return;let n=e.enabledModels;for(let e of t)n=Fi({currentPatterns:n,enabled:!0,model:e,models:y});w({...e,enabledModels:n})},removeModel:e=>{T(e,!1)},setDefaultModel:t=>{e&&C({...e,defaultProvider:t.provider,defaultModel:t.modelId})},discoverProvider:async e=>{if(s){h(e);try{let t=await s(e);p(e=>{let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()]})}finally{h(null)}}},discoveringProviderId:m,commitModelSettings:C,revertModelDraft:()=>{r&&n(e=>({...e,defaultProvider:r.effective.defaultProvider,defaultModel:r.effective.defaultModel,defaultThinkingLevel:r.effective.defaultThinkingLevel,enabledModels:r.effective.enabledModels}))},resetCommittedModelBaseline:S}}function la({draft:e,settings:t,updateDraft:n}){let[r,i]=(0,Z.useState)(null),[a,o]=(0,Z.useState)(),s=(0,Z.useMemo)(()=>aa(t?.effective.packages??[]),[t?.effective.packages]),c=r??s;return{packageRows:c,packageError:a,resourceDirty:!!e&&!!t&&(!ra(ta(e),ta(t.effective))||!ra(na(e),na(t.effective))||!ra(c.filter(e=>e.trim()),aa(t.effective.packages))),handlePackageRowsChange:e=>{i(e);try{let t=oa(e);o(void 0),n(e=>({...e,packages:t}))}catch(e){o(e instanceof Error?e.message:String(e))}},revertResourceDraft:()=>{t&&(n(e=>({...e,packages:t.effective.packages,extensions:t.effective.extensions,skills:t.effective.skills,prompts:t.effective.prompts,themes:t.effective.themes,enableSkillCommands:t.effective.enableSkillCommands,compaction:t.effective.compaction,retry:t.effective.retry,transport:t.effective.transport,steeringMode:t.effective.steeringMode,followUpMode:t.effective.followUpMode})),i(null),o(void 0))}}}var ua={appearance:{id:`appearance`,order:10,title:`Appearance`,ariaLabel:`Appearance settings`,icon:cn,group:`workspace`},chat:{id:`chat`,order:20,title:`Chat`,ariaLabel:`Chat settings`,icon:wt,group:`workspace`},sandbox:{id:`sandbox`,order:30,title:`Sandbox`,ariaLabel:`Sandbox settings`,icon:yt,group:`advanced`},providers:{id:`providers`,order:40,title:`Providers`,ariaLabel:`Provider settings`,icon:an,group:`models`},"llm-models":{id:`llm-models`,order:50,title:`LLM Models`,ariaLabel:`LLM model settings`,icon:dt,group:`models`},skills:{id:`skills`,order:60,title:`Skills`,ariaLabel:`Skill settings`,icon:kt,group:`advanced`},"pi-harness":{id:`pi-harness`,order:70,title:`Pi Harness`,ariaLabel:`Pi harness settings`,icon:qe,group:`advanced`},keybindings:{id:`keybindings`,order:80,title:`Keybindings`,ariaLabel:`Keybinding settings`,icon:bt,group:`advanced`},sessions:{id:`sessions`,order:90,title:`Sessions`,ariaLabel:`Session settings`,icon:fn,group:`workspace`}},da=[{id:`workspace`,label:`Workspace`},{id:`models`,label:`Models`},{id:`advanced`,label:`Advanced`}],fa=Object.values(ua).sort((e,t)=>e.order-t.order);function pa(e){return fa.some(t=>t.id===e)}function ma({children:e,description:t,label:n}){return(0,Q.jsxs)(Bt,{orientation:`horizontal`,className:`items-center justify-between gap-6 rounded-xl border p-4`,children:[(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(Lt,{children:n}),(0,Q.jsx)(Vt,{children:t})]}),(0,Q.jsx)(`div`,{className:`shrink-0`,children:e})]})}function ha(){let{isLoadingProviders:e,isUpdatingProvider:t,modelCatalog:n,onDiscoverModels:r,onOAuthLogin:i,onRemoveProvider:a,onThemePreferenceChange:o,onUpdateProvider:s,providers:c=[],saveSettings:l,settings:u,settingsLoading:d,themePreference:f}=Ft(),{models:p,resources:m}=Pt(),[h,g]=(0,Z.useState)(null),[_,v]=(0,Z.useState)(null),y=ia(m),b=e=>{g(t=>t&&e(t))},{packageRows:x,packageError:S,resourceDirty:C,handlePackageRowsChange:w,revertResourceDraft:T}=la({draft:h,settings:u,updateDraft:b}),{modelFilter:E,setModelFilter:D,modelOptions:O,modelDirty:k,addModels:A,removeModel:j,setDefaultModel:M,discoverProvider:N,discoveringProviderId:P,commitModelSettings:F,revertModelDraft:I,resetCommittedModelBaseline:L}=ca({draft:h,setDraft:g,updateDraft:b,settings:u,providers:c,models:p,modelCatalog:n,onDiscoverModels:r,saveSettings:l,setSavingSection:v}),R=k||C;return(0,Z.useEffect)(()=>{if(!u)return;let e=u.effective;h&&R||h&&ra(h,e)||g(e)},[h,R,u]),{isLoadingProviders:e,isUpdatingProvider:t,onThemePreferenceChange:o,onOAuthLogin:i,onRemoveProvider:a,onUpdateProvider:s,providers:c,resources:m,settingsLoading:d,themePreference:f,draft:h,savingSection:_,packageRows:x,packageError:S,modelFilter:E,setModelFilter:D,resourceSummary:y,modelOptions:O,modelDirty:k,resourceDirty:C,revertResourceDraft:T,revertModelDraft:I,resetDraft:()=>{u&&g(u.effective)},updateDraft:b,handlePackageRowsChange:w,addModels:A,removeModel:j,setDefaultModel:M,discoverProvider:N,discoveringProviderId:P,saveSection:async(e,t)=>{if(e===`models`&&h){if(!await F(h))throw Error(`Settings save failed`);return}v(e);try{await l(t),X.success(`Pi settings saved`)}catch(e){throw X.error(e instanceof Error?e.message:`Settings save failed`),e}finally{v(null)}},requestCloseSettings:async()=>_===`models`?`wait`:C?`discard-prompt`:k&&h?await F(h,{silent:!0})?`close`:`discard-prompt`:`close`,resetCommittedModelBaseline:L}}function ga({active:e,onClick:t,icon:n,label:r}){return(0,Q.jsx)(Zr,{children:(0,Q.jsxs)($r,{isActive:e,onClick:t,children:[(0,Q.jsx)(n,{}),(0,Q.jsx)(`span`,{children:r})]})})}function _a({open:e,onOpenChange:t,initialTab:n}){return(0,Z.useEffect)(()=>{let e=Nt();document.documentElement.dataset.density=e.density,document.documentElement.classList.toggle(`reduce-motion`,e.motion===`reduced`)},[]),(0,Q.jsx)(va,{initialTab:n,onOpenChange:t,open:e})}function va({initialTab:e,onOpenChange:t,open:n}){let r=(0,Z.useRef)(()=>{t(!1)});return(0,Q.jsx)(Te,{open:n,onOpenChange:(e,n)=>{if(e){t(!0);return}r.current(n)},children:n?(0,Q.jsx)(ba,{initialTab:e,onCloseAttemptRef:r,onOpenChange:t}):null})}function ya({activeTab:e,form:t,preferences:n,updatePreference:r}){let{isLoadingProviders:i,isUpdatingProvider:a,onThemePreferenceChange:o,onOAuthLogin:s,onRemoveProvider:c,onUpdateProvider:l,providers:u,resources:d,settingsLoading:f,themePreference:p,draft:m,savingSection:h,packageRows:g,packageError:_,modelFilter:v,setModelFilter:y,resourceSummary:b,modelOptions:x,modelDirty:S,resourceDirty:C,revertResourceDraft:w,revertModelDraft:T,updateDraft:E,handlePackageRowsChange:D,addModels:O,removeModel:k,setDefaultModel:A,discoverProvider:j,discoveringProviderId:M,saveSection:N}=t,P=e=>(0,Q.jsx)(Xi,{scope:e,draft:m,updateDraft:E,onEnableSkillCommandsChange:e=>E(t=>({...t,enableSkillCommands:e})),onExtensionsChange:e=>E(t=>({...t,extensions:e})),onPackageRowsChange:D,onPromptsChange:e=>E(t=>({...t,prompts:e})),onRevert:w,onSave:()=>m&&N(`resources`,{...ta(m),...e===`harness`?na(m):{}}),onSkillsChange:e=>E(t=>({...t,skills:e})),onThemesChange:e=>E(t=>({...t,themes:e})),packageError:_,packageRows:g,resourceDirty:C,resources:d,resourceSummary:b,saving:h===`resources`,settingsLoading:f});return{appearance:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Appearance`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Customize the look and feel of the interface.`})]}),(0,Q.jsx)(ti,{onThemePreferenceChange:o,themePreference:p}),(0,Q.jsx)(ma,{label:`Density`,description:`Adjust spacing across chat and panels.`,children:(0,Q.jsx)(K,{value:n.density,onValueChange:e=>r(`density`,e),options:[{label:`Comfortable`,value:`comfortable`},{label:`Compact`,value:`compact`}]})}),(0,Q.jsx)(ma,{label:`Motion`,description:`Respect the system setting or reduce UI motion.`,children:(0,Q.jsx)(K,{value:n.motion,onValueChange:e=>r(`motion`,e),options:[{label:`System`,value:`system`},{label:`Reduced`,value:`reduced`}]})})]}),chat:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Chat`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Control transcript behavior.`})]}),(0,Q.jsx)(ma,{label:`Streaming transcript`,description:`Follow new output or preserve the reading position.`,children:(0,Q.jsx)(K,{value:n.transcript,onValueChange:e=>r(`transcript`,e),options:[{label:`Follow output`,value:`follow`},{label:`Manual`,value:`manual`}]})})]}),sandbox:()=>(0,Q.jsx)(Qi,{isLoading:i??!1,isPending:a??!1,providers:u,onUpdateProvider:l}),providers:()=>(0,Q.jsx)(Mi,{isLoading:i??!1,isPending:a??!1,providers:u,onOAuthLogin:s,onRemoveProvider:c,onUpdateProvider:l}),"llm-models":()=>(0,Q.jsx)(zi,{draft:m,discoveringProviderId:M,modelDirty:S,modelFilter:v,modelOptions:x,onAddModels:O,onDiscoverProvider:j,onModelFilterChange:y,onRemoveModel:k,onSetDefaultModel:A,providers:u,onRevert:T,onSave:()=>m&&N(`models`,$i(m)),saving:h===`models`,settingsLoading:f}),skills:()=>P(`skills`),"pi-harness":()=>P(`harness`),keybindings:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4 text-sm`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Keybindings`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Every shortcut also has a visible control in the header, panel, or composer.`})]}),(0,Q.jsxs)(`div`,{className:`rounded-xl border p-4 font-mono text-xs leading-7`,children:[(0,Q.jsx)(`div`,{children:`Command palette: Ctrl/Command K`}),(0,Q.jsx)(`div`,{children:`Conversation sidebar: Ctrl/Command B`}),(0,Q.jsx)(`div`,{children:`Toggle Resources: Ctrl/Command Shift 1`}),(0,Q.jsx)(`div`,{children:`Toggle Workspace: Ctrl/Command Shift 2`}),(0,Q.jsx)(`div`,{children:`Toggle Artifacts: Ctrl/Command Shift 3`}),(0,Q.jsx)(`div`,{children:`Focus active panel: Ctrl/Command Shift P`}),(0,Q.jsx)(`div`,{children:`Return focus to chat: Ctrl/Command Shift C`}),(0,Q.jsx)(`div`,{children:`Close active panel: Escape`})]})]}),sessions:()=>(0,Q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,Q.jsxs)(`div`,{children:[(0,Q.jsx)(`h3`,{className:`text-lg font-medium`,children:`Sessions`}),(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Set local conversation preferences. Provider and workspace configuration remains Fleet Prime-owned.`})]}),(0,Q.jsx)(ma,{label:`Confirm session deletion`,description:`Require confirmation before deleting a saved conversation.`,children:(0,Q.jsx)(Ut,{checked:n.confirmSessionDelete,onCheckedChange:e=>r(`confirmSessionDelete`,e),"aria-label":`Confirm session deletion`})}),(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Provider credentials, OAuth, models, sandbox configuration, and workspace selection are managed by Fleet Prime and its CLI.`})]})}[e]()}function ba({initialTab:e,onCloseAttemptRef:t,onOpenChange:n}){let r=ha(),{resourceDirty:i,revertResourceDraft:a,resetDraft:o,requestCloseSettings:s,resetCommittedModelBaseline:c}=r,[l,u]=(0,Z.useState)(()=>e??`appearance`),[d,f]=(0,Z.useState)(Nt);(0,Z.useEffect)(()=>{jt(Mt,JSON.stringify(d)),document.documentElement.dataset.density=d.density,document.documentElement.classList.toggle(`reduce-motion`,d.motion===`reduced`)},[d]);let p=(e,t)=>{f(n=>({...n,[e]:t}))},[m,h]=(0,Z.useState)(!1),[g,_]=(0,Z.useState)(`resource`),v=fa.find(e=>e.id===l)??fa[0],y=(e,t)=>{if(e){n(!0);return}t?.cancel(),(async()=>{let e=await s();if(e===`close`){n(!1);return}if(e===`wait`){X.message(`Saving model list…`);return}_(i?`resource`:`model`),h(!0)})()};t.current=e=>{y(!1,e)};let b=()=>{a(),o(),c(),h(!1),n(!1)};(0,Z.useEffect)(()=>{c()},[c]);let x=(0,Q.jsx)(ya,{activeTab:l,form:r,preferences:d,updatePreference:p});return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(be,{className:`flex h-[min(640px,calc(100dvh-4rem))] w-full max-w-[calc(100%-2rem)] overflow-hidden p-0 sm:max-w-[min(860px,calc(100%-2rem))]`,children:[(0,Q.jsx)(xe,{className:`sr-only`,children:`Settings`}),(0,Q.jsx)(Ce,{className:`sr-only`,children:`Customize your settings here.`}),(0,Q.jsxs)(Ur,{className:`h-full min-h-0 min-w-0`,enableKeyboardShortcut:!1,persistState:!1,children:[(0,Q.jsxs)(Wr,{collapsible:`none`,className:`hidden h-full shrink-0 flex-col border-r border-sidebar-border bg-sidebar sm:flex sm:w-52`,children:[(0,Q.jsx)(Gr,{className:`px-4 pt-5 pb-2`,children:(0,Q.jsx)(`span`,{className:`text-sm font-semibold`,children:`Settings`})}),(0,Q.jsx)(Kr,{children:da.map(e=>(0,Q.jsxs)(qr,{children:[(0,Q.jsx)(Jr,{children:e.label}),(0,Q.jsx)(Yr,{children:(0,Q.jsx)(Xr,{children:fa.filter(t=>t.group===e.id).map(e=>(0,Q.jsx)(ga,{active:l===e.id,onClick:()=>u(e.id),icon:e.icon,label:e.title},e.id))})})]},e.id))})]}),(0,Q.jsxs)(`main`,{className:`flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[(0,Q.jsx)(`header`,{className:`flex h-14 shrink-0 items-center gap-2 border-b border-border/10 px-6`,children:(0,Q.jsx)(`div`,{className:`flex flex-1 items-center justify-between`,children:(0,Q.jsx)(Yn,{children:(0,Q.jsxs)(Xn,{children:[(0,Q.jsx)(Zn,{className:`hidden sm:block`,children:`Settings`}),(0,Q.jsx)($n,{className:`hidden sm:block`}),(0,Q.jsx)(Zn,{children:(0,Q.jsx)(Qn,{children:v.title})})]})})})}),(0,Q.jsx)(`div`,{className:`shrink-0 border-b border-border/10 bg-muted/5 px-4 py-2.5 sm:hidden`,children:(0,Q.jsx)(K,{"aria-label":`Settings sections`,value:l,onValueChange:e=>{pa(e)&&u(e)},options:fa.map(e=>({label:e.title,value:e.id}))})}),(0,Q.jsx)(qn,{className:`min-h-0 flex-1`,children:(0,Q.jsx)(`div`,{id:`panel-${l}`,role:`tabpanel`,"aria-label":v.title,tabIndex:0,className:`p-6 outline-none`,children:x})})]})]})]}),(0,Q.jsx)(et,{open:m,onOpenChange:h,children:(0,Q.jsxs)(st,{children:[(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsx)(lt,{children:`Discard unsaved changes?`}),(0,Q.jsx)(Qe,{children:g===`resource`?`Your resource changes have not been committed. If you leave settings now, those changes will be lost.`:`Your model list could not be saved. If you leave settings now, those changes will be lost.`})]}),(0,Q.jsxs)(rt,{children:[(0,Q.jsx)(at,{children:`Keep editing`}),(0,Q.jsx)(Xe,{onClick:b,children:`Discard changes`})]})]})})]})}export{_a as SettingsDialog};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-NZYk81nU.js";import{i as t,n}from"./resource-helpers-Q2T0YCMO.js";import{t as r}from"./skeleton-CkR2VmWc.js";var i=e();function a({description:e,icon:t,title:n}){return(0,i.jsxs)(`div`,{className:`my-1.5 rounded-sm bg-foreground/5 px-2.5 py-2`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-label font-medium text-foreground/65`,children:[(0,i.jsx)(t,{className:`size-3.5`}),(0,i.jsx)(`span`,{children:n})]}),(0,i.jsx)(`p`,{className:`mt-1 text-[0.6875rem] leading-4 text-foreground/40`,children:e})]})}function o({id:e,icon:n,items:r,label:a}){return(0,i.jsxs)(`section`,{id:`resource-section-${e}`,className:`flex min-w-0 flex-col gap-2 py-2.5`,"aria-label":`${a} resources`,children:[(0,i.jsxs)(`div`,{className:`flex min-w-0 items-center text-body leading-5 text-foreground/45`,children:[(0,i.jsx)(`span`,{className:`truncate underline decoration-foreground/25 underline-offset-2`,children:a}),(0,i.jsx)(`span`,{className:`ml-1 shrink-0 text-[0.6875rem] leading-4 text-foreground/30 tabular-nums no-underline`,children:r.length})]}),(0,i.jsx)(`ul`,{className:`flex min-w-0 flex-col items-stretch gap-1.5`,"data-testid":`resource-chip-section-${a.toLowerCase()}`,children:r.length===0?(0,i.jsx)(`li`,{className:`inline-flex h-7.5 items-center rounded-lg border border-border/60 bg-background px-3 text-body leading-5 text-foreground/35 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)]`,children:`Empty`}):r.map(e=>(0,i.jsx)(s,{icon:n,item:e,stacked:!0},t(e)))})]})}function s({icon:e,item:t,stacked:r=!1}){let a=n(t);return(0,i.jsxs)(`li`,{className:`max-w-full rounded-lg border border-border/70 bg-background px-2.5 text-body leading-5 text-foreground/80 shadow-[0_1px_4px_-1px_rgba(0,0,0,0.06)] ${r?`flex min-h-9 w-full min-w-0 items-center gap-2 py-1.5`:`inline-flex h-7.5 items-center gap-1`}`,"aria-label":a,"data-testid":`resource-chip`,title:a,children:[(0,i.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,i.jsx)(c,{icon:e}),(0,i.jsx)(`span`,{className:`min-w-0 truncate`,children:t.name})]}),t.source&&(0,i.jsx)(`span`,{className:`max-w-20 shrink-0 truncate rounded-[5px] bg-foreground/5 px-1.5 py-0.5 text-[0.625rem] leading-3 text-foreground/35`,children:t.source}),t.activationStatus&&(0,i.jsx)(`span`,{className:`max-w-24 shrink-0 truncate rounded-[5px] bg-foreground/5 px-1.5 py-0.5 text-[0.625rem] leading-3 text-foreground/35`,children:t.activationStatus})]})}function c({icon:e}){return(0,i.jsx)(`span`,{className:`inline-flex size-5 shrink-0 items-center justify-center rounded-full bg-foreground/4 text-foreground/45`,children:(0,i.jsx)(e,{className:`size-3.5`})})}function l(){return(0,i.jsxs)(`div`,{className:`flex flex-col gap-4 p-1`,children:[(0,i.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,i.jsx)(r,{className:`h-4 w-24`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,i.jsx)(r,{className:`h-7 w-20 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-24 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-16 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-28 rounded-full`})]})]}),(0,i.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,i.jsx)(r,{className:`h-4 w-28`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,i.jsx)(r,{className:`h-7 w-22 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-18 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-26 rounded-full`})]})]}),(0,i.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,i.jsx)(r,{className:`h-4 w-20`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,i.jsx)(r,{className:`h-7 w-24 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-20 rounded-full`}),(0,i.jsx)(r,{className:`h-7 w-30 rounded-full`})]})]})]})}function u(){return(0,i.jsxs)(`div`,{className:`flex flex-col gap-2 p-1`,children:[(0,i.jsx)(r,{className:`h-7 w-full rounded-sm`}),(0,i.jsx)(r,{className:`h-6 w-[90%]`}),(0,i.jsx)(r,{className:`h-6 w-[85%]`}),(0,i.jsx)(r,{className:`h-6 w-[70%]`}),(0,i.jsx)(r,{className:`h-6 w-[80%]`}),(0,i.jsx)(r,{className:`h-6 w-[60%]`}),(0,i.jsx)(r,{className:`h-6 w-[75%]`}),(0,i.jsx)(r,{className:`h-6 w-[55%]`})]})}function d(){return(0,i.jsxs)(`div`,{className:`flex flex-col gap-3 p-2`,children:[(0,i.jsx)(r,{className:`h-4 w-3/4`}),(0,i.jsx)(r,{className:`h-4 w-full`}),(0,i.jsx)(r,{className:`h-4 w-[95%]`}),(0,i.jsx)(r,{className:`h-4 w-[80%]`}),(0,i.jsx)(r,{className:`h-4 w-full`}),(0,i.jsx)(r,{className:`h-4 w-[70%]`}),(0,i.jsx)(r,{className:`h-4 w-[90%]`}),(0,i.jsx)(r,{className:`h-4 w-[60%]`})]})}export{a,o as i,d as n,u as r,l as t};
|
package/dist/web/client/assets/{subagent-chat-panel-DseoO31p.js → subagent-chat-panel-DkVUumrP.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-NZYk81nU.js";import{t}from"./prompt-input-
|
|
1
|
+
import{t as e}from"./jsx-runtime-NZYk81nU.js";import{t}from"./prompt-input-qPIXZ-Rb.js";import{t as n}from"./subagent-transcript-D8wmQxXe.js";var r=e();function i({disabled:e,sending:n,onSend:i,onStop:a,placeholder:o=`Message this subagent… (Enter to steer)`}){return(0,r.jsx)(`div`,{className:`shrink-0 border-t border-border/60 bg-background/80 px-4 py-3 backdrop-blur`,children:(0,r.jsx)(`div`,{className:`mx-auto w-full max-w-3xl`,children:(0,r.jsx)(t,{"aria-label":`Message subagent`,disabled:e,loading:n,minRows:1,onSubmit:e=>i(e),onStop:a,placeholder:o})})})}function a({child:e,parentSessionId:t,state:a}){let o=a.error??(a.status===`error`?Error(e.error??`The subagent thread ended with an error.`):void 0),s=a.loading?`loading`:a.status===`error`||o?`error`:`ready`,c=t!==void 0&&!a.loading;return(0,r.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,r.jsx)(n,{child:e,fullWidth:!0,parentSessionId:t,status:a.status,transcript:{status:s,messages:a.messages,presentation:a.presentation,error:o},onRefresh:a.refresh}),(0,r.jsx)(i,{disabled:!c,sending:a.sending,onSend:e=>void a.sendMessage(e),onStop:a.stop})]})}export{a as SubagentChatPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./button-BR2WWrFo.js";import{t as i}from"./utils-Eg7xtNmV.js";import{i as a}from"./citations-C_tPOJE_.js";import{t as o}from"./bot-Bs7QWJ2q.js";import{a as s,c,d as l,f as u,i as d,l as f,n as p,o as m,r as h,t as g,u as _}from"./virtualized-turn-list-DMJENRY0.js";import{t as v}from"./fleet-pi-tool-renderer-BEDIO3al.js";import{t as y}from"./circle-alert-CONlFReH.js";import{t as b}from"./fleet-tool-timeline-C8heL7ae.js";import{t as x}from"./refresh-cw-IThTJ3j-.js";import{t as S}from"./fleet-subagent-list-iKUtLJKZ.js";import{t as C}from"./prime-agent-artifacts-C-g1VPiW.js";var w=e(t(),1);function T(e){return e.status===`running`||e.status===`recovering`?`streaming`:e.status===`error`||e.status===`failed`?`error`:`ready`}var E=n();function D({turn:e,isLast:t,isStreaming:n,artifacts:r,presentation:i}){let o=(0,w.useMemo)(()=>e.assistants.flatMap((r,i)=>d(s(r.parts??[]),{messageId:r.id,isLast:t&&i===e.assistants.length-1,isStreaming:n,suppressQuestionTool:!0,ToolRendererComponent:v,TextRendererComponent:p,toolRenderers:a})),[t,n,e.assistants]);return(0,E.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.user?(0,E.jsx)(c,{from:`user`,children:(0,E.jsx)(f,{children:(0,E.jsx)(m,{message:e.user,enableImagePreview:!1})})}):null,e.assistants.length>0?(0,E.jsx)(c,{from:`assistant`,children:(0,E.jsx)(f,{children:(0,E.jsx)(l,{variant:`ghost`,children:(0,E.jsxs)(u,{children:[t?(0,E.jsx)(b,{messages:e.assistants,artifacts:r,streaming:n}):null,(0,E.jsx)(`div`,{className:`flex flex-col gap-3`,children:o}),t&&i?(0,E.jsx)(S,{tree:i.rlmTree,children:i.rlmChildren}):null]})})})}):null]})}function O(e,t){return e.user?.id??e.assistants[0]?.id??`subagent-turn-${t}`}function k({child:e,parentSessionId:t,transcript:n,onRefresh:a,fullWidth:s=!1,status:c}){let l=(0,w.useMemo)(()=>n?.status===`loading`?[]:h(n?.messages??[]),[n]),u=c??T(e),d=(0,w.useMemo)(()=>n?.status===`loading`?[]:C(n?.messages??[],n?.presentation,u),[u,n]),f=(0,w.useMemo)(()=>d.flatMap(e=>e.artifacts),[d]),p=n?.presentation,m=(0,w.useCallback)((e,t)=>{let n=t===l.length-1;return(0,E.jsx)(D,{turn:e,isLast:n,isStreaming:n&&u===`streaming`,artifacts:n?f:[],presentation:n?p:void 0})},[f,u,p,l.length]),v=e.sessionName||e.label,[b,S]=(0,w.useState)(null);(0,w.useEffect)(()=>{S(e.lastHeardFrom?new Date(e.lastHeardFrom).toLocaleTimeString():null)},[e.lastHeardFrom]);let k=(0,w.useRef)(null);return(0,E.jsxs)(`section`,{"aria-label":`Subagent thread: ${e.label}`,className:i(s?`flex min-h-0 min-w-0 flex-1 flex-col`:`space-y-2`,`min-w-0`),"data-testid":s?`subagent-conversation-surface`:void 0,children:[(0,E.jsxs)(`div`,{className:`flex min-w-0 items-start gap-2 rounded-md border border-border/60 bg-background px-2.5 py-2`,children:[(0,E.jsx)(o,{className:`mt-0.5 size-3.5 shrink-0 text-foreground/45`}),(0,E.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,E.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,E.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-foreground/80`,children:v}),(0,E.jsx)(`span`,{className:`shrink-0 text-[0.625rem] capitalize text-foreground/45`,children:e.status})]}),e.model?(0,E.jsx)(`p`,{className:`truncate font-mono text-[0.625rem] text-foreground/40`,children:e.model}):null,b?(0,E.jsxs)(`p`,{className:`truncate text-[0.625rem] text-foreground/40`,children:[`Heartbeat: `,b]}):null,e.answerPreview||e.recap?(0,E.jsx)(`p`,{className:`mt-1 line-clamp-3 whitespace-pre-wrap text-[0.6875rem] leading-4 text-foreground/55`,children:e.answerPreview??e.recap}):null]}),a?(0,E.jsx)(r,{"aria-label":`Refresh ${e.label} thread`,className:`shrink-0 text-foreground/40 hover:text-foreground/70`,onClick:a,size:`icon-sm`,title:`Refresh ${e.label} thread`,type:`button`,variant:`ghost`,children:(0,E.jsx)(x,{className:i(`size-3.5`,n?.status===`loading`&&`animate-spin`)})}):null]}),t?n?.status===`loading`?(0,E.jsx)(`div`,{className:i(`flex items-center justify-center rounded-md border border-dashed border-border/70 text-[0.6875rem] text-foreground/45`,s?`min-h-32 flex-1`:`min-h-32`),children:`Loading subagent thread…`}):n?.status===`error`&&l.length===0?(0,E.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-[0.6875rem] leading-4 text-destructive`,children:[(0,E.jsx)(y,{className:`mt-0.5 size-3.5 shrink-0`}),(0,E.jsx)(`span`,{children:n.error?.message??`Unable to load this subagent thread.`})]}):l.length===0?(0,E.jsx)(`p`,{className:`rounded-md border border-dashed border-border/70 p-3 text-[0.6875rem] leading-4 text-foreground/45`,children:`This subagent thread has no messages yet.`}):(0,E.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[n?.error?(0,E.jsxs)(`div`,{role:`alert`,className:`mx-4 mt-2 flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-[0.6875rem] leading-4 text-destructive sm:mx-6`,children:[(0,E.jsx)(y,{className:`mt-0.5 size-3.5 shrink-0`}),(0,E.jsx)(`span`,{children:n.error.message})]}):null,(0,E.jsx)(`div`,{className:i(`min-h-0 rounded-md border border-border/60 bg-background`,s?`flex min-h-0 flex-1 flex-col border-x-0 rounded-none border-b-0`:`h-96 max-h-[calc(100svh-18rem)]`),children:(0,E.jsx)(_,{busy:u===`streaming`,className:s?`min-h-0 flex-1`:void 0,followOutput:u===`streaming`,label:`Transcript for ${e.label}`,smooth:u===`streaming`,viewportRef:k,viewportClassName:s?`px-0`:void 0,contentClassName:i(`flex flex-col gap-4`,s?`mx-auto w-full max-w-3xl px-4 py-6 sm:px-6`:`px-2.5 py-3`),children:(0,E.jsx)(g,{estimateSize:320,getItemKey:O,itemGap:16,items:l,renderItem:m,viewportRef:k})})})]}):(0,E.jsx)(`p`,{className:`rounded-md border border-dashed border-border/70 p-3 text-[0.6875rem] leading-4 text-foreground/45`,children:`This subagent thread is unavailable until the parent session is active.`})]})}export{k as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./button-BR2WWrFo.js";import{t as i}from"./utils-Eg7xtNmV.js";import{t as a}from"./bot-Bs7QWJ2q.js";import{t as o}from"./chevron-right-DrJxToLs.js";import{n as s,t as c}from"./subagent-utils-DDH5qm9Z.js";import{t as l}from"./subagent-transcript-D8wmQxXe.js";var u=e(t(),1),d=n();function f({agents:e,loadSession:t,onOpenTab:n,parentSessionId:f,tree:p}){let m=(0,u.useMemo)(()=>c(e,p),[e,p]),[h,g]=(0,u.useState)(null),[_,v]=(0,u.useState)({}),y=(0,u.useRef)(new Map),b=m.find(e=>e.id===h)??m[0];(0,u.useEffect)(()=>{h&&m.some(e=>e.id===h)||g(m[0]?.id??null)},[m,h]);let x=(0,u.useCallback)(async(e,n=!1)=>{if(!f)return;let r=`${f}:${e.id}:${e.status}:${e.timestamp}:${e.activeSessionId??``}`,i=_[e.id];if(!n&&i?.requestKey===r)return;let a=(y.current.get(e.id)??0)+1;y.current.set(e.id,a),v(t=>({...t,[e.id]:{requestKey:r,status:`loading`,messages:[]}}));try{let n=await t(f,e.id);if(y.current.get(e.id)!==a)return;v(t=>({...t,[e.id]:{requestKey:r,status:`ready`,messages:n.messages,presentation:n.presentation}}))}catch(t){if(y.current.get(e.id)!==a)return;v(n=>({...n,[e.id]:{requestKey:r,status:`error`,messages:[],error:t instanceof Error?t:Error(String(t))}}))}},[t,f,_]);return(0,u.useEffect)(()=>{b&&x(b)},[x,b]),m.length===0?(0,d.jsx)(`section`,{"aria-label":`Subagents`,className:`flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-[0.75rem] leading-5 text-foreground/45`,children:`Subagent threads will appear here when Prime delegates work.`}):(0,d.jsxs)(`section`,{"aria-label":`Subagents`,className:`space-y-2 pb-1`,children:[(0,d.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,d.jsx)(a,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`Invoked subagents`}),(0,d.jsx)(`span`,{className:`shrink-0 text-[0.625rem] text-foreground/40`,children:m.length})]}),(0,d.jsx)(`div`,{className:`space-y-0.5`,"data-testid":`subagent-thread-list`,children:m.map(e=>{let t=e.id===b?.id;return(0,d.jsxs)(r,{type:`button`,variant:`ghost`,size:`sm`,"aria-pressed":t,className:i(`flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,t&&`bg-foreground/8`),style:{paddingLeft:`${8+Math.max(0,e.depth??0)*12}px`},onClick:()=>{g(e.id),n?.(e.id)},children:[(0,d.jsx)(`span`,{className:`shrink-0`,children:s(e.status)}),(0,d.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs text-foreground/80`,children:e.label}),(0,d.jsx)(o,{className:`size-3 shrink-0 text-foreground/30`}),(0,d.jsx)(`span`,{className:`shrink-0 text-[0.625rem] capitalize text-foreground/45`,children:e.status})]},e.id)})}),b?(0,d.jsx)(l,{child:b,parentSessionId:f,transcript:_[b.id],onRefresh:()=>void x(b,!0)}):null]})}export{f as SubagentsPanelContent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-Eg7xtNmV.js";var i=e(t(),1),a=n(),o=`bg-background shadow-[0_1px_2px_rgba(0,0,0,0.04),0_12px_32px_-16px_rgba(0,0,0,0.12)] dark:bg-popover dark:shadow-none`,s=`bg-background shadow-[0_2px_8px_rgba(0,0,0,0.05),0_20px_48px_-16px_rgba(0,0,0,0.18)] dark:bg-popover dark:shadow-[0_20px_48px_-16px_rgba(0,0,0,0.55)]`,c=`bg-foreground/[0.04] dark:bg-foreground/[0.06]`,l=`col-start-1 row-start-1 flex w-max items-center gap-1.5 leading-none transition-[opacity,filter] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none`,u=`opacity-100 blur-none`,d=`pointer-events-none select-none opacity-0 blur-[2px]`,f=`h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:h-0 data-[starting-style]:h-0 motion-reduce:transition-none`,p=`font-mono text-[
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-Eg7xtNmV.js";var i=e(t(),1),a=n(),o=`bg-background shadow-[0_1px_2px_rgba(0,0,0,0.04),0_12px_32px_-16px_rgba(0,0,0,0.12)] dark:bg-popover dark:shadow-none`,s=`bg-background shadow-[0_2px_8px_rgba(0,0,0,0.05),0_20px_48px_-16px_rgba(0,0,0,0.18)] dark:bg-popover dark:shadow-[0_20px_48px_-16px_rgba(0,0,0,0.55)]`,c=`bg-foreground/[0.04] dark:bg-foreground/[0.06]`,l=`col-start-1 row-start-1 flex w-max items-center gap-1.5 leading-none transition-[opacity,filter] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none`,u=`opacity-100 blur-none`,d=`pointer-events-none select-none opacity-0 blur-[2px]`,f=`h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:h-0 data-[starting-style]:h-0 motion-reduce:transition-none`,p=`font-mono text-[0.6875rem] tracking-tight`;function m({active:e=!0,className:t,...n}){return(0,a.jsx)(`span`,{className:r(e&&`shimmer motion-reduce:animate-none`,t),...n})}function h({active:e,children:t,className:n}){let o=(0,i.useRef)(null),s=(0,i.useRef)(null),[c,f]=(0,i.useState)(null);return(0,i.useLayoutEffect)(()=>{let t=(e===0?o:s).current;if(!t)return;let n=()=>f(Math.ceil(t.getBoundingClientRect().width));n();let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[e]),(0,a.jsxs)(`span`,{style:c===null?void 0:{width:c},className:r(`grid overflow-x-clip transition-[width] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none`,n),children:[(0,a.jsx)(`span`,{ref:o,"aria-hidden":e!==0,className:r(l,e===0?u:d),children:t[0]}),(0,a.jsx)(`span`,{ref:s,"aria-hidden":e!==1,className:r(l,e===1?u:d),children:t[1]})]})}export{s as a,c as i,h as n,p as o,f as r,o as s,m as t};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dist-CZDnnosQ.js","assets/rolldown-runtime-hePW80VL.js","assets/preload-helper-Czpn1I53.js","assets/lib-ChrQ49PO.js","assets/character-entities-legacy-Wut6vMuj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{d as r,l as i,u as a}from"./ease-u56MhKYS.js";import{t as o}from"./use-reduced-motion-eORd7fqW.js";import{t as s}from"./utils-Eg7xtNmV.js";import{t as c}from"./createLucideIcon-DwxZHm0M.js";import{t as l}from"./check-JjHKAZas.js";import{t as u}from"./chevron-down-BEVGmnSb.js";import{n as d,t as f}from"./loader-circle-DjfHXUPB.js";import{t as p}from"./circle-x-CkKCB__4.js";import{n as m,r as h,t as g}from"./action-swap-roll-BB8DFMuf.js";import{t as _}from"./rotate-ccw-WNFNkKQD.js";import{t as v}from"./square-terminal-BYTN_I86.js";import{t as y}from"./wrench-BJNNe07k.js";import{t as b}from"./preload-helper-Czpn1I53.js";import{t as x}from"./agent-disclosure-B8SnhQXL.js";var S=c(`ban`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]]),C=c(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),w=e(t(),1),T=n(),E=`github-light-high-contrast`,D=`github-dark-high-contrast`,O=null,k=new Map,A=500;function j(e,t){if(k.size>=A){let e=k.keys().next().value;e!==void 0&&k.delete(e)}k.set(e,t)}var M=()=>b(()=>import(`./dist-CZDnnosQ.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4]));function N(){return O||=M().then(({createHighlighter:e})=>e({themes:[E,D],langs:[`bash`,`diff`,`json`,`python`,`tsx`,`typescript`]})),O}function P(e,t){return`${t}\u0000${e}`}function F(e,t){let n=P(e,t),r=k.get(n),[i,a]=(0,w.useState)(r?{key:n,code:e,language:t,lines:r}:null);return(0,w.useEffect)(()=>{let r=k.get(n);if(r){a({key:n,code:e,language:t,lines:r});return}let i=!1;return N().then(r=>{if(i)return;let o=r.codeToTokensWithThemes(e,{lang:t,themes:{light:E,dark:D}}).map(e=>e.map(e=>({content:e.content,offset:e.offset,light:e.variants.light?.color,dark:e.variants.dark?.color})));j(n,o),a({key:n,code:e,language:t,lines:o})}),()=>{i=!0}},[e,n,t]),i?.key===n||i?.language===t&&e.startsWith(i.code)?i.lines:null}function I({code:e,tokens:t,className:n}){return(0,T.jsx)(`span`,{className:n,children:t?t.map(e=>(0,T.jsx)(`span`,{style:{"--agent-code-light":e.light??`currentColor`,"--agent-code-dark":e.dark??e.light??`currentColor`},className:`text-[var(--agent-code-light)] dark:text-[var(--agent-code-dark)]`,children:e.content},`${e.offset}-${e.content}`)):e})}var L=[];function R({code:e,language:t=`typescript`,languageLabel:n,filename:a,status:c=`complete`,showStatus:u=!0,showLineNumbers:d=!0,highlightLines:p=L,maxHeight:g=280,wrap:_=!1,copyable:v=!0,onCopy:y,className:b}){let x=o()??!1,S=(0,w.useRef)(null),C=(0,w.useRef)(void 0),[E,D]=(0,w.useState)(!1),O=c===`streaming`,k=F(e,t),A=(0,w.useMemo)(()=>new Set(p),[p]),j=0,M=e.split(`
|
|
3
|
+
`).map(e=>{let t={content:e,offset:j};return j+=e.length+1,t}),N=n??{bash:`Bash`,diff:`Diff`,json:`JSON`,python:`Python`,text:`Text`,tsx:`TSX`,typescript:`TypeScript`}[t];(0,w.useEffect)(()=>()=>{C.current&&window.clearTimeout(C.current)},[]),(0,w.useLayoutEffect)(()=>{let e=S.current;if(!e||!O)return;let t=requestAnimationFrame(()=>{e.scrollHeight<=e.clientHeight||(typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:x?`auto`:`smooth`}):e.scrollTop=e.scrollHeight)});return()=>cancelAnimationFrame(t)});let P=(0,w.useCallback)(async()=>{y?await y():await navigator.clipboard?.writeText(e),D(!0),C.current&&window.clearTimeout(C.current),C.current=window.setTimeout(()=>D(!1),1600)},[e,y]);return(0,T.jsxs)(`div`,{"data-state":c,"aria-busy":O,className:s(`w-full overflow-hidden rounded-2xl bg-muted/80 text-sm`,b),children:[(0,T.jsxs)(`div`,{className:`flex h-10 items-center gap-2.5 px-3`,children:[(0,T.jsx)(m,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-muted-foreground/70`}),a?(0,T.jsx)(`span`,{className:`min-w-0 truncate font-mono text-xs text-foreground/80`,children:a}):null,(0,T.jsx)(`span`,{className:`text-[0.625rem] font-medium uppercase tracking-wide text-muted-foreground/55`,children:N}),u?(0,T.jsxs)(`span`,{className:s(`ml-auto inline-flex shrink-0 items-center gap-1 text-[0.625rem] font-medium`,O?`text-blue-600 dark:text-blue-400`:`text-emerald-600 dark:text-emerald-400`),children:[O?(0,T.jsx)(f,{className:s(`size-3`,!x&&`animate-spin`)}):(0,T.jsx)(l,{className:`size-3`}),O?`Writing`:`Ready`]}):null,v||y?(0,T.jsx)(r.button,{type:`button`,"aria-label":E?`Copied`:`Copy code`,title:E?`Copied`:`Copy code`,onClick:P,whileTap:x?void 0:{scale:.9},transition:i,className:s(`grid size-7 shrink-0 place-items-center rounded-full text-muted-foreground outline-none transition-colors hover:bg-background/70 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,!u&&`ml-auto`),children:E?(0,T.jsx)(l,{className:`size-3.5`}):(0,T.jsx)(h,{className:`size-3.5`})}):null]}),(0,T.jsx)(`div`,{ref:S,role:O?`log`:void 0,"aria-live":O?`off`:void 0,className:`overflow-auto border-t border-foreground/[0.06] py-2 [scrollbar-color:color-mix(in_oklab,var(--muted-foreground)_35%,transparent)_transparent] [scrollbar-width:thin]`,style:{maxHeight:g},children:(0,T.jsx)(`pre`,{className:`m-0 min-w-max font-mono text-xs leading-5 text-foreground/85`,children:(0,T.jsx)(`code`,{children:M.map((e,t)=>{let n=t+1;return(0,T.jsxs)(`span`,{className:s(`grid min-h-5`,d?`grid-cols-[2.75rem_minmax(0,1fr)]`:`grid-cols-1`,A.has(n)&&`bg-blue-500/[0.07]`),children:[d?(0,T.jsx)(`span`,{className:`select-none pr-3 text-right tabular-nums text-muted-foreground/35`,children:n}):null,(0,T.jsx)(I,{code:e.content,tokens:k?.[t],className:s(`pr-4`,d?`pl-1`:`pl-4`,_?`whitespace-pre-wrap break-words`:`whitespace-pre`)})]},e.offset)})})})})]})}function z({value:e,type:t}){return e?(0,T.jsxs)(`span`,{className:s(`font-mono text-xs tabular-nums`,t===`added`?`text-emerald-600 dark:text-emerald-400`:`text-rose-600 dark:text-rose-400`),children:[t===`added`?`+`:`−`,e]}):null}function B({file:e,lines:t,status:n=`streaming`,open:c,defaultOpen:d=!0,onOpenChange:g,collapseOnComplete:_=!0,maxHeight:v=220,language:y=`typescript`,copyText:b,onCopy:C,className:E}){let D=o()??!1,O=(0,w.useId)(),k=`${O}-trigger`,A=`${O}-content`,j=(0,w.useRef)(null),M=(0,w.useRef)(n),N=(0,w.useRef)(void 0),[P,L]=(0,w.useState)(!1),[R,B]=(0,w.useState)(d),V=c??R,H=n===`streaming`,U=t.filter(e=>e.type===`added`).length,W=t.filter(e=>e.type===`removed`).length,G=!!(b||C),K=F(t.map(e=>e.content).join(`
|
|
4
|
+
`),y),q=(0,w.useCallback)(e=>{c===void 0&&B(e),g?.(e)},[g,c]);(0,w.useEffect)(()=>{M.current!==`streaming`&&n===`streaming`&&q(!0),M.current===`streaming`&&n!==`streaming`&&_&&q(!1),M.current=n},[_,q,n]),(0,w.useEffect)(()=>()=>{N.current&&window.clearTimeout(N.current)},[]),(0,w.useLayoutEffect)(()=>{let e=j.current;if(!e||!V||!H)return;let t=requestAnimationFrame(()=>{e.scrollHeight<=e.clientHeight||(typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:D?`auto`:`smooth`}):e.scrollTop=e.scrollHeight)});return()=>cancelAnimationFrame(t)});let J=(0,w.useCallback)(async()=>{C?await C():b&&await navigator.clipboard?.writeText(b),L(!0),N.current&&window.clearTimeout(N.current),N.current=window.setTimeout(()=>L(!1),1600)},[b,C]);return(0,T.jsxs)(`div`,{"data-state":n,"aria-busy":H,className:s(`w-full text-sm`,E),children:[(0,T.jsxs)(`button`,{id:k,type:`button`,"aria-expanded":V,"aria-controls":A,onClick:()=>q(!V),className:`group flex min-h-9 w-full items-center gap-2 rounded-md py-1 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`,children:[(0,T.jsx)(m,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,T.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-xs text-foreground/80`,children:e}),(0,T.jsxs)(`span`,{className:`flex shrink-0 items-center gap-2`,children:[(0,T.jsx)(z,{value:U,type:`added`}),(0,T.jsx)(z,{value:W,type:`removed`})]}),(0,T.jsx)(`span`,{className:`grid size-4 shrink-0 place-items-center text-muted-foreground/60`,children:H?(0,T.jsx)(f,{"aria-label":`Applying changes`,className:s(`size-3.5`,!D&&`animate-spin`)}):n===`error`?(0,T.jsx)(p,{"aria-label":`Changes failed`,className:`size-3.5`}):n===`cancelled`?(0,T.jsx)(S,{"aria-label":`Changes cancelled`,className:`size-3.5`}):(0,T.jsx)(l,{"aria-label":`Changes applied`,className:`size-3.5`})}),(0,T.jsx)(r.span,{"aria-hidden":`true`,animate:{rotate:V?180:0},transition:D?{duration:0}:a,className:`shrink-0 text-muted-foreground/45 transition-colors group-hover:text-muted-foreground`,children:(0,T.jsx)(u,{className:`size-3.5`})})]}),(0,T.jsx)(x,{id:A,role:`region`,"aria-labelledby":k,open:V,children:(0,T.jsx)(`div`,{className:`pl-6 pt-1.5`,children:(0,T.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-muted/80`,children:[(0,T.jsx)(`div`,{ref:j,"data-slot":`file-diff-viewport`,"aria-live":H?`off`:`polite`,className:`scrollbar-hide overflow-auto`,style:{maxHeight:v},children:(0,T.jsxs)(`div`,{className:`font-mono text-xs leading-5`,children:[(0,T.jsx)(`span`,{className:`sr-only`,children:`File changes`}),t.map((e,t)=>{let n=e.type??`context`;return(0,T.jsxs)(`div`,{className:s(`grid grid-cols-[2.25rem_2.25rem_1rem_minmax(0,1fr)]`,n===`added`&&`bg-emerald-500/[0.07]`,n===`removed`&&`bg-rose-500/[0.07]`),children:[(0,T.jsx)(`span`,{className:`select-none pr-2 text-right tabular-nums text-muted-foreground/40`,children:e.oldLine}),(0,T.jsx)(`span`,{className:`select-none pr-2 text-right tabular-nums text-muted-foreground/40`,children:e.newLine}),(0,T.jsx)(`span`,{className:s(`select-none text-center text-muted-foreground/45`,n===`added`&&`text-emerald-600 dark:text-emerald-400`,n===`removed`&&`text-rose-600 dark:text-rose-400`),children:n===`added`?`+`:n===`removed`?`−`:``}),(0,T.jsx)(I,{code:e.content,tokens:K?.[t],className:`min-w-0 whitespace-pre px-1.5`})]},e.id)})]})}),G?(0,T.jsx)(`div`,{className:`flex justify-end px-2 pb-1.5 pt-1`,children:(0,T.jsx)(r.button,{type:`button`,"aria-label":P?`Copied`:`Copy diff`,title:P?`Copied`:`Copy diff`,onClick:J,whileTap:D?void 0:{scale:.9},transition:i,className:`grid size-7 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-background/70 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:P?(0,T.jsx)(l,{className:`size-3.5`}):(0,T.jsx)(h,{className:`size-3.5`})})}):null]})})})]})}function V(e){return e===`running`?`Running`:e===`success`?`Completed`:e===`error`?`Failed`:`Cancelled`}function H(e,t){return typeof e==`string`||typeof e==`number`?String(e):t}function U(e){return e===`running`?`text-blue-600 dark:text-blue-400`:e===`success`?`text-emerald-600 dark:text-emerald-400`:e===`error`?`text-rose-600 dark:text-rose-400`:`text-muted-foreground`}function W({kind:e}){return e===`terminal`?(0,T.jsx)(v,{className:`size-4`}):e===`request`?(0,T.jsx)(C,{className:`size-4`}):(0,T.jsx)(y,{className:`size-4`})}function G({status:e,reduce:t}){return e===`running`?(0,T.jsx)(f,{className:s(`size-3`,!t&&`animate-spin`)}):e===`success`?(0,T.jsx)(d,{className:`size-3`}):e===`error`?(0,T.jsx)(p,{className:`size-3`}):(0,T.jsx)(S,{className:`size-3`})}function K({label:e,onClick:t,children:n}){let a=o()??!1;return(0,T.jsx)(r.button,{type:`button`,"aria-label":e,title:e,onClick:t,whileTap:a?void 0:{scale:.9},transition:i,className:`grid size-7 place-items-center rounded-md text-muted-foreground outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring`,children:n})}function q({children:e,language:t=`bash`,label:n,className:r}){return(0,T.jsxs)(`div`,{className:`space-y-1.5`,children:[n?(0,T.jsx)(`div`,{className:`px-0.5 text-[0.625rem] font-medium uppercase tracking-[0.12em] text-muted-foreground/60`,children:n}):null,(0,T.jsx)(`pre`,{className:s(`m-0 whitespace-pre-wrap break-words font-mono text-xs leading-5 text-foreground/80`,r),children:(0,T.jsx)(`code`,{children:e})})]})}function J({tool:e,title:t,children:n,status:i=`running`,kind:c=`custom`,meta:d,icon:f,open:p,defaultOpen:m=!0,onOpenChange:v,collapseOnComplete:y=!0,maxHeight:b=220,copyText:S,onCopy:C,onRetry:E,className:D,contentClassName:O}){let k=o()??!1,A=(0,w.useId)(),j=`${A}-trigger`,M=`${A}-content`,N=(0,w.useRef)(null),P=(0,w.useRef)(i),F=(0,w.useRef)(void 0),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(m),B=p??R,q=i===`running`,J=!!(S||C),Y=H(t,i),X=H(d,`${i}-meta`),Z=H(e,`${i}-tool`),Q=V(i),$=(0,w.useCallback)(e=>{p===void 0&&z(e),v?.(e)},[v,p]);(0,w.useEffect)(()=>{P.current!==`running`&&i===`running`&&$(!0),P.current===`running`&&i!==`running`&&y&&$(!1),P.current=i},[y,$,i]),(0,w.useEffect)(()=>()=>{F.current&&window.clearTimeout(F.current)},[]),(0,w.useLayoutEffect)(()=>{let e=N.current;if(!e||!B||!q)return;let t=requestAnimationFrame(()=>{typeof e.scrollTo==`function`?e.scrollTo({top:e.scrollHeight,behavior:k?`auto`:`smooth`}):e.scrollTop=e.scrollHeight});return()=>cancelAnimationFrame(t)});let ee=(0,w.useCallback)(async()=>{C?await C():S&&await navigator.clipboard?.writeText(S),L(!0),F.current&&window.clearTimeout(F.current),F.current=window.setTimeout(()=>L(!1),1600)},[S,C]);return(0,T.jsxs)(`div`,{"data-state":i,"aria-busy":q,className:s(`w-full text-sm`,D),children:[(0,T.jsxs)(`button`,{id:j,type:`button`,"aria-expanded":B,"aria-controls":M,onClick:()=>$(!B),className:`group flex min-h-9 w-full items-center gap-2 rounded-md py-1 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`,children:[(0,T.jsx)(`span`,{"aria-hidden":`true`,className:`grid size-4 shrink-0 place-items-center text-muted-foreground`,children:f??(0,T.jsx)(W,{kind:c})}),(0,T.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-baseline gap-2`,children:[(0,T.jsx)(`span`,{className:`min-w-0 truncate font-medium text-foreground/90`,children:(0,T.jsx)(g,{value:Y,children:t})}),d?(0,T.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground/60`,children:(0,T.jsx)(g,{value:X,children:d})}):null,(0,T.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[0.6875rem] text-muted-foreground/55`,children:(0,T.jsx)(g,{value:Z,children:e})})]}),(0,T.jsxs)(`span`,{className:s(`inline-flex shrink-0 items-center gap-1 text-[0.6875rem] font-medium`,U(i)),children:[(0,T.jsx)(G,{status:i,reduce:k}),(0,T.jsx)(g,{value:i,children:Q})]}),(0,T.jsx)(r.span,{"aria-hidden":`true`,animate:{rotate:B?180:0},transition:k?{duration:0}:a,className:`shrink-0 text-muted-foreground/50 transition-colors group-hover:text-muted-foreground`,children:(0,T.jsx)(u,{className:`size-3.5`})})]}),(0,T.jsx)(x,{id:M,role:`region`,"aria-labelledby":j,open:B,children:(0,T.jsx)(`div`,{className:`pl-6 pt-1.5`,children:(0,T.jsxs)(`div`,{className:`overflow-hidden rounded-xl bg-muted/80`,children:[(0,T.jsx)(`div`,{ref:N,role:`log`,"aria-live":`polite`,className:`scrollbar-hide overflow-y-auto`,style:{maxHeight:b},children:(0,T.jsx)(`div`,{className:s(`p-3`,O),children:n})}),J||E?(0,T.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 pb-1.5`,children:[J?(0,T.jsx)(K,{label:I?`Copied`:`Copy result`,onClick:ee,children:I?(0,T.jsx)(l,{className:`size-3.5`}):(0,T.jsx)(h,{className:`size-3.5`})}):null,E?(0,T.jsx)(K,{label:`Run again`,onClick:E,children:(0,T.jsx)(_,{className:`size-3.5`})}):null,(0,T.jsx)(`span`,{className:`ml-auto text-[0.6875rem] text-muted-foreground/55`,children:(0,T.jsx)(g,{value:i,children:Q})})]}):null]})})})]})}export{R as i,q as n,B as r,J as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./safe-storage-s25GrfpH.js";var t=`fleet-prime:v1:ui-preferences`,n={density:`comfortable`,motion:`system`,transcript:`follow`,confirmSessionDelete:!0};function r(){try{let t=JSON.parse(e(`fleet-prime:v1:ui-preferences`)??`null`);return{...n,...t}}catch{return n}}export{t as n,r,n as t};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/openui-renderer-J3dhPpL4.js","assets/rolldown-runtime-hePW80VL.js","assets/bundle-mjs-DKHVkVWu.js","assets/react-dom-Bwxum3ti.js","assets/jsx-runtime-NZYk81nU.js","assets/button-BR2WWrFo.js","assets/createBaseUIEventDetails-DV0dQrBX.js","assets/utils-Eg7xtNmV.js","assets/dialog-BEZuZhzk.js","assets/useBaseUiId-CHqXB2UQ.js","assets/x-CsRC_tCI.js","assets/createLucideIcon-DwxZHm0M.js","assets/provider-catalog-D8G66gwc.js","assets/check-JjHKAZas.js","assets/chevron-down-BEVGmnSb.js","assets/useControlled-CJJ9BOQB.js","assets/input-0wwjWjKq.js","assets/chevron-up-CnSvySGH.js","assets/card-BKl76a3R.js","assets/chunk-YOKDWASO-BAf618wr.js","assets/preload-helper-Czpn1I53.js","assets/lib-ChrQ49PO.js","assets/character-entities-legacy-Wut6vMuj.js","assets/openui-utils-DawGoQNp.js","assets/safe-external-url-D3PJJIcM.js","assets/chat-yh02zgA7.js","assets/switch-9rTeg6J6.js","assets/markdown-DInPmRUG.js","assets/cn-C8c0S2mI.js","assets/dist-BPaFisIZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./react-dom-Bwxum3ti.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{d as i,o as a,r as o}from"./ease-u56MhKYS.js";import{n as s,t as c}from"./use-reduced-motion-eORd7fqW.js";import{t as l}from"./utils-Eg7xtNmV.js";import{t as u}from"./createLucideIcon-DwxZHm0M.js";import{a as d,o as f}from"./citations-C_tPOJE_.js";import{t as p}from"./check-JjHKAZas.js";import{t as m}from"./chevron-right-DrJxToLs.js";import{r as h}from"./action-swap-roll-BB8DFMuf.js";import{t as g}from"./file-text-T-NcAlZs.js";import{t as _}from"./image-BbPmlw-n.js";import{t as v}from"./x-CsRC_tCI.js";import{t as y}from"./preload-helper-Czpn1I53.js";import"./cn-C8c0S2mI.js";import{t as b}from"./notify-DgMKgZZW.js";import{t as x}from"./openui-utils-DawGoQNp.js";var S=u(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),C=u(`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`}]]),w=u(`file-code`,[[`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 12.5 8 15l2 2.5`,key:`1tg20x`}],[`path`,{d:`m14 12.5 2 2.5-2 2.5`,key:`yinavb`}]]),T=e(t(),1),E=(0,T.createContext)(void 0),D=r(),O=(0,T.createContext)({animateIn:!0,variant:`soft`}),k=(0,T.createContext)(()=>{});function A(...e){return t=>{for(let n of e)typeof n==`function`?n(t):n&&(n.current=t)}}var j={duration:.12,ease:o,delay:.04},M={type:`spring`,stiffness:520,damping:27,mass:.52};function N({variant:e=`soft`,align:t,animateIn:n=!1,className:r,children:o,initial:s,animate:u,exit:d,transition:f,layout:p,...m}){let h=c()??!1,g=(0,T.useContext)(E),_=t??g??`start`,v=(0,T.useMemo)(()=>({align:_,animateIn:n,variant:e}),[n,_,e]);return(0,D.jsx)(O.Provider,{value:v,children:(0,D.jsx)(i.div,{"data-slot":`message-bubble`,"data-align":_,"data-variant":e,layout:p,initial:s??!1,animate:u,exit:d??(h?{opacity:0}:{opacity:0,y:-3,scale:.99}),transition:f??(h?{duration:.12}:a),className:l(`group/bubble flex w-full flex-col`,_===`end`?`items-end`:`items-start`,r),...m,children:o})})}function P(e,t){return l(`relative z-0 min-w-9 max-w-[82%] rounded-2xl px-3.5 py-2.5 text-sm leading-6 text-foreground`,`[&_a]:font-medium [&_a]:underline [&_a]:underline-offset-4 [&_code]:rounded [&_code]:bg-background/60 [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.9em] [&_ol]:my-2 [&_ol]:list-decimal [&_ol]:pl-5 [&_p+p]:mt-2 [&_pre]:my-2 [&_pre]:overflow-x-auto [&_pre]:rounded-xl [&_pre]:bg-background/60 [&_pre]:p-3 [&_ul]:my-2 [&_ul]:list-disc [&_ul]:pl-5`,e===`solid`&&`text-background`,e===`ghost`&&`w-full max-w-none rounded-none px-0 py-0`,e===`danger`&&`text-destructive`,t&&`cursor-pointer text-left outline-none transition-[background-color,color,transform] duration-150 hover:brightness-[0.98] focus-visible:ring-2 focus-visible:ring-ring active:scale-[0.99]`)}function F(e,t){return l(`pointer-events-none absolute inset-0 -z-10 rounded-[inherit]`,t===`end`?`origin-bottom-right`:`origin-bottom-left`,e===`solid`&&`bg-foreground`,e===`soft`&&`bg-muted`,e===`tint`&&`bg-primary/10`,e===`outline`&&`border border-border/70 bg-background`,e===`danger`&&`bg-destructive/10`)}function I({render:e,className:t,children:n,ref:r,...s}){let u=c()??!1,{align:d=`start`,animateIn:f,variant:p}=(0,T.useContext)(O),[m,h]=(0,T.useState)(0),g=(0,T.useCallback)(()=>h(e=>e+1),[]),_=e?.type===`button`||e?.type===`a`,v=l(P(p,_),t),y=(0,D.jsxs)(D.Fragment,{children:[p===`ghost`?null:(0,D.jsx)(i.span,{"aria-hidden":`true`,layout:!u&&`size`,layoutDependency:m,initial:f&&!u?{opacity:0,scale:.92}:!1,animate:{opacity:1,scale:1},transition:u?{duration:0}:{opacity:{duration:.12,ease:o},scale:M,layout:a},className:F(p,d)}),(0,D.jsx)(k.Provider,{value:g,children:(0,D.jsx)(i.div,{initial:f?{opacity:0}:!1,animate:{opacity:1},transition:u?{duration:.12,ease:o}:j,className:`relative`,children:n})})]});if(e){let t=e;return(0,T.cloneElement)(t,{...s,ref:A(t.props.ref,r),className:l(v,t.props.className),children:y,"data-slot":`message-bubble-content`})}return(0,D.jsx)(`div`,{ref:r,"data-slot":`message-bubble-content`,className:v,...s,children:y})}function ee({item:e}){return(0,D.jsxs)(`div`,{"data-slot":`preview-rail-card`,className:`rounded-2xl border border-border bg-card p-4 shadow-sm`,children:[(0,D.jsx)(`p`,{"data-slot":`preview-rail-title`,className:`font-medium text-card-foreground`,children:e.label}),e.description?(0,D.jsx)(`div`,{"data-slot":`preview-rail-description`,className:`mt-1 text-sm leading-6 text-muted-foreground`,children:e.description}):null]})}function L({items:e,label:t=`Section navigation`,orientation:n=`vertical`,activeId:r,defaultActiveId:u,onActiveChange:d,onItemSelect:p,renderPreview:m,showPreview:h=!0,previewSide:g=`after`,highlightActive:_=!1,itemSize:v=24,children:y,className:b,railClassName:x,previewContainerClassName:S,previewClassName:C}){let w=(0,T.useId)(),E=c(),O=f(),[k,A]=(0,T.useState)(u??e[0]?.id??``),[j,M]=(0,T.useState)(null),[N,P]=(0,T.useState)(null),F=r??k,I=e.some(e=>e.id===F)?F:e[0]?.id??``,L=j??N??``,R=L||(_?I:``),z=e.findIndex(e=>e.id===R),B=e.length?`repeat(${e.length}, ${v}px)`:void 0,V=n===`horizontal`,H=e=>{r===void 0&&A(e),d?.(e)};return(0,D.jsxs)(i.div,{layoutRoot:!0,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||P(null)},className:l(`isolate relative flex w-full overflow-visible`,V?`min-h-64 flex-col items-center justify-center`:`min-h-80`,b),children:[(0,D.jsx)(`nav`,{"aria-label":t,onPointerLeave:()=>M(null),style:V?{gridTemplateColumns:B}:{gridTemplateRows:B},className:l(`relative z-10 grid shrink-0`,V?`h-12 w-fit max-w-full self-center justify-center`:`w-12 content-center`,x),children:e.map((e,t)=>{let n=e.id===I,r=e.id===R,o=z<0?1/0:Math.abs(t-z),s=r?1:o===1?.68:o===2?.44:.25,c=(0,D.jsx)(D.Fragment,{children:(0,D.jsx)(i.span,{"data-slot":`preview-rail-tick`,"aria-hidden":`true`,animate:V?{scaleY:s}:{scaleX:s},transition:E?{duration:0}:a,className:l(`block bg-current`,V?`h-12 w-0.5 origin-bottom`:`h-0.5 w-12 origin-left`,r?`text-foreground`:void 0)})}),u=l(`relative flex text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background`,V?`h-12 w-6 items-end justify-center`:`h-6 w-12 items-center`),d=V?{width:v}:{height:v},f=()=>{O&&M(e.id)},m=t=>{t.matches(`:focus-visible`)&&P(e.id)},h=()=>{H(e.id),p?.(e)};return e.href?(0,D.jsx)(`a`,{"data-slot":`preview-rail-item`,href:e.href,target:e.target,rel:e.rel??(e.target===`_blank`?`noreferrer noopener`:void 0),"aria-label":e.ariaLabel??e.label,"aria-current":n?`page`:void 0,onPointerEnter:f,onMouseEnter:f,onPointerDown:()=>P(null),onFocus:e=>m(e.currentTarget),onClick:h,style:d,className:u,children:c},e.id):(0,D.jsx)(`button`,{"data-slot":`preview-rail-item`,type:`button`,"aria-label":e.ariaLabel??e.label,"aria-current":n?`location`:void 0,onPointerEnter:f,onMouseEnter:f,onPointerDown:()=>P(null),onFocus:e=>m(e.currentTarget),onClick:h,style:d,className:u,children:c},e.id)})}),h?(0,D.jsx)(`div`,{"aria-hidden":`true`,style:V?{gridTemplateColumns:B}:{gridTemplateRows:B},className:l(`pointer-events-none absolute z-50 grid`,V?`top-1/2 left-1/2 h-5 w-fit max-w-full -translate-x-1/2 -translate-y-1/2 justify-center`:g===`before`?`inset-y-0 right-16 left-4 content-center`:`inset-y-0 right-4 left-16 content-center`,S),children:e.map(e=>(0,D.jsx)(`div`,{style:V?{width:v}:{height:v},className:l(`relative flex items-center`,V?`justify-center`:void 0),children:(0,D.jsx)(s,{mode:`wait`,initial:!1,children:e.id===L?(0,D.jsx)(i.div,{initial:E?{opacity:0}:{opacity:0,y:4,filter:`blur(6px)`},animate:E?{opacity:1}:{opacity:1,y:0,filter:`blur(0px)`},exit:E?{opacity:0}:{opacity:0,y:-2,filter:`blur(4px)`,transition:{duration:.12,ease:o}},transition:{duration:E?0:.18,ease:o},className:l(V?`absolute bottom-12 left-1/2 w-72 -translate-x-1/2`:l(`w-full max-w-sm`,g===`before`&&`ml-auto`),C),children:(0,D.jsx)(i.div,{layoutId:`preview-rail-card-${w}`,transition:E?{duration:0}:a,children:m?m(e):(0,D.jsx)(ee,{item:e})})},e.id):null})},e.id))}):null,y?(0,D.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1`,children:y}):null]})}var R=56,z=88;function B(e,t){if(e.length<=t)return e;let n=e.slice(0,t),r=n.lastIndexOf(` `);return`${n.slice(0,r>t*.65?r:t).trim()}…`}function V(e){return((e.querySelector(`[data-slot="message-bubble-content"]`)??e.querySelector(`[data-slot="message-content"]`)??e).textContent??``).replace(/\s+/g,` `).trim()}function H(e,t){let n=V(e);if(!n)return{label:`Message`,description:void 0};if(n.length<=R){let e=t?V(t):``;return{label:n,description:e?B(e,z):void 0}}let r=n.slice(0,R).lastIndexOf(` `),i=r>R*.65?r:R,a=`${n.slice(0,i).trim()}…`,o=t?V(t):n.slice(i).trim();return{label:a,description:o?B(o,z):void 0}}function te({navigation:e,followThreshold:t,contentRef:n,viewportRef:r,reduce:i,smooth:a,scrollToEnd:o,setFollowing:s,markProgrammaticScroll:c}){let l=(0,T.useRef)(void 0),u=(0,T.useRef)(new WeakMap),d=(0,T.useRef)(0),f=(0,T.useRef)(new Map),[p,m]=(0,T.useState)([]),[h,g]=(0,T.useState)(``),[_,v]=(0,T.useState)(!1),y=(0,T.useCallback)(()=>{if(e!==`rail`)return;let n=r.current,i=[...f.current.entries()];if(!n||i.length===0)return;let a=n.getBoundingClientRect();if(n.scrollTop<=t){let e=i[0]?.[0]??``;g(t=>t===e?t:e);return}if(n.scrollHeight-n.scrollTop-n.clientHeight<=t){let e=i.at(-1)?.[0]??``;g(t=>t===e?t:e);return}let o=a.top+a.height/2,s=i[0]?.[0]??``,c=1/0;for(let[e,t]of i){let n=t.getBoundingClientRect(),r=Math.abs(n.top+n.height/2-o);r<c&&(c=r,s=e)}g(e=>e===s?e:s)},[t,e,r]),b=(0,T.useCallback)(()=>{if(e!==`rail`)return;let t=n.current,i=r.current;if(!t||!i)return;let a=Array.from(t.querySelectorAll(`[data-slot="message"]`)),o=new Map,s=a.map((e,t)=>{let n=u.current.get(e);n||(d.current+=1,n=`message-rail-${d.current}`,u.current.set(e,n)),o.set(n,e);let r=e.dataset.from??`conversation`,i=H(e,r===`user`?a.slice(t+1).find(e=>e.dataset.from===`assistant`):void 0);return{id:n,label:i.label,description:i.description,ariaLabel:`Go to ${r} message ${t+1} of ${a.length}`}});f.current=o,m(e=>e.length===s.length&&e.every((e,t)=>e.id===s[t]?.id&&e.label===s[t]?.label&&e.description===s[t]?.description&&e.ariaLabel===s[t]?.ariaLabel)?e:s),v(i.scrollHeight>i.clientHeight+1&&a.length>1)},[n,e,r]),x=(0,T.useCallback)(()=>{e===`rail`&&(l.current&&cancelAnimationFrame(l.current),l.current=requestAnimationFrame(()=>{b(),y()}))},[e,b,y]);return(0,T.useEffect)(()=>{if(e!==`rail`){f.current.clear(),m([]),v(!1);return}let t=n.current,i=r.current;if(!t||!i)return;x();let a=typeof MutationObserver>`u`?null:new MutationObserver(x);a?.observe(t,{childList:!0,characterData:!0,subtree:!0});let o=typeof ResizeObserver>`u`?null:new ResizeObserver(x);return o?.observe(t),o?.observe(i),()=>{a?.disconnect(),o?.disconnect()}},[n,e,x,r]),(0,T.useEffect)(()=>()=>{l.current&&cancelAnimationFrame(l.current)},[]),{activeRailId:h,railItems:p,railOverflowing:_,scheduleRailSync:x,scrollToRailItem:(0,T.useCallback)(e=>{let t=r.current,n=f.current.get(e.id);if(!t||!n)return;let l=p.at(-1)?.id===e.id;if(g(e.id),l){s(!0),o(i||!a?`auto`:`smooth`);return}s(!1),c(i||!a?`auto`:`smooth`);let u=t.getBoundingClientRect(),d=n.getBoundingClientRect(),m=t.scrollTop+d.top-u.top-(t.clientHeight-d.height)/2,h=i||!a?`auto`:`smooth`;typeof t.scrollTo==`function`?t.scrollTo({top:m,behavior:h}):t.scrollTop=m},[c,p,i,o,s,a,r])}}function U({followOutput:e=!0,followThreshold:t=56,smooth:n=!0,onFollowChange:r,label:i=`Conversation`,busy:a,navigation:o,navigationLabel:s=`Message navigation`,viewportClassName:u,contentClassName:d,railClassName:f,viewportRef:p,viewportProps:m,contentProps:h,className:g,children:_,...v}){let y=c()??!1,b=(0,T.useRef)(null),x=(0,T.useRef)(null),S=(0,T.useRef)(e),C=(0,T.useRef)(!1),w=(0,T.useRef)(void 0),E=(0,T.useRef)(void 0),{onScroll:O,onWheel:k,onTouchStart:A,onKeyDown:j,...M}=m??{},N=(0,T.useCallback)(e=>{b.current=e,typeof p==`function`?p(e):p&&(p.current=e)},[p]),P=(0,T.useCallback)(e=>{S.current!==e&&(S.current=e,r?.(e))},[r]),F=(0,T.useCallback)(e=>{C.current=!0,w.current&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{C.current=!1},e===`smooth`?320:0)},[]),I=(0,T.useCallback)(e=>{let t=b.current;t&&(F(e),typeof t.scrollTo==`function`?t.scrollTo({top:t.scrollHeight,behavior:e}):t.scrollTop=t.scrollHeight)},[F]),{activeRailId:ee,railItems:R,railOverflowing:z,scheduleRailSync:B,scrollToRailItem:V}=te({navigation:o,followThreshold:t,contentRef:x,viewportRef:b,reduce:y,smooth:n,scrollToEnd:I,setFollowing:P,markProgrammaticScroll:F}),H=(0,T.useEffectEvent)(B),U=(0,T.useEffectEvent)(I),W=(0,T.useCallback)(()=>{let e=b.current;if(!e||C.current)return;let n=e.scrollHeight-e.scrollTop-e.clientHeight;P(n<=t),B()},[t,B,P]),G=(0,T.useCallback)(()=>{C.current=!1},[]);(0,T.useLayoutEffect)(()=>{if(S.current=e,e)return E.current=requestAnimationFrame(()=>U(`auto`)),()=>{E.current&&cancelAnimationFrame(E.current)}},[e]),(0,T.useEffect)(()=>{let t=x.current;if(!t||typeof ResizeObserver>`u`)return;let r=new ResizeObserver(()=>{H(),!(!e||!S.current)&&U(y||!n?`auto`:`smooth`)});return r.observe(t),()=>r.disconnect()},[e,y,n]),(0,T.useEffect)(()=>()=>{w.current&&window.clearTimeout(w.current),E.current&&cancelAnimationFrame(E.current)},[]);let K=(0,D.jsx)(`section`,{ref:N,"aria-label":i,...M,onScroll:e=>{W(),O?.(e)},onWheel:e=>{G(),k?.(e)},onTouchStart:e=>{G(),A?.(e)},onKeyDown:e=>{[`ArrowUp`,`PageUp`,`Home`].includes(e.key)&&G(),j?.(e)},className:l(`h-full overflow-y-auto overscroll-contain outline-none [overflow-anchor:none] focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring`,o===`rail`?`[-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`:`[scrollbar-gutter:stable]`,u,o===`rail`&&z&&`pr-10`),children:(0,D.jsx)(`div`,{ref:x,role:`log`,"aria-live":a?`off`:`polite`,"aria-relevant":`additions text`,"aria-busy":a,className:d,...h,children:_})});return(0,D.jsx)(`div`,{"data-slot":`message-scroller`,className:l(`min-h-0`,g),...v,children:o===`rail`?(0,D.jsx)(L,{items:z?R:[],label:s,activeId:ee,onItemSelect:V,previewSide:`before`,highlightActive:!0,itemSize:14,className:`h-full min-h-0 overflow-hidden`,previewContainerClassName:`right-8 left-3`,previewClassName:`mr-1 w-64 max-w-full [&_[data-slot=preview-rail-card]]:h-20 [&_[data-slot=preview-rail-card]]:overflow-hidden [&_[data-slot=preview-rail-card]]:p-3 [&_[data-slot=preview-rail-title]]:line-clamp-1 [&_[data-slot=preview-rail-title]]:text-xs [&_[data-slot=preview-rail-title]]:leading-4 [&_[data-slot=preview-rail-description]]:line-clamp-2 [&_[data-slot=preview-rail-description]]:text-xs [&_[data-slot=preview-rail-description]]:leading-4`,railClassName:l(`absolute inset-y-3 right-1 w-7 content-center py-1 [&_[data-slot=preview-rail-item]]:w-7 [&_[data-slot=preview-rail-item]]:justify-end [&_[data-slot=preview-rail-tick]]:h-px [&_[data-slot=preview-rail-tick]]:w-4 [&_[data-slot=preview-rail-tick]]:origin-right`,z?`pointer-events-auto opacity-100`:`pointer-events-none opacity-0`,f),children:K}):K})}var W=(0,T.createContext)({from:`assistant`}),G={type:`spring`,stiffness:480,damping:32,mass:.62};function K({from:e,animateIn:t=!1,children:n,className:r,initial:a,animate:o,transition:s,exit:u,style:d,...f}){let p=c()??!1,m=(0,T.useMemo)(()=>({from:e}),[e]);return(0,D.jsx)(E.Provider,{value:e===`user`?`end`:`start`,children:(0,D.jsx)(W.Provider,{value:m,children:(0,D.jsx)(i.article,{"data-slot":`message`,"data-from":e,"aria-label":f[`aria-label`]??`${e} message`,initial:a??(t&&!p?{opacity:0,transform:`translateY(8px) scale(0.95)`}:!1),animate:o??(t&&!p?{opacity:1,transform:`translateY(0px) scale(1)`}:{opacity:1}),exit:u??(p?{opacity:0}:{opacity:0,transform:`translateY(-3px) scale(0.99)`}),transition:s??(p?{duration:.12}:G),style:{transformOrigin:e===`user`?`100% 100%`:`0% 100%`,...d},className:l(`group/message flex w-full items-start gap-2`,e===`user`?`flex-row-reverse`:`flex-row`,r),...f,children:n})})})}function ne({className:e,...t}){let{from:n}=(0,T.useContext)(W);return(0,D.jsx)(`div`,{"data-slot":`message-content`,className:l(`flex min-w-0 flex-1 flex-col gap-1.5`,n===`user`?`items-end`:`items-start`,e),...t})}var re=e(n(),1);function ie({open:e,onClose:t,images:n,initialIndex:r=0}){let[i,a]=(0,T.useState)(r),o=n.length>1;(0,T.useEffect)(()=>{e&&a(r)},[e,r]);let s=(0,T.useCallback)(e=>{e?.stopPropagation(),a(e=>e>0?e-1:n.length-1)},[n.length]),c=(0,T.useCallback)(e=>{e?.stopPropagation(),a(e=>e<n.length-1?e+1:0)},[n.length]),u=(0,T.useEffectEvent)(e=>{switch(e.key){case`ArrowLeft`:e.preventDefault(),o&&s();break;case`ArrowRight`:e.preventDefault(),o&&c()}});(0,T.useEffect)(()=>{if(!e)return;let t=e=>u(e);return window.addEventListener(`keydown`,t,!0),()=>window.removeEventListener(`keydown`,t,!0)},[e]),(0,T.useEffect)(()=>{if(!e)return;let t=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=t}},[e]);let d=(0,T.useRef)(null),f=(0,T.useEffectEvent)(e=>{d.current&&e.target===d.current&&t()});if((0,T.useEffect)(()=>{if(!e)return;let t=d.current;if(!t)return;t.open||t.showModal();let n=e=>f(e);return t.addEventListener(`click`,n),()=>{t.removeEventListener(`click`,n),t.open&&t.close()}},[e]),typeof document>`u`||!e)return null;let p=n[i]??n[0];return p?.url?(0,re.createPortal)((0,D.jsxs)(`dialog`,{ref:d,"aria-label":`Image viewer`,onClose:()=>t(),className:`fixed inset-0 z-50 m-0 flex h-full max-h-none w-full max-w-none items-center justify-center border-0 bg-black/90 p-0 backdrop:bg-transparent`,children:[(0,D.jsx)(`button`,{type:`button`,onClick:t,"aria-label":`Close fullscreen (Esc)`,className:`absolute top-4 right-4 z-10 inline-flex size-9 items-center justify-center rounded-full bg-black/50 text-white transition-colors hover:bg-black/70`,children:(0,D.jsx)(v,{className:`size-5`})}),o&&(0,D.jsx)(`button`,{type:`button`,onClick:s,"aria-label":`Previous image (←)`,className:`absolute top-1/2 left-4 z-10 inline-flex size-10 -translate-y-1/2 items-center justify-center rounded-full bg-black/50 text-white transition-colors hover:bg-black/70`,children:(0,D.jsx)(S,{className:`size-6`})}),(0,D.jsx)(`img`,{src:p.url,alt:p.filename??`Image preview`,className:`max-h-[85vh] max-w-[90vw] object-contain select-none`,onClick:e=>e.stopPropagation(),draggable:!1}),o&&(0,D.jsx)(`button`,{type:`button`,onClick:c,"aria-label":`Next image (→)`,className:`absolute top-1/2 right-4 z-10 inline-flex size-10 -translate-y-1/2 items-center justify-center rounded-full bg-black/50 text-white transition-colors hover:bg-black/70`,children:(0,D.jsx)(m,{className:`size-6`})}),o&&(0,D.jsxs)(`div`,{className:`absolute bottom-6 left-1/2 flex -translate-x-1/2 flex-col items-center gap-3`,children:[(0,D.jsx)(`div`,{className:`flex gap-2`,children:n.map((e,t)=>(0,D.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),a(t)},"aria-label":`Go to image ${t+1}`,className:l(`size-2 rounded-full transition-all`,t===i?`scale-125 bg-white`:`bg-white/40 hover:bg-white/60`)},e.url))}),(0,D.jsxs)(`span`,{className:`text-sm text-white/70`,children:[i+1,` / `,n.length]})]})]}),document.body):null}function ae(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KB`:`${(e/1048576).toFixed(1)} MB`}function oe(e,t){if(t)return`image`;let n=e.split(`.`).pop()?.toLowerCase();return[`js`,`ts`,`jsx`,`tsx`,`py`,`rb`,`go`,`rs`,`java`,`kt`,`swift`,`c`,`cpp`,`h`,`hpp`,`cs`,`php`].includes(n||``)?`code`:[`json`,`yaml`,`yml`,`xml`].includes(n||``)?`data`:`text`}function se(e){switch(e){case`image`:return(0,D.jsx)(_,{className:`size-4 text-muted-foreground`});case`code`:return(0,D.jsx)(w,{className:`size-4 text-muted-foreground`});case`data`:return(0,D.jsx)(C,{className:`size-4 text-muted-foreground`});default:return(0,D.jsx)(g,{className:`size-4 text-muted-foreground`})}}function ce({id:e,filename:t,size:n,isImage:r,url:i,onRemove:a,className:o,display:s=`chip`,enableImagePreview:c=!0}){let[u,d]=(0,T.useState)(!1),[f,p]=(0,T.useState)(!1),m=oe(t,r),h=s===`image-only`&&r&&!!i,g=!!(c&&r&&i),_=e=>{e?.stopPropagation(),p(!0)};return(0,D.jsxs)(`div`,{className:l(`relative rounded-[calc(var(--an-input-border-radius)-var(--an-context-padding))] bg-muted/50`,h?`flex size-10 items-center justify-center`:`flex max-w-[200px] min-w-[120px] items-center gap-2 py-1 pr-2 pl-1`,o),onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),children:[h?(0,D.jsx)(`div`,{className:l(`size-8 shrink-0 overflow-hidden rounded-[calc(var(--an-input-border-radius)-var(--an-context-padding)-2px)]`,g&&`cursor-pointer`),onClick:g?_:void 0,role:g?`button`:void 0,tabIndex:g?0:void 0,"aria-label":g?`Preview ${t}`:void 0,onKeyDown:g?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),_())}:void 0,children:(0,D.jsx)(`img`,{src:i,alt:t,className:`h-full w-full object-cover`})}):(0,D.jsxs)(D.Fragment,{children:[r&&i?(0,D.jsx)(`div`,{className:l(`w-8 shrink-0 self-stretch overflow-hidden rounded-[calc(var(--an-input-border-radius)-var(--an-context-padding)-2px)]`,g&&`cursor-pointer`),onClick:g?_:void 0,role:g?`button`:void 0,tabIndex:g?0:void 0,"aria-label":g?`Preview ${t}`:void 0,onKeyDown:g?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),_())}:void 0,children:(0,D.jsx)(`img`,{src:i,alt:t,className:`aspect-square h-full w-full object-cover`})}):(0,D.jsx)(`div`,{className:`flex w-8 shrink-0 items-center justify-center self-stretch rounded-[calc(var(--an-input-border-radius)-var(--an-context-padding)-2px)] bg-muted`,children:se(m)}),(0,D.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,D.jsx)(`span`,{className:`truncate text-sm font-medium text-foreground`,title:t,children:t}),n!==void 0&&(0,D.jsx)(`span`,{className:`text-[0.625rem] text-muted-foreground`,children:ae(n)})]})]}),a&&(0,D.jsx)(`button`,{onClick:e=>{e.stopPropagation(),a()},"aria-label":`Remove ${t}`,className:`absolute -top-1.5 -right-1.5 z-10 flex size-4 items-center justify-center rounded-full border border-border bg-background text-muted-foreground transition-[opacity,transform] duration-150 ease-out hover:text-foreground active:scale-[0.97] ${u?`opacity-100`:`opacity-0`}`,type:`button`,children:(0,D.jsx)(v,{className:`size-3`})}),g&&i&&(0,D.jsx)(ie,{open:f,onClose:()=>p(!1),images:[{id:e,url:i,filename:t}]})]})}function q(e){return typeof e==`object`&&!!e}function J(e){return q(e)&&e.type===`text`&&typeof e.text==`string`}function le(e){return q(e)&&e.type===`error`&&typeof e.message==`string`}function ue(e){return q(e)&&e.type===`payload`&&typeof e.kind==`string`&&typeof e.title==`string`}function Y(e){if(!q(e))return!1;let t=e.type;return t===`dynamic-tool`||typeof t==`string`&&t.startsWith(`tool-`)}function de(e,t){let n=[];for(let t of e)J(t)&&n.push(t.text);return n.join(t)}function X(e){return typeof e==`object`&&!!e}function fe(e){if(!X(e))return null;let t=e.type;if(typeof t!=`string`)return null;if(t===`image`){let t=e;return t.url??t.image??null}if(t===`data-image`)return e.data?.url??null;if(t===`file`){let t=e;if(t.mimeType?.startsWith(`image/`)){if(t.url)return t.url;if(t.data)return`data:${t.mimeType};base64,${t.data}`}}return null}function pe(e){if(!X(e)||e.type!==`file`)return null;let t=e,n=t.filename||t.name||t.fileName||`Attachment`;return t.mimeType?.startsWith(`image/`)??!1?null:{filename:n,size:t.size}}var me=(0,T.memo)(function({message:e,className:t,enableImagePreview:n=!0}){let[r,i]=(0,T.useState)(null),a=(e.parts?.filter(J)??[]).map(e=>e.text).join(``),o=[],s=[];for(let t of e.parts??[]){let e=fe(t);e&&o.push(e);let n=pe(t);n&&s.push(n)}if(X(e)&&Array.isArray(e.experimental_attachments))for(let t of e.experimental_attachments)t.contentType?.startsWith(`image/`)&&t.url&&o.push(t.url);if(!a&&o.length===0&&s.length===0)return null;let c=o.map((t,n)=>({id:`${e.id}-img-${n}`,url:t,filename:`image-${n+1}`}));return(0,D.jsxs)(`div`,{className:l(`flex flex-col items-end gap-1`,t),children:[o.length>0&&o.map((e,t)=>(0,D.jsx)(`div`,{className:l(`max-w-[200px] rounded-an-message bg-an-foreground/4 p-1.5`,n&&`cursor-pointer`),onClick:n?()=>i(t):void 0,role:n?`button`:void 0,tabIndex:n?0:void 0,onKeyDown:n?e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i(t))}:void 0,children:(0,D.jsx)(`img`,{src:e,alt:`attachment`,className:`block max-h-[120px] max-w-[184px] rounded-an-message-inner object-cover`})},e)),n&&c.length>0&&(0,D.jsx)(ie,{open:r!==null,onClose:()=>i(null),images:c,initialIndex:r??0}),s.length>0&&(0,D.jsx)(`div`,{className:`flex flex-col items-end gap-2`,children:s.map((e,t)=>(0,D.jsx)(ce,{id:`${e.filename}-${t}`,filename:e.filename,size:e.size},`${e.filename}-${e.size}`))}),a&&(0,D.jsx)(`div`,{className:`ms-[70px] max-w-[calc(95%-40px)]`,children:(0,D.jsx)(`div`,{className:`rounded-an-message bg-an-user-message-bg px-3.5 py-1.5 text-sm text-an-user-message-text transition-colors`,children:(0,D.jsx)(`p`,{className:`leading-5 wrap-break-word whitespace-pre-wrap`,children:a})})})]})}),he=(0,T.memo)(function({title:e=`Something went wrong`,message:t,className:n}){return(0,D.jsx)(`div`,{className:l(`flex justify-start`,n),children:(0,D.jsxs)(`div`,{className:`rounded-[8px] border border-red-500/30 bg-red-500/10 px-4 py-2.5 text-sm text-an-foreground`,children:[(0,D.jsx)(`div`,{className:`font-medium text-an-foreground`,children:e}),(0,D.jsx)(`div`,{className:`mt-0.5 text-an-foreground-muted`,children:t})]})})});function ge(e){if(typeof e==`string`)return e;if(e===void 0)return``;try{return JSON.stringify(e,null,2)??``}catch{return String(e)}}function _e({part:e}){let t=ge(e.payload);return(0,D.jsxs)(`section`,{"data-payload-kind":e.kind,className:`w-full min-w-0 overflow-hidden rounded-xl border border-border/60 bg-muted/40 text-sm`,children:[(0,D.jsx)(`div`,{className:`border-b border-border/50 px-3 py-2 text-xs font-medium text-muted-foreground`,children:e.title}),e.text?(0,D.jsx)(`pre`,{className:`m-0 whitespace-pre-wrap break-words p-3 font-mono text-xs leading-5 text-foreground/80`,children:e.text}):null,t?(0,D.jsxs)(`details`,{open:!0,className:`border-t border-border/50 px-3 py-2`,children:[(0,D.jsx)(`summary`,{className:`cursor-pointer text-xs font-medium text-muted-foreground`,children:`Payload`}),(0,D.jsx)(`pre`,{className:`m-0 mt-2 max-w-full whitespace-pre-wrap break-words font-mono text-xs leading-5 text-foreground/70`,children:t})]}):null]})}function ve(e){return typeof e==`object`&&!!e}function Z(e){if(typeof e!=`string`)return e;let t=e.trim();if(!t)return e;try{let n=JSON.parse(t);return ve(n)||Array.isArray(n)?n:e}catch{return e}}function ye(e){if(!ve(e)||typeof e.type!=`string`||!e.type.startsWith(`tool-`))return e;let t=Z(e.input),n=Z(e.output),r=Z(e.result),i=t!==e.input,a=n!==e.output,o=r!==e.result;if(!i&&!a&&!o)return e;let s={...e};return i&&(s.input=t),a&&(s.output=n),o&&(s.result=r),s}function be(e){let t=!1,n=e.map(e=>{let n=ye(e);return n!==e&&(t=!0),n});return t?n:e}var xe=new Intl.DateTimeFormat(`en-US`,{hour:`numeric`,minute:`2-digit`,hour12:!0}),Se=new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`});function Ce(e){let t=new Date;return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()?xe.format(e):Se.format(e)}function we({text:e,onCopied:t}){let[n,r]=(0,T.useState)(!1),i=(0,T.useRef)(null);return(0,T.useEffect)(()=>()=>{i.current&&window.clearTimeout(i.current)},[]),(0,D.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-label":n?`Copied`:`Copy message`,onClick:async()=>{try{await navigator.clipboard.writeText(e),r(!0),i.current&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>{r(!1),i.current=null},2e3),b.success(`Copied to clipboard`),t?.()}catch{b.error(`Failed to copy to clipboard`)}},onPointerDown:e=>{e.stopPropagation()},onMouseDown:e=>e.stopPropagation(),className:l(`flex size-6 items-center justify-center rounded-md transition-[background-color,opacity,transform] duration-150 ease-out active:scale-[0.97]`,`bg-transparent opacity-50 hover:bg-an-foreground/10 hover:opacity-100`),children:(0,D.jsxs)(`div`,{className:`relative size-3.5`,children:[(0,D.jsx)(h,{className:l(`absolute inset-0 h-3.5 w-3.5 text-an-foreground-muted transition-[opacity,transform] duration-150 ease-out`,n?`scale-50 opacity-0`:`scale-100 opacity-100`)}),(0,D.jsx)(p,{className:l(`absolute inset-0 h-3.5 w-3.5 text-an-foreground-muted transition-[opacity,transform] duration-150 ease-out`,n?`scale-100 opacity-100`:`scale-50 opacity-0`)})]})})}function Q({text:e,timestamp:t,heightClass:n,hoverClass:r,isVisible:i,alignClass:a,onCopied:o}){return(0,D.jsxs)(`div`,{className:l(`pointer-events-none flex items-center gap-1 pt-1 text-xs text-an-foreground-muted/70 opacity-0 transition-opacity duration-100`,n,a,r,i&&`pointer-events-auto opacity-100`),onMouseDown:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[t&&(0,D.jsx)(`span`,{children:t}),e&&(0,D.jsx)(we,{text:e,onCopied:o})]})}(0,T.memo)(function(e){let{message:t,UserMessageComponent:n,userMessageClassName:r,onCopied:i,display:a}=e,{enableImagePreview:o,showCopyToolbar:s,isMounted:c,isCopyVisible:l}=a,u=de(t.parts??[],``),d=(t.parts??[]).length>0;if(!u&&!d)return null;let f=t?.createdAt,p=`user-${t.id}`,m=c&&f?Ce(new Date(f)):void 0;return(0,D.jsxs)(`div`,{className:`group/user-message`,children:[(0,D.jsx)(n,{message:t,className:r,enableImagePreview:o}),(s&&!!u||!!m)&&(0,D.jsx)(Q,{text:s?u:``,timestamp:m,heightClass:`h-[28px]`,hoverClass:`group-hover/user-message:opacity-100 group-hover/user-message:pointer-events-auto`,isVisible:l,alignClass:`justify-end`,onCopied:()=>i(p)})]})}),(0,T.memo)(function(e){let{assistantMsgs:t,turnKey:n,ToolRendererComponent:r,TextRendererComponent:i,toolRenderers:a,onOpenUIAction:o,onOpenUIArtifactReady:s,onOpenArtifact:c,onCopied:l,stream:u,copy:d,display:f}=e,{isLast:p,isStreaming:m}=u,{enabled:h,isVisible:g}=d,{suppressQuestionTool:_}=f,v=de(t.flatMap(e=>e.parts??[]),`
|
|
3
|
+
|
|
4
|
+
`),y=m&&p,b=h&&!!v.trim()&&!y,x=`assistant-${n}-all`,S=h?v:``;return(0,D.jsxs)(`div`,{className:`group/assistant-turn`,children:[(0,D.jsx)(`div`,{className:`flex flex-col gap-3`,children:t.map((e,n)=>{let l=p&&n===t.length-1;return(0,D.jsx)(ke,{msg:e,isLast:l,isStreaming:m,suppressQuestionTool:_,ToolRendererComponent:r,TextRendererComponent:i,toolRenderers:a,onOpenUIAction:o,onOpenUIArtifactReady:s,onOpenArtifact:c},e.id)})}),(b||g)&&(0,D.jsx)(Q,{text:S,heightClass:`h-[48px] flex items-start w-full`,hoverClass:`group-hover/assistant-turn:opacity-100 group-hover/assistant-turn:pointer-events-auto`,isVisible:g,alignClass:`justify-start`,onCopied:()=>l(x)})]})});var Te=`tool-call:`,Ee=`unkeyed-tool:`;function De(e,t,n){return t.toolCallId?`${Te}${t.toolCallId}`:`${Ee}${e}:${t.type}:${n}`}function Oe(e,t){let{messageId:n,isLast:r,isStreaming:i,suppressQuestionTool:a,suppressTextWhenPlanWrite:o=!1,ToolRendererComponent:s,TextRendererComponent:c,toolRenderers:l,onOpenUIAction:u,onOpenUIArtifactReady:d,onOpenArtifact:f}=t,p=[],m=[],h=o&&e.some(e=>Y(e)&&e.type===`tool-PlanWrite`),g=new Set(e.filter(e=>Y(e)&&(e.type===`tool-Task`||e.type===`tool-Agent`)&&typeof e.toolCallId==`string`).map(e=>e.toolCallId)),_=new Map,v=new Set,y=new Map;for(let t of e){if(!Y(t)||t.type===`tool-TaskOutput`||!t.toolCallId||!t.toolCallId.includes(`:`))continue;let e=t.toolCallId.split(`:`)[0];g.has(e)&&(_.has(e)||_.set(e,[]),_.get(e).push(t),v.add(t.toolCallId))}let b=0;for(;b<e.length;){let t=e[b];if(Y(t)&&t.type===`tool-TaskOutput`){b++;continue}if(J(t)){let e=t.text;e&&!h&&m.push(e),b++;continue}if(le(t)){p.push((0,D.jsx)(he,{title:t.title,message:t.message},`${n}-error-${t.title}-${t.message}`)),b++;continue}if(ue(t)){p.push((0,D.jsx)(_e,{part:t},`${n}-payload-${b}`)),b++;continue}if(Y(t)){if(a&&t.type===`tool-Question`){b++;continue}if(t.toolCallId&&v.has(t.toolCallId)){b++;continue}let e=r&&i?`streaming`:void 0,o=t.toolCallId,c=(t.type===`tool-Task`||t.type===`tool-Agent`)&&o?_.get(o)||[]:void 0,u=t.toolCallId?0:y.get(t.type)??0;t.toolCallId||y.set(t.type,u+1),p.push((0,D.jsx)(s,{part:t,nestedTools:c,chatStatus:e,toolRenderers:l},De(n,t,u))),b++;continue}b++}let x=m.join(`
|
|
5
|
+
|
|
6
|
+
`);return x&&p.push((0,D.jsx)(`div`,{className:`group/assistant-text text-[0.875rem]`,children:(0,D.jsx)(c,{content:x,isStreaming:i,messageId:n,onOpenUIAction:u,onOpenUIArtifactReady:d,onOpenArtifact:f,className:`leading-relaxed [&_p]:leading-relaxed`})},`${n}-text-final`)),p}function ke({msg:e,isLast:t,isStreaming:n,suppressQuestionTool:r,ToolRendererComponent:i,TextRendererComponent:a,toolRenderers:o,onOpenUIAction:s,onOpenUIArtifactReady:c,onOpenArtifact:l}){let u=(0,T.useMemo)(()=>be(e.parts??[]),[e.parts]),d=(0,T.useMemo)(()=>Oe(u,{messageId:e.id,isLast:t,isStreaming:n,suppressQuestionTool:r,ToolRendererComponent:i,TextRendererComponent:a,toolRenderers:o,onOpenUIAction:s,onOpenUIArtifactReady:c,onOpenArtifact:l}),[u,e.id,t,n,r,i,a,o,s,c,l]);return d.length>1?(0,D.jsx)(`div`,{className:`group/assistant-turn flex flex-col gap-3`,children:d}):(0,D.jsx)(`div`,{className:`group/assistant-turn`,children:d})}function Ae(e){let t=[],n;for(let r of e){if(r.role===`user`){n&&t.push(n),n={user:r,assistants:[]};continue}if(r.role===`assistant`){if(!n||r.source===`local`){n&&t.push(n),n={assistants:[r]};continue}n.assistants.push(r)}}return n&&t.push(n),t}var je=(0,T.lazy)(()=>y(async()=>{let{GenerativeTextRenderer:e}=await import(`./openui-renderer-J3dhPpL4.js`).then(e=>e.n);return{GenerativeTextRenderer:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29])).then(({GenerativeTextRenderer:e})=>({default:e})));function Me({className:e,content:t}){return(0,D.jsx)(`div`,{className:e?`${e} whitespace-pre-wrap`:`whitespace-pre-wrap`,children:t})}function Ne(e){return(0,T.useMemo)(()=>x(e.content).some(e=>e.type===`openui`),[e.content])?(0,D.jsx)(T.Suspense,{fallback:(0,D.jsx)(Me,{className:e.className,content:e.content}),children:(0,D.jsx)(je,{...e})}):(0,D.jsx)(d,{className:e.className,content:e.content})}function $(e,t,n){if(n===0)return 0;let r=0,i=n;for(;r<i;){let n=Math.floor((r+i)/2);e[n]<=t?r=n+1:i=n}return Math.max(0,Math.min(n-1,r-1))}function Pe(e,t,n,r){let i=[0];for(let[a,o]of e.entries())i.push(i[i.length-1]+(t.get(o)??n)+(a<e.length-1?r:0));return i}function Fe({estimateSize:e,getItemKey:t,itemGap:n=0,items:r,overscan:i=1.5,renderItem:a,viewportRef:o}){let s=(0,T.useMemo)(()=>r.map((e,n)=>t(e,n)),[t,r]),c=r.length>=40,[l,u]=(0,T.useState)(()=>new Map),[d,f]=(0,T.useState)({height:0,scrollTop:0}),p=(0,T.useRef)(s),m=(0,T.useRef)(l),h=(0,T.useRef)(e),g=(0,T.useRef)(n),_=(0,T.useRef)([0]),v=(0,T.useRef)(0),y=(0,T.useRef)(new Map),b=(0,T.useRef)(new WeakMap),x=(0,T.useRef)(null),S=(0,T.useCallback)(()=>{let e=o.current;if(!e)return;let t={height:e.clientHeight,scrollTop:e.scrollTop};f(e=>e.height===t.height&&e.scrollTop===t.scrollTop?e:t)},[o]),C=(0,T.useCallback)((e,t)=>{let n=y.current.get(e);n&&n!==t&&(x.current?.unobserve(n),y.current.delete(e)),t&&(y.current.set(e,t),b.current.set(t,e),x.current?.observe(t))},[]),w=(0,T.useMemo)(()=>Pe(s,l,e,n),[e,n,s,l]);(0,T.useLayoutEffect)(()=>{S()},[r.length,S]),(0,T.useLayoutEffect)(()=>{p.current=s,m.current=l,h.current=e,g.current=n,_.current=w},[e,n,s,l,w]),(0,T.useEffect)(()=>{let e=o.current;if(!e)return;e.addEventListener(`scroll`,S,{passive:!0}),window.addEventListener(`resize`,S),S();let t;return typeof ResizeObserver<`u`&&(t=new ResizeObserver(S),t.observe(e)),()=>{e.removeEventListener(`scroll`,S),window.removeEventListener(`resize`,S),t?.disconnect()}},[S,o]);let E=(0,T.useCallback)(e=>{let t=m.current,n=t;for(let r of e){let e=b.current.get(r.target),i=r.contentRect.height;!e||i<=0||t.get(e)===i||(n===t&&(n=new Map(t)),n.set(e,i))}if(n===t)return;let r=o.current,i=p.current,a=Pe(i,n,h.current,g.current);if(r&&i.length>0){let e=_.current,t=$(e,Math.max(0,r.scrollTop),i.length),n=i[t];if(n&&t>0){let r=(a[i.indexOf(n)]??0)-(e[t]??0);r!==0&&(v.current+=r)}}m.current=n,_.current=a,u(n)},[o]);if((0,T.useLayoutEffect)(()=>{if(!c||typeof ResizeObserver>`u`)return;let e=new ResizeObserver(e=>E(e));x.current=e;for(let t of y.current.values())e.observe(t);return()=>{e.disconnect(),x.current===e&&(x.current=null)}},[c,E]),(0,T.useEffect)(()=>{let e=m.current;if(e.size===0)return;let t=new Set(s),n=new Map([...e].filter(([e])=>t.has(e)));n.size!==e.size&&(m.current=n,u(n))},[s]),(0,T.useLayoutEffect)(()=>{let e=v.current,t=o.current;!t||e===0||(t.scrollTop+=e,v.current=0,S())},[l,S,o]),!c)return(0,D.jsx)(D.Fragment,{children:r.map((e,t)=>(0,D.jsx)(T.Fragment,{children:a(e,t)},s[t]))});let O=w[w.length-1]??0,k=Math.max(e,d.height*i),A=$(w,Math.max(0,d.scrollTop-k),r.length),j=Math.min(r.length-1,$(w,d.scrollTop+d.height+k,r.length)+1);return(0,D.jsx)(`div`,{"data-rendered-turn-count":j-A+1,"data-total-turn-count":r.length,"data-virtualized-transcript":`true`,style:{height:O,position:`relative`,width:`100%`},children:r.slice(A,j+1).map((e,t)=>{let n=A+t,r=s[n];return(0,D.jsx)(`div`,{ref:e=>C(r,e),"data-virtualized-turn-index":n,style:{left:0,position:`absolute`,right:0,top:w[n]},children:a(e,n)},r)})})}export{be as a,K as c,N as d,I as f,Oe as i,ne as l,Ne as n,me as o,S as p,Ae as r,ce as s,Fe as t,U as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{f as r,o as i,r as a,u as o}from"./ease-u56MhKYS.js";import{n as s,t as c}from"./use-reduced-motion-eORd7fqW.js";import{t as l}from"./utils-Eg7xtNmV.js";import{t as u}from"./resource-helpers-Q2T0YCMO.js";import{t as d}from"./chevron-right-DrJxToLs.js";import{t as f}from"./circle-alert-CONlFReH.js";import{t as p}from"./file-text-T-NcAlZs.js";import{_ as m,f as h,g,n as _,o as v,r as y,t as b,v as x,y as S}from"./horizontal-resize-Bl3AyBJg.js";import{t as C}from"./folder-BC5p7qK7.js";import{t as w}from"./hard-drive-CHqgr7VQ.js";import{t as T}from"./workspace-path-nav-C0AQNZyy.js";import{t as E}from"./markdown-DInPmRUG.js";import{a as D,i as O,n as k,r as A}from"./skeleton-loaders-DjGv9LLA.js";var j=e(t(),1),M=n();function N(e){return null}function P(e){return null}var F={duration:.22,ease:a},I={duration:.3,ease:a};function L(e,t,n=0,r=null){return e.flatMap((i,a)=>{let o={item:i,depth:n,parentId:r,position:a+1,setSize:e.length};return i.type!==`folder`||!t.has(i.value)||!i.children?.length?[o]:[o,...L(i.children,t,n+1,i.value)]})}function R(e){let t=[];return j.Children.forEach(e,e=>{if((0,j.isValidElement)(e)){if(e.type===j.Fragment){let n=e.props;t.push(...R(n.children));return}if(e.type===N){let n=e.props;t.push({value:n.value,name:n.name,type:`folder`,icon:n.icon,disabled:n.disabled,className:n.className,children:R(n.children)});return}if(e.type===P){let n=e.props;t.push({value:n.value,name:n.name,type:`file`,icon:n.icon,disabled:n.disabled,className:n.className})}}}),t}function z({item:e,open:t,reduce:n}){return e.type===`file`?(0,M.jsx)(S,{className:`size-4`}):n?t?(0,M.jsx)(x,{className:`size-4`}):(0,M.jsx)(C,{className:`size-4`}):(0,M.jsx)(s,{initial:!1,mode:`popLayout`,children:(0,M.jsx)(r.span,{initial:{opacity:0,scale:.75,rotate:t?-8:8},animate:{opacity:1,scale:1,rotate:0},exit:{opacity:0,scale:.75,rotate:t?8:-8},transition:o,className:`absolute inset-0 grid place-items-center`,children:t?(0,M.jsx)(x,{className:`size-4`}):(0,M.jsx)(C,{className:`size-4`})},t?`open`:`closed`)})}function B({children:e,value:t,defaultValue:n=null,onValueChange:a,expandedIds:s,defaultExpandedIds:u=[],onExpandedChange:f,ariaLabel:p=`Files`,indent:m=18,className:g,classNames:_}){let v=c()??!1,[y,b]=(0,j.useState)(n),[x,S]=(0,j.useState)(u),[C,w]=(0,j.useState)(t??n),T=(0,j.useRef)(new Map),E=t===void 0?y:t,D=s??x,O=(0,j.useMemo)(()=>new Set(D),[D]),k=(0,j.useMemo)(()=>R(e),[e]),A=(0,j.useMemo)(()=>L(k,O),[O,k]),N=C!==null&&A.some(({item:e})=>e.value===C)?C:A[0]?.item.value??null;C!==N&&w(N);let P=(0,j.useCallback)(e=>{w(e);let t=T.current.get(e);t?t.focus():requestAnimationFrame(()=>T.current.get(e)?.focus())},[]),B=(0,j.useCallback)(e=>{e.disabled||(t===void 0&&b(e.value),a?.(e.value))},[a,t]),V=(0,j.useCallback)(e=>{s===void 0&&S(e),f?.(e)},[s,f]),H=(0,j.useCallback)(e=>{let t=new Set(D);t.has(e)?t.delete(e):t.add(e),V(Array.from(t))},[D,V]),U=(0,j.useCallback)((e,t)=>{let n=A.findIndex(({item:e})=>e.value===t.item.value),r=A[n-1],i=A[n+1],a=t.item.type===`folder`&&!!t.item.children?.length,o=a&&O.has(t.item.value);if(e.key===`ArrowDown`&&i)e.preventDefault(),P(i.item.value);else if(e.key===`ArrowUp`&&r)e.preventDefault(),P(r.item.value);else if(e.key===`Home`&&A[0])e.preventDefault(),P(A[0].item.value);else if(e.key===`End`&&A.at(-1))e.preventDefault(),P(A.at(-1)?.item.value??t.item.value);else if(e.key===`ArrowRight`&&a)e.preventDefault(),!o&&!t.item.disabled?H(t.item.value):i?.parentId===t.item.value&&P(i.item.value);else if(e.key===`ArrowLeft`)e.preventDefault(),a&&o&&!t.item.disabled?H(t.item.value):t.parentId&&P(t.parentId);else if(e.key===`Enter`||e.key===` `){if(e.preventDefault(),t.item.disabled)return;B(t.item),a&&H(t.item.value)}},[O,P,A,B,H]);return(0,M.jsx)(h,{role:`tree`,"aria-label":p,"aria-multiselectable":`false`,inset:0,pillClassName:`rounded-xl bg-muted`,pillContainerClassName:`inset-y-auto top-0 h-9`,className:l(`min-w-0`,g,_?.tree),children:A.map(e=>{let t=e.item.type===`folder`,n=t&&!!e.item.children?.length,a=n&&O.has(e.item.value),s=E===e.item.value;return(0,M.jsx)(r.div,{layout:!v&&`position`,initial:!v&&{opacity:0,y:-6},animate:{opacity:e.item.disabled?.42:1,y:0,transition:v?{duration:0}:{...F,delay:Math.min(e.position*.025,.1)}},transition:v?{duration:0}:i,children:(0,M.jsxs)(`button`,{ref:t=>{t?T.current.set(e.item.value,t):T.current.delete(e.item.value)},type:`button`,role:`treeitem`,"aria-level":e.depth+1,"aria-posinset":e.position,"aria-setsize":e.setSize,"aria-selected":s,"aria-expanded":n?a:void 0,"aria-disabled":e.item.disabled||void 0,tabIndex:N===e.item.value?0:-1,onFocus:()=>w(e.item.value),onKeyDown:t=>U(t,e),onClick:()=>{e.item.disabled||(B(e.item),n&&H(e.item.value))},className:l(`group/file-tree relative flex h-9 w-full items-center gap-2 overflow-hidden rounded-lg pr-2 text-left text-sm text-muted-foreground outline-none`,`transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,`aria-disabled:cursor-not-allowed`,s&&`bg-muted font-medium text-foreground`,_?.item,e.item.className),style:{paddingLeft:8+e.depth*m},children:[e.depth>0?(0,M.jsx)(r.span,{"aria-hidden":`true`,initial:!v&&{opacity:0,scaleY:0},animate:{opacity:1,scaleY:1},exit:{opacity:0,scaleY:0},transition:v?{duration:0}:I,className:`absolute top-0 bottom-0 w-px origin-top bg-border/70`,style:{left:16+(e.depth-1)*m}}):null,(0,M.jsx)(r.span,{"aria-hidden":`true`,animate:{rotate:a?90:0},transition:v?{duration:0}:o,className:l(`relative z-10 grid size-4 shrink-0 place-items-center`,!n&&`opacity-0`),children:(0,M.jsx)(d,{className:`size-3.5`})}),(0,M.jsx)(`span`,{"aria-hidden":`true`,className:l(`relative z-10 grid size-4 shrink-0 place-items-center text-muted-foreground transition-colors group-hover/file-tree:text-foreground`,t&&a&&`text-foreground`,_?.icon),children:e.item.icon??(0,M.jsx)(z,{item:e.item,open:a,reduce:v})}),(0,M.jsx)(`span`,{className:l(`relative z-10 min-w-0 flex-1 truncate`,_?.label),children:e.item.name})]})},e.item.value)})})}var V=`fleet-prime:v1:workspace-tree-width`,H=120,U=200,W=160,G=8;function K(e,t){let n=Math.max(H,t-W-G);return Math.min(n,Math.max(H,Math.round(e)))}function q(e){return _(V,U,t=>e===void 0?Math.max(H,Math.round(t)):K(t,e))}function J(e){y(V,e)}var Y=e=>{let t=window.matchMedia(`(min-width: 640px)`);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)},X=()=>window.matchMedia(`(min-width: 640px)`).matches,Z=()=>!1;function Q(e){let[t,n]=(0,j.useState)(q),r=(0,j.useSyncExternalStore)(Y,X,Z),i=(0,j.useRef)(null),a=(0,j.useCallback)(e=>{let r=i.current?.clientWidth??0;if(r===0)return;let a=K(t,r);b({event:e,startWidth:a,getNextWidth:(e,t,n)=>K(n+(e-t),r),onWidthChange:e=>{n(e),J(e)}})},[t]);return(0,j.useEffect)(()=>{let e=i.current;if(!e)return;let t=e.clientWidth;t<640||n(e=>{let n=K(e,t);return n===e?e:(J(n),n)})},[]),{handleTreeResizeStart:a,isSplitLayout:r,splitRef:i,splitStyle:r?{gridTemplateColumns:`${t}px 8px minmax(160px, 1fr)`}:void 0}}function ee({error:e,emptyDescription:t=`agent-workspace has not been loaded yet.`,emptyTitle:n=`Workspace unavailable`,loadWorkspaceFile:r,loading:i,onSelectedPathChange:a,previewEmptyDescription:o=`Choose a workspace file to preview its Markdown.`,previewEmptyTitle:s=`Select a file`,scopePath:c,scopeLabel:l,selectedPath:d,treeTestId:p=`workspace-tree`,workspace:h}){let[_,y]=(0,j.useState)(null),b=a!==void 0,x=b?d??null:_,S=e=>{if(b){a(e);return}y(e)},[C,E]=(0,j.useState)(null),[k,N]=(0,j.useState)(null),[P,F]=(0,j.useState)(!1),I=(0,j.useRef)(null),{handleTreeResizeStart:L,splitRef:R,splitStyle:z}=Q(h),V=(0,j.useMemo)(()=>{if(!h)return{headerLabel:l??`agent-workspace`,nodes:[]};if(!c)return{headerLabel:h.root,nodes:h.nodes};let e=u(h.nodes,c);return e?e.type===`directory`?{headerLabel:l??e.name,nodes:e.children??[]}:{headerLabel:l??e.name,nodes:[e]}:{headerLabel:l??c.split(`/`).pop()??c,nodes:[]}},[l,c,h]);return(0,j.useEffect)(()=>{if(!(!h||!x)){if(c&&!T(x,c)){S(null),E(null),N(null);return}u(h.nodes,x)?.type!==`file`&&(S(null),E(null),N(null))}},[a,c,x,h]),(0,j.useEffect)(()=>{if(!x)return;let e=!1;async function t(){F(!0),N(null);try{let t=await r(x??``);e||E(t)}catch(t){e||(E(null),N(t instanceof Error?t:Error(String(t))))}finally{e||F(!1)}}return t(),()=>{e=!0}},[r,x,h]),(0,j.useEffect)(()=>{if(!x||typeof window>`u`||window.matchMedia(`(min-width: 960px)`).matches)return;let e=window.requestAnimationFrame(()=>{I.current?.scrollIntoView({block:`start`,inline:`nearest`,behavior:`auto`})});return()=>window.cancelAnimationFrame(e)},[x]),e?v(e)?(0,M.jsx)(D,{icon:f,title:`Daytona not connected`,description:`Connect a Daytona API key for your account to browse and preview your agent workspace.`}):(0,M.jsx)(D,{icon:f,title:`Unable to load workspace`,description:e.message}):i&&!h?(0,M.jsx)(A,{}):!h||c&&V.nodes.length===0?(0,M.jsx)(D,{icon:w,title:n,description:t}):(0,M.jsxs)(`div`,{ref:R,className:`relative grid h-full min-h-0 grid-cols-1 gap-2 overflow-hidden ${g}`,style:z,children:[(0,M.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden`,children:(0,M.jsxs)(`div`,{"data-testid":p,className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:[(0,M.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,M.jsx)(w,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,M.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:V.headerLabel})]}),(0,M.jsx)(B,{ariaLabel:c?`Files in ${V.headerLabel}`:`Workspace files`,className:`gap-0.5`,classNames:{item:`h-8 gap-1.5 rounded-sm text-label font-normal text-foreground/65 hover:bg-foreground/5 hover:text-foreground/80 aria-selected:bg-foreground/8 aria-selected:text-foreground/80`,icon:`size-3.5 text-foreground/35`,label:`text-label`},value:x,onValueChange:e=>{u(h.nodes,e)?.type===`file`&&S(e)},children:V.nodes.map(e=>$(e))}),h.diagnostics.length>0&&!c&&(0,M.jsx)(`div`,{className:`mt-2 border-t border-border/60 pt-2`,children:(0,M.jsx)(O,{id:`workspace-diagnostics`,label:`Diagnostics`,icon:f,items:h.diagnostics.map((e,t)=>({name:`Diagnostic ${t+1}`,description:e}))})})]})}),(0,M.jsx)(`button`,{type:`button`,"aria-label":`Resize workspace tree`,className:`min-h-0 cursor-col-resize touch-none bg-transparent transition-colors outline-none hover:bg-foreground/10 focus-visible:bg-foreground/10 ${m}`,"data-testid":`workspace-tree-resize-handle`,onPointerDown:L}),(0,M.jsx)(te,{emptyDescription:o,emptyTitle:s,error:k,loading:P,preview:C,previewRef:I,selectedPath:x})]})}function $(e){return e.type===`directory`?(0,M.jsx)(N,{value:e.path,name:e.name,children:e.children?.map(e=>$(e))},e.path):(0,M.jsx)(P,{value:e.path,name:e.name},e.path)}function te({emptyDescription:e,emptyTitle:t,error:n,loading:r,preview:i,previewRef:a,selectedPath:o}){return(0,M.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-md border border-border/60 bg-background`,"data-testid":`workspace-preview`,ref:a,children:[(0,M.jsxs)(`div`,{className:`flex min-h-9 min-w-0 shrink-0 items-center gap-2 border-b border-border/60 px-2.5`,children:[(0,M.jsx)(p,{className:`size-3.5 shrink-0 text-foreground/35`}),(0,M.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:i?.name??o??`Preview`})]}),(0,M.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-3 py-2`,children:[!o&&(0,M.jsx)(D,{icon:p,title:t,description:e}),o&&r&&(0,M.jsx)(k,{}),o&&n&&(0,M.jsx)(D,{icon:f,title:`Unable to load preview`,description:n.message}),o&&!r&&!n&&i?.status===`too-large`&&(0,M.jsx)(D,{icon:f,title:`Preview too large`,description:`${i.name} is too large to preview safely.`}),o&&!r&&!n&&i?.status===`unsupported`&&(0,M.jsx)(D,{icon:f,title:`Unsupported preview`,description:`${i.name} is not a supported text file.`}),o&&!r&&!n&&i&&(i.status===void 0||i.status===`ok`)&&(0,M.jsx)(E,{className:`text-label leading-relaxed`,content:i.content})]})]})}export{ee as WorkspacePanelContent};
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./bundle-mjs-DKHVkVWu.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{f as r,o as i,r as a,u as o}from"./ease-u56MhKYS.js";import{n as s,t as c}from"./use-reduced-motion-eORd7fqW.js";import{t as l}from"./utils-Eg7xtNmV.js";import{t as u}from"./resource-helpers-Q2T0YCMO.js";import{t as d}from"./chevron-right-DrJxToLs.js";import{t as f}from"./circle-alert-CONlFReH.js";import{t as p}from"./file-text-T-NcAlZs.js";import{_ as m,f as h,g,n as _,o as v,r as y,t as b,v as x,y as S}from"./horizontal-resize-qK6eRhIG.js";import{t as C}from"./folder-BC5p7qK7.js";import{t as w}from"./hard-drive-CHqgr7VQ.js";import{t as T}from"./workspace-path-nav-C0AQNZyy.js";import{t as E}from"./markdown-DInPmRUG.js";import{a as D,i as O,n as k,r as A}from"./skeleton-loaders-C9vHwAYV.js";var j=e(t(),1),M=n();function N(e){return null}function P(e){return null}var F={duration:.22,ease:a},I={duration:.3,ease:a};function L(e,t,n=0,r=null){return e.flatMap((i,a)=>{let o={item:i,depth:n,parentId:r,position:a+1,setSize:e.length};return i.type!==`folder`||!t.has(i.value)||!i.children?.length?[o]:[o,...L(i.children,t,n+1,i.value)]})}function R(e){let t=[];return j.Children.forEach(e,e=>{if((0,j.isValidElement)(e)){if(e.type===j.Fragment){let n=e.props;t.push(...R(n.children));return}if(e.type===N){let n=e.props;t.push({value:n.value,name:n.name,type:`folder`,icon:n.icon,disabled:n.disabled,className:n.className,children:R(n.children)});return}if(e.type===P){let n=e.props;t.push({value:n.value,name:n.name,type:`file`,icon:n.icon,disabled:n.disabled,className:n.className})}}}),t}function z({item:e,open:t,reduce:n}){return e.type===`file`?(0,M.jsx)(S,{className:`size-4`}):n?t?(0,M.jsx)(x,{className:`size-4`}):(0,M.jsx)(C,{className:`size-4`}):(0,M.jsx)(s,{initial:!1,mode:`popLayout`,children:(0,M.jsx)(r.span,{initial:{opacity:0,scale:.75,rotate:t?-8:8},animate:{opacity:1,scale:1,rotate:0},exit:{opacity:0,scale:.75,rotate:t?8:-8},transition:o,className:`absolute inset-0 grid place-items-center`,children:t?(0,M.jsx)(x,{className:`size-4`}):(0,M.jsx)(C,{className:`size-4`})},t?`open`:`closed`)})}function B({children:e,value:t,defaultValue:n=null,onValueChange:a,expandedIds:s,defaultExpandedIds:u=[],onExpandedChange:f,ariaLabel:p=`Files`,indent:m=18,className:g,classNames:_}){let v=c()??!1,[y,b]=(0,j.useState)(n),[x,S]=(0,j.useState)(u),[C,w]=(0,j.useState)(t??n),T=(0,j.useRef)(new Map),E=t===void 0?y:t,D=s??x,O=(0,j.useMemo)(()=>new Set(D),[D]),k=(0,j.useMemo)(()=>R(e),[e]),A=(0,j.useMemo)(()=>L(k,O),[O,k]),N=C!==null&&A.some(({item:e})=>e.value===C)?C:A[0]?.item.value??null;C!==N&&w(N);let P=(0,j.useCallback)(e=>{w(e);let t=T.current.get(e);t?t.focus():requestAnimationFrame(()=>T.current.get(e)?.focus())},[]),B=(0,j.useCallback)(e=>{e.disabled||(t===void 0&&b(e.value),a?.(e.value))},[a,t]),V=(0,j.useCallback)(e=>{s===void 0&&S(e),f?.(e)},[s,f]),H=(0,j.useCallback)(e=>{let t=new Set(D);t.has(e)?t.delete(e):t.add(e),V(Array.from(t))},[D,V]),U=(0,j.useCallback)((e,t)=>{let n=A.findIndex(({item:e})=>e.value===t.item.value),r=A[n-1],i=A[n+1],a=t.item.type===`folder`&&!!t.item.children?.length,o=a&&O.has(t.item.value);if(e.key===`ArrowDown`&&i)e.preventDefault(),P(i.item.value);else if(e.key===`ArrowUp`&&r)e.preventDefault(),P(r.item.value);else if(e.key===`Home`&&A[0])e.preventDefault(),P(A[0].item.value);else if(e.key===`End`&&A.at(-1))e.preventDefault(),P(A.at(-1)?.item.value??t.item.value);else if(e.key===`ArrowRight`&&a)e.preventDefault(),!o&&!t.item.disabled?H(t.item.value):i?.parentId===t.item.value&&P(i.item.value);else if(e.key===`ArrowLeft`)e.preventDefault(),a&&o&&!t.item.disabled?H(t.item.value):t.parentId&&P(t.parentId);else if(e.key===`Enter`||e.key===` `){if(e.preventDefault(),t.item.disabled)return;B(t.item),a&&H(t.item.value)}},[O,P,A,B,H]);return(0,M.jsx)(h,{role:`tree`,"aria-label":p,"aria-multiselectable":`false`,inset:0,pillClassName:`rounded-xl bg-muted`,pillContainerClassName:`inset-y-auto top-0 h-9`,className:l(`min-w-0`,g,_?.tree),children:A.map(e=>{let t=e.item.type===`folder`,n=t&&!!e.item.children?.length,a=n&&O.has(e.item.value),s=E===e.item.value;return(0,M.jsx)(r.div,{layout:!v&&`position`,initial:!v&&{opacity:0,y:-6},animate:{opacity:e.item.disabled?.42:1,y:0,transition:v?{duration:0}:{...F,delay:Math.min(e.position*.025,.1)}},transition:v?{duration:0}:i,children:(0,M.jsxs)(`button`,{ref:t=>{t?T.current.set(e.item.value,t):T.current.delete(e.item.value)},type:`button`,role:`treeitem`,"aria-level":e.depth+1,"aria-posinset":e.position,"aria-setsize":e.setSize,"aria-selected":s,"aria-expanded":n?a:void 0,"aria-disabled":e.item.disabled||void 0,tabIndex:N===e.item.value?0:-1,onFocus:()=>w(e.item.value),onKeyDown:t=>U(t,e),onClick:()=>{e.item.disabled||(B(e.item),n&&H(e.item.value))},className:l(`group/file-tree relative flex h-9 w-full items-center gap-2 overflow-hidden rounded-lg pr-2 text-left text-sm text-muted-foreground outline-none`,`transition-colors hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset`,`aria-disabled:cursor-not-allowed`,s&&`bg-muted font-medium text-foreground`,_?.item,e.item.className),style:{paddingLeft:8+e.depth*m},children:[e.depth>0?(0,M.jsx)(r.span,{"aria-hidden":`true`,initial:!v&&{opacity:0,scaleY:0},animate:{opacity:1,scaleY:1},exit:{opacity:0,scaleY:0},transition:v?{duration:0}:I,className:`absolute top-0 bottom-0 w-px origin-top bg-border/70`,style:{left:16+(e.depth-1)*m}}):null,(0,M.jsx)(r.span,{"aria-hidden":`true`,animate:{rotate:a?90:0},transition:v?{duration:0}:o,className:l(`relative z-10 grid size-4 shrink-0 place-items-center`,!n&&`opacity-0`),children:(0,M.jsx)(d,{className:`size-3.5`})}),(0,M.jsx)(`span`,{"aria-hidden":`true`,className:l(`relative z-10 grid size-4 shrink-0 place-items-center text-muted-foreground transition-colors group-hover/file-tree:text-foreground`,t&&a&&`text-foreground`,_?.icon),children:e.item.icon??(0,M.jsx)(z,{item:e.item,open:a,reduce:v})}),(0,M.jsx)(`span`,{className:l(`relative z-10 min-w-0 flex-1 truncate`,_?.label),children:e.item.name})]})},e.item.value)})})}var V=`fleet-prime:v1:workspace-tree-width`,H=120,U=200,W=160,G=8;function K(e,t){let n=Math.max(H,t-W-G);return Math.min(n,Math.max(H,Math.round(e)))}function q(e){return _(V,U,t=>e===void 0?Math.max(H,Math.round(t)):K(t,e))}function J(e){y(V,e)}var Y=e=>{let t=window.matchMedia(`(min-width: 640px)`);return t.addEventListener(`change`,e),()=>t.removeEventListener(`change`,e)},X=()=>window.matchMedia(`(min-width: 640px)`).matches,Z=()=>!1;function Q(e){let[t,n]=(0,j.useState)(q),r=(0,j.useSyncExternalStore)(Y,X,Z),i=(0,j.useRef)(null),a=(0,j.useCallback)(e=>{let r=i.current?.clientWidth??0;if(r===0)return;let a=K(t,r);b({event:e,startWidth:a,getNextWidth:(e,t,n)=>K(n+(e-t),r),onWidthChange:e=>{n(e),J(e)}})},[t]);return(0,j.useEffect)(()=>{let e=i.current;if(!e)return;let t=e.clientWidth;t<640||n(e=>{let n=K(e,t);return n===e?e:(J(n),n)})},[]),{handleTreeResizeStart:a,isSplitLayout:r,splitRef:i,splitStyle:r?{gridTemplateColumns:`${t}px 8px minmax(160px, 1fr)`}:void 0}}function ee({error:e,emptyDescription:t=`agent-workspace has not been loaded yet.`,emptyTitle:n=`Workspace unavailable`,loadWorkspaceFile:r,loading:i,onSelectedPathChange:a,previewEmptyDescription:o=`Choose a workspace file to preview its Markdown.`,previewEmptyTitle:s=`Select a file`,scopePath:c,scopeLabel:l,selectedPath:d,treeTestId:p=`workspace-tree`,workspace:h}){let[_,y]=(0,j.useState)(null),b=a!==void 0,x=b?d??null:_,S=e=>{if(b){a(e);return}y(e)},[C,E]=(0,j.useState)(null),[k,N]=(0,j.useState)(null),[P,F]=(0,j.useState)(!1),I=(0,j.useRef)(null),{handleTreeResizeStart:L,splitRef:R,splitStyle:z}=Q(h),V=(0,j.useMemo)(()=>{if(!h)return{headerLabel:l??`agent-workspace`,nodes:[]};if(!c)return{headerLabel:h.root,nodes:h.nodes};let e=u(h.nodes,c);return e?e.type===`directory`?{headerLabel:l??e.name,nodes:e.children??[]}:{headerLabel:l??e.name,nodes:[e]}:{headerLabel:l??c.split(`/`).pop()??c,nodes:[]}},[l,c,h]);return(0,j.useEffect)(()=>{if(!(!h||!x)){if(c&&!T(x,c)){S(null),E(null),N(null);return}u(h.nodes,x)?.type!==`file`&&(S(null),E(null),N(null))}},[a,c,x,h]),(0,j.useEffect)(()=>{if(!x)return;let e=!1;async function t(){F(!0),N(null);try{let t=await r(x??``);e||E(t)}catch(t){e||(E(null),N(t instanceof Error?t:Error(String(t))))}finally{e||F(!1)}}return t(),()=>{e=!0}},[r,x,h]),(0,j.useEffect)(()=>{if(!x||typeof window>`u`||window.matchMedia(`(min-width: 960px)`).matches)return;let e=window.requestAnimationFrame(()=>{I.current?.scrollIntoView({block:`start`,inline:`nearest`,behavior:`auto`})});return()=>window.cancelAnimationFrame(e)},[x]),e?v(e)?(0,M.jsx)(D,{icon:f,title:`Daytona not connected`,description:`Connect a Daytona API key for your account to browse and preview your agent workspace.`}):(0,M.jsx)(D,{icon:f,title:`Unable to load workspace`,description:e.message}):i&&!h?(0,M.jsx)(A,{}):!h||c&&V.nodes.length===0?(0,M.jsx)(D,{icon:w,title:n,description:t}):(0,M.jsxs)(`div`,{ref:R,className:`relative grid h-full min-h-0 grid-cols-1 gap-2 overflow-hidden ${g}`,style:z,children:[(0,M.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden`,children:(0,M.jsxs)(`div`,{"data-testid":p,className:`min-h-0 min-w-0 flex-1 overflow-y-auto`,children:[(0,M.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,M.jsx)(w,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,M.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:V.headerLabel})]}),(0,M.jsx)(B,{ariaLabel:c?`Files in ${V.headerLabel}`:`Workspace files`,className:`gap-0.5`,classNames:{item:`h-8 gap-1.5 rounded-sm text-label font-normal text-foreground/65 hover:bg-foreground/5 hover:text-foreground/80 aria-selected:bg-foreground/8 aria-selected:text-foreground/80`,icon:`size-3.5 text-foreground/35`,label:`text-label`},value:x,onValueChange:e=>{u(h.nodes,e)?.type===`file`&&S(e)},children:V.nodes.map(e=>$(e))}),h.diagnostics.length>0&&!c&&(0,M.jsx)(`div`,{className:`mt-2 border-t border-border/60 pt-2`,children:(0,M.jsx)(O,{id:`workspace-diagnostics`,label:`Diagnostics`,icon:f,items:h.diagnostics.map((e,t)=>({name:`Diagnostic ${t+1}`,description:e}))})})]})}),(0,M.jsx)(`button`,{type:`button`,"aria-label":`Resize workspace tree`,className:`min-h-0 cursor-col-resize touch-none bg-transparent transition-colors outline-none hover:bg-foreground/10 focus-visible:bg-foreground/10 ${m}`,"data-testid":`workspace-tree-resize-handle`,onPointerDown:L}),(0,M.jsx)(te,{emptyDescription:o,emptyTitle:s,error:k,loading:P,preview:C,previewRef:I,selectedPath:x})]})}function $(e){return e.type===`directory`?(0,M.jsx)(N,{value:e.path,name:e.name,children:e.children?.map(e=>$(e))},e.path):(0,M.jsx)(P,{value:e.path,name:e.name},e.path)}function te({emptyDescription:e,emptyTitle:t,error:n,loading:r,preview:i,previewRef:a,selectedPath:o}){return(0,M.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden rounded-md border border-border/60 bg-background`,"data-testid":`workspace-preview`,ref:a,children:[(0,M.jsxs)(`div`,{className:`flex min-h-9 min-w-0 shrink-0 items-center gap-2 border-b border-border/60 px-2.5`,children:[(0,M.jsx)(p,{className:`size-3.5 shrink-0 text-foreground/35`}),(0,M.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:i?.name??o??`Preview`})]}),(0,M.jsxs)(`div`,{className:`flex-1 overflow-y-auto px-3 py-2`,children:[!o&&(0,M.jsx)(D,{icon:p,title:t,description:e}),o&&r&&(0,M.jsx)(k,{}),o&&n&&(0,M.jsx)(D,{icon:f,title:`Unable to load preview`,description:n.message}),o&&!r&&!n&&i?.status===`too-large`&&(0,M.jsx)(D,{icon:f,title:`Preview too large`,description:`${i.name} is too large to preview safely.`}),o&&!r&&!n&&i?.status===`unsupported`&&(0,M.jsx)(D,{icon:f,title:`Unsupported preview`,description:`${i.name} is not a supported text file.`}),o&&!r&&!n&&i&&(i.status===void 0||i.status===`ok`)&&(0,M.jsx)(E,{className:`text-label leading-relaxed`,content:i.content})]})]})}export{ee as WorkspacePanelContent};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-09-
|
|
3
|
-
"routeEntry": "routes-
|
|
4
|
-
"routeEntryGzipBytes":
|
|
5
|
-
"routeEntryReduction": 0.
|
|
6
|
-
"eagerFiles":
|
|
7
|
-
"eagerGzipBytes":
|
|
2
|
+
"timestamp": "2026-09-10T14:38:35.938Z",
|
|
3
|
+
"routeEntry": "routes-vNkVToAF.js",
|
|
4
|
+
"routeEntryGzipBytes": 96650,
|
|
5
|
+
"routeEntryReduction": 0.9086944774565578,
|
|
6
|
+
"eagerFiles": 67,
|
|
7
|
+
"eagerGzipBytes": 366774,
|
|
8
8
|
"passed": true,
|
|
9
9
|
"violations": []
|
|
10
10
|
}
|